From 5bdeaf3332255ec12d4f735b8143976be1af621b Mon Sep 17 00:00:00 2001 From: Oscar Plaisant Date: Wed, 13 Mar 2024 11:36:31 +0100 Subject: [PATCH] update --- .DS_Store | Bin 8196 -> 8196 bytes .obsidian/app.json | 4 +- .obsidian/appearance.json | 2 +- .obsidian/community-plugins.json | 7 +- .obsidian/graph.json | 2 +- .obsidian/hotkeys.json | 35 +- .obsidian/plugins/breadcrumbs/data.json | 28 +- .../obsidian-citation-plugin/data.json | 8 + .../plugins/obsidian-citation-plugin/main.js | 85889 ++++++++++++++++ .../obsidian-citation-plugin/manifest.json | 10 + .../obsidian-citation-plugin/styles.css | 114 + .../obsidian-excalidraw-plugin/data.json | 70 +- .obsidian/plugins/obsidian-kanban/data.json | 3 +- .../obsidian-minimal-settings/data.json | 2 +- .obsidian/plugins/obsidian-pocket/data.json | 2 +- .../obsidian-spaced-repetition/data.json | 4 +- .../data.json | 10 +- .../data.json | 19 + .../obsidian-zotero-desktop-connector/main.js | 191 + .../manifest.json | 10 + .../styles.css | 238 + .obsidian/plugins/rss-reader/data.json | 1236 +- .../plugins/various-complements/data.json | 48 +- .../various-complements/histories.json | 2 +- .obsidian/plugins/vertical-tabs-view/main.js | 16 + .../plugins/vertical-tabs-view/manifest.json | 11 + .../plugins/vertical-tabs-view/styles.css | 163 + .obsidian/plugins/zotlit/data.json | 27 + .obsidian/plugins/zotlit/main.js | 410 + .obsidian/plugins/zotlit/manifest.json | 13 + .obsidian/plugins/zotlit/styles.css | 1 + .obsidian/types.json | 8 + .obsidian/workspace.json | 512 +- CP création du seb.md | 12 +- CR du conseil DI 2023-12-07.md | 9 +- Commutation de Processus.md | 2 +- ...tions pour une autocritique du marxisme.md | 14 + DTD.md | 17 + ...pente inégalités culturelles.excalidraw.md | 957 +- ...e ferrites 2024-02-15 20.04.20.excalidraw.md | 2566 + ...de ferrite 2024-02-15 01.02.52.excalidraw.md | 676 + Excalidraw/pizza hawaienne.excalidraw.md | 1003 +- ...n d'un programme comme graphe.excalidraw.md | 845 +- ...e ellipse 2024-02-14 11.07.42.excalidraw.md | 682 + Julius Dickmann.md | 12 +- Kanban mémoire L3.md | 36 + Karl Marx.md | 15 + Projet programmation web serveur.md | 2 +- SEB.md | 2 +- aliénation sociale.md | 17 + architecture des ordinateurs.md | 15 +- attachments/IMG_6724.heic | Bin 0 -> 1915722 bytes authentification par token.md | 2 +- automate-pile.md | 2 +- bases du javascript.md | 2 +- capitalisme.md | 2 + cercle.md | 10 + cheat sheet fonctions trigonométrique.md | 26 + coconut application partielle de fonction.md | 14 + coconut chaîner des fonctions.md | 11 + coconut composer des fonctions.md | 10 + coconut composition de fonction.md | 18 + coconut fonctions lambda.md | 8 + coconut gestion des itérables.md | 9 + coconut-lang.md | 46 +- concept et règles.md | 17 + ...r.md => cours programmation web serveur.md | 0 cycle en V.md | 4 +- daily/2024-01-10.md | 7 - daily/2024-01-11.md | 32 + daily/2024-01-15.md | 32 + daily/2024-01-17.md | 33 + daily/2024-01-23.md | 33 + daily/2024-01-24.md | 32 + daily/2024-01-28.md | 33 + daily/2024-01-29.md | 32 + daily/2024-02-05.md | 33 + daily/2024-02-08.md | 32 + daily/2024-02-12.md | 34 + daily/2024-02-14.md | 32 + daily/2024-02-19.md | 45 + danger des catégories.md | 14 + diagonaliser une matrice.md | 1 + dictature de la commodité.md | 7 + discours baptême civil.md | 53 + discours manif immigration.md | 12 + dynamic programming definition by Floyd.md | 13 + déterminant hessien.md | 23 + ...er une commande lorsqu'un fichier change.md | 39 + existence.md | 19 + expressions détournées.md | 7 + films à voir.md | 5 +- firefox masquer les onglets.md | 3 + flashcards anglais.md | 34 +- fonction de plusieurs variables.md | 3 + fonction.md | 7 + forme normale de chomsky.md | 21 + gradient d'une fonction.md | 20 + grammaire non-contextuelle.md | 17 + grammaire.md | 9 + graphe d'une fonction.md | 3 + historique des mémoires à tore.md | 17 + hystérésis magnétique.md | 15 + hystérésis élastique.md | 10 + hystérésis.md | 19 + idée présentations salsiphi.md | 18 + importance des corps de métier.md | 2 +- java héritage.md | 2 +- java objets.md | 2 +- java.md | 4 +- kanban soirée jeux.md | 4 +- langage accepté par une machine de Turing.md | 9 + langage de description de schéma XML.md | 15 + langage de programmation.md | 15 +- langage descriptif.md | 12 + langage décidé.md | 13 + ...'est pourquoi il a une valeur marchande.md | 25 + machine de turing.md | 10 + matrice hessienne.md | 33 + matrice.md | 4 +- mermaid-cli.md | 4 + ...ortance dans un graphe de connaissances.md | 32 + militantisme.méthodes d'action.md | 2 +- mémoire de L3.md | 19 + mémoire à cordes de ferrites.md | 36 + mémoire à tore de ferrite.md | 62 + mémoire.md | 47 +- naissance du capitalisme.md | 2 + noam chomsky.md | 14 + obsidian syntaxe.md | 1 - paradigme de l'assignation simultanée.md | 40 + paradigme de programmation.md | 32 + paradigme programmation concurrente.md | 14 + paradigme programmation dynamique.md | 4 + paradigme programmation modulaire.md | 3 + paradigme programmation orientée objet.md | 25 + paradigme programmation procédurale.md | 2 + paradygme de programmation.md | 15 - paradygme programmation orientée objet.md | 18 - phrases.md | 8 +- politique.md | 11 +- presentation_outlines.md | 270 + principe du parapluie.md | 29 + principes FAIR.md | 53 + problèmes des mémoires à tores de ferrite.md | 30 + programmation orientée objet java.md | 7 + programmation serveur (backend).md | 15 + programmation structurée.md | 27 + programmation web.md | 9 + programmation.argument d'une fonction.md | 9 + programmation.fonction.md | 6 + programmation.md | 17 +- programmation.paramètre d'une fonction.md | 11 + présentation sur les outlines.md | 270 + quantificateurs.il existe.md | 16 + quantificateurs.md | 9 + salsiphi 2024-01-27.md | 36 + salsiphi comptes rendus.md | 14 + salsiphi.md | 8 + science ouverte.md | 28 + server side.md | 4 + servlet.md | 8 + ...otero and Obsidian - Obsidian Publish 2.md | 11 - ...otero and Obsidian - Obsidian Publish 3.md | 11 - ...otero and Obsidian - Obsidian Publish 4.md | 11 - ...otero and Obsidian - Obsidian Publish 5.md | 11 - ...otero and Obsidian - Obsidian Publish 6.md | 11 - ... Zotero and Obsidian - Obsidian Publish.md | 1 - sources/1j01 textual-paint.md | 10 + sources/202401242342.md | 18 + sources/202401242351.md | 17 + sources/Browser not supported.md | 11 - sources/CARD GAME RULES.md | 10 + sources/Epigrams on programming.md | 4 +- sources/FirefoxCSS-Store 2.md | 11 + sources/FirefoxCSS-Store.md | 10 + sources/Getting Started 2.md | 11 - sources/Getting Started 3.md | 11 - sources/Getting Started 4.md | 11 - sources/Getting Started 5.md | 11 - sources/Getting Started 6.md | 11 - sources/Getting Started.md | 1 - sources/ICVL24 Skyline Learning (Stage).pdf | Bin 0 -> 65990 bytes .../Jean Jaurès sur la peine de mort.md | 0 .../Programmation concurrente (wikipedia).md | 17 + sources/The Command Line Heroes BASH! 2.md | 11 + .../firefox enable userChrome (custom css).md | 13 + ...tit nombre qui fait travailler le grand.md | 0 ... secret de l'action, c'est de commencer.md | 0 ...der l'élaboration de nouveaux paradigmes.md | 12 + ...hode pour trouver de nouveaux paradigmes.md | 17 + .../textual-paint (paint dans un terminal).md | 16 + ...it étendre son répertoire de paradigmes.md | 12 + sources/zotero/ParadigmeProgrammation.md | 26 + .../zotero/floydParadigmsProgramming1979.md | 14 + ...iption des paradigmes, de leurs limites.md | 15 + stage.md | 20 + stratégie d'évaluation.md | 7 + syntaxe d'une DTD.md | 107 + système d'exploitation.md | 18 +- tangente à une courbe paramétrée.md | 2 +- ...spensable pour les prestations sociales.md | 11 + templates/citation.md | 6 +- templates/sources.md | 2 - templates/zotero/zt-annot.eta.md | 7 + templates/zotero/zt-annots.eta.md | 3 + templates/zotero/zt-cite.eta.md | 1 + templates/zotero/zt-cite2.eta.md | 1 + templates/zotero/zt-colored.eta.md | 4 + templates/zotero/zt-field.eta.md | 1 + templates/zotero/zt-note.eta.md | 2 + terminal commandes.md | 16 +- ...mmaire hors-contexte en automate à pile.md | 16 + travail de délégué.md | 18 +- travail.md | 2 +- xml.md | 10 + équations d'un cercle.md | 7 + équations d'une ellipse.md | 9 + 218 files changed, 97170 insertions(+), 1830 deletions(-) create mode 100644 .obsidian/plugins/obsidian-citation-plugin/data.json create mode 100644 .obsidian/plugins/obsidian-citation-plugin/main.js create mode 100644 .obsidian/plugins/obsidian-citation-plugin/manifest.json create mode 100644 .obsidian/plugins/obsidian-citation-plugin/styles.css create mode 100644 .obsidian/plugins/obsidian-zotero-desktop-connector/data.json create mode 100644 .obsidian/plugins/obsidian-zotero-desktop-connector/main.js create mode 100644 .obsidian/plugins/obsidian-zotero-desktop-connector/manifest.json create mode 100644 .obsidian/plugins/obsidian-zotero-desktop-connector/styles.css create mode 100644 .obsidian/plugins/vertical-tabs-view/main.js create mode 100644 .obsidian/plugins/vertical-tabs-view/manifest.json create mode 100644 .obsidian/plugins/vertical-tabs-view/styles.css create mode 100644 .obsidian/plugins/zotlit/data.json create mode 100644 .obsidian/plugins/zotlit/main.js create mode 100644 .obsidian/plugins/zotlit/manifest.json create mode 100644 .obsidian/plugins/zotlit/styles.css create mode 100644 .obsidian/types.json create mode 100644 Contributions pour une autocritique du marxisme.md create mode 100644 DTD.md create mode 100644 Excalidraw/mémoire à cordes de ferrites 2024-02-15 20.04.20.excalidraw.md create mode 100644 Excalidraw/mémoire à tore de ferrite 2024-02-15 01.02.52.excalidraw.md create mode 100644 Excalidraw/équations d'une ellipse 2024-02-14 11.07.42.excalidraw.md create mode 100644 Kanban mémoire L3.md create mode 100644 Karl Marx.md create mode 100644 aliénation sociale.md create mode 100644 attachments/IMG_6724.heic create mode 100644 cercle.md create mode 100644 cheat sheet fonctions trigonométrique.md create mode 100644 coconut application partielle de fonction.md create mode 100644 coconut chaîner des fonctions.md create mode 100644 coconut composer des fonctions.md create mode 100644 coconut composition de fonction.md create mode 100644 coconut fonctions lambda.md create mode 100644 coconut gestion des itérables.md create mode 100644 concept et règles.md rename programmation web serveur.md => cours programmation web serveur.md (100%) create mode 100644 daily/2024-01-11.md create mode 100644 daily/2024-01-15.md create mode 100644 daily/2024-01-17.md create mode 100644 daily/2024-01-23.md create mode 100644 daily/2024-01-24.md create mode 100644 daily/2024-01-28.md create mode 100644 daily/2024-01-29.md create mode 100644 daily/2024-02-05.md create mode 100644 daily/2024-02-08.md create mode 100644 daily/2024-02-12.md create mode 100644 daily/2024-02-14.md create mode 100644 daily/2024-02-19.md create mode 100644 danger des catégories.md create mode 100644 dictature de la commodité.md create mode 100644 discours baptême civil.md create mode 100644 discours manif immigration.md create mode 100644 dynamic programming definition by Floyd.md create mode 100644 déterminant hessien.md create mode 100644 entr - exécuter une commande lorsqu'un fichier change.md create mode 100644 existence.md create mode 100644 expressions détournées.md create mode 100644 firefox masquer les onglets.md create mode 100644 fonction de plusieurs variables.md create mode 100644 forme normale de chomsky.md create mode 100644 gradient d'une fonction.md create mode 100644 grammaire non-contextuelle.md create mode 100644 grammaire.md create mode 100644 historique des mémoires à tore.md create mode 100644 hystérésis magnétique.md create mode 100644 hystérésis élastique.md create mode 100644 hystérésis.md create mode 100644 idée présentations salsiphi.md create mode 100644 langage accepté par une machine de Turing.md create mode 100644 langage de description de schéma XML.md create mode 100644 langage descriptif.md create mode 100644 langage décidé.md create mode 100644 le travail n'est pas une valeur morale, c'est pourquoi il a une valeur marchande.md create mode 100644 machine de turing.md create mode 100644 matrice hessienne.md create mode 100644 mermaid-cli.md create mode 100644 mesurer l'importance dans un graphe de connaissances.md create mode 100644 mémoire de L3.md create mode 100644 mémoire à cordes de ferrites.md create mode 100644 mémoire à tore de ferrite.md create mode 100644 naissance du capitalisme.md create mode 100644 noam chomsky.md create mode 100644 paradigme de l'assignation simultanée.md create mode 100644 paradigme de programmation.md create mode 100644 paradigme programmation concurrente.md create mode 100644 paradigme programmation dynamique.md create mode 100644 paradigme programmation modulaire.md create mode 100644 paradigme programmation orientée objet.md create mode 100644 paradigme programmation procédurale.md delete mode 100644 paradygme de programmation.md delete mode 100644 paradygme programmation orientée objet.md create mode 100644 presentation_outlines.md create mode 100644 principe du parapluie.md create mode 100644 principes FAIR.md create mode 100644 problèmes des mémoires à tores de ferrite.md create mode 100644 programmation orientée objet java.md create mode 100644 programmation serveur (backend).md create mode 100644 programmation structurée.md create mode 100644 programmation web.md create mode 100644 programmation.argument d'une fonction.md create mode 100644 programmation.fonction.md create mode 100644 programmation.paramètre d'une fonction.md create mode 100644 présentation sur les outlines.md create mode 100644 quantificateurs.il existe.md create mode 100644 quantificateurs.md create mode 100644 salsiphi 2024-01-27.md create mode 100644 salsiphi comptes rendus.md create mode 100644 salsiphi.md create mode 100644 science ouverte.md create mode 100644 server side.md create mode 100644 servlet.md delete mode 100644 sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 2.md delete mode 100644 sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 3.md delete mode 100644 sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 4.md delete mode 100644 sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 5.md delete mode 100644 sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 6.md create mode 100644 sources/1j01 textual-paint.md create mode 100644 sources/202401242342.md create mode 100644 sources/202401242351.md delete mode 100644 sources/Browser not supported.md create mode 100644 sources/CARD GAME RULES.md create mode 100644 sources/FirefoxCSS-Store 2.md create mode 100644 sources/FirefoxCSS-Store.md delete mode 100644 sources/Getting Started 2.md delete mode 100644 sources/Getting Started 3.md delete mode 100644 sources/Getting Started 4.md delete mode 100644 sources/Getting Started 5.md delete mode 100644 sources/Getting Started 6.md create mode 100644 sources/ICVL24 Skyline Learning (Stage).pdf rename Jean Jaurès sur la peine de mort.md => sources/Jean Jaurès sur la peine de mort.md (100%) create mode 100644 sources/Programmation concurrente (wikipedia).md create mode 100644 sources/The Command Line Heroes BASH! 2.md create mode 100644 sources/firefox enable userChrome (custom css).md rename le petit nombre qui fait travailler le grand.md => sources/le petit nombre qui fait travailler le grand.md (100%) rename le secret de l'action, c'est de commencer.md => sources/le secret de l'action, c'est de commencer.md (100%) create mode 100644 sources/les avancées en programmation devraient demander l'élaboration de nouveaux paradigmes.md create mode 100644 sources/méthode pour trouver de nouveaux paradigmes.md create mode 100644 sources/textual-paint (paint dans un terminal).md create mode 100644 sources/un programmeur doit étendre son répertoire de paradigmes.md create mode 100644 sources/zotero/ParadigmeProgrammation.md create mode 100644 sources/zotero/floydParadigmsProgramming1979.md create mode 100644 sources/zotero/zt-import/Description des paradigmes, de leurs limites.md create mode 100644 stage.md create mode 100644 stratégie d'évaluation.md create mode 100644 syntaxe d'une DTD.md create mode 100644 taxer le profit, c'est le rendre indispensable pour les prestations sociales.md create mode 100644 templates/zotero/zt-annot.eta.md create mode 100644 templates/zotero/zt-annots.eta.md create mode 100644 templates/zotero/zt-cite.eta.md create mode 100644 templates/zotero/zt-cite2.eta.md create mode 100644 templates/zotero/zt-colored.eta.md create mode 100644 templates/zotero/zt-field.eta.md create mode 100644 templates/zotero/zt-note.eta.md create mode 100644 transformer une grammaire hors-contexte en automate à pile.md create mode 100644 xml.md create mode 100644 équations d'un cercle.md create mode 100644 équations d'une ellipse.md diff --git a/.DS_Store b/.DS_Store index d7f70dcb37258671c0a89d95ff43365b7ada701a..c9ac01210af4b9a8a8d9ddfd93e8e9875e25d816 100644 GIT binary patch delta 42 ycmZp1XmOa}F8U^hRb&SoBg(~O(Ng+H)tEO21l%r5bbWwWi=DaMTjwu}Has}5HH delta 357 zcmZp1XmOa}&uFqSU^hRb$z~pb(~R{j3`q<*4EYS{Iq8PM$@#ej3I@%8ED`GXF_=NAn=F5U#ST?gud}EpXP*`~L1>rAD E0J%w8;Q#;t diff --git a/.obsidian/app.json b/.obsidian/app.json index fec66633..a6a837dd 100644 --- a/.obsidian/app.json +++ b/.obsidian/app.json @@ -11,8 +11,8 @@ "includeName": true, "pageSize": "A4", "landscape": false, - "margin": "2", - "downscalePercent": 75 + "margin": "0", + "downscalePercent": 95 }, "defaultViewMode": "source", "autoPairMarkdown": false, diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json index 4fbe62fa..d5fe56bf 100644 --- a/.obsidian/appearance.json +++ b/.obsidian/appearance.json @@ -1,7 +1,7 @@ { "theme": "obsidian", "cssTheme": "Minimal", - "baseFontSize": 22.5, + "baseFontSize": 16.5, "enabledCssSnippets": [ "pdf_darkmode", "query_header_title", diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index 543c5fcd..ce798838 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -19,7 +19,6 @@ "pane-relief", "text-snippets-obsidian", "obsidian-share-as-gist", - "darlal-switcher-plus", "obsidian-quickshare", "obsidian-better-internal-link-inserter", "obsidian-contextual-typography", @@ -38,7 +37,6 @@ "postfix", "metaedit", "templater-obsidian", - "rss-reader", "obsidian-sequence-hotkeys", "obsidian-shellcommands", "obsidian-vimrc-support", @@ -47,6 +45,7 @@ "number-headings-obsidian", "obsidian-rollover-daily-todos", "obsidian-icon-shortcodes", - "obsidian-hider", - "customizable-page-header-buttons" + "darlal-switcher-plus", + "zotlit", + "obsidian-hider" ] \ No newline at end of file diff --git a/.obsidian/graph.json b/.obsidian/graph.json index d7ef77f9..75caf25b 100644 --- a/.obsidian/graph.json +++ b/.obsidian/graph.json @@ -130,6 +130,6 @@ "repelStrength": 6.39485677083333, "linkStrength": 1, "linkDistance": 30, - "scale": 1.0014338896636248, + "scale": 0.1031156391768266, "close": true } \ No newline at end of file diff --git a/.obsidian/hotkeys.json b/.obsidian/hotkeys.json index 5d468143..c128baaa 100644 --- a/.obsidian/hotkeys.json +++ b/.obsidian/hotkeys.json @@ -88,15 +88,6 @@ "key": "E" } ], - "obsidian-excalidraw-plugin:excalidraw-autocreate-and-embed": [ - { - "modifiers": [ - "Alt", - "Mod" - ], - "key": "E" - } - ], "editor:swap-line-down": [ { "modifiers": [ @@ -473,7 +464,14 @@ "key": "O" } ], - "switcher:open": [], + "switcher:open": [ + { + "modifiers": [ + "Mod" + ], + "key": "O" + } + ], "obsidian-completr:completr-close-suggestion-popup": [], "calendar:show-calendar-view": [], "obsidian-latex-suite:latex-suite-box-equation": [ @@ -686,12 +684,6 @@ ], "workspace:goto-tab-5": [], "mrj-jump-to-link:activate-jump-to-anywhere": [ - { - "modifiers": [ - "Ctrl" - ], - "key": ";" - }, { "modifiers": [ "Ctrl" @@ -740,5 +732,14 @@ ], "obsidian-completr:completr-fake-arrow-up": [], "obsidian-completr:completr-fake-arrow-down": [], - "obsidian-completr:completr-fake-enter": [] + "obsidian-completr:completr-fake-enter": [], + "obsidian-excalidraw-plugin:excalidraw-autocreate-and-embed-new-tab": [ + { + "modifiers": [ + "Alt", + "Mod" + ], + "key": "E" + } + ] } \ No newline at end of file diff --git a/.obsidian/plugins/breadcrumbs/data.json b/.obsidian/plugins/breadcrumbs/data.json index a1aff600..b1015849 100644 --- a/.obsidian/plugins/breadcrumbs/data.json +++ b/.obsidian/plugins/breadcrumbs/data.json @@ -4,7 +4,7 @@ "aliasesInIndex": false, "alphaSortAsc": false, "altLinkFields": [ - "alias" + "aliases" ], "CSVPaths": "", "createIndexIndent": " ", @@ -20,7 +20,7 @@ "dvWaitTime": 5000, "enableAlphaSort": true, "enableRelationSuggestor": true, - "fieldSuggestor": false, + "fieldSuggestor": true, "filterImpliedSiblingsOfDifferentTypes": false, "jugglLayout": "hierarchy", "limitWriteBCCheckboxes": [ @@ -28,7 +28,9 @@ "next", "prev", "author", - "source" + "source", + "same", + "opposes" ], "CHECKBOX_STATES_OVERWRITTEN": false, "gridDefaultDepth": 25, @@ -74,7 +76,8 @@ "limitTrailCheckboxes": [ "up", "author", - "supports" + "supports", + "opposes" ], "limitJumpToFirstFields": [ "up", @@ -82,13 +85,13 @@ "down", "next", "prev", - "same_author", "extercept", "includes", "supports", "supported_by", "refutes", - "refuted_by" + "refuted_by", + "opposes" ], "showAll": "All", "noPathMessage": "", @@ -156,6 +159,19 @@ "prev": [ "refuted_by" ] + }, + { + "up": [ + "opposes" + ], + "same": [ + "same" + ], + "down": [ + "opposes" + ], + "next": [], + "prev": [] } ], "writeBCsInline": true, diff --git a/.obsidian/plugins/obsidian-citation-plugin/data.json b/.obsidian/plugins/obsidian-citation-plugin/data.json new file mode 100644 index 00000000..fd3f8365 --- /dev/null +++ b/.obsidian/plugins/obsidian-citation-plugin/data.json @@ -0,0 +1,8 @@ +{ + "citationExportFormat": "csl-json", + "literatureNoteTitleTemplate": "@{{citekey}}", + "literatureNoteFolder": "Reading notes", + "literatureNoteContentTemplate": "---\ntitle: {{title}}\nyear: {{year}}\n---\nauthor:: {{authorString}}\nlink:: {{URL}}\n\n", + "markdownCitationTemplate": "[@{{citekey}}]", + "alternativeMarkdownCitationTemplate": "@{{citekey}}" +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-citation-plugin/main.js b/.obsidian/plugins/obsidian-citation-plugin/main.js new file mode 100644 index 00000000..d292f808 --- /dev/null +++ b/.obsidian/plugins/obsidian-citation-plugin/main.js @@ -0,0 +1,85889 @@ +'use strict'; + +var obsidian = require('obsidian'); +var sysPath = require('path'); +var require$$0$4 = require('events'); +var require$$0$2 = require('util'); +var fs$3 = require('fs'); +var require$$0$3 = require('stream'); +var require$$1$1 = require('os'); + +function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + +var sysPath__default = /*#__PURE__*/_interopDefaultLegacy(sysPath); +var require$$0__default$2 = /*#__PURE__*/_interopDefaultLegacy(require$$0$4); +var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0$2); +var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs$3); +var require$$0__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$0$3); +var require$$1__default = /*#__PURE__*/_interopDefaultLegacy(require$$1$1); + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; + +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +} + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(path, (base === undefined || base === null) ? module.path : base); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +const WIN_SLASH = '\\\\/'; +const WIN_NO_SLASH = `[^${WIN_SLASH}]`; + +/** + * Posix glob regex + */ + +const DOT_LITERAL = '\\.'; +const PLUS_LITERAL = '\\+'; +const QMARK_LITERAL = '\\?'; +const SLASH_LITERAL = '\\/'; +const ONE_CHAR = '(?=.)'; +const QMARK = '[^/]'; +const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; +const START_ANCHOR = `(?:^|${SLASH_LITERAL})`; +const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; +const NO_DOT = `(?!${DOT_LITERAL})`; +const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; +const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; +const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; +const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; +const STAR = `${QMARK}*?`; + +const POSIX_CHARS = { + DOT_LITERAL, + PLUS_LITERAL, + QMARK_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + QMARK, + END_ANCHOR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK_NO_DOT, + STAR, + START_ANCHOR +}; + +/** + * Windows glob regex + */ + +const WINDOWS_CHARS = { + ...POSIX_CHARS, + + SLASH_LITERAL: `[${WIN_SLASH}]`, + QMARK: WIN_NO_SLASH, + STAR: `${WIN_NO_SLASH}*?`, + DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, + NO_DOT: `(?!${DOT_LITERAL})`, + NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, + NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + QMARK_NO_DOT: `[^.${WIN_SLASH}]`, + START_ANCHOR: `(?:^|[${WIN_SLASH}])`, + END_ANCHOR: `(?:[${WIN_SLASH}]|$)` +}; + +/** + * POSIX Bracket Regex + */ + +const POSIX_REGEX_SOURCE = { + alnum: 'a-zA-Z0-9', + alpha: 'a-zA-Z', + ascii: '\\x00-\\x7F', + blank: ' \\t', + cntrl: '\\x00-\\x1F\\x7F', + digit: '0-9', + graph: '\\x21-\\x7E', + lower: 'a-z', + print: '\\x20-\\x7E ', + punct: '\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~', + space: ' \\t\\r\\n\\v\\f', + upper: 'A-Z', + word: 'A-Za-z0-9_', + xdigit: 'A-Fa-f0-9' +}; + +var constants = { + MAX_LENGTH: 1024 * 64, + POSIX_REGEX_SOURCE, + + // regular expressions + REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, + REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, + REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, + REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, + REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, + REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, + + // Replace globs with equivalent patterns to reduce parsing time. + REPLACEMENTS: { + '***': '*', + '**/**': '**', + '**/**/**': '**' + }, + + // Digits + CHAR_0: 48, /* 0 */ + CHAR_9: 57, /* 9 */ + + // Alphabet chars. + CHAR_UPPERCASE_A: 65, /* A */ + CHAR_LOWERCASE_A: 97, /* a */ + CHAR_UPPERCASE_Z: 90, /* Z */ + CHAR_LOWERCASE_Z: 122, /* z */ + + CHAR_LEFT_PARENTHESES: 40, /* ( */ + CHAR_RIGHT_PARENTHESES: 41, /* ) */ + + CHAR_ASTERISK: 42, /* * */ + + // Non-alphabetic chars. + CHAR_AMPERSAND: 38, /* & */ + CHAR_AT: 64, /* @ */ + CHAR_BACKWARD_SLASH: 92, /* \ */ + CHAR_CARRIAGE_RETURN: 13, /* \r */ + CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */ + CHAR_COLON: 58, /* : */ + CHAR_COMMA: 44, /* , */ + CHAR_DOT: 46, /* . */ + CHAR_DOUBLE_QUOTE: 34, /* " */ + CHAR_EQUAL: 61, /* = */ + CHAR_EXCLAMATION_MARK: 33, /* ! */ + CHAR_FORM_FEED: 12, /* \f */ + CHAR_FORWARD_SLASH: 47, /* / */ + CHAR_GRAVE_ACCENT: 96, /* ` */ + CHAR_HASH: 35, /* # */ + CHAR_HYPHEN_MINUS: 45, /* - */ + CHAR_LEFT_ANGLE_BRACKET: 60, /* < */ + CHAR_LEFT_CURLY_BRACE: 123, /* { */ + CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */ + CHAR_LINE_FEED: 10, /* \n */ + CHAR_NO_BREAK_SPACE: 160, /* \u00A0 */ + CHAR_PERCENT: 37, /* % */ + CHAR_PLUS: 43, /* + */ + CHAR_QUESTION_MARK: 63, /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */ + CHAR_RIGHT_CURLY_BRACE: 125, /* } */ + CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */ + CHAR_SEMICOLON: 59, /* ; */ + CHAR_SINGLE_QUOTE: 39, /* ' */ + CHAR_SPACE: 32, /* */ + CHAR_TAB: 9, /* \t */ + CHAR_UNDERSCORE: 95, /* _ */ + CHAR_VERTICAL_LINE: 124, /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \uFEFF */ + + SEP: sysPath__default['default'].sep, + + /** + * Create EXTGLOB_CHARS + */ + + extglobChars(chars) { + return { + '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` }, + '?': { type: 'qmark', open: '(?:', close: ')?' }, + '+': { type: 'plus', open: '(?:', close: ')+' }, + '*': { type: 'star', open: '(?:', close: ')*' }, + '@': { type: 'at', open: '(?:', close: ')' } + }; + }, + + /** + * Create GLOB_CHARS + */ + + globChars(win32) { + return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; + } +}; + +var utils = createCommonjsModule(function (module, exports) { + + +const win32 = process.platform === 'win32'; +const { + REGEX_BACKSLASH, + REGEX_REMOVE_BACKSLASH, + REGEX_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_GLOBAL +} = constants; + +exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); +exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); +exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str); +exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1'); +exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/'); + +exports.removeBackslashes = str => { + return str.replace(REGEX_REMOVE_BACKSLASH, match => { + return match === '\\' ? '' : match; + }); +}; + +exports.supportsLookbehinds = () => { + const segs = process.version.slice(1).split('.').map(Number); + if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) { + return true; + } + return false; +}; + +exports.isWindows = options => { + if (options && typeof options.windows === 'boolean') { + return options.windows; + } + return win32 === true || sysPath__default['default'].sep === '\\'; +}; + +exports.escapeLast = (input, char, lastIdx) => { + const idx = input.lastIndexOf(char, lastIdx); + if (idx === -1) return input; + if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1); + return `${input.slice(0, idx)}\\${input.slice(idx)}`; +}; + +exports.removePrefix = (input, state = {}) => { + let output = input; + if (output.startsWith('./')) { + output = output.slice(2); + state.prefix = './'; + } + return output; +}; + +exports.wrapOutput = (input, state = {}, options = {}) => { + const prepend = options.contains ? '' : '^'; + const append = options.contains ? '' : '$'; + + let output = `${prepend}(?:${input})${append}`; + if (state.negated === true) { + output = `(?:^(?!${output}).*$)`; + } + return output; +}; +}); + +const { + CHAR_ASTERISK, /* * */ + CHAR_AT, /* @ */ + CHAR_BACKWARD_SLASH, /* \ */ + CHAR_COMMA, /* , */ + CHAR_DOT, /* . */ + CHAR_EXCLAMATION_MARK, /* ! */ + CHAR_FORWARD_SLASH, /* / */ + CHAR_LEFT_CURLY_BRACE, /* { */ + CHAR_LEFT_PARENTHESES, /* ( */ + CHAR_LEFT_SQUARE_BRACKET, /* [ */ + CHAR_PLUS, /* + */ + CHAR_QUESTION_MARK, /* ? */ + CHAR_RIGHT_CURLY_BRACE, /* } */ + CHAR_RIGHT_PARENTHESES, /* ) */ + CHAR_RIGHT_SQUARE_BRACKET /* ] */ +} = constants; + +const isPathSeparator = code => { + return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; +}; + +const depth = token => { + if (token.isPrefix !== true) { + token.depth = token.isGlobstar ? Infinity : 1; + } +}; + +/** + * Quickly scans a glob pattern and returns an object with a handful of + * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists), + * `glob` (the actual pattern), and `negated` (true if the path starts with `!`). + * + * ```js + * const pm = require('picomatch'); + * console.log(pm.scan('foo/bar/*.js')); + * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' } + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {Object} Returns an object with tokens and regex source string. + * @api public + */ + +const scan = (input, options) => { + const opts = options || {}; + + const length = input.length - 1; + const scanToEnd = opts.parts === true || opts.scanToEnd === true; + const slashes = []; + const tokens = []; + const parts = []; + + let str = input; + let index = -1; + let start = 0; + let lastIndex = 0; + let isBrace = false; + let isBracket = false; + let isGlob = false; + let isExtglob = false; + let isGlobstar = false; + let braceEscaped = false; + let backslashes = false; + let negated = false; + let finished = false; + let braces = 0; + let prev; + let code; + let token = { value: '', depth: 0, isGlob: false }; + + const eos = () => index >= length; + const peek = () => str.charCodeAt(index + 1); + const advance = () => { + prev = code; + return str.charCodeAt(++index); + }; + + while (index < length) { + code = advance(); + let next; + + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + + if (code === CHAR_LEFT_CURLY_BRACE) { + braceEscaped = true; + } + continue; + } + + if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { + braces++; + + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } + + if (code === CHAR_LEFT_CURLY_BRACE) { + braces++; + continue; + } + + if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (braceEscaped !== true && code === CHAR_COMMA) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (code === CHAR_RIGHT_CURLY_BRACE) { + braces--; + + if (braces === 0) { + braceEscaped = false; + isBrace = token.isBrace = true; + finished = true; + break; + } + } + } + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (code === CHAR_FORWARD_SLASH) { + slashes.push(index); + tokens.push(token); + token = { value: '', depth: 0, isGlob: false }; + + if (finished === true) continue; + if (prev === CHAR_DOT && index === (start + 1)) { + start += 2; + continue; + } + + lastIndex = index + 1; + continue; + } + + if (opts.noext !== true) { + const isExtglobChar = code === CHAR_PLUS + || code === CHAR_AT + || code === CHAR_ASTERISK + || code === CHAR_QUESTION_MARK + || code === CHAR_EXCLAMATION_MARK; + + if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + isExtglob = token.isExtglob = true; + finished = true; + + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + + if (code === CHAR_RIGHT_PARENTHESES) { + isGlob = token.isGlob = true; + finished = true; + break; + } + } + continue; + } + break; + } + } + + if (code === CHAR_ASTERISK) { + if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + break; + } + + if (code === CHAR_QUESTION_MARK) { + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + break; + } + + if (code === CHAR_LEFT_SQUARE_BRACKET) { + while (eos() !== true && (next = advance())) { + if (next === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } + + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + isBracket = token.isBracket = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + break; + } + } + } + + if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { + negated = token.negated = true; + start++; + continue; + } + + if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_LEFT_PARENTHESES) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + + if (code === CHAR_RIGHT_PARENTHESES) { + finished = true; + break; + } + } + continue; + } + break; + } + + if (isGlob === true) { + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; + } + } + + if (opts.noext === true) { + isExtglob = false; + isGlob = false; + } + + let base = str; + let prefix = ''; + let glob = ''; + + if (start > 0) { + prefix = str.slice(0, start); + str = str.slice(start); + lastIndex -= start; + } + + if (base && isGlob === true && lastIndex > 0) { + base = str.slice(0, lastIndex); + glob = str.slice(lastIndex); + } else if (isGlob === true) { + base = ''; + glob = str; + } else { + base = str; + } + + if (base && base !== '' && base !== '/' && base !== str) { + if (isPathSeparator(base.charCodeAt(base.length - 1))) { + base = base.slice(0, -1); + } + } + + if (opts.unescape === true) { + if (glob) glob = utils.removeBackslashes(glob); + + if (base && backslashes === true) { + base = utils.removeBackslashes(base); + } + } + + const state = { + prefix, + input, + start, + base, + glob, + isBrace, + isBracket, + isGlob, + isExtglob, + isGlobstar, + negated + }; + + if (opts.tokens === true) { + state.maxDepth = 0; + if (!isPathSeparator(code)) { + tokens.push(token); + } + state.tokens = tokens; + } + + if (opts.parts === true || opts.tokens === true) { + let prevIndex; + + for (let idx = 0; idx < slashes.length; idx++) { + const n = prevIndex ? prevIndex + 1 : start; + const i = slashes[idx]; + const value = input.slice(n, i); + if (opts.tokens) { + if (idx === 0 && start !== 0) { + tokens[idx].isPrefix = true; + tokens[idx].value = prefix; + } else { + tokens[idx].value = value; + } + depth(tokens[idx]); + state.maxDepth += tokens[idx].depth; + } + if (idx !== 0 || value !== '') { + parts.push(value); + } + prevIndex = i; + } + + if (prevIndex && prevIndex + 1 < input.length) { + const value = input.slice(prevIndex + 1); + parts.push(value); + + if (opts.tokens) { + tokens[tokens.length - 1].value = value; + depth(tokens[tokens.length - 1]); + state.maxDepth += tokens[tokens.length - 1].depth; + } + } + + state.slashes = slashes; + state.parts = parts; + } + + return state; +}; + +var scan_1 = scan; + +/** + * Constants + */ + +const { + MAX_LENGTH, + POSIX_REGEX_SOURCE: POSIX_REGEX_SOURCE$1, + REGEX_NON_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_BACKREF, + REPLACEMENTS +} = constants; + +/** + * Helpers + */ + +const expandRange = (args, options) => { + if (typeof options.expandRange === 'function') { + return options.expandRange(...args, options); + } + + args.sort(); + const value = `[${args.join('-')}]`; + + try { + /* eslint-disable-next-line no-new */ + new RegExp(value); + } catch (ex) { + return args.map(v => utils.escapeRegex(v)).join('..'); + } + + return value; +}; + +/** + * Create the message for a syntax error + */ + +const syntaxError = (type, char) => { + return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; +}; + +/** + * Parse the given input string. + * @param {String} input + * @param {Object} options + * @return {Object} + */ + +const parse = (input, options) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); + } + + input = REPLACEMENTS[input] || input; + + const opts = { ...options }; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + + let len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } + + const bos = { type: 'bos', value: '', output: opts.prepend || '' }; + const tokens = [bos]; + + const capture = opts.capture ? '' : '?:'; + const win32 = utils.isWindows(options); + + // create constants based on platform, for windows or posix + const PLATFORM_CHARS = constants.globChars(win32); + const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS); + + const { + DOT_LITERAL, + PLUS_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK, + QMARK_NO_DOT, + STAR, + START_ANCHOR + } = PLATFORM_CHARS; + + const globstar = (opts) => { + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + + const nodot = opts.dot ? '' : NO_DOT; + const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; + let star = opts.bash === true ? globstar(opts) : STAR; + + if (opts.capture) { + star = `(${star})`; + } + + // minimatch options support + if (typeof opts.noext === 'boolean') { + opts.noextglob = opts.noext; + } + + const state = { + input, + index: -1, + start: 0, + dot: opts.dot === true, + consumed: '', + output: '', + prefix: '', + backtrack: false, + negated: false, + brackets: 0, + braces: 0, + parens: 0, + quotes: 0, + globstar: false, + tokens + }; + + input = utils.removePrefix(input, state); + len = input.length; + + const extglobs = []; + const braces = []; + const stack = []; + let prev = bos; + let value; + + /** + * Tokenizing helpers + */ + + const eos = () => state.index === len - 1; + const peek = state.peek = (n = 1) => input[state.index + n]; + const advance = state.advance = () => input[++state.index]; + const remaining = () => input.slice(state.index + 1); + const consume = (value = '', num = 0) => { + state.consumed += value; + state.index += num; + }; + const append = token => { + state.output += token.output != null ? token.output : token.value; + consume(token.value); + }; + + const negate = () => { + let count = 1; + + while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) { + advance(); + state.start++; + count++; + } + + if (count % 2 === 0) { + return false; + } + + state.negated = true; + state.start++; + return true; + }; + + const increment = type => { + state[type]++; + stack.push(type); + }; + + const decrement = type => { + state[type]--; + stack.pop(); + }; + + /** + * Push tokens onto the tokens array. This helper speeds up + * tokenizing by 1) helping us avoid backtracking as much as possible, + * and 2) helping us avoid creating extra tokens when consecutive + * characters are plain text. This improves performance and simplifies + * lookbehinds. + */ + + const push = tok => { + if (prev.type === 'globstar') { + const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace'); + const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren')); + + if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) { + state.output = state.output.slice(0, -prev.output.length); + prev.type = 'star'; + prev.value = '*'; + prev.output = star; + state.output += prev.output; + } + } + + if (extglobs.length && tok.type !== 'paren' && !EXTGLOB_CHARS[tok.value]) { + extglobs[extglobs.length - 1].inner += tok.value; + } + + if (tok.value || tok.output) append(tok); + if (prev && prev.type === 'text' && tok.type === 'text') { + prev.value += tok.value; + prev.output = (prev.output || '') + tok.value; + return; + } + + tok.prev = prev; + tokens.push(tok); + prev = tok; + }; + + const extglobOpen = (type, value) => { + const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' }; + + token.prev = prev; + token.parens = state.parens; + token.output = state.output; + const output = (opts.capture ? '(' : '') + token.open; + + increment('parens'); + push({ type, value, output: state.output ? '' : ONE_CHAR }); + push({ type: 'paren', extglob: true, value: advance(), output }); + extglobs.push(token); + }; + + const extglobClose = token => { + let output = token.close + (opts.capture ? ')' : ''); + + if (token.type === 'negate') { + let extglobStar = star; + + if (token.inner && token.inner.length > 1 && token.inner.includes('/')) { + extglobStar = globstar(opts); + } + + if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { + output = token.close = `)$))${extglobStar}`; + } + + if (token.prev.type === 'bos' && eos()) { + state.negatedExtglob = true; + } + } + + push({ type: 'paren', extglob: true, value, output }); + decrement('parens'); + }; + + /** + * Fast paths + */ + + if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { + let backslashes = false; + + let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => { + if (first === '\\') { + backslashes = true; + return m; + } + + if (first === '?') { + if (esc) { + return esc + first + (rest ? QMARK.repeat(rest.length) : ''); + } + if (index === 0) { + return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ''); + } + return QMARK.repeat(chars.length); + } + + if (first === '.') { + return DOT_LITERAL.repeat(chars.length); + } + + if (first === '*') { + if (esc) { + return esc + first + (rest ? star : ''); + } + return star; + } + return esc ? m : `\\${m}`; + }); + + if (backslashes === true) { + if (opts.unescape === true) { + output = output.replace(/\\/g, ''); + } else { + output = output.replace(/\\+/g, m => { + return m.length % 2 === 0 ? '\\\\' : (m ? '\\' : ''); + }); + } + } + + if (output === input && opts.contains === true) { + state.output = input; + return state; + } + + state.output = utils.wrapOutput(output, state, options); + return state; + } + + /** + * Tokenize input until we reach end-of-string + */ + + while (!eos()) { + value = advance(); + + if (value === '\u0000') { + continue; + } + + /** + * Escaped characters + */ + + if (value === '\\') { + const next = peek(); + + if (next === '/' && opts.bash !== true) { + continue; + } + + if (next === '.' || next === ';') { + continue; + } + + if (!next) { + value += '\\'; + push({ type: 'text', value }); + continue; + } + + // collapse slashes to reduce potential for exploits + const match = /^\\+/.exec(remaining()); + let slashes = 0; + + if (match && match[0].length > 2) { + slashes = match[0].length; + state.index += slashes; + if (slashes % 2 !== 0) { + value += '\\'; + } + } + + if (opts.unescape === true) { + value = advance() || ''; + } else { + value += advance() || ''; + } + + if (state.brackets === 0) { + push({ type: 'text', value }); + continue; + } + } + + /** + * If we're inside a regex character class, continue + * until we reach the closing bracket. + */ + + if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) { + if (opts.posix !== false && value === ':') { + const inner = prev.value.slice(1); + if (inner.includes('[')) { + prev.posix = true; + + if (inner.includes(':')) { + const idx = prev.value.lastIndexOf('['); + const pre = prev.value.slice(0, idx); + const rest = prev.value.slice(idx + 2); + const posix = POSIX_REGEX_SOURCE$1[rest]; + if (posix) { + prev.value = pre + posix; + state.backtrack = true; + advance(); + + if (!bos.output && tokens.indexOf(prev) === 1) { + bos.output = ONE_CHAR; + } + continue; + } + } + } + } + + if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) { + value = `\\${value}`; + } + + if (value === ']' && (prev.value === '[' || prev.value === '[^')) { + value = `\\${value}`; + } + + if (opts.posix === true && value === '!' && prev.value === '[') { + value = '^'; + } + + prev.value += value; + append({ value }); + continue; + } + + /** + * If we're inside a quoted string, continue + * until we reach the closing double quote. + */ + + if (state.quotes === 1 && value !== '"') { + value = utils.escapeRegex(value); + prev.value += value; + append({ value }); + continue; + } + + /** + * Double quotes + */ + + if (value === '"') { + state.quotes = state.quotes === 1 ? 0 : 1; + if (opts.keepQuotes === true) { + push({ type: 'text', value }); + } + continue; + } + + /** + * Parentheses + */ + + if (value === '(') { + increment('parens'); + push({ type: 'paren', value }); + continue; + } + + if (value === ')') { + if (state.parens === 0 && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('opening', '(')); + } + + const extglob = extglobs[extglobs.length - 1]; + if (extglob && state.parens === extglob.parens + 1) { + extglobClose(extglobs.pop()); + continue; + } + + push({ type: 'paren', value, output: state.parens ? ')' : '\\)' }); + decrement('parens'); + continue; + } + + /** + * Square brackets + */ + + if (value === '[') { + if (opts.nobracket === true || !remaining().includes(']')) { + if (opts.nobracket !== true && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('closing', ']')); + } + + value = `\\${value}`; + } else { + increment('brackets'); + } + + push({ type: 'bracket', value }); + continue; + } + + if (value === ']') { + if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) { + push({ type: 'text', value, output: `\\${value}` }); + continue; + } + + if (state.brackets === 0) { + if (opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('opening', '[')); + } + + push({ type: 'text', value, output: `\\${value}` }); + continue; + } + + decrement('brackets'); + + const prevValue = prev.value.slice(1); + if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) { + value = `/${value}`; + } + + prev.value += value; + append({ value }); + + // when literal brackets are explicitly disabled + // assume we should match with a regex character class + if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) { + continue; + } + + const escaped = utils.escapeRegex(prev.value); + state.output = state.output.slice(0, -prev.value.length); + + // when literal brackets are explicitly enabled + // assume we should escape the brackets to match literal characters + if (opts.literalBrackets === true) { + state.output += escaped; + prev.value = escaped; + continue; + } + + // when the user specifies nothing, try to match both + prev.value = `(${capture}${escaped}|${prev.value})`; + state.output += prev.value; + continue; + } + + /** + * Braces + */ + + if (value === '{' && opts.nobrace !== true) { + increment('braces'); + + const open = { + type: 'brace', + value, + output: '(', + outputIndex: state.output.length, + tokensIndex: state.tokens.length + }; + + braces.push(open); + push(open); + continue; + } + + if (value === '}') { + const brace = braces[braces.length - 1]; + + if (opts.nobrace === true || !brace) { + push({ type: 'text', value, output: value }); + continue; + } + + let output = ')'; + + if (brace.dots === true) { + const arr = tokens.slice(); + const range = []; + + for (let i = arr.length - 1; i >= 0; i--) { + tokens.pop(); + if (arr[i].type === 'brace') { + break; + } + if (arr[i].type !== 'dots') { + range.unshift(arr[i].value); + } + } + + output = expandRange(range, opts); + state.backtrack = true; + } + + if (brace.comma !== true && brace.dots !== true) { + const out = state.output.slice(0, brace.outputIndex); + const toks = state.tokens.slice(brace.tokensIndex); + brace.value = brace.output = '\\{'; + value = output = '\\}'; + state.output = out; + for (const t of toks) { + state.output += (t.output || t.value); + } + } + + push({ type: 'brace', value, output }); + decrement('braces'); + braces.pop(); + continue; + } + + /** + * Pipes + */ + + if (value === '|') { + if (extglobs.length > 0) { + extglobs[extglobs.length - 1].conditions++; + } + push({ type: 'text', value }); + continue; + } + + /** + * Commas + */ + + if (value === ',') { + let output = value; + + const brace = braces[braces.length - 1]; + if (brace && stack[stack.length - 1] === 'braces') { + brace.comma = true; + output = '|'; + } + + push({ type: 'comma', value, output }); + continue; + } + + /** + * Slashes + */ + + if (value === '/') { + // if the beginning of the glob is "./", advance the start + // to the current index, and don't add the "./" characters + // to the state. This greatly simplifies lookbehinds when + // checking for BOS characters like "!" and "." (not "./") + if (prev.type === 'dot' && state.index === state.start + 1) { + state.start = state.index + 1; + state.consumed = ''; + state.output = ''; + tokens.pop(); + prev = bos; // reset "prev" to the first token + continue; + } + + push({ type: 'slash', value, output: SLASH_LITERAL }); + continue; + } + + /** + * Dots + */ + + if (value === '.') { + if (state.braces > 0 && prev.type === 'dot') { + if (prev.value === '.') prev.output = DOT_LITERAL; + const brace = braces[braces.length - 1]; + prev.type = 'dots'; + prev.output += value; + prev.value += value; + brace.dots = true; + continue; + } + + if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') { + push({ type: 'text', value, output: DOT_LITERAL }); + continue; + } + + push({ type: 'dot', value, output: DOT_LITERAL }); + continue; + } + + /** + * Question marks + */ + + if (value === '?') { + const isGroup = prev && prev.value === '('; + if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('qmark', value); + continue; + } + + if (prev && prev.type === 'paren') { + const next = peek(); + let output = value; + + if (next === '<' && !utils.supportsLookbehinds()) { + throw new Error('Node.js v10 or higher is required for regex lookbehinds'); + } + + if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\w+>)/.test(remaining()))) { + output = `\\${value}`; + } + + push({ type: 'text', value, output }); + continue; + } + + if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) { + push({ type: 'qmark', value, output: QMARK_NO_DOT }); + continue; + } + + push({ type: 'qmark', value, output: QMARK }); + continue; + } + + /** + * Exclamation + */ + + if (value === '!') { + if (opts.noextglob !== true && peek() === '(') { + if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) { + extglobOpen('negate', value); + continue; + } + } + + if (opts.nonegate !== true && state.index === 0) { + negate(); + continue; + } + } + + /** + * Plus + */ + + if (value === '+') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('plus', value); + continue; + } + + if ((prev && prev.value === '(') || opts.regex === false) { + push({ type: 'plus', value, output: PLUS_LITERAL }); + continue; + } + + if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) { + push({ type: 'plus', value }); + continue; + } + + push({ type: 'plus', value: PLUS_LITERAL }); + continue; + } + + /** + * Plain text + */ + + if (value === '@') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + push({ type: 'at', extglob: true, value, output: '' }); + continue; + } + + push({ type: 'text', value }); + continue; + } + + /** + * Plain text + */ + + if (value !== '*') { + if (value === '$' || value === '^') { + value = `\\${value}`; + } + + const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); + if (match) { + value += match[0]; + state.index += match[0].length; + } + + push({ type: 'text', value }); + continue; + } + + /** + * Stars + */ + + if (prev && (prev.type === 'globstar' || prev.star === true)) { + prev.type = 'star'; + prev.star = true; + prev.value += value; + prev.output = star; + state.backtrack = true; + state.globstar = true; + consume(value); + continue; + } + + let rest = remaining(); + if (opts.noextglob !== true && /^\([^?]/.test(rest)) { + extglobOpen('star', value); + continue; + } + + if (prev.type === 'star') { + if (opts.noglobstar === true) { + consume(value); + continue; + } + + const prior = prev.prev; + const before = prior.prev; + const isStart = prior.type === 'slash' || prior.type === 'bos'; + const afterStar = before && (before.type === 'star' || before.type === 'globstar'); + + if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) { + push({ type: 'star', value, output: '' }); + continue; + } + + const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace'); + const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren'); + if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) { + push({ type: 'star', value, output: '' }); + continue; + } + + // strip consecutive `/**/` + while (rest.slice(0, 3) === '/**') { + const after = input[state.index + 4]; + if (after && after !== '/') { + break; + } + rest = rest.slice(3); + consume('/**', 3); + } + + if (prior.type === 'bos' && eos()) { + prev.type = 'globstar'; + prev.value += value; + prev.output = globstar(opts); + state.output = prev.output; + state.globstar = true; + consume(value); + continue; + } + + if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) { + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + + prev.type = 'globstar'; + prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)'); + prev.value += value; + state.globstar = true; + state.output += prior.output + prev.output; + consume(value); + continue; + } + + if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') { + const end = rest[1] !== void 0 ? '|$' : ''; + + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + + prev.type = 'globstar'; + prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; + prev.value += value; + + state.output += prior.output + prev.output; + state.globstar = true; + + consume(value + advance()); + + push({ type: 'slash', value: '/', output: '' }); + continue; + } + + if (prior.type === 'bos' && rest[0] === '/') { + prev.type = 'globstar'; + prev.value += value; + prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; + state.output = prev.output; + state.globstar = true; + consume(value + advance()); + push({ type: 'slash', value: '/', output: '' }); + continue; + } + + // remove single star from output + state.output = state.output.slice(0, -prev.output.length); + + // reset previous token to globstar + prev.type = 'globstar'; + prev.output = globstar(opts); + prev.value += value; + + // reset output with globstar + state.output += prev.output; + state.globstar = true; + consume(value); + continue; + } + + const token = { type: 'star', value, output: star }; + + if (opts.bash === true) { + token.output = '.*?'; + if (prev.type === 'bos' || prev.type === 'slash') { + token.output = nodot + token.output; + } + push(token); + continue; + } + + if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) { + token.output = value; + push(token); + continue; + } + + if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') { + if (prev.type === 'dot') { + state.output += NO_DOT_SLASH; + prev.output += NO_DOT_SLASH; + + } else if (opts.dot === true) { + state.output += NO_DOTS_SLASH; + prev.output += NO_DOTS_SLASH; + + } else { + state.output += nodot; + prev.output += nodot; + } + + if (peek() !== '*') { + state.output += ONE_CHAR; + prev.output += ONE_CHAR; + } + } + + push(token); + } + + while (state.brackets > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']')); + state.output = utils.escapeLast(state.output, '['); + decrement('brackets'); + } + + while (state.parens > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')')); + state.output = utils.escapeLast(state.output, '('); + decrement('parens'); + } + + while (state.braces > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}')); + state.output = utils.escapeLast(state.output, '{'); + decrement('braces'); + } + + if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) { + push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` }); + } + + // rebuild the output if we had to backtrack at any point + if (state.backtrack === true) { + state.output = ''; + + for (const token of state.tokens) { + state.output += token.output != null ? token.output : token.value; + + if (token.suffix) { + state.output += token.suffix; + } + } + } + + return state; +}; + +/** + * Fast paths for creating regular expressions for common glob patterns. + * This can significantly speed up processing and has very little downside + * impact when none of the fast paths match. + */ + +parse.fastpaths = (input, options) => { + const opts = { ...options }; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + const len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } + + input = REPLACEMENTS[input] || input; + const win32 = utils.isWindows(options); + + // create constants based on platform, for windows or posix + const { + DOT_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOTS_SLASH, + STAR, + START_ANCHOR + } = constants.globChars(win32); + + const nodot = opts.dot ? NO_DOTS : NO_DOT; + const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; + const capture = opts.capture ? '' : '?:'; + const state = { negated: false, prefix: '' }; + let star = opts.bash === true ? '.*?' : STAR; + + if (opts.capture) { + star = `(${star})`; + } + + const globstar = (opts) => { + if (opts.noglobstar === true) return star; + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + + const create = str => { + switch (str) { + case '*': + return `${nodot}${ONE_CHAR}${star}`; + + case '.*': + return `${DOT_LITERAL}${ONE_CHAR}${star}`; + + case '*.*': + return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + + case '*/*': + return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; + + case '**': + return nodot + globstar(opts); + + case '**/*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; + + case '**/*.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + + case '**/.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; + + default: { + const match = /^(.*?)\.(\w+)$/.exec(str); + if (!match) return; + + const source = create(match[1]); + if (!source) return; + + return source + DOT_LITERAL + match[2]; + } + } + }; + + const output = utils.removePrefix(input, state); + let source = create(output); + + if (source && opts.strictSlashes !== true) { + source += `${SLASH_LITERAL}?`; + } + + return source; +}; + +var parse_1 = parse; + +const isObject = val => val && typeof val === 'object' && !Array.isArray(val); + +/** + * Creates a matcher function from one or more glob patterns. The + * returned function takes a string to match as its first argument, + * and returns true if the string is a match. The returned matcher + * function also takes a boolean as the second argument that, when true, + * returns an object with additional information. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch(glob[, options]); + * + * const isMatch = picomatch('*.!(*a)'); + * console.log(isMatch('a.a')); //=> false + * console.log(isMatch('a.b')); //=> true + * ``` + * @name picomatch + * @param {String|Array} `globs` One or more glob patterns. + * @param {Object=} `options` + * @return {Function=} Returns a matcher function. + * @api public + */ + +const picomatch = (glob, options, returnState = false) => { + if (Array.isArray(glob)) { + const fns = glob.map(input => picomatch(input, options, returnState)); + const arrayMatcher = str => { + for (const isMatch of fns) { + const state = isMatch(str); + if (state) return state; + } + return false; + }; + return arrayMatcher; + } + + const isState = isObject(glob) && glob.tokens && glob.input; + + if (glob === '' || (typeof glob !== 'string' && !isState)) { + throw new TypeError('Expected pattern to be a non-empty string'); + } + + const opts = options || {}; + const posix = utils.isWindows(options); + const regex = isState + ? picomatch.compileRe(glob, options) + : picomatch.makeRe(glob, options, false, true); + + const state = regex.state; + delete regex.state; + + let isIgnored = () => false; + if (opts.ignore) { + const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null }; + isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); + } + + const matcher = (input, returnObject = false) => { + const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix }); + const result = { glob, state, regex, posix, input, output, match, isMatch }; + + if (typeof opts.onResult === 'function') { + opts.onResult(result); + } + + if (isMatch === false) { + result.isMatch = false; + return returnObject ? result : false; + } + + if (isIgnored(input)) { + if (typeof opts.onIgnore === 'function') { + opts.onIgnore(result); + } + result.isMatch = false; + return returnObject ? result : false; + } + + if (typeof opts.onMatch === 'function') { + opts.onMatch(result); + } + return returnObject ? result : true; + }; + + if (returnState) { + matcher.state = state; + } + + return matcher; +}; + +/** + * Test `input` with the given `regex`. This is used by the main + * `picomatch()` function to test the input string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.test(input, regex[, options]); + * + * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); + * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } + * ``` + * @param {String} `input` String to test. + * @param {RegExp} `regex` + * @return {Object} Returns an object with matching info. + * @api public + */ + +picomatch.test = (input, regex, options, { glob, posix } = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected input to be a string'); + } + + if (input === '') { + return { isMatch: false, output: '' }; + } + + const opts = options || {}; + const format = opts.format || (posix ? utils.toPosixSlashes : null); + let match = input === glob; + let output = (match && format) ? format(input) : input; + + if (match === false) { + output = format ? format(input) : input; + match = output === glob; + } + + if (match === false || opts.capture === true) { + if (opts.matchBase === true || opts.basename === true) { + match = picomatch.matchBase(input, regex, options, posix); + } else { + match = regex.exec(output); + } + } + + return { isMatch: Boolean(match), match, output }; +}; + +/** + * Match the basename of a filepath. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.matchBase(input, glob[, options]); + * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true + * ``` + * @param {String} `input` String to test. + * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe). + * @return {Boolean} + * @api public + */ + +picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => { + const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options); + return regex.test(sysPath__default['default'].basename(input)); +}; + +/** + * Returns true if **any** of the given glob `patterns` match the specified `string`. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.isMatch(string, patterns[, options]); + * + * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true + * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false + * ``` + * @param {String|Array} str The string to test. + * @param {String|Array} patterns One or more glob patterns to use for matching. + * @param {Object} [options] See available [options](#options). + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ + +picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); + +/** + * Parse a glob pattern to create the source string for a regular + * expression. + * + * ```js + * const picomatch = require('picomatch'); + * const result = picomatch.parse(pattern[, options]); + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} Returns an object with useful properties and output to be used as a regex source string. + * @api public + */ + +picomatch.parse = (pattern, options) => { + if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options)); + return parse_1(pattern, { ...options, fastpaths: false }); +}; + +/** + * Scan a glob pattern to separate the pattern into segments. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.scan(input[, options]); + * + * const result = picomatch.scan('!./foo/*.js'); + * console.log(result); + * { prefix: '!./', + * input: '!./foo/*.js', + * start: 3, + * base: 'foo', + * glob: '*.js', + * isBrace: false, + * isBracket: false, + * isGlob: true, + * isExtglob: false, + * isGlobstar: false, + * negated: true } + * ``` + * @param {String} `input` Glob pattern to scan. + * @param {Object} `options` + * @return {Object} Returns an object with + * @api public + */ + +picomatch.scan = (input, options) => scan_1(input, options); + +/** + * Create a regular expression from a parsed glob pattern. + * + * ```js + * const picomatch = require('picomatch'); + * const state = picomatch.parse('*.js'); + * // picomatch.compileRe(state[, options]); + * + * console.log(picomatch.compileRe(state)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `state` The object returned from the `.parse` method. + * @param {Object} `options` + * @return {RegExp} Returns a regex created from the given pattern. + * @api public + */ + +picomatch.compileRe = (parsed, options, returnOutput = false, returnState = false) => { + if (returnOutput === true) { + return parsed.output; + } + + const opts = options || {}; + const prepend = opts.contains ? '' : '^'; + const append = opts.contains ? '' : '$'; + + let source = `${prepend}(?:${parsed.output})${append}`; + if (parsed && parsed.negated === true) { + source = `^(?!${source}).*$`; + } + + const regex = picomatch.toRegex(source, options); + if (returnState === true) { + regex.state = parsed; + } + + return regex; +}; + +picomatch.makeRe = (input, options, returnOutput = false, returnState = false) => { + if (!input || typeof input !== 'string') { + throw new TypeError('Expected a non-empty string'); + } + + const opts = options || {}; + let parsed = { negated: false, fastpaths: true }; + let prefix = ''; + let output; + + if (input.startsWith('./')) { + input = input.slice(2); + prefix = parsed.prefix = './'; + } + + if (opts.fastpaths !== false && (input[0] === '.' || input[0] === '*')) { + output = parse_1.fastpaths(input, options); + } + + if (output === undefined) { + parsed = parse_1(input, options); + parsed.prefix = prefix + (parsed.prefix || ''); + } else { + parsed.output = output; + } + + return picomatch.compileRe(parsed, options, returnOutput, returnState); +}; + +/** + * Create a regular expression from the given regex source string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.toRegex(source[, options]); + * + * const { output } = picomatch.parse('*.js'); + * console.log(picomatch.toRegex(output)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `source` Regular expression source string. + * @param {Object} `options` + * @return {RegExp} + * @api public + */ + +picomatch.toRegex = (source, options) => { + try { + const opts = options || {}; + return new RegExp(source, opts.flags || (opts.nocase ? 'i' : '')); + } catch (err) { + if (options && options.debug === true) throw err; + return /$^/; + } +}; + +/** + * Picomatch constants. + * @return {Object} + */ + +picomatch.constants = constants; + +/** + * Expose "picomatch" + */ + +var picomatch_1 = picomatch; + +var picomatch$1 = picomatch_1; + +const { Readable } = require$$0__default$1['default']; + +const { promisify } = require$$0__default['default']; + + +const readdir = promisify(fs__default['default'].readdir); +const stat = promisify(fs__default['default'].stat); +const lstat = promisify(fs__default['default'].lstat); +const realpath = promisify(fs__default['default'].realpath); + +/** + * @typedef {Object} EntryInfo + * @property {String} path + * @property {String} fullPath + * @property {fs.Stats=} stats + * @property {fs.Dirent=} dirent + * @property {String} basename + */ + +const BANG = '!'; +const NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP']); +const FILE_TYPE = 'files'; +const DIR_TYPE = 'directories'; +const FILE_DIR_TYPE = 'files_directories'; +const EVERYTHING_TYPE = 'all'; +const ALL_TYPES = [FILE_TYPE, DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE]; + +const isNormalFlowError = error => NORMAL_FLOW_ERRORS.has(error.code); + +const normalizeFilter = filter => { + if (filter === undefined) return; + if (typeof filter === 'function') return filter; + + if (typeof filter === 'string') { + const glob = picomatch$1(filter.trim()); + return entry => glob(entry.basename); + } + + if (Array.isArray(filter)) { + const positive = []; + const negative = []; + for (const item of filter) { + const trimmed = item.trim(); + if (trimmed.charAt(0) === BANG) { + negative.push(picomatch$1(trimmed.slice(1))); + } else { + positive.push(picomatch$1(trimmed)); + } + } + + if (negative.length > 0) { + if (positive.length > 0) { + return entry => + positive.some(f => f(entry.basename)) && !negative.some(f => f(entry.basename)); + } + return entry => !negative.some(f => f(entry.basename)); + } + return entry => positive.some(f => f(entry.basename)); + } +}; + +class ReaddirpStream extends Readable { + static get defaultOptions() { + return { + root: '.', + /* eslint-disable no-unused-vars */ + fileFilter: (path) => true, + directoryFilter: (path) => true, + /* eslint-enable no-unused-vars */ + type: FILE_TYPE, + lstat: false, + depth: 2147483648, + alwaysStat: false + }; + } + + constructor(options = {}) { + super({ + objectMode: true, + autoDestroy: true, + highWaterMark: options.highWaterMark || 4096 + }); + const opts = { ...ReaddirpStream.defaultOptions, ...options }; + const { root, type } = opts; + + this._fileFilter = normalizeFilter(opts.fileFilter); + this._directoryFilter = normalizeFilter(opts.directoryFilter); + + const statMethod = opts.lstat ? lstat : stat; + // Use bigint stats if it's windows and stat() supports options (node 10+). + if (process.platform === 'win32' && stat.length === 3) { + this._stat = path => statMethod(path, { bigint: true }); + } else { + this._stat = statMethod; + } + + this._maxDepth = opts.depth; + this._wantsDir = [DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); + this._wantsFile = [FILE_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); + this._wantsEverything = type === EVERYTHING_TYPE; + this._root = sysPath__default['default'].resolve(root); + this._isDirent = ('Dirent' in fs__default['default']) && !opts.alwaysStat; + this._statsProp = this._isDirent ? 'dirent' : 'stats'; + this._rdOptions = { encoding: 'utf8', withFileTypes: this._isDirent }; + + // Launch stream with one parent, the root dir. + this.parents = [this._exploreDir(root, 1)]; + this.reading = false; + this.parent = undefined; + } + + async _read(batch) { + if (this.reading) return; + this.reading = true; + + try { + while (!this.destroyed && batch > 0) { + const { path, depth, files = [] } = this.parent || {}; + + if (files.length > 0) { + const slice = files.splice(0, batch).map(dirent => this._formatEntry(dirent, path)); + for (const entry of await Promise.all(slice)) { + if (this.destroyed) return; + + const entryType = await this._getEntryType(entry); + if (entryType === 'directory' && this._directoryFilter(entry)) { + if (depth <= this._maxDepth) { + this.parents.push(this._exploreDir(entry.fullPath, depth + 1)); + } + + if (this._wantsDir) { + this.push(entry); + batch--; + } + } else if ((entryType === 'file' || this._includeAsFile(entry)) && this._fileFilter(entry)) { + if (this._wantsFile) { + this.push(entry); + batch--; + } + } + } + } else { + const parent = this.parents.pop(); + if (!parent) { + this.push(null); + break; + } + this.parent = await parent; + if (this.destroyed) return; + } + } + } catch (error) { + this.destroy(error); + } finally { + this.reading = false; + } + } + + async _exploreDir(path, depth) { + let files; + try { + files = await readdir(path, this._rdOptions); + } catch (error) { + this._onError(error); + } + return {files, depth, path}; + } + + async _formatEntry(dirent, path) { + let entry; + try { + const basename = this._isDirent ? dirent.name : dirent; + const fullPath = sysPath__default['default'].resolve(sysPath__default['default'].join(path, basename)); + entry = {path: sysPath__default['default'].relative(this._root, fullPath), fullPath, basename}; + entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath); + } catch (err) { + this._onError(err); + } + return entry; + } + + _onError(err) { + if (isNormalFlowError(err) && !this.destroyed) { + this.emit('warn', err); + } else { + this.destroy(err); + } + } + + async _getEntryType(entry) { + // entry may be undefined, because a warning or an error were emitted + // and the statsProp is undefined + const stats = entry && entry[this._statsProp]; + if (!stats) { + return; + } + if (stats.isFile()) { + return 'file'; + } + if (stats.isDirectory()) { + return 'directory'; + } + if (stats && stats.isSymbolicLink()) { + const full = entry.fullPath; + try { + const entryRealPath = await realpath(full); + const entryRealPathStats = await lstat(entryRealPath); + if (entryRealPathStats.isFile()) { + return 'file'; + } + if (entryRealPathStats.isDirectory()) { + const len = entryRealPath.length; + if (full.startsWith(entryRealPath) && full.substr(len, 1) === sysPath__default['default'].sep) { + return this._onError(new Error( + `Circular symlink detected: "${full}" points to "${entryRealPath}"` + )); + } + return 'directory'; + } + } catch (error) { + this._onError(error); + } + } + } + + _includeAsFile(entry) { + const stats = entry && entry[this._statsProp]; + + return stats && this._wantsEverything && !stats.isDirectory(); + } +} + +/** + * @typedef {Object} ReaddirpArguments + * @property {Function=} fileFilter + * @property {Function=} directoryFilter + * @property {String=} type + * @property {Number=} depth + * @property {String=} root + * @property {Boolean=} lstat + * @property {Boolean=} bigint + */ + +/** + * Main function which ends up calling readdirRec and reads all files and directories in given root recursively. + * @param {String} root Root directory + * @param {ReaddirpArguments=} options Options to specify root (start directory), filters and recursion depth + */ +const readdirp = (root, options = {}) => { + let type = options.entryType || options.type; + if (type === 'both') type = FILE_DIR_TYPE; // backwards-compatibility + if (type) options.type = type; + if (!root) { + throw new Error('readdirp: root argument is required. Usage: readdirp(root, options)'); + } else if (typeof root !== 'string') { + throw new TypeError('readdirp: root argument must be a string. Usage: readdirp(root, options)'); + } else if (type && !ALL_TYPES.includes(type)) { + throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`); + } + + options.root = root; + return new ReaddirpStream(options); +}; + +const readdirpPromise = (root, options = {}) => { + return new Promise((resolve, reject) => { + const files = []; + readdirp(root, options) + .on('data', entry => files.push(entry)) + .on('end', () => resolve(files)) + .on('error', error => reject(error)); + }); +}; + +readdirp.promise = readdirpPromise; +readdirp.ReaddirpStream = ReaddirpStream; +readdirp.default = readdirp; + +var readdirp_1 = readdirp; + +/*! + * normalize-path + * + * Copyright (c) 2014-2018, Jon Schlinkert. + * Released under the MIT License. + */ + +var normalizePath = function(path, stripTrailing) { + if (typeof path !== 'string') { + throw new TypeError('expected path to be a string'); + } + + if (path === '\\' || path === '/') return '/'; + + var len = path.length; + if (len <= 1) return path; + + // ensure that win32 namespaces has two leading slashes, so that the path is + // handled properly by the win32 version of path.parse() after being normalized + // https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces + var prefix = ''; + if (len > 4 && path[3] === '\\') { + var ch = path[2]; + if ((ch === '?' || ch === '.') && path.slice(0, 2) === '\\\\') { + path = path.slice(2); + prefix = '//'; + } + } + + var segs = path.split(/[/\\]+/); + if (stripTrailing !== false && segs[segs.length - 1] === '') { + segs.pop(); + } + return prefix + segs.join('/'); +}; + +var anymatch_1 = createCommonjsModule(function (module, exports) { + +Object.defineProperty(exports, "__esModule", { value: true }); + + + + +/** + * @typedef {(testString: string) => boolean} AnymatchFn + * @typedef {string|RegExp|AnymatchFn} AnymatchPattern + * @typedef {AnymatchPattern|AnymatchPattern[]} AnymatchMatcher + */ +const BANG = '!'; +const DEFAULT_OPTIONS = {returnIndex: false}; +const arrify = (item) => Array.isArray(item) ? item : [item]; + +/** + * @param {AnymatchPattern} matcher + * @param {object} options + * @returns {AnymatchFn} + */ +const createPattern = (matcher, options) => { + if (typeof matcher === 'function') { + return matcher; + } + if (typeof matcher === 'string') { + const glob = picomatch$1(matcher, options); + return (string) => matcher === string || glob(string); + } + if (matcher instanceof RegExp) { + return (string) => matcher.test(string); + } + return (string) => false; +}; + +/** + * @param {Array} patterns + * @param {Array} negPatterns + * @param {String|Array} args + * @param {Boolean} returnIndex + * @returns {boolean|number} + */ +const matchPatterns = (patterns, negPatterns, args, returnIndex) => { + const isList = Array.isArray(args); + const _path = isList ? args[0] : args; + if (!isList && typeof _path !== 'string') { + throw new TypeError('anymatch: second argument must be a string: got ' + + Object.prototype.toString.call(_path)) + } + const path = normalizePath(_path); + + for (let index = 0; index < negPatterns.length; index++) { + const nglob = negPatterns[index]; + if (nglob(path)) { + return returnIndex ? -1 : false; + } + } + + const applied = isList && [path].concat(args.slice(1)); + for (let index = 0; index < patterns.length; index++) { + const pattern = patterns[index]; + if (isList ? pattern(...applied) : pattern(path)) { + return returnIndex ? index : true; + } + } + + return returnIndex ? -1 : false; +}; + +/** + * @param {AnymatchMatcher} matchers + * @param {Array|string} testString + * @param {object} options + * @returns {boolean|number|Function} + */ +const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => { + if (matchers == null) { + throw new TypeError('anymatch: specify first argument'); + } + const opts = typeof options === 'boolean' ? {returnIndex: options} : options; + const returnIndex = opts.returnIndex || false; + + // Early cache for matchers. + const mtchers = arrify(matchers); + const negatedGlobs = mtchers + .filter(item => typeof item === 'string' && item.charAt(0) === BANG) + .map(item => item.slice(1)) + .map(item => picomatch$1(item, opts)); + const patterns = mtchers.map(matcher => createPattern(matcher, opts)); + + if (testString == null) { + return (testString, ri = false) => { + const returnIndex = typeof ri === 'boolean' ? ri : false; + return matchPatterns(patterns, negatedGlobs, testString, returnIndex); + } + } + + return matchPatterns(patterns, negatedGlobs, testString, returnIndex); +}; + +anymatch.default = anymatch; +module.exports = anymatch; +}); + +/*! + * is-extglob + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + */ + +var isExtglob = function isExtglob(str) { + if (typeof str !== 'string' || str === '') { + return false; + } + + var match; + while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) { + if (match[2]) return true; + str = str.slice(match.index + match[0].length); + } + + return false; +}; + +/*! + * is-glob + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + + +var chars = { '{': '}', '(': ')', '[': ']'}; +var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/; +var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/; + +var isGlob = function isGlob(str, options) { + if (typeof str !== 'string' || str === '') { + return false; + } + + if (isExtglob(str)) { + return true; + } + + var regex = strictRegex; + var match; + + // optionally relax regex + if (options && options.strict === false) { + regex = relaxedRegex; + } + + while ((match = regex.exec(str))) { + if (match[2]) return true; + var idx = match.index + match[0].length; + + // if an open bracket/brace/paren is escaped, + // set the index to the next closing character + var open = match[1]; + var close = open ? chars[open] : null; + if (open && close) { + var n = str.indexOf(close, idx); + if (n !== -1) { + idx = n + 1; + } + } + + str = str.slice(idx); + } + return false; +}; + +var pathPosixDirname = sysPath__default['default'].posix.dirname; +var isWin32 = require$$1__default['default'].platform() === 'win32'; + +var slash = '/'; +var backslash = /\\/g; +var enclosure = /[\{\[].*[\/]*.*[\}\]]$/; +var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; +var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; + +/** + * @param {string} str + * @param {Object} opts + * @param {boolean} [opts.flipBackslashes=true] + */ +var globParent = function globParent(str, opts) { + var options = Object.assign({ flipBackslashes: true }, opts); + + // flip windows path separators + if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { + str = str.replace(backslash, slash); + } + + // special case for strings ending in enclosure containing path separator + if (enclosure.test(str)) { + str += slash; + } + + // preserves full path in case of trailing path separator + str += 'a'; + + // remove path parts that are globby + do { + str = pathPosixDirname(str); + } while (isGlob(str) || globby.test(str)); + + // remove escape chars and return result + return str.replace(escaped, '$1'); +}; + +var utils$1 = createCommonjsModule(function (module, exports) { + +exports.isInteger = num => { + if (typeof num === 'number') { + return Number.isInteger(num); + } + if (typeof num === 'string' && num.trim() !== '') { + return Number.isInteger(Number(num)); + } + return false; +}; + +/** + * Find a node of the given type + */ + +exports.find = (node, type) => node.nodes.find(node => node.type === type); + +/** + * Find a node of the given type + */ + +exports.exceedsLimit = (min, max, step = 1, limit) => { + if (limit === false) return false; + if (!exports.isInteger(min) || !exports.isInteger(max)) return false; + return ((Number(max) - Number(min)) / Number(step)) >= limit; +}; + +/** + * Escape the given node with '\\' before node.value + */ + +exports.escapeNode = (block, n = 0, type) => { + let node = block.nodes[n]; + if (!node) return; + + if ((type && node.type === type) || node.type === 'open' || node.type === 'close') { + if (node.escaped !== true) { + node.value = '\\' + node.value; + node.escaped = true; + } + } +}; + +/** + * Returns true if the given brace node should be enclosed in literal braces + */ + +exports.encloseBrace = node => { + if (node.type !== 'brace') return false; + if ((node.commas >> 0 + node.ranges >> 0) === 0) { + node.invalid = true; + return true; + } + return false; +}; + +/** + * Returns true if a brace node is invalid. + */ + +exports.isInvalidBrace = block => { + if (block.type !== 'brace') return false; + if (block.invalid === true || block.dollar) return true; + if ((block.commas >> 0 + block.ranges >> 0) === 0) { + block.invalid = true; + return true; + } + if (block.open !== true || block.close !== true) { + block.invalid = true; + return true; + } + return false; +}; + +/** + * Returns true if a node is an open or close node + */ + +exports.isOpenOrClose = node => { + if (node.type === 'open' || node.type === 'close') { + return true; + } + return node.open === true || node.close === true; +}; + +/** + * Reduce an array of text nodes. + */ + +exports.reduce = nodes => nodes.reduce((acc, node) => { + if (node.type === 'text') acc.push(node.value); + if (node.type === 'range') node.type = 'text'; + return acc; +}, []); + +/** + * Flatten an array + */ + +exports.flatten = (...args) => { + const result = []; + const flat = arr => { + for (let i = 0; i < arr.length; i++) { + let ele = arr[i]; + Array.isArray(ele) ? flat(ele) : ele !== void 0 && result.push(ele); + } + return result; + }; + flat(args); + return result; +}; +}); + +var stringify = (ast, options = {}) => { + let stringify = (node, parent = {}) => { + let invalidBlock = options.escapeInvalid && utils$1.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let output = ''; + + if (node.value) { + if ((invalidBlock || invalidNode) && utils$1.isOpenOrClose(node)) { + return '\\' + node.value; + } + return node.value; + } + + if (node.value) { + return node.value; + } + + if (node.nodes) { + for (let child of node.nodes) { + output += stringify(child); + } + } + return output; + }; + + return stringify(ast); +}; + +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ + +var isNumber = function(num) { + if (typeof num === 'number') { + return num - num === 0; + } + if (typeof num === 'string' && num.trim() !== '') { + return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); + } + return false; +}; + +const toRegexRange = (min, max, options) => { + if (isNumber(min) === false) { + throw new TypeError('toRegexRange: expected the first argument to be a number'); + } + + if (max === void 0 || min === max) { + return String(min); + } + + if (isNumber(max) === false) { + throw new TypeError('toRegexRange: expected the second argument to be a number.'); + } + + let opts = { relaxZeros: true, ...options }; + if (typeof opts.strictZeros === 'boolean') { + opts.relaxZeros = opts.strictZeros === false; + } + + let relax = String(opts.relaxZeros); + let shorthand = String(opts.shorthand); + let capture = String(opts.capture); + let wrap = String(opts.wrap); + let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap; + + if (toRegexRange.cache.hasOwnProperty(cacheKey)) { + return toRegexRange.cache[cacheKey].result; + } + + let a = Math.min(min, max); + let b = Math.max(min, max); + + if (Math.abs(a - b) === 1) { + let result = min + '|' + max; + if (opts.capture) { + return `(${result})`; + } + if (opts.wrap === false) { + return result; + } + return `(?:${result})`; + } + + let isPadded = hasPadding(min) || hasPadding(max); + let state = { min, max, a, b }; + let positives = []; + let negatives = []; + + if (isPadded) { + state.isPadded = isPadded; + state.maxLen = String(state.max).length; + } + + if (a < 0) { + let newMin = b < 0 ? Math.abs(b) : 1; + negatives = splitToPatterns(newMin, Math.abs(a), state, opts); + a = state.a = 0; + } + + if (b >= 0) { + positives = splitToPatterns(a, b, state, opts); + } + + state.negatives = negatives; + state.positives = positives; + state.result = collatePatterns(negatives, positives); + + if (opts.capture === true) { + state.result = `(${state.result})`; + } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) { + state.result = `(?:${state.result})`; + } + + toRegexRange.cache[cacheKey] = state; + return state.result; +}; + +function collatePatterns(neg, pos, options) { + let onlyNegative = filterPatterns(neg, pos, '-', false) || []; + let onlyPositive = filterPatterns(pos, neg, '', false) || []; + let intersected = filterPatterns(neg, pos, '-?', true) || []; + let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); + return subpatterns.join('|'); +} + +function splitToRanges(min, max) { + let nines = 1; + let zeros = 1; + + let stop = countNines(min, nines); + let stops = new Set([max]); + + while (min <= stop && stop <= max) { + stops.add(stop); + nines += 1; + stop = countNines(min, nines); + } + + stop = countZeros(max + 1, zeros) - 1; + + while (min < stop && stop <= max) { + stops.add(stop); + zeros += 1; + stop = countZeros(max + 1, zeros) - 1; + } + + stops = [...stops]; + stops.sort(compare); + return stops; +} + +/** + * Convert a range to a regex pattern + * @param {Number} `start` + * @param {Number} `stop` + * @return {String} + */ + +function rangeToPattern(start, stop, options) { + if (start === stop) { + return { pattern: start, count: [], digits: 0 }; + } + + let zipped = zip(start, stop); + let digits = zipped.length; + let pattern = ''; + let count = 0; + + for (let i = 0; i < digits; i++) { + let [startDigit, stopDigit] = zipped[i]; + + if (startDigit === stopDigit) { + pattern += startDigit; + + } else if (startDigit !== '0' || stopDigit !== '9') { + pattern += toCharacterClass(startDigit, stopDigit); + + } else { + count++; + } + } + + if (count) { + pattern += options.shorthand === true ? '\\d' : '[0-9]'; + } + + return { pattern, count: [count], digits }; +} + +function splitToPatterns(min, max, tok, options) { + let ranges = splitToRanges(min, max); + let tokens = []; + let start = min; + let prev; + + for (let i = 0; i < ranges.length; i++) { + let max = ranges[i]; + let obj = rangeToPattern(String(start), String(max), options); + let zeros = ''; + + if (!tok.isPadded && prev && prev.pattern === obj.pattern) { + if (prev.count.length > 1) { + prev.count.pop(); + } + + prev.count.push(obj.count[0]); + prev.string = prev.pattern + toQuantifier(prev.count); + start = max + 1; + continue; + } + + if (tok.isPadded) { + zeros = padZeros(max, tok, options); + } + + obj.string = zeros + obj.pattern + toQuantifier(obj.count); + tokens.push(obj); + start = max + 1; + prev = obj; + } + + return tokens; +} + +function filterPatterns(arr, comparison, prefix, intersection, options) { + let result = []; + + for (let ele of arr) { + let { string } = ele; + + // only push if _both_ are negative... + if (!intersection && !contains(comparison, 'string', string)) { + result.push(prefix + string); + } + + // or _both_ are positive + if (intersection && contains(comparison, 'string', string)) { + result.push(prefix + string); + } + } + return result; +} + +/** + * Zip strings + */ + +function zip(a, b) { + let arr = []; + for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]); + return arr; +} + +function compare(a, b) { + return a > b ? 1 : b > a ? -1 : 0; +} + +function contains(arr, key, val) { + return arr.some(ele => ele[key] === val); +} + +function countNines(min, len) { + return Number(String(min).slice(0, -len) + '9'.repeat(len)); +} + +function countZeros(integer, zeros) { + return integer - (integer % Math.pow(10, zeros)); +} + +function toQuantifier(digits) { + let [start = 0, stop = ''] = digits; + if (stop || start > 1) { + return `{${start + (stop ? ',' + stop : '')}}`; + } + return ''; +} + +function toCharacterClass(a, b, options) { + return `[${a}${(b - a === 1) ? '' : '-'}${b}]`; +} + +function hasPadding(str) { + return /^-?(0+)\d/.test(str); +} + +function padZeros(value, tok, options) { + if (!tok.isPadded) { + return value; + } + + let diff = Math.abs(tok.maxLen - String(value).length); + let relax = options.relaxZeros !== false; + + switch (diff) { + case 0: + return ''; + case 1: + return relax ? '0?' : '0'; + case 2: + return relax ? '0{0,2}' : '00'; + default: { + return relax ? `0{0,${diff}}` : `0{${diff}}`; + } + } +} + +/** + * Cache + */ + +toRegexRange.cache = {}; +toRegexRange.clearCache = () => (toRegexRange.cache = {}); + +/** + * Expose `toRegexRange` + */ + +var toRegexRange_1 = toRegexRange; + +const isObject$1 = val => val !== null && typeof val === 'object' && !Array.isArray(val); + +const transform = toNumber => { + return value => toNumber === true ? Number(value) : String(value); +}; + +const isValidValue = value => { + return typeof value === 'number' || (typeof value === 'string' && value !== ''); +}; + +const isNumber$1 = num => Number.isInteger(+num); + +const zeros = input => { + let value = `${input}`; + let index = -1; + if (value[0] === '-') value = value.slice(1); + if (value === '0') return false; + while (value[++index] === '0'); + return index > 0; +}; + +const stringify$1 = (start, end, options) => { + if (typeof start === 'string' || typeof end === 'string') { + return true; + } + return options.stringify === true; +}; + +const pad = (input, maxLength, toNumber) => { + if (maxLength > 0) { + let dash = input[0] === '-' ? '-' : ''; + if (dash) input = input.slice(1); + input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0')); + } + if (toNumber === false) { + return String(input); + } + return input; +}; + +const toMaxLen = (input, maxLength) => { + let negative = input[0] === '-' ? '-' : ''; + if (negative) { + input = input.slice(1); + maxLength--; + } + while (input.length < maxLength) input = '0' + input; + return negative ? ('-' + input) : input; +}; + +const toSequence = (parts, options) => { + parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + + let prefix = options.capture ? '' : '?:'; + let positives = ''; + let negatives = ''; + let result; + + if (parts.positives.length) { + positives = parts.positives.join('|'); + } + + if (parts.negatives.length) { + negatives = `-(${prefix}${parts.negatives.join('|')})`; + } + + if (positives && negatives) { + result = `${positives}|${negatives}`; + } else { + result = positives || negatives; + } + + if (options.wrap) { + return `(${prefix}${result})`; + } + + return result; +}; + +const toRange = (a, b, isNumbers, options) => { + if (isNumbers) { + return toRegexRange_1(a, b, { wrap: false, ...options }); + } + + let start = String.fromCharCode(a); + if (a === b) return start; + + let stop = String.fromCharCode(b); + return `[${start}-${stop}]`; +}; + +const toRegex = (start, end, options) => { + if (Array.isArray(start)) { + let wrap = options.wrap === true; + let prefix = options.capture ? '' : '?:'; + return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); + } + return toRegexRange_1(start, end, options); +}; + +const rangeError = (...args) => { + return new RangeError('Invalid range arguments: ' + require$$0__default['default'].inspect(...args)); +}; + +const invalidRange = (start, end, options) => { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; +}; + +const invalidStep = (step, options) => { + if (options.strictRanges === true) { + throw new TypeError(`Expected step "${step}" to be a number`); + } + return []; +}; + +const fillNumbers = (start, end, step = 1, options = {}) => { + let a = Number(start); + let b = Number(end); + + if (!Number.isInteger(a) || !Number.isInteger(b)) { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; + } + + // fix negative zero + if (a === 0) a = 0; + if (b === 0) b = 0; + + let descending = a > b; + let startString = String(start); + let endString = String(end); + let stepString = String(step); + step = Math.max(Math.abs(step), 1); + + let padded = zeros(startString) || zeros(endString) || zeros(stepString); + let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; + let toNumber = padded === false && stringify$1(start, end, options) === false; + let format = options.transform || transform(toNumber); + + if (options.toRegex && step === 1) { + return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); + } + + let parts = { negatives: [], positives: [] }; + let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); + let range = []; + let index = 0; + + while (descending ? a >= b : a <= b) { + if (options.toRegex === true && step > 1) { + push(a); + } else { + range.push(pad(format(a, index), maxLen, toNumber)); + } + a = descending ? a - step : a + step; + index++; + } + + if (options.toRegex === true) { + return step > 1 + ? toSequence(parts, options) + : toRegex(range, null, { wrap: false, ...options }); + } + + return range; +}; + +const fillLetters = (start, end, step = 1, options = {}) => { + if ((!isNumber$1(start) && start.length > 1) || (!isNumber$1(end) && end.length > 1)) { + return invalidRange(start, end, options); + } + + + let format = options.transform || (val => String.fromCharCode(val)); + let a = `${start}`.charCodeAt(0); + let b = `${end}`.charCodeAt(0); + + let descending = a > b; + let min = Math.min(a, b); + let max = Math.max(a, b); + + if (options.toRegex && step === 1) { + return toRange(min, max, false, options); + } + + let range = []; + let index = 0; + + while (descending ? a >= b : a <= b) { + range.push(format(a, index)); + a = descending ? a - step : a + step; + index++; + } + + if (options.toRegex === true) { + return toRegex(range, null, { wrap: false, options }); + } + + return range; +}; + +const fill = (start, end, step, options = {}) => { + if (end == null && isValidValue(start)) { + return [start]; + } + + if (!isValidValue(start) || !isValidValue(end)) { + return invalidRange(start, end, options); + } + + if (typeof step === 'function') { + return fill(start, end, 1, { transform: step }); + } + + if (isObject$1(step)) { + return fill(start, end, 0, step); + } + + let opts = { ...options }; + if (opts.capture === true) opts.wrap = true; + step = step || opts.step || 1; + + if (!isNumber$1(step)) { + if (step != null && !isObject$1(step)) return invalidStep(step, opts); + return fill(start, end, 1, step); + } + + if (isNumber$1(start) && isNumber$1(end)) { + return fillNumbers(start, end, step, opts); + } + + return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); +}; + +var fillRange = fill; + +const compile = (ast, options = {}) => { + let walk = (node, parent = {}) => { + let invalidBlock = utils$1.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let invalid = invalidBlock === true || invalidNode === true; + let prefix = options.escapeInvalid === true ? '\\' : ''; + let output = ''; + + if (node.isOpen === true) { + return prefix + node.value; + } + if (node.isClose === true) { + return prefix + node.value; + } + + if (node.type === 'open') { + return invalid ? (prefix + node.value) : '('; + } + + if (node.type === 'close') { + return invalid ? (prefix + node.value) : ')'; + } + + if (node.type === 'comma') { + return node.prev.type === 'comma' ? '' : (invalid ? node.value : '|'); + } + + if (node.value) { + return node.value; + } + + if (node.nodes && node.ranges > 0) { + let args = utils$1.reduce(node.nodes); + let range = fillRange(...args, { ...options, wrap: false, toRegex: true }); + + if (range.length !== 0) { + return args.length > 1 && range.length > 1 ? `(${range})` : range; + } + } + + if (node.nodes) { + for (let child of node.nodes) { + output += walk(child, node); + } + } + return output; + }; + + return walk(ast); +}; + +var compile_1 = compile; + +const append = (queue = '', stash = '', enclose = false) => { + let result = []; + + queue = [].concat(queue); + stash = [].concat(stash); + + if (!stash.length) return queue; + if (!queue.length) { + return enclose ? utils$1.flatten(stash).map(ele => `{${ele}}`) : stash; + } + + for (let item of queue) { + if (Array.isArray(item)) { + for (let value of item) { + result.push(append(value, stash, enclose)); + } + } else { + for (let ele of stash) { + if (enclose === true && typeof ele === 'string') ele = `{${ele}}`; + result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele)); + } + } + } + return utils$1.flatten(result); +}; + +const expand = (ast, options = {}) => { + let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit; + + let walk = (node, parent = {}) => { + node.queue = []; + + let p = parent; + let q = parent.queue; + + while (p.type !== 'brace' && p.type !== 'root' && p.parent) { + p = p.parent; + q = p.queue; + } + + if (node.invalid || node.dollar) { + q.push(append(q.pop(), stringify(node, options))); + return; + } + + if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) { + q.push(append(q.pop(), ['{}'])); + return; + } + + if (node.nodes && node.ranges > 0) { + let args = utils$1.reduce(node.nodes); + + if (utils$1.exceedsLimit(...args, options.step, rangeLimit)) { + throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); + } + + let range = fillRange(...args, options); + if (range.length === 0) { + range = stringify(node, options); + } + + q.push(append(q.pop(), range)); + node.nodes = []; + return; + } + + let enclose = utils$1.encloseBrace(node); + let queue = node.queue; + let block = node; + + while (block.type !== 'brace' && block.type !== 'root' && block.parent) { + block = block.parent; + queue = block.queue; + } + + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i]; + + if (child.type === 'comma' && node.type === 'brace') { + if (i === 1) queue.push(''); + queue.push(''); + continue; + } + + if (child.type === 'close') { + q.push(append(q.pop(), queue, enclose)); + continue; + } + + if (child.value && child.type !== 'open') { + queue.push(append(queue.pop(), child.value)); + continue; + } + + if (child.nodes) { + walk(child, node); + } + } + + return queue; + }; + + return utils$1.flatten(walk(ast)); +}; + +var expand_1 = expand; + +var constants$1 = { + MAX_LENGTH: 1024 * 64, + + // Digits + CHAR_0: '0', /* 0 */ + CHAR_9: '9', /* 9 */ + + // Alphabet chars. + CHAR_UPPERCASE_A: 'A', /* A */ + CHAR_LOWERCASE_A: 'a', /* a */ + CHAR_UPPERCASE_Z: 'Z', /* Z */ + CHAR_LOWERCASE_Z: 'z', /* z */ + + CHAR_LEFT_PARENTHESES: '(', /* ( */ + CHAR_RIGHT_PARENTHESES: ')', /* ) */ + + CHAR_ASTERISK: '*', /* * */ + + // Non-alphabetic chars. + CHAR_AMPERSAND: '&', /* & */ + CHAR_AT: '@', /* @ */ + CHAR_BACKSLASH: '\\', /* \ */ + CHAR_BACKTICK: '`', /* ` */ + CHAR_CARRIAGE_RETURN: '\r', /* \r */ + CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */ + CHAR_COLON: ':', /* : */ + CHAR_COMMA: ',', /* , */ + CHAR_DOLLAR: '$', /* . */ + CHAR_DOT: '.', /* . */ + CHAR_DOUBLE_QUOTE: '"', /* " */ + CHAR_EQUAL: '=', /* = */ + CHAR_EXCLAMATION_MARK: '!', /* ! */ + CHAR_FORM_FEED: '\f', /* \f */ + CHAR_FORWARD_SLASH: '/', /* / */ + CHAR_HASH: '#', /* # */ + CHAR_HYPHEN_MINUS: '-', /* - */ + CHAR_LEFT_ANGLE_BRACKET: '<', /* < */ + CHAR_LEFT_CURLY_BRACE: '{', /* { */ + CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */ + CHAR_LINE_FEED: '\n', /* \n */ + CHAR_NO_BREAK_SPACE: '\u00A0', /* \u00A0 */ + CHAR_PERCENT: '%', /* % */ + CHAR_PLUS: '+', /* + */ + CHAR_QUESTION_MARK: '?', /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */ + CHAR_RIGHT_CURLY_BRACE: '}', /* } */ + CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */ + CHAR_SEMICOLON: ';', /* ; */ + CHAR_SINGLE_QUOTE: '\'', /* ' */ + CHAR_SPACE: ' ', /* */ + CHAR_TAB: '\t', /* \t */ + CHAR_UNDERSCORE: '_', /* _ */ + CHAR_VERTICAL_LINE: '|', /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' /* \uFEFF */ +}; + +/** + * Constants + */ + +const { + MAX_LENGTH: MAX_LENGTH$1, + CHAR_BACKSLASH, /* \ */ + CHAR_BACKTICK, /* ` */ + CHAR_COMMA: CHAR_COMMA$1, /* , */ + CHAR_DOT: CHAR_DOT$1, /* . */ + CHAR_LEFT_PARENTHESES: CHAR_LEFT_PARENTHESES$1, /* ( */ + CHAR_RIGHT_PARENTHESES: CHAR_RIGHT_PARENTHESES$1, /* ) */ + CHAR_LEFT_CURLY_BRACE: CHAR_LEFT_CURLY_BRACE$1, /* { */ + CHAR_RIGHT_CURLY_BRACE: CHAR_RIGHT_CURLY_BRACE$1, /* } */ + CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$1, /* [ */ + CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$1, /* ] */ + CHAR_DOUBLE_QUOTE, /* " */ + CHAR_SINGLE_QUOTE, /* ' */ + CHAR_NO_BREAK_SPACE, + CHAR_ZERO_WIDTH_NOBREAK_SPACE +} = constants$1; + +/** + * parse + */ + +const parse$1 = (input, options = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); + } + + let opts = options || {}; + let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$1, opts.maxLength) : MAX_LENGTH$1; + if (input.length > max) { + throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); + } + + let ast = { type: 'root', input, nodes: [] }; + let stack = [ast]; + let block = ast; + let prev = ast; + let brackets = 0; + let length = input.length; + let index = 0; + let depth = 0; + let value; + + /** + * Helpers + */ + + const advance = () => input[index++]; + const push = node => { + if (node.type === 'text' && prev.type === 'dot') { + prev.type = 'text'; + } + + if (prev && prev.type === 'text' && node.type === 'text') { + prev.value += node.value; + return; + } + + block.nodes.push(node); + node.parent = block; + node.prev = prev; + prev = node; + return node; + }; + + push({ type: 'bos' }); + + while (index < length) { + block = stack[stack.length - 1]; + value = advance(); + + /** + * Invalid chars + */ + + if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { + continue; + } + + /** + * Escaped chars + */ + + if (value === CHAR_BACKSLASH) { + push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() }); + continue; + } + + /** + * Right square bracket (literal): ']' + */ + + if (value === CHAR_RIGHT_SQUARE_BRACKET$1) { + push({ type: 'text', value: '\\' + value }); + continue; + } + + /** + * Left square bracket: '[' + */ + + if (value === CHAR_LEFT_SQUARE_BRACKET$1) { + brackets++; + let next; + + while (index < length && (next = advance())) { + value += next; + + if (next === CHAR_LEFT_SQUARE_BRACKET$1) { + brackets++; + continue; + } + + if (next === CHAR_BACKSLASH) { + value += advance(); + continue; + } + + if (next === CHAR_RIGHT_SQUARE_BRACKET$1) { + brackets--; + + if (brackets === 0) { + break; + } + } + } + + push({ type: 'text', value }); + continue; + } + + /** + * Parentheses + */ + + if (value === CHAR_LEFT_PARENTHESES$1) { + block = push({ type: 'paren', nodes: [] }); + stack.push(block); + push({ type: 'text', value }); + continue; + } + + if (value === CHAR_RIGHT_PARENTHESES$1) { + if (block.type !== 'paren') { + push({ type: 'text', value }); + continue; + } + block = stack.pop(); + push({ type: 'text', value }); + block = stack[stack.length - 1]; + continue; + } + + /** + * Quotes: '|"|` + */ + + if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { + let open = value; + let next; + + if (options.keepQuotes !== true) { + value = ''; + } + + while (index < length && (next = advance())) { + if (next === CHAR_BACKSLASH) { + value += next + advance(); + continue; + } + + if (next === open) { + if (options.keepQuotes === true) value += next; + break; + } + + value += next; + } + + push({ type: 'text', value }); + continue; + } + + /** + * Left curly brace: '{' + */ + + if (value === CHAR_LEFT_CURLY_BRACE$1) { + depth++; + + let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; + let brace = { + type: 'brace', + open: true, + close: false, + dollar, + depth, + commas: 0, + ranges: 0, + nodes: [] + }; + + block = push(brace); + stack.push(block); + push({ type: 'open', value }); + continue; + } + + /** + * Right curly brace: '}' + */ + + if (value === CHAR_RIGHT_CURLY_BRACE$1) { + if (block.type !== 'brace') { + push({ type: 'text', value }); + continue; + } + + let type = 'close'; + block = stack.pop(); + block.close = true; + + push({ type, value }); + depth--; + + block = stack[stack.length - 1]; + continue; + } + + /** + * Comma: ',' + */ + + if (value === CHAR_COMMA$1 && depth > 0) { + if (block.ranges > 0) { + block.ranges = 0; + let open = block.nodes.shift(); + block.nodes = [open, { type: 'text', value: stringify(block) }]; + } + + push({ type: 'comma', value }); + block.commas++; + continue; + } + + /** + * Dot: '.' + */ + + if (value === CHAR_DOT$1 && depth > 0 && block.commas === 0) { + let siblings = block.nodes; + + if (depth === 0 || siblings.length === 0) { + push({ type: 'text', value }); + continue; + } + + if (prev.type === 'dot') { + block.range = []; + prev.value += value; + prev.type = 'range'; + + if (block.nodes.length !== 3 && block.nodes.length !== 5) { + block.invalid = true; + block.ranges = 0; + prev.type = 'text'; + continue; + } + + block.ranges++; + block.args = []; + continue; + } + + if (prev.type === 'range') { + siblings.pop(); + + let before = siblings[siblings.length - 1]; + before.value += prev.value + value; + prev = before; + block.ranges--; + continue; + } + + push({ type: 'dot', value }); + continue; + } + + /** + * Text + */ + + push({ type: 'text', value }); + } + + // Mark imbalanced braces and brackets as invalid + do { + block = stack.pop(); + + if (block.type !== 'root') { + block.nodes.forEach(node => { + if (!node.nodes) { + if (node.type === 'open') node.isOpen = true; + if (node.type === 'close') node.isClose = true; + if (!node.nodes) node.type = 'text'; + node.invalid = true; + } + }); + + // get the location of the block on parent.nodes (block's siblings) + let parent = stack[stack.length - 1]; + let index = parent.nodes.indexOf(block); + // replace the (invalid) block with it's nodes + parent.nodes.splice(index, 1, ...block.nodes); + } + } while (stack.length > 0); + + push({ type: 'eos' }); + return ast; +}; + +var parse_1$1 = parse$1; + +/** + * Expand the given pattern or create a regex-compatible string. + * + * ```js + * const braces = require('braces'); + * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)'] + * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c'] + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {String} + * @api public + */ + +const braces = (input, options = {}) => { + let output = []; + + if (Array.isArray(input)) { + for (let pattern of input) { + let result = braces.create(pattern, options); + if (Array.isArray(result)) { + output.push(...result); + } else { + output.push(result); + } + } + } else { + output = [].concat(braces.create(input, options)); + } + + if (options && options.expand === true && options.nodupes === true) { + output = [...new Set(output)]; + } + return output; +}; + +/** + * Parse the given `str` with the given `options`. + * + * ```js + * // braces.parse(pattern, [, options]); + * const ast = braces.parse('a/{b,c}/d'); + * console.log(ast); + * ``` + * @param {String} pattern Brace pattern to parse + * @param {Object} options + * @return {Object} Returns an AST + * @api public + */ + +braces.parse = (input, options = {}) => parse_1$1(input, options); + +/** + * Creates a braces string from an AST, or an AST node. + * + * ```js + * const braces = require('braces'); + * let ast = braces.parse('foo/{a,b}/bar'); + * console.log(stringify(ast.nodes[2])); //=> '{a,b}' + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.stringify = (input, options = {}) => { + if (typeof input === 'string') { + return stringify(braces.parse(input, options), options); + } + return stringify(input, options); +}; + +/** + * Compiles a brace pattern into a regex-compatible, optimized string. + * This method is called by the main [braces](#braces) function by default. + * + * ```js + * const braces = require('braces'); + * console.log(braces.compile('a/{b,c}/d')); + * //=> ['a/(b|c)/d'] + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.compile = (input, options = {}) => { + if (typeof input === 'string') { + input = braces.parse(input, options); + } + return compile_1(input, options); +}; + +/** + * Expands a brace pattern into an array. This method is called by the + * main [braces](#braces) function when `options.expand` is true. Before + * using this method it's recommended that you read the [performance notes](#performance)) + * and advantages of using [.compile](#compile) instead. + * + * ```js + * const braces = require('braces'); + * console.log(braces.expand('a/{b,c}/d')); + * //=> ['a/b/d', 'a/c/d']; + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.expand = (input, options = {}) => { + if (typeof input === 'string') { + input = braces.parse(input, options); + } + + let result = expand_1(input, options); + + // filter out empty strings if specified + if (options.noempty === true) { + result = result.filter(Boolean); + } + + // filter out duplicates if specified + if (options.nodupes === true) { + result = [...new Set(result)]; + } + + return result; +}; + +/** + * Processes a brace pattern and returns either an expanded array + * (if `options.expand` is true), a highly optimized regex-compatible string. + * This method is called by the main [braces](#braces) function. + * + * ```js + * const braces = require('braces'); + * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}')) + * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)' + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.create = (input, options = {}) => { + if (input === '' || input.length < 3) { + return [input]; + } + + return options.expand !== true + ? braces.compile(input, options) + : braces.expand(input, options); +}; + +/** + * Expose "braces" + */ + +var braces_1 = braces; + +var require$$0 = [ + "3dm", + "3ds", + "3g2", + "3gp", + "7z", + "a", + "aac", + "adp", + "ai", + "aif", + "aiff", + "alz", + "ape", + "apk", + "appimage", + "ar", + "arj", + "asf", + "au", + "avi", + "bak", + "baml", + "bh", + "bin", + "bk", + "bmp", + "btif", + "bz2", + "bzip2", + "cab", + "caf", + "cgm", + "class", + "cmx", + "cpio", + "cr2", + "cur", + "dat", + "dcm", + "deb", + "dex", + "djvu", + "dll", + "dmg", + "dng", + "doc", + "docm", + "docx", + "dot", + "dotm", + "dra", + "DS_Store", + "dsk", + "dts", + "dtshd", + "dvb", + "dwg", + "dxf", + "ecelp4800", + "ecelp7470", + "ecelp9600", + "egg", + "eol", + "eot", + "epub", + "exe", + "f4v", + "fbs", + "fh", + "fla", + "flac", + "flatpak", + "fli", + "flv", + "fpx", + "fst", + "fvt", + "g3", + "gh", + "gif", + "graffle", + "gz", + "gzip", + "h261", + "h263", + "h264", + "icns", + "ico", + "ief", + "img", + "ipa", + "iso", + "jar", + "jpeg", + "jpg", + "jpgv", + "jpm", + "jxr", + "key", + "ktx", + "lha", + "lib", + "lvp", + "lz", + "lzh", + "lzma", + "lzo", + "m3u", + "m4a", + "m4v", + "mar", + "mdi", + "mht", + "mid", + "midi", + "mj2", + "mka", + "mkv", + "mmr", + "mng", + "mobi", + "mov", + "movie", + "mp3", + "mp4", + "mp4a", + "mpeg", + "mpg", + "mpga", + "mxu", + "nef", + "npx", + "numbers", + "nupkg", + "o", + "odp", + "ods", + "odt", + "oga", + "ogg", + "ogv", + "otf", + "ott", + "pages", + "pbm", + "pcx", + "pdb", + "pdf", + "pea", + "pgm", + "pic", + "png", + "pnm", + "pot", + "potm", + "potx", + "ppa", + "ppam", + "ppm", + "pps", + "ppsm", + "ppsx", + "ppt", + "pptm", + "pptx", + "psd", + "pya", + "pyc", + "pyo", + "pyv", + "qt", + "rar", + "ras", + "raw", + "resources", + "rgb", + "rip", + "rlc", + "rmf", + "rmvb", + "rpm", + "rtf", + "rz", + "s3m", + "s7z", + "scpt", + "sgi", + "shar", + "snap", + "sil", + "sketch", + "slk", + "smv", + "snk", + "so", + "stl", + "suo", + "sub", + "swf", + "tar", + "tbz", + "tbz2", + "tga", + "tgz", + "thmx", + "tif", + "tiff", + "tlz", + "ttc", + "ttf", + "txz", + "udf", + "uvh", + "uvi", + "uvm", + "uvp", + "uvs", + "uvu", + "viv", + "vob", + "war", + "wav", + "wax", + "wbmp", + "wdp", + "weba", + "webm", + "webp", + "whl", + "wim", + "wm", + "wma", + "wmv", + "wmx", + "woff", + "woff2", + "wrm", + "wvx", + "xbm", + "xif", + "xla", + "xlam", + "xls", + "xlsb", + "xlsm", + "xlsx", + "xlt", + "xltm", + "xltx", + "xm", + "xmind", + "xpi", + "xpm", + "xwd", + "xz", + "z", + "zip", + "zipx" +]; + +var binaryExtensions = require$$0; + +const extensions = new Set(binaryExtensions); + +var isBinaryPath = filePath => extensions.has(sysPath__default['default'].extname(filePath).slice(1).toLowerCase()); + +var constants$2 = createCommonjsModule(function (module, exports) { + +const {sep} = sysPath__default['default']; +const {platform} = process; + +exports.EV_ALL = 'all'; +exports.EV_READY = 'ready'; +exports.EV_ADD = 'add'; +exports.EV_CHANGE = 'change'; +exports.EV_ADD_DIR = 'addDir'; +exports.EV_UNLINK = 'unlink'; +exports.EV_UNLINK_DIR = 'unlinkDir'; +exports.EV_RAW = 'raw'; +exports.EV_ERROR = 'error'; + +exports.STR_DATA = 'data'; +exports.STR_END = 'end'; +exports.STR_CLOSE = 'close'; + +exports.FSEVENT_CREATED = 'created'; +exports.FSEVENT_MODIFIED = 'modified'; +exports.FSEVENT_DELETED = 'deleted'; +exports.FSEVENT_MOVED = 'moved'; +exports.FSEVENT_CLONED = 'cloned'; +exports.FSEVENT_UNKNOWN = 'unknown'; +exports.FSEVENT_TYPE_FILE = 'file'; +exports.FSEVENT_TYPE_DIRECTORY = 'directory'; +exports.FSEVENT_TYPE_SYMLINK = 'symlink'; + +exports.KEY_LISTENERS = 'listeners'; +exports.KEY_ERR = 'errHandlers'; +exports.KEY_RAW = 'rawEmitters'; +exports.HANDLER_KEYS = [exports.KEY_LISTENERS, exports.KEY_ERR, exports.KEY_RAW]; + +exports.DOT_SLASH = `.${sep}`; + +exports.BACK_SLASH_RE = /\\/g; +exports.DOUBLE_SLASH_RE = /\/\//; +exports.SLASH_OR_BACK_SLASH_RE = /[/\\]/; +exports.DOT_RE = /\..*\.(sw[px])$|~$|\.subl.*\.tmp/; +exports.REPLACER_RE = /^\.[/\\]/; + +exports.SLASH = '/'; +exports.SLASH_SLASH = '//'; +exports.BRACE_START = '{'; +exports.BANG = '!'; +exports.ONE_DOT = '.'; +exports.TWO_DOTS = '..'; +exports.STAR = '*'; +exports.GLOBSTAR = '**'; +exports.ROOT_GLOBSTAR = '/**/*'; +exports.SLASH_GLOBSTAR = '/**'; +exports.DIR_SUFFIX = 'Dir'; +exports.ANYMATCH_OPTS = {dot: true}; +exports.STRING_TYPE = 'string'; +exports.FUNCTION_TYPE = 'function'; +exports.EMPTY_STR = ''; +exports.EMPTY_FN = () => {}; +exports.IDENTITY_FN = val => val; + +exports.isWindows = platform === 'win32'; +exports.isMacos = platform === 'darwin'; +exports.isLinux = platform === 'linux'; +}); + +const fs = require('original-fs'); + +const { promisify: promisify$1 } = require$$0__default['default']; + +const { + isWindows, + isLinux, + EMPTY_FN, + EMPTY_STR, + KEY_LISTENERS, + KEY_ERR, + KEY_RAW, + HANDLER_KEYS, + EV_CHANGE, + EV_ADD, + EV_ADD_DIR, + EV_ERROR, + STR_DATA, + STR_END, + BRACE_START, + STAR: STAR$1 +} = constants$2; + +const THROTTLE_MODE_WATCH = 'watch'; + +const open$1 = promisify$1(fs.open); +const stat$1 = promisify$1(fs.stat); +const lstat$1 = promisify$1(fs.lstat); +const close = promisify$1(fs.close); +const fsrealpath = promisify$1(fs.realpath); + +const statMethods = { lstat: lstat$1, stat: stat$1 }; + +// TODO: emit errors properly. Example: EMFILE on Macos. +const foreach = (val, fn) => { + if (val instanceof Set) { + val.forEach(fn); + } else { + fn(val); + } +}; + +const addAndConvert = (main, prop, item) => { + let container = main[prop]; + if (!(container instanceof Set)) { + main[prop] = container = new Set([container]); + } + container.add(item); +}; + +const clearItem = cont => key => { + const set = cont[key]; + if (set instanceof Set) { + set.clear(); + } else { + delete cont[key]; + } +}; + +const delFromSet = (main, prop, item) => { + const container = main[prop]; + if (container instanceof Set) { + container.delete(item); + } else if (container === item) { + delete main[prop]; + } +}; + +const isEmptySet = (val) => val instanceof Set ? val.size === 0 : !val; + +/** + * @typedef {String} Path + */ + +// fs_watch helpers + +// object to hold per-process fs_watch instances +// (may be shared across chokidar FSWatcher instances) + +/** + * @typedef {Object} FsWatchContainer + * @property {Set} listeners + * @property {Set} errHandlers + * @property {Set} rawEmitters + * @property {fs.FSWatcher=} watcher + * @property {Boolean=} watcherUnusable + */ + +/** + * @type {Map} + */ +const FsWatchInstances = new Map(); + +/** + * Instantiates the fs_watch interface + * @param {String} path to be watched + * @param {Object} options to be passed to fs_watch + * @param {Function} listener main event handler + * @param {Function} errHandler emits info about errors + * @param {Function} emitRaw emits raw event data + * @returns {fs.FSWatcher} new fsevents instance + */ +function createFsWatchInstance(path, options, listener, errHandler, emitRaw) { + const handleEvent = (rawEvent, evPath) => { + listener(path); + emitRaw(rawEvent, evPath, {watchedPath: path}); + + // emit based on events occurring for files from a directory's watcher in + // case the file's watcher misses it (and rely on throttling to de-dupe) + if (evPath && path !== evPath) { + fsWatchBroadcast( + sysPath__default['default'].resolve(path, evPath), KEY_LISTENERS, sysPath__default['default'].join(path, evPath) + ); + } + }; + try { + return fs.watch(path, options, handleEvent); + } catch (error) { + errHandler(error); + } +} + +/** + * Helper for passing fs_watch event data to a collection of listeners + * @param {Path} fullPath absolute path bound to fs_watch instance + * @param {String} type listener type + * @param {*=} val1 arguments to be passed to listeners + * @param {*=} val2 + * @param {*=} val3 + */ +const fsWatchBroadcast = (fullPath, type, val1, val2, val3) => { + const cont = FsWatchInstances.get(fullPath); + if (!cont) return; + foreach(cont[type], (listener) => { + listener(val1, val2, val3); + }); +}; + +/** + * Instantiates the fs_watch interface or binds listeners + * to an existing one covering the same file system entry + * @param {String} path + * @param {String} fullPath absolute path + * @param {Object} options to be passed to fs_watch + * @param {Object} handlers container for event listener functions + */ +const setFsWatchListener = (path, fullPath, options, handlers) => { + const {listener, errHandler, rawEmitter} = handlers; + let cont = FsWatchInstances.get(fullPath); + + /** @type {fs.FSWatcher=} */ + let watcher; + if (!options.persistent) { + watcher = createFsWatchInstance( + path, options, listener, errHandler, rawEmitter + ); + return watcher.close.bind(watcher); + } + if (cont) { + addAndConvert(cont, KEY_LISTENERS, listener); + addAndConvert(cont, KEY_ERR, errHandler); + addAndConvert(cont, KEY_RAW, rawEmitter); + } else { + watcher = createFsWatchInstance( + path, + options, + fsWatchBroadcast.bind(null, fullPath, KEY_LISTENERS), + errHandler, // no need to use broadcast here + fsWatchBroadcast.bind(null, fullPath, KEY_RAW) + ); + if (!watcher) return; + watcher.on(EV_ERROR, async (error) => { + const broadcastErr = fsWatchBroadcast.bind(null, fullPath, KEY_ERR); + cont.watcherUnusable = true; // documented since Node 10.4.1 + // Workaround for https://github.com/joyent/node/issues/4337 + if (isWindows && error.code === 'EPERM') { + try { + const fd = await open$1(path, 'r'); + await close(fd); + broadcastErr(error); + } catch (err) {} + } else { + broadcastErr(error); + } + }); + cont = { + listeners: listener, + errHandlers: errHandler, + rawEmitters: rawEmitter, + watcher + }; + FsWatchInstances.set(fullPath, cont); + } + // const index = cont.listeners.indexOf(listener); + + // removes this instance's listeners and closes the underlying fs_watch + // instance if there are no more listeners left + return () => { + delFromSet(cont, KEY_LISTENERS, listener); + delFromSet(cont, KEY_ERR, errHandler); + delFromSet(cont, KEY_RAW, rawEmitter); + if (isEmptySet(cont.listeners)) { + // Check to protect against issue gh-730. + // if (cont.watcherUnusable) { + cont.watcher.close(); + // } + FsWatchInstances.delete(fullPath); + HANDLER_KEYS.forEach(clearItem(cont)); + cont.watcher = undefined; + Object.freeze(cont); + } + }; +}; + +// fs_watchFile helpers + +// object to hold per-process fs_watchFile instances +// (may be shared across chokidar FSWatcher instances) +const FsWatchFileInstances = new Map(); + +/** + * Instantiates the fs_watchFile interface or binds listeners + * to an existing one covering the same file system entry + * @param {String} path to be watched + * @param {String} fullPath absolute path + * @param {Object} options options to be passed to fs_watchFile + * @param {Object} handlers container for event listener functions + * @returns {Function} closer + */ +const setFsWatchFileListener = (path, fullPath, options, handlers) => { + const {listener, rawEmitter} = handlers; + let cont = FsWatchFileInstances.get(fullPath); + + /* eslint-disable no-unused-vars, prefer-destructuring */ + let listeners = new Set(); + let rawEmitters = new Set(); + + const copts = cont && cont.options; + if (copts && (copts.persistent < options.persistent || copts.interval > options.interval)) { + // "Upgrade" the watcher to persistence or a quicker interval. + // This creates some unlikely edge case issues if the user mixes + // settings in a very weird way, but solving for those cases + // doesn't seem worthwhile for the added complexity. + listeners = cont.listeners; + rawEmitters = cont.rawEmitters; + fs.unwatchFile(fullPath); + cont = undefined; + } + + /* eslint-enable no-unused-vars, prefer-destructuring */ + + if (cont) { + addAndConvert(cont, KEY_LISTENERS, listener); + addAndConvert(cont, KEY_RAW, rawEmitter); + } else { + // TODO + // listeners.add(listener); + // rawEmitters.add(rawEmitter); + cont = { + listeners: listener, + rawEmitters: rawEmitter, + options, + watcher: fs.watchFile(fullPath, options, (curr, prev) => { + foreach(cont.rawEmitters, (rawEmitter) => { + rawEmitter(EV_CHANGE, fullPath, {curr, prev}); + }); + const currmtime = curr.mtimeMs; + if (curr.size !== prev.size || currmtime > prev.mtimeMs || currmtime === 0) { + foreach(cont.listeners, (listener) => listener(path, curr)); + } + }) + }; + FsWatchFileInstances.set(fullPath, cont); + } + // const index = cont.listeners.indexOf(listener); + + // Removes this instance's listeners and closes the underlying fs_watchFile + // instance if there are no more listeners left. + return () => { + delFromSet(cont, KEY_LISTENERS, listener); + delFromSet(cont, KEY_RAW, rawEmitter); + if (isEmptySet(cont.listeners)) { + FsWatchFileInstances.delete(fullPath); + fs.unwatchFile(fullPath); + cont.options = cont.watcher = undefined; + Object.freeze(cont); + } + }; +}; + +/** + * @mixin + */ +class NodeFsHandler { + +/** + * @param {import("../index").FSWatcher} fsW + */ +constructor(fsW) { + this.fsw = fsW; + this._boundHandleError = (error) => fsW._handleError(error); +} + +/** + * Watch file for changes with fs_watchFile or fs_watch. + * @param {String} path to file or dir + * @param {Function} listener on fs change + * @returns {Function} closer for the watcher instance + */ +_watchWithNodeFs(path, listener) { + const opts = this.fsw.options; + const directory = sysPath__default['default'].dirname(path); + const basename = sysPath__default['default'].basename(path); + const parent = this.fsw._getWatchedDir(directory); + parent.add(basename); + const absolutePath = sysPath__default['default'].resolve(path); + const options = {persistent: opts.persistent}; + if (!listener) listener = EMPTY_FN; + + let closer; + if (opts.usePolling) { + options.interval = opts.enableBinaryInterval && isBinaryPath(basename) ? + opts.binaryInterval : opts.interval; + closer = setFsWatchFileListener(path, absolutePath, options, { + listener, + rawEmitter: this.fsw._emitRaw + }); + } else { + closer = setFsWatchListener(path, absolutePath, options, { + listener, + errHandler: this._boundHandleError, + rawEmitter: this.fsw._emitRaw + }); + } + return closer; +} + +/** + * Watch a file and emit add event if warranted. + * @param {Path} file Path + * @param {fs.Stats} stats result of fs_stat + * @param {Boolean} initialAdd was the file added at watch instantiation? + * @returns {Function} closer for the watcher instance + */ +_handleFile(file, stats, initialAdd) { + if (this.fsw.closed) { + return; + } + const dirname = sysPath__default['default'].dirname(file); + const basename = sysPath__default['default'].basename(file); + const parent = this.fsw._getWatchedDir(dirname); + // stats is always present + let prevStats = stats; + + // if the file is already being watched, do nothing + if (parent.has(basename)) return; + + const listener = async (path, newStats) => { + if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file, 5)) return; + if (!newStats || newStats.mtimeMs === 0) { + try { + const newStats = await stat$1(file); + if (this.fsw.closed) return; + // Check that change event was not fired because of changed only accessTime. + const at = newStats.atimeMs; + const mt = newStats.mtimeMs; + if (!at || at <= mt || mt !== prevStats.mtimeMs) { + this.fsw._emit(EV_CHANGE, file, newStats); + } + if (isLinux && prevStats.ino !== newStats.ino) { + this.fsw._closeFile(path); + prevStats = newStats; + this.fsw._addPathCloser(path, this._watchWithNodeFs(file, listener)); + } else { + prevStats = newStats; + } + } catch (error) { + // Fix issues where mtime is null but file is still present + this.fsw._remove(dirname, basename); + } + // add is about to be emitted if file not already tracked in parent + } else if (parent.has(basename)) { + // Check that change event was not fired because of changed only accessTime. + const at = newStats.atimeMs; + const mt = newStats.mtimeMs; + if (!at || at <= mt || mt !== prevStats.mtimeMs) { + this.fsw._emit(EV_CHANGE, file, newStats); + } + prevStats = newStats; + } + }; + // kick off the watcher + const closer = this._watchWithNodeFs(file, listener); + + // emit an add event if we're supposed to + if (!(initialAdd && this.fsw.options.ignoreInitial) && this.fsw._isntIgnored(file)) { + if (!this.fsw._throttle(EV_ADD, file, 0)) return; + this.fsw._emit(EV_ADD, file, stats); + } + + return closer; +} + +/** + * Handle symlinks encountered while reading a dir. + * @param {Object} entry returned by readdirp + * @param {String} directory path of dir being read + * @param {String} path of this item + * @param {String} item basename of this item + * @returns {Promise} true if no more processing is needed for this entry. + */ +async _handleSymlink(entry, directory, path, item) { + if (this.fsw.closed) { + return; + } + const full = entry.fullPath; + const dir = this.fsw._getWatchedDir(directory); + + if (!this.fsw.options.followSymlinks) { + // watch symlink directly (don't follow) and detect changes + this.fsw._incrReadyCount(); + const linkPath = await fsrealpath(path); + if (this.fsw.closed) return; + if (dir.has(item)) { + if (this.fsw._symlinkPaths.get(full) !== linkPath) { + this.fsw._symlinkPaths.set(full, linkPath); + this.fsw._emit(EV_CHANGE, path, entry.stats); + } + } else { + dir.add(item); + this.fsw._symlinkPaths.set(full, linkPath); + this.fsw._emit(EV_ADD, path, entry.stats); + } + this.fsw._emitReady(); + return true; + } + + // don't follow the same symlink more than once + if (this.fsw._symlinkPaths.has(full)) { + return true; + } + + this.fsw._symlinkPaths.set(full, true); +} + +_handleRead(directory, initialAdd, wh, target, dir, depth, throttler) { + // Normalize the directory name on Windows + directory = sysPath__default['default'].join(directory, EMPTY_STR); + + if (!wh.hasGlob) { + throttler = this.fsw._throttle('readdir', directory, 1000); + if (!throttler) return; + } + + const previous = this.fsw._getWatchedDir(wh.path); + const current = new Set(); + + let stream = this.fsw._readdirp(directory, { + fileFilter: entry => wh.filterPath(entry), + directoryFilter: entry => wh.filterDir(entry), + depth: 0 + }).on(STR_DATA, async (entry) => { + if (this.fsw.closed) { + stream = undefined; + return; + } + const item = entry.path; + let path = sysPath__default['default'].join(directory, item); + current.add(item); + + if (entry.stats.isSymbolicLink() && await this._handleSymlink(entry, directory, path, item)) { + return; + } + + if (this.fsw.closed) { + stream = undefined; + return; + } + // Files that present in current directory snapshot + // but absent in previous are added to watch list and + // emit `add` event. + if (item === target || !target && !previous.has(item)) { + this.fsw._incrReadyCount(); + + // ensure relativeness of path is preserved in case of watcher reuse + path = sysPath__default['default'].join(dir, sysPath__default['default'].relative(dir, path)); + + this._addToNodeFs(path, initialAdd, wh, depth + 1); + } + }).on(EV_ERROR, this._boundHandleError); + + return new Promise(resolve => + stream.once(STR_END, () => { + if (this.fsw.closed) { + stream = undefined; + return; + } + const wasThrottled = throttler ? throttler.clear() : false; + + resolve(); + + // Files that absent in current directory snapshot + // but present in previous emit `remove` event + // and are removed from @watched[directory]. + previous.getChildren().filter((item) => { + return item !== directory && + !current.has(item) && + // in case of intersecting globs; + // a path may have been filtered out of this readdir, but + // shouldn't be removed because it matches a different glob + (!wh.hasGlob || wh.filterPath({ + fullPath: sysPath__default['default'].resolve(directory, item) + })); + }).forEach((item) => { + this.fsw._remove(directory, item); + }); + + stream = undefined; + + // one more time for any missed in case changes came in extremely quickly + if (wasThrottled) this._handleRead(directory, false, wh, target, dir, depth, throttler); + }) + ); +} + +/** + * Read directory to add / remove files from `@watched` list and re-read it on change. + * @param {String} dir fs path + * @param {fs.Stats} stats + * @param {Boolean} initialAdd + * @param {Number} depth relative to user-supplied path + * @param {String} target child path targeted for watch + * @param {Object} wh Common watch helpers for this path + * @param {String} realpath + * @returns {Promise} closer for the watcher instance. + */ +async _handleDir(dir, stats, initialAdd, depth, target, wh, realpath) { + const parentDir = this.fsw._getWatchedDir(sysPath__default['default'].dirname(dir)); + const tracked = parentDir.has(sysPath__default['default'].basename(dir)); + if (!(initialAdd && this.fsw.options.ignoreInitial) && !target && !tracked) { + if (!wh.hasGlob || wh.globFilter(dir)) this.fsw._emit(EV_ADD_DIR, dir, stats); + } + + // ensure dir is tracked (harmless if redundant) + parentDir.add(sysPath__default['default'].basename(dir)); + this.fsw._getWatchedDir(dir); + let throttler; + let closer; + + const oDepth = this.fsw.options.depth; + if ((oDepth == null || depth <= oDepth) && !this.fsw._symlinkPaths.has(realpath)) { + if (!target) { + await this._handleRead(dir, initialAdd, wh, target, dir, depth, throttler); + if (this.fsw.closed) return; + } + + closer = this._watchWithNodeFs(dir, (dirPath, stats) => { + // if current directory is removed, do nothing + if (stats && stats.mtimeMs === 0) return; + + this._handleRead(dirPath, false, wh, target, dir, depth, throttler); + }); + } + return closer; +} + +/** + * Handle added file, directory, or glob pattern. + * Delegates call to _handleFile / _handleDir after checks. + * @param {String} path to file or ir + * @param {Boolean} initialAdd was the file added at watch instantiation? + * @param {Object} priorWh depth relative to user-supplied path + * @param {Number} depth Child path actually targeted for watch + * @param {String=} target Child path actually targeted for watch + * @returns {Promise} + */ +async _addToNodeFs(path, initialAdd, priorWh, depth, target) { + const ready = this.fsw._emitReady; + if (this.fsw._isIgnored(path) || this.fsw.closed) { + ready(); + return false; + } + + const wh = this.fsw._getWatchHelpers(path, depth); + if (!wh.hasGlob && priorWh) { + wh.hasGlob = priorWh.hasGlob; + wh.globFilter = priorWh.globFilter; + wh.filterPath = entry => priorWh.filterPath(entry); + wh.filterDir = entry => priorWh.filterDir(entry); + } + + // evaluate what is at the path we're being asked to watch + try { + const stats = await statMethods[wh.statMethod](wh.watchPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(wh.watchPath, stats)) { + ready(); + return false; + } + + const follow = this.fsw.options.followSymlinks && !path.includes(STAR$1) && !path.includes(BRACE_START); + let closer; + if (stats.isDirectory()) { + const targetPath = follow ? await fsrealpath(path) : path; + if (this.fsw.closed) return; + closer = await this._handleDir(wh.watchPath, stats, initialAdd, depth, target, wh, targetPath); + if (this.fsw.closed) return; + // preserve this symlink's target path + if (path !== targetPath && targetPath !== undefined) { + this.fsw._symlinkPaths.set(targetPath, true); + } + } else if (stats.isSymbolicLink()) { + const targetPath = follow ? await fsrealpath(path) : path; + if (this.fsw.closed) return; + const parent = sysPath__default['default'].dirname(wh.watchPath); + this.fsw._getWatchedDir(parent).add(wh.watchPath); + this.fsw._emit(EV_ADD, wh.watchPath, stats); + closer = await this._handleDir(parent, stats, initialAdd, depth, path, wh, targetPath); + if (this.fsw.closed) return; + + // preserve this symlink's target path + if (targetPath !== undefined) { + this.fsw._symlinkPaths.set(sysPath__default['default'].resolve(path), targetPath); + } + } else { + closer = this._handleFile(wh.watchPath, stats, initialAdd); + } + ready(); + + this.fsw._addPathCloser(path, closer); + return false; + + } catch (error) { + if (this.fsw._handleError(error)) { + ready(); + return path; + } + } +} + +} + +var nodefsHandler = NodeFsHandler; + +const fs$1 = require('original-fs'); + +const { promisify: promisify$2 } = require$$0__default['default']; + +let fsevents; +try { + fsevents = null; +} catch (error) { + if (process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR) console.error(error); +} + +if (fsevents) { + // TODO: real check + const mtch = process.version.match(/v(\d+)\.(\d+)/); + if (mtch && mtch[1] && mtch[2]) { + const maj = Number.parseInt(mtch[1], 10); + const min = Number.parseInt(mtch[2], 10); + if (maj === 8 && min < 16) { + fsevents = undefined; + } + } +} + +const { + EV_ADD: EV_ADD$1, + EV_CHANGE: EV_CHANGE$1, + EV_ADD_DIR: EV_ADD_DIR$1, + EV_UNLINK, + EV_ERROR: EV_ERROR$1, + STR_DATA: STR_DATA$1, + STR_END: STR_END$1, + FSEVENT_CREATED, + FSEVENT_MODIFIED, + FSEVENT_DELETED, + FSEVENT_MOVED, + // FSEVENT_CLONED, + FSEVENT_UNKNOWN, + FSEVENT_TYPE_FILE, + FSEVENT_TYPE_DIRECTORY, + FSEVENT_TYPE_SYMLINK, + + ROOT_GLOBSTAR, + DIR_SUFFIX, + DOT_SLASH, + FUNCTION_TYPE, + EMPTY_FN: EMPTY_FN$1, + IDENTITY_FN +} = constants$2; + +const Depth = (value) => isNaN(value) ? {} : {depth: value}; + +const stat$2 = promisify$2(fs$1.stat); +const lstat$2 = promisify$2(fs$1.lstat); +const realpath$1 = promisify$2(fs$1.realpath); + +const statMethods$1 = { stat: stat$2, lstat: lstat$2 }; + +/** + * @typedef {String} Path + */ + +/** + * @typedef {Object} FsEventsWatchContainer + * @property {Set} listeners + * @property {Function} rawEmitter + * @property {{stop: Function}} watcher + */ + +// fsevents instance helper functions +/** + * Object to hold per-process fsevents instances (may be shared across chokidar FSWatcher instances) + * @type {Map} + */ +const FSEventsWatchers = new Map(); + +// Threshold of duplicate path prefixes at which to start +// consolidating going forward +const consolidateThreshhold = 10; + +const wrongEventFlags = new Set([ + 69888, 70400, 71424, 72704, 73472, 131328, 131840, 262912 +]); + +/** + * Instantiates the fsevents interface + * @param {Path} path path to be watched + * @param {Function} callback called when fsevents is bound and ready + * @returns {{stop: Function}} new fsevents instance + */ +const createFSEventsInstance = (path, callback) => { + const stop = fsevents.watch(path, callback); + return {stop}; +}; + +/** + * Instantiates the fsevents interface or binds listeners to an existing one covering + * the same file tree. + * @param {Path} path - to be watched + * @param {Path} realPath - real path for symlinks + * @param {Function} listener - called when fsevents emits events + * @param {Function} rawEmitter - passes data to listeners of the 'raw' event + * @returns {Function} closer + */ +function setFSEventsListener(path, realPath, listener, rawEmitter) { + let watchPath = sysPath__default['default'].extname(path) ? sysPath__default['default'].dirname(path) : path; + const parentPath = sysPath__default['default'].dirname(watchPath); + let cont = FSEventsWatchers.get(watchPath); + + // If we've accumulated a substantial number of paths that + // could have been consolidated by watching one directory + // above the current one, create a watcher on the parent + // path instead, so that we do consolidate going forward. + if (couldConsolidate(parentPath)) { + watchPath = parentPath; + } + + const resolvedPath = sysPath__default['default'].resolve(path); + const hasSymlink = resolvedPath !== realPath; + + const filteredListener = (fullPath, flags, info) => { + if (hasSymlink) fullPath = fullPath.replace(realPath, resolvedPath); + if ( + fullPath === resolvedPath || + !fullPath.indexOf(resolvedPath + sysPath__default['default'].sep) + ) listener(fullPath, flags, info); + }; + + // check if there is already a watcher on a parent path + // modifies `watchPath` to the parent path when it finds a match + let watchedParent = false; + for (const watchedPath of FSEventsWatchers.keys()) { + if (realPath.indexOf(sysPath__default['default'].resolve(watchedPath) + sysPath__default['default'].sep) === 0) { + watchPath = watchedPath; + cont = FSEventsWatchers.get(watchPath); + watchedParent = true; + break; + } + } + + if (cont || watchedParent) { + cont.listeners.add(filteredListener); + } else { + cont = { + listeners: new Set([filteredListener]), + rawEmitter, + watcher: createFSEventsInstance(watchPath, (fullPath, flags) => { + if (!cont.listeners.size) return; + const info = fsevents.getInfo(fullPath, flags); + cont.listeners.forEach(list => { + list(fullPath, flags, info); + }); + + cont.rawEmitter(info.event, fullPath, info); + }) + }; + FSEventsWatchers.set(watchPath, cont); + } + + // removes this instance's listeners and closes the underlying fsevents + // instance if there are no more listeners left + return () => { + const lst = cont.listeners; + + lst.delete(filteredListener); + if (!lst.size) { + FSEventsWatchers.delete(watchPath); + if (cont.watcher) return cont.watcher.stop().then(() => { + cont.rawEmitter = cont.watcher = undefined; + Object.freeze(cont); + }); + } + }; +} + +// Decide whether or not we should start a new higher-level +// parent watcher +const couldConsolidate = (path) => { + let count = 0; + for (const watchPath of FSEventsWatchers.keys()) { + if (watchPath.indexOf(path) === 0) { + count++; + if (count >= consolidateThreshhold) { + return true; + } + } + } + + return false; +}; + +// returns boolean indicating whether fsevents can be used +const canUse = () => fsevents && FSEventsWatchers.size < 128; + +// determines subdirectory traversal levels from root to path +const calcDepth = (path, root) => { + let i = 0; + while (!path.indexOf(root) && (path = sysPath__default['default'].dirname(path)) !== root) i++; + return i; +}; + +// returns boolean indicating whether the fsevents' event info has the same type +// as the one returned by fs.stat +const sameTypes = (info, stats) => ( + info.type === FSEVENT_TYPE_DIRECTORY && stats.isDirectory() || + info.type === FSEVENT_TYPE_SYMLINK && stats.isSymbolicLink() || + info.type === FSEVENT_TYPE_FILE && stats.isFile() +); + +/** + * @mixin + */ +class FsEventsHandler { + +/** + * @param {import('../index').FSWatcher} fsw + */ +constructor(fsw) { + this.fsw = fsw; +} +checkIgnored(path, stats) { + const ipaths = this.fsw._ignoredPaths; + if (this.fsw._isIgnored(path, stats)) { + ipaths.add(path); + if (stats && stats.isDirectory()) { + ipaths.add(path + ROOT_GLOBSTAR); + } + return true; + } + + ipaths.delete(path); + ipaths.delete(path + ROOT_GLOBSTAR); +} + +addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts) { + const event = watchedDir.has(item) ? EV_CHANGE$1 : EV_ADD$1; + this.handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts); +} + +async checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts) { + try { + const stats = await stat$2(path); + if (this.fsw.closed) return; + if (sameTypes(info, stats)) { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } else { + this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } catch (error) { + if (error.code === 'EACCES') { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } else { + this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } +} + +handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts) { + if (this.fsw.closed || this.checkIgnored(path)) return; + + if (event === EV_UNLINK) { + const isDirectory = info.type === FSEVENT_TYPE_DIRECTORY; + // suppress unlink events on never before seen files + if (isDirectory || watchedDir.has(item)) { + this.fsw._remove(parent, item, isDirectory); + } + } else { + if (event === EV_ADD$1) { + // track new directories + if (info.type === FSEVENT_TYPE_DIRECTORY) this.fsw._getWatchedDir(path); + + if (info.type === FSEVENT_TYPE_SYMLINK && opts.followSymlinks) { + // push symlinks back to the top of the stack to get handled + const curDepth = opts.depth === undefined ? + undefined : calcDepth(fullPath, realPath) + 1; + return this._addToFsEvents(path, false, true, curDepth); + } + + // track new paths + // (other than symlinks being followed, which will be tracked soon) + this.fsw._getWatchedDir(parent).add(item); + } + /** + * @type {'add'|'addDir'|'unlink'|'unlinkDir'} + */ + const eventName = info.type === FSEVENT_TYPE_DIRECTORY ? event + DIR_SUFFIX : event; + this.fsw._emit(eventName, path); + if (eventName === EV_ADD_DIR$1) this._addToFsEvents(path, false, true); + } +} + +/** + * Handle symlinks encountered during directory scan + * @param {String} watchPath - file/dir path to be watched with fsevents + * @param {String} realPath - real path (in case of symlinks) + * @param {Function} transform - path transformer + * @param {Function} globFilter - path filter in case a glob pattern was provided + * @returns {Function} closer for the watcher instance +*/ +_watchWithFsEvents(watchPath, realPath, transform, globFilter) { + if (this.fsw.closed || this.fsw._isIgnored(watchPath)) return; + const opts = this.fsw.options; + const watchCallback = async (fullPath, flags, info) => { + if (this.fsw.closed) return; + if ( + opts.depth !== undefined && + calcDepth(fullPath, realPath) > opts.depth + ) return; + const path = transform(sysPath__default['default'].join( + watchPath, sysPath__default['default'].relative(watchPath, fullPath) + )); + if (globFilter && !globFilter(path)) return; + // ensure directories are tracked + const parent = sysPath__default['default'].dirname(path); + const item = sysPath__default['default'].basename(path); + const watchedDir = this.fsw._getWatchedDir( + info.type === FSEVENT_TYPE_DIRECTORY ? path : parent + ); + + // correct for wrong events emitted + if (wrongEventFlags.has(flags) || info.event === FSEVENT_UNKNOWN) { + if (typeof opts.ignored === FUNCTION_TYPE) { + let stats; + try { + stats = await stat$2(path); + } catch (error) {} + if (this.fsw.closed) return; + if (this.checkIgnored(path, stats)) return; + if (sameTypes(info, stats)) { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } else { + this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } else { + this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } else { + switch (info.event) { + case FSEVENT_CREATED: + case FSEVENT_MODIFIED: + return this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + case FSEVENT_DELETED: + case FSEVENT_MOVED: + return this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } + }; + + const closer = setFSEventsListener( + watchPath, + realPath, + watchCallback, + this.fsw._emitRaw + ); + + this.fsw._emitReady(); + return closer; +} + +/** + * Handle symlinks encountered during directory scan + * @param {String} linkPath path to symlink + * @param {String} fullPath absolute path to the symlink + * @param {Function} transform pre-existing path transformer + * @param {Number} curDepth level of subdirectories traversed to where symlink is + * @returns {Promise} + */ +async _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) { + // don't follow the same symlink more than once + if (this.fsw.closed || this.fsw._symlinkPaths.has(fullPath)) return; + + this.fsw._symlinkPaths.set(fullPath, true); + this.fsw._incrReadyCount(); + + try { + const linkTarget = await realpath$1(linkPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(linkTarget)) { + return this.fsw._emitReady(); + } + + this.fsw._incrReadyCount(); + + // add the linkTarget for watching with a wrapper for transform + // that causes emitted paths to incorporate the link's path + this._addToFsEvents(linkTarget || linkPath, (path) => { + let aliasedPath = linkPath; + if (linkTarget && linkTarget !== DOT_SLASH) { + aliasedPath = path.replace(linkTarget, linkPath); + } else if (path !== DOT_SLASH) { + aliasedPath = sysPath__default['default'].join(linkPath, path); + } + return transform(aliasedPath); + }, false, curDepth); + } catch(error) { + if (this.fsw._handleError(error)) { + return this.fsw._emitReady(); + } + } +} + +/** + * + * @param {Path} newPath + * @param {fs.Stats} stats + */ +emitAdd(newPath, stats, processPath, opts, forceAdd) { + const pp = processPath(newPath); + const isDir = stats.isDirectory(); + const dirObj = this.fsw._getWatchedDir(sysPath__default['default'].dirname(pp)); + const base = sysPath__default['default'].basename(pp); + + // ensure empty dirs get tracked + if (isDir) this.fsw._getWatchedDir(pp); + if (dirObj.has(base)) return; + dirObj.add(base); + + if (!opts.ignoreInitial || forceAdd === true) { + this.fsw._emit(isDir ? EV_ADD_DIR$1 : EV_ADD$1, pp, stats); + } +} + +initWatch(realPath, path, wh, processPath) { + if (this.fsw.closed) return; + const closer = this._watchWithFsEvents( + wh.watchPath, + sysPath__default['default'].resolve(realPath || wh.watchPath), + processPath, + wh.globFilter + ); + this.fsw._addPathCloser(path, closer); +} + +/** + * Handle added path with fsevents + * @param {String} path file/dir path or glob pattern + * @param {Function|Boolean=} transform converts working path to what the user expects + * @param {Boolean=} forceAdd ensure add is emitted + * @param {Number=} priorDepth Level of subdirectories already traversed. + * @returns {Promise} + */ +async _addToFsEvents(path, transform, forceAdd, priorDepth) { + if (this.fsw.closed) { + return; + } + const opts = this.fsw.options; + const processPath = typeof transform === FUNCTION_TYPE ? transform : IDENTITY_FN; + + const wh = this.fsw._getWatchHelpers(path); + + // evaluate what is at the path we're being asked to watch + try { + const stats = await statMethods$1[wh.statMethod](wh.watchPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(wh.watchPath, stats)) { + throw null; + } + if (stats.isDirectory()) { + // emit addDir unless this is a glob parent + if (!wh.globFilter) this.emitAdd(processPath(path), stats, processPath, opts, forceAdd); + + // don't recurse further if it would exceed depth setting + if (priorDepth && priorDepth > opts.depth) return; + + // scan the contents of the dir + this.fsw._readdirp(wh.watchPath, { + fileFilter: entry => wh.filterPath(entry), + directoryFilter: entry => wh.filterDir(entry), + ...Depth(opts.depth - (priorDepth || 0)) + }).on(STR_DATA$1, (entry) => { + // need to check filterPath on dirs b/c filterDir is less restrictive + if (this.fsw.closed) { + return; + } + if (entry.stats.isDirectory() && !wh.filterPath(entry)) return; + + const joinedPath = sysPath__default['default'].join(wh.watchPath, entry.path); + const {fullPath} = entry; + + if (wh.followSymlinks && entry.stats.isSymbolicLink()) { + // preserve the current depth here since it can't be derived from + // real paths past the symlink + const curDepth = opts.depth === undefined ? + undefined : calcDepth(joinedPath, sysPath__default['default'].resolve(wh.watchPath)) + 1; + + this._handleFsEventsSymlink(joinedPath, fullPath, processPath, curDepth); + } else { + this.emitAdd(joinedPath, entry.stats, processPath, opts, forceAdd); + } + }).on(EV_ERROR$1, EMPTY_FN$1).on(STR_END$1, () => { + this.fsw._emitReady(); + }); + } else { + this.emitAdd(wh.watchPath, stats, processPath, opts, forceAdd); + this.fsw._emitReady(); + } + } catch (error) { + if (!error || this.fsw._handleError(error)) { + // TODO: Strange thing: "should not choke on an ignored watch path" will be failed without 2 ready calls -__- + this.fsw._emitReady(); + this.fsw._emitReady(); + } + } + + if (opts.persistent && forceAdd !== true) { + if (typeof transform === FUNCTION_TYPE) { + // realpath has already been resolved + this.initWatch(undefined, path, wh, processPath); + } else { + let realPath; + try { + realPath = await realpath$1(wh.watchPath); + } catch (e) {} + this.initWatch(realPath, path, wh, processPath); + } + } +} + +} + +var fseventsHandler = FsEventsHandler; +var canUse_1 = canUse; +fseventsHandler.canUse = canUse_1; + +const { EventEmitter } = require$$0__default$2['default']; +const fs$2 = require('original-fs'); + +const { promisify: promisify$3 } = require$$0__default['default']; + +const anymatch = anymatch_1.default; + + + + + + + +const { + EV_ALL, + EV_READY, + EV_ADD: EV_ADD$2, + EV_CHANGE: EV_CHANGE$2, + EV_UNLINK: EV_UNLINK$1, + EV_ADD_DIR: EV_ADD_DIR$2, + EV_UNLINK_DIR, + EV_RAW, + EV_ERROR: EV_ERROR$2, + + STR_CLOSE, + STR_END: STR_END$2, + + BACK_SLASH_RE, + DOUBLE_SLASH_RE, + SLASH_OR_BACK_SLASH_RE, + DOT_RE, + REPLACER_RE, + + SLASH, + SLASH_SLASH, + BRACE_START: BRACE_START$1, + BANG: BANG$1, + ONE_DOT, + TWO_DOTS, + GLOBSTAR, + SLASH_GLOBSTAR, + ANYMATCH_OPTS, + STRING_TYPE, + FUNCTION_TYPE: FUNCTION_TYPE$1, + EMPTY_STR: EMPTY_STR$1, + EMPTY_FN: EMPTY_FN$2, + + isWindows: isWindows$1, + isMacos +} = constants$2; + +const stat$3 = promisify$3(fs$2.stat); +const readdir$1 = promisify$3(fs$2.readdir); + +/** + * @typedef {String} Path + * @typedef {'all'|'add'|'addDir'|'change'|'unlink'|'unlinkDir'|'raw'|'error'|'ready'} EventName + * @typedef {'readdir'|'watch'|'add'|'remove'|'change'} ThrottleType + */ + +/** + * + * @typedef {Object} WatchHelpers + * @property {Boolean} followSymlinks + * @property {'stat'|'lstat'} statMethod + * @property {Path} path + * @property {Path} watchPath + * @property {Function} entryPath + * @property {Boolean} hasGlob + * @property {Object} globFilter + * @property {Function} filterPath + * @property {Function} filterDir + */ + +const arrify = (value = []) => Array.isArray(value) ? value : [value]; +const flatten = (list, result = []) => { + list.forEach(item => { + if (Array.isArray(item)) { + flatten(item, result); + } else { + result.push(item); + } + }); + return result; +}; + +const unifyPaths = (paths_) => { + /** + * @type {Array} + */ + const paths = flatten(arrify(paths_)); + if (!paths.every(p => typeof p === STRING_TYPE)) { + throw new TypeError(`Non-string provided as watch path: ${paths}`); + } + return paths.map(normalizePathToUnix); +}; + +// If SLASH_SLASH occurs at the beginning of path, it is not replaced +// because "//StoragePC/DrivePool/Movies" is a valid network path +const toUnix = (string) => { + let str = string.replace(BACK_SLASH_RE, SLASH); + let prepend = false; + if (str.startsWith(SLASH_SLASH)) { + prepend = true; + } + while (str.match(DOUBLE_SLASH_RE)) { + str = str.replace(DOUBLE_SLASH_RE, SLASH); + } + if (prepend) { + str = SLASH + str; + } + return str; +}; + +// Our version of upath.normalize +// TODO: this is not equal to path-normalize module - investigate why +const normalizePathToUnix = (path) => toUnix(sysPath__default['default'].normalize(toUnix(path))); + +const normalizeIgnored = (cwd = EMPTY_STR$1) => (path) => { + if (typeof path !== STRING_TYPE) return path; + return normalizePathToUnix(sysPath__default['default'].isAbsolute(path) ? path : sysPath__default['default'].join(cwd, path)); +}; + +const getAbsolutePath = (path, cwd) => { + if (sysPath__default['default'].isAbsolute(path)) { + return path; + } + if (path.startsWith(BANG$1)) { + return BANG$1 + sysPath__default['default'].join(cwd, path.slice(1)); + } + return sysPath__default['default'].join(cwd, path); +}; + +const undef = (opts, key) => opts[key] === undefined; + +/** + * Directory entry. + * @property {Path} path + * @property {Set} items + */ +class DirEntry { + /** + * @param {Path} dir + * @param {Function} removeWatcher + */ + constructor(dir, removeWatcher) { + this.path = dir; + this._removeWatcher = removeWatcher; + /** @type {Set} */ + this.items = new Set(); + } + + add(item) { + const {items} = this; + if (!items) return; + if (item !== ONE_DOT && item !== TWO_DOTS) items.add(item); + } + + async remove(item) { + const {items} = this; + if (!items) return; + items.delete(item); + if (items.size > 0) return; + + const dir = this.path; + try { + await readdir$1(dir); + } catch (err) { + if (this._removeWatcher) { + this._removeWatcher(sysPath__default['default'].dirname(dir), sysPath__default['default'].basename(dir)); + } + } + } + + has(item) { + const {items} = this; + if (!items) return; + return items.has(item); + } + + /** + * @returns {Array} + */ + getChildren() { + const {items} = this; + if (!items) return; + return [...items.values()]; + } + + dispose() { + this.items.clear(); + delete this.path; + delete this._removeWatcher; + delete this.items; + Object.freeze(this); + } +} + +const STAT_METHOD_F = 'stat'; +const STAT_METHOD_L = 'lstat'; +class WatchHelper { + constructor(path, watchPath, follow, fsw) { + this.fsw = fsw; + this.path = path = path.replace(REPLACER_RE, EMPTY_STR$1); + this.watchPath = watchPath; + this.fullWatchPath = sysPath__default['default'].resolve(watchPath); + this.hasGlob = watchPath !== path; + /** @type {object|boolean} */ + if (path === EMPTY_STR$1) this.hasGlob = false; + this.globSymlink = this.hasGlob && follow ? undefined : false; + this.globFilter = this.hasGlob ? anymatch(path, undefined, ANYMATCH_OPTS) : false; + this.dirParts = this.getDirParts(path); + this.dirParts.forEach((parts) => { + if (parts.length > 1) parts.pop(); + }); + this.followSymlinks = follow; + this.statMethod = follow ? STAT_METHOD_F : STAT_METHOD_L; + } + + checkGlobSymlink(entry) { + // only need to resolve once + // first entry should always have entry.parentDir === EMPTY_STR + if (this.globSymlink === undefined) { + this.globSymlink = entry.fullParentDir === this.fullWatchPath ? + false : {realPath: entry.fullParentDir, linkPath: this.fullWatchPath}; + } + + if (this.globSymlink) { + return entry.fullPath.replace(this.globSymlink.realPath, this.globSymlink.linkPath); + } + + return entry.fullPath; + } + + entryPath(entry) { + return sysPath__default['default'].join(this.watchPath, + sysPath__default['default'].relative(this.watchPath, this.checkGlobSymlink(entry)) + ); + } + + filterPath(entry) { + const {stats} = entry; + if (stats && stats.isSymbolicLink()) return this.filterDir(entry); + const resolvedPath = this.entryPath(entry); + const matchesGlob = this.hasGlob && typeof this.globFilter === FUNCTION_TYPE$1 ? + this.globFilter(resolvedPath) : true; + return matchesGlob && + this.fsw._isntIgnored(resolvedPath, stats) && + this.fsw._hasReadPermissions(stats); + } + + getDirParts(path) { + if (!this.hasGlob) return []; + const parts = []; + const expandedPath = path.includes(BRACE_START$1) ? braces_1.expand(path) : [path]; + expandedPath.forEach((path) => { + parts.push(sysPath__default['default'].relative(this.watchPath, path).split(SLASH_OR_BACK_SLASH_RE)); + }); + return parts; + } + + filterDir(entry) { + if (this.hasGlob) { + const entryParts = this.getDirParts(this.checkGlobSymlink(entry)); + let globstar = false; + this.unmatchedGlob = !this.dirParts.some((parts) => { + return parts.every((part, i) => { + if (part === GLOBSTAR) globstar = true; + return globstar || !entryParts[0][i] || anymatch(part, entryParts[0][i], ANYMATCH_OPTS); + }); + }); + } + return !this.unmatchedGlob && this.fsw._isntIgnored(this.entryPath(entry), entry.stats); + } +} + +/** + * Watches files & directories for changes. Emitted events: + * `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `all`, `error` + * + * new FSWatcher() + * .add(directories) + * .on('add', path => log('File', path, 'was added')) + */ +class FSWatcher extends EventEmitter { +// Not indenting methods for history sake; for now. +constructor(_opts) { + super(); + + const opts = {}; + if (_opts) Object.assign(opts, _opts); // for frozen objects + + /** @type {Map} */ + this._watched = new Map(); + /** @type {Map} */ + this._closers = new Map(); + /** @type {Set} */ + this._ignoredPaths = new Set(); + + /** @type {Map} */ + this._throttled = new Map(); + + /** @type {Map} */ + this._symlinkPaths = new Map(); + + this._streams = new Set(); + this.closed = false; + + // Set up default options. + if (undef(opts, 'persistent')) opts.persistent = true; + if (undef(opts, 'ignoreInitial')) opts.ignoreInitial = false; + if (undef(opts, 'ignorePermissionErrors')) opts.ignorePermissionErrors = false; + if (undef(opts, 'interval')) opts.interval = 100; + if (undef(opts, 'binaryInterval')) opts.binaryInterval = 300; + if (undef(opts, 'disableGlobbing')) opts.disableGlobbing = false; + opts.enableBinaryInterval = opts.binaryInterval !== opts.interval; + + // Enable fsevents on OS X when polling isn't explicitly enabled. + if (undef(opts, 'useFsEvents')) opts.useFsEvents = !opts.usePolling; + + // If we can't use fsevents, ensure the options reflect it's disabled. + const canUseFsEvents = fseventsHandler.canUse(); + if (!canUseFsEvents) opts.useFsEvents = false; + + // Use polling on Mac if not using fsevents. + // Other platforms use non-polling fs_watch. + if (undef(opts, 'usePolling') && !opts.useFsEvents) { + opts.usePolling = isMacos; + } + + // Global override (useful for end-developers that need to force polling for all + // instances of chokidar, regardless of usage/dependency depth) + const envPoll = process.env.CHOKIDAR_USEPOLLING; + if (envPoll !== undefined) { + const envLower = envPoll.toLowerCase(); + + if (envLower === 'false' || envLower === '0') { + opts.usePolling = false; + } else if (envLower === 'true' || envLower === '1') { + opts.usePolling = true; + } else { + opts.usePolling = !!envLower; + } + } + const envInterval = process.env.CHOKIDAR_INTERVAL; + if (envInterval) { + opts.interval = Number.parseInt(envInterval, 10); + } + + // Editor atomic write normalization enabled by default with fs.watch + if (undef(opts, 'atomic')) opts.atomic = !opts.usePolling && !opts.useFsEvents; + if (opts.atomic) this._pendingUnlinks = new Map(); + + if (undef(opts, 'followSymlinks')) opts.followSymlinks = true; + + if (undef(opts, 'awaitWriteFinish')) opts.awaitWriteFinish = false; + if (opts.awaitWriteFinish === true) opts.awaitWriteFinish = {}; + const awf = opts.awaitWriteFinish; + if (awf) { + if (!awf.stabilityThreshold) awf.stabilityThreshold = 2000; + if (!awf.pollInterval) awf.pollInterval = 100; + this._pendingWrites = new Map(); + } + if (opts.ignored) opts.ignored = arrify(opts.ignored); + + let readyCalls = 0; + this._emitReady = () => { + readyCalls++; + if (readyCalls >= this._readyCount) { + this._emitReady = EMPTY_FN$2; + this._readyEmitted = true; + // use process.nextTick to allow time for listener to be bound + process.nextTick(() => this.emit(EV_READY)); + } + }; + this._emitRaw = (...args) => this.emit(EV_RAW, ...args); + this._readyEmitted = false; + this.options = opts; + + // Initialize with proper watcher. + if (opts.useFsEvents) { + this._fsEventsHandler = new fseventsHandler(this); + } else { + this._nodeFsHandler = new nodefsHandler(this); + } + + // You’re frozen when your heart’s not open. + Object.freeze(opts); +} + +// Public methods + +/** + * Adds paths to be watched on an existing FSWatcher instance + * @param {Path|Array} paths_ + * @param {String=} _origAdd private; for handling non-existent paths to be watched + * @param {Boolean=} _internal private; indicates a non-user add + * @returns {FSWatcher} for chaining + */ +add(paths_, _origAdd, _internal) { + const {cwd, disableGlobbing} = this.options; + this.closed = false; + let paths = unifyPaths(paths_); + if (cwd) { + paths = paths.map((path) => { + const absPath = getAbsolutePath(path, cwd); + + // Check `path` instead of `absPath` because the cwd portion can't be a glob + if (disableGlobbing || !isGlob(path)) { + return absPath; + } + return normalizePath(absPath); + }); + } + + // set aside negated glob strings + paths = paths.filter((path) => { + if (path.startsWith(BANG$1)) { + this._ignoredPaths.add(path.slice(1)); + return false; + } + + // if a path is being added that was previously ignored, stop ignoring it + this._ignoredPaths.delete(path); + this._ignoredPaths.delete(path + SLASH_GLOBSTAR); + + // reset the cached userIgnored anymatch fn + // to make ignoredPaths changes effective + this._userIgnored = undefined; + + return true; + }); + + if (this.options.useFsEvents && this._fsEventsHandler) { + if (!this._readyCount) this._readyCount = paths.length; + if (this.options.persistent) this._readyCount *= 2; + paths.forEach((path) => this._fsEventsHandler._addToFsEvents(path)); + } else { + if (!this._readyCount) this._readyCount = 0; + this._readyCount += paths.length; + Promise.all( + paths.map(async path => { + const res = await this._nodeFsHandler._addToNodeFs(path, !_internal, 0, 0, _origAdd); + if (res) this._emitReady(); + return res; + }) + ).then(results => { + if (this.closed) return; + results.filter(item => item).forEach(item => { + this.add(sysPath__default['default'].dirname(item), sysPath__default['default'].basename(_origAdd || item)); + }); + }); + } + + return this; +} + +/** + * Close watchers or start ignoring events from specified paths. + * @param {Path|Array} paths_ - string or array of strings, file/directory paths and/or globs + * @returns {FSWatcher} for chaining +*/ +unwatch(paths_) { + if (this.closed) return this; + const paths = unifyPaths(paths_); + const {cwd} = this.options; + + paths.forEach((path) => { + // convert to absolute path unless relative path already matches + if (!sysPath__default['default'].isAbsolute(path) && !this._closers.has(path)) { + if (cwd) path = sysPath__default['default'].join(cwd, path); + path = sysPath__default['default'].resolve(path); + } + + this._closePath(path); + + this._ignoredPaths.add(path); + if (this._watched.has(path)) { + this._ignoredPaths.add(path + SLASH_GLOBSTAR); + } + + // reset the cached userIgnored anymatch fn + // to make ignoredPaths changes effective + this._userIgnored = undefined; + }); + + return this; +} + +/** + * Close watchers and remove all listeners from watched paths. + * @returns {Promise}. +*/ +close() { + if (this.closed) return this._closePromise; + this.closed = true; + + // Memory management. + this.removeAllListeners(); + const closers = []; + this._closers.forEach(closerList => closerList.forEach(closer => { + const promise = closer(); + if (promise instanceof Promise) closers.push(promise); + })); + this._streams.forEach(stream => stream.destroy()); + this._userIgnored = undefined; + this._readyCount = 0; + this._readyEmitted = false; + this._watched.forEach(dirent => dirent.dispose()); + ['closers', 'watched', 'streams', 'symlinkPaths', 'throttled'].forEach(key => { + this[`_${key}`].clear(); + }); + + this._closePromise = closers.length ? Promise.all(closers).then(() => undefined) : Promise.resolve(); + return this._closePromise; +} + +/** + * Expose list of watched paths + * @returns {Object} for chaining +*/ +getWatched() { + const watchList = {}; + this._watched.forEach((entry, dir) => { + const key = this.options.cwd ? sysPath__default['default'].relative(this.options.cwd, dir) : dir; + watchList[key || ONE_DOT] = entry.getChildren().sort(); + }); + return watchList; +} + +emitWithAll(event, args) { + this.emit(...args); + if (event !== EV_ERROR$2) this.emit(EV_ALL, ...args); +} + +// Common helpers +// -------------- + +/** + * Normalize and emit events. + * Calling _emit DOES NOT MEAN emit() would be called! + * @param {EventName} event Type of event + * @param {Path} path File or directory path + * @param {*=} val1 arguments to be passed with event + * @param {*=} val2 + * @param {*=} val3 + * @returns the error if defined, otherwise the value of the FSWatcher instance's `closed` flag + */ +async _emit(event, path, val1, val2, val3) { + if (this.closed) return; + + const opts = this.options; + if (isWindows$1) path = sysPath__default['default'].normalize(path); + if (opts.cwd) path = sysPath__default['default'].relative(opts.cwd, path); + /** @type Array */ + const args = [event, path]; + if (val3 !== undefined) args.push(val1, val2, val3); + else if (val2 !== undefined) args.push(val1, val2); + else if (val1 !== undefined) args.push(val1); + + const awf = opts.awaitWriteFinish; + let pw; + if (awf && (pw = this._pendingWrites.get(path))) { + pw.lastChange = new Date(); + return this; + } + + if (opts.atomic) { + if (event === EV_UNLINK$1) { + this._pendingUnlinks.set(path, args); + setTimeout(() => { + this._pendingUnlinks.forEach((entry, path) => { + this.emit(...entry); + this.emit(EV_ALL, ...entry); + this._pendingUnlinks.delete(path); + }); + }, typeof opts.atomic === 'number' ? opts.atomic : 100); + return this; + } + if (event === EV_ADD$2 && this._pendingUnlinks.has(path)) { + event = args[0] = EV_CHANGE$2; + this._pendingUnlinks.delete(path); + } + } + + if (awf && (event === EV_ADD$2 || event === EV_CHANGE$2) && this._readyEmitted) { + const awfEmit = (err, stats) => { + if (err) { + event = args[0] = EV_ERROR$2; + args[1] = err; + this.emitWithAll(event, args); + } else if (stats) { + // if stats doesn't exist the file must have been deleted + if (args.length > 2) { + args[2] = stats; + } else { + args.push(stats); + } + this.emitWithAll(event, args); + } + }; + + this._awaitWriteFinish(path, awf.stabilityThreshold, event, awfEmit); + return this; + } + + if (event === EV_CHANGE$2) { + const isThrottled = !this._throttle(EV_CHANGE$2, path, 50); + if (isThrottled) return this; + } + + if (opts.alwaysStat && val1 === undefined && + (event === EV_ADD$2 || event === EV_ADD_DIR$2 || event === EV_CHANGE$2) + ) { + const fullPath = opts.cwd ? sysPath__default['default'].join(opts.cwd, path) : path; + let stats; + try { + stats = await stat$3(fullPath); + } catch (err) {} + // Suppress event when fs_stat fails, to avoid sending undefined 'stat' + if (!stats || this.closed) return; + args.push(stats); + } + this.emitWithAll(event, args); + + return this; +} + +/** + * Common handler for errors + * @param {Error} error + * @returns {Error|Boolean} The error if defined, otherwise the value of the FSWatcher instance's `closed` flag + */ +_handleError(error) { + const code = error && error.code; + if (error && code !== 'ENOENT' && code !== 'ENOTDIR' && + (!this.options.ignorePermissionErrors || (code !== 'EPERM' && code !== 'EACCES')) + ) { + this.emit(EV_ERROR$2, error); + } + return error || this.closed; +} + +/** + * Helper utility for throttling + * @param {ThrottleType} actionType type being throttled + * @param {Path} path being acted upon + * @param {Number} timeout duration of time to suppress duplicate actions + * @returns {Object|false} tracking object or false if action should be suppressed + */ +_throttle(actionType, path, timeout) { + if (!this._throttled.has(actionType)) { + this._throttled.set(actionType, new Map()); + } + + /** @type {Map} */ + const action = this._throttled.get(actionType); + /** @type {Object} */ + const actionPath = action.get(path); + + if (actionPath) { + actionPath.count++; + return false; + } + + let timeoutObject; + const clear = () => { + const item = action.get(path); + const count = item ? item.count : 0; + action.delete(path); + clearTimeout(timeoutObject); + if (item) clearTimeout(item.timeoutObject); + return count; + }; + timeoutObject = setTimeout(clear, timeout); + const thr = {timeoutObject, clear, count: 0}; + action.set(path, thr); + return thr; +} + +_incrReadyCount() { + return this._readyCount++; +} + +/** + * Awaits write operation to finish. + * Polls a newly created file for size variations. When files size does not change for 'threshold' milliseconds calls callback. + * @param {Path} path being acted upon + * @param {Number} threshold Time in milliseconds a file size must be fixed before acknowledging write OP is finished + * @param {EventName} event + * @param {Function} awfEmit Callback to be called when ready for event to be emitted. + */ +_awaitWriteFinish(path, threshold, event, awfEmit) { + let timeoutHandler; + + let fullPath = path; + if (this.options.cwd && !sysPath__default['default'].isAbsolute(path)) { + fullPath = sysPath__default['default'].join(this.options.cwd, path); + } + + const now = new Date(); + + const awaitWriteFinish = (prevStat) => { + fs$2.stat(fullPath, (err, curStat) => { + if (err || !this._pendingWrites.has(path)) { + if (err && err.code !== 'ENOENT') awfEmit(err); + return; + } + + const now = Number(new Date()); + + if (prevStat && curStat.size !== prevStat.size) { + this._pendingWrites.get(path).lastChange = now; + } + const pw = this._pendingWrites.get(path); + const df = now - pw.lastChange; + + if (df >= threshold) { + this._pendingWrites.delete(path); + awfEmit(undefined, curStat); + } else { + timeoutHandler = setTimeout( + awaitWriteFinish, + this.options.awaitWriteFinish.pollInterval, + curStat + ); + } + }); + }; + + if (!this._pendingWrites.has(path)) { + this._pendingWrites.set(path, { + lastChange: now, + cancelWait: () => { + this._pendingWrites.delete(path); + clearTimeout(timeoutHandler); + return event; + } + }); + timeoutHandler = setTimeout( + awaitWriteFinish, + this.options.awaitWriteFinish.pollInterval + ); + } +} + +_getGlobIgnored() { + return [...this._ignoredPaths.values()]; +} + +/** + * Determines whether user has asked to ignore this path. + * @param {Path} path filepath or dir + * @param {fs.Stats=} stats result of fs.stat + * @returns {Boolean} + */ +_isIgnored(path, stats) { + if (this.options.atomic && DOT_RE.test(path)) return true; + if (!this._userIgnored) { + const {cwd} = this.options; + const ign = this.options.ignored; + + const ignored = ign && ign.map(normalizeIgnored(cwd)); + const paths = arrify(ignored) + .filter((path) => typeof path === STRING_TYPE && !isGlob(path)) + .map((path) => path + SLASH_GLOBSTAR); + const list = this._getGlobIgnored().map(normalizeIgnored(cwd)).concat(ignored, paths); + this._userIgnored = anymatch(list, undefined, ANYMATCH_OPTS); + } + + return this._userIgnored([path, stats]); +} + +_isntIgnored(path, stat) { + return !this._isIgnored(path, stat); +} + +/** + * Provides a set of common helpers and properties relating to symlink and glob handling. + * @param {Path} path file, directory, or glob pattern being watched + * @param {Number=} depth at any depth > 0, this isn't a glob + * @returns {WatchHelper} object containing helpers for this path + */ +_getWatchHelpers(path, depth) { + const watchPath = depth || this.options.disableGlobbing || !isGlob(path) ? path : globParent(path); + const follow = this.options.followSymlinks; + + return new WatchHelper(path, watchPath, follow, this); +} + +// Directory helpers +// ----------------- + +/** + * Provides directory tracking objects + * @param {String} directory path of the directory + * @returns {DirEntry} the directory's tracking object + */ +_getWatchedDir(directory) { + if (!this._boundRemove) this._boundRemove = this._remove.bind(this); + const dir = sysPath__default['default'].resolve(directory); + if (!this._watched.has(dir)) this._watched.set(dir, new DirEntry(dir, this._boundRemove)); + return this._watched.get(dir); +} + +// File helpers +// ------------ + +/** + * Check for read permissions. + * Based on this answer on SO: https://stackoverflow.com/a/11781404/1358405 + * @param {fs.Stats} stats - object, result of fs_stat + * @returns {Boolean} indicates whether the file can be read +*/ +_hasReadPermissions(stats) { + if (this.options.ignorePermissionErrors) return true; + + // stats.mode may be bigint + const md = stats && Number.parseInt(stats.mode, 10); + const st = md & 0o777; + const it = Number.parseInt(st.toString(8)[0], 10); + return Boolean(4 & it); +} + +/** + * Handles emitting unlink events for + * files and directories, and via recursion, for + * files and directories within directories that are unlinked + * @param {String} directory within which the following item is located + * @param {String} item base path of item/directory + * @returns {void} +*/ +_remove(directory, item, isDirectory) { + // if what is being deleted is a directory, get that directory's paths + // for recursive deleting and cleaning of watched object + // if it is not a directory, nestedDirectoryChildren will be empty array + const path = sysPath__default['default'].join(directory, item); + const fullPath = sysPath__default['default'].resolve(path); + isDirectory = isDirectory != null + ? isDirectory + : this._watched.has(path) || this._watched.has(fullPath); + + // prevent duplicate handling in case of arriving here nearly simultaneously + // via multiple paths (such as _handleFile and _handleDir) + if (!this._throttle('remove', path, 100)) return; + + // if the only watched file is removed, watch for its return + if (!isDirectory && !this.options.useFsEvents && this._watched.size === 1) { + this.add(directory, item, true); + } + + // This will create a new entry in the watched object in either case + // so we got to do the directory check beforehand + const wp = this._getWatchedDir(path); + const nestedDirectoryChildren = wp.getChildren(); + + // Recursively remove children directories / files. + nestedDirectoryChildren.forEach(nested => this._remove(path, nested)); + + // Check if item was on the watched list and remove it + const parent = this._getWatchedDir(directory); + const wasTracked = parent.has(item); + parent.remove(item); + + // Fixes issue #1042 -> Relative paths were detected and added as symlinks + // (https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L612), + // but never removed from the map in case the path was deleted. + // This leads to an incorrect state if the path was recreated: + // https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L553 + if (this._symlinkPaths.has(fullPath)) { + this._symlinkPaths.delete(fullPath); + } + + // If we wait for this file to be fully written, cancel the wait. + let relPath = path; + if (this.options.cwd) relPath = sysPath__default['default'].relative(this.options.cwd, path); + if (this.options.awaitWriteFinish && this._pendingWrites.has(relPath)) { + const event = this._pendingWrites.get(relPath).cancelWait(); + if (event === EV_ADD$2) return; + } + + // The Entry will either be a directory that just got removed + // or a bogus entry to a file, in either case we have to remove it + this._watched.delete(path); + this._watched.delete(fullPath); + const eventName = isDirectory ? EV_UNLINK_DIR : EV_UNLINK$1; + if (wasTracked && !this._isIgnored(path)) this._emit(eventName, path); + + // Avoid conflicts if we later create another file with the same name + if (!this.options.useFsEvents) { + this._closePath(path); + } +} + +/** + * Closes all watchers for a path + * @param {Path} path + */ +_closePath(path) { + this._closeFile(path); + const dir = sysPath__default['default'].dirname(path); + this._getWatchedDir(dir).remove(sysPath__default['default'].basename(path)); +} + +/** + * Closes only file-specific watchers + * @param {Path} path + */ +_closeFile(path) { + const closers = this._closers.get(path); + if (!closers) return; + closers.forEach(closer => closer()); + this._closers.delete(path); +} + +/** + * + * @param {Path} path + * @param {Function} closer + */ +_addPathCloser(path, closer) { + if (!closer) return; + let list = this._closers.get(path); + if (!list) { + list = []; + this._closers.set(path, list); + } + list.push(closer); +} + +_readdirp(root, opts) { + if (this.closed) return; + const options = {type: EV_ALL, alwaysStat: true, lstat: true, ...opts}; + let stream = readdirp_1(root, options); + this._streams.add(stream); + stream.once(STR_CLOSE, () => { + stream = undefined; + }); + stream.once(STR_END$2, () => { + if (stream) { + this._streams.delete(stream); + stream = undefined; + } + }); + return stream; +} + +} + +/** + * Instantiates watcher with paths to be tracked. + * @param {String|Array} paths file/directory paths and/or globs + * @param {Object=} options chokidar opts + * @returns an instance of FSWatcher for chaining. + */ +const watch = (paths, options) => { + const watcher = new FSWatcher(options); + watcher.add(paths); + return watcher; +}; + +var watch_1 = watch; + +var utils$2 = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +exports.extend = extend; +exports.indexOf = indexOf; +exports.escapeExpression = escapeExpression; +exports.isEmpty = isEmpty; +exports.createFrame = createFrame; +exports.blockParams = blockParams; +exports.appendContextPath = appendContextPath; +var escape = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`', + '=': '=' +}; + +var badChars = /[&<>"'`=]/g, + possible = /[&<>"'`=]/; + +function escapeChar(chr) { + return escape[chr]; +} + +function extend(obj /* , ...source */) { + for (var i = 1; i < arguments.length; i++) { + for (var key in arguments[i]) { + if (Object.prototype.hasOwnProperty.call(arguments[i], key)) { + obj[key] = arguments[i][key]; + } + } + } + + return obj; +} + +var toString = Object.prototype.toString; + +exports.toString = toString; +// Sourced from lodash +// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt +/* eslint-disable func-style */ +var isFunction = function isFunction(value) { + return typeof value === 'function'; +}; +// fallback for older versions of Chrome and Safari +/* istanbul ignore next */ +if (isFunction(/x/)) { + exports.isFunction = isFunction = function (value) { + return typeof value === 'function' && toString.call(value) === '[object Function]'; + }; +} +exports.isFunction = isFunction; + +/* eslint-enable func-style */ + +/* istanbul ignore next */ +var isArray = Array.isArray || function (value) { + return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false; +}; + +exports.isArray = isArray; +// Older IE versions do not directly support indexOf so we must implement our own, sadly. + +function indexOf(array, value) { + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] === value) { + return i; + } + } + return -1; +} + +function escapeExpression(string) { + if (typeof string !== 'string') { + // don't escape SafeStrings, since they're already safe + if (string && string.toHTML) { + return string.toHTML(); + } else if (string == null) { + return ''; + } else if (!string) { + return string + ''; + } + + // Force a string conversion as this will be done by the append regardless and + // the regex test will do this transparently behind the scenes, causing issues if + // an object's to string has escaped characters in it. + string = '' + string; + } + + if (!possible.test(string)) { + return string; + } + return string.replace(badChars, escapeChar); +} + +function isEmpty(value) { + if (!value && value !== 0) { + return true; + } else if (isArray(value) && value.length === 0) { + return true; + } else { + return false; + } +} + +function createFrame(object) { + var frame = extend({}, object); + frame._parent = object; + return frame; +} + +function blockParams(params, ids) { + params.path = ids; + return params; +} + +function appendContextPath(contextPath, id) { + return (contextPath ? contextPath + '.' : '') + id; +} + +}); + +var exception = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +var errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack']; + +function Exception(message, node) { + var loc = node && node.loc, + line = undefined, + endLineNumber = undefined, + column = undefined, + endColumn = undefined; + + if (loc) { + line = loc.start.line; + endLineNumber = loc.end.line; + column = loc.start.column; + endColumn = loc.end.column; + + message += ' - ' + line + ':' + column; + } + + var tmp = Error.prototype.constructor.call(this, message); + + // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. + for (var idx = 0; idx < errorProps.length; idx++) { + this[errorProps[idx]] = tmp[errorProps[idx]]; + } + + /* istanbul ignore else */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, Exception); + } + + try { + if (loc) { + this.lineNumber = line; + this.endLineNumber = endLineNumber; + + // Work around issue under safari where we can't directly set the column value + /* istanbul ignore next */ + if (Object.defineProperty) { + Object.defineProperty(this, 'column', { + value: column, + enumerable: true + }); + Object.defineProperty(this, 'endColumn', { + value: endColumn, + enumerable: true + }); + } else { + this.column = column; + this.endColumn = endColumn; + } + } + } catch (nop) { + /* Ignore if the browser is very particular */ + } +} + +Exception.prototype = new Error(); + +exports['default'] = Exception; +module.exports = exports['default']; + +}); + +var blockHelperMissing = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; + + + +exports['default'] = function (instance) { + instance.registerHelper('blockHelperMissing', function (context, options) { + var inverse = options.inverse, + fn = options.fn; + + if (context === true) { + return fn(this); + } else if (context === false || context == null) { + return inverse(this); + } else if (utils$2.isArray(context)) { + if (context.length > 0) { + if (options.ids) { + options.ids = [options.name]; + } + + return instance.helpers.each(context, options); + } else { + return inverse(this); + } + } else { + if (options.data && options.ids) { + var data = utils$2.createFrame(options.data); + data.contextPath = utils$2.appendContextPath(options.data.contextPath, options.name); + options = { data: data }; + } + + return fn(context, options); + } + }); +}; + +module.exports = exports['default']; + +}); + +var each = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + + + +var _exception2 = _interopRequireDefault(exception); + +exports['default'] = function (instance) { + instance.registerHelper('each', function (context, options) { + if (!options) { + throw new _exception2['default']('Must pass iterator to #each'); + } + + var fn = options.fn, + inverse = options.inverse, + i = 0, + ret = '', + data = undefined, + contextPath = undefined; + + if (options.data && options.ids) { + contextPath = utils$2.appendContextPath(options.data.contextPath, options.ids[0]) + '.'; + } + + if (utils$2.isFunction(context)) { + context = context.call(this); + } + + if (options.data) { + data = utils$2.createFrame(options.data); + } + + function execIteration(field, index, last) { + if (data) { + data.key = field; + data.index = index; + data.first = index === 0; + data.last = !!last; + + if (contextPath) { + data.contextPath = contextPath + field; + } + } + + ret = ret + fn(context[field], { + data: data, + blockParams: utils$2.blockParams([context[field], field], [contextPath + field, null]) + }); + } + + if (context && typeof context === 'object') { + if (utils$2.isArray(context)) { + for (var j = context.length; i < j; i++) { + if (i in context) { + execIteration(i, i, i === context.length - 1); + } + } + } else if (commonjsGlobal.Symbol && context[commonjsGlobal.Symbol.iterator]) { + var newContext = []; + var iterator = context[commonjsGlobal.Symbol.iterator](); + for (var it = iterator.next(); !it.done; it = iterator.next()) { + newContext.push(it.value); + } + context = newContext; + for (var j = context.length; i < j; i++) { + execIteration(i, i, i === context.length - 1); + } + } else { + (function () { + var priorKey = undefined; + + Object.keys(context).forEach(function (key) { + // We're running the iterations one step out of sync so we can detect + // the last iteration without have to scan the object twice and create + // an itermediate keys array. + if (priorKey !== undefined) { + execIteration(priorKey, i - 1); + } + priorKey = key; + i++; + }); + if (priorKey !== undefined) { + execIteration(priorKey, i - 1, true); + } + })(); + } + } + + if (i === 0) { + ret = inverse(this); + } + + return ret; + }); +}; + +module.exports = exports['default']; + +}); + +var helperMissing = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + +var _exception2 = _interopRequireDefault(exception); + +exports['default'] = function (instance) { + instance.registerHelper('helperMissing', function () /* [args, ]options */{ + if (arguments.length === 1) { + // A missing field in a {{foo}} construct. + return undefined; + } else { + // Someone is actually trying to call something, blow up. + throw new _exception2['default']('Missing helper: "' + arguments[arguments.length - 1].name + '"'); + } + }); +}; + +module.exports = exports['default']; + +}); + +var _if = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + + + +var _exception2 = _interopRequireDefault(exception); + +exports['default'] = function (instance) { + instance.registerHelper('if', function (conditional, options) { + if (arguments.length != 2) { + throw new _exception2['default']('#if requires exactly one argument'); + } + if (utils$2.isFunction(conditional)) { + conditional = conditional.call(this); + } + + // Default behavior is to render the positive path if the value is truthy and not empty. + // The `includeZero` option may be set to treat the condtional as purely not empty based on the + // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative. + if (!options.hash.includeZero && !conditional || utils$2.isEmpty(conditional)) { + return options.inverse(this); + } else { + return options.fn(this); + } + }); + + instance.registerHelper('unless', function (conditional, options) { + if (arguments.length != 2) { + throw new _exception2['default']('#unless requires exactly one argument'); + } + return instance.helpers['if'].call(this, conditional, { + fn: options.inverse, + inverse: options.fn, + hash: options.hash + }); + }); +}; + +module.exports = exports['default']; + +}); + +var log = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; + +exports['default'] = function (instance) { + instance.registerHelper('log', function () /* message, options */{ + var args = [undefined], + options = arguments[arguments.length - 1]; + for (var i = 0; i < arguments.length - 1; i++) { + args.push(arguments[i]); + } + + var level = 1; + if (options.hash.level != null) { + level = options.hash.level; + } else if (options.data && options.data.level != null) { + level = options.data.level; + } + args[0] = level; + + instance.log.apply(instance, args); + }); +}; + +module.exports = exports['default']; + +}); + +var lookup = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; + +exports['default'] = function (instance) { + instance.registerHelper('lookup', function (obj, field, options) { + if (!obj) { + // Note for 5.0: Change to "obj == null" in 5.0 + return obj; + } + return options.lookupProperty(obj, field); + }); +}; + +module.exports = exports['default']; + +}); + +var _with = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + + + +var _exception2 = _interopRequireDefault(exception); + +exports['default'] = function (instance) { + instance.registerHelper('with', function (context, options) { + if (arguments.length != 2) { + throw new _exception2['default']('#with requires exactly one argument'); + } + if (utils$2.isFunction(context)) { + context = context.call(this); + } + + var fn = options.fn; + + if (!utils$2.isEmpty(context)) { + var data = options.data; + if (options.data && options.ids) { + data = utils$2.createFrame(options.data); + data.contextPath = utils$2.appendContextPath(options.data.contextPath, options.ids[0]); + } + + return fn(context, { + data: data, + blockParams: utils$2.blockParams([context], [data && data.contextPath]) + }); + } else { + return options.inverse(this); + } + }); +}; + +module.exports = exports['default']; + +}); + +var helpers = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +exports.registerDefaultHelpers = registerDefaultHelpers; +exports.moveHelperToHooks = moveHelperToHooks; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + +var _helpersBlockHelperMissing2 = _interopRequireDefault(blockHelperMissing); + + + +var _helpersEach2 = _interopRequireDefault(each); + + + +var _helpersHelperMissing2 = _interopRequireDefault(helperMissing); + + + +var _helpersIf2 = _interopRequireDefault(_if); + + + +var _helpersLog2 = _interopRequireDefault(log); + + + +var _helpersLookup2 = _interopRequireDefault(lookup); + + + +var _helpersWith2 = _interopRequireDefault(_with); + +function registerDefaultHelpers(instance) { + _helpersBlockHelperMissing2['default'](instance); + _helpersEach2['default'](instance); + _helpersHelperMissing2['default'](instance); + _helpersIf2['default'](instance); + _helpersLog2['default'](instance); + _helpersLookup2['default'](instance); + _helpersWith2['default'](instance); +} + +function moveHelperToHooks(instance, helperName, keepHelper) { + if (instance.helpers[helperName]) { + instance.hooks[helperName] = instance.helpers[helperName]; + if (!keepHelper) { + delete instance.helpers[helperName]; + } + } +} + +}); + +var inline = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; + + + +exports['default'] = function (instance) { + instance.registerDecorator('inline', function (fn, props, container, options) { + var ret = fn; + if (!props.partials) { + props.partials = {}; + ret = function (context, options) { + // Create a new partials stack frame prior to exec. + var original = container.partials; + container.partials = utils$2.extend({}, original, props.partials); + var ret = fn(context, options); + container.partials = original; + return ret; + }; + } + + props.partials[options.args[0]] = options.fn; + + return ret; + }); +}; + +module.exports = exports['default']; + +}); + +var decorators = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +exports.registerDefaultDecorators = registerDefaultDecorators; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + +var _decoratorsInline2 = _interopRequireDefault(inline); + +function registerDefaultDecorators(instance) { + _decoratorsInline2['default'](instance); +} + +}); + +var logger_1 = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; + + + +var logger = { + methodMap: ['debug', 'info', 'warn', 'error'], + level: 'info', + + // Maps a given level value to the `methodMap` indexes above. + lookupLevel: function lookupLevel(level) { + if (typeof level === 'string') { + var levelMap = utils$2.indexOf(logger.methodMap, level.toLowerCase()); + if (levelMap >= 0) { + level = levelMap; + } else { + level = parseInt(level, 10); + } + } + + return level; + }, + + // Can be overridden in the host environment + log: function log(level) { + level = logger.lookupLevel(level); + + if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) { + var method = logger.methodMap[level]; + // eslint-disable-next-line no-console + if (!console[method]) { + method = 'log'; + } + + for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + message[_key - 1] = arguments[_key]; + } + + console[method].apply(console, message); // eslint-disable-line no-console + } + } +}; + +exports['default'] = logger; +module.exports = exports['default']; + +}); + +var createNewLookupObject_1 = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +exports.createNewLookupObject = createNewLookupObject; + + + +/** + * Create a new object with "null"-prototype to avoid truthy results on prototype properties. + * The resulting object can be used with "object[property]" to check if a property exists + * @param {...object} sources a varargs parameter of source objects that will be merged + * @returns {object} + */ + +function createNewLookupObject() { + for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) { + sources[_key] = arguments[_key]; + } + + return utils$2.extend.apply(undefined, [Object.create(null)].concat(sources)); +} + +}); + +var protoAccess = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +exports.createProtoAccessControl = createProtoAccessControl; +exports.resultIsAllowed = resultIsAllowed; +exports.resetLoggedProperties = resetLoggedProperties; +// istanbul ignore next + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + + + + + +var logger = _interopRequireWildcard(logger_1); + +var loggedProperties = Object.create(null); + +function createProtoAccessControl(runtimeOptions) { + var defaultMethodWhiteList = Object.create(null); + defaultMethodWhiteList['constructor'] = false; + defaultMethodWhiteList['__defineGetter__'] = false; + defaultMethodWhiteList['__defineSetter__'] = false; + defaultMethodWhiteList['__lookupGetter__'] = false; + + var defaultPropertyWhiteList = Object.create(null); + // eslint-disable-next-line no-proto + defaultPropertyWhiteList['__proto__'] = false; + + return { + properties: { + whitelist: createNewLookupObject_1.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties), + defaultValue: runtimeOptions.allowProtoPropertiesByDefault + }, + methods: { + whitelist: createNewLookupObject_1.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods), + defaultValue: runtimeOptions.allowProtoMethodsByDefault + } + }; +} + +function resultIsAllowed(result, protoAccessControl, propertyName) { + if (typeof result === 'function') { + return checkWhiteList(protoAccessControl.methods, propertyName); + } else { + return checkWhiteList(protoAccessControl.properties, propertyName); + } +} + +function checkWhiteList(protoAccessControlForType, propertyName) { + if (protoAccessControlForType.whitelist[propertyName] !== undefined) { + return protoAccessControlForType.whitelist[propertyName] === true; + } + if (protoAccessControlForType.defaultValue !== undefined) { + return protoAccessControlForType.defaultValue; + } + logUnexpecedPropertyAccessOnce(propertyName); + return false; +} + +function logUnexpecedPropertyAccessOnce(propertyName) { + if (loggedProperties[propertyName] !== true) { + loggedProperties[propertyName] = true; + logger.log('error', 'Handlebars: Access has been denied to resolve the property "' + propertyName + '" because it is not an "own property" of its parent.\n' + 'You can add a runtime option to disable the check or this warning:\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details'); + } +} + +function resetLoggedProperties() { + Object.keys(loggedProperties).forEach(function (propertyName) { + delete loggedProperties[propertyName]; + }); +} + +}); + +var base = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +exports.HandlebarsEnvironment = HandlebarsEnvironment; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + + + +var _exception2 = _interopRequireDefault(exception); + + + + + + + +var _logger2 = _interopRequireDefault(logger_1); + + + +var VERSION = '4.7.6'; +exports.VERSION = VERSION; +var COMPILER_REVISION = 8; +exports.COMPILER_REVISION = COMPILER_REVISION; +var LAST_COMPATIBLE_COMPILER_REVISION = 7; + +exports.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION; +var REVISION_CHANGES = { + 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it + 2: '== 1.0.0-rc.3', + 3: '== 1.0.0-rc.4', + 4: '== 1.x.x', + 5: '== 2.0.0-alpha.x', + 6: '>= 2.0.0-beta.1', + 7: '>= 4.0.0 <4.3.0', + 8: '>= 4.3.0' +}; + +exports.REVISION_CHANGES = REVISION_CHANGES; +var objectType = '[object Object]'; + +function HandlebarsEnvironment(helpers$1, partials, decorators$1) { + this.helpers = helpers$1 || {}; + this.partials = partials || {}; + this.decorators = decorators$1 || {}; + + helpers.registerDefaultHelpers(this); + decorators.registerDefaultDecorators(this); +} + +HandlebarsEnvironment.prototype = { + constructor: HandlebarsEnvironment, + + logger: _logger2['default'], + log: _logger2['default'].log, + + registerHelper: function registerHelper(name, fn) { + if (utils$2.toString.call(name) === objectType) { + if (fn) { + throw new _exception2['default']('Arg not supported with multiple helpers'); + } + utils$2.extend(this.helpers, name); + } else { + this.helpers[name] = fn; + } + }, + unregisterHelper: function unregisterHelper(name) { + delete this.helpers[name]; + }, + + registerPartial: function registerPartial(name, partial) { + if (utils$2.toString.call(name) === objectType) { + utils$2.extend(this.partials, name); + } else { + if (typeof partial === 'undefined') { + throw new _exception2['default']('Attempting to register a partial called "' + name + '" as undefined'); + } + this.partials[name] = partial; + } + }, + unregisterPartial: function unregisterPartial(name) { + delete this.partials[name]; + }, + + registerDecorator: function registerDecorator(name, fn) { + if (utils$2.toString.call(name) === objectType) { + if (fn) { + throw new _exception2['default']('Arg not supported with multiple decorators'); + } + utils$2.extend(this.decorators, name); + } else { + this.decorators[name] = fn; + } + }, + unregisterDecorator: function unregisterDecorator(name) { + delete this.decorators[name]; + }, + /** + * Reset the memory of illegal property accesses that have already been logged. + * @deprecated should only be used in handlebars test-cases + */ + resetLoggedPropertyAccesses: function resetLoggedPropertyAccesses() { + protoAccess.resetLoggedProperties(); + } +}; + +var log = _logger2['default'].log; + +exports.log = log; +exports.createFrame = utils$2.createFrame; +exports.logger = _logger2['default']; + +}); + +var safeString = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +function SafeString(string) { + this.string = string; +} + +SafeString.prototype.toString = SafeString.prototype.toHTML = function () { + return '' + this.string; +}; + +exports['default'] = SafeString; +module.exports = exports['default']; + +}); + +var wrapHelper_1 = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +exports.wrapHelper = wrapHelper; + +function wrapHelper(helper, transformOptionsFn) { + if (typeof helper !== 'function') { + // This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639 + // We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function. + return helper; + } + var wrapper = function wrapper() /* dynamic arguments */{ + var options = arguments[arguments.length - 1]; + arguments[arguments.length - 1] = transformOptionsFn(options); + return helper.apply(this, arguments); + }; + return wrapper; +} + +}); + +var runtime = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +exports.checkRevision = checkRevision; +exports.template = template; +exports.wrapProgram = wrapProgram; +exports.resolvePartial = resolvePartial; +exports.invokePartial = invokePartial; +exports.noop = noop; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +// istanbul ignore next + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + + + +var Utils = _interopRequireWildcard(utils$2); + + + +var _exception2 = _interopRequireDefault(exception); + + + + + + + + + +function checkRevision(compilerInfo) { + var compilerRevision = compilerInfo && compilerInfo[0] || 1, + currentRevision = base.COMPILER_REVISION; + + if (compilerRevision >= base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= base.COMPILER_REVISION) { + return; + } + + if (compilerRevision < base.LAST_COMPATIBLE_COMPILER_REVISION) { + var runtimeVersions = base.REVISION_CHANGES[currentRevision], + compilerVersions = base.REVISION_CHANGES[compilerRevision]; + throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').'); + } else { + // Use the embedded version info since the runtime doesn't know about this revision yet + throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').'); + } +} + +function template(templateSpec, env) { + /* istanbul ignore next */ + if (!env) { + throw new _exception2['default']('No environment passed to template'); + } + if (!templateSpec || !templateSpec.main) { + throw new _exception2['default']('Unknown template object: ' + typeof templateSpec); + } + + templateSpec.main.decorator = templateSpec.main_d; + + // Note: Using env.VM references rather than local var references throughout this section to allow + // for external users to override these as pseudo-supported APIs. + env.VM.checkRevision(templateSpec.compiler); + + // backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0) + var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7; + + function invokePartialWrapper(partial, context, options) { + if (options.hash) { + context = Utils.extend({}, context, options.hash); + if (options.ids) { + options.ids[0] = true; + } + } + partial = env.VM.resolvePartial.call(this, partial, context, options); + + var extendedOptions = Utils.extend({}, options, { + hooks: this.hooks, + protoAccessControl: this.protoAccessControl + }); + + var result = env.VM.invokePartial.call(this, partial, context, extendedOptions); + + if (result == null && env.compile) { + options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env); + result = options.partials[options.name](context, extendedOptions); + } + if (result != null) { + if (options.indent) { + var lines = result.split('\n'); + for (var i = 0, l = lines.length; i < l; i++) { + if (!lines[i] && i + 1 === l) { + break; + } + + lines[i] = options.indent + lines[i]; + } + result = lines.join('\n'); + } + return result; + } else { + throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode'); + } + } + + // Just add water + var container = { + strict: function strict(obj, name, loc) { + if (!obj || !(name in obj)) { + throw new _exception2['default']('"' + name + '" not defined in ' + obj, { + loc: loc + }); + } + return obj[name]; + }, + lookupProperty: function lookupProperty(parent, propertyName) { + var result = parent[propertyName]; + if (result == null) { + return result; + } + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return result; + } + + if (protoAccess.resultIsAllowed(result, container.protoAccessControl, propertyName)) { + return result; + } + return undefined; + }, + lookup: function lookup(depths, name) { + var len = depths.length; + for (var i = 0; i < len; i++) { + var result = depths[i] && container.lookupProperty(depths[i], name); + if (result != null) { + return depths[i][name]; + } + } + }, + lambda: function lambda(current, context) { + return typeof current === 'function' ? current.call(context) : current; + }, + + escapeExpression: Utils.escapeExpression, + invokePartial: invokePartialWrapper, + + fn: function fn(i) { + var ret = templateSpec[i]; + ret.decorator = templateSpec[i + '_d']; + return ret; + }, + + programs: [], + program: function program(i, data, declaredBlockParams, blockParams, depths) { + var programWrapper = this.programs[i], + fn = this.fn(i); + if (data || depths || blockParams || declaredBlockParams) { + programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths); + } else if (!programWrapper) { + programWrapper = this.programs[i] = wrapProgram(this, i, fn); + } + return programWrapper; + }, + + data: function data(value, depth) { + while (value && depth--) { + value = value._parent; + } + return value; + }, + mergeIfNeeded: function mergeIfNeeded(param, common) { + var obj = param || common; + + if (param && common && param !== common) { + obj = Utils.extend({}, common, param); + } + + return obj; + }, + // An empty object to use as replacement for null-contexts + nullContext: Object.seal({}), + + noop: env.VM.noop, + compilerInfo: templateSpec.compiler + }; + + function ret(context) { + var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + + var data = options.data; + + ret._setup(options); + if (!options.partial && templateSpec.useData) { + data = initData(context, data); + } + var depths = undefined, + blockParams = templateSpec.useBlockParams ? [] : undefined; + if (templateSpec.useDepths) { + if (options.depths) { + depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths; + } else { + depths = [context]; + } + } + + function main(context /*, options*/) { + return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths); + } + + main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams); + return main(context, options); + } + + ret.isTop = true; + + ret._setup = function (options) { + if (!options.partial) { + var mergedHelpers = Utils.extend({}, env.helpers, options.helpers); + wrapHelpersToPassLookupProperty(mergedHelpers, container); + container.helpers = mergedHelpers; + + if (templateSpec.usePartial) { + // Use mergeIfNeeded here to prevent compiling global partials multiple times + container.partials = container.mergeIfNeeded(options.partials, env.partials); + } + if (templateSpec.usePartial || templateSpec.useDecorators) { + container.decorators = Utils.extend({}, env.decorators, options.decorators); + } + + container.hooks = {}; + container.protoAccessControl = protoAccess.createProtoAccessControl(options); + + var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7; + helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers); + helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers); + } else { + container.protoAccessControl = options.protoAccessControl; // internal option + container.helpers = options.helpers; + container.partials = options.partials; + container.decorators = options.decorators; + container.hooks = options.hooks; + } + }; + + ret._child = function (i, data, blockParams, depths) { + if (templateSpec.useBlockParams && !blockParams) { + throw new _exception2['default']('must pass block params'); + } + if (templateSpec.useDepths && !depths) { + throw new _exception2['default']('must pass parent depths'); + } + + return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths); + }; + return ret; +} + +function wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) { + function prog(context) { + var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + + var currentDepths = depths; + if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) { + currentDepths = [context].concat(depths); + } + + return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths); + } + + prog = executeDecorators(fn, prog, container, depths, data, blockParams); + + prog.program = i; + prog.depth = depths ? depths.length : 0; + prog.blockParams = declaredBlockParams || 0; + return prog; +} + +/** + * This is currently part of the official API, therefore implementation details should not be changed. + */ + +function resolvePartial(partial, context, options) { + if (!partial) { + if (options.name === '@partial-block') { + partial = options.data['partial-block']; + } else { + partial = options.partials[options.name]; + } + } else if (!partial.call && !options.name) { + // This is a dynamic partial that returned a string + options.name = partial; + partial = options.partials[partial]; + } + return partial; +} + +function invokePartial(partial, context, options) { + // Use the current closure context to save the partial-block if this partial + var currentPartialBlock = options.data && options.data['partial-block']; + options.partial = true; + if (options.ids) { + options.data.contextPath = options.ids[0] || options.data.contextPath; + } + + var partialBlock = undefined; + if (options.fn && options.fn !== noop) { + (function () { + options.data = base.createFrame(options.data); + // Wrapper function to get access to currentPartialBlock from the closure + var fn = options.fn; + partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) { + var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + + // Restore the partial-block from the closure for the execution of the block + // i.e. the part inside the block of the partial call. + options.data = base.createFrame(options.data); + options.data['partial-block'] = currentPartialBlock; + return fn(context, options); + }; + if (fn.partials) { + options.partials = Utils.extend({}, options.partials, fn.partials); + } + })(); + } + + if (partial === undefined && partialBlock) { + partial = partialBlock; + } + + if (partial === undefined) { + throw new _exception2['default']('The partial ' + options.name + ' could not be found'); + } else if (partial instanceof Function) { + return partial(context, options); + } +} + +function noop() { + return ''; +} + +function initData(context, data) { + if (!data || !('root' in data)) { + data = data ? base.createFrame(data) : {}; + data.root = context; + } + return data; +} + +function executeDecorators(fn, prog, container, depths, data, blockParams) { + if (fn.decorator) { + var props = {}; + prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths); + Utils.extend(prog, props); + } + return prog; +} + +function wrapHelpersToPassLookupProperty(mergedHelpers, container) { + Object.keys(mergedHelpers).forEach(function (helperName) { + var helper = mergedHelpers[helperName]; + mergedHelpers[helperName] = passLookupPropertyOption(helper, container); + }); +} + +function passLookupPropertyOption(helper, container) { + var lookupProperty = container.lookupProperty; + return wrapHelper_1.wrapHelper(helper, function (options) { + return Utils.extend({ lookupProperty: lookupProperty }, options); + }); +} + +}); + +var noConflict = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; + +exports['default'] = function (Handlebars) { + /* istanbul ignore next */ + var root = typeof commonjsGlobal !== 'undefined' ? commonjsGlobal : window, + $Handlebars = root.Handlebars; + /* istanbul ignore next */ + Handlebars.noConflict = function () { + if (root.Handlebars === Handlebars) { + root.Handlebars = $Handlebars; + } + return Handlebars; + }; +}; + +module.exports = exports['default']; + +}); + +var handlebars_runtime = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +// istanbul ignore next + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + + + +var base$1 = _interopRequireWildcard(base); + +// Each of these augment the Handlebars object. No need to setup here. +// (This is done to easily share code between commonjs and browse envs) + + + +var _handlebarsSafeString2 = _interopRequireDefault(safeString); + + + +var _handlebarsException2 = _interopRequireDefault(exception); + + + +var Utils = _interopRequireWildcard(utils$2); + + + +var runtime$1 = _interopRequireWildcard(runtime); + + + +var _handlebarsNoConflict2 = _interopRequireDefault(noConflict); + +// For compatibility and usage outside of module systems, make the Handlebars object a namespace +function create() { + var hb = new base$1.HandlebarsEnvironment(); + + Utils.extend(hb, base$1); + hb.SafeString = _handlebarsSafeString2['default']; + hb.Exception = _handlebarsException2['default']; + hb.Utils = Utils; + hb.escapeExpression = Utils.escapeExpression; + + hb.VM = runtime$1; + hb.template = function (spec) { + return runtime$1.template(spec, hb); + }; + + return hb; +} + +var inst = create(); +inst.create = create; + +_handlebarsNoConflict2['default'](inst); + +inst['default'] = inst; + +exports['default'] = inst; +module.exports = exports['default']; + +}); + +var ast = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +var AST = { + // Public API used to evaluate derived attributes regarding AST nodes + helpers: { + // a mustache is definitely a helper if: + // * it is an eligible helper, and + // * it has at least one parameter or hash segment + helperExpression: function helperExpression(node) { + return node.type === 'SubExpression' || (node.type === 'MustacheStatement' || node.type === 'BlockStatement') && !!(node.params && node.params.length || node.hash); + }, + + scopedId: function scopedId(path) { + return (/^\.|this\b/.test(path.original) + ); + }, + + // an ID is simple if it only has one part, and that part is not + // `..` or `this`. + simpleId: function simpleId(path) { + return path.parts.length === 1 && !AST.helpers.scopedId(path) && !path.depth; + } + } +}; + +// Must be exported as an object rather than the root of the module as the jison lexer +// must modify the object to operate properly. +exports['default'] = AST; +module.exports = exports['default']; + +}); + +var parser = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +var handlebars = (function () { + var parser = { trace: function trace() {}, + yy: {}, + symbols_: { "error": 2, "root": 3, "program": 4, "EOF": 5, "program_repetition0": 6, "statement": 7, "mustache": 8, "block": 9, "rawBlock": 10, "partial": 11, "partialBlock": 12, "content": 13, "COMMENT": 14, "CONTENT": 15, "openRawBlock": 16, "rawBlock_repetition0": 17, "END_RAW_BLOCK": 18, "OPEN_RAW_BLOCK": 19, "helperName": 20, "openRawBlock_repetition0": 21, "openRawBlock_option0": 22, "CLOSE_RAW_BLOCK": 23, "openBlock": 24, "block_option0": 25, "closeBlock": 26, "openInverse": 27, "block_option1": 28, "OPEN_BLOCK": 29, "openBlock_repetition0": 30, "openBlock_option0": 31, "openBlock_option1": 32, "CLOSE": 33, "OPEN_INVERSE": 34, "openInverse_repetition0": 35, "openInverse_option0": 36, "openInverse_option1": 37, "openInverseChain": 38, "OPEN_INVERSE_CHAIN": 39, "openInverseChain_repetition0": 40, "openInverseChain_option0": 41, "openInverseChain_option1": 42, "inverseAndProgram": 43, "INVERSE": 44, "inverseChain": 45, "inverseChain_option0": 46, "OPEN_ENDBLOCK": 47, "OPEN": 48, "mustache_repetition0": 49, "mustache_option0": 50, "OPEN_UNESCAPED": 51, "mustache_repetition1": 52, "mustache_option1": 53, "CLOSE_UNESCAPED": 54, "OPEN_PARTIAL": 55, "partialName": 56, "partial_repetition0": 57, "partial_option0": 58, "openPartialBlock": 59, "OPEN_PARTIAL_BLOCK": 60, "openPartialBlock_repetition0": 61, "openPartialBlock_option0": 62, "param": 63, "sexpr": 64, "OPEN_SEXPR": 65, "sexpr_repetition0": 66, "sexpr_option0": 67, "CLOSE_SEXPR": 68, "hash": 69, "hash_repetition_plus0": 70, "hashSegment": 71, "ID": 72, "EQUALS": 73, "blockParams": 74, "OPEN_BLOCK_PARAMS": 75, "blockParams_repetition_plus0": 76, "CLOSE_BLOCK_PARAMS": 77, "path": 78, "dataName": 79, "STRING": 80, "NUMBER": 81, "BOOLEAN": 82, "UNDEFINED": 83, "NULL": 84, "DATA": 85, "pathSegments": 86, "SEP": 87, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 5: "EOF", 14: "COMMENT", 15: "CONTENT", 18: "END_RAW_BLOCK", 19: "OPEN_RAW_BLOCK", 23: "CLOSE_RAW_BLOCK", 29: "OPEN_BLOCK", 33: "CLOSE", 34: "OPEN_INVERSE", 39: "OPEN_INVERSE_CHAIN", 44: "INVERSE", 47: "OPEN_ENDBLOCK", 48: "OPEN", 51: "OPEN_UNESCAPED", 54: "CLOSE_UNESCAPED", 55: "OPEN_PARTIAL", 60: "OPEN_PARTIAL_BLOCK", 65: "OPEN_SEXPR", 68: "CLOSE_SEXPR", 72: "ID", 73: "EQUALS", 75: "OPEN_BLOCK_PARAMS", 77: "CLOSE_BLOCK_PARAMS", 80: "STRING", 81: "NUMBER", 82: "BOOLEAN", 83: "UNDEFINED", 84: "NULL", 85: "DATA", 87: "SEP" }, + productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 5], [8, 5], [11, 5], [12, 3], [59, 5], [63, 1], [63, 1], [64, 5], [69, 1], [71, 3], [74, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [56, 1], [56, 1], [79, 2], [78, 1], [86, 3], [86, 1], [6, 0], [6, 2], [17, 0], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [49, 0], [49, 2], [50, 0], [50, 1], [52, 0], [52, 2], [53, 0], [53, 1], [57, 0], [57, 2], [58, 0], [58, 1], [61, 0], [61, 2], [62, 0], [62, 1], [66, 0], [66, 2], [67, 0], [67, 1], [70, 1], [70, 2], [76, 1], [76, 2]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + + var $0 = $$.length - 1; + switch (yystate) { + case 1: + return $$[$0 - 1]; + case 2: + this.$ = yy.prepareProgram($$[$0]); + break; + case 3: + this.$ = $$[$0]; + break; + case 4: + this.$ = $$[$0]; + break; + case 5: + this.$ = $$[$0]; + break; + case 6: + this.$ = $$[$0]; + break; + case 7: + this.$ = $$[$0]; + break; + case 8: + this.$ = $$[$0]; + break; + case 9: + this.$ = { + type: 'CommentStatement', + value: yy.stripComment($$[$0]), + strip: yy.stripFlags($$[$0], $$[$0]), + loc: yy.locInfo(this._$) + }; + + break; + case 10: + this.$ = { + type: 'ContentStatement', + original: $$[$0], + value: $$[$0], + loc: yy.locInfo(this._$) + }; + + break; + case 11: + this.$ = yy.prepareRawBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$); + break; + case 12: + this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1] }; + break; + case 13: + this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], false, this._$); + break; + case 14: + this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], true, this._$); + break; + case 15: + this.$ = { open: $$[$0 - 5], path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) }; + break; + case 16: + this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) }; + break; + case 17: + this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) }; + break; + case 18: + this.$ = { strip: yy.stripFlags($$[$0 - 1], $$[$0 - 1]), program: $$[$0] }; + break; + case 19: + var inverse = yy.prepareBlock($$[$0 - 2], $$[$0 - 1], $$[$0], $$[$0], false, this._$), + program = yy.prepareProgram([inverse], $$[$0 - 1].loc); + program.chained = true; + + this.$ = { strip: $$[$0 - 2].strip, program: program, chain: true }; + + break; + case 20: + this.$ = $$[$0]; + break; + case 21: + this.$ = { path: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 2], $$[$0]) }; + break; + case 22: + this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$); + break; + case 23: + this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$); + break; + case 24: + this.$ = { + type: 'PartialStatement', + name: $$[$0 - 3], + params: $$[$0 - 2], + hash: $$[$0 - 1], + indent: '', + strip: yy.stripFlags($$[$0 - 4], $$[$0]), + loc: yy.locInfo(this._$) + }; + + break; + case 25: + this.$ = yy.preparePartialBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$); + break; + case 26: + this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 4], $$[$0]) }; + break; + case 27: + this.$ = $$[$0]; + break; + case 28: + this.$ = $$[$0]; + break; + case 29: + this.$ = { + type: 'SubExpression', + path: $$[$0 - 3], + params: $$[$0 - 2], + hash: $$[$0 - 1], + loc: yy.locInfo(this._$) + }; + + break; + case 30: + this.$ = { type: 'Hash', pairs: $$[$0], loc: yy.locInfo(this._$) }; + break; + case 31: + this.$ = { type: 'HashPair', key: yy.id($$[$0 - 2]), value: $$[$0], loc: yy.locInfo(this._$) }; + break; + case 32: + this.$ = yy.id($$[$0 - 1]); + break; + case 33: + this.$ = $$[$0]; + break; + case 34: + this.$ = $$[$0]; + break; + case 35: + this.$ = { type: 'StringLiteral', value: $$[$0], original: $$[$0], loc: yy.locInfo(this._$) }; + break; + case 36: + this.$ = { type: 'NumberLiteral', value: Number($$[$0]), original: Number($$[$0]), loc: yy.locInfo(this._$) }; + break; + case 37: + this.$ = { type: 'BooleanLiteral', value: $$[$0] === 'true', original: $$[$0] === 'true', loc: yy.locInfo(this._$) }; + break; + case 38: + this.$ = { type: 'UndefinedLiteral', original: undefined, value: undefined, loc: yy.locInfo(this._$) }; + break; + case 39: + this.$ = { type: 'NullLiteral', original: null, value: null, loc: yy.locInfo(this._$) }; + break; + case 40: + this.$ = $$[$0]; + break; + case 41: + this.$ = $$[$0]; + break; + case 42: + this.$ = yy.preparePath(true, $$[$0], this._$); + break; + case 43: + this.$ = yy.preparePath(false, $$[$0], this._$); + break; + case 44: + $$[$0 - 2].push({ part: yy.id($$[$0]), original: $$[$0], separator: $$[$0 - 1] });this.$ = $$[$0 - 2]; + break; + case 45: + this.$ = [{ part: yy.id($$[$0]), original: $$[$0] }]; + break; + case 46: + this.$ = []; + break; + case 47: + $$[$0 - 1].push($$[$0]); + break; + case 48: + this.$ = []; + break; + case 49: + $$[$0 - 1].push($$[$0]); + break; + case 50: + this.$ = []; + break; + case 51: + $$[$0 - 1].push($$[$0]); + break; + case 58: + this.$ = []; + break; + case 59: + $$[$0 - 1].push($$[$0]); + break; + case 64: + this.$ = []; + break; + case 65: + $$[$0 - 1].push($$[$0]); + break; + case 70: + this.$ = []; + break; + case 71: + $$[$0 - 1].push($$[$0]); + break; + case 78: + this.$ = []; + break; + case 79: + $$[$0 - 1].push($$[$0]); + break; + case 82: + this.$ = []; + break; + case 83: + $$[$0 - 1].push($$[$0]); + break; + case 86: + this.$ = []; + break; + case 87: + $$[$0 - 1].push($$[$0]); + break; + case 90: + this.$ = []; + break; + case 91: + $$[$0 - 1].push($$[$0]); + break; + case 94: + this.$ = []; + break; + case 95: + $$[$0 - 1].push($$[$0]); + break; + case 98: + this.$ = [$$[$0]]; + break; + case 99: + $$[$0 - 1].push($$[$0]); + break; + case 100: + this.$ = [$$[$0]]; + break; + case 101: + $$[$0 - 1].push($$[$0]); + break; + } + }, + table: [{ 3: 1, 4: 2, 5: [2, 46], 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 1: [3] }, { 5: [1, 4] }, { 5: [2, 2], 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: 11, 14: [1, 12], 15: [1, 20], 16: 17, 19: [1, 23], 24: 15, 27: 16, 29: [1, 21], 34: [1, 22], 39: [2, 2], 44: [2, 2], 47: [2, 2], 48: [1, 13], 51: [1, 14], 55: [1, 18], 59: 19, 60: [1, 24] }, { 1: [2, 1] }, { 5: [2, 47], 14: [2, 47], 15: [2, 47], 19: [2, 47], 29: [2, 47], 34: [2, 47], 39: [2, 47], 44: [2, 47], 47: [2, 47], 48: [2, 47], 51: [2, 47], 55: [2, 47], 60: [2, 47] }, { 5: [2, 3], 14: [2, 3], 15: [2, 3], 19: [2, 3], 29: [2, 3], 34: [2, 3], 39: [2, 3], 44: [2, 3], 47: [2, 3], 48: [2, 3], 51: [2, 3], 55: [2, 3], 60: [2, 3] }, { 5: [2, 4], 14: [2, 4], 15: [2, 4], 19: [2, 4], 29: [2, 4], 34: [2, 4], 39: [2, 4], 44: [2, 4], 47: [2, 4], 48: [2, 4], 51: [2, 4], 55: [2, 4], 60: [2, 4] }, { 5: [2, 5], 14: [2, 5], 15: [2, 5], 19: [2, 5], 29: [2, 5], 34: [2, 5], 39: [2, 5], 44: [2, 5], 47: [2, 5], 48: [2, 5], 51: [2, 5], 55: [2, 5], 60: [2, 5] }, { 5: [2, 6], 14: [2, 6], 15: [2, 6], 19: [2, 6], 29: [2, 6], 34: [2, 6], 39: [2, 6], 44: [2, 6], 47: [2, 6], 48: [2, 6], 51: [2, 6], 55: [2, 6], 60: [2, 6] }, { 5: [2, 7], 14: [2, 7], 15: [2, 7], 19: [2, 7], 29: [2, 7], 34: [2, 7], 39: [2, 7], 44: [2, 7], 47: [2, 7], 48: [2, 7], 51: [2, 7], 55: [2, 7], 60: [2, 7] }, { 5: [2, 8], 14: [2, 8], 15: [2, 8], 19: [2, 8], 29: [2, 8], 34: [2, 8], 39: [2, 8], 44: [2, 8], 47: [2, 8], 48: [2, 8], 51: [2, 8], 55: [2, 8], 60: [2, 8] }, { 5: [2, 9], 14: [2, 9], 15: [2, 9], 19: [2, 9], 29: [2, 9], 34: [2, 9], 39: [2, 9], 44: [2, 9], 47: [2, 9], 48: [2, 9], 51: [2, 9], 55: [2, 9], 60: [2, 9] }, { 20: 25, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 36, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 37, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 39: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 4: 38, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 15: [2, 48], 17: 39, 18: [2, 48] }, { 20: 41, 56: 40, 64: 42, 65: [1, 43], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 44, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 5: [2, 10], 14: [2, 10], 15: [2, 10], 18: [2, 10], 19: [2, 10], 29: [2, 10], 34: [2, 10], 39: [2, 10], 44: [2, 10], 47: [2, 10], 48: [2, 10], 51: [2, 10], 55: [2, 10], 60: [2, 10] }, { 20: 45, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 46, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 47, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 41, 56: 48, 64: 42, 65: [1, 43], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [2, 78], 49: 49, 65: [2, 78], 72: [2, 78], 80: [2, 78], 81: [2, 78], 82: [2, 78], 83: [2, 78], 84: [2, 78], 85: [2, 78] }, { 23: [2, 33], 33: [2, 33], 54: [2, 33], 65: [2, 33], 68: [2, 33], 72: [2, 33], 75: [2, 33], 80: [2, 33], 81: [2, 33], 82: [2, 33], 83: [2, 33], 84: [2, 33], 85: [2, 33] }, { 23: [2, 34], 33: [2, 34], 54: [2, 34], 65: [2, 34], 68: [2, 34], 72: [2, 34], 75: [2, 34], 80: [2, 34], 81: [2, 34], 82: [2, 34], 83: [2, 34], 84: [2, 34], 85: [2, 34] }, { 23: [2, 35], 33: [2, 35], 54: [2, 35], 65: [2, 35], 68: [2, 35], 72: [2, 35], 75: [2, 35], 80: [2, 35], 81: [2, 35], 82: [2, 35], 83: [2, 35], 84: [2, 35], 85: [2, 35] }, { 23: [2, 36], 33: [2, 36], 54: [2, 36], 65: [2, 36], 68: [2, 36], 72: [2, 36], 75: [2, 36], 80: [2, 36], 81: [2, 36], 82: [2, 36], 83: [2, 36], 84: [2, 36], 85: [2, 36] }, { 23: [2, 37], 33: [2, 37], 54: [2, 37], 65: [2, 37], 68: [2, 37], 72: [2, 37], 75: [2, 37], 80: [2, 37], 81: [2, 37], 82: [2, 37], 83: [2, 37], 84: [2, 37], 85: [2, 37] }, { 23: [2, 38], 33: [2, 38], 54: [2, 38], 65: [2, 38], 68: [2, 38], 72: [2, 38], 75: [2, 38], 80: [2, 38], 81: [2, 38], 82: [2, 38], 83: [2, 38], 84: [2, 38], 85: [2, 38] }, { 23: [2, 39], 33: [2, 39], 54: [2, 39], 65: [2, 39], 68: [2, 39], 72: [2, 39], 75: [2, 39], 80: [2, 39], 81: [2, 39], 82: [2, 39], 83: [2, 39], 84: [2, 39], 85: [2, 39] }, { 23: [2, 43], 33: [2, 43], 54: [2, 43], 65: [2, 43], 68: [2, 43], 72: [2, 43], 75: [2, 43], 80: [2, 43], 81: [2, 43], 82: [2, 43], 83: [2, 43], 84: [2, 43], 85: [2, 43], 87: [1, 50] }, { 72: [1, 35], 86: 51 }, { 23: [2, 45], 33: [2, 45], 54: [2, 45], 65: [2, 45], 68: [2, 45], 72: [2, 45], 75: [2, 45], 80: [2, 45], 81: [2, 45], 82: [2, 45], 83: [2, 45], 84: [2, 45], 85: [2, 45], 87: [2, 45] }, { 52: 52, 54: [2, 82], 65: [2, 82], 72: [2, 82], 80: [2, 82], 81: [2, 82], 82: [2, 82], 83: [2, 82], 84: [2, 82], 85: [2, 82] }, { 25: 53, 38: 55, 39: [1, 57], 43: 56, 44: [1, 58], 45: 54, 47: [2, 54] }, { 28: 59, 43: 60, 44: [1, 58], 47: [2, 56] }, { 13: 62, 15: [1, 20], 18: [1, 61] }, { 33: [2, 86], 57: 63, 65: [2, 86], 72: [2, 86], 80: [2, 86], 81: [2, 86], 82: [2, 86], 83: [2, 86], 84: [2, 86], 85: [2, 86] }, { 33: [2, 40], 65: [2, 40], 72: [2, 40], 80: [2, 40], 81: [2, 40], 82: [2, 40], 83: [2, 40], 84: [2, 40], 85: [2, 40] }, { 33: [2, 41], 65: [2, 41], 72: [2, 41], 80: [2, 41], 81: [2, 41], 82: [2, 41], 83: [2, 41], 84: [2, 41], 85: [2, 41] }, { 20: 64, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 26: 65, 47: [1, 66] }, { 30: 67, 33: [2, 58], 65: [2, 58], 72: [2, 58], 75: [2, 58], 80: [2, 58], 81: [2, 58], 82: [2, 58], 83: [2, 58], 84: [2, 58], 85: [2, 58] }, { 33: [2, 64], 35: 68, 65: [2, 64], 72: [2, 64], 75: [2, 64], 80: [2, 64], 81: [2, 64], 82: [2, 64], 83: [2, 64], 84: [2, 64], 85: [2, 64] }, { 21: 69, 23: [2, 50], 65: [2, 50], 72: [2, 50], 80: [2, 50], 81: [2, 50], 82: [2, 50], 83: [2, 50], 84: [2, 50], 85: [2, 50] }, { 33: [2, 90], 61: 70, 65: [2, 90], 72: [2, 90], 80: [2, 90], 81: [2, 90], 82: [2, 90], 83: [2, 90], 84: [2, 90], 85: [2, 90] }, { 20: 74, 33: [2, 80], 50: 71, 63: 72, 64: 75, 65: [1, 43], 69: 73, 70: 76, 71: 77, 72: [1, 78], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 72: [1, 79] }, { 23: [2, 42], 33: [2, 42], 54: [2, 42], 65: [2, 42], 68: [2, 42], 72: [2, 42], 75: [2, 42], 80: [2, 42], 81: [2, 42], 82: [2, 42], 83: [2, 42], 84: [2, 42], 85: [2, 42], 87: [1, 50] }, { 20: 74, 53: 80, 54: [2, 84], 63: 81, 64: 75, 65: [1, 43], 69: 82, 70: 76, 71: 77, 72: [1, 78], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 26: 83, 47: [1, 66] }, { 47: [2, 55] }, { 4: 84, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 39: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 47: [2, 20] }, { 20: 85, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 86, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 26: 87, 47: [1, 66] }, { 47: [2, 57] }, { 5: [2, 11], 14: [2, 11], 15: [2, 11], 19: [2, 11], 29: [2, 11], 34: [2, 11], 39: [2, 11], 44: [2, 11], 47: [2, 11], 48: [2, 11], 51: [2, 11], 55: [2, 11], 60: [2, 11] }, { 15: [2, 49], 18: [2, 49] }, { 20: 74, 33: [2, 88], 58: 88, 63: 89, 64: 75, 65: [1, 43], 69: 90, 70: 76, 71: 77, 72: [1, 78], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 65: [2, 94], 66: 91, 68: [2, 94], 72: [2, 94], 80: [2, 94], 81: [2, 94], 82: [2, 94], 83: [2, 94], 84: [2, 94], 85: [2, 94] }, { 5: [2, 25], 14: [2, 25], 15: [2, 25], 19: [2, 25], 29: [2, 25], 34: [2, 25], 39: [2, 25], 44: [2, 25], 47: [2, 25], 48: [2, 25], 51: [2, 25], 55: [2, 25], 60: [2, 25] }, { 20: 92, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 74, 31: 93, 33: [2, 60], 63: 94, 64: 75, 65: [1, 43], 69: 95, 70: 76, 71: 77, 72: [1, 78], 75: [2, 60], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 74, 33: [2, 66], 36: 96, 63: 97, 64: 75, 65: [1, 43], 69: 98, 70: 76, 71: 77, 72: [1, 78], 75: [2, 66], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 74, 22: 99, 23: [2, 52], 63: 100, 64: 75, 65: [1, 43], 69: 101, 70: 76, 71: 77, 72: [1, 78], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 74, 33: [2, 92], 62: 102, 63: 103, 64: 75, 65: [1, 43], 69: 104, 70: 76, 71: 77, 72: [1, 78], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [1, 105] }, { 33: [2, 79], 65: [2, 79], 72: [2, 79], 80: [2, 79], 81: [2, 79], 82: [2, 79], 83: [2, 79], 84: [2, 79], 85: [2, 79] }, { 33: [2, 81] }, { 23: [2, 27], 33: [2, 27], 54: [2, 27], 65: [2, 27], 68: [2, 27], 72: [2, 27], 75: [2, 27], 80: [2, 27], 81: [2, 27], 82: [2, 27], 83: [2, 27], 84: [2, 27], 85: [2, 27] }, { 23: [2, 28], 33: [2, 28], 54: [2, 28], 65: [2, 28], 68: [2, 28], 72: [2, 28], 75: [2, 28], 80: [2, 28], 81: [2, 28], 82: [2, 28], 83: [2, 28], 84: [2, 28], 85: [2, 28] }, { 23: [2, 30], 33: [2, 30], 54: [2, 30], 68: [2, 30], 71: 106, 72: [1, 107], 75: [2, 30] }, { 23: [2, 98], 33: [2, 98], 54: [2, 98], 68: [2, 98], 72: [2, 98], 75: [2, 98] }, { 23: [2, 45], 33: [2, 45], 54: [2, 45], 65: [2, 45], 68: [2, 45], 72: [2, 45], 73: [1, 108], 75: [2, 45], 80: [2, 45], 81: [2, 45], 82: [2, 45], 83: [2, 45], 84: [2, 45], 85: [2, 45], 87: [2, 45] }, { 23: [2, 44], 33: [2, 44], 54: [2, 44], 65: [2, 44], 68: [2, 44], 72: [2, 44], 75: [2, 44], 80: [2, 44], 81: [2, 44], 82: [2, 44], 83: [2, 44], 84: [2, 44], 85: [2, 44], 87: [2, 44] }, { 54: [1, 109] }, { 54: [2, 83], 65: [2, 83], 72: [2, 83], 80: [2, 83], 81: [2, 83], 82: [2, 83], 83: [2, 83], 84: [2, 83], 85: [2, 83] }, { 54: [2, 85] }, { 5: [2, 13], 14: [2, 13], 15: [2, 13], 19: [2, 13], 29: [2, 13], 34: [2, 13], 39: [2, 13], 44: [2, 13], 47: [2, 13], 48: [2, 13], 51: [2, 13], 55: [2, 13], 60: [2, 13] }, { 38: 55, 39: [1, 57], 43: 56, 44: [1, 58], 45: 111, 46: 110, 47: [2, 76] }, { 33: [2, 70], 40: 112, 65: [2, 70], 72: [2, 70], 75: [2, 70], 80: [2, 70], 81: [2, 70], 82: [2, 70], 83: [2, 70], 84: [2, 70], 85: [2, 70] }, { 47: [2, 18] }, { 5: [2, 14], 14: [2, 14], 15: [2, 14], 19: [2, 14], 29: [2, 14], 34: [2, 14], 39: [2, 14], 44: [2, 14], 47: [2, 14], 48: [2, 14], 51: [2, 14], 55: [2, 14], 60: [2, 14] }, { 33: [1, 113] }, { 33: [2, 87], 65: [2, 87], 72: [2, 87], 80: [2, 87], 81: [2, 87], 82: [2, 87], 83: [2, 87], 84: [2, 87], 85: [2, 87] }, { 33: [2, 89] }, { 20: 74, 63: 115, 64: 75, 65: [1, 43], 67: 114, 68: [2, 96], 69: 116, 70: 76, 71: 77, 72: [1, 78], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [1, 117] }, { 32: 118, 33: [2, 62], 74: 119, 75: [1, 120] }, { 33: [2, 59], 65: [2, 59], 72: [2, 59], 75: [2, 59], 80: [2, 59], 81: [2, 59], 82: [2, 59], 83: [2, 59], 84: [2, 59], 85: [2, 59] }, { 33: [2, 61], 75: [2, 61] }, { 33: [2, 68], 37: 121, 74: 122, 75: [1, 120] }, { 33: [2, 65], 65: [2, 65], 72: [2, 65], 75: [2, 65], 80: [2, 65], 81: [2, 65], 82: [2, 65], 83: [2, 65], 84: [2, 65], 85: [2, 65] }, { 33: [2, 67], 75: [2, 67] }, { 23: [1, 123] }, { 23: [2, 51], 65: [2, 51], 72: [2, 51], 80: [2, 51], 81: [2, 51], 82: [2, 51], 83: [2, 51], 84: [2, 51], 85: [2, 51] }, { 23: [2, 53] }, { 33: [1, 124] }, { 33: [2, 91], 65: [2, 91], 72: [2, 91], 80: [2, 91], 81: [2, 91], 82: [2, 91], 83: [2, 91], 84: [2, 91], 85: [2, 91] }, { 33: [2, 93] }, { 5: [2, 22], 14: [2, 22], 15: [2, 22], 19: [2, 22], 29: [2, 22], 34: [2, 22], 39: [2, 22], 44: [2, 22], 47: [2, 22], 48: [2, 22], 51: [2, 22], 55: [2, 22], 60: [2, 22] }, { 23: [2, 99], 33: [2, 99], 54: [2, 99], 68: [2, 99], 72: [2, 99], 75: [2, 99] }, { 73: [1, 108] }, { 20: 74, 63: 125, 64: 75, 65: [1, 43], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 5: [2, 23], 14: [2, 23], 15: [2, 23], 19: [2, 23], 29: [2, 23], 34: [2, 23], 39: [2, 23], 44: [2, 23], 47: [2, 23], 48: [2, 23], 51: [2, 23], 55: [2, 23], 60: [2, 23] }, { 47: [2, 19] }, { 47: [2, 77] }, { 20: 74, 33: [2, 72], 41: 126, 63: 127, 64: 75, 65: [1, 43], 69: 128, 70: 76, 71: 77, 72: [1, 78], 75: [2, 72], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 5: [2, 24], 14: [2, 24], 15: [2, 24], 19: [2, 24], 29: [2, 24], 34: [2, 24], 39: [2, 24], 44: [2, 24], 47: [2, 24], 48: [2, 24], 51: [2, 24], 55: [2, 24], 60: [2, 24] }, { 68: [1, 129] }, { 65: [2, 95], 68: [2, 95], 72: [2, 95], 80: [2, 95], 81: [2, 95], 82: [2, 95], 83: [2, 95], 84: [2, 95], 85: [2, 95] }, { 68: [2, 97] }, { 5: [2, 21], 14: [2, 21], 15: [2, 21], 19: [2, 21], 29: [2, 21], 34: [2, 21], 39: [2, 21], 44: [2, 21], 47: [2, 21], 48: [2, 21], 51: [2, 21], 55: [2, 21], 60: [2, 21] }, { 33: [1, 130] }, { 33: [2, 63] }, { 72: [1, 132], 76: 131 }, { 33: [1, 133] }, { 33: [2, 69] }, { 15: [2, 12], 18: [2, 12] }, { 14: [2, 26], 15: [2, 26], 19: [2, 26], 29: [2, 26], 34: [2, 26], 47: [2, 26], 48: [2, 26], 51: [2, 26], 55: [2, 26], 60: [2, 26] }, { 23: [2, 31], 33: [2, 31], 54: [2, 31], 68: [2, 31], 72: [2, 31], 75: [2, 31] }, { 33: [2, 74], 42: 134, 74: 135, 75: [1, 120] }, { 33: [2, 71], 65: [2, 71], 72: [2, 71], 75: [2, 71], 80: [2, 71], 81: [2, 71], 82: [2, 71], 83: [2, 71], 84: [2, 71], 85: [2, 71] }, { 33: [2, 73], 75: [2, 73] }, { 23: [2, 29], 33: [2, 29], 54: [2, 29], 65: [2, 29], 68: [2, 29], 72: [2, 29], 75: [2, 29], 80: [2, 29], 81: [2, 29], 82: [2, 29], 83: [2, 29], 84: [2, 29], 85: [2, 29] }, { 14: [2, 15], 15: [2, 15], 19: [2, 15], 29: [2, 15], 34: [2, 15], 39: [2, 15], 44: [2, 15], 47: [2, 15], 48: [2, 15], 51: [2, 15], 55: [2, 15], 60: [2, 15] }, { 72: [1, 137], 77: [1, 136] }, { 72: [2, 100], 77: [2, 100] }, { 14: [2, 16], 15: [2, 16], 19: [2, 16], 29: [2, 16], 34: [2, 16], 44: [2, 16], 47: [2, 16], 48: [2, 16], 51: [2, 16], 55: [2, 16], 60: [2, 16] }, { 33: [1, 138] }, { 33: [2, 75] }, { 33: [2, 32] }, { 72: [2, 101], 77: [2, 101] }, { 14: [2, 17], 15: [2, 17], 19: [2, 17], 29: [2, 17], 34: [2, 17], 39: [2, 17], 44: [2, 17], 47: [2, 17], 48: [2, 17], 51: [2, 17], 55: [2, 17], 60: [2, 17] }], + defaultActions: { 4: [2, 1], 54: [2, 55], 56: [2, 20], 60: [2, 57], 73: [2, 81], 82: [2, 85], 86: [2, 18], 90: [2, 89], 101: [2, 53], 104: [2, 93], 110: [2, 19], 111: [2, 77], 116: [2, 97], 119: [2, 63], 122: [2, 69], 135: [2, 75], 136: [2, 32] }, + parseError: function parseError(str, hash) { + throw new Error(str); + }, + parse: function parse(input) { + var self = this, + stack = [0], + vstack = [null], + lstack = [], + table = this.table, + yytext = "", + yylineno = 0, + yyleng = 0, + recovering = 0; + this.lexer.setInput(input); + this.lexer.yy = this.yy; + this.yy.lexer = this.lexer; + this.yy.parser = this; + if (typeof this.lexer.yylloc == "undefined") this.lexer.yylloc = {}; + var yyloc = this.lexer.yylloc; + lstack.push(yyloc); + var ranges = this.lexer.options && this.lexer.options.ranges; + if (typeof this.yy.parseError === "function") this.parseError = this.yy.parseError; + function lex() { + var token; + token = self.lexer.lex() || 1; + if (typeof token !== "number") { + token = self.symbols_[token] || token; + } + return token; + } + var symbol, + state, + action, + r, + yyval = {}, + p, + len, + newState, + expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + if (!recovering) { + expected = []; + for (p in table[state]) if (this.terminals_[p] && p > 2) { + expected.push("'" + this.terminals_[p] + "'"); + } + if (this.lexer.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected }); + } + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(this.lexer.yytext); + lstack.push(this.lexer.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = this.lexer.yyleng; + yytext = this.lexer.yytext; + yylineno = this.lexer.yylineno; + yyloc = this.lexer.yylloc; + if (recovering > 0) recovering--; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column }; + if (ranges) { + yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; + } + r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + /* Jison generated lexer */ + var lexer = (function () { + var lexer = { EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + setInput: function setInput(input) { + this._input = input; + this._more = this._less = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }; + if (this.options.ranges) this.yylloc.range = [0, 0]; + this.offset = 0; + return this; + }, + input: function input() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) this.yylloc.range[1]++; + + this._input = this._input.slice(1); + return ch; + }, + unput: function unput(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len - 1); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) this.yylineno -= lines.length - 1; + var r = this.yylloc.range; + + this.yylloc = { first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + return this; + }, + more: function more() { + this._more = true; + return this; + }, + less: function less(n) { + this.unput(this.match.slice(n)); + }, + pastInput: function pastInput() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, ""); + }, + upcomingInput: function upcomingInput() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); + }, + showPosition: function showPosition() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + next: function next() { + if (this.done) { + return this.EOF; + } + if (!this._input) this.done = true; + + var token, match, tempMatch, index, lines; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (!this.options.flex) break; + } + } + if (match) { + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) this.yylineno += lines.length; + this.yylloc = { first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, rules[index], this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) this.done = false; + if (token) return token;else return; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { text: "", token: null, line: this.yylineno }); + } + }, + lex: function lex() { + var r = this.next(); + if (typeof r !== 'undefined') { + return r; + } else { + return this.lex(); + } + }, + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + popState: function popState() { + return this.conditionStack.pop(); + }, + _currentRules: function _currentRules() { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + }, + topState: function topState() { + return this.conditionStack[this.conditionStack.length - 2]; + }, + pushState: function begin(condition) { + this.begin(condition); + } }; + lexer.options = {}; + lexer.performAction = function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + + function strip(start, end) { + return yy_.yytext = yy_.yytext.substring(start, yy_.yyleng - end + start); + } + switch ($avoiding_name_collisions) { + case 0: + if (yy_.yytext.slice(-2) === "\\\\") { + strip(0, 1); + this.begin("mu"); + } else if (yy_.yytext.slice(-1) === "\\") { + strip(0, 1); + this.begin("emu"); + } else { + this.begin("mu"); + } + if (yy_.yytext) return 15; + + break; + case 1: + return 15; + case 2: + this.popState(); + return 15; + case 3: + this.begin('raw');return 15; + case 4: + this.popState(); + // Should be using `this.topState()` below, but it currently + // returns the second top instead of the first top. Opened an + // issue about it at https://github.com/zaach/jison/issues/291 + if (this.conditionStack[this.conditionStack.length - 1] === 'raw') { + return 15; + } else { + strip(5, 9); + return 'END_RAW_BLOCK'; + } + case 5: + return 15; + case 6: + this.popState(); + return 14; + case 7: + return 65; + case 8: + return 68; + case 9: + return 19; + case 10: + this.popState(); + this.begin('raw'); + return 23; + case 11: + return 55; + case 12: + return 60; + case 13: + return 29; + case 14: + return 47; + case 15: + this.popState();return 44; + case 16: + this.popState();return 44; + case 17: + return 34; + case 18: + return 39; + case 19: + return 51; + case 20: + return 48; + case 21: + this.unput(yy_.yytext); + this.popState(); + this.begin('com'); + + break; + case 22: + this.popState(); + return 14; + case 23: + return 48; + case 24: + return 73; + case 25: + return 72; + case 26: + return 72; + case 27: + return 87; + case 28: + // ignore whitespace + break; + case 29: + this.popState();return 54; + case 30: + this.popState();return 33; + case 31: + yy_.yytext = strip(1, 2).replace(/\\"/g, '"');return 80; + case 32: + yy_.yytext = strip(1, 2).replace(/\\'/g, "'");return 80; + case 33: + return 85; + case 34: + return 82; + case 35: + return 82; + case 36: + return 83; + case 37: + return 84; + case 38: + return 81; + case 39: + return 75; + case 40: + return 77; + case 41: + return 72; + case 42: + yy_.yytext = yy_.yytext.replace(/\\([\\\]])/g, '$1');return 72; + case 43: + return 'INVALID'; + case 44: + return 5; + } + }; + lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{(?=[^\/]))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]+?(?=(\{\{\{\{)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#>)/, /^(?:\{\{(~)?#\*?)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?\*?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[(\\\]|[^\]])*\])/, /^(?:.)/, /^(?:$)/]; + lexer.conditions = { "mu": { "rules": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], "inclusive": false }, "emu": { "rules": [2], "inclusive": false }, "com": { "rules": [6], "inclusive": false }, "raw": { "rules": [3, 4, 5], "inclusive": false }, "INITIAL": { "rules": [0, 1, 44], "inclusive": true } }; + return lexer; + })(); + parser.lexer = lexer; + function Parser() { + this.yy = {}; + }Parser.prototype = parser;parser.Parser = Parser; + return new Parser(); +})();exports["default"] = handlebars; +module.exports = exports["default"]; + +}); + +var visitor = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + +var _exception2 = _interopRequireDefault(exception); + +function Visitor() { + this.parents = []; +} + +Visitor.prototype = { + constructor: Visitor, + mutating: false, + + // Visits a given value. If mutating, will replace the value if necessary. + acceptKey: function acceptKey(node, name) { + var value = this.accept(node[name]); + if (this.mutating) { + // Hacky sanity check: This may have a few false positives for type for the helper + // methods but will generally do the right thing without a lot of overhead. + if (value && !Visitor.prototype[value.type]) { + throw new _exception2['default']('Unexpected node type "' + value.type + '" found when accepting ' + name + ' on ' + node.type); + } + node[name] = value; + } + }, + + // Performs an accept operation with added sanity check to ensure + // required keys are not removed. + acceptRequired: function acceptRequired(node, name) { + this.acceptKey(node, name); + + if (!node[name]) { + throw new _exception2['default'](node.type + ' requires ' + name); + } + }, + + // Traverses a given array. If mutating, empty respnses will be removed + // for child elements. + acceptArray: function acceptArray(array) { + for (var i = 0, l = array.length; i < l; i++) { + this.acceptKey(array, i); + + if (!array[i]) { + array.splice(i, 1); + i--; + l--; + } + } + }, + + accept: function accept(object) { + if (!object) { + return; + } + + /* istanbul ignore next: Sanity code */ + if (!this[object.type]) { + throw new _exception2['default']('Unknown type: ' + object.type, object); + } + + if (this.current) { + this.parents.unshift(this.current); + } + this.current = object; + + var ret = this[object.type](object); + + this.current = this.parents.shift(); + + if (!this.mutating || ret) { + return ret; + } else if (ret !== false) { + return object; + } + }, + + Program: function Program(program) { + this.acceptArray(program.body); + }, + + MustacheStatement: visitSubExpression, + Decorator: visitSubExpression, + + BlockStatement: visitBlock, + DecoratorBlock: visitBlock, + + PartialStatement: visitPartial, + PartialBlockStatement: function PartialBlockStatement(partial) { + visitPartial.call(this, partial); + + this.acceptKey(partial, 'program'); + }, + + ContentStatement: function ContentStatement() /* content */{}, + CommentStatement: function CommentStatement() /* comment */{}, + + SubExpression: visitSubExpression, + + PathExpression: function PathExpression() /* path */{}, + + StringLiteral: function StringLiteral() /* string */{}, + NumberLiteral: function NumberLiteral() /* number */{}, + BooleanLiteral: function BooleanLiteral() /* bool */{}, + UndefinedLiteral: function UndefinedLiteral() /* literal */{}, + NullLiteral: function NullLiteral() /* literal */{}, + + Hash: function Hash(hash) { + this.acceptArray(hash.pairs); + }, + HashPair: function HashPair(pair) { + this.acceptRequired(pair, 'value'); + } +}; + +function visitSubExpression(mustache) { + this.acceptRequired(mustache, 'path'); + this.acceptArray(mustache.params); + this.acceptKey(mustache, 'hash'); +} +function visitBlock(block) { + visitSubExpression.call(this, block); + + this.acceptKey(block, 'program'); + this.acceptKey(block, 'inverse'); +} +function visitPartial(partial) { + this.acceptRequired(partial, 'name'); + this.acceptArray(partial.params); + this.acceptKey(partial, 'hash'); +} + +exports['default'] = Visitor; +module.exports = exports['default']; + +}); + +var whitespaceControl = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + +var _visitor2 = _interopRequireDefault(visitor); + +function WhitespaceControl() { + var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + this.options = options; +} +WhitespaceControl.prototype = new _visitor2['default'](); + +WhitespaceControl.prototype.Program = function (program) { + var doStandalone = !this.options.ignoreStandalone; + + var isRoot = !this.isRootSeen; + this.isRootSeen = true; + + var body = program.body; + for (var i = 0, l = body.length; i < l; i++) { + var current = body[i], + strip = this.accept(current); + + if (!strip) { + continue; + } + + var _isPrevWhitespace = isPrevWhitespace(body, i, isRoot), + _isNextWhitespace = isNextWhitespace(body, i, isRoot), + openStandalone = strip.openStandalone && _isPrevWhitespace, + closeStandalone = strip.closeStandalone && _isNextWhitespace, + inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace; + + if (strip.close) { + omitRight(body, i, true); + } + if (strip.open) { + omitLeft(body, i, true); + } + + if (doStandalone && inlineStandalone) { + omitRight(body, i); + + if (omitLeft(body, i)) { + // If we are on a standalone node, save the indent info for partials + if (current.type === 'PartialStatement') { + // Pull out the whitespace from the final line + current.indent = /([ \t]+$)/.exec(body[i - 1].original)[1]; + } + } + } + if (doStandalone && openStandalone) { + omitRight((current.program || current.inverse).body); + + // Strip out the previous content node if it's whitespace only + omitLeft(body, i); + } + if (doStandalone && closeStandalone) { + // Always strip the next node + omitRight(body, i); + + omitLeft((current.inverse || current.program).body); + } + } + + return program; +}; + +WhitespaceControl.prototype.BlockStatement = WhitespaceControl.prototype.DecoratorBlock = WhitespaceControl.prototype.PartialBlockStatement = function (block) { + this.accept(block.program); + this.accept(block.inverse); + + // Find the inverse program that is involed with whitespace stripping. + var program = block.program || block.inverse, + inverse = block.program && block.inverse, + firstInverse = inverse, + lastInverse = inverse; + + if (inverse && inverse.chained) { + firstInverse = inverse.body[0].program; + + // Walk the inverse chain to find the last inverse that is actually in the chain. + while (lastInverse.chained) { + lastInverse = lastInverse.body[lastInverse.body.length - 1].program; + } + } + + var strip = { + open: block.openStrip.open, + close: block.closeStrip.close, + + // Determine the standalone candiacy. Basically flag our content as being possibly standalone + // so our parent can determine if we actually are standalone + openStandalone: isNextWhitespace(program.body), + closeStandalone: isPrevWhitespace((firstInverse || program).body) + }; + + if (block.openStrip.close) { + omitRight(program.body, null, true); + } + + if (inverse) { + var inverseStrip = block.inverseStrip; + + if (inverseStrip.open) { + omitLeft(program.body, null, true); + } + + if (inverseStrip.close) { + omitRight(firstInverse.body, null, true); + } + if (block.closeStrip.open) { + omitLeft(lastInverse.body, null, true); + } + + // Find standalone else statments + if (!this.options.ignoreStandalone && isPrevWhitespace(program.body) && isNextWhitespace(firstInverse.body)) { + omitLeft(program.body); + omitRight(firstInverse.body); + } + } else if (block.closeStrip.open) { + omitLeft(program.body, null, true); + } + + return strip; +}; + +WhitespaceControl.prototype.Decorator = WhitespaceControl.prototype.MustacheStatement = function (mustache) { + return mustache.strip; +}; + +WhitespaceControl.prototype.PartialStatement = WhitespaceControl.prototype.CommentStatement = function (node) { + /* istanbul ignore next */ + var strip = node.strip || {}; + return { + inlineStandalone: true, + open: strip.open, + close: strip.close + }; +}; + +function isPrevWhitespace(body, i, isRoot) { + if (i === undefined) { + i = body.length; + } + + // Nodes that end with newlines are considered whitespace (but are special + // cased for strip operations) + var prev = body[i - 1], + sibling = body[i - 2]; + if (!prev) { + return isRoot; + } + + if (prev.type === 'ContentStatement') { + return (sibling || !isRoot ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/).test(prev.original); + } +} +function isNextWhitespace(body, i, isRoot) { + if (i === undefined) { + i = -1; + } + + var next = body[i + 1], + sibling = body[i + 2]; + if (!next) { + return isRoot; + } + + if (next.type === 'ContentStatement') { + return (sibling || !isRoot ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/).test(next.original); + } +} + +// Marks the node to the right of the position as omitted. +// I.e. {{foo}}' ' will mark the ' ' node as omitted. +// +// If i is undefined, then the first child will be marked as such. +// +// If mulitple is truthy then all whitespace will be stripped out until non-whitespace +// content is met. +function omitRight(body, i, multiple) { + var current = body[i == null ? 0 : i + 1]; + if (!current || current.type !== 'ContentStatement' || !multiple && current.rightStripped) { + return; + } + + var original = current.value; + current.value = current.value.replace(multiple ? /^\s+/ : /^[ \t]*\r?\n?/, ''); + current.rightStripped = current.value !== original; +} + +// Marks the node to the left of the position as omitted. +// I.e. ' '{{foo}} will mark the ' ' node as omitted. +// +// If i is undefined then the last child will be marked as such. +// +// If mulitple is truthy then all whitespace will be stripped out until non-whitespace +// content is met. +function omitLeft(body, i, multiple) { + var current = body[i == null ? body.length - 1 : i - 1]; + if (!current || current.type !== 'ContentStatement' || !multiple && current.leftStripped) { + return; + } + + // We omit the last node if it's whitespace only and not preceded by a non-content node. + var original = current.value; + current.value = current.value.replace(multiple ? /\s+$/ : /[ \t]+$/, ''); + current.leftStripped = current.value !== original; + return current.leftStripped; +} + +exports['default'] = WhitespaceControl; +module.exports = exports['default']; + +}); + +var helpers$1 = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +exports.SourceLocation = SourceLocation; +exports.id = id; +exports.stripFlags = stripFlags; +exports.stripComment = stripComment; +exports.preparePath = preparePath; +exports.prepareMustache = prepareMustache; +exports.prepareRawBlock = prepareRawBlock; +exports.prepareBlock = prepareBlock; +exports.prepareProgram = prepareProgram; +exports.preparePartialBlock = preparePartialBlock; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + +var _exception2 = _interopRequireDefault(exception); + +function validateClose(open, close) { + close = close.path ? close.path.original : close; + + if (open.path.original !== close) { + var errorNode = { loc: open.path.loc }; + + throw new _exception2['default'](open.path.original + " doesn't match " + close, errorNode); + } +} + +function SourceLocation(source, locInfo) { + this.source = source; + this.start = { + line: locInfo.first_line, + column: locInfo.first_column + }; + this.end = { + line: locInfo.last_line, + column: locInfo.last_column + }; +} + +function id(token) { + if (/^\[.*\]$/.test(token)) { + return token.substring(1, token.length - 1); + } else { + return token; + } +} + +function stripFlags(open, close) { + return { + open: open.charAt(2) === '~', + close: close.charAt(close.length - 3) === '~' + }; +} + +function stripComment(comment) { + return comment.replace(/^\{\{~?!-?-?/, '').replace(/-?-?~?\}\}$/, ''); +} + +function preparePath(data, parts, loc) { + loc = this.locInfo(loc); + + var original = data ? '@' : '', + dig = [], + depth = 0; + + for (var i = 0, l = parts.length; i < l; i++) { + var part = parts[i].part, + + // If we have [] syntax then we do not treat path references as operators, + // i.e. foo.[this] resolves to approximately context.foo['this'] + isLiteral = parts[i].original !== part; + original += (parts[i].separator || '') + part; + + if (!isLiteral && (part === '..' || part === '.' || part === 'this')) { + if (dig.length > 0) { + throw new _exception2['default']('Invalid path: ' + original, { loc: loc }); + } else if (part === '..') { + depth++; + } + } else { + dig.push(part); + } + } + + return { + type: 'PathExpression', + data: data, + depth: depth, + parts: dig, + original: original, + loc: loc + }; +} + +function prepareMustache(path, params, hash, open, strip, locInfo) { + // Must use charAt to support IE pre-10 + var escapeFlag = open.charAt(3) || open.charAt(2), + escaped = escapeFlag !== '{' && escapeFlag !== '&'; + + var decorator = /\*/.test(open); + return { + type: decorator ? 'Decorator' : 'MustacheStatement', + path: path, + params: params, + hash: hash, + escaped: escaped, + strip: strip, + loc: this.locInfo(locInfo) + }; +} + +function prepareRawBlock(openRawBlock, contents, close, locInfo) { + validateClose(openRawBlock, close); + + locInfo = this.locInfo(locInfo); + var program = { + type: 'Program', + body: contents, + strip: {}, + loc: locInfo + }; + + return { + type: 'BlockStatement', + path: openRawBlock.path, + params: openRawBlock.params, + hash: openRawBlock.hash, + program: program, + openStrip: {}, + inverseStrip: {}, + closeStrip: {}, + loc: locInfo + }; +} + +function prepareBlock(openBlock, program, inverseAndProgram, close, inverted, locInfo) { + if (close && close.path) { + validateClose(openBlock, close); + } + + var decorator = /\*/.test(openBlock.open); + + program.blockParams = openBlock.blockParams; + + var inverse = undefined, + inverseStrip = undefined; + + if (inverseAndProgram) { + if (decorator) { + throw new _exception2['default']('Unexpected inverse block on decorator', inverseAndProgram); + } + + if (inverseAndProgram.chain) { + inverseAndProgram.program.body[0].closeStrip = close.strip; + } + + inverseStrip = inverseAndProgram.strip; + inverse = inverseAndProgram.program; + } + + if (inverted) { + inverted = inverse; + inverse = program; + program = inverted; + } + + return { + type: decorator ? 'DecoratorBlock' : 'BlockStatement', + path: openBlock.path, + params: openBlock.params, + hash: openBlock.hash, + program: program, + inverse: inverse, + openStrip: openBlock.strip, + inverseStrip: inverseStrip, + closeStrip: close && close.strip, + loc: this.locInfo(locInfo) + }; +} + +function prepareProgram(statements, loc) { + if (!loc && statements.length) { + var firstLoc = statements[0].loc, + lastLoc = statements[statements.length - 1].loc; + + /* istanbul ignore else */ + if (firstLoc && lastLoc) { + loc = { + source: firstLoc.source, + start: { + line: firstLoc.start.line, + column: firstLoc.start.column + }, + end: { + line: lastLoc.end.line, + column: lastLoc.end.column + } + }; + } + } + + return { + type: 'Program', + body: statements, + strip: {}, + loc: loc + }; +} + +function preparePartialBlock(open, program, close, locInfo) { + validateClose(open, close); + + return { + type: 'PartialBlockStatement', + name: open.path, + params: open.params, + hash: open.hash, + program: program, + openStrip: open.strip, + closeStrip: close && close.strip, + loc: this.locInfo(locInfo) + }; +} + +}); + +var base$1 = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +exports.parseWithoutProcessing = parseWithoutProcessing; +exports.parse = parse; +// istanbul ignore next + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + +var _parser2 = _interopRequireDefault(parser); + + + +var _whitespaceControl2 = _interopRequireDefault(whitespaceControl); + + + +var Helpers = _interopRequireWildcard(helpers$1); + + + +exports.parser = _parser2['default']; + +var yy = {}; +utils$2.extend(yy, Helpers); + +function parseWithoutProcessing(input, options) { + // Just return if an already-compiled AST was passed in. + if (input.type === 'Program') { + return input; + } + + _parser2['default'].yy = yy; + + // Altering the shared object here, but this is ok as parser is a sync operation + yy.locInfo = function (locInfo) { + return new yy.SourceLocation(options && options.srcName, locInfo); + }; + + var ast = _parser2['default'].parse(input); + + return ast; +} + +function parse(input, options) { + var ast = parseWithoutProcessing(input, options); + var strip = new _whitespaceControl2['default'](options); + + return strip.accept(ast); +} + +}); + +var compiler = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +exports.Compiler = Compiler; +exports.precompile = precompile; +exports.compile = compile; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + +var _exception2 = _interopRequireDefault(exception); + + + + + +var _ast2 = _interopRequireDefault(ast); + +var slice = [].slice; + +function Compiler() {} + +// the foundHelper register will disambiguate helper lookup from finding a +// function in a context. This is necessary for mustache compatibility, which +// requires that context functions in blocks are evaluated by blockHelperMissing, +// and then proceed as if the resulting value was provided to blockHelperMissing. + +Compiler.prototype = { + compiler: Compiler, + + equals: function equals(other) { + var len = this.opcodes.length; + if (other.opcodes.length !== len) { + return false; + } + + for (var i = 0; i < len; i++) { + var opcode = this.opcodes[i], + otherOpcode = other.opcodes[i]; + if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) { + return false; + } + } + + // We know that length is the same between the two arrays because they are directly tied + // to the opcode behavior above. + len = this.children.length; + for (var i = 0; i < len; i++) { + if (!this.children[i].equals(other.children[i])) { + return false; + } + } + + return true; + }, + + guid: 0, + + compile: function compile(program, options) { + this.sourceNode = []; + this.opcodes = []; + this.children = []; + this.options = options; + this.stringParams = options.stringParams; + this.trackIds = options.trackIds; + + options.blockParams = options.blockParams || []; + + options.knownHelpers = utils$2.extend(Object.create(null), { + helperMissing: true, + blockHelperMissing: true, + each: true, + 'if': true, + unless: true, + 'with': true, + log: true, + lookup: true + }, options.knownHelpers); + + return this.accept(program); + }, + + compileProgram: function compileProgram(program) { + var childCompiler = new this.compiler(), + // eslint-disable-line new-cap + result = childCompiler.compile(program, this.options), + guid = this.guid++; + + this.usePartial = this.usePartial || result.usePartial; + + this.children[guid] = result; + this.useDepths = this.useDepths || result.useDepths; + + return guid; + }, + + accept: function accept(node) { + /* istanbul ignore next: Sanity code */ + if (!this[node.type]) { + throw new _exception2['default']('Unknown type: ' + node.type, node); + } + + this.sourceNode.unshift(node); + var ret = this[node.type](node); + this.sourceNode.shift(); + return ret; + }, + + Program: function Program(program) { + this.options.blockParams.unshift(program.blockParams); + + var body = program.body, + bodyLength = body.length; + for (var i = 0; i < bodyLength; i++) { + this.accept(body[i]); + } + + this.options.blockParams.shift(); + + this.isSimple = bodyLength === 1; + this.blockParams = program.blockParams ? program.blockParams.length : 0; + + return this; + }, + + BlockStatement: function BlockStatement(block) { + transformLiteralToPath(block); + + var program = block.program, + inverse = block.inverse; + + program = program && this.compileProgram(program); + inverse = inverse && this.compileProgram(inverse); + + var type = this.classifySexpr(block); + + if (type === 'helper') { + this.helperSexpr(block, program, inverse); + } else if (type === 'simple') { + this.simpleSexpr(block); + + // now that the simple mustache is resolved, we need to + // evaluate it by executing `blockHelperMissing` + this.opcode('pushProgram', program); + this.opcode('pushProgram', inverse); + this.opcode('emptyHash'); + this.opcode('blockValue', block.path.original); + } else { + this.ambiguousSexpr(block, program, inverse); + + // now that the simple mustache is resolved, we need to + // evaluate it by executing `blockHelperMissing` + this.opcode('pushProgram', program); + this.opcode('pushProgram', inverse); + this.opcode('emptyHash'); + this.opcode('ambiguousBlockValue'); + } + + this.opcode('append'); + }, + + DecoratorBlock: function DecoratorBlock(decorator) { + var program = decorator.program && this.compileProgram(decorator.program); + var params = this.setupFullMustacheParams(decorator, program, undefined), + path = decorator.path; + + this.useDecorators = true; + this.opcode('registerDecorator', params.length, path.original); + }, + + PartialStatement: function PartialStatement(partial) { + this.usePartial = true; + + var program = partial.program; + if (program) { + program = this.compileProgram(partial.program); + } + + var params = partial.params; + if (params.length > 1) { + throw new _exception2['default']('Unsupported number of partial arguments: ' + params.length, partial); + } else if (!params.length) { + if (this.options.explicitPartialContext) { + this.opcode('pushLiteral', 'undefined'); + } else { + params.push({ type: 'PathExpression', parts: [], depth: 0 }); + } + } + + var partialName = partial.name.original, + isDynamic = partial.name.type === 'SubExpression'; + if (isDynamic) { + this.accept(partial.name); + } + + this.setupFullMustacheParams(partial, program, undefined, true); + + var indent = partial.indent || ''; + if (this.options.preventIndent && indent) { + this.opcode('appendContent', indent); + indent = ''; + } + + this.opcode('invokePartial', isDynamic, partialName, indent); + this.opcode('append'); + }, + PartialBlockStatement: function PartialBlockStatement(partialBlock) { + this.PartialStatement(partialBlock); + }, + + MustacheStatement: function MustacheStatement(mustache) { + this.SubExpression(mustache); + + if (mustache.escaped && !this.options.noEscape) { + this.opcode('appendEscaped'); + } else { + this.opcode('append'); + } + }, + Decorator: function Decorator(decorator) { + this.DecoratorBlock(decorator); + }, + + ContentStatement: function ContentStatement(content) { + if (content.value) { + this.opcode('appendContent', content.value); + } + }, + + CommentStatement: function CommentStatement() {}, + + SubExpression: function SubExpression(sexpr) { + transformLiteralToPath(sexpr); + var type = this.classifySexpr(sexpr); + + if (type === 'simple') { + this.simpleSexpr(sexpr); + } else if (type === 'helper') { + this.helperSexpr(sexpr); + } else { + this.ambiguousSexpr(sexpr); + } + }, + ambiguousSexpr: function ambiguousSexpr(sexpr, program, inverse) { + var path = sexpr.path, + name = path.parts[0], + isBlock = program != null || inverse != null; + + this.opcode('getContext', path.depth); + + this.opcode('pushProgram', program); + this.opcode('pushProgram', inverse); + + path.strict = true; + this.accept(path); + + this.opcode('invokeAmbiguous', name, isBlock); + }, + + simpleSexpr: function simpleSexpr(sexpr) { + var path = sexpr.path; + path.strict = true; + this.accept(path); + this.opcode('resolvePossibleLambda'); + }, + + helperSexpr: function helperSexpr(sexpr, program, inverse) { + var params = this.setupFullMustacheParams(sexpr, program, inverse), + path = sexpr.path, + name = path.parts[0]; + + if (this.options.knownHelpers[name]) { + this.opcode('invokeKnownHelper', params.length, name); + } else if (this.options.knownHelpersOnly) { + throw new _exception2['default']('You specified knownHelpersOnly, but used the unknown helper ' + name, sexpr); + } else { + path.strict = true; + path.falsy = true; + + this.accept(path); + this.opcode('invokeHelper', params.length, path.original, _ast2['default'].helpers.simpleId(path)); + } + }, + + PathExpression: function PathExpression(path) { + this.addDepth(path.depth); + this.opcode('getContext', path.depth); + + var name = path.parts[0], + scoped = _ast2['default'].helpers.scopedId(path), + blockParamId = !path.depth && !scoped && this.blockParamIndex(name); + + if (blockParamId) { + this.opcode('lookupBlockParam', blockParamId, path.parts); + } else if (!name) { + // Context reference, i.e. `{{foo .}}` or `{{foo ..}}` + this.opcode('pushContext'); + } else if (path.data) { + this.options.data = true; + this.opcode('lookupData', path.depth, path.parts, path.strict); + } else { + this.opcode('lookupOnContext', path.parts, path.falsy, path.strict, scoped); + } + }, + + StringLiteral: function StringLiteral(string) { + this.opcode('pushString', string.value); + }, + + NumberLiteral: function NumberLiteral(number) { + this.opcode('pushLiteral', number.value); + }, + + BooleanLiteral: function BooleanLiteral(bool) { + this.opcode('pushLiteral', bool.value); + }, + + UndefinedLiteral: function UndefinedLiteral() { + this.opcode('pushLiteral', 'undefined'); + }, + + NullLiteral: function NullLiteral() { + this.opcode('pushLiteral', 'null'); + }, + + Hash: function Hash(hash) { + var pairs = hash.pairs, + i = 0, + l = pairs.length; + + this.opcode('pushHash'); + + for (; i < l; i++) { + this.pushParam(pairs[i].value); + } + while (i--) { + this.opcode('assignToHash', pairs[i].key); + } + this.opcode('popHash'); + }, + + // HELPERS + opcode: function opcode(name) { + this.opcodes.push({ + opcode: name, + args: slice.call(arguments, 1), + loc: this.sourceNode[0].loc + }); + }, + + addDepth: function addDepth(depth) { + if (!depth) { + return; + } + + this.useDepths = true; + }, + + classifySexpr: function classifySexpr(sexpr) { + var isSimple = _ast2['default'].helpers.simpleId(sexpr.path); + + var isBlockParam = isSimple && !!this.blockParamIndex(sexpr.path.parts[0]); + + // a mustache is an eligible helper if: + // * its id is simple (a single part, not `this` or `..`) + var isHelper = !isBlockParam && _ast2['default'].helpers.helperExpression(sexpr); + + // if a mustache is an eligible helper but not a definite + // helper, it is ambiguous, and will be resolved in a later + // pass or at runtime. + var isEligible = !isBlockParam && (isHelper || isSimple); + + // if ambiguous, we can possibly resolve the ambiguity now + // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc. + if (isEligible && !isHelper) { + var _name = sexpr.path.parts[0], + options = this.options; + if (options.knownHelpers[_name]) { + isHelper = true; + } else if (options.knownHelpersOnly) { + isEligible = false; + } + } + + if (isHelper) { + return 'helper'; + } else if (isEligible) { + return 'ambiguous'; + } else { + return 'simple'; + } + }, + + pushParams: function pushParams(params) { + for (var i = 0, l = params.length; i < l; i++) { + this.pushParam(params[i]); + } + }, + + pushParam: function pushParam(val) { + var value = val.value != null ? val.value : val.original || ''; + + if (this.stringParams) { + if (value.replace) { + value = value.replace(/^(\.?\.\/)*/g, '').replace(/\//g, '.'); + } + + if (val.depth) { + this.addDepth(val.depth); + } + this.opcode('getContext', val.depth || 0); + this.opcode('pushStringParam', value, val.type); + + if (val.type === 'SubExpression') { + // SubExpressions get evaluated and passed in + // in string params mode. + this.accept(val); + } + } else { + if (this.trackIds) { + var blockParamIndex = undefined; + if (val.parts && !_ast2['default'].helpers.scopedId(val) && !val.depth) { + blockParamIndex = this.blockParamIndex(val.parts[0]); + } + if (blockParamIndex) { + var blockParamChild = val.parts.slice(1).join('.'); + this.opcode('pushId', 'BlockParam', blockParamIndex, blockParamChild); + } else { + value = val.original || value; + if (value.replace) { + value = value.replace(/^this(?:\.|$)/, '').replace(/^\.\//, '').replace(/^\.$/, ''); + } + + this.opcode('pushId', val.type, value); + } + } + this.accept(val); + } + }, + + setupFullMustacheParams: function setupFullMustacheParams(sexpr, program, inverse, omitEmpty) { + var params = sexpr.params; + this.pushParams(params); + + this.opcode('pushProgram', program); + this.opcode('pushProgram', inverse); + + if (sexpr.hash) { + this.accept(sexpr.hash); + } else { + this.opcode('emptyHash', omitEmpty); + } + + return params; + }, + + blockParamIndex: function blockParamIndex(name) { + for (var depth = 0, len = this.options.blockParams.length; depth < len; depth++) { + var blockParams = this.options.blockParams[depth], + param = blockParams && utils$2.indexOf(blockParams, name); + if (blockParams && param >= 0) { + return [depth, param]; + } + } + } +}; + +function precompile(input, options, env) { + if (input == null || typeof input !== 'string' && input.type !== 'Program') { + throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.precompile. You passed ' + input); + } + + options = options || {}; + if (!('data' in options)) { + options.data = true; + } + if (options.compat) { + options.useDepths = true; + } + + var ast = env.parse(input, options), + environment = new env.Compiler().compile(ast, options); + return new env.JavaScriptCompiler().compile(environment, options); +} + +function compile(input, options, env) { + if (options === undefined) options = {}; + + if (input == null || typeof input !== 'string' && input.type !== 'Program') { + throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input); + } + + options = utils$2.extend({}, options); + if (!('data' in options)) { + options.data = true; + } + if (options.compat) { + options.useDepths = true; + } + + var compiled = undefined; + + function compileInput() { + var ast = env.parse(input, options), + environment = new env.Compiler().compile(ast, options), + templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true); + return env.template(templateSpec); + } + + // Template is only compiled on first use and cached after that point. + function ret(context, execOptions) { + if (!compiled) { + compiled = compileInput(); + } + return compiled.call(this, context, execOptions); + } + ret._setup = function (setupOptions) { + if (!compiled) { + compiled = compileInput(); + } + return compiled._setup(setupOptions); + }; + ret._child = function (i, data, blockParams, depths) { + if (!compiled) { + compiled = compileInput(); + } + return compiled._child(i, data, blockParams, depths); + }; + return ret; +} + +function argEquals(a, b) { + if (a === b) { + return true; + } + + if (utils$2.isArray(a) && utils$2.isArray(b) && a.length === b.length) { + for (var i = 0; i < a.length; i++) { + if (!argEquals(a[i], b[i])) { + return false; + } + } + return true; + } +} + +function transformLiteralToPath(sexpr) { + if (!sexpr.path.parts) { + var literal = sexpr.path; + // Casting to string here to make false and 0 literal values play nicely with the rest + // of the system. + sexpr.path = { + type: 'PathExpression', + data: false, + depth: 0, + parts: [literal.original + ''], + original: literal.original + '', + loc: literal.loc + }; + } +} + +}); + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); + +/** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ +var encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); +}; + +/** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ +var decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' + + var littleA = 97; // 'a' + var littleZ = 122; // 'z' + + var zero = 48; // '0' + var nine = 57; // '9' + + var plus = 43; // '+' + var slash = 47; // '/' + + var littleOffset = 26; + var numberOffset = 52; + + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } + + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } + + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } + + // 62: + + if (charCode == plus) { + return 62; + } + + // 63: / + if (charCode == slash) { + return 63; + } + + // Invalid base64 digit. + return -1; +}; + +var base64 = { + encode: encode, + decode: decode +}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + + +// A single base 64 digit can contain 6 bits of data. For the base 64 variable +// length quantities we use in the source map spec, the first bit is the sign, +// the next four bits are the actual value, and the 6th bit is the +// continuation bit. The continuation bit tells us whether there are more +// digits in this value following this digit. +// +// Continuation +// | Sign +// | | +// V V +// 101011 + +var VLQ_BASE_SHIFT = 5; + +// binary: 100000 +var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + +// binary: 011111 +var VLQ_BASE_MASK = VLQ_BASE - 1; + +// binary: 100000 +var VLQ_CONTINUATION_BIT = VLQ_BASE; + +/** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ +function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; +} + +/** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ +function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; +} + +/** + * Returns the base 64 VLQ encoded value. + */ +var encode$1 = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + + var vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; +}; + +/** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ +var decode$1 = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; +}; + +var base64Vlq = { + encode: encode$1, + decode: decode$1 +}; + +var util = createCommonjsModule(function (module, exports) { +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +/** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ +function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } +} +exports.getArg = getArg; + +var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; +var dataUrlRegexp = /^data:.+\,.+$/; + +function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; +} +exports.urlParse = urlParse; + +function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port; + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; +} +exports.urlGenerate = urlGenerate; + +/** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ +function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports.isAbsolute(path); + + var parts = path.split(/\/+/); + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join('/'); + + if (path === '') { + path = isAbsolute ? '/' : '.'; + } + + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; +} +exports.normalize = normalize; + +/** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ +function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } + + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; +} +exports.join = join; + +exports.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || urlRegexp.test(aPath); +}; + +/** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ +function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + + aRoot = aRoot.replace(/\/$/, ''); + + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + + ++level; + } + + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); +} +exports.relative = relative; + +var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); +}()); + +function identity (s) { + return s; +} + +/** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ +function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } + + return aStr; +} +exports.toSetString = supportsNullProto ? identity : toSetString; + +function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; +} +exports.fromSetString = supportsNullProto ? identity : fromSetString; + +function isProtoString(s) { + if (!s) { + return false; + } + + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; +} + +/** + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. + */ +function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByOriginalPositions = compareByOriginalPositions; + +/** + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. + */ +function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + +function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; +} + +/** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ +function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + +/** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ +function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, '')); +} +exports.parseSourceMapInput = parseSourceMapInput; + +/** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ +function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ''; + + if (sourceRoot) { + // This follows what Chrome does. + if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') { + sourceRoot += '/'; + } + // The spec says: + // Line 4: An optional source root, useful for relocating source + // files on a server or removing repeated values in the + // “sources” entry. This value is prepended to the individual + // entries in the “source” field. + sourceURL = sourceRoot + sourceURL; + } + + // Historically, SourceMapConsumer did not take the sourceMapURL as + // a parameter. This mode is still somewhat supported, which is why + // this code block is conditional. However, it's preferable to pass + // the source map URL to SourceMapConsumer, so that this function + // can implement the source URL resolution algorithm as outlined in + // the spec. This block is basically the equivalent of: + // new URL(sourceURL, sourceMapURL).toString() + // ... except it avoids using URL, which wasn't available in the + // older releases of node still supported by this library. + // + // The spec says: + // If the sources are not absolute URLs after prepending of the + // “sourceRoot”, the sources are resolved relative to the + // SourceMap (like resolving script src in a html document). + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + // Strip the last path component, but keep the "/". + var index = parsed.path.lastIndexOf('/'); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + + return normalize(sourceURL); +} +exports.computeSourceURL = computeSourceURL; +}); + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + +var has = Object.prototype.hasOwnProperty; +var hasNativeMap = typeof Map !== "undefined"; + +/** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ +function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); +} + +/** + * Static method for creating ArraySet instances from an existing array. + */ +ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; +}; + +/** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ +ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; +}; + +/** + * Add the given string to this set. + * + * @param String aStr + */ +ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } +}; + +/** + * Is the given string a member of this set? + * + * @param String aStr + */ +ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } +}; + +/** + * What is the index of the given string in the array? + * + * @param String aStr + */ +ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + + throw new Error('"' + aStr + '" is not in the set.'); +}; + +/** + * What is the element at the given index? + * + * @param Number aIdx + */ +ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error('No element indexed by ' + aIdx); +}; + +/** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ +ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); +}; + +var ArraySet_1 = ArraySet; + +var arraySet = { + ArraySet: ArraySet_1 +}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + + +/** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ +function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; +} + +/** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ +function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; +} + +/** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ +MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + +/** + * Add the given source mapping. + * + * @param Object aMapping + */ +MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } +}; + +/** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ +MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; +}; + +var MappingList_1 = MappingList; + +var mappingList = { + MappingList: MappingList_1 +}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + + +var ArraySet$1 = arraySet.ArraySet; +var MappingList$1 = mappingList.MappingList; + +/** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ +function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, 'file', null); + this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); + this._sources = new ArraySet$1(); + this._names = new ArraySet$1(); + this._mappings = new MappingList$1(); + this._sourcesContents = null; +} + +SourceMapGenerator.prototype._version = 3; + +/** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ +SourceMapGenerator.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator({ + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + }); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + +/** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ +SourceMapGenerator.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, 'generated'); + var original = util.getArg(aArgs, 'original', null); + var source = util.getArg(aArgs, 'source', null); + var name = util.getArg(aArgs, 'name', null); + + if (!this._skipValidation) { + this._validateMapping(generated, original, source, name); + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; + +/** + * Set the source content for a source file. + */ +SourceMapGenerator.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + +/** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ +SourceMapGenerator.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet$1(); + var newNames = new ArraySet$1(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source); + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; + +/** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ +SourceMapGenerator.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + throw new Error( + 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.' + ); + } + + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + throw new Error('Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + })); + } + }; + +/** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ +SourceMapGenerator.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; + + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = ''; + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } + + next += base64Vlq.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64Vlq.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64Vlq.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64Vlq.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64Vlq.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + }; + +SourceMapGenerator.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; + +/** + * Externalize the source map. + */ +SourceMapGenerator.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + }; + +/** + * Render the source map being generated to a string. + */ +SourceMapGenerator.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + +var SourceMapGenerator_1 = SourceMapGenerator; + +var sourceMapGenerator = { + SourceMapGenerator: SourceMapGenerator_1 +}; + +var binarySearch = createCommonjsModule(function (module, exports) { +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +exports.GREATEST_LOWER_BOUND = 1; +exports.LEAST_UPPER_BOUND = 2; + +/** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ +function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } +} + +/** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ +exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; +}; +}); + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +// It turns out that some (most?) JavaScript engines don't self-host +// `Array.prototype.sort`. This makes sense because C++ will likely remain +// faster than JS when doing raw CPU-intensive sorting. However, when using a +// custom comparator function, calling back and forth between the VM's C++ and +// JIT'd JS is rather slow *and* loses JIT type information, resulting in +// worse generated code for the comparator function than would be optimal. In +// fact, when sorting with a comparator, these costs outweigh the benefits of +// sorting in C++. By using our own JS-implemented Quick Sort (below), we get +// a ~3500ms mean speed-up in `bench/bench.html`. + +/** + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. + */ +function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; +} + +/** + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. + */ +function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); +} + +/** + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array + */ +function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. + + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. + + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + + swap(ary, pivotIndex, r); + var pivot = ary[r]; + + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot) <= 0) { + i += 1; + swap(ary, i, j); + } + } + + swap(ary, i + 1, j); + var q = i + 1; + + // (2) Recurse on each half. + + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); + } +} + +/** + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + */ +var quickSort_1 = function (ary, comparator) { + doQuickSort(ary, comparator, 0, ary.length - 1); +}; + +var quickSort = { + quickSort: quickSort_1 +}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + + +var ArraySet$2 = arraySet.ArraySet; + +var quickSort$1 = quickSort.quickSort; + +function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); +} + +SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); +}; + +/** + * The version of the source mapping spec that we are consuming. + */ +SourceMapConsumer.prototype._version = 3; + +// `__generatedMappings` and `__originalMappings` are arrays that hold the +// parsed mapping coordinates from the source map's "mappings" attribute. They +// are lazily instantiated, accessed via the `_generatedMappings` and +// `_originalMappings` getters respectively, and we only parse the mappings +// and create these arrays once queried for a source location. We jump through +// these hoops because there can be many thousands of mappings, and parsing +// them is expensive, so we only want to do it if we must. +// +// Each object in the arrays is of the form: +// +// { +// generatedLine: The line number in the generated code, +// generatedColumn: The column number in the generated code, +// source: The path to the original source file that generated this +// chunk of code, +// originalLine: The line number in the original source that +// corresponds to this chunk of generated code, +// originalColumn: The column number in the original source that +// corresponds to this chunk of generated code, +// name: The name of the original symbol which generated this chunk of +// code. +// } +// +// All properties except for `generatedLine` and `generatedColumn` can be +// `null`. +// +// `_generatedMappings` is ordered by the generated positions. +// +// `_originalMappings` is ordered by the original positions. + +SourceMapConsumer.prototype.__generatedMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__generatedMappings; + } +}); + +SourceMapConsumer.prototype.__originalMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__originalMappings; + } +}); + +SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + +SourceMapConsumer.GENERATED_ORDER = 1; +SourceMapConsumer.ORIGINAL_ORDER = 2; + +SourceMapConsumer.GREATEST_LOWER_BOUND = 1; +SourceMapConsumer.LEAST_UPPER_BOUND = 2; + +/** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ +SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + + var sourceRoot = this.sourceRoot; + mappings.map(function (mapping) { + var source = mapping.source === null ? null : this._sources.at(mapping.source); + source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL); + return { + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : this._names.at(mapping.name) + }; + }, this).forEach(aCallback, context); + }; + +/** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, 'line'); + + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util.getArg(aArgs, 'column', 0) + }; + + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } + } + + return mappings; + }; + +var SourceMapConsumer_1 = SourceMapConsumer; + +/** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ +function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sources = util.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util.getArg(sourceMap, 'names', []); + var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); + var mappings = util.getArg(sourceMap, 'mappings'); + var file = util.getArg(sourceMap, 'file', null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + if (sourceRoot) { + sourceRoot = util.normalize(sourceRoot); + } + + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) + ? util.relative(sourceRoot, source) + : source; + }); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet$2.fromArray(names.map(String), true); + this._sources = ArraySet$2.fromArray(sources, true); + + this._absoluteSources = this._sources.toArray().map(function (s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; +} + +BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + +/** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ +BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + + // Maybe aSource is an absolute URL as returned by |sources|. In + // this case we can't simply undo the transform. + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + + return -1; +}; + +/** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ +BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + + var names = smc._names = ArraySet$2.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet$2.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function (s) { + return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. + + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + + destOriginalMappings.push(destMapping); + } + + destGeneratedMappings.push(destMapping); + } + + quickSort$1(smc.__originalMappings, util.compareByOriginalPositions); + + return smc; + }; + +/** + * The version of the source mapping spec that we are consuming. + */ +BasicSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._absoluteSources.slice(); + } +}); + +/** + * Provide the JIT with a nice shape / hidden class. + */ +function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; +} + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str, segment, end, value; + + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + + // Because each offset is encoded relative to the previous one, + // many segments often have the same encoding. We can exploit this + // fact by caching the parsed variable length fields of each segment, + // allowing us to avoid a second parse if we encounter the same + // segment again. + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str = aStr.slice(index, end); + + segment = cachedSegments[str]; + if (segment) { + index += str.length; + } else { + segment = []; + while (index < end) { + base64Vlq.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } + + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } + + cachedSegments[str] = segment; + } + + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; + + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + originalMappings.push(mapping); + } + } + } + + quickSort$1(generatedMappings, util.compareByGeneratedPositionsDeflated); + this.__generatedMappings = generatedMappings; + + quickSort$1(originalMappings, util.compareByOriginalPositions); + this.__originalMappings = originalMappings; + }; + +/** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ +BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. + + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } + + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + +/** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ +BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositionsDeflated, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + var url; + if (this.sourceRoot != null + && (url = util.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } + + if ((!url.path || url.path == "/") + && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, 'source'); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + var needle = { + source: source, + originalLine: util.getArg(aArgs, 'line'), + originalColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + }; + +var BasicSourceMapConsumer_1 = BasicSourceMapConsumer; + +/** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ +function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sections = util.getArg(sourceMap, 'sections'); + + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + this._sources = new ArraySet$2(); + this._names = new ArraySet$2(); + + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util.getArg(s, 'offset'); + var offsetLine = util.getArg(offset, 'line'); + var offsetColumn = util.getArg(offset, 'column'); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; + + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL) + } + }); +} + +IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + +/** + * The version of the source mapping spec that we are consuming. + */ +IndexedSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } +}); + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + var section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + var content = section.consumer.sourceContentFor(aSource, true); + if (content) { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; + } + } + + return { + line: null, + column: null + }; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + + var source = section.consumer._sources.at(mapping.source); + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + this._sources.add(source); + source = this._sources.indexOf(source); + + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; + + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } + + quickSort$1(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort$1(this.__originalMappings, util.compareByOriginalPositions); + }; + +var IndexedSourceMapConsumer_1 = IndexedSourceMapConsumer; + +var sourceMapConsumer = { + SourceMapConsumer: SourceMapConsumer_1, + BasicSourceMapConsumer: BasicSourceMapConsumer_1, + IndexedSourceMapConsumer: IndexedSourceMapConsumer_1 +}; + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var SourceMapGenerator$1 = sourceMapGenerator.SourceMapGenerator; + + +// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other +// operating systems these days (capturing the result). +var REGEX_NEWLINE = /(\r?\n)/; + +// Newline character code for charCodeAt() comparisons +var NEWLINE_CODE = 10; + +// Private symbol for identifying `SourceNode`s when multiple versions of +// the source-map library are loaded. This MUST NOT CHANGE across +// versions! +var isSourceNode = "$$$isSourceNode$$$"; + +/** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ +function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); +} + +/** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ +SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; + + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex] || ''; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ''; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; + +/** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } +}; + +/** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ +SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; +}; + +/** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ +SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; +}; + +/** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ +SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + +/** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + +/** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ +SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; +}; + +/** + * Returns the string representation of this source node along with a source + * map. + */ +SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator$1(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; +}; + +var SourceNode_1 = SourceNode; + +var sourceNode = { + SourceNode: SourceNode_1 +}; + +/* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ +var SourceMapGenerator$2 = sourceMapGenerator.SourceMapGenerator; +var SourceMapConsumer$1 = sourceMapConsumer.SourceMapConsumer; +var SourceNode$1 = sourceNode.SourceNode; + +var sourceMap = { + SourceMapGenerator: SourceMapGenerator$2, + SourceMapConsumer: SourceMapConsumer$1, + SourceNode: SourceNode$1 +}; + +var codeGen = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; + + + +var SourceNode = undefined; + +try { + /* istanbul ignore next */ + if (typeof undefined !== 'function' || !undefined.amd) { + // We don't support this in AMD environments. For these environments, we asusme that + // they are running on the browser and thus have no need for the source-map library. + var SourceMap = sourceMap; + SourceNode = SourceMap.SourceNode; + } +} catch (err) {} +/* NOP */ + +/* istanbul ignore if: tested but not covered in istanbul due to dist build */ +if (!SourceNode) { + SourceNode = function (line, column, srcFile, chunks) { + this.src = ''; + if (chunks) { + this.add(chunks); + } + }; + /* istanbul ignore next */ + SourceNode.prototype = { + add: function add(chunks) { + if (utils$2.isArray(chunks)) { + chunks = chunks.join(''); + } + this.src += chunks; + }, + prepend: function prepend(chunks) { + if (utils$2.isArray(chunks)) { + chunks = chunks.join(''); + } + this.src = chunks + this.src; + }, + toStringWithSourceMap: function toStringWithSourceMap() { + return { code: this.toString() }; + }, + toString: function toString() { + return this.src; + } + }; +} + +function castChunk(chunk, codeGen, loc) { + if (utils$2.isArray(chunk)) { + var ret = []; + + for (var i = 0, len = chunk.length; i < len; i++) { + ret.push(codeGen.wrap(chunk[i], loc)); + } + return ret; + } else if (typeof chunk === 'boolean' || typeof chunk === 'number') { + // Handle primitives that the SourceNode will throw up on + return chunk + ''; + } + return chunk; +} + +function CodeGen(srcFile) { + this.srcFile = srcFile; + this.source = []; +} + +CodeGen.prototype = { + isEmpty: function isEmpty() { + return !this.source.length; + }, + prepend: function prepend(source, loc) { + this.source.unshift(this.wrap(source, loc)); + }, + push: function push(source, loc) { + this.source.push(this.wrap(source, loc)); + }, + + merge: function merge() { + var source = this.empty(); + this.each(function (line) { + source.add([' ', line, '\n']); + }); + return source; + }, + + each: function each(iter) { + for (var i = 0, len = this.source.length; i < len; i++) { + iter(this.source[i]); + } + }, + + empty: function empty() { + var loc = this.currentLocation || { start: {} }; + return new SourceNode(loc.start.line, loc.start.column, this.srcFile); + }, + wrap: function wrap(chunk) { + var loc = arguments.length <= 1 || arguments[1] === undefined ? this.currentLocation || { start: {} } : arguments[1]; + + if (chunk instanceof SourceNode) { + return chunk; + } + + chunk = castChunk(chunk, this, loc); + + return new SourceNode(loc.start.line, loc.start.column, this.srcFile, chunk); + }, + + functionCall: function functionCall(fn, type, params) { + params = this.generateList(params); + return this.wrap([fn, type ? '.' + type + '(' : '(', params, ')']); + }, + + quotedString: function quotedString(str) { + return '"' + (str + '').replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4 + .replace(/\u2029/g, '\\u2029') + '"'; + }, + + objectLiteral: function objectLiteral(obj) { + // istanbul ignore next + + var _this = this; + + var pairs = []; + + Object.keys(obj).forEach(function (key) { + var value = castChunk(obj[key], _this); + if (value !== 'undefined') { + pairs.push([_this.quotedString(key), ':', value]); + } + }); + + var ret = this.generateList(pairs); + ret.prepend('{'); + ret.add('}'); + return ret; + }, + + generateList: function generateList(entries) { + var ret = this.empty(); + + for (var i = 0, len = entries.length; i < len; i++) { + if (i) { + ret.add(','); + } + + ret.add(castChunk(entries[i], this)); + } + + return ret; + }, + + generateArray: function generateArray(entries) { + var ret = this.generateList(entries); + ret.prepend('['); + ret.add(']'); + + return ret; + } +}; + +exports['default'] = CodeGen; +module.exports = exports['default']; + +}); + +var javascriptCompiler = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + + + +var _exception2 = _interopRequireDefault(exception); + + + + + +var _codeGen2 = _interopRequireDefault(codeGen); + +function Literal(value) { + this.value = value; +} + +function JavaScriptCompiler() {} + +JavaScriptCompiler.prototype = { + // PUBLIC API: You can override these methods in a subclass to provide + // alternative compiled forms for name lookup and buffering semantics + nameLookup: function nameLookup(parent, name /*, type */) { + return this.internalNameLookup(parent, name); + }, + depthedLookup: function depthedLookup(name) { + return [this.aliasable('container.lookup'), '(depths, "', name, '")']; + }, + + compilerInfo: function compilerInfo() { + var revision = base.COMPILER_REVISION, + versions = base.REVISION_CHANGES[revision]; + return [revision, versions]; + }, + + appendToBuffer: function appendToBuffer(source, location, explicit) { + // Force a source as this simplifies the merge logic. + if (!utils$2.isArray(source)) { + source = [source]; + } + source = this.source.wrap(source, location); + + if (this.environment.isSimple) { + return ['return ', source, ';']; + } else if (explicit) { + // This is a case where the buffer operation occurs as a child of another + // construct, generally braces. We have to explicitly output these buffer + // operations to ensure that the emitted code goes in the correct location. + return ['buffer += ', source, ';']; + } else { + source.appendToBuffer = true; + return source; + } + }, + + initializeBuffer: function initializeBuffer() { + return this.quotedString(''); + }, + // END PUBLIC API + internalNameLookup: function internalNameLookup(parent, name) { + this.lookupPropertyFunctionIsUsed = true; + return ['lookupProperty(', parent, ',', JSON.stringify(name), ')']; + }, + + lookupPropertyFunctionIsUsed: false, + + compile: function compile(environment, options, context, asObject) { + this.environment = environment; + this.options = options; + this.stringParams = this.options.stringParams; + this.trackIds = this.options.trackIds; + this.precompile = !asObject; + + this.name = this.environment.name; + this.isChild = !!context; + this.context = context || { + decorators: [], + programs: [], + environments: [] + }; + + this.preamble(); + + this.stackSlot = 0; + this.stackVars = []; + this.aliases = {}; + this.registers = { list: [] }; + this.hashes = []; + this.compileStack = []; + this.inlineStack = []; + this.blockParams = []; + + this.compileChildren(environment, options); + + this.useDepths = this.useDepths || environment.useDepths || environment.useDecorators || this.options.compat; + this.useBlockParams = this.useBlockParams || environment.useBlockParams; + + var opcodes = environment.opcodes, + opcode = undefined, + firstLoc = undefined, + i = undefined, + l = undefined; + + for (i = 0, l = opcodes.length; i < l; i++) { + opcode = opcodes[i]; + + this.source.currentLocation = opcode.loc; + firstLoc = firstLoc || opcode.loc; + this[opcode.opcode].apply(this, opcode.args); + } + + // Flush any trailing content that might be pending. + this.source.currentLocation = firstLoc; + this.pushSource(''); + + /* istanbul ignore next */ + if (this.stackSlot || this.inlineStack.length || this.compileStack.length) { + throw new _exception2['default']('Compile completed with content left on stack'); + } + + if (!this.decorators.isEmpty()) { + this.useDecorators = true; + + this.decorators.prepend(['var decorators = container.decorators, ', this.lookupPropertyFunctionVarDeclaration(), ';\n']); + this.decorators.push('return fn;'); + + if (asObject) { + this.decorators = Function.apply(this, ['fn', 'props', 'container', 'depth0', 'data', 'blockParams', 'depths', this.decorators.merge()]); + } else { + this.decorators.prepend('function(fn, props, container, depth0, data, blockParams, depths) {\n'); + this.decorators.push('}\n'); + this.decorators = this.decorators.merge(); + } + } else { + this.decorators = undefined; + } + + var fn = this.createFunctionContext(asObject); + if (!this.isChild) { + var ret = { + compiler: this.compilerInfo(), + main: fn + }; + + if (this.decorators) { + ret.main_d = this.decorators; // eslint-disable-line camelcase + ret.useDecorators = true; + } + + var _context = this.context; + var programs = _context.programs; + var decorators = _context.decorators; + + for (i = 0, l = programs.length; i < l; i++) { + if (programs[i]) { + ret[i] = programs[i]; + if (decorators[i]) { + ret[i + '_d'] = decorators[i]; + ret.useDecorators = true; + } + } + } + + if (this.environment.usePartial) { + ret.usePartial = true; + } + if (this.options.data) { + ret.useData = true; + } + if (this.useDepths) { + ret.useDepths = true; + } + if (this.useBlockParams) { + ret.useBlockParams = true; + } + if (this.options.compat) { + ret.compat = true; + } + + if (!asObject) { + ret.compiler = JSON.stringify(ret.compiler); + + this.source.currentLocation = { start: { line: 1, column: 0 } }; + ret = this.objectLiteral(ret); + + if (options.srcName) { + ret = ret.toStringWithSourceMap({ file: options.destName }); + ret.map = ret.map && ret.map.toString(); + } else { + ret = ret.toString(); + } + } else { + ret.compilerOptions = this.options; + } + + return ret; + } else { + return fn; + } + }, + + preamble: function preamble() { + // track the last context pushed into place to allow skipping the + // getContext opcode when it would be a noop + this.lastContext = 0; + this.source = new _codeGen2['default'](this.options.srcName); + this.decorators = new _codeGen2['default'](this.options.srcName); + }, + + createFunctionContext: function createFunctionContext(asObject) { + // istanbul ignore next + + var _this = this; + + var varDeclarations = ''; + + var locals = this.stackVars.concat(this.registers.list); + if (locals.length > 0) { + varDeclarations += ', ' + locals.join(', '); + } + + // Generate minimizer alias mappings + // + // When using true SourceNodes, this will update all references to the given alias + // as the source nodes are reused in situ. For the non-source node compilation mode, + // aliases will not be used, but this case is already being run on the client and + // we aren't concern about minimizing the template size. + var aliasCount = 0; + Object.keys(this.aliases).forEach(function (alias) { + var node = _this.aliases[alias]; + if (node.children && node.referenceCount > 1) { + varDeclarations += ', alias' + ++aliasCount + '=' + alias; + node.children[0] = 'alias' + aliasCount; + } + }); + + if (this.lookupPropertyFunctionIsUsed) { + varDeclarations += ', ' + this.lookupPropertyFunctionVarDeclaration(); + } + + var params = ['container', 'depth0', 'helpers', 'partials', 'data']; + + if (this.useBlockParams || this.useDepths) { + params.push('blockParams'); + } + if (this.useDepths) { + params.push('depths'); + } + + // Perform a second pass over the output to merge content when possible + var source = this.mergeSource(varDeclarations); + + if (asObject) { + params.push(source); + + return Function.apply(this, params); + } else { + return this.source.wrap(['function(', params.join(','), ') {\n ', source, '}']); + } + }, + mergeSource: function mergeSource(varDeclarations) { + var isSimple = this.environment.isSimple, + appendOnly = !this.forceBuffer, + appendFirst = undefined, + sourceSeen = undefined, + bufferStart = undefined, + bufferEnd = undefined; + this.source.each(function (line) { + if (line.appendToBuffer) { + if (bufferStart) { + line.prepend(' + '); + } else { + bufferStart = line; + } + bufferEnd = line; + } else { + if (bufferStart) { + if (!sourceSeen) { + appendFirst = true; + } else { + bufferStart.prepend('buffer += '); + } + bufferEnd.add(';'); + bufferStart = bufferEnd = undefined; + } + + sourceSeen = true; + if (!isSimple) { + appendOnly = false; + } + } + }); + + if (appendOnly) { + if (bufferStart) { + bufferStart.prepend('return '); + bufferEnd.add(';'); + } else if (!sourceSeen) { + this.source.push('return "";'); + } + } else { + varDeclarations += ', buffer = ' + (appendFirst ? '' : this.initializeBuffer()); + + if (bufferStart) { + bufferStart.prepend('return buffer + '); + bufferEnd.add(';'); + } else { + this.source.push('return buffer;'); + } + } + + if (varDeclarations) { + this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n')); + } + + return this.source.merge(); + }, + + lookupPropertyFunctionVarDeclaration: function lookupPropertyFunctionVarDeclaration() { + return '\n lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n }\n '.trim(); + }, + + // [blockValue] + // + // On stack, before: hash, inverse, program, value + // On stack, after: return value of blockHelperMissing + // + // The purpose of this opcode is to take a block of the form + // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and + // replace it on the stack with the result of properly + // invoking blockHelperMissing. + blockValue: function blockValue(name) { + var blockHelperMissing = this.aliasable('container.hooks.blockHelperMissing'), + params = [this.contextName(0)]; + this.setupHelperArgs(name, 0, params); + + var blockName = this.popStack(); + params.splice(1, 0, blockName); + + this.push(this.source.functionCall(blockHelperMissing, 'call', params)); + }, + + // [ambiguousBlockValue] + // + // On stack, before: hash, inverse, program, value + // Compiler value, before: lastHelper=value of last found helper, if any + // On stack, after, if no lastHelper: same as [blockValue] + // On stack, after, if lastHelper: value + ambiguousBlockValue: function ambiguousBlockValue() { + // We're being a bit cheeky and reusing the options value from the prior exec + var blockHelperMissing = this.aliasable('container.hooks.blockHelperMissing'), + params = [this.contextName(0)]; + this.setupHelperArgs('', 0, params, true); + + this.flushInline(); + + var current = this.topStack(); + params.splice(1, 0, current); + + this.pushSource(['if (!', this.lastHelper, ') { ', current, ' = ', this.source.functionCall(blockHelperMissing, 'call', params), '}']); + }, + + // [appendContent] + // + // On stack, before: ... + // On stack, after: ... + // + // Appends the string value of `content` to the current buffer + appendContent: function appendContent(content) { + if (this.pendingContent) { + content = this.pendingContent + content; + } else { + this.pendingLocation = this.source.currentLocation; + } + + this.pendingContent = content; + }, + + // [append] + // + // On stack, before: value, ... + // On stack, after: ... + // + // Coerces `value` to a String and appends it to the current buffer. + // + // If `value` is truthy, or 0, it is coerced into a string and appended + // Otherwise, the empty string is appended + append: function append() { + if (this.isInline()) { + this.replaceStack(function (current) { + return [' != null ? ', current, ' : ""']; + }); + + this.pushSource(this.appendToBuffer(this.popStack())); + } else { + var local = this.popStack(); + this.pushSource(['if (', local, ' != null) { ', this.appendToBuffer(local, undefined, true), ' }']); + if (this.environment.isSimple) { + this.pushSource(['else { ', this.appendToBuffer("''", undefined, true), ' }']); + } + } + }, + + // [appendEscaped] + // + // On stack, before: value, ... + // On stack, after: ... + // + // Escape `value` and append it to the buffer + appendEscaped: function appendEscaped() { + this.pushSource(this.appendToBuffer([this.aliasable('container.escapeExpression'), '(', this.popStack(), ')'])); + }, + + // [getContext] + // + // On stack, before: ... + // On stack, after: ... + // Compiler value, after: lastContext=depth + // + // Set the value of the `lastContext` compiler value to the depth + getContext: function getContext(depth) { + this.lastContext = depth; + }, + + // [pushContext] + // + // On stack, before: ... + // On stack, after: currentContext, ... + // + // Pushes the value of the current context onto the stack. + pushContext: function pushContext() { + this.pushStackLiteral(this.contextName(this.lastContext)); + }, + + // [lookupOnContext] + // + // On stack, before: ... + // On stack, after: currentContext[name], ... + // + // Looks up the value of `name` on the current context and pushes + // it onto the stack. + lookupOnContext: function lookupOnContext(parts, falsy, strict, scoped) { + var i = 0; + + if (!scoped && this.options.compat && !this.lastContext) { + // The depthed query is expected to handle the undefined logic for the root level that + // is implemented below, so we evaluate that directly in compat mode + this.push(this.depthedLookup(parts[i++])); + } else { + this.pushContext(); + } + + this.resolvePath('context', parts, i, falsy, strict); + }, + + // [lookupBlockParam] + // + // On stack, before: ... + // On stack, after: blockParam[name], ... + // + // Looks up the value of `parts` on the given block param and pushes + // it onto the stack. + lookupBlockParam: function lookupBlockParam(blockParamId, parts) { + this.useBlockParams = true; + + this.push(['blockParams[', blockParamId[0], '][', blockParamId[1], ']']); + this.resolvePath('context', parts, 1); + }, + + // [lookupData] + // + // On stack, before: ... + // On stack, after: data, ... + // + // Push the data lookup operator + lookupData: function lookupData(depth, parts, strict) { + if (!depth) { + this.pushStackLiteral('data'); + } else { + this.pushStackLiteral('container.data(data, ' + depth + ')'); + } + + this.resolvePath('data', parts, 0, true, strict); + }, + + resolvePath: function resolvePath(type, parts, i, falsy, strict) { + // istanbul ignore next + + var _this2 = this; + + if (this.options.strict || this.options.assumeObjects) { + this.push(strictLookup(this.options.strict && strict, this, parts, type)); + return; + } + + var len = parts.length; + for (; i < len; i++) { + /* eslint-disable no-loop-func */ + this.replaceStack(function (current) { + var lookup = _this2.nameLookup(current, parts[i], type); + // We want to ensure that zero and false are handled properly if the context (falsy flag) + // needs to have the special handling for these values. + if (!falsy) { + return [' != null ? ', lookup, ' : ', current]; + } else { + // Otherwise we can use generic falsy handling + return [' && ', lookup]; + } + }); + /* eslint-enable no-loop-func */ + } + }, + + // [resolvePossibleLambda] + // + // On stack, before: value, ... + // On stack, after: resolved value, ... + // + // If the `value` is a lambda, replace it on the stack by + // the return value of the lambda + resolvePossibleLambda: function resolvePossibleLambda() { + this.push([this.aliasable('container.lambda'), '(', this.popStack(), ', ', this.contextName(0), ')']); + }, + + // [pushStringParam] + // + // On stack, before: ... + // On stack, after: string, currentContext, ... + // + // This opcode is designed for use in string mode, which + // provides the string value of a parameter along with its + // depth rather than resolving it immediately. + pushStringParam: function pushStringParam(string, type) { + this.pushContext(); + this.pushString(type); + + // If it's a subexpression, the string result + // will be pushed after this opcode. + if (type !== 'SubExpression') { + if (typeof string === 'string') { + this.pushString(string); + } else { + this.pushStackLiteral(string); + } + } + }, + + emptyHash: function emptyHash(omitEmpty) { + if (this.trackIds) { + this.push('{}'); // hashIds + } + if (this.stringParams) { + this.push('{}'); // hashContexts + this.push('{}'); // hashTypes + } + this.pushStackLiteral(omitEmpty ? 'undefined' : '{}'); + }, + pushHash: function pushHash() { + if (this.hash) { + this.hashes.push(this.hash); + } + this.hash = { values: {}, types: [], contexts: [], ids: [] }; + }, + popHash: function popHash() { + var hash = this.hash; + this.hash = this.hashes.pop(); + + if (this.trackIds) { + this.push(this.objectLiteral(hash.ids)); + } + if (this.stringParams) { + this.push(this.objectLiteral(hash.contexts)); + this.push(this.objectLiteral(hash.types)); + } + + this.push(this.objectLiteral(hash.values)); + }, + + // [pushString] + // + // On stack, before: ... + // On stack, after: quotedString(string), ... + // + // Push a quoted version of `string` onto the stack + pushString: function pushString(string) { + this.pushStackLiteral(this.quotedString(string)); + }, + + // [pushLiteral] + // + // On stack, before: ... + // On stack, after: value, ... + // + // Pushes a value onto the stack. This operation prevents + // the compiler from creating a temporary variable to hold + // it. + pushLiteral: function pushLiteral(value) { + this.pushStackLiteral(value); + }, + + // [pushProgram] + // + // On stack, before: ... + // On stack, after: program(guid), ... + // + // Push a program expression onto the stack. This takes + // a compile-time guid and converts it into a runtime-accessible + // expression. + pushProgram: function pushProgram(guid) { + if (guid != null) { + this.pushStackLiteral(this.programExpression(guid)); + } else { + this.pushStackLiteral(null); + } + }, + + // [registerDecorator] + // + // On stack, before: hash, program, params..., ... + // On stack, after: ... + // + // Pops off the decorator's parameters, invokes the decorator, + // and inserts the decorator into the decorators list. + registerDecorator: function registerDecorator(paramSize, name) { + var foundDecorator = this.nameLookup('decorators', name, 'decorator'), + options = this.setupHelperArgs(name, paramSize); + + this.decorators.push(['fn = ', this.decorators.functionCall(foundDecorator, '', ['fn', 'props', 'container', options]), ' || fn;']); + }, + + // [invokeHelper] + // + // On stack, before: hash, inverse, program, params..., ... + // On stack, after: result of helper invocation + // + // Pops off the helper's parameters, invokes the helper, + // and pushes the helper's return value onto the stack. + // + // If the helper is not found, `helperMissing` is called. + invokeHelper: function invokeHelper(paramSize, name, isSimple) { + var nonHelper = this.popStack(), + helper = this.setupHelper(paramSize, name); + + var possibleFunctionCalls = []; + + if (isSimple) { + // direct call to helper + possibleFunctionCalls.push(helper.name); + } + // call a function from the input object + possibleFunctionCalls.push(nonHelper); + if (!this.options.strict) { + possibleFunctionCalls.push(this.aliasable('container.hooks.helperMissing')); + } + + var functionLookupCode = ['(', this.itemsSeparatedBy(possibleFunctionCalls, '||'), ')']; + var functionCall = this.source.functionCall(functionLookupCode, 'call', helper.callParams); + this.push(functionCall); + }, + + itemsSeparatedBy: function itemsSeparatedBy(items, separator) { + var result = []; + result.push(items[0]); + for (var i = 1; i < items.length; i++) { + result.push(separator, items[i]); + } + return result; + }, + // [invokeKnownHelper] + // + // On stack, before: hash, inverse, program, params..., ... + // On stack, after: result of helper invocation + // + // This operation is used when the helper is known to exist, + // so a `helperMissing` fallback is not required. + invokeKnownHelper: function invokeKnownHelper(paramSize, name) { + var helper = this.setupHelper(paramSize, name); + this.push(this.source.functionCall(helper.name, 'call', helper.callParams)); + }, + + // [invokeAmbiguous] + // + // On stack, before: hash, inverse, program, params..., ... + // On stack, after: result of disambiguation + // + // This operation is used when an expression like `{{foo}}` + // is provided, but we don't know at compile-time whether it + // is a helper or a path. + // + // This operation emits more code than the other options, + // and can be avoided by passing the `knownHelpers` and + // `knownHelpersOnly` flags at compile-time. + invokeAmbiguous: function invokeAmbiguous(name, helperCall) { + this.useRegister('helper'); + + var nonHelper = this.popStack(); + + this.emptyHash(); + var helper = this.setupHelper(0, name, helperCall); + + var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper'); + + var lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')']; + if (!this.options.strict) { + lookup[0] = '(helper = '; + lookup.push(' != null ? helper : ', this.aliasable('container.hooks.helperMissing')); + } + + this.push(['(', lookup, helper.paramsInit ? ['),(', helper.paramsInit] : [], '),', '(typeof helper === ', this.aliasable('"function"'), ' ? ', this.source.functionCall('helper', 'call', helper.callParams), ' : helper))']); + }, + + // [invokePartial] + // + // On stack, before: context, ... + // On stack after: result of partial invocation + // + // This operation pops off a context, invokes a partial with that context, + // and pushes the result of the invocation back. + invokePartial: function invokePartial(isDynamic, name, indent) { + var params = [], + options = this.setupParams(name, 1, params); + + if (isDynamic) { + name = this.popStack(); + delete options.name; + } + + if (indent) { + options.indent = JSON.stringify(indent); + } + options.helpers = 'helpers'; + options.partials = 'partials'; + options.decorators = 'container.decorators'; + + if (!isDynamic) { + params.unshift(this.nameLookup('partials', name, 'partial')); + } else { + params.unshift(name); + } + + if (this.options.compat) { + options.depths = 'depths'; + } + options = this.objectLiteral(options); + params.push(options); + + this.push(this.source.functionCall('container.invokePartial', '', params)); + }, + + // [assignToHash] + // + // On stack, before: value, ..., hash, ... + // On stack, after: ..., hash, ... + // + // Pops a value off the stack and assigns it to the current hash + assignToHash: function assignToHash(key) { + var value = this.popStack(), + context = undefined, + type = undefined, + id = undefined; + + if (this.trackIds) { + id = this.popStack(); + } + if (this.stringParams) { + type = this.popStack(); + context = this.popStack(); + } + + var hash = this.hash; + if (context) { + hash.contexts[key] = context; + } + if (type) { + hash.types[key] = type; + } + if (id) { + hash.ids[key] = id; + } + hash.values[key] = value; + }, + + pushId: function pushId(type, name, child) { + if (type === 'BlockParam') { + this.pushStackLiteral('blockParams[' + name[0] + '].path[' + name[1] + ']' + (child ? ' + ' + JSON.stringify('.' + child) : '')); + } else if (type === 'PathExpression') { + this.pushString(name); + } else if (type === 'SubExpression') { + this.pushStackLiteral('true'); + } else { + this.pushStackLiteral('null'); + } + }, + + // HELPERS + + compiler: JavaScriptCompiler, + + compileChildren: function compileChildren(environment, options) { + var children = environment.children, + child = undefined, + compiler = undefined; + + for (var i = 0, l = children.length; i < l; i++) { + child = children[i]; + compiler = new this.compiler(); // eslint-disable-line new-cap + + var existing = this.matchExistingProgram(child); + + if (existing == null) { + this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children + var index = this.context.programs.length; + child.index = index; + child.name = 'program' + index; + this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile); + this.context.decorators[index] = compiler.decorators; + this.context.environments[index] = child; + + this.useDepths = this.useDepths || compiler.useDepths; + this.useBlockParams = this.useBlockParams || compiler.useBlockParams; + child.useDepths = this.useDepths; + child.useBlockParams = this.useBlockParams; + } else { + child.index = existing.index; + child.name = 'program' + existing.index; + + this.useDepths = this.useDepths || existing.useDepths; + this.useBlockParams = this.useBlockParams || existing.useBlockParams; + } + } + }, + matchExistingProgram: function matchExistingProgram(child) { + for (var i = 0, len = this.context.environments.length; i < len; i++) { + var environment = this.context.environments[i]; + if (environment && environment.equals(child)) { + return environment; + } + } + }, + + programExpression: function programExpression(guid) { + var child = this.environment.children[guid], + programParams = [child.index, 'data', child.blockParams]; + + if (this.useBlockParams || this.useDepths) { + programParams.push('blockParams'); + } + if (this.useDepths) { + programParams.push('depths'); + } + + return 'container.program(' + programParams.join(', ') + ')'; + }, + + useRegister: function useRegister(name) { + if (!this.registers[name]) { + this.registers[name] = true; + this.registers.list.push(name); + } + }, + + push: function push(expr) { + if (!(expr instanceof Literal)) { + expr = this.source.wrap(expr); + } + + this.inlineStack.push(expr); + return expr; + }, + + pushStackLiteral: function pushStackLiteral(item) { + this.push(new Literal(item)); + }, + + pushSource: function pushSource(source) { + if (this.pendingContent) { + this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent), this.pendingLocation)); + this.pendingContent = undefined; + } + + if (source) { + this.source.push(source); + } + }, + + replaceStack: function replaceStack(callback) { + var prefix = ['('], + stack = undefined, + createdStack = undefined, + usedLiteral = undefined; + + /* istanbul ignore next */ + if (!this.isInline()) { + throw new _exception2['default']('replaceStack on non-inline'); + } + + // We want to merge the inline statement into the replacement statement via ',' + var top = this.popStack(true); + + if (top instanceof Literal) { + // Literals do not need to be inlined + stack = [top.value]; + prefix = ['(', stack]; + usedLiteral = true; + } else { + // Get or create the current stack name for use by the inline + createdStack = true; + var _name = this.incrStack(); + + prefix = ['((', this.push(_name), ' = ', top, ')']; + stack = this.topStack(); + } + + var item = callback.call(this, stack); + + if (!usedLiteral) { + this.popStack(); + } + if (createdStack) { + this.stackSlot--; + } + this.push(prefix.concat(item, ')')); + }, + + incrStack: function incrStack() { + this.stackSlot++; + if (this.stackSlot > this.stackVars.length) { + this.stackVars.push('stack' + this.stackSlot); + } + return this.topStackName(); + }, + topStackName: function topStackName() { + return 'stack' + this.stackSlot; + }, + flushInline: function flushInline() { + var inlineStack = this.inlineStack; + this.inlineStack = []; + for (var i = 0, len = inlineStack.length; i < len; i++) { + var entry = inlineStack[i]; + /* istanbul ignore if */ + if (entry instanceof Literal) { + this.compileStack.push(entry); + } else { + var stack = this.incrStack(); + this.pushSource([stack, ' = ', entry, ';']); + this.compileStack.push(stack); + } + } + }, + isInline: function isInline() { + return this.inlineStack.length; + }, + + popStack: function popStack(wrapped) { + var inline = this.isInline(), + item = (inline ? this.inlineStack : this.compileStack).pop(); + + if (!wrapped && item instanceof Literal) { + return item.value; + } else { + if (!inline) { + /* istanbul ignore next */ + if (!this.stackSlot) { + throw new _exception2['default']('Invalid stack pop'); + } + this.stackSlot--; + } + return item; + } + }, + + topStack: function topStack() { + var stack = this.isInline() ? this.inlineStack : this.compileStack, + item = stack[stack.length - 1]; + + /* istanbul ignore if */ + if (item instanceof Literal) { + return item.value; + } else { + return item; + } + }, + + contextName: function contextName(context) { + if (this.useDepths && context) { + return 'depths[' + context + ']'; + } else { + return 'depth' + context; + } + }, + + quotedString: function quotedString(str) { + return this.source.quotedString(str); + }, + + objectLiteral: function objectLiteral(obj) { + return this.source.objectLiteral(obj); + }, + + aliasable: function aliasable(name) { + var ret = this.aliases[name]; + if (ret) { + ret.referenceCount++; + return ret; + } + + ret = this.aliases[name] = this.source.wrap(name); + ret.aliasable = true; + ret.referenceCount = 1; + + return ret; + }, + + setupHelper: function setupHelper(paramSize, name, blockHelper) { + var params = [], + paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper); + var foundHelper = this.nameLookup('helpers', name, 'helper'), + callContext = this.aliasable(this.contextName(0) + ' != null ? ' + this.contextName(0) + ' : (container.nullContext || {})'); + + return { + params: params, + paramsInit: paramsInit, + name: foundHelper, + callParams: [callContext].concat(params) + }; + }, + + setupParams: function setupParams(helper, paramSize, params) { + var options = {}, + contexts = [], + types = [], + ids = [], + objectArgs = !params, + param = undefined; + + if (objectArgs) { + params = []; + } + + options.name = this.quotedString(helper); + options.hash = this.popStack(); + + if (this.trackIds) { + options.hashIds = this.popStack(); + } + if (this.stringParams) { + options.hashTypes = this.popStack(); + options.hashContexts = this.popStack(); + } + + var inverse = this.popStack(), + program = this.popStack(); + + // Avoid setting fn and inverse if neither are set. This allows + // helpers to do a check for `if (options.fn)` + if (program || inverse) { + options.fn = program || 'container.noop'; + options.inverse = inverse || 'container.noop'; + } + + // The parameters go on to the stack in order (making sure that they are evaluated in order) + // so we need to pop them off the stack in reverse order + var i = paramSize; + while (i--) { + param = this.popStack(); + params[i] = param; + + if (this.trackIds) { + ids[i] = this.popStack(); + } + if (this.stringParams) { + types[i] = this.popStack(); + contexts[i] = this.popStack(); + } + } + + if (objectArgs) { + options.args = this.source.generateArray(params); + } + + if (this.trackIds) { + options.ids = this.source.generateArray(ids); + } + if (this.stringParams) { + options.types = this.source.generateArray(types); + options.contexts = this.source.generateArray(contexts); + } + + if (this.options.data) { + options.data = 'data'; + } + if (this.useBlockParams) { + options.blockParams = 'blockParams'; + } + return options; + }, + + setupHelperArgs: function setupHelperArgs(helper, paramSize, params, useRegister) { + var options = this.setupParams(helper, paramSize, params); + options.loc = JSON.stringify(this.source.currentLocation); + options = this.objectLiteral(options); + if (useRegister) { + this.useRegister('options'); + params.push('options'); + return ['options=', options]; + } else if (params) { + params.push(options); + return ''; + } else { + return options; + } + } +}; + +(function () { + var reservedWords = ('break else new var' + ' case finally return void' + ' catch for switch while' + ' continue function this with' + ' default if throw' + ' delete in try' + ' do instanceof typeof' + ' abstract enum int short' + ' boolean export interface static' + ' byte extends long super' + ' char final native synchronized' + ' class float package throws' + ' const goto private transient' + ' debugger implements protected volatile' + ' double import public let yield await' + ' null true false').split(' '); + + var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {}; + + for (var i = 0, l = reservedWords.length; i < l; i++) { + compilerWords[reservedWords[i]] = true; + } +})(); + +/** + * @deprecated May be removed in the next major version + */ +JavaScriptCompiler.isValidJavaScriptVariableName = function (name) { + return !JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name); +}; + +function strictLookup(requireTerminal, compiler, parts, type) { + var stack = compiler.popStack(), + i = 0, + len = parts.length; + if (requireTerminal) { + len--; + } + + for (; i < len; i++) { + stack = compiler.nameLookup(stack, parts[i], type); + } + + if (requireTerminal) { + return [compiler.aliasable('container.strict'), '(', stack, ', ', compiler.quotedString(parts[i]), ', ', JSON.stringify(compiler.source.currentLocation), ' )']; + } else { + return stack; + } +} + +exports['default'] = JavaScriptCompiler; +module.exports = exports['default']; + +}); + +var handlebars = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + +var _handlebarsRuntime2 = _interopRequireDefault(handlebars_runtime); + +// Compiler imports + + + +var _handlebarsCompilerAst2 = _interopRequireDefault(ast); + + + + + + + +var _handlebarsCompilerJavascriptCompiler2 = _interopRequireDefault(javascriptCompiler); + + + +var _handlebarsCompilerVisitor2 = _interopRequireDefault(visitor); + + + +var _handlebarsNoConflict2 = _interopRequireDefault(noConflict); + +var _create = _handlebarsRuntime2['default'].create; +function create() { + var hb = _create(); + + hb.compile = function (input, options) { + return compiler.compile(input, options, hb); + }; + hb.precompile = function (input, options) { + return compiler.precompile(input, options, hb); + }; + + hb.AST = _handlebarsCompilerAst2['default']; + hb.Compiler = compiler.Compiler; + hb.JavaScriptCompiler = _handlebarsCompilerJavascriptCompiler2['default']; + hb.Parser = base$1.parser; + hb.parse = base$1.parse; + hb.parseWithoutProcessing = base$1.parseWithoutProcessing; + + return hb; +} + +var inst = create(); +inst.create = create; + +_handlebarsNoConflict2['default'](inst); + +inst.Visitor = _handlebarsCompilerVisitor2['default']; + +inst['default'] = inst; + +exports['default'] = inst; +module.exports = exports['default']; + +}); + +var printer = createCommonjsModule(function (module, exports) { + +exports.__esModule = true; +exports.print = print; +exports.PrintVisitor = PrintVisitor; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + + +var _visitor2 = _interopRequireDefault(visitor); + +function print(ast) { + return new PrintVisitor().accept(ast); +} + +function PrintVisitor() { + this.padding = 0; +} + +PrintVisitor.prototype = new _visitor2['default'](); + +PrintVisitor.prototype.pad = function (string) { + var out = ''; + + for (var i = 0, l = this.padding; i < l; i++) { + out += ' '; + } + + out += string + '\n'; + return out; +}; + +PrintVisitor.prototype.Program = function (program) { + var out = '', + body = program.body, + i = undefined, + l = undefined; + + if (program.blockParams) { + var blockParams = 'BLOCK PARAMS: ['; + for (i = 0, l = program.blockParams.length; i < l; i++) { + blockParams += ' ' + program.blockParams[i]; + } + blockParams += ' ]'; + out += this.pad(blockParams); + } + + for (i = 0, l = body.length; i < l; i++) { + out += this.accept(body[i]); + } + + this.padding--; + + return out; +}; + +PrintVisitor.prototype.MustacheStatement = function (mustache) { + return this.pad('{{ ' + this.SubExpression(mustache) + ' }}'); +}; +PrintVisitor.prototype.Decorator = function (mustache) { + return this.pad('{{ DIRECTIVE ' + this.SubExpression(mustache) + ' }}'); +}; + +PrintVisitor.prototype.BlockStatement = PrintVisitor.prototype.DecoratorBlock = function (block) { + var out = ''; + + out += this.pad((block.type === 'DecoratorBlock' ? 'DIRECTIVE ' : '') + 'BLOCK:'); + this.padding++; + out += this.pad(this.SubExpression(block)); + if (block.program) { + out += this.pad('PROGRAM:'); + this.padding++; + out += this.accept(block.program); + this.padding--; + } + if (block.inverse) { + if (block.program) { + this.padding++; + } + out += this.pad('{{^}}'); + this.padding++; + out += this.accept(block.inverse); + this.padding--; + if (block.program) { + this.padding--; + } + } + this.padding--; + + return out; +}; + +PrintVisitor.prototype.PartialStatement = function (partial) { + var content = 'PARTIAL:' + partial.name.original; + if (partial.params[0]) { + content += ' ' + this.accept(partial.params[0]); + } + if (partial.hash) { + content += ' ' + this.accept(partial.hash); + } + return this.pad('{{> ' + content + ' }}'); +}; +PrintVisitor.prototype.PartialBlockStatement = function (partial) { + var content = 'PARTIAL BLOCK:' + partial.name.original; + if (partial.params[0]) { + content += ' ' + this.accept(partial.params[0]); + } + if (partial.hash) { + content += ' ' + this.accept(partial.hash); + } + + content += ' ' + this.pad('PROGRAM:'); + this.padding++; + content += this.accept(partial.program); + this.padding--; + + return this.pad('{{> ' + content + ' }}'); +}; + +PrintVisitor.prototype.ContentStatement = function (content) { + return this.pad("CONTENT[ '" + content.value + "' ]"); +}; + +PrintVisitor.prototype.CommentStatement = function (comment) { + return this.pad("{{! '" + comment.value + "' }}"); +}; + +PrintVisitor.prototype.SubExpression = function (sexpr) { + var params = sexpr.params, + paramStrings = [], + hash = undefined; + + for (var i = 0, l = params.length; i < l; i++) { + paramStrings.push(this.accept(params[i])); + } + + params = '[' + paramStrings.join(', ') + ']'; + + hash = sexpr.hash ? ' ' + this.accept(sexpr.hash) : ''; + + return this.accept(sexpr.path) + ' ' + params + hash; +}; + +PrintVisitor.prototype.PathExpression = function (id) { + var path = id.parts.join('/'); + return (id.data ? '@' : '') + 'PATH:' + path; +}; + +PrintVisitor.prototype.StringLiteral = function (string) { + return '"' + string.value + '"'; +}; + +PrintVisitor.prototype.NumberLiteral = function (number) { + return 'NUMBER{' + number.value + '}'; +}; + +PrintVisitor.prototype.BooleanLiteral = function (bool) { + return 'BOOLEAN{' + bool.value + '}'; +}; + +PrintVisitor.prototype.UndefinedLiteral = function () { + return 'UNDEFINED'; +}; + +PrintVisitor.prototype.NullLiteral = function () { + return 'NULL'; +}; + +PrintVisitor.prototype.Hash = function (hash) { + var pairs = hash.pairs, + joinedPairs = []; + + for (var i = 0, l = pairs.length; i < l; i++) { + joinedPairs.push(this.accept(pairs[i])); + } + + return 'HASH{' + joinedPairs.join(', ') + '}'; +}; +PrintVisitor.prototype.HashPair = function (pair) { + return pair.key + '=' + this.accept(pair.value); +}; +/* eslint-enable new-cap */ + +}); + +// USAGE: +// var handlebars = require('handlebars'); +/* eslint-disable no-var */ + +// var local = handlebars.create(); + +var handlebars$1 = handlebars['default']; + + +handlebars$1.PrintVisitor = printer.PrintVisitor; +handlebars$1.print = printer.print; + +var lib = handlebars$1; + +// Publish a Node.js require() handler for .handlebars and .hbs files +function extension(module, filename) { + var fs = fs__default['default']; + var templateString = fs.readFileSync(filename, 'utf8'); + module.exports = handlebars$1.compile(templateString); +} +/* istanbul ignore else */ +if (typeof commonjsRequire !== 'undefined' && commonjsRequire.extensions) { + commonjsRequire.extensions['.handlebars'] = extension; + commonjsRequire.extensions['.hbs'] = extension; +} + +/** + * Defines an event manager for the citations plugin. + */ +var CitationEvents = /** @class */ (function (_super) { + __extends(CitationEvents, _super); + function CitationEvents() { + return _super !== null && _super.apply(this, arguments) || this; + } + CitationEvents.prototype.on = function (name, callback, ctx) { + return _super.prototype.on.call(this, name, callback, ctx); + }; + CitationEvents.prototype.trigger = function (name) { + var data = []; + for (var _i = 1; _i < arguments.length; _i++) { + data[_i - 1] = arguments[_i]; + } + _super.prototype.trigger.call(this, name, data); + }; + return CitationEvents; +}(obsidian.Events)); + +var SearchModal = /** @class */ (function (_super) { + __extends(SearchModal, _super); + function SearchModal(app, plugin) { + var _this = _super.call(this, app) || this; + _this.limit = 50; + _this.plugin = plugin; + _this.resultContainerEl.addClass('zoteroModalResults'); + _this.inputEl.setAttribute('spellcheck', 'false'); + _this.loadingEl = _this.resultContainerEl.parentElement.createEl('div', { + cls: 'zoteroModalLoading', + }); + _this.loadingEl.createEl('div', { cls: 'zoteroModalLoadingAnimation' }); + _this.loadingEl.createEl('p', { + text: 'Loading citation database. Please wait...', + }); + return _this; + } + SearchModal.prototype.onOpen = function () { + var _this = this; + _super.prototype.onOpen.call(this); + this.eventRefs = [ + this.plugin.events.on('library-load-start', function () { + _this.setLoading(true); + }), + this.plugin.events.on('library-load-complete', function () { + _this.setLoading(false); + }), + ]; + this.setLoading(this.plugin.isLibraryLoading); + // Don't immediately register keyevent listeners. If the modal was triggered + // by an "Enter" keystroke (e.g. via the Obsidian command dialog), this event + // will be received here erroneously. + setTimeout(function () { + _this.inputEl.addEventListener('keydown', function (ev) { return _this.onInputKeydown(ev); }); + _this.inputEl.addEventListener('keyup', function (ev) { return _this.onInputKeyup(ev); }); + }, 200); + }; + SearchModal.prototype.onClose = function () { + var _this = this; + var _a; + (_a = this.eventRefs) === null || _a === void 0 ? void 0 : _a.forEach(function (e) { return _this.plugin.events.offref(e); }); + }; + SearchModal.prototype.getItems = function () { + if (this.plugin.isLibraryLoading) { + return []; + } + return Object.values(this.plugin.library.entries); + }; + SearchModal.prototype.getItemText = function (item) { + return item.title + " " + item.authorString + " " + item.year; + }; + SearchModal.prototype.setLoading = function (loading) { + if (loading) { + this.loadingEl.removeClass('d-none'); + this.inputEl.disabled = true; + this.resultContainerEl.empty(); + } + else { + this.loadingEl.addClass('d-none'); + this.inputEl.disabled = false; + this.inputEl.focus(); + // @ts-ignore: not exposed in API. + this.updateSuggestions(); + } + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + SearchModal.prototype.onChooseItem = function (item, evt) { + this.plugin.openLiteratureNote(item.id, false).catch(console.error); + }; + SearchModal.prototype.renderSuggestion = function (match, el) { + el.empty(); + var entry = match.item; + var entryTitle = entry.title || ''; + var container = el.createEl('div', { cls: 'zoteroResult' }); + var titleEl = container.createEl('span', { + cls: 'zoteroTitle', + }); + container.createEl('span', { cls: 'zoteroCitekey', text: entry.id }); + var authorsCls = entry.authorString + ? 'zoteroAuthors' + : 'zoteroAuthors zoteroAuthorsEmpty'; + var authorsEl = container.createEl('span', { + cls: authorsCls, + }); + // Prepare to highlight string matches for each part of the search item. + // Compute offsets of each rendered element's content within the string + // returned by `getItemText`. + var allMatches = match.match.matches; + var authorStringOffset = 1 + entryTitle.length; + // Filter a match list to contain only the relevant matches for a given + // substring, and with match indices shifted relative to the start of that + // substring + var shiftMatches = function (matches, start, end) { + return matches + .map(function (match) { + var matchStart = match[0], matchEnd = match[1]; + return [ + matchStart - start, + Math.min(matchEnd - start, end), + ]; + }) + .filter(function (match) { + var matchStart = match[0], matchEnd = match[1]; + return matchStart >= 0; + }); + }; + // Now highlight matched strings within each element + obsidian.renderMatches(titleEl, entryTitle, shiftMatches(allMatches, 0, entryTitle.length)); + if (entry.authorString) { + obsidian.renderMatches(authorsEl, entry.authorString, shiftMatches(allMatches, authorStringOffset, authorStringOffset + entry.authorString.length)); + } + }; + SearchModal.prototype.onInputKeydown = function (ev) { + if (ev.key == 'Tab') { + ev.preventDefault(); + } + }; + SearchModal.prototype.onInputKeyup = function (ev) { + if (ev.key == 'Enter' || ev.key == 'Tab') { + this.chooser.useSelectedItem(ev); + } + }; + return SearchModal; +}(obsidian.FuzzySuggestModal)); +var OpenNoteModal = /** @class */ (function (_super) { + __extends(OpenNoteModal, _super); + function OpenNoteModal(app, plugin) { + var _this = _super.call(this, app, plugin) || this; + _this.setInstructions([ + { command: '↑↓', purpose: 'to navigate' }, + { command: '↵', purpose: 'to open literature note' }, + { command: 'ctrl ↵', purpose: 'to open literature note in a new pane' }, + { command: 'tab', purpose: 'open in Zotero' }, + { command: 'shift tab', purpose: 'open PDF' }, + { command: 'esc', purpose: 'to dismiss' }, + ]); + return _this; + } + OpenNoteModal.prototype.onChooseItem = function (item, evt) { + if (evt instanceof MouseEvent || evt.key == 'Enter') { + var newPane = evt instanceof KeyboardEvent && evt.ctrlKey; + this.plugin.openLiteratureNote(item.id, newPane); + } + else if (evt.key == 'Tab') { + if (evt.shiftKey) { + var files = item.files || []; + var pdfPaths = files.filter(function (path) { + return path.toLowerCase().endsWith('pdf'); + }); + if (pdfPaths.length == 0) { + new obsidian.Notice('This reference has no associated PDF files.'); + } + else { + open("file://" + pdfPaths[0]); + } + } + else { + open(item.zoteroSelectURI); + } + } + }; + return OpenNoteModal; +}(SearchModal)); +var InsertNoteLinkModal = /** @class */ (function (_super) { + __extends(InsertNoteLinkModal, _super); + function InsertNoteLinkModal(app, plugin) { + var _this = _super.call(this, app, plugin) || this; + _this.setInstructions([ + { command: '↑↓', purpose: 'to navigate' }, + { command: '↵', purpose: 'to insert literature note reference' }, + { command: 'esc', purpose: 'to dismiss' }, + ]); + return _this; + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + InsertNoteLinkModal.prototype.onChooseItem = function (item, evt) { + this.plugin.insertLiteratureNoteLink(item.id).catch(console.error); + }; + return InsertNoteLinkModal; +}(SearchModal)); +var InsertNoteContentModal = /** @class */ (function (_super) { + __extends(InsertNoteContentModal, _super); + function InsertNoteContentModal(app, plugin) { + var _this = _super.call(this, app, plugin) || this; + _this.setInstructions([ + { command: '↑↓', purpose: 'to navigate' }, + { + command: '↵', + purpose: 'to insert literature note content in active pane', + }, + { command: 'esc', purpose: 'to dismiss' }, + ]); + return _this; + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + InsertNoteContentModal.prototype.onChooseItem = function (item, evt) { + this.plugin.insertLiteratureNoteContent(item.id).catch(console.error); + }; + return InsertNoteContentModal; +}(SearchModal)); +var InsertCitationModal = /** @class */ (function (_super) { + __extends(InsertCitationModal, _super); + function InsertCitationModal(app, plugin) { + var _this = _super.call(this, app, plugin) || this; + _this.setInstructions([ + { command: '↑↓', purpose: 'to navigate' }, + { command: '↵', purpose: 'to insert Markdown citation' }, + { command: 'shift ↵', purpose: 'to insert secondary Markdown citation' }, + { command: 'esc', purpose: 'to dismiss' }, + ]); + return _this; + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + InsertCitationModal.prototype.onChooseItem = function (item, evt) { + var isAlternative = evt instanceof KeyboardEvent && evt.shiftKey; + this.plugin + .insertMarkdownCitation(item.id, isAlternative) + .catch(console.error); + }; + return InsertCitationModal; +}(SearchModal)); + +/* + * Generated by PEG.js 0.10.0. + * + * http://pegjs.org/ + */ + +function peg$subclass(child, parent) { + function ctor() { this.constructor = child; } + ctor.prototype = parent.prototype; + child.prototype = new ctor(); +} + +function peg$SyntaxError(message, expected, found, location) { + this.message = message; + this.expected = expected; + this.found = found; + this.location = location; + this.name = "SyntaxError"; + + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, peg$SyntaxError); + } +} + +peg$subclass(peg$SyntaxError, Error); + +peg$SyntaxError.buildMessage = function(expected, found) { + var DESCRIBE_EXPECTATION_FNS = { + literal: function(expectation) { + return "\"" + literalEscape(expectation.text) + "\""; + }, + + "class": function(expectation) { + var escapedParts = "", + i; + + for (i = 0; i < expectation.parts.length; i++) { + escapedParts += expectation.parts[i] instanceof Array + ? classEscape(expectation.parts[i][0]) + "-" + classEscape(expectation.parts[i][1]) + : classEscape(expectation.parts[i]); + } + + return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]"; + }, + + any: function(expectation) { + return "any character"; + }, + + end: function(expectation) { + return "end of input"; + }, + + other: function(expectation) { + return expectation.description; + } + }; + + function hex(ch) { + return ch.charCodeAt(0).toString(16).toUpperCase(); + } + + function literalEscape(s) { + return s + .replace(/\\/g, '\\\\') + .replace(/"/g, '\\"') + .replace(/\0/g, '\\0') + .replace(/\t/g, '\\t') + .replace(/\n/g, '\\n') + .replace(/\r/g, '\\r') + .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) + .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); }); + } + + function classEscape(s) { + return s + .replace(/\\/g, '\\\\') + .replace(/\]/g, '\\]') + .replace(/\^/g, '\\^') + .replace(/-/g, '\\-') + .replace(/\0/g, '\\0') + .replace(/\t/g, '\\t') + .replace(/\n/g, '\\n') + .replace(/\r/g, '\\r') + .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) + .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); }); + } + + function describeExpectation(expectation) { + return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation); + } + + function describeExpected(expected) { + var descriptions = new Array(expected.length), + i, j; + + for (i = 0; i < expected.length; i++) { + descriptions[i] = describeExpectation(expected[i]); + } + + descriptions.sort(); + + if (descriptions.length > 0) { + for (i = 1, j = 1; i < descriptions.length; i++) { + if (descriptions[i - 1] !== descriptions[i]) { + descriptions[j] = descriptions[i]; + j++; + } + } + descriptions.length = j; + } + + switch (descriptions.length) { + case 1: + return descriptions[0]; + + case 2: + return descriptions[0] + " or " + descriptions[1]; + + default: + return descriptions.slice(0, -1).join(", ") + + ", or " + + descriptions[descriptions.length - 1]; + } + } + + function describeFound(found) { + return found ? "\"" + literalEscape(found) + "\"" : "end of input"; + } + + return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found."; +}; + +function peg$parse(input, options) { + options = options !== void 0 ? options : {}; + + var peg$FAILED = {}, + + peg$startRuleFunctions = { Bibliography: peg$parseBibliography }, + peg$startRuleFunction = peg$parseBibliography, + + peg$c0 = function(r) { + return { + kind: 'Bibliography', + loc: location(), + source: text(), + children: r, + } + }, + peg$c1 = "@", + peg$c2 = peg$literalExpectation("@", false), + peg$c3 = "comment", + peg$c4 = peg$literalExpectation("comment", true), + peg$c5 = function(v) { + return { + kind: 'BracedComment', + loc: location(), + source: text(), + value: v.slice(1, -1), + } + }, + peg$c6 = /^[^\n\r]/, + peg$c7 = peg$classExpectation(["\n", "\r"], true, false), + peg$c8 = /^[\n\r]/, + peg$c9 = peg$classExpectation(["\n", "\r"], false, false), + peg$c10 = function(v) { + return { + kind: 'LineComment', + loc: location(), + source: text(), + value: normalizeWhitespace(v), + } + }, + peg$c11 = /^[^@]/, + peg$c12 = peg$classExpectation(["@"], true, false), + peg$c13 = function(v) { + return { + kind: 'NonEntryText', + loc: location(), + source: text(), + value: normalizeWhitespace(v), + } + }, + peg$c14 = function(n) { return n; }, + peg$c15 = "{", + peg$c16 = peg$literalExpectation("{", false), + peg$c17 = /^[^{}]/, + peg$c18 = peg$classExpectation(["{", "}"], true, false), + peg$c19 = "}", + peg$c20 = peg$literalExpectation("}", false), + peg$c21 = function(comment) { return '{' + comment.join('') + '}' }, + peg$c22 = /^[A-Za-z]/, + peg$c23 = peg$classExpectation([["A", "Z"], ["a", "z"]], false, false), + peg$c24 = /^[({]/, + peg$c25 = peg$classExpectation(["(", "{"], false, false), + peg$c26 = /^[})]/, + peg$c27 = peg$classExpectation(["}", ")"], false, false), + peg$c28 = function(type, id, fields) { + return { + kind: 'Entry', + id: id || '', + type: type.toLowerCase(), + loc: location(), + source: text(), + fields: fields, + } + }, + peg$c29 = "preamble", + peg$c30 = peg$literalExpectation("preamble", true), + peg$c31 = function(opener, v, closer) { + switch (opener + closer) { + case '{}': + case '()': + break + default: + throw new Error(`Unbalanced opener-closer for preamble: ${opener}...${closer}`) + } + return { + kind: 'PreambleExpression', + loc: location(), + source: text(), + value: v.reduce((a, b) => a.concat(b), []), + } + }, + peg$c32 = "string", + peg$c33 = peg$literalExpectation("string", true), + peg$c34 = function(k, v) { + return { + kind: 'StringDeclaration', + loc: location(), + source: text(), + name: k, + value: v.reduce((a, b) => a.concat(b), []), + } + }, + peg$c35 = /^[^ \t\r\n,]/, + peg$c36 = peg$classExpectation([" ", "\t", "\r", "\n", ","], true, false), + peg$c37 = ",", + peg$c38 = peg$literalExpectation(",", false), + peg$c39 = function(id) { return id; }, + peg$c40 = function(name) { return isVerbatimField(name) && unnestFields.includes(name) }, + peg$c41 = function(name, value) { + // because this was abused so much, many processors treat double-outer-braces as single + return { + kind: 'Field', + loc: location(), + source: text(), + name: name, + loc: location(), + value: [ protect(value) ] + } + }, + peg$c42 = function(name) { return isVerbatimField(name) }, + peg$c43 = function(name, value) { + return { + kind: 'Field', + loc: location(), + source: text(), + name: name, + loc: location(), + value: [ protect(value) ] + } + }, + peg$c44 = function(name, value) { + // because this was abused so much, many processors treat double-outer-braces as single + if (unnestFields.includes(name) && Array.isArray(value) && value.length === 1 && value[0].kind === 'Block') { + if (options.unnestMode === 'preserve') { + value[0].case = 'preserve'; + } else { + value = value[0].value; + } + } + + return handle_markup_switches({ + kind: 'Field', + loc: location(), + source: text(), + name: name, + value: value, + }) + }, + peg$c45 = /^[_:a-zA-Z0-9\-]/, + peg$c46 = peg$classExpectation(["_", ":", ["a", "z"], ["A", "Z"], ["0", "9"], "-"], false, false), + peg$c47 = function(name) { return name.toLowerCase() }, + peg$c48 = "\"", + peg$c49 = peg$literalExpectation("\"", false), + peg$c50 = function(v) { + v = v || { + kind: 'Text', + loc: location(), + source: text(), + value: '', + }; + v.mode = 'verbatim'; + return basicTextConversions(v) + }, + peg$c51 = function(v) { + return basicTextConversions({ + kind: 'Text', + loc: location(), + source: text(), + value: v.join('').trim(), + mode: 'verbatim', + }) + }, + peg$c52 = function(v) { return v }, + peg$c53 = function(v) { return '{' + v.join('') + '}' }, + peg$c54 = function() { return math.set(false) }, + peg$c55 = function(v) { + return v.reduce((a, b) => a.concat(b), []); + }, + peg$c56 = function(v) { return v; }, + peg$c57 = "{\\verb", + peg$c58 = peg$literalExpectation("{\\verb", false), + peg$c59 = /^[a-zA-Z]/, + peg$c60 = peg$classExpectation([["a", "z"], ["A", "Z"]], false, false), + peg$c61 = /^[^\^_${}\\]/, + peg$c62 = peg$classExpectation(["^", "_", "$", "{", "}", "\\"], true, false), + peg$c63 = function(v) { + return basicTextConversions({ + kind: 'Text', + loc: location(), + source: text(), + value: normalizeWhitespace(v), + mode: math.on ? 'math' : 'text', + }) + }, + peg$c64 = /^[^\^_${}"\\]/, + peg$c65 = peg$classExpectation(["^", "_", "$", "{", "}", "\"", "\\"], true, false), + peg$c66 = /^[0-9]/, + peg$c67 = peg$classExpectation([["0", "9"]], false, false), + peg$c68 = function(v) { + return { + kind: 'Number', + loc: location(), + source: text(), + value: parseInt(v, 10), + } + }, + peg$c69 = function(v) { + return { + kind: 'StringReference', + loc: location(), + source: text(), + name: v, + } + }, + peg$c70 = "\\begin{", + peg$c71 = peg$literalExpectation("\\begin{", false), + peg$c72 = /^[a-zA-Z0-9]/, + peg$c73 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"]], false, false), + peg$c74 = "\\end{", + peg$c75 = peg$literalExpectation("\\end{", false), + peg$c76 = function(env, v, cenv) { return env === cenv }, + peg$c77 = function(env, v, cenv) { + if (markup[env]) { + return { + kind: 'Block', + loc: location(), + source: text(), + value: v, + markup: { [markup[env]]: true }, + } + } else { + return { + kind: 'Environment', + loc: location(), + source: text(), + value: v, + env: env, + } + } + }, + peg$c78 = "{\\", + peg$c79 = peg$literalExpectation("{\\", false), + peg$c80 = "\\", + peg$c81 = peg$literalExpectation("\\", false), + peg$c82 = /^[ij]/, + peg$c83 = peg$classExpectation(["i", "j"], false, false), + peg$c84 = function(mark, char) { + return { + kind: 'DiacriticCommand', + loc: location(), + source: text(), + mark: mark, + dotless: !!char[1], + character: char[1] || char[0], + } + }, + peg$c85 = function(v) { + return basicTextConversions({ + kind: 'Text', + loc: location(), + source: text(), + value: v.join('').trim(), + mode: 'verbatim', + }) + }, + peg$c86 = function(v) { + const block = { + kind: 'Block', + loc: location(), + source: text(), + value: v, + markup: {}, + case: 'protect', + }; + + let leadingcmd = block.value.length && (block.value[0].kind.endsWith('Command') || block.value[0].kind === 'Environment') ? block.value[0] : null; + let leadingcmdblockarg = leadingcmd + && leadingcmd.kind === 'RegularCommand' + && leadingcmd.arguments.required.length + && leadingcmd.arguments.required[0].kind === 'Block' + && leadingcmd.arguments.required[0]; + + // https://github.com/retorquere/zotero-better-bibtex/issues/541#issuecomment-240156274 + if (leadingcmd) { + delete block.case; + + // command with a block cancels out case protection with containing block + // if a smallcaps block has set case to 'preserve' we want to keep this + if (leadingcmdblockarg && leadingcmdblockarg.case === 'protect') delete leadingcmdblockarg.case; + + // \sl, \it etc + if (markup[leadingcmd.command]) { + block.markup[markup[leadingcmd.command]] = true; + block.value.shift(); + } + } + + return handle_markup_switches(block) + }, + peg$c87 = function() { return !math.on }, + peg$c88 = "$", + peg$c89 = peg$literalExpectation("$", false), + peg$c90 = "$$", + peg$c91 = peg$literalExpectation("$$", false), + peg$c92 = function(mode) { return math.set(true) }, + peg$c93 = function(mode, v) { return math.set(false) }, + peg$c94 = function(mode, v) { + return { + kind: mode == '$$' ? 'DisplayMath' : 'InlineMath', + loc: location(), + source: text(), + value: v, + case: 'protect', + markup: {}, + } + }, + peg$c95 = "%", + peg$c96 = peg$literalExpectation("%", false), + peg$c97 = /^[^\r\n]/, + peg$c98 = peg$classExpectation(["\r", "\n"], true, false), + peg$c99 = function(v) { + return { + kind: 'LineComment', + loc: location(), + source: text(), + value: v, + } + }, + peg$c100 = /^[_\^]/, + peg$c101 = peg$classExpectation(["_", "^"], false, false), + peg$c102 = function(mode, v) { + if (v.kind === 'Block') v = v.value; + + return { + kind: mode === '_' ? 'SubscriptCommand' : 'SuperscriptCommand', + loc: location(), + source: text(), + value: v, + } + }, + peg$c103 = function(mark, v) { + return { + kind: 'RegularCommand', + loc: location(), + source: text(), + command: mark, + arguments: { + optional: [], + required: [ protect(v) ], + }, + } + }, + peg$c104 = /^[^A-Za-z0-9\t\r\n]/, + peg$c105 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"], "\t", "\r", "\n"], true, false), + peg$c106 = function(v) { + return { + kind: 'SymbolCommand', + loc: location(), + source: text(), + command: v, + } + }, + peg$c107 = "newcommand", + peg$c108 = peg$literalExpectation("newcommand", false), + peg$c109 = function(cmd, name) { return name.value.length == 1 && name.value[0].kind === 'RegularCommand' }, + peg$c110 = function(cmd, name, optional, def) { + return { + kind: 'RegularCommand', + loc: location(), + source: text(), + command: cmd, + arguments: { + optional: [], + required: [name, def], + }, + } + }, + peg$c111 = "begin", + peg$c112 = peg$literalExpectation("begin", false), + peg$c113 = "end", + peg$c114 = peg$literalExpectation("end", false), + peg$c115 = function(cmd) { return verbatimCommands.includes(cmd) && (has_arguments[cmd] === 2) }, + peg$c116 = function(cmd, optional, req1, req2) { + return { + kind: 'RegularCommand', + loc: location(), + source: text(), + command: cmd, + arguments: { + optional: optional, + required: [protect(req1), protect(req2)], + }, + } + }, + peg$c117 = function(cmd) { return verbatimCommands.includes(cmd) && (has_arguments[cmd] === 1) }, + peg$c118 = function(cmd, optional, req) { + return { + kind: 'RegularCommand', + loc: location(), + source: text(), + command: cmd, + arguments: { + optional: optional, + required: [protect(req)], + }, + } + }, + peg$c119 = function(cmd) { return (has_arguments[cmd] === 2) }, + peg$c120 = function(cmd, optional, req1, req2) { + return { + kind: 'RegularCommand', + loc: location(), + source: text(), + command: cmd, + arguments: { + optional: optional, + required: [req1, req2], + }, + } + }, + peg$c121 = function(cmd) { return (has_arguments[cmd] === 1) }, + peg$c122 = function(cmd, optional, req) { + let m; + if (req.kind === 'Block') { + switch (cmd) { + case 'textsuperscript': + case 'sp': + req.markup.sup = true; + break + case 'textsubscript': + case 'sb': + req.markup.sub = true; + break + case 'textsc': + req.markup.smallCaps = true; + break + case 'enquote': + case 'mkbibquote': + req.markup.enquote = true; + break + case 'textbf': + case 'mkbibbold': + req.markup.bold = true; + break + case 'emph': + case 'textit': + case 'mkbibitalic': + case 'mkbibemph': + req.markup.italics = true; + break + default: + if (m = cmd.match(/^((sub)*)section$/)) { + req.markup[`h${(m[1].length / 3) + 1}`] = true; + } + } + } + + // ignore case stuff on bibcyr + if (cmd === 'bibcyr') delete req.case; + + return { + kind: 'RegularCommand', + loc: location(), + source: text(), + command: cmd, + arguments: { + optional: optional, + required: [req], + } + } + }, + peg$c123 = function(cmd, optional) { + return { + kind: 'RegularCommand', + loc: location(), + source: text(), + command: cmd, + arguments: { + optional: optional, + required: [], + } + } + }, + peg$c124 = "[", + peg$c125 = peg$literalExpectation("[", false), + peg$c126 = /^[^\]]/, + peg$c127 = peg$classExpectation(["]"], true, false), + peg$c128 = "]", + peg$c129 = peg$literalExpectation("]", false), + peg$c130 = function(v) { + return basicTextConversions({ + kind: 'Text', // this isn't really correct but I don't need these right now + loc: location(), + source: text(), + value: v, + mode: math.on ? 'math' : 'text', + }) + }, + peg$c131 = /^[^ \t\^_${}\\]/, + peg$c132 = peg$classExpectation([" ", "\t", "^", "_", "$", "{", "}", "\\"], true, false), + peg$c133 = function(v) { + return basicTextConversions({ + kind: 'Text', + loc: location(), + source: text(), + value: normalizeWhitespace([v]), + mode: math.on ? 'math' : 'text', + }) + }, + peg$c134 = /^[a-zA-Z\-_]/, + peg$c135 = peg$classExpectation([["a", "z"], ["A", "Z"], "-", "_"], false, false), + peg$c136 = /^[a-zA-Z0-9\-&_:]/, + peg$c137 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"], "-", "&", "_", ":"], false, false), + peg$c138 = /^['`"=~\^.]/, + peg$c139 = peg$classExpectation(["'", "`", "\"", "=", "~", "^", "."], false, false), + peg$c140 = /^['`"=~\^.cbuvdrHk]/, + peg$c141 = peg$classExpectation(["'", "`", "\"", "=", "~", "^", ".", "c", "b", "u", "v", "d", "r", "H", "k"], false, false), + peg$c142 = "=", + peg$c143 = peg$literalExpectation("=", false), + peg$c144 = "#", + peg$c145 = peg$literalExpectation("#", false), + peg$c146 = /^[\r\n]/, + peg$c147 = peg$classExpectation(["\r", "\n"], false, false), + peg$c149 = /^[ \t]/, + peg$c150 = peg$classExpectation([" ", "\t"], false, false), + peg$c151 = peg$otherExpectation("Optional Horizontal Whitespace"), + peg$c155 = /^[ \t\n\r]/, + peg$c156 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false), + peg$c157 = peg$otherExpectation("Optional Whitespace"), + + peg$currPos = 0, + peg$savedPos = 0, + peg$posDetailsCache = [{ line: 1, column: 1 }], + peg$maxFailPos = 0, + peg$maxFailExpected = [], + peg$silentFails = 0, + + peg$result; + + if ("startRule" in options) { + if (!(options.startRule in peg$startRuleFunctions)) { + throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); + } + + peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; + } + + function text() { + return input.substring(peg$savedPos, peg$currPos); + } + + function location() { + return peg$computeLocation(peg$savedPos, peg$currPos); + } + + function peg$literalExpectation(text, ignoreCase) { + return { type: "literal", text: text, ignoreCase: ignoreCase }; + } + + function peg$classExpectation(parts, inverted, ignoreCase) { + return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase }; + } + + function peg$endExpectation() { + return { type: "end" }; + } + + function peg$otherExpectation(description) { + return { type: "other", description: description }; + } + + function peg$computePosDetails(pos) { + var details = peg$posDetailsCache[pos], p; + + if (details) { + return details; + } else { + p = pos - 1; + while (!peg$posDetailsCache[p]) { + p--; + } + + details = peg$posDetailsCache[p]; + details = { + line: details.line, + column: details.column + }; + + while (p < pos) { + if (input.charCodeAt(p) === 10) { + details.line++; + details.column = 1; + } else { + details.column++; + } + + p++; + } + + peg$posDetailsCache[pos] = details; + return details; + } + } + + function peg$computeLocation(startPos, endPos) { + var startPosDetails = peg$computePosDetails(startPos), + endPosDetails = peg$computePosDetails(endPos); + + return { + start: { + offset: startPos, + line: startPosDetails.line, + column: startPosDetails.column + }, + end: { + offset: endPos, + line: endPosDetails.line, + column: endPosDetails.column + } + }; + } + + function peg$fail(expected) { + if (peg$currPos < peg$maxFailPos) { return; } + + if (peg$currPos > peg$maxFailPos) { + peg$maxFailPos = peg$currPos; + peg$maxFailExpected = []; + } + + peg$maxFailExpected.push(expected); + } + + function peg$buildStructuredError(expected, found, location) { + return new peg$SyntaxError( + peg$SyntaxError.buildMessage(expected, found), + expected, + found, + location + ); + } + + function peg$parseBibliography() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + s1 = peg$parse__(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseNode(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseNode(); + } + if (s2 !== peg$FAILED) { + s3 = peg$parse__(); + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c0(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseComment() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 64) { + s1 = peg$c1; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c2); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 7).toLowerCase() === peg$c3) { + s3 = input.substr(peg$currPos, 7); + peg$currPos += 7; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c4); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__h(); + if (s4 !== peg$FAILED) { + s5 = peg$parseBracedComment(); + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c5(s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 64) { + s1 = peg$c1; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c2); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 7).toLowerCase() === peg$c3) { + s3 = input.substr(peg$currPos, 7); + peg$currPos += 7; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c4); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__h(); + if (s4 !== peg$FAILED) { + s5 = []; + if (peg$c6.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c7); } + } + while (s6 !== peg$FAILED) { + s5.push(s6); + if (peg$c6.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c7); } + } + } + if (s5 !== peg$FAILED) { + s6 = []; + if (peg$c8.test(input.charAt(peg$currPos))) { + s7 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + while (s7 !== peg$FAILED) { + s6.push(s7); + if (peg$c8.test(input.charAt(peg$currPos))) { + s7 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + } + if (s6 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c10(s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$currPos; + if (peg$c11.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c12); } + } + if (s2 !== peg$FAILED) { + s3 = []; + if (peg$c6.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c7); } + } + while (s4 !== peg$FAILED) { + s3.push(s4); + if (peg$c6.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c7); } + } + } + if (s3 !== peg$FAILED) { + s2 = [s2, s3]; + s1 = s2; + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + s2 = []; + if (peg$c8.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + while (s3 !== peg$FAILED) { + s2.push(s3); + if (peg$c8.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c13(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + + return s0; + } + + function peg$parseNode() { + var s0, s1; + + s0 = peg$currPos; + s1 = peg$parseComment(); + if (s1 === peg$FAILED) { + s1 = peg$parsePreambleExpression(); + if (s1 === peg$FAILED) { + s1 = peg$parseStringDeclaration(); + if (s1 === peg$FAILED) { + s1 = peg$parseEntry(); + } + } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c14(s1); + } + s0 = s1; + + return s0; + } + + function peg$parseBracedComment() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 123) { + s1 = peg$c15; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s1 !== peg$FAILED) { + s2 = []; + if (peg$c17.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c18); } + } + if (s3 === peg$FAILED) { + s3 = peg$parseBracedComment(); + } + while (s3 !== peg$FAILED) { + s2.push(s3); + if (peg$c17.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c18); } + } + if (s3 === peg$FAILED) { + s3 = peg$parseBracedComment(); + } + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s3 = peg$c19; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c21(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseEntry() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 64) { + s1 = peg$c1; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c2); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + s4 = []; + if (peg$c22.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + if (s5 !== peg$FAILED) { + while (s5 !== peg$FAILED) { + s4.push(s5); + if (peg$c22.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + } + } else { + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s3 = input.substring(s3, peg$currPos); + } else { + s3 = s4; + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (peg$c24.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c25); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = peg$parseEntryId(); + if (s7 === peg$FAILED) { + s7 = null; + } + if (s7 !== peg$FAILED) { + s8 = peg$parse__(); + if (s8 !== peg$FAILED) { + s9 = []; + s10 = peg$parseField(); + while (s10 !== peg$FAILED) { + s9.push(s10); + s10 = peg$parseField(); + } + if (s9 !== peg$FAILED) { + s10 = peg$parse__(); + if (s10 !== peg$FAILED) { + if (peg$c26.test(input.charAt(peg$currPos))) { + s11 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s11 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c27); } + } + if (s11 !== peg$FAILED) { + s12 = peg$parse__(); + if (s12 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c28(s3, s7, s9); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsePreambleExpression() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 64) { + s1 = peg$c1; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c2); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 8).toLowerCase() === peg$c29) { + s3 = input.substr(peg$currPos, 8); + peg$currPos += 8; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c30); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (peg$c24.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c25); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = []; + s8 = peg$parseEnvironment(); + if (s8 === peg$FAILED) { + s8 = peg$parseBlock(); + if (s8 === peg$FAILED) { + s8 = peg$parseMath(); + if (s8 === peg$FAILED) { + s8 = peg$parseCommand(); + if (s8 === peg$FAILED) { + s8 = peg$parseText(); + } + } + } + } + while (s8 !== peg$FAILED) { + s7.push(s8); + s8 = peg$parseEnvironment(); + if (s8 === peg$FAILED) { + s8 = peg$parseBlock(); + if (s8 === peg$FAILED) { + s8 = peg$parseMath(); + if (s8 === peg$FAILED) { + s8 = peg$parseCommand(); + if (s8 === peg$FAILED) { + s8 = peg$parseText(); + } + } + } + } + } + if (s7 !== peg$FAILED) { + s8 = peg$parse__(); + if (s8 !== peg$FAILED) { + if (peg$c26.test(input.charAt(peg$currPos))) { + s9 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c27); } + } + if (s9 !== peg$FAILED) { + s10 = peg$parse__(); + if (s10 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c31(s5, s7, s9); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseStringDeclaration() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 64) { + s1 = peg$c1; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c2); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 6).toLowerCase() === peg$c32) { + s3 = input.substr(peg$currPos, 6); + peg$currPos += 6; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c33); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (peg$c24.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c25); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = peg$parseVariableName(); + if (s7 !== peg$FAILED) { + s8 = peg$parseFieldSeparator(); + if (s8 !== peg$FAILED) { + s9 = []; + s10 = peg$parseRegularValue(); + if (s10 !== peg$FAILED) { + while (s10 !== peg$FAILED) { + s9.push(s10); + s10 = peg$parseRegularValue(); + } + } else { + s9 = peg$FAILED; + } + if (s9 !== peg$FAILED) { + s10 = peg$parse__(); + if (s10 !== peg$FAILED) { + if (peg$c26.test(input.charAt(peg$currPos))) { + s11 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s11 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c27); } + } + if (s11 !== peg$FAILED) { + s12 = peg$parse__(); + if (s12 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c34(s7, s9); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseEntryId() { + var s0, s1, s2, s3, s4; + + s0 = peg$currPos; + s1 = peg$parse__(); + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + s3 = []; + if (peg$c35.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c36); } + } + while (s4 !== peg$FAILED) { + s3.push(s4); + if (peg$c35.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c36); } + } + } + if (s3 !== peg$FAILED) { + s2 = input.substring(s2, peg$currPos); + } else { + s2 = s3; + } + if (s2 !== peg$FAILED) { + s3 = peg$parse__(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s4 = peg$c37; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c38); } + } + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c39(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseField() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8; + + s0 = peg$currPos; + s1 = peg$parseFieldName(); + if (s1 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s2 = peg$c40(s1); + if (s2) { + s2 = void 0; + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$parseFieldSeparator(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 123) { + s4 = peg$c15; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s4 !== peg$FAILED) { + s5 = peg$currPos; + peg$silentFails++; + if (input.charCodeAt(peg$currPos) === 123) { + s6 = peg$c15; + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + peg$silentFails--; + if (s6 !== peg$FAILED) { + peg$currPos = s5; + s5 = void 0; + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s6 = peg$parseVerbatimFieldValue(); + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s7 = peg$c19; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s7 !== peg$FAILED) { + s8 = peg$parseFieldTerminator(); + if (s8 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c41(s1, s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseFieldName(); + if (s1 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s2 = peg$c42(s1); + if (s2) { + s2 = void 0; + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$parseFieldSeparator(); + if (s3 !== peg$FAILED) { + s4 = peg$parseVerbatimFieldValue(); + if (s4 !== peg$FAILED) { + s5 = peg$parseFieldTerminator(); + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c43(s1, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseFieldName(); + if (s1 !== peg$FAILED) { + s2 = peg$parseFieldSeparator(); + if (s2 !== peg$FAILED) { + s3 = peg$parseFieldValue(); + if (s3 !== peg$FAILED) { + s4 = peg$parseFieldTerminator(); + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c44(s1, s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + + return s0; + } + + function peg$parseFieldName() { + var s0, s1, s2, s3, s4; + + s0 = peg$currPos; + s1 = peg$parse__(); + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + s3 = []; + if (peg$c45.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c46); } + } + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + if (peg$c45.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c46); } + } + } + } else { + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s2 = input.substring(s2, peg$currPos); + } else { + s2 = s3; + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c47(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseVerbatimFieldValue() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 34) { + s1 = peg$c48; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c49); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseTextNoQuotes(); + if (s2 === peg$FAILED) { + s2 = null; + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 34) { + s3 = peg$c48; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c49); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c50(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 123) { + s1 = peg$c15; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseVerbatimText(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseVerbatimText(); + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s3 = peg$c19; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c51(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + + return s0; + } + + function peg$parseVerbatimText() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + s1 = peg$currPos; + s2 = []; + if (peg$c17.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c18); } + } + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + if (peg$c17.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c18); } + } + } + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s1 = input.substring(s1, peg$currPos); + } else { + s1 = s2; + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c52(s1); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 123) { + s1 = peg$c15; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseVerbatimText(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseVerbatimText(); + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s3 = peg$c19; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c53(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + + return s0; + } + + function peg$parseFieldValue() { + var s0, s1, s2, s3; + + s0 = peg$parseNumber(); + if (s0 === peg$FAILED) { + s0 = peg$currPos; + peg$savedPos = peg$currPos; + s1 = peg$c54(); + if (s1) { + s1 = void 0; + } else { + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseRegularValue(); + if (s3 === peg$FAILED) { + s3 = peg$parseStringValue(); + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseRegularValue(); + if (s3 === peg$FAILED) { + s3 = peg$parseStringValue(); + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c55(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + + return s0; + } + + function peg$parseRegularValue() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 34) { + s1 = peg$c48; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c49); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseEnvironment(); + if (s3 === peg$FAILED) { + s3 = peg$parseBlock(); + if (s3 === peg$FAILED) { + s3 = peg$parseMath(); + if (s3 === peg$FAILED) { + s3 = peg$parseCommand(); + if (s3 === peg$FAILED) { + s3 = peg$parseTextNoQuotes(); + } + } + } + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseEnvironment(); + if (s3 === peg$FAILED) { + s3 = peg$parseBlock(); + if (s3 === peg$FAILED) { + s3 = peg$parseMath(); + if (s3 === peg$FAILED) { + s3 = peg$parseCommand(); + if (s3 === peg$FAILED) { + s3 = peg$parseTextNoQuotes(); + } + } + } + } + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 34) { + s3 = peg$c48; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c49); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parseConcat(); + if (s4 === peg$FAILED) { + s4 = null; + } + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c56(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 6) === peg$c57) { + s1 = peg$c57; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c58); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + peg$silentFails++; + if (peg$c59.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c60); } + } + peg$silentFails--; + if (s3 === peg$FAILED) { + s2 = void 0; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseVerbatimText(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseVerbatimText(); + } + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s4 = peg$c19; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s4 !== peg$FAILED) { + s5 = peg$parseConcat(); + if (s5 === peg$FAILED) { + s5 = null; + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c51(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 123) { + s1 = peg$c15; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseEnvironment(); + if (s3 === peg$FAILED) { + s3 = peg$parseBlock(); + if (s3 === peg$FAILED) { + s3 = peg$parseMath(); + if (s3 === peg$FAILED) { + s3 = peg$parseCommand(); + if (s3 === peg$FAILED) { + s3 = peg$parseText(); + } + } + } + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseEnvironment(); + if (s3 === peg$FAILED) { + s3 = peg$parseBlock(); + if (s3 === peg$FAILED) { + s3 = peg$parseMath(); + if (s3 === peg$FAILED) { + s3 = peg$parseCommand(); + if (s3 === peg$FAILED) { + s3 = peg$parseText(); + } + } + } + } + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s3 = peg$c19; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parseConcat(); + if (s4 === peg$FAILED) { + s4 = null; + } + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c56(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseStringReference(); + if (s1 !== peg$FAILED) { + s2 = peg$parseConcat(); + if (s2 === peg$FAILED) { + s2 = null; + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c56(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + } + + return s0; + } + + function peg$parseStringValue() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = peg$parseStringReference(); + if (s1 !== peg$FAILED) { + s2 = peg$parseConcat(); + if (s2 === peg$FAILED) { + s2 = null; + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c56(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseText() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = []; + if (peg$c61.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c62); } + } + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + if (peg$c61.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c62); } + } + } + } else { + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c63(s1); + } + s0 = s1; + + return s0; + } + + function peg$parseTextNoQuotes() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = []; + if (peg$c64.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c65); } + } + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + if (peg$c64.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c65); } + } + } + } else { + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c63(s1); + } + s0 = s1; + + return s0; + } + + function peg$parseNumber() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + s1 = peg$currPos; + s2 = []; + if (peg$c66.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c67); } + } + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + if (peg$c66.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c67); } + } + } + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s1 = input.substring(s1, peg$currPos); + } else { + s1 = s2; + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c68(s1); + } + s0 = s1; + + return s0; + } + + function peg$parseStringReference() { + var s0, s1; + + s0 = peg$currPos; + s1 = peg$parseVariableName(); + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c69(s1); + } + s0 = s1; + + return s0; + } + + function peg$parseEnvironment() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 7) === peg$c70) { + s1 = peg$c70; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c71); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + s3 = []; + if (peg$c72.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c73); } + } + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + if (peg$c72.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c73); } + } + } + } else { + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s2 = input.substring(s2, peg$currPos); + } else { + s2 = s3; + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s3 = peg$c19; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parseEnvironment(); + if (s5 === peg$FAILED) { + s5 = peg$parseBlock(); + if (s5 === peg$FAILED) { + s5 = peg$parseCommand(); + if (s5 === peg$FAILED) { + s5 = peg$parseMath(); + if (s5 === peg$FAILED) { + s5 = peg$parseText(); + } + } + } + } + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parseEnvironment(); + if (s5 === peg$FAILED) { + s5 = peg$parseBlock(); + if (s5 === peg$FAILED) { + s5 = peg$parseCommand(); + if (s5 === peg$FAILED) { + s5 = peg$parseMath(); + if (s5 === peg$FAILED) { + s5 = peg$parseText(); + } + } + } + } + } + if (s4 !== peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c74) { + s5 = peg$c74; + peg$currPos += 5; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c75); } + } + if (s5 !== peg$FAILED) { + s6 = peg$currPos; + s7 = []; + if (peg$c72.test(input.charAt(peg$currPos))) { + s8 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s8 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c73); } + } + if (s8 !== peg$FAILED) { + while (s8 !== peg$FAILED) { + s7.push(s8); + if (peg$c72.test(input.charAt(peg$currPos))) { + s8 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s8 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c73); } + } + } + } else { + s7 = peg$FAILED; + } + if (s7 !== peg$FAILED) { + s6 = input.substring(s6, peg$currPos); + } else { + s6 = s7; + } + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s7 = peg$c19; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s7 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s8 = peg$c76(s2, s4, s6); + if (s8) { + s8 = void 0; + } else { + s8 = peg$FAILED; + } + if (s8 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c77(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseBlock() { + var s0, s1, s2, s3, s4, s5, s6; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c78) { + s1 = peg$c78; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c79); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseExtendedDiacritic(); + if (s2 !== peg$FAILED) { + s3 = peg$parse__(); + if (s3 !== peg$FAILED) { + if (peg$c72.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c73); } + } + if (s4 === peg$FAILED) { + s4 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s5 = peg$c80; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s5 !== peg$FAILED) { + if (peg$c82.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c83); } + } + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s5 = peg$c19; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c84(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 6) === peg$c57) { + s1 = peg$c57; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c58); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + peg$silentFails++; + if (peg$c59.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c60); } + } + peg$silentFails--; + if (s3 === peg$FAILED) { + s2 = void 0; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseVerbatimText(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseVerbatimText(); + } + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s4 = peg$c19; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c85(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 123) { + s1 = peg$c15; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseEnvironment(); + if (s3 === peg$FAILED) { + s3 = peg$parseBlock(); + if (s3 === peg$FAILED) { + s3 = peg$parseCommand(); + if (s3 === peg$FAILED) { + s3 = peg$parseMath(); + if (s3 === peg$FAILED) { + s3 = peg$parseText(); + } + } + } + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseEnvironment(); + if (s3 === peg$FAILED) { + s3 = peg$parseBlock(); + if (s3 === peg$FAILED) { + s3 = peg$parseCommand(); + if (s3 === peg$FAILED) { + s3 = peg$parseMath(); + if (s3 === peg$FAILED) { + s3 = peg$parseText(); + } + } + } + } + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s3 = peg$c19; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c86(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + + return s0; + } + + function peg$parseMath() { + var s0, s1, s2, s3, s4, s5, s6; + + s0 = peg$currPos; + peg$savedPos = peg$currPos; + s1 = peg$c87(); + if (s1) { + s1 = void 0; + } else { + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 36) { + s2 = peg$c88; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c89); } + } + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 2) === peg$c90) { + s2 = peg$c90; + peg$currPos += 2; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c91); } + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s3 = peg$c92(); + if (s3) { + s3 = void 0; + } else { + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parseBlock(); + if (s5 === peg$FAILED) { + s5 = peg$parseCommand(); + if (s5 === peg$FAILED) { + s5 = peg$parseText(); + } + } + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parseBlock(); + if (s5 === peg$FAILED) { + s5 = peg$parseCommand(); + if (s5 === peg$FAILED) { + s5 = peg$parseText(); + } + } + } + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 36) { + s5 = peg$c88; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c89); } + } + if (s5 === peg$FAILED) { + if (input.substr(peg$currPos, 2) === peg$c90) { + s5 = peg$c90; + peg$currPos += 2; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c91); } + } + } + if (s5 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s6 = peg$c93(); + if (s6) { + s6 = void 0; + } else { + s6 = peg$FAILED; + } + if (s6 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c94(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseLineComment() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 37) { + s1 = peg$c95; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c96); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__h(); + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + s4 = []; + if (peg$c97.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c98); } + } + if (s5 !== peg$FAILED) { + while (s5 !== peg$FAILED) { + s4.push(s5); + if (peg$c97.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c98); } + } + } + } else { + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s3 = input.substring(s3, peg$currPos); + } else { + s3 = s4; + } + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parseEOL(); + if (s5 !== peg$FAILED) { + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parseEOL(); + } + } else { + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c99(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseCommand() { + var s0; + + s0 = peg$parseScriptCommand(); + if (s0 === peg$FAILED) { + s0 = peg$parseDiacriticCommand(); + if (s0 === peg$FAILED) { + s0 = peg$parseRegularCommand(); + if (s0 === peg$FAILED) { + s0 = peg$parseSymbolCommand(); + } + } + } + + return s0; + } + + function peg$parseScriptCommand() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + if (peg$c100.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c101); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__h(); + if (s2 !== peg$FAILED) { + s3 = peg$parseRequiredArgument(); + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c102(s1, s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseDiacriticCommand() { + var s0, s1, s2, s3, s4, s5, s6; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseSimpleDiacritic(); + if (s2 !== peg$FAILED) { + s3 = peg$parse__(); + if (s3 !== peg$FAILED) { + if (peg$c72.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c73); } + } + if (s4 === peg$FAILED) { + s4 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s5 = peg$c80; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s5 !== peg$FAILED) { + if (peg$c82.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c83); } + } + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c84(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseExtendedDiacritic(); + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 123) { + s3 = peg$c15; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s3 !== peg$FAILED) { + if (peg$c72.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c73); } + } + if (s4 === peg$FAILED) { + s4 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s5 = peg$c80; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s5 !== peg$FAILED) { + if (peg$c82.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c83); } + } + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s5 = peg$c19; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c84(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseExtendedDiacritic(); + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + peg$silentFails++; + if (input.charCodeAt(peg$currPos) === 123) { + s4 = peg$c15; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + peg$silentFails--; + if (s4 !== peg$FAILED) { + peg$currPos = s3; + s3 = void 0; + } else { + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$parseRegularValue(); + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c103(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + + return s0; + } + + function peg$parseSymbolCommand() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + if (peg$c104.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c105); } + } + if (s3 !== peg$FAILED) { + s2 = input.substring(s2, peg$currPos); + } else { + s2 = s3; + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c106(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseRegularCommand() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c107) { + s2 = peg$c107; + peg$currPos += 10; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c108); } + } + if (s2 !== peg$FAILED) { + s3 = peg$parseBlock(); + if (s3 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s4 = peg$c109(s2, s3); + if (s4) { + s4 = void 0; + } else { + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = []; + s6 = peg$parseOptionalArgument(); + while (s6 !== peg$FAILED) { + s5.push(s6); + s6 = peg$parseOptionalArgument(); + } + if (s5 !== peg$FAILED) { + s6 = peg$parseRequiredArgument(); + if (s6 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c110(s2, s3, s5, s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 5) === peg$c111) { + s3 = peg$c111; + peg$currPos += 5; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c112); } + } + peg$silentFails--; + if (s3 === peg$FAILED) { + s2 = void 0; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 3) === peg$c113) { + s4 = peg$c113; + peg$currPos += 3; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c114); } + } + peg$silentFails--; + if (s4 === peg$FAILED) { + s3 = void 0; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$currPos; + s5 = []; + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + if (s6 !== peg$FAILED) { + while (s6 !== peg$FAILED) { + s5.push(s6); + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + } + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s4 = input.substring(s4, peg$currPos); + } else { + s4 = s5; + } + if (s4 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s5 = peg$c115(s4); + if (s5) { + s5 = void 0; + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parseOptionalArgument(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parseOptionalArgument(); + } + if (s6 !== peg$FAILED) { + s7 = peg$parse__h(); + if (s7 !== peg$FAILED) { + s8 = peg$currPos; + peg$silentFails++; + if (input.charCodeAt(peg$currPos) === 123) { + s9 = peg$c15; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + peg$silentFails--; + if (s9 !== peg$FAILED) { + peg$currPos = s8; + s8 = void 0; + } else { + s8 = peg$FAILED; + } + if (s8 !== peg$FAILED) { + s9 = peg$parseVerbatimFieldValue(); + if (s9 !== peg$FAILED) { + s10 = peg$parseVerbatimFieldValue(); + if (s10 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c116(s4, s6, s9, s10); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 5) === peg$c111) { + s3 = peg$c111; + peg$currPos += 5; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c112); } + } + peg$silentFails--; + if (s3 === peg$FAILED) { + s2 = void 0; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 3) === peg$c113) { + s4 = peg$c113; + peg$currPos += 3; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c114); } + } + peg$silentFails--; + if (s4 === peg$FAILED) { + s3 = void 0; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$currPos; + s5 = []; + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + if (s6 !== peg$FAILED) { + while (s6 !== peg$FAILED) { + s5.push(s6); + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + } + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s4 = input.substring(s4, peg$currPos); + } else { + s4 = s5; + } + if (s4 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s5 = peg$c117(s4); + if (s5) { + s5 = void 0; + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parseOptionalArgument(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parseOptionalArgument(); + } + if (s6 !== peg$FAILED) { + s7 = peg$parse__h(); + if (s7 !== peg$FAILED) { + s8 = peg$currPos; + peg$silentFails++; + if (input.charCodeAt(peg$currPos) === 123) { + s9 = peg$c15; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + peg$silentFails--; + if (s9 !== peg$FAILED) { + peg$currPos = s8; + s8 = void 0; + } else { + s8 = peg$FAILED; + } + if (s8 !== peg$FAILED) { + s9 = peg$parseVerbatimFieldValue(); + if (s9 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c118(s4, s6, s9); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 5) === peg$c111) { + s3 = peg$c111; + peg$currPos += 5; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c112); } + } + peg$silentFails--; + if (s3 === peg$FAILED) { + s2 = void 0; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 3) === peg$c113) { + s4 = peg$c113; + peg$currPos += 3; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c114); } + } + peg$silentFails--; + if (s4 === peg$FAILED) { + s3 = void 0; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$currPos; + s5 = []; + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + if (s6 !== peg$FAILED) { + while (s6 !== peg$FAILED) { + s5.push(s6); + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + } + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s4 = input.substring(s4, peg$currPos); + } else { + s4 = s5; + } + if (s4 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s5 = peg$c119(s4); + if (s5) { + s5 = void 0; + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parseOptionalArgument(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parseOptionalArgument(); + } + if (s6 !== peg$FAILED) { + s7 = peg$parse__h(); + if (s7 !== peg$FAILED) { + s8 = peg$parseRequiredArgument(); + if (s8 !== peg$FAILED) { + s9 = peg$parseRequiredArgument(); + if (s9 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c120(s4, s6, s8, s9); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 5) === peg$c111) { + s3 = peg$c111; + peg$currPos += 5; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c112); } + } + peg$silentFails--; + if (s3 === peg$FAILED) { + s2 = void 0; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 3) === peg$c113) { + s4 = peg$c113; + peg$currPos += 3; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c114); } + } + peg$silentFails--; + if (s4 === peg$FAILED) { + s3 = void 0; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$currPos; + s5 = []; + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + if (s6 !== peg$FAILED) { + while (s6 !== peg$FAILED) { + s5.push(s6); + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + } + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s4 = input.substring(s4, peg$currPos); + } else { + s4 = s5; + } + if (s4 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s5 = peg$c121(s4); + if (s5) { + s5 = void 0; + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parseOptionalArgument(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parseOptionalArgument(); + } + if (s6 !== peg$FAILED) { + s7 = peg$parse__h(); + if (s7 !== peg$FAILED) { + s8 = peg$parseRequiredArgument(); + if (s8 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c122(s4, s6, s8); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 5) === peg$c111) { + s3 = peg$c111; + peg$currPos += 5; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c112); } + } + peg$silentFails--; + if (s3 === peg$FAILED) { + s2 = void 0; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 3) === peg$c113) { + s4 = peg$c113; + peg$currPos += 3; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c114); } + } + peg$silentFails--; + if (s4 === peg$FAILED) { + s3 = void 0; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$currPos; + s5 = []; + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + if (s6 !== peg$FAILED) { + while (s6 !== peg$FAILED) { + s5.push(s6); + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + } + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s4 = input.substring(s4, peg$currPos); + } else { + s4 = s5; + } + if (s4 !== peg$FAILED) { + s5 = []; + s6 = peg$parseOptionalArgument(); + while (s6 !== peg$FAILED) { + s5.push(s6); + s6 = peg$parseOptionalArgument(); + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c123(s4, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + } + } + } + + return s0; + } + + function peg$parseOptionalArgument() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c124; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c125); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__h(); + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + s4 = []; + if (peg$c126.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c127); } + } + if (s5 !== peg$FAILED) { + while (s5 !== peg$FAILED) { + s4.push(s5); + if (peg$c126.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c127); } + } + } + } else { + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s3 = input.substring(s3, peg$currPos); + } else { + s3 = s4; + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__h(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s5 = peg$c128; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c129); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c130(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseRequiredArgument() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = peg$parse__h(); + if (s1 !== peg$FAILED) { + if (peg$c131.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c132); } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c133(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseBlock(); + if (s1 === peg$FAILED) { + s1 = peg$parseCommand(); + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c52(s1); + } + s0 = s1; + } + + return s0; + } + + function peg$parseVariableName() { + var s0, s1, s2, s3, s4; + + s0 = peg$currPos; + s1 = peg$currPos; + if (peg$c134.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c135); } + } + if (s2 !== peg$FAILED) { + s3 = []; + if (peg$c136.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c137); } + } + while (s4 !== peg$FAILED) { + s3.push(s4); + if (peg$c136.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c137); } + } + } + if (s3 !== peg$FAILED) { + s2 = [s2, s3]; + s1 = s2; + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + s0 = input.substring(s0, peg$currPos); + } else { + s0 = s1; + } + + return s0; + } + + function peg$parseSimpleDiacritic() { + var s0; + + if (peg$c138.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c139); } + } + + return s0; + } + + function peg$parseExtendedDiacritic() { + var s0; + + if (peg$c140.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c141); } + } + + return s0; + } + + function peg$parseFieldSeparator() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + s1 = peg$parse__(); + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s2 = peg$c142; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c143); } + } + if (s2 !== peg$FAILED) { + s3 = peg$parse__(); + if (s3 !== peg$FAILED) { + s1 = [s1, s2, s3]; + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseFieldTerminator() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + s1 = peg$parse__(); + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s2 = peg$c37; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c38); } + } + if (s2 === peg$FAILED) { + s2 = null; + } + if (s2 !== peg$FAILED) { + s3 = peg$parse__h(); + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parseLineComment(); + if (s5 === peg$FAILED) { + s5 = peg$parseEOL(); + } + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parseLineComment(); + if (s5 === peg$FAILED) { + s5 = peg$parseEOL(); + } + } + if (s4 !== peg$FAILED) { + s1 = [s1, s2, s3, s4]; + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseConcat() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + s1 = peg$parse__(); + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 35) { + s2 = peg$c144; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c145); } + } + if (s2 !== peg$FAILED) { + s3 = peg$parse__(); + if (s3 !== peg$FAILED) { + s1 = [s1, s2, s3]; + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseEOL() { + var s0; + + if (peg$c146.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c147); } + } + + return s0; + } + + function peg$parse__h() { + var s0, s1; + + peg$silentFails++; + s0 = []; + if (peg$c149.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c150); } + } + while (s1 !== peg$FAILED) { + s0.push(s1); + if (peg$c149.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c150); } + } + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c151); } + } + + return s0; + } + + function peg$parse__() { + var s0, s1; + + peg$silentFails++; + s0 = []; + if (peg$c155.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c156); } + } + while (s1 !== peg$FAILED) { + s0.push(s1); + if (peg$c155.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c156); } + } + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c157); } + } + + return s0; + } + + + /* + MIT License + + Copyright (c) 2017 Derek P Sifford, parts copyright (c) 2019 by Emiliano Heyns + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + */ + + const markup = { + sl: 'italics', + em: 'italics', + it: 'italics', + itshape: 'italics', + + bf: 'bold', + bfseries: 'bold', + + sc: 'smallCaps', + scshape: 'smallCaps', + + tt: 'fixedWidth', + rm: 'roman', + sf: 'sansSerif', + verb: 'verbatim', + }; + + const unnestFields = (options.unnestFields || []).map(field => field.toLowerCase()); + const verbatimFields = (options.verbatimFields || [ 'urlraw', 'url', 'doi', 'file', 'files', 'eprint', 'verba', 'verbb', 'verbc' ]).map(field => typeof field === 'string' ? field.toLowerCase() : field); + const verbatimCommands = (options.verbatimCommands || ['texttt', 'url', 'href']); + + function isVerbatimField(name) { + return verbatimFields.find(p => (typeof p === 'string') ? name === p : name.match(p)) + } + + function normalizeWhitespace(textArr) { + return textArr.reduce((prev, curr) => { + if (/\s/.test(curr)) { + if (/\s/.test(prev[prev.length - 1])) { + return prev; + } else { + return prev + ' '; + } + } + return prev + curr; + }, ''); + } + + const has_arguments = { + ElsevierGlyph: 1, + end: 1, + begin: 1, + bibcyr: 1, + bibstring: 1, + chsf: 1, + cite: 1, + cyrchar: 1, + ding: 1, + emph: 1, + enquote: 1, + frac: 2, + href: 2, + hspace: 1, + mathrm: 1, + mbox: 1, + mkbibbold: 1, + mkbibemph: 1, + mkbibitalic: 1, + mkbibquote: 1, + newcommand: 2, + noopsort: 1, + ocirc: 1, + section: 1, + sb: 1, + sp: 1, + subsection: 1, + subsubsection: 1, + subsubsubsection: 1, + t: 1, + textbf: 1, + textit: 1, + textrm: 1, + textsc: 1, + textsubscript: 1, + textsuperscript: 1, + texttt: 1, + url: 1, + vphantom: 1, + vspace: 1, + }; + + if (options.combiningDiacritics) { + for (const cmd of options.combiningDiacritics) { + has_arguments[cmd] = 1; + } + } + + const math = { + on: false, + + set: function(state) { + this.on = state; + return true + } + }; + + function basicTextConversions(node) { + if (node.kind !== 'Text') throw new Error(node.kind + ' is not a Text node') + + switch (node.mode) { + case 'verbatim': + break + + case 'math': + node.value = node.value.replace(/~/g, '\u00A0'); + break + + case 'text': + node.value = node.value + .replace(/---/g, '\u2014') + .replace(/--/g, '\u2013') + .replace(//g, '\u00BF') + .replace(/~/g, '\u00A0') + .replace(/``/g, options.markup.enquote.open) + .replace(/''/g, options.markup.enquote.close); + break + + default: + throw new Error(`Unexpected text mode ${node.mode}`) + } + + return node + } + + function protect(v) { + let source; + if (Array.isArray(v)) { + source = v.map(e => e.source).join(''); + } else { + v = [ v ]; + source = v.source; + } + + return { + kind: 'Block', + value: v, + markup: {}, + case: 'protect', + source: source, + } + } + + function handle_markup_switches(block) { + const value = block.value; + if (!Array.isArray(value)) return block + + block.value = []; + + const pseudo = { + block: null, + markup: {}, + }; + function pseudo_block() { + pseudo.block = { + kind: 'Block', + loc: location(), + source: '', + value: [], + markup: JSON.parse(JSON.stringify(pseudo.markup)), + pseudo: true, + }; + block.value.push(pseudo.block); + } + for (const node of value) { + if (node.kind === 'Environment' || node.kind === 'Block') { + block.value.push(node); + + if (Object.keys(pseudo.markup).length) { + pseudo_block(); + } else { + pseudo.block = null; + } + continue + } + + if (node.kind === 'RegularCommand' && markup[node.command]) { + if (pseudo.markup.italics) { // https://github.com/citation-js/bibtex-parser-experiments/commit/cae475f075a05d1c074485a061b08ed245170c7e + delete pseudo.markup.italics; + if (markup[node.command] !== 'italics') pseudo.markup[markup[node.command]] = true; + } else { + pseudo.markup[markup[node.command]] = true; + } + + if (Object.keys(pseudo.markup).length) { + pseudo_block(); + } else { + pseudo.block = null; + } + } + + if (pseudo.block) { + pseudo.block.source += node.source; + pseudo.block.value.push(node); + + } else { + block.value.push(node); + + } + } + + block.value = block.value.filter(node => !(node.pseudo && node.value.length === 0)); + + return block + } + + + peg$result = peg$startRuleFunction(); + + if (peg$result !== peg$FAILED && peg$currPos === input.length) { + return peg$result; + } else { + if (peg$result !== peg$FAILED && peg$currPos < input.length) { + peg$fail(peg$endExpectation()); + } + + throw peg$buildStructuredError( + peg$maxFailExpected, + peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, + peg$maxFailPos < input.length + ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) + : peg$computeLocation(peg$maxFailPos, peg$maxFailPos) + ); + } +} + +var grammar = { + SyntaxError: peg$SyntaxError, + parse: peg$parse +}; + +var chunker = createCommonjsModule(function (module, exports) { +// Original work by Henrik Muehe (c) 2010 +// +// CommonJS port by Mikola Lysenko 2013 +// +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parse = void 0; +class ParseError extends Error { + constructor(message, parser) { + message += ` @ ${parser.pos}`; + if (parser.parsing) + message += ` in ${JSON.stringify(parser.parsing)}`; + super(message); + this.name = 'ParseError'; + } +} +// tslint:disable-next-line prefer-template +const letter = new RegExp('[' + [ + // Letter, Uppercase + /\u0041-\u005A\u00C0-\u00D6\u00D8-\u00DE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AD\uA7B0-\uA7B4\uA7B6\uFF21-\uFF3A/.source, + // Letter, Titlecase + /\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC/.source, + // Letter, Lowercase + /\u0061-\u007A\u00B5\u00DF-\u00F6\u00F8-\u00FF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A/.source, + // Letter, Modifier + /\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F/.source, + // Letter, Other + /\u00AA\u00BA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05F0-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10D0-\u10FA\u10FD-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source, +].join('') + ']'); +class BibtexParser { + parse(input, options = {}) { + // this._progress = 0 + this.pos = 0; + this.input = input; + this.max_entries = options.max_entries || 0; + this.entries = 0; + this.parsing = null; + this.chunks = []; + if (options.async) { + return this.bibtexAsync().then(() => this.chunks); + } + else { + this.bibtex(); + return this.chunks; + } + } + isWhitespace(s, horizontalOnly = false) { + return (s === ' ' || s === '\t' || (!horizontalOnly && (s === '\r' || s === '\n'))); + } + match(s) { + this.skipWhitespace(); + if (this.input.substr(this.pos, s.length) !== s) { + throw new ParseError(`Token mismatch, expected ${JSON.stringify(s)}, found ${JSON.stringify(this.input.substr(this.pos, 20))}...`, this); // tslint:disable-line no-magic-numbers + } + this.pos += s.length; + this.skipWhitespace(); + } + tryMatch(s) { + this.skipWhitespace(); + return (this.input.substr(this.pos, s.length) === s); + // this.skipWhitespace() + } + skipWhitespace() { + while (this.pos < this.input.length && this.isWhitespace(this.input[this.pos])) + this.pos++; + // shady + if (this.input[this.pos] === '%') { + while (this.pos < this.input.length && this.input[this.pos] !== '\n') + this.pos++; + while (this.pos < this.input.length && this.isWhitespace(this.input[this.pos])) + this.pos++; + } + } + value_braces() { + let bracecount = 0; + this.match('{'); + const start = this.pos; + let math = false; + while (true) { + switch (this.input[this.pos]) { + case '\\': + this.pos += 1; + break; + case '{': + bracecount++; + break; + case '}': + if (bracecount === 0) { + if (math) + throw new ParseError('Unclosed math section', this); + this.pos++; + return this.input.substring(start, this.pos - 1); + } + bracecount--; + break; + case '$': + math = !math; + break; + } + this.pos++; + if (this.pos >= this.input.length) { + throw new ParseError(`Unterminated brace-value ${JSON.stringify(this.input.substr(start, 20))}`, this); // tslint:disable-line no-magic-numbers + } + } + } + value_quotes() { + this.match('"'); + const start = this.pos; + let bracecount = 0; + while (true) { + switch (this.input[this.pos]) { + case '\\': + this.pos += 1; + break; + case '{': + bracecount++; + break; + case '}': + bracecount--; + break; + case '"': + if (bracecount <= 0) { + this.pos++; + return this.input.substring(start, this.pos - 1); + } + } + this.pos++; + if (this.pos >= this.input.length) { + throw new ParseError(`Unterminated quote-value ${JSON.stringify(this.input.substr(start, 20))}`, this); // tslint:disable-line no-magic-numbers + } + } + } + single_value() { + if (this.tryMatch('{')) { + return this.value_braces(); + } + else if (this.tryMatch('"')) { + return this.value_quotes(); + } + else { + return this.key(); + } + } + value() { + const values = []; + values.push(this.single_value()); + while (this.tryMatch('#')) { + this.match('#'); + values.push(this.single_value()); + } + return values.join(''); + } + key(allowUnicode = false) { + const start = this.pos; + while (true) { + if (this.pos === this.input.length) { + throw new ParseError('Runaway key', this); + } + if (this.input[this.pos].match(/['a-zA-Z0-9&;_:\\./-]/)) { + this.pos++; + } + else if (allowUnicode && this.input[this.pos].match(letter)) { + this.pos++; + } + else { + return this.input.substring(start, this.pos); + } + } + } + key_equals_value() { + const key = this.key(); + if (!this.tryMatch('=')) { + throw new ParseError(`... = value expected, equals sign missing: ${JSON.stringify(this.input.substr(this.pos, 20))}...`, this); // tslint:disable-line no-magic-numbers + } + this.match('='); + const val = this.value(); + return [key, val]; + } + key_value_list() { + this.key_equals_value(); + while (this.tryMatch(',')) { + this.match(','); + // fixes problems with commas at the end of a list + if (this.tryMatch('}')) { + break; + } + this.key_equals_value(); + } + } + entry(d) { + this.parsing = this.key(true); + this.match(','); + this.key_value_list(); + } + directive() { + this.match('@'); + return `@${this.key()}`.toLowerCase(); + } + string() { + this.key_equals_value(); + } + preamble() { + this.value(); + } + comment() { + while (this.isWhitespace(this.input[this.pos], true)) + this.pos++; + if (this.input[this.pos] === '{') { + this.value_braces(); + return; + } + while (this.input[this.pos] !== '\n' && this.pos < this.input.length) + this.pos++; + } + /* + private progress() { + const progress = Math.round((this.pos / this.input.length * 100) / 5) * 5 // tslint:disable-line no-magic-numbers + if (this._progress !== progress) { + this._progress = progress + process.stdout.write(` (${this._progress}%) `) + } + } + */ + hasMore() { + if (this.max_entries && this.entries >= this.max_entries) + return false; + return (this.pos < this.input.length); + } + bibtex() { + while (this.hasMore()) { + this.parseNext(); + } + } + bibtexAsync() { + return this.hasMore() ? (new Promise(resolve => resolve(this.parseNext()))).then(() => this.bibtexAsync()) : Promise.resolve(null); + } + parseNext() { + // this.progress() + const chunk = { + offset: { + pos: this.pos, + line: this.input.substring(0, this.pos).split('\n').length - 1, + }, + error: null, + text: null, + }; + this.skipWhitespace(); + if (this.pos >= this.input.length) + return; + let guard = ''; + try { + const d = this.directive(); + switch (d) { + case '@string': + this.match('{'); + this.string(); + this.match('}'); + chunk.stringDeclaration = true; + break; + case '@preamble': + this.match('{'); + this.preamble(); + this.match('}'); + chunk.preamble = true; + break; + case '@comment': + this.comment(); + chunk.comment = true; + break; + default: + if (this.tryMatch('{')) { + guard = '{}'; + } + else if (this.tryMatch('(')) { + guard = '()'; + } + else { + throw new ParseError(`Token mismatch, expected '{' or '(', found ${JSON.stringify(this.input.substr(this.pos, 20))}...`, this); // tslint:disable-line no-magic-numbers + } + this.match(guard[0]); + this.entry(d); + this.match(guard[1]); + chunk.entry = true; + this.entries++; + break; + } + } + catch (err) { + if (err.name !== 'ParseError') + throw err; + chunk.error = err.message, + // skip ahead to the next @ and try again + this.pos = chunk.offset.pos + 1; + while (this.pos < this.input.length && this.input[this.pos] !== '@') + this.pos++; + } + const text = this.input.substring(chunk.offset.pos, this.pos); + const last = this.chunks.length - 1; + if (chunk.error && this.chunks.length && this.chunks[last].error) { + this.chunks[last].text += text; + } + else { + chunk.text = text; + this.chunks.push(chunk); + } + } +} +/** + * Reads the bibtex input and splits it into separate chunks of `@string`s, `@comment`s, and bibtex entries. Useful for detecting if a file is bibtex file and for filtering out basic errors that would + * make the more sophisticated [[bibtex.parse]] reject the whole file + * + * @returns array of chunks, with markers for type and errors (if any) found. + */ +function parse(input, options = {}) { + return (new BibtexParser).parse(input, options); +} +exports.parse = parse; + +}); + +var $ = { + math: "\\$", + text: "\\$" +}; +var _ = { + math: "\\_", + text: "\\_" +}; +var require$$0$1 = { + "#": { + math: "\\#", + text: "\\#" +}, + $: $, + "%": { + math: "\\%", + text: "\\%" +}, + "&": { + math: "\\&", + text: "\\&" +}, + "/​": { + text: "\\slash", + commandspacer: true +}, + "<": { + math: "<" +}, + ">": { + math: ">" +}, + "\\": { + math: "\\backslash", + text: "\\textbackslash", + commandspacer: true +}, + "^": { + math: "\\sphat", + text: "\\^" +}, + _: _, + "i︠a︡": { + text: "\\t{ia}" +}, + "{": { + math: "\\lbrace", + text: "\\{" +}, + "}": { + math: "\\rbrace", + text: "\\}" +}, + "~": { + math: "\\sptilde", + text: "\\textasciitilde", + commandspacer: true +}, + " ": { + math: "~", + space: true, + text: "~" +}, + "¡": { + text: "\\textexclamdown", + commandspacer: true +}, + "¢": { + math: "\\cent", + text: "\\textcent", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "£": { + math: "\\pounds", + text: "\\textsterling", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "¤": { + text: "\\textcurrency", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "¥": { + math: "\\yen", + text: "\\textyen", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "¦": { + text: "\\textbrokenbar", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "§": { + text: "\\textsection", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "¨": { + math: "\\spddot", + text: "\\textasciidieresis", + commandspacer: true +}, + "©": { + text: "\\textcopyright", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "ª": { + text: "\\textordfeminine", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "«": { + text: "\\guillemotleft", + commandspacer: true +}, + "¬": { + math: "\\lnot" +}, + "­": { + math: "\\-", + text: "\\-" +}, + "®": { + math: "\\circledR", + text: "\\textregistered", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "¯": { + text: "\\textasciimacron", + commandspacer: true +}, + "°": { + math: "^\\circ", + text: "\\textdegree", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "±": { + math: "\\pm" +}, + "²": { + math: "^{2}" +}, + "³": { + math: "^{3}" +}, + "´": { + text: "\\textasciiacute", + commandspacer: true +}, + "µ": { + text: "\\textmu", + commandspacer: true +}, + "¶": { + text: "\\textparagraph", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "·": { + math: "\\cdot" +}, + "¸": { + text: "\\c", + commandspacer: true +}, + "¹": { + math: "^{1}" +}, + "º": { + text: "\\textordmasculine", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "»": { + text: "\\guillemotright", + commandspacer: true +}, + "¼": { + math: "\\frac{1}{4}" +}, + "½": { + math: "\\frac{1}{2}" +}, + "¾": { + math: "\\frac{3}{4}" +}, + "¿": { + text: "\\textquestiondown", + commandspacer: true +}, + "À": { + text: "\\`A" +}, + "Á": { + text: "\\'A" +}, + "Â": { + text: "\\^A" +}, + "Ã": { + text: "\\~A" +}, + "Ä": { + text: "\\\"A" +}, + "Å": { + text: "\\AA", + commandspacer: true +}, + "Æ": { + text: "\\AE", + commandspacer: true +}, + "Ç": { + text: "\\c{C}" +}, + "È": { + text: "\\`E" +}, + "É": { + text: "\\'E" +}, + "Ê": { + text: "\\^E" +}, + "Ë": { + text: "\\\"E" +}, + "Ì": { + text: "\\`I" +}, + "Í": { + text: "\\'I" +}, + "Î": { + text: "\\^I" +}, + "Ï": { + text: "\\\"I" +}, + "Ð": { + text: "\\DH", + commandspacer: true +}, + "Ñ": { + text: "\\~N" +}, + "Ò": { + text: "\\`O" +}, + "Ó": { + text: "\\'O" +}, + "Ô": { + text: "\\^O" +}, + "Õ": { + text: "\\~O" +}, + "Ö": { + text: "\\\"O" +}, + "×": { + math: "\\times", + text: "\\texttimes", + commandspacer: true +}, + "Ø": { + text: "\\O", + commandspacer: true +}, + "Ù": { + text: "\\`U" +}, + "Ú": { + text: "\\'U" +}, + "Û": { + text: "\\^U" +}, + "Ü": { + text: "\\\"U" +}, + "Ý": { + text: "\\'Y" +}, + "Þ": { + text: "\\TH", + commandspacer: true +}, + "ß": { + text: "\\ss", + commandspacer: true +}, + "à": { + text: "\\`a" +}, + "á": { + text: "\\'a" +}, + "â": { + text: "\\^a" +}, + "ã": { + text: "\\~a" +}, + "ä": { + text: "\\\"a" +}, + "å": { + text: "\\aa", + commandspacer: true +}, + "æ": { + text: "\\ae", + commandspacer: true +}, + "ç": { + text: "\\c{c}" +}, + "è": { + text: "\\`e" +}, + "é": { + text: "\\'e" +}, + "ê": { + text: "\\^e" +}, + "ë": { + text: "\\\"e" +}, + "ì": { + text: "\\`i" +}, + "í": { + text: "\\'i" +}, + "î": { + text: "\\^i" +}, + "ï": { + text: "\\\"i" +}, + "ð": { + math: "\\eth", + mathpackages: [ + "amssymb", + "arevmath" + ], + text: "\\dh", + commandspacer: true +}, + "ñ": { + text: "\\~n" +}, + "ò": { + text: "\\`o" +}, + "ó": { + text: "\\'o" +}, + "ô": { + text: "\\^o" +}, + "õ": { + text: "\\~o" +}, + "ö": { + text: "\\\"o" +}, + "÷": { + math: "\\div" +}, + "ø": { + text: "\\o", + commandspacer: true +}, + "ù": { + text: "\\`u" +}, + "ú": { + text: "\\'u" +}, + "û": { + text: "\\^u" +}, + "ü": { + text: "\\\"u" +}, + "ý": { + text: "\\'y" +}, + "þ": { + text: "\\th", + commandspacer: true +}, + "ÿ": { + text: "\\\"y" +}, + "Ā": { + text: "\\=A" +}, + "ā": { + text: "\\=a" +}, + "Ă": { + text: "\\u{A}" +}, + "ă": { + text: "\\u{a}" +}, + "Ą": { + text: "\\k{A}" +}, + "ą": { + text: "\\k{a}" +}, + "Ć": { + text: "\\'C" +}, + "ć": { + text: "\\'c" +}, + "Ĉ": { + text: "\\^C" +}, + "ĉ": { + text: "\\^c" +}, + "Ċ": { + text: "\\.C" +}, + "ċ": { + text: "\\.c" +}, + "Č": { + text: "\\v{C}" +}, + "č": { + text: "\\v{c}" +}, + "Ď": { + text: "\\v{D}" +}, + "ď": { + text: "\\v{d}" +}, + "Đ": { + text: "\\DJ", + commandspacer: true +}, + "đ": { + text: "\\dj", + commandspacer: true +}, + "Ē": { + text: "\\=E" +}, + "ē": { + text: "\\=e" +}, + "Ĕ": { + text: "\\u{E}" +}, + "ĕ": { + text: "\\u{e}" +}, + "Ė": { + text: "\\.E" +}, + "ė": { + text: "\\.e" +}, + "Ę": { + text: "\\k{E}" +}, + "ę": { + text: "\\k{e}" +}, + "Ě": { + text: "\\v{E}" +}, + "ě": { + text: "\\v{e}" +}, + "Ĝ": { + text: "\\^G" +}, + "ĝ": { + text: "\\^g" +}, + "Ğ": { + text: "\\u{G}" +}, + "ğ": { + text: "\\u{g}" +}, + "Ġ": { + text: "\\.G" +}, + "ġ": { + text: "\\.g" +}, + "Ģ": { + text: "\\c{G}" +}, + "ģ": { + text: "\\c{g}" +}, + "Ĥ": { + text: "\\^H" +}, + "ĥ": { + text: "\\^h" +}, + "Ħ": { + text: "{\\fontencoding{LELA}\\selectfont\\char40}" +}, + "ħ": { + math: "\\Elzxh" +}, + "Ĩ": { + text: "\\~I" +}, + "ĩ": { + text: "\\~i" +}, + "Ī": { + text: "\\=I" +}, + "ī": { + text: "\\=i" +}, + "Ĭ": { + text: "\\u{I}" +}, + "ĭ": { + text: "{\\u \\i}" +}, + "Į": { + text: "\\k{I}" +}, + "į": { + text: "\\k{i}" +}, + "İ": { + text: "\\.I" +}, + "ı": { + math: "\\imath", + text: "\\i", + commandspacer: true +}, + "IJ": { + text: "IJ" +}, + "ij": { + text: "ij" +}, + "Ĵ": { + text: "\\^J" +}, + "ĵ": { + text: "\\^\\j", + commandspacer: true +}, + "Ķ": { + text: "\\c{K}" +}, + "ķ": { + text: "\\c{k}" +}, + "ĸ": { + text: "{\\fontencoding{LELA}\\selectfont\\char91}" +}, + "Ĺ": { + text: "\\'L" +}, + "ĺ": { + text: "\\'l" +}, + "Ļ": { + text: "\\c{L}" +}, + "ļ": { + text: "\\c{l}" +}, + "Ľ": { + text: "\\v{L}" +}, + "ľ": { + text: "\\v{l}" +}, + "Ŀ": { + text: "{\\fontencoding{LELA}\\selectfont\\char201}" +}, + "ŀ": { + text: "{\\fontencoding{LELA}\\selectfont\\char202}" +}, + "Ł": { + text: "\\L", + commandspacer: true +}, + "ł": { + text: "\\l", + commandspacer: true +}, + "Ń": { + text: "\\'N" +}, + "ń": { + text: "\\'n" +}, + "Ņ": { + text: "\\c{N}" +}, + "ņ": { + text: "\\c{n}" +}, + "Ň": { + text: "\\v{N}" +}, + "ň": { + text: "\\v{n}" +}, + "ʼn": { + text: "'n" +}, + "Ŋ": { + text: "\\NG", + commandspacer: true +}, + "ŋ": { + text: "\\ng", + commandspacer: true +}, + "Ō": { + text: "\\=O" +}, + "ō": { + text: "\\=o" +}, + "Ŏ": { + text: "\\u{O}" +}, + "ŏ": { + text: "\\u{o}" +}, + "Ő": { + text: "\\H{O}" +}, + "ő": { + text: "\\H{o}" +}, + "Œ": { + text: "\\OE", + commandspacer: true +}, + "œ": { + text: "\\oe", + commandspacer: true +}, + "Ŕ": { + text: "\\'R" +}, + "ŕ": { + text: "\\'r" +}, + "Ŗ": { + text: "\\c{R}" +}, + "ŗ": { + text: "\\c{r}" +}, + "Ř": { + text: "\\v{R}" +}, + "ř": { + text: "\\v{r}" +}, + "Ś": { + text: "\\'S" +}, + "ś": { + text: "\\'s" +}, + "Ŝ": { + text: "\\^S" +}, + "ŝ": { + text: "\\^s" +}, + "Ş": { + text: "\\c{S}" +}, + "ş": { + text: "\\c{s}" +}, + "Š": { + text: "\\v{S}" +}, + "š": { + text: "\\v{s}" +}, + "Ţ": { + text: "\\c{T}" +}, + "ţ": { + text: "\\c{t}" +}, + "Ť": { + text: "\\v{T}" +}, + "ť": { + text: "\\v{t}" +}, + "Ŧ": { + text: "{\\fontencoding{LELA}\\selectfont\\char47}" +}, + "ŧ": { + text: "{\\fontencoding{LELA}\\selectfont\\char63}" +}, + "Ũ": { + text: "\\~U" +}, + "ũ": { + text: "\\~u" +}, + "Ū": { + text: "\\=U" +}, + "ū": { + text: "\\=u" +}, + "Ŭ": { + text: "\\u{U}" +}, + "ŭ": { + text: "\\u{u}" +}, + "Ů": { + text: "\\r{U}" +}, + "ů": { + text: "\\r{u}" +}, + "Ű": { + text: "\\H{U}" +}, + "ű": { + text: "\\H{u}" +}, + "Ų": { + text: "\\k{U}" +}, + "ų": { + text: "\\k{u}" +}, + "Ŵ": { + text: "\\^W" +}, + "ŵ": { + text: "\\^w" +}, + "Ŷ": { + text: "\\^Y" +}, + "ŷ": { + text: "\\^y" +}, + "Ÿ": { + text: "\\\"Y" +}, + "Ź": { + text: "\\'Z" +}, + "ź": { + text: "\\'z" +}, + "Ż": { + text: "\\.Z" +}, + "ż": { + text: "\\.z" +}, + "Ž": { + text: "\\v{Z}" +}, + "ž": { + text: "\\v{z}" +}, + "ſ": { + text: "s" +}, + "ƒ": { + math: "f" +}, + "ƕ": { + text: "\\texthvlig", + commandspacer: true +}, + "ƞ": { + text: "\\textnrleg", + commandspacer: true +}, + "ƪ": { + text: "\\textesh", + commandspacer: true +}, + "Ƶ": { + math: "\\Zbar" +}, + "ƺ": { + text: "{\\fontencoding{LELA}\\selectfont\\char195}" +}, + "ǂ": { + text: "\\textdoublepipe", + commandspacer: true +}, + "Ǎ": { + text: "\\v{A}" +}, + "ǎ": { + text: "\\v{a}" +}, + "Ǐ": { + text: "\\v{I}" +}, + "ǐ": { + text: "\\v{i}" +}, + "Ǒ": { + text: "\\v{O}" +}, + "ǒ": { + text: "\\v{o}" +}, + "Ǔ": { + text: "\\v{U}" +}, + "ǔ": { + text: "\\v{u}" +}, + "Ǧ": { + text: "\\v{G}" +}, + "ǧ": { + text: "\\v{g}" +}, + "Ǩ": { + text: "\\v{K}" +}, + "ǩ": { + text: "\\v{k}" +}, + "Ǫ": { + text: "\\k{O}" +}, + "ǫ": { + text: "\\k{o}" +}, + "ǰ": { + text: "\\v{j}" +}, + "Ǵ": { + text: "\\'G" +}, + "ǵ": { + text: "\\'g" +}, + "Ȩ": { + text: "\\c{E}" +}, + "ȩ": { + text: "\\c{e}" +}, + "ȷ": { + math: "\\jmath" +}, + "ɐ": { + math: "\\Elztrna" +}, + "ɒ": { + math: "\\Elztrnsa" +}, + "ɔ": { + math: "\\Elzopeno" +}, + "ɖ": { + math: "\\Elzrtld" +}, + "ɘ": { + text: "{\\fontencoding{LEIP}\\selectfont\\char61}" +}, + "ə": { + math: "\\Elzschwa" +}, + "ɛ": { + math: "\\varepsilon" +}, + "ɡ": { + text: "g" +}, + "ɣ": { + math: "\\Elzpgamma" +}, + "ɤ": { + math: "\\Elzpbgam" +}, + "ɥ": { + math: "\\Elztrnh" +}, + "ɬ": { + math: "\\Elzbtdl" +}, + "ɭ": { + math: "\\Elzrtll" +}, + "ɯ": { + math: "\\Elztrnm" +}, + "ɰ": { + math: "\\Elztrnmlr" +}, + "ɱ": { + math: "\\Elzltlmr" +}, + "ɲ": { + text: "\\Elzltln", + commandspacer: true +}, + "ɳ": { + math: "\\Elzrtln" +}, + "ɷ": { + math: "\\Elzclomeg" +}, + "ɸ": { + text: "\\textphi", + commandspacer: true +}, + "ɹ": { + math: "\\Elztrnr" +}, + "ɺ": { + math: "\\Elztrnrl" +}, + "ɻ": { + math: "\\Elzrttrnr" +}, + "ɼ": { + math: "\\Elzrl" +}, + "ɽ": { + math: "\\Elzrtlr" +}, + "ɾ": { + math: "\\Elzfhr" +}, + "ɿ": { + text: "{\\fontencoding{LEIP}\\selectfont\\char202}" +}, + "ʂ": { + math: "\\Elzrtls" +}, + "ʃ": { + math: "\\Elzesh" +}, + "ʇ": { + math: "\\Elztrnt" +}, + "ʈ": { + math: "\\Elzrtlt" +}, + "ʊ": { + math: "\\Elzpupsil" +}, + "ʋ": { + math: "\\Elzpscrv" +}, + "ʌ": { + math: "\\Elzinvv" +}, + "ʍ": { + math: "\\Elzinvw" +}, + "ʎ": { + math: "\\Elztrny" +}, + "ʐ": { + math: "\\Elzrtlz" +}, + "ʒ": { + math: "\\Elzyogh" +}, + "ʔ": { + math: "\\Elzglst" +}, + "ʕ": { + math: "\\Elzreglst" +}, + "ʖ": { + math: "\\Elzinglst" +}, + "ʞ": { + text: "\\textturnk", + commandspacer: true +}, + "ʤ": { + math: "\\Elzdyogh" +}, + "ʧ": { + math: "\\Elztesh" +}, + "ʰ": { + math: "^{h}", + text: "\\textsuperscript{h}" +}, + "ʲ": { + math: "^{j}", + text: "\\textsuperscript{j}" +}, + "ʳ": { + math: "^{r}", + text: "\\textsuperscript{r}" +}, + "ʷ": { + math: "^{w}", + text: "\\textsuperscript{w}" +}, + "ʸ": { + math: "^{y}", + text: "\\textsuperscript{y}" +}, + "ʹ": { + text: "'" +}, + "ʻ": { + text: "'" +}, + "ʼ": { + text: "'" +}, + "ʽ": { + text: "'" +}, + "ʿ": { + text: "\\lasp", + commandspacer: true, + textpackages: [ + "mathscinet" + ] +}, + "ˆ": { + text: "\\textasciicircum", + commandspacer: true +}, + "ˇ": { + text: "\\textasciicaron", + commandspacer: true +}, + "ˈ": { + math: "\\Elzverts" +}, + "ˉ": { + text: "-" +}, + "ˌ": { + math: "\\Elzverti" +}, + "ː": { + math: "\\Elzlmrk" +}, + "ˑ": { + math: "\\Elzhlmrk" +}, + "˒": { + math: "\\Elzsbrhr" +}, + "˓": { + math: "\\Elzsblhr" +}, + "˔": { + math: "\\Elzrais" +}, + "˕": { + math: "\\Elzlow" +}, + "˘": { + text: "\\textasciibreve", + commandspacer: true +}, + "˙": { + text: "\\textperiodcentered", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "˚": { + text: "\\r{}" +}, + "˛": { + text: "\\k{}" +}, + "˜": { + text: "\\texttildelow", + commandspacer: true +}, + "˝": { + text: "\\H{}" +}, + "ˡ": { + math: "^{l}", + text: "\\textsuperscript{l}" +}, + "ˢ": { + math: "^{s}", + text: "\\textsuperscript{s}" +}, + "ˣ": { + math: "^{x}", + text: "\\textsuperscript{x}" +}, + "˥": { + text: "\\tone{55}" +}, + "˦": { + text: "\\tone{44}" +}, + "˧": { + text: "\\tone{33}" +}, + "˨": { + text: "\\tone{22}" +}, + "˩": { + text: "\\tone{11}" +}, + "̀": { + math: "\\grave", + combiningdiacritic: true, + text: "\\`" +}, + "̀̄": { + text: "\\textgravemacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̄̀": { + text: "\\textgravemacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̀̇": { + text: "\\textgravedot", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̇̀": { + text: "\\textgravedot", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "́": { + math: "\\acute", + combiningdiacritic: true, + text: "\\'" +}, + "́̄": { + text: "\\textacutemacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̄́": { + text: "\\textacutemacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "́̌": { + text: "\\textacutewedge", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̌́": { + text: "\\textacutewedge", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̂": { + math: "\\hat", + combiningdiacritic: true, + text: "\\^" +}, + "̂̇": { + text: "\\textcircumdot", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̇̂": { + text: "\\textcircumdot", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̃": { + math: "\\tilde", + combiningdiacritic: true, + text: "\\~" +}, + "̃̇": { + text: "\\texttildedot", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̇̃": { + text: "\\texttildedot", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̄": { + math: "\\bar", + combiningdiacritic: true, + text: "\\=" +}, + "̅": { + math: "\\overline", + combiningdiacritic: true +}, + "̆": { + math: "\\breve", + combiningdiacritic: true, + text: "\\u", + commandspacer: true +}, + "̆̄": { + text: "\\textbrevemacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̄̆": { + text: "\\textbrevemacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̇": { + math: "\\dot", + combiningdiacritic: true, + text: "\\." +}, + "̇́": { + text: "\\textdotacute", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "́̇": { + text: "\\textdotacute", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̇̆": { + text: "\\textdotbreve", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̆̇": { + text: "\\textdotbreve", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̈": { + math: "\\ddot", + combiningdiacritic: true, + text: "\\\"" +}, + "̉": { + math: "\\ovhook" +}, + "̊": { + math: "\\mathring", + combiningdiacritic: true, + text: "\\r", + commandspacer: true +}, + "̊̄": { + text: "\\textringmacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̄̊": { + text: "\\textringmacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̋": { + text: "\\H", + commandspacer: true, + combiningdiacritic: true +}, + "̌": { + math: "\\check", + text: "\\v", + commandspacer: true, + combiningdiacritic: true +}, + "̍": { + text: "\\textvbaraccent", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̎": { + text: "\\textdoublevbaraccent", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̏": { + text: "\\textdoublegrave", + commandspacer: true, + combiningdiacritic: true +}, + "̐": { + text: "\\textdotbreve", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̑": { + text: "{\\fontencoding{LECO}\\selectfont\\char177}" +}, + "̒": { + math: "\\oturnedcomma" +}, + "̕": { + math: "\\ocommatopright" +}, + "̖": { + text: "\\textsubgrave", + commandspacer: true, + combiningdiacritic: true +}, + "̘": { + text: "\\textadvancing", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̙": { + text: "\\textretracting", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̚": { + math: "\\droang", + text: "\\textcorner", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̜": { + text: "\\textsublhalfring", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̝": { + text: "\\textraising", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̞": { + text: "\\textlowering", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̟": { + text: "\\textsubplus", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̡": { + math: "\\Elzpalh" +}, + "̢": { + text: "\\Elzrh", + commandspacer: true +}, + "̣": { + text: "\\d", + commandspacer: true, + combiningdiacritic: true +}, + "̤": { + text: "\\textsubumlaut", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̥": { + text: "\\textsubring", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̧": { + text: "\\c", + commandspacer: true, + combiningdiacritic: true +}, + "̨": { + text: "\\k", + commandspacer: true, + combiningdiacritic: true +}, + "̩": { + text: "\\textsyllabic", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̪": { + math: "\\Elzsbbrg", + text: "\\textsubbridge", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̫": { + text: "{\\fontencoding{LECO}\\selectfont\\char203}" +}, + "̬": { + text: "\\textsubwedge", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̯": { + text: "\\textsubarch", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̰": { + math: "\\utilde", + text: "\\textsubtilde", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̱": { + math: "\\underbar", + combiningdiacritic: true, + text: "\\textsubbar", + commandspacer: true, + textpackages: [ + "tipa" + ] +}, + "̲": { + math: "\\underline" +}, + "̴": { + text: "\\textsuperimposetilde", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̵": { + text: "\\Elzxl", + commandspacer: true +}, + "̶": { + text: "\\Elzbar", + commandspacer: true +}, + "̷": { + text: "{\\fontencoding{LECO}\\selectfont\\char215}" +}, + "̸": { + math: "\\not" +}, + "̹": { + text: "\\textsubrhalfring", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̺": { + text: "\\textinvsubbridge", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̻": { + text: "\\textsubsquare", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̼": { + text: "\\textseagull", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̽": { + text: "\\textovercross", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "͡": { + text: "{\\fontencoding{LECO}\\selectfont\\char225}" +}, + "ʹ": { + text: "'" +}, + "͵": { + text: "," +}, + ";": { + text: ";" +}, + "Ά": { + text: "\\'A" +}, + "Έ": { + text: "\\'E" +}, + "Ή": { + text: "\\'H" +}, + "Ί": { + text: "{\\'{}I}" +}, + "Ό": { + text: "{\\'{}O}" +}, + "Ύ": { + math: "\\mathrm{'Y}" +}, + "Ώ": { + math: "\\mathrm{'\\Omega}" +}, + "ΐ": { + math: "\\acute{\\ddot{\\iota}}" +}, + "Α": { + math: "A" +}, + "Β": { + math: "B" +}, + "Γ": { + math: "\\Gamma" +}, + "Δ": { + math: "\\Delta" +}, + "Ε": { + math: "E" +}, + "Ζ": { + math: "Z" +}, + "Η": { + math: "H" +}, + "Θ": { + math: "\\Theta" +}, + "Ι": { + math: "I" +}, + "Κ": { + math: "K" +}, + "Λ": { + math: "\\Lambda" +}, + "Μ": { + math: "M" +}, + "Ν": { + math: "N" +}, + "Ξ": { + math: "\\Xi" +}, + "Ο": { + math: "O" +}, + "Π": { + math: "\\Pi" +}, + "Ρ": { + math: "P" +}, + "Σ": { + math: "\\Sigma" +}, + "Τ": { + math: "T" +}, + "Υ": { + math: "\\Upsilon" +}, + "Φ": { + math: "\\Phi" +}, + "Χ": { + math: "X" +}, + "Ψ": { + math: "\\Psi" +}, + "Ω": { + math: "\\Omega" +}, + "Ϊ": { + math: "\\mathrm{\\ddot{I}}" +}, + "Ϋ": { + math: "\\mathrm{\\ddot{Y}}" +}, + "ά": { + text: "{\\'$\\alpha$}" +}, + "έ": { + math: "\\acute{\\epsilon}" +}, + "ή": { + math: "\\acute{\\eta}" +}, + "ί": { + math: "\\acute{\\iota}" +}, + "ΰ": { + math: "\\acute{\\ddot{\\upsilon}}" +}, + "α": { + math: "\\alpha" +}, + "β": { + math: "\\beta" +}, + "γ": { + math: "\\gamma" +}, + "δ": { + math: "\\delta" +}, + "ε": { + math: "\\epsilon" +}, + "ζ": { + math: "\\zeta" +}, + "η": { + math: "\\eta" +}, + "θ": { + math: "\\theta", + text: "\\texttheta", + commandspacer: true +}, + "ι": { + math: "\\iota" +}, + "κ": { + math: "\\kappa" +}, + "λ": { + math: "\\lambda" +}, + "μ": { + math: "\\mu" +}, + "ν": { + math: "\\nu" +}, + "ξ": { + math: "\\xi" +}, + "ο": { + math: "o" +}, + "π": { + math: "\\pi" +}, + "ρ": { + math: "\\rho" +}, + "ς": { + math: "\\varsigma" +}, + "σ": { + math: "\\sigma" +}, + "τ": { + math: "\\tau" +}, + "υ": { + math: "\\upsilon" +}, + "φ": { + math: "\\varphi" +}, + "χ": { + math: "\\chi" +}, + "ψ": { + math: "\\psi" +}, + "ω": { + math: "\\omega" +}, + "ϊ": { + math: "\\ddot{\\iota}" +}, + "ϋ": { + math: "\\ddot{\\upsilon}" +}, + "ό": { + text: "\\'o" +}, + "ύ": { + math: "\\acute{\\upsilon}" +}, + "ώ": { + math: "\\acute{\\omega}" +}, + "ϐ": { + math: "\\varbeta", + text: "\\Pisymbol{ppi022}{87}" +}, + "ϑ": { + math: "\\vartheta", + text: "\\textvartheta", + commandspacer: true +}, + "ϒ": { + math: "\\Upsilon" +}, + "ϕ": { + math: "\\phi" +}, + "ϖ": { + math: "\\varpi" +}, + "Ϙ": { + math: "\\Qoppa" +}, + "ϙ": { + math: "\\qoppa" +}, + "Ϛ": { + math: "\\Stigma" +}, + "ϛ": { + math: "\\stigma" +}, + "Ϝ": { + math: "\\Digamma" +}, + "ϝ": { + math: "\\digamma" +}, + "Ϟ": { + math: "\\Koppa" +}, + "ϟ": { + math: "\\koppa" +}, + "Ϡ": { + math: "\\Sampi" +}, + "ϡ": { + math: "\\sampi" +}, + "ϰ": { + math: "\\varkappa" +}, + "ϱ": { + math: "\\varrho" +}, + "ϴ": { + math: "\\upvarTheta", + text: "\\textTheta", + commandspacer: true +}, + "ϵ": { + math: "\\epsilon" +}, + "϶": { + math: "\\backepsilon" +}, + "Ё": { + text: "\\cyrchar\\CYRYO", + commandspacer: true +}, + "Ђ": { + text: "\\cyrchar\\CYRDJE", + commandspacer: true +}, + "Ѓ": { + text: "\\cyrchar{\\'\\CYRG}" +}, + "Є": { + text: "\\cyrchar\\CYRIE", + commandspacer: true +}, + "Ѕ": { + text: "\\cyrchar\\CYRDZE", + commandspacer: true +}, + "І": { + text: "\\cyrchar\\CYRII", + commandspacer: true +}, + "Ї": { + text: "\\cyrchar\\CYRYI", + commandspacer: true +}, + "Ј": { + text: "\\cyrchar\\CYRJE", + commandspacer: true +}, + "Љ": { + text: "\\cyrchar\\CYRLJE", + commandspacer: true +}, + "Њ": { + text: "\\cyrchar\\CYRNJE", + commandspacer: true +}, + "Ћ": { + text: "\\cyrchar\\CYRTSHE", + commandspacer: true +}, + "Ќ": { + text: "\\cyrchar{\\'\\CYRK}" +}, + "Ў": { + text: "\\cyrchar\\CYRUSHRT", + commandspacer: true +}, + "Џ": { + text: "\\cyrchar\\CYRDZHE", + commandspacer: true +}, + "А": { + text: "\\cyrchar\\CYRA", + commandspacer: true +}, + "Б": { + text: "\\cyrchar\\CYRB", + commandspacer: true +}, + "В": { + text: "\\cyrchar\\CYRV", + commandspacer: true +}, + "Г": { + text: "\\cyrchar\\CYRG", + commandspacer: true +}, + "Д": { + text: "\\cyrchar\\CYRD", + commandspacer: true +}, + "Е": { + text: "\\cyrchar\\CYRE", + commandspacer: true +}, + "Ж": { + text: "\\cyrchar\\CYRZH", + commandspacer: true +}, + "З": { + text: "\\cyrchar\\CYRZ", + commandspacer: true +}, + "И": { + text: "\\cyrchar\\CYRI", + commandspacer: true +}, + "Й": { + text: "\\cyrchar\\CYRISHRT", + commandspacer: true +}, + "К": { + text: "\\cyrchar\\CYRK", + commandspacer: true +}, + "Л": { + text: "\\cyrchar\\CYRL", + commandspacer: true +}, + "М": { + text: "\\cyrchar\\CYRM", + commandspacer: true +}, + "Н": { + text: "\\cyrchar\\CYRN", + commandspacer: true +}, + "О": { + text: "\\cyrchar\\CYRO", + commandspacer: true +}, + "П": { + text: "\\cyrchar\\CYRP", + commandspacer: true +}, + "Р": { + text: "\\cyrchar\\CYRR", + commandspacer: true +}, + "С": { + text: "\\cyrchar\\CYRS", + commandspacer: true +}, + "Т": { + text: "\\cyrchar\\CYRT", + commandspacer: true +}, + "У": { + text: "\\cyrchar\\CYRU", + commandspacer: true +}, + "Ф": { + text: "\\cyrchar\\CYRF", + commandspacer: true +}, + "Х": { + text: "\\cyrchar\\CYRH", + commandspacer: true +}, + "Ц": { + text: "\\cyrchar\\CYRC", + commandspacer: true +}, + "Ч": { + text: "\\cyrchar\\CYRCH", + commandspacer: true +}, + "Ш": { + text: "\\cyrchar\\CYRSH", + commandspacer: true +}, + "Щ": { + text: "\\cyrchar\\CYRSHCH", + commandspacer: true +}, + "Ъ": { + text: "\\cyrchar\\CYRHRDSN", + commandspacer: true +}, + "Ы": { + text: "\\cyrchar\\CYRERY", + commandspacer: true +}, + "Ь": { + text: "\\cyrchar\\CYRSFTSN", + commandspacer: true +}, + "Э": { + text: "\\cyrchar\\CYREREV", + commandspacer: true +}, + "Ю": { + text: "\\cyrchar\\CYRYU", + commandspacer: true +}, + "Я": { + text: "\\cyrchar\\CYRYA", + commandspacer: true +}, + "а": { + text: "\\cyrchar\\cyra", + commandspacer: true +}, + "б": { + text: "\\cyrchar\\cyrb", + commandspacer: true +}, + "в": { + text: "\\cyrchar\\cyrv", + commandspacer: true +}, + "г": { + text: "\\cyrchar\\cyrg", + commandspacer: true +}, + "д": { + text: "\\cyrchar\\cyrd", + commandspacer: true +}, + "е": { + text: "\\cyrchar\\cyre", + commandspacer: true +}, + "ж": { + text: "\\cyrchar\\cyrzh", + commandspacer: true +}, + "з": { + text: "\\cyrchar\\cyrz", + commandspacer: true +}, + "и": { + text: "\\cyrchar\\cyri", + commandspacer: true +}, + "й": { + text: "\\cyrchar\\cyrishrt", + commandspacer: true +}, + "к": { + text: "\\cyrchar\\cyrk", + commandspacer: true +}, + "л": { + text: "\\cyrchar\\cyrl", + commandspacer: true +}, + "м": { + text: "\\cyrchar\\cyrm", + commandspacer: true +}, + "н": { + text: "\\cyrchar\\cyrn", + commandspacer: true +}, + "о": { + text: "\\cyrchar\\cyro", + commandspacer: true +}, + "п": { + text: "\\cyrchar\\cyrp", + commandspacer: true +}, + "р": { + text: "\\cyrchar\\cyrr", + commandspacer: true +}, + "с": { + text: "\\cyrchar\\cyrs", + commandspacer: true +}, + "т": { + text: "\\cyrchar\\cyrt", + commandspacer: true +}, + "у": { + text: "\\cyrchar\\cyru", + commandspacer: true +}, + "ф": { + text: "\\cyrchar\\cyrf", + commandspacer: true +}, + "х": { + text: "\\cyrchar\\cyrh", + commandspacer: true +}, + "ц": { + text: "\\cyrchar\\cyrc", + commandspacer: true +}, + "ч": { + text: "\\cyrchar\\cyrch", + commandspacer: true +}, + "ш": { + text: "\\cyrchar\\cyrsh", + commandspacer: true +}, + "щ": { + text: "\\cyrchar\\cyrshch", + commandspacer: true +}, + "ъ": { + text: "\\cyrchar\\cyrhrdsn", + commandspacer: true +}, + "ы": { + text: "\\cyrchar\\cyrery", + commandspacer: true +}, + "ь": { + text: "\\cyrchar\\cyrsftsn", + commandspacer: true +}, + "э": { + text: "\\cyrchar\\cyrerev", + commandspacer: true +}, + "ю": { + text: "\\cyrchar\\cyryu", + commandspacer: true +}, + "я": { + text: "\\cyrchar\\cyrya", + commandspacer: true +}, + "ё": { + text: "\\cyrchar\\cyryo", + commandspacer: true +}, + "ђ": { + text: "\\cyrchar\\cyrdje", + commandspacer: true +}, + "ѓ": { + text: "\\cyrchar{\\'\\cyrg}" +}, + "є": { + text: "\\cyrchar\\cyrie", + commandspacer: true +}, + "ѕ": { + text: "\\cyrchar\\cyrdze", + commandspacer: true +}, + "і": { + text: "\\cyrchar\\cyrii", + commandspacer: true +}, + "ї": { + text: "\\cyrchar\\cyryi", + commandspacer: true +}, + "ј": { + text: "\\cyrchar\\cyrje", + commandspacer: true +}, + "љ": { + text: "\\cyrchar\\cyrlje", + commandspacer: true +}, + "њ": { + text: "\\cyrchar\\cyrnje", + commandspacer: true +}, + "ћ": { + text: "\\cyrchar\\cyrtshe", + commandspacer: true +}, + "ќ": { + text: "\\cyrchar{\\'\\cyrk}" +}, + "ў": { + text: "\\cyrchar\\cyrushrt", + commandspacer: true +}, + "џ": { + text: "\\cyrchar\\cyrdzhe", + commandspacer: true +}, + "Ѡ": { + text: "\\cyrchar\\CYROMEGA", + commandspacer: true +}, + "ѡ": { + text: "\\cyrchar\\cyromega", + commandspacer: true +}, + "Ѣ": { + text: "\\cyrchar\\CYRYAT", + commandspacer: true +}, + "Ѥ": { + text: "\\cyrchar\\CYRIOTE", + commandspacer: true +}, + "ѥ": { + text: "\\cyrchar\\cyriote", + commandspacer: true +}, + "Ѧ": { + text: "\\cyrchar\\CYRLYUS", + commandspacer: true +}, + "ѧ": { + text: "\\cyrchar\\cyrlyus", + commandspacer: true +}, + "Ѩ": { + text: "\\cyrchar\\CYRIOTLYUS", + commandspacer: true +}, + "ѩ": { + text: "\\cyrchar\\cyriotlyus", + commandspacer: true +}, + "Ѫ": { + text: "\\cyrchar\\CYRBYUS", + commandspacer: true +}, + "Ѭ": { + text: "\\cyrchar\\CYRIOTBYUS", + commandspacer: true +}, + "ѭ": { + text: "\\cyrchar\\cyriotbyus", + commandspacer: true +}, + "Ѯ": { + text: "\\cyrchar\\CYRKSI", + commandspacer: true +}, + "ѯ": { + text: "\\cyrchar\\cyrksi", + commandspacer: true +}, + "Ѱ": { + text: "\\cyrchar\\CYRPSI", + commandspacer: true +}, + "ѱ": { + text: "\\cyrchar\\cyrpsi", + commandspacer: true +}, + "Ѳ": { + text: "\\cyrchar\\CYRFITA", + commandspacer: true +}, + "Ѵ": { + text: "\\cyrchar\\CYRIZH", + commandspacer: true +}, + "Ѹ": { + text: "\\cyrchar\\CYRUK", + commandspacer: true +}, + "ѹ": { + text: "\\cyrchar\\cyruk", + commandspacer: true +}, + "Ѻ": { + text: "\\cyrchar\\CYROMEGARND", + commandspacer: true +}, + "ѻ": { + text: "\\cyrchar\\cyromegarnd", + commandspacer: true +}, + "Ѽ": { + text: "\\cyrchar\\CYROMEGATITLO", + commandspacer: true +}, + "ѽ": { + text: "\\cyrchar\\cyromegatitlo", + commandspacer: true +}, + "Ѿ": { + text: "\\cyrchar\\CYROT", + commandspacer: true +}, + "ѿ": { + text: "\\cyrchar\\cyrot", + commandspacer: true +}, + "Ҁ": { + text: "\\cyrchar\\CYRKOPPA", + commandspacer: true +}, + "ҁ": { + text: "\\cyrchar\\cyrkoppa", + commandspacer: true +}, + "҂": { + text: "\\cyrchar\\cyrthousands", + commandspacer: true +}, + "҈": { + text: "\\cyrchar\\cyrhundredthousands", + commandspacer: true +}, + "҉": { + text: "\\cyrchar\\cyrmillions", + commandspacer: true +}, + "Ҍ": { + text: "\\cyrchar\\CYRSEMISFTSN", + commandspacer: true +}, + "ҍ": { + text: "\\cyrchar\\cyrsemisftsn", + commandspacer: true +}, + "Ҏ": { + text: "\\cyrchar\\CYRRTICK", + commandspacer: true +}, + "ҏ": { + text: "\\cyrchar\\cyrrtick", + commandspacer: true +}, + "Ґ": { + text: "\\cyrchar\\CYRGUP", + commandspacer: true +}, + "ґ": { + text: "\\cyrchar\\cyrgup", + commandspacer: true +}, + "Ғ": { + text: "\\cyrchar\\CYRGHCRS", + commandspacer: true +}, + "ғ": { + text: "\\cyrchar\\cyrghcrs", + commandspacer: true +}, + "Ҕ": { + text: "\\cyrchar\\CYRGHK", + commandspacer: true +}, + "ҕ": { + text: "\\cyrchar\\cyrghk", + commandspacer: true +}, + "Җ": { + text: "\\cyrchar\\CYRZHDSC", + commandspacer: true +}, + "җ": { + text: "\\cyrchar\\cyrzhdsc", + commandspacer: true +}, + "Ҙ": { + text: "\\cyrchar\\CYRZDSC", + commandspacer: true +}, + "ҙ": { + text: "\\cyrchar\\cyrzdsc", + commandspacer: true +}, + "Қ": { + text: "\\cyrchar\\CYRKDSC", + commandspacer: true +}, + "қ": { + text: "\\cyrchar\\cyrkdsc", + commandspacer: true +}, + "Ҝ": { + text: "\\cyrchar\\CYRKVCRS", + commandspacer: true +}, + "ҝ": { + text: "\\cyrchar\\cyrkvcrs", + commandspacer: true +}, + "Ҟ": { + text: "\\cyrchar\\CYRKHCRS", + commandspacer: true +}, + "ҟ": { + text: "\\cyrchar\\cyrkhcrs", + commandspacer: true +}, + "Ҡ": { + text: "\\cyrchar\\CYRKBEAK", + commandspacer: true +}, + "ҡ": { + text: "\\cyrchar\\cyrkbeak", + commandspacer: true +}, + "Ң": { + text: "\\cyrchar\\CYRNDSC", + commandspacer: true +}, + "ң": { + text: "\\cyrchar\\cyrndsc", + commandspacer: true +}, + "Ҥ": { + text: "\\cyrchar\\CYRNG", + commandspacer: true +}, + "ҥ": { + text: "\\cyrchar\\cyrng", + commandspacer: true +}, + "Ҧ": { + text: "\\cyrchar\\CYRPHK", + commandspacer: true +}, + "ҧ": { + text: "\\cyrchar\\cyrphk", + commandspacer: true +}, + "Ҩ": { + text: "\\cyrchar\\CYRABHHA", + commandspacer: true +}, + "ҩ": { + text: "\\cyrchar\\cyrabhha", + commandspacer: true +}, + "Ҫ": { + text: "\\cyrchar\\CYRSDSC", + commandspacer: true +}, + "ҫ": { + text: "\\cyrchar\\cyrsdsc", + commandspacer: true +}, + "Ҭ": { + text: "\\cyrchar\\CYRTDSC", + commandspacer: true +}, + "ҭ": { + text: "\\cyrchar\\cyrtdsc", + commandspacer: true +}, + "Ү": { + text: "\\cyrchar\\CYRY", + commandspacer: true +}, + "ү": { + text: "\\cyrchar\\cyry", + commandspacer: true +}, + "Ұ": { + text: "\\cyrchar\\CYRYHCRS", + commandspacer: true +}, + "ұ": { + text: "\\cyrchar\\cyryhcrs", + commandspacer: true +}, + "Ҳ": { + text: "\\cyrchar\\CYRHDSC", + commandspacer: true +}, + "ҳ": { + text: "\\cyrchar\\cyrhdsc", + commandspacer: true +}, + "Ҵ": { + text: "\\cyrchar\\CYRTETSE", + commandspacer: true +}, + "ҵ": { + text: "\\cyrchar\\cyrtetse", + commandspacer: true +}, + "Ҷ": { + text: "\\cyrchar\\CYRCHRDSC", + commandspacer: true +}, + "ҷ": { + text: "\\cyrchar\\cyrchrdsc", + commandspacer: true +}, + "Ҹ": { + text: "\\cyrchar\\CYRCHVCRS", + commandspacer: true +}, + "ҹ": { + text: "\\cyrchar\\cyrchvcrs", + commandspacer: true +}, + "Һ": { + text: "\\cyrchar\\CYRSHHA", + commandspacer: true +}, + "һ": { + text: "\\cyrchar\\cyrshha", + commandspacer: true +}, + "Ҽ": { + text: "\\cyrchar\\CYRABHCH", + commandspacer: true +}, + "ҽ": { + text: "\\cyrchar\\cyrabhch", + commandspacer: true +}, + "Ҿ": { + text: "\\cyrchar\\CYRABHCHDSC", + commandspacer: true +}, + "ҿ": { + text: "\\cyrchar\\cyrabhchdsc", + commandspacer: true +}, + "Ӏ": { + text: "\\cyrchar\\CYRpalochka", + commandspacer: true +}, + "Ӄ": { + text: "\\cyrchar\\CYRKHK", + commandspacer: true +}, + "ӄ": { + text: "\\cyrchar\\cyrkhk", + commandspacer: true +}, + "Ӈ": { + text: "\\cyrchar\\CYRNHK", + commandspacer: true +}, + "ӈ": { + text: "\\cyrchar\\cyrnhk", + commandspacer: true +}, + "Ӌ": { + text: "\\cyrchar\\CYRCHLDSC", + commandspacer: true +}, + "ӌ": { + text: "\\cyrchar\\cyrchldsc", + commandspacer: true +}, + "Ӕ": { + text: "\\cyrchar\\CYRAE", + commandspacer: true +}, + "ӕ": { + text: "\\cyrchar\\cyrae", + commandspacer: true +}, + "Ә": { + text: "\\cyrchar\\CYRSCHWA", + commandspacer: true +}, + "ә": { + text: "\\cyrchar\\cyrschwa", + commandspacer: true +}, + "Ӡ": { + text: "\\cyrchar\\CYRABHDZE", + commandspacer: true +}, + "ӡ": { + text: "\\cyrchar\\cyrabhdze", + commandspacer: true +}, + "Ө": { + text: "\\cyrchar\\CYROTLD", + commandspacer: true +}, + "ө": { + text: "\\cyrchar\\cyrotld", + commandspacer: true +}, + "ࡱ": { + math: "\\\\backslash" +}, + "ᵃ": { + math: "^{a}", + text: "\\textsuperscript{a}" +}, + "ᵇ": { + math: "^{b}", + text: "\\textsuperscript{b}" +}, + "ᵈ": { + math: "^{d}", + text: "\\textsuperscript{d}" +}, + "ᵉ": { + math: "^{e}", + text: "\\textsuperscript{e}" +}, + "ᵍ": { + math: "^{g}", + text: "\\textsuperscript{g}" +}, + "ᵏ": { + math: "^{k}", + text: "\\textsuperscript{k}" +}, + "ᵐ": { + math: "^{m}", + text: "\\textsuperscript{m}" +}, + "ᵒ": { + math: "^{o}", + text: "\\textsuperscript{o}" +}, + "ᵖ": { + math: "^{p}", + text: "\\textsuperscript{p}" +}, + "ᵗ": { + math: "^{t}", + text: "\\textsuperscript{t}" +}, + "ᵘ": { + math: "^{u}", + text: "\\textsuperscript{u}" +}, + "ᵛ": { + math: "^{v}", + text: "\\textsuperscript{v}" +}, + "ᶜ": { + math: "^{c}", + text: "\\textsuperscript{c}" +}, + "ᶠ": { + math: "^{f}", + text: "\\textsuperscript{f}" +}, + "ᶻ": { + math: "^{z}", + text: "\\textsuperscript{z}" +}, + "Ḃ": { + text: "\\.B" +}, + "ḃ": { + text: "\\.b" +}, + "Ḅ": { + text: "\\d{B}" +}, + "ḅ": { + text: "\\d{b}" +}, + "Ḇ": { + text: "\\b{B}" +}, + "ḇ": { + text: "\\b{b}" +}, + "Ḋ": { + text: "\\.D" +}, + "ḋ": { + text: "\\.d" +}, + "Ḍ": { + text: "\\d{D}" +}, + "ḍ": { + text: "\\d{d}" +}, + "Ḏ": { + text: "\\b{D}" +}, + "ḏ": { + text: "\\b{d}" +}, + "Ḑ": { + text: "\\c{D}" +}, + "ḑ": { + text: "\\c{d}" +}, + "Ḝ": { + text: "\\c{\\u{E}}" +}, + "ḝ": { + text: "\\c{\\u{e}}" +}, + "Ḟ": { + text: "\\.F" +}, + "ḟ": { + text: "\\.f" +}, + "Ḡ": { + text: "\\=G" +}, + "ḡ": { + text: "\\=g" +}, + "Ḣ": { + text: "\\.H" +}, + "ḣ": { + text: "\\.h" +}, + "Ḥ": { + text: "\\d{H}" +}, + "ḥ": { + text: "\\d{h}" +}, + "Ḧ": { + text: "\\\"H" +}, + "ḧ": { + text: "\\\"h" +}, + "Ḩ": { + text: "\\c{H}" +}, + "ḩ": { + text: "\\c{h}" +}, + "Ḱ": { + text: "\\'K" +}, + "ḱ": { + text: "\\'k" +}, + "Ḳ": { + text: "\\d{K}" +}, + "ḳ": { + text: "\\d{k}" +}, + "Ḵ": { + text: "\\b{K}" +}, + "ḵ": { + text: "\\b{k}" +}, + "Ḷ": { + text: "\\d{L}" +}, + "ḷ": { + text: "\\d{l}" +}, + "Ḻ": { + text: "\\b{L}" +}, + "ḻ": { + text: "\\b{l}" +}, + "Ḿ": { + text: "\\'M" +}, + "ḿ": { + text: "\\'m" +}, + "Ṁ": { + text: "\\.M" +}, + "ṁ": { + text: "\\.m" +}, + "Ṃ": { + text: "\\d{M}" +}, + "ṃ": { + text: "\\d{m}" +}, + "Ṅ": { + text: "\\.N" +}, + "ṅ": { + text: "\\.n" +}, + "Ṇ": { + text: "\\d{N}" +}, + "ṇ": { + text: "\\d{n}" +}, + "Ṉ": { + text: "\\b{N}" +}, + "ṉ": { + text: "\\b{n}" +}, + "Ṕ": { + text: "\\'P" +}, + "ṕ": { + text: "\\'p" +}, + "Ṗ": { + text: "\\.P" +}, + "ṗ": { + text: "\\.p" +}, + "Ṙ": { + text: "\\.R" +}, + "ṙ": { + text: "\\.r" +}, + "Ṛ": { + text: "\\d{R}" +}, + "ṛ": { + text: "\\d{r}" +}, + "Ṟ": { + text: "\\b{R}" +}, + "ṟ": { + text: "\\b{r}" +}, + "Ṡ": { + text: "\\.S" +}, + "ṡ": { + text: "\\.s" +}, + "Ṣ": { + text: "\\d{S}" +}, + "ṣ": { + text: "\\d{s}" +}, + "Ṫ": { + text: "\\.T" +}, + "ṫ": { + text: "\\.t" +}, + "Ṭ": { + text: "\\d{T}" +}, + "ṭ": { + text: "\\d{t}" +}, + "Ṯ": { + text: "\\b{T}" +}, + "ṯ": { + text: "\\b{t}" +}, + "Ṽ": { + text: "\\~V" +}, + "ṽ": { + text: "\\~v" +}, + "Ṿ": { + text: "\\d{V}" +}, + "ṿ": { + text: "\\d{v}" +}, + "Ẁ": { + text: "\\`W" +}, + "ẁ": { + text: "\\`w" +}, + "Ẃ": { + text: "\\'W" +}, + "ẃ": { + text: "\\'w" +}, + "Ẅ": { + text: "\\\"W" +}, + "ẅ": { + text: "\\\"w" +}, + "Ẇ": { + text: "\\.W" +}, + "ẇ": { + text: "\\.w" +}, + "Ẉ": { + text: "\\d{W}" +}, + "ẉ": { + text: "\\d{w}" +}, + "Ẋ": { + text: "\\.X" +}, + "ẋ": { + text: "\\.x" +}, + "Ẍ": { + text: "\\\"X" +}, + "ẍ": { + text: "\\\"x" +}, + "Ẏ": { + text: "\\.Y" +}, + "ẏ": { + text: "\\.y" +}, + "Ẑ": { + text: "\\^Z" +}, + "ẑ": { + text: "\\^z" +}, + "Ẓ": { + text: "\\d{Z}" +}, + "ẓ": { + text: "\\d{z}" +}, + "Ẕ": { + text: "\\b{Z}" +}, + "ẕ": { + text: "\\b{z}" +}, + "ẖ": { + text: "\\b{h}" +}, + "ẗ": { + text: "\\\"t" +}, + "ẘ": { + text: "\\r{w}" +}, + "ẙ": { + text: "\\r{y}" +}, + "Ạ": { + text: "\\d{A}" +}, + "ạ": { + text: "\\d{a}" +}, + "Ẹ": { + text: "\\d{E}" +}, + "ẹ": { + text: "\\d{e}" +}, + "Ẽ": { + text: "\\~E" +}, + "ẽ": { + text: "\\~e" +}, + "Ị": { + text: "\\d{I}" +}, + "ị": { + text: "\\d{i}" +}, + "Ọ": { + text: "\\d{O}" +}, + "ọ": { + text: "\\d{o}" +}, + "Ụ": { + text: "\\d{U}" +}, + "ụ": { + text: "\\d{u}" +}, + "Ỳ": { + text: "\\`Y" +}, + "ỳ": { + text: "\\`y" +}, + "Ỵ": { + text: "\\d{Y}" +}, + "ỵ": { + text: "\\d{y}" +}, + "Ỹ": { + text: "\\~Y" +}, + "ỹ": { + text: "\\~y" +}, + " ": { + text: " ", + space: true +}, + " ": { + math: "\\quad", + space: true +}, + " ": { + text: "\\hspace{0.6em}", + space: true +}, + " ": { + math: "\\quad", + space: true, + text: "\\hspace{1em}" +}, + " ": { + text: "\\;", + space: true +}, + " ": { + text: "\\hspace{0.25em}", + space: true +}, + " ": { + text: "\\hspace{0.166em}", + space: true +}, + " ": { + text: "\\hphantom{0}", + space: true +}, + " ": { + text: "\\hphantom{,}", + space: true +}, + " ": { + text: "\\,", + space: true +}, + " ": { + math: "\\mkern1mu", + space: true +}, + "​": { + text: "\\mbox", + commandspacer: true, + space: true +}, + "‌": { + text: "{\\aftergroup\\ignorespaces}" +}, + "‐": { + text: "-" +}, + "‑": { + text: "-" +}, + "‒": { + text: "-" +}, + "–": { + text: "\\textendash", + commandspacer: true +}, + "—": { + text: "\\textemdash", + commandspacer: true +}, + "―": { + math: "\\horizbar", + text: "\\rule{1em}{1pt}" +}, + "‖": { + math: "\\Vert" +}, + "‗": { + math: "\\twolowline" +}, + "‘": { + text: "`" +}, + "’": { + text: "'" +}, + "‚": { + text: "," +}, + "‛": { + math: "\\Elzreapos" +}, + "“": { + text: "``" +}, + "”": { + text: "''" +}, + "„": { + text: ",," +}, + "‟": { + text: "\\quotedblbase", + commandspacer: true +}, + "†": { + math: "\\dagger", + text: "\\textdagger", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "‡": { + math: "\\ddagger", + text: "\\textdaggerdbl", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "•": { + math: "\\bullet", + text: "\\textbullet", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "‣": { + text: ">" +}, + "․": { + text: "." +}, + "‥": { + math: "\\enleadertwodots", + text: ".." +}, + "…": { + math: "\\ldots", + text: "\\ldots", + commandspacer: true +}, + "‧": { + text: "-" +}, + " ": { + text: " ", + space: true +}, + "‰": { + text: "\\textperthousand", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "‱": { + text: "\\textpertenthousand", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "′": { + math: "{'}" +}, + "″": { + math: "{''}" +}, + "‴": { + math: "{'''}" +}, + "‵": { + math: "\\backprime" +}, + "‶": { + math: "\\backdprime" +}, + "‷": { + math: "\\backtrprime" +}, + "‸": { + math: "\\caretinsert" +}, + "‹": { + text: "\\guilsinglleft", + commandspacer: true +}, + "›": { + text: "\\guilsinglright", + commandspacer: true +}, + "‼": { + math: "\\Exclam" +}, + "‾": { + text: "-" +}, + "⁃": { + math: "\\hyphenbullet" +}, + "⁄": { + math: "\\fracslash" +}, + "⁇": { + math: "\\Question" +}, + "⁈": { + text: "?!" +}, + "⁉": { + text: "!?" +}, + "⁊": { + text: "7" +}, + "⁐": { + math: "\\closure" +}, + "⁗": { + math: "''''" +}, + " ": { + math: "\\:", + space: true, + text: "\\:" +}, + "⁠": { + text: "\\nolinebreak", + commandspacer: true +}, + "⁰": { + math: "^{0}" +}, + "ⁱ": { + math: "^{i}", + text: "\\textsuperscript{i}" +}, + "⁴": { + math: "^{4}" +}, + "⁵": { + math: "^{5}" +}, + "⁶": { + math: "^{6}" +}, + "⁷": { + math: "^{7}" +}, + "⁸": { + math: "^{8}" +}, + "⁹": { + math: "^{9}" +}, + "⁺": { + math: "^{+}" +}, + "⁻": { + math: "^{-}" +}, + "⁼": { + math: "^{=}" +}, + "⁽": { + math: "^{(}" +}, + "⁾": { + math: "^{)}" +}, + "ⁿ": { + math: "^{n}", + text: "\\textsuperscript{n}" +}, + "₀": { + math: "_{0}" +}, + "₁": { + math: "_{1}" +}, + "₂": { + math: "_{2}" +}, + "₃": { + math: "_{3}" +}, + "₄": { + math: "_{4}" +}, + "₅": { + math: "_{5}" +}, + "₆": { + math: "_{6}" +}, + "₇": { + math: "_{7}" +}, + "₈": { + math: "_{8}" +}, + "₉": { + math: "_{9}" +}, + "₊": { + math: "_{+}" +}, + "₋": { + math: "_{-}" +}, + "₌": { + math: "_{=}" +}, + "₍": { + math: "_{(}" +}, + "₎": { + math: "_{)}" +}, + "ₐ": { + math: "_{a}", + text: "\\textsubscript{a}" +}, + "ₑ": { + math: "_{e}", + text: "\\textsubscript{e}" +}, + "ₒ": { + math: "_{o}", + text: "\\textsubscript{o}" +}, + "ₓ": { + math: "_{x}", + text: "\\textsubscript{x}" +}, + "ₔ": { + text: "\\textsubscript{\\textschwa}", + textpackages: [ + "tipa" + ] +}, + "ₕ": { + math: "_{h}", + text: "\\textsubscript{h}" +}, + "ₖ": { + math: "_{k}", + text: "\\textsubscript{k}" +}, + "ₗ": { + math: "_{l}", + text: "\\textsubscript{l}" +}, + "ₘ": { + math: "_{m}", + text: "\\textsubscript{m}" +}, + "ₙ": { + math: "_{n}", + text: "\\textsubscript{n}" +}, + "ₚ": { + math: "_{p}", + text: "\\textsubscript{p}" +}, + "ₛ": { + math: "_{s}", + text: "\\textsubscript{s}" +}, + "ₜ": { + math: "_{t}", + text: "\\textsubscript{t}" +}, + "₧": { + text: "\\ensuremath{\\Elzpes}" +}, + "€": { + math: "\\euro", + text: "\\texteuro", + commandspacer: true +}, + "⃐": { + math: "\\lvec" +}, + "⃑": { + math: "\\rightharpoonup", + mathpackages: [ + "amsmath", + "amssymb" + ] +}, + "⃒": { + math: "\\vertoverlay" +}, + "⃖": { + math: "\\LVec" +}, + "⃗": { + math: "\\vec" +}, + "⃛": { + math: "\\dddot" +}, + "⃜": { + math: "\\ddddot" +}, + "⃝": { + math: "\\enclosecircle" +}, + "⃞": { + math: "\\enclosesquare" +}, + "⃟": { + math: "\\enclosediamond" +}, + "⃡": { + math: "\\overleftrightarrow" +}, + "⃤": { + math: "\\enclosetriangle" +}, + "⃧": { + math: "\\annuity" +}, + "⃨": { + math: "\\threeunderdot" +}, + "⃩": { + math: "\\widebridgeabove" +}, + "⃬": { + math: "\\underrightharpoondown" +}, + "⃭": { + math: "\\underleftharpoondown" +}, + "⃮": { + math: "\\underleftarrow" +}, + "⃯": { + math: "\\underrightarrow" +}, + "⃰": { + math: "\\asteraccent" +}, + "℀": { + text: "a/c" +}, + "℁": { + text: "a/s" +}, + "ℂ": { + math: "\\mathbb{C}" +}, + "℃": { + text: "\\textcelsius", + commandspacer: true +}, + "℅": { + text: "c/o" +}, + "℆": { + text: "c/u" +}, + "ℇ": { + math: "\\Euler" +}, + "℉": { + text: "F" +}, + "ℊ": { + math: "\\mathscr{g}" +}, + "ℋ": { + math: "\\mathscr{H}" +}, + "ℌ": { + math: "\\mathfrak{H}" +}, + "ℍ": { + math: "\\mathbb{H}" +}, + "ℎ": { + math: "\\Planckconst" +}, + "ℏ": { + math: "\\hslash" +}, + "ℐ": { + math: "\\mathscr{I}" +}, + "ℑ": { + math: "\\mathfrak{I}" +}, + "ℒ": { + math: "\\mathscr{L}" +}, + "ℓ": { + math: "\\mathscr{l}" +}, + "ℕ": { + math: "\\mathbb{N}" +}, + "№": { + text: "\\cyrchar\\textnumero", + commandspacer: true +}, + "℗": { + text: "\\textcircledP", + commandspacer: true +}, + "℘": { + math: "\\wp" +}, + "ℙ": { + math: "\\mathbb{P}" +}, + "ℚ": { + math: "\\mathbb{Q}" +}, + "ℛ": { + math: "\\mathscr{R}" +}, + "ℜ": { + math: "\\mathfrak{R}" +}, + "ℝ": { + math: "\\mathbb{R}" +}, + "℞": { + math: "\\Elzxrat" +}, + "℠": { + text: "\\textservicemark", + commandspacer: true +}, + "℡": { + text: "TEL" +}, + "™": { + text: "\\texttrademark", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "ℤ": { + math: "\\mathbb{Z}" +}, + "Ω": { + math: "\\Omega" +}, + "℧": { + math: "\\mho" +}, + "ℨ": { + math: "\\mathfrak{Z}" +}, + "℩": { + text: "\\textriota", + commandspacer: true +}, + "K": { + text: "K" +}, + "Å": { + math: "\\Angstroem", + text: "\\AA", + commandspacer: true +}, + "ℬ": { + math: "\\mathscr{B}" +}, + "ℭ": { + math: "\\mathfrak{C}" +}, + "℮": { + text: "\\textestimated", + commandspacer: true +}, + "ℯ": { + math: "\\mathscr{e}" +}, + "ℰ": { + math: "\\mathscr{E}" +}, + "ℱ": { + math: "\\mathscr{F}" +}, + "Ⅎ": { + math: "\\Finv" +}, + "ℳ": { + math: "\\mathscr{M}" +}, + "ℴ": { + math: "\\mathscr{o}" +}, + "ℵ": { + math: "\\aleph" +}, + "ℶ": { + math: "\\beth" +}, + "ℷ": { + math: "\\gimel" +}, + "ℸ": { + math: "\\daleth" +}, + "ℼ": { + math: "\\mathbb{\\pi}" +}, + "ℽ": { + math: "\\mathbb{\\gamma}" +}, + "ℾ": { + math: "\\mathbb{\\Gamma}" +}, + "ℿ": { + math: "\\mathbb{\\Pi}" +}, + "⅀": { + math: "\\mathbb{\\Sigma}" +}, + "⅁": { + math: "\\Game" +}, + "⅂": { + math: "\\sansLturned" +}, + "⅃": { + math: "\\sansLmirrored" +}, + "⅄": { + math: "\\Yup" +}, + "ⅅ": { + math: "\\CapitalDifferentialD" +}, + "ⅆ": { + math: "\\DifferentialD" +}, + "ⅇ": { + math: "\\ExponetialE" +}, + "ⅈ": { + math: "\\ComplexI" +}, + "ⅉ": { + math: "\\ComplexJ" +}, + "⅊": { + math: "\\PropertyLine" +}, + "⅋": { + math: "\\invamp" +}, + "⅐": { + math: "\\frac{1}{7}" +}, + "⅑": { + math: "\\frac{1}{9}" +}, + "⅒": { + math: "\\frac{1}{10}" +}, + "⅓": { + math: "\\frac{1}{3}" +}, + "⅔": { + math: "\\frac{2}{3}" +}, + "⅕": { + math: "\\frac{1}{5}" +}, + "⅖": { + math: "\\frac{2}{5}" +}, + "⅗": { + math: "\\frac{3}{5}" +}, + "⅘": { + math: "\\frac{4}{5}" +}, + "⅙": { + math: "\\frac{1}{6}" +}, + "⅚": { + math: "\\frac{5}{6}" +}, + "⅛": { + math: "\\frac{1}{8}" +}, + "⅜": { + math: "\\frac{3}{8}" +}, + "⅝": { + math: "\\frac{5}{8}" +}, + "⅞": { + math: "\\frac{7}{8}" +}, + "⅟": { + math: "\\frac{1}" +}, + "Ⅰ": { + text: "I" +}, + "Ⅱ": { + text: "II" +}, + "Ⅲ": { + text: "III" +}, + "Ⅳ": { + text: "IV" +}, + "Ⅴ": { + text: "V" +}, + "Ⅵ": { + text: "VI" +}, + "Ⅶ": { + text: "VII" +}, + "Ⅷ": { + text: "VIII" +}, + "Ⅸ": { + text: "IX" +}, + "Ⅹ": { + text: "X" +}, + "Ⅺ": { + text: "XI" +}, + "Ⅻ": { + text: "XII" +}, + "Ⅼ": { + text: "L" +}, + "Ⅽ": { + text: "C" +}, + "Ⅾ": { + text: "D" +}, + "Ⅿ": { + text: "M" +}, + "ⅰ": { + text: "i" +}, + "ⅱ": { + text: "ii" +}, + "ⅲ": { + text: "iii" +}, + "ⅳ": { + text: "iv" +}, + "ⅴ": { + text: "v" +}, + "ⅵ": { + text: "vi" +}, + "ⅶ": { + text: "vii" +}, + "ⅷ": { + text: "viii" +}, + "ⅸ": { + text: "ix" +}, + "ⅹ": { + text: "x" +}, + "ⅺ": { + text: "xi" +}, + "ⅻ": { + text: "xii" +}, + "ⅼ": { + text: "l" +}, + "ⅽ": { + text: "c" +}, + "ⅾ": { + text: "d" +}, + "ⅿ": { + text: "m" +}, + "↉": { + math: "\\frac{0}{3}" +}, + "←": { + math: "\\leftarrow" +}, + "↑": { + math: "\\uparrow" +}, + "→": { + math: "\\rightarrow", + text: "\\textrightarrow", + commandspacer: true, + textpackages: [ + "textcomp" + ] +}, + "↓": { + math: "\\downarrow" +}, + "↔": { + math: "\\leftrightarrow" +}, + "↕": { + math: "\\updownarrow" +}, + "↖": { + math: "\\nwarrow" +}, + "↗": { + math: "\\nearrow" +}, + "↘": { + math: "\\searrow" +}, + "↙": { + math: "\\swarrow" +}, + "↚": { + math: "\\nleftarrow" +}, + "↛": { + math: "\\nrightarrow" +}, + "↜": { + math: "\\arrowwaveleft" +}, + "↝": { + math: "\\arrowwaveright" +}, + "↞": { + math: "\\twoheadleftarrow" +}, + "↟": { + math: "\\twoheaduparrow" +}, + "↠": { + math: "\\twoheadrightarrow" +}, + "↡": { + math: "\\twoheaddownarrow" +}, + "↢": { + math: "\\leftarrowtail" +}, + "↣": { + math: "\\rightarrowtail" +}, + "↤": { + math: "\\mapsfrom" +}, + "↥": { + math: "\\MapsUp" +}, + "↦": { + math: "\\mapsto" +}, + "↧": { + math: "\\MapsDown" +}, + "↨": { + math: "\\updownarrowbar" +}, + "↩": { + math: "\\hookleftarrow" +}, + "↪": { + math: "\\hookrightarrow" +}, + "↫": { + math: "\\looparrowleft" +}, + "↬": { + math: "\\looparrowright" +}, + "↭": { + math: "\\leftrightsquigarrow" +}, + "↮": { + math: "\\nleftrightarrow" +}, + "↯": { + math: "\\lightning" +}, + "↰": { + math: "\\Lsh" +}, + "↱": { + math: "\\Rsh" +}, + "↲": { + math: "\\dlsh" +}, + "↳": { + text: "\\reflectbox{\\carriagereturn}", + textpackages: [ + "graphics", + "unicode-math" + ] +}, + "↴": { + math: "\\linefeed" +}, + "↵": { + math: "\\carriagereturn" +}, + "↶": { + math: "\\curvearrowleft" +}, + "↷": { + math: "\\curvearrowright" +}, + "↸": { + math: "\\barovernorthwestarrow" +}, + "↹": { + math: "\\barleftarrowrightarrowba" +}, + "↺": { + math: "\\circlearrowleft" +}, + "↻": { + math: "\\circlearrowright" +}, + "↼": { + math: "\\leftharpoonup" +}, + "↽": { + math: "\\leftharpoondown" +}, + "↾": { + math: "\\upharpoonright" +}, + "↿": { + math: "\\upharpoonleft" +}, + "⇀": { + math: "\\rightharpoonup", + mathpackages: [ + "amsmath", + "amssymb" + ] +}, + "⇁": { + math: "\\rightharpoondown" +}, + "⇂": { + math: "\\downharpoonright" +}, + "⇃": { + math: "\\downharpoonleft" +}, + "⇄": { + math: "\\rightleftarrows" +}, + "⇅": { + math: "\\dblarrowupdown" +}, + "⇆": { + math: "\\leftrightarrows" +}, + "⇇": { + math: "\\leftleftarrows" +}, + "⇈": { + math: "\\upuparrows" +}, + "⇉": { + math: "\\rightrightarrows" +}, + "⇊": { + math: "\\downdownarrows" +}, + "⇋": { + math: "\\leftrightharpoons" +}, + "⇌": { + math: "\\rightleftharpoons" +}, + "⇍": { + math: "\\nLeftarrow" +}, + "⇎": { + math: "\\nLeftrightarrow" +}, + "⇏": { + math: "\\nRightarrow" +}, + "⇐": { + math: "\\Leftarrow" +}, + "⇑": { + math: "\\Uparrow" +}, + "⇒": { + math: "\\Rightarrow" +}, + "⇓": { + math: "\\Downarrow" +}, + "⇔": { + math: "\\Leftrightarrow" +}, + "⇕": { + math: "\\Updownarrow" +}, + "⇖": { + math: "\\Nwarrow" +}, + "⇗": { + math: "\\Nearrow" +}, + "⇘": { + math: "\\Searrow" +}, + "⇙": { + math: "\\Swarrow" +}, + "⇚": { + math: "\\Lleftarrow" +}, + "⇛": { + math: "\\Rrightarrow" +}, + "⇜": { + math: "\\leftsquigarrow" +}, + "⇝": { + math: "\\rightsquigarrow" +}, + "⇞": { + math: "\\nHuparrow" +}, + "⇟": { + math: "\\nHdownarrow" +}, + "⇠": { + math: "\\dashleftarrow" +}, + "⇡": { + math: "\\updasharrow" +}, + "⇢": { + math: "\\dashrightarrow" +}, + "⇣": { + math: "\\downdasharrow" +}, + "⇤": { + math: "\\LeftArrowBar" +}, + "⇥": { + math: "\\RightArrowBar" +}, + "⇦": { + math: "\\leftwhitearrow" +}, + "⇧": { + math: "\\upwhitearrow" +}, + "⇨": { + math: "\\rightwhitearrow" +}, + "⇩": { + math: "\\downwhitearrow" +}, + "⇪": { + math: "\\whitearrowupfrombar" +}, + "⇴": { + math: "\\circleonrightarrow" +}, + "⇵": { + math: "\\DownArrowUpArrow" +}, + "⇶": { + math: "\\rightthreearrows" +}, + "⇷": { + math: "\\nvleftarrow" +}, + "⇸": { + math: "\\pfun" +}, + "⇹": { + math: "\\nvleftrightarrow" +}, + "⇺": { + math: "\\nVleftarrow" +}, + "⇻": { + math: "\\ffun" +}, + "⇼": { + math: "\\nVleftrightarrow" +}, + "⇽": { + math: "\\leftarrowtriangle" +}, + "⇾": { + math: "\\rightarrowtriangle" +}, + "⇿": { + math: "\\leftrightarrowtriangle" +}, + "∀": { + math: "\\forall" +}, + "∁": { + math: "\\complement" +}, + "∂": { + math: "\\partial" +}, + "∃": { + math: "\\exists" +}, + "∄": { + math: "\\nexists" +}, + "∅": { + math: "\\varnothing" +}, + "∆": { + math: "\\increment" +}, + "∇": { + math: "\\nabla" +}, + "∈": { + math: "\\in" +}, + "∉": { + math: "\\not\\in" +}, + "∊": { + math: "\\smallin" +}, + "∋": { + math: "\\ni" +}, + "∌": { + math: "\\not\\ni" +}, + "∍": { + math: "\\smallni" +}, + "∎": { + math: "\\QED" +}, + "∏": { + math: "\\prod" +}, + "∐": { + math: "\\coprod" +}, + "∑": { + math: "\\sum" +}, + "−": { + math: "-", + text: "-" +}, + "∓": { + math: "\\mp" +}, + "∔": { + math: "\\dotplus" +}, + "∕": { + text: "/" +}, + "∖": { + math: "\\setminus" +}, + "∗": { + math: "{_\\ast}" +}, + "∘": { + math: "\\circ" +}, + "∙": { + math: "\\bullet" +}, + "√": { + math: "\\surd" +}, + "∛": { + math: "\\sqrt[3]" +}, + "∜": { + math: "\\sqrt[4]" +}, + "∝": { + math: "\\propto" +}, + "∞": { + math: "\\infty" +}, + "∟": { + math: "\\rightangle" +}, + "∠": { + math: "\\angle" +}, + "∡": { + math: "\\measuredangle" +}, + "∢": { + math: "\\sphericalangle" +}, + "∣": { + math: "\\mid" +}, + "∤": { + math: "\\nmid" +}, + "∥": { + math: "\\parallel" +}, + "∦": { + math: "\\nparallel" +}, + "∧": { + math: "\\wedge" +}, + "∨": { + math: "\\vee" +}, + "∩": { + math: "\\cap" +}, + "∪": { + math: "\\cup" +}, + "∫": { + math: "\\int" +}, + "∬": { + math: "{\\int\\!\\int}" +}, + "∭": { + math: "{\\int\\!\\int\\!\\int}" +}, + "∮": { + math: "\\oint" +}, + "∯": { + math: "\\surfintegral" +}, + "∰": { + math: "\\volintegral" +}, + "∱": { + math: "\\clwintegral" +}, + "∲": { + math: "\\lcirclerightint", + mathpackages: [ + "MnSymbol" + ] +}, + "∳": { + math: "\\rcirclerightint", + mathpackages: [ + "MnSymbol" + ] +}, + "∴": { + math: "\\therefore" +}, + "∵": { + math: "\\because" +}, + "∶": { + math: ":" +}, + "∷": { + math: "\\Colon" +}, + "∸": { + math: "\\dotdiv", + mathpackages: [ + "mathabx" + ] +}, + "∹": { + math: "\\eqcolon" +}, + "∺": { + math: "\\mathbin{{:}\\!\\!{-}\\!\\!{:}}" +}, + "∻": { + math: "\\homothetic" +}, + "∼": { + math: "\\sim" +}, + "∽": { + math: "\\backsim" +}, + "∾": { + math: "\\lazysinv" +}, + "∿": { + math: "\\AC" +}, + "≀": { + math: "\\wr" +}, + "≁": { + math: "\\not\\sim" +}, + "≂": { + math: "\\texteqsim", + mathpackages: [ + "xecjk" + ] +}, + "≂̸": { + math: "\\NotEqualTilde" +}, + "≃": { + math: "\\simeq" +}, + "≄": { + math: "\\not\\simeq" +}, + "≅": { + math: "\\cong" +}, + "≆": { + math: "\\approxnotequal" +}, + "≇": { + math: "\\not\\cong" +}, + "≈": { + math: "\\approx" +}, + "≉": { + math: "\\not\\approx" +}, + "≊": { + math: "\\approxeq" +}, + "≋": { + math: "\\tildetrpl" +}, + "≋̸": { + math: "\\not\\apid" +}, + "≌": { + math: "\\allequal" +}, + "≍": { + math: "\\asymp" +}, + "≎": { + math: "\\Bumpeq" +}, + "≎̸": { + math: "\\NotHumpDownHump" +}, + "≏": { + math: "\\bumpeq" +}, + "≏̸": { + math: "\\NotHumpEqual" +}, + "≐": { + math: "\\doteq" +}, + "≐̸": { + math: "\\not\\doteq" +}, + "≑": { + math: "\\doteqdot" +}, + "≒": { + math: "\\fallingdotseq" +}, + "≓": { + math: "\\risingdotseq" +}, + "≔": { + math: "\\coloneq", + text: ":=" +}, + "≕": { + math: "=:" +}, + "≖": { + math: "\\eqcirc" +}, + "≗": { + math: "\\circeq" +}, + "≘": { + math: "\\arceq" +}, + "≙": { + math: "\\estimates" +}, + "≛": { + math: "\\starequal" +}, + "≜": { + math: "\\triangleq" +}, + "≝": { + math: "\\eqdef" +}, + "≞": { + math: "\\measeq" +}, + "≠": { + math: "\\neq" +}, + "≡": { + math: "\\equiv" +}, + "≢": { + math: "\\not\\equiv" +}, + "≣": { + math: "\\Equiv" +}, + "≤": { + math: "\\leq" +}, + "≥": { + math: "\\geq" +}, + "≦": { + math: "\\leqq" +}, + "≧": { + math: "\\geqq" +}, + "≨": { + math: "\\lneqq" +}, + "≨︀": { + math: "\\lvertneqq" +}, + "≩": { + math: "\\gneqq" +}, + "≩︀": { + math: "\\gvertneqq" +}, + "≪": { + math: "\\ll" +}, + "≪̸": { + math: "\\NotLessLess" +}, + "≫": { + math: "\\gg" +}, + "≫̸": { + math: "\\NotGreaterGreater" +}, + "≬": { + math: "\\between" +}, + "≭": { + math: "{\\not\\kern-0.3em\\times}" +}, + "≮": { + math: "\\not<" +}, + "≯": { + math: "\\not>" +}, + "≰": { + math: "\\not\\leq" +}, + "≱": { + math: "\\not\\geq" +}, + "≲": { + math: "\\lessequivlnt" +}, + "≳": { + math: "\\greaterequivlnt" +}, + "≶": { + math: "\\lessgtr" +}, + "≷": { + math: "\\gtrless" +}, + "≸": { + math: "\\notlessgreater" +}, + "≹": { + math: "\\notgreaterless" +}, + "≺": { + math: "\\prec" +}, + "≻": { + math: "\\succ" +}, + "≼": { + math: "\\preccurlyeq" +}, + "≽": { + math: "\\succcurlyeq" +}, + "≾": { + math: "\\precapprox" +}, + "≾̸": { + math: "\\NotPrecedesTilde" +}, + "≿": { + math: "\\succapprox" +}, + "≿̸": { + math: "\\NotSucceedsTilde" +}, + "⊀": { + math: "\\not\\prec" +}, + "⊁": { + math: "\\not\\succ" +}, + "⊂": { + math: "\\subset" +}, + "⊃": { + math: "\\supset" +}, + "⊄": { + math: "\\not\\subset" +}, + "⊅": { + math: "\\not\\supset" +}, + "⊆": { + math: "\\subseteq" +}, + "⊇": { + math: "\\supseteq" +}, + "⊈": { + math: "\\not\\subseteq" +}, + "⊉": { + math: "\\not\\supseteq" +}, + "⊊": { + math: "\\subsetneq" +}, + "⊊︀": { + math: "\\varsubsetneqq" +}, + "⊋": { + math: "\\supsetneq" +}, + "⊋︀": { + math: "\\varsupsetneq" +}, + "⊌": { + math: "\\cupleftarrow" +}, + "⊍": { + math: "\\cupdot" +}, + "⊎": { + math: "\\uplus" +}, + "⊏": { + math: "\\sqsubset" +}, + "⊏̸": { + math: "\\NotSquareSubset" +}, + "⊐": { + math: "\\sqsupset" +}, + "⊐̸": { + math: "\\NotSquareSuperset" +}, + "⊑": { + math: "\\sqsubseteq" +}, + "⊒": { + math: "\\sqsupseteq" +}, + "⊓": { + math: "\\sqcap" +}, + "⊔": { + math: "\\sqcup" +}, + "⊕": { + math: "\\oplus" +}, + "⊖": { + math: "\\ominus" +}, + "⊗": { + math: "\\otimes" +}, + "⊘": { + math: "\\oslash" +}, + "⊙": { + math: "\\odot" +}, + "⊚": { + math: "\\circledcirc" +}, + "⊛": { + math: "\\circledast" +}, + "⊜": { + math: "\\circledequal" +}, + "⊝": { + math: "\\circleddash" +}, + "⊞": { + math: "\\boxplus" +}, + "⊟": { + math: "\\boxminus" +}, + "⊠": { + math: "\\boxtimes" +}, + "⊡": { + math: "\\boxdot" +}, + "⊢": { + math: "\\vdash" +}, + "⊣": { + math: "\\dashv" +}, + "⊤": { + math: "\\top" +}, + "⊥": { + math: "\\perp" +}, + "⊦": { + math: "\\assert" +}, + "⊧": { + math: "\\truestate" +}, + "⊨": { + math: "\\forcesextra" +}, + "⊩": { + math: "\\Vdash" +}, + "⊪": { + math: "\\Vvdash" +}, + "⊫": { + math: "\\VDash" +}, + "⊬": { + math: "\\nvdash" +}, + "⊭": { + math: "\\nvDash" +}, + "⊮": { + math: "\\nVdash" +}, + "⊯": { + math: "\\nVDash" +}, + "⊰": { + math: "\\prurel" +}, + "⊱": { + math: "\\scurel" +}, + "⊲": { + math: "\\vartriangleleft" +}, + "⊳": { + math: "\\vartriangleright" +}, + "⊴": { + math: "\\trianglelefteq" +}, + "⊵": { + math: "\\trianglerighteq" +}, + "⊶": { + math: "\\original" +}, + "⊷": { + math: "\\image" +}, + "⊸": { + math: "\\multimap" +}, + "⊹": { + math: "\\hermitconjmatrix" +}, + "⊺": { + math: "\\intercal" +}, + "⊻": { + math: "\\veebar" +}, + "⊼": { + math: "\\barwedge" +}, + "⊽": { + math: "\\barvee" +}, + "⊾": { + math: "\\rightanglearc" +}, + "⊿": { + math: "\\varlrtriangle" +}, + "⋂": { + math: "\\bigcap" +}, + "⋃": { + math: "\\bigcup" +}, + "⋄": { + math: "\\diamond" +}, + "⋅": { + math: "\\cdot" +}, + "⋆": { + math: "\\star" +}, + "⋇": { + math: "\\divideontimes" +}, + "⋈": { + math: "\\bowtie" +}, + "⋉": { + math: "\\ltimes" +}, + "⋊": { + math: "\\rtimes" +}, + "⋋": { + math: "\\leftthreetimes" +}, + "⋌": { + math: "\\rightthreetimes" +}, + "⋍": { + math: "\\backsimeq" +}, + "⋎": { + math: "\\curlyvee" +}, + "⋏": { + math: "\\curlywedge" +}, + "⋐": { + math: "\\Subset" +}, + "⋑": { + math: "\\Supset" +}, + "⋒": { + math: "\\Cap" +}, + "⋓": { + math: "\\Cup" +}, + "⋔": { + math: "\\pitchfork" +}, + "⋕": { + math: "\\hash" +}, + "⋖": { + math: "\\lessdot" +}, + "⋗": { + math: "\\gtrdot" +}, + "⋘": { + math: "\\verymuchless" +}, + "⋙": { + math: "\\verymuchgreater" +}, + "⋚": { + math: "\\lesseqgtr" +}, + "⋛": { + math: "\\gtreqless" +}, + "⋜": { + math: "\\eqless" +}, + "⋝": { + math: "\\eqgtr" +}, + "⋞": { + math: "\\curlyeqprec" +}, + "⋟": { + math: "\\curlyeqsucc" +}, + "⋠": { + math: "\\npreceq" +}, + "⋡": { + math: "\\nsucceq" +}, + "⋢": { + math: "\\not\\sqsubseteq" +}, + "⋣": { + math: "\\not\\sqsupseteq" +}, + "⋤": { + math: "\\sqsubsetneq" +}, + "⋥": { + math: "\\Elzsqspne" +}, + "⋦": { + math: "\\lnsim" +}, + "⋧": { + math: "\\gnsim" +}, + "⋨": { + math: "\\precedesnotsimilar" +}, + "⋩": { + math: "\\succnsim" +}, + "⋪": { + math: "\\ntriangleleft" +}, + "⋫": { + math: "\\ntriangleright" +}, + "⋬": { + math: "\\ntrianglelefteq" +}, + "⋭": { + math: "\\ntrianglerighteq" +}, + "⋮": { + math: "\\vdots" +}, + "⋯": { + math: "\\cdots" +}, + "⋰": { + math: "\\upslopeellipsis" +}, + "⋱": { + math: "\\downslopeellipsis" +}, + "⋲": { + math: "\\disin" +}, + "⋳": { + math: "\\varisins" +}, + "⋴": { + math: "\\isins" +}, + "⋵": { + math: "\\isindot" +}, + "⋶": { + math: "\\barin" +}, + "⋷": { + math: "\\isinobar" +}, + "⋸": { + math: "\\isinvb" +}, + "⋹": { + math: "\\isinE" +}, + "⋺": { + math: "\\nisd" +}, + "⋻": { + math: "\\varnis" +}, + "⋼": { + math: "\\nis" +}, + "⋽": { + math: "\\varniobar" +}, + "⋾": { + math: "\\niobar" +}, + "⋿": { + math: "\\bagmember" +}, + "⌀": { + math: "\\diameter" +}, + "⌂": { + math: "\\house" +}, + "⌅": { + math: "\\varbarwedge", + text: "\\barwedge", + commandspacer: true +}, + "⌆": { + math: "\\perspcorrespond" +}, + "⌈": { + math: "\\lceil" +}, + "⌉": { + math: "\\rceil" +}, + "⌊": { + math: "\\lfloor" +}, + "⌋": { + math: "\\rfloor" +}, + "⌐": { + math: "\\invneg" +}, + "⌑": { + math: "\\wasylozenge" +}, + "⌒": { + math: "\\profline" +}, + "⌓": { + math: "\\profsurf" +}, + "⌕": { + math: "\\recorder" +}, + "⌖": { + math: "{\\mathchar\"2208}" +}, + "⌗": { + math: "\\viewdata" +}, + "⌙": { + math: "\\turnednot" +}, + "⌜": { + math: "\\ulcorner" +}, + "⌝": { + math: "\\urcorner" +}, + "⌞": { + math: "\\llcorner" +}, + "⌟": { + math: "\\lrcorner" +}, + "⌠": { + math: "\\inttop" +}, + "⌡": { + math: "\\intbottom" +}, + "⌢": { + math: "\\frown" +}, + "⌣": { + math: "\\smile" +}, + "〈": { + math: "\\langle" +}, + "〉": { + math: "\\rangle" +}, + "⌬": { + math: "\\varhexagonlrbonds" +}, + "⌲": { + math: "\\conictaper" +}, + "⌶": { + math: "\\topbot" +}, + "⌹": { + math: "\\APLinv" +}, + "⌿": { + math: "\\notslash" +}, + "⍀": { + math: "\\notbackslash" +}, + "⍇": { + math: "\\APLleftarrowbox" +}, + "⍈": { + math: "\\APLrightarrowbox" +}, + "⍉": { + math: "\\invdiameter" +}, + "⍐": { + math: "\\APLuparrowbox" +}, + "⍓": { + math: "\\APLboxupcaret" +}, + "⍗": { + math: "\\APLdownarrowbox" +}, + "⍝": { + math: "\\APLcomment" +}, + "⍞": { + math: "\\APLinput" +}, + "⍟": { + math: "\\APLlog" +}, + "⍰": { + math: "\\APLboxquestion" +}, + "⍼": { + math: "\\rangledownzigzagarrow" +}, + "⎔": { + math: "\\hexagon" +}, + "⎛": { + math: "\\lparenuend" +}, + "⎜": { + math: "\\lparenextender" +}, + "⎝": { + math: "\\lparenlend" +}, + "⎞": { + math: "\\rparenuend" +}, + "⎟": { + math: "\\rparenextender" +}, + "⎠": { + math: "\\rparenlend" +}, + "⎡": { + math: "\\lbrackuend" +}, + "⎢": { + math: "\\lbrackextender" +}, + "⎣": { + math: "\\Elzdlcorn" +}, + "⎤": { + math: "\\rbrackuend" +}, + "⎥": { + math: "\\rbrackextender" +}, + "⎦": { + math: "\\rbracklend" +}, + "⎧": { + math: "\\lbraceuend" +}, + "⎨": { + math: "\\lbracemid" +}, + "⎩": { + math: "\\lbracelend" +}, + "⎪": { + math: "\\vbraceextender" +}, + "⎫": { + math: "\\rbraceuend" +}, + "⎬": { + math: "\\rbracemid" +}, + "⎭": { + math: "\\rbracelend" +}, + "⎮": { + math: "\\intextender" +}, + "⎯": { + math: "\\harrowextender" +}, + "⎰": { + math: "\\lmoustache" +}, + "⎱": { + math: "\\rmoustache" +}, + "⎲": { + math: "\\sumtop" +}, + "⎳": { + math: "\\sumbottom" +}, + "⎴": { + math: "\\overbracket" +}, + "⎵": { + math: "\\underbracket" +}, + "⎶": { + math: "\\bbrktbrk" +}, + "⎷": { + math: "\\sqrtbottom" +}, + "⎸": { + math: "\\lvboxline" +}, + "⎹": { + math: "\\rvboxline" +}, + "⏎": { + math: "\\varcarriagereturn" +}, + "⏜": { + math: "\\overparen" +}, + "⏝": { + math: "\\underparen" +}, + "⏞": { + math: "\\overbrace" +}, + "⏟": { + math: "\\underbrace" +}, + "⏠": { + math: "\\obrbrak" +}, + "⏡": { + math: "\\ubrbrak" +}, + "⏢": { + math: "\\trapezium" +}, + "⏣": { + math: "\\benzenr" +}, + "⏤": { + math: "\\strns" +}, + "⏥": { + math: "\\fltns" +}, + "⏦": { + math: "\\accurrent" +}, + "⏧": { + math: "\\elinters" +}, + "␀": { + text: "NUL" +}, + "␁": { + text: "SOH" +}, + "␂": { + text: "STX" +}, + "␃": { + text: "ETX" +}, + "␄": { + text: "EOT" +}, + "␅": { + text: "ENQ" +}, + "␆": { + text: "ACK" +}, + "␇": { + text: "BEL" +}, + "␈": { + text: "BS" +}, + "␉": { + text: "HT" +}, + "␊": { + text: "LF" +}, + "␋": { + text: "VT" +}, + "␌": { + text: "FF" +}, + "␍": { + text: "CR" +}, + "␎": { + text: "SO" +}, + "␏": { + text: "SI" +}, + "␐": { + text: "DLE" +}, + "␑": { + text: "DC1" +}, + "␒": { + text: "DC2" +}, + "␓": { + text: "DC3" +}, + "␔": { + text: "DC4" +}, + "␕": { + text: "NAK" +}, + "␖": { + text: "SYN" +}, + "␗": { + text: "ETB" +}, + "␘": { + text: "CAN" +}, + "␙": { + text: "EM" +}, + "␚": { + text: "SUB" +}, + "␛": { + text: "ESC" +}, + "␜": { + text: "FS" +}, + "␝": { + text: "GS" +}, + "␞": { + text: "RS" +}, + "␟": { + text: "US" +}, + "␠": { + text: "SP" +}, + "␡": { + text: "DEL" +}, + "␣": { + text: "\\textvisiblespace", + commandspacer: true +}, + "␤": { + text: "NL" +}, + "␥": { + text: "///" +}, + "␦": { + text: "?" +}, + "①": { + text: "\\ding{172}" +}, + "②": { + text: "\\ding{173}" +}, + "③": { + text: "\\ding{174}" +}, + "④": { + text: "\\ding{175}" +}, + "⑤": { + text: "\\ding{176}" +}, + "⑥": { + text: "\\ding{177}" +}, + "⑦": { + text: "\\ding{178}" +}, + "⑧": { + text: "\\ding{179}" +}, + "⑨": { + text: "\\ding{180}" +}, + "⑩": { + text: "\\ding{181}" +}, + "⑪": { + text: "(11)" +}, + "⑫": { + text: "(12)" +}, + "⑬": { + text: "(13)" +}, + "⑭": { + text: "(14)" +}, + "⑮": { + text: "(15)" +}, + "⑯": { + text: "(16)" +}, + "⑰": { + text: "(17)" +}, + "⑱": { + text: "(18)" +}, + "⑲": { + text: "(19)" +}, + "⑳": { + text: "(20)" +}, + "⑴": { + text: "(1)" +}, + "⑵": { + text: "(2)" +}, + "⑶": { + text: "(3)" +}, + "⑷": { + text: "(4)" +}, + "⑸": { + text: "(5)" +}, + "⑹": { + text: "(6)" +}, + "⑺": { + text: "(7)" +}, + "⑻": { + text: "(8)" +}, + "⑼": { + text: "(9)" +}, + "⑽": { + text: "(10)" +}, + "⑾": { + text: "(11)" +}, + "⑿": { + text: "(12)" +}, + "⒀": { + text: "(13)" +}, + "⒁": { + text: "(14)" +}, + "⒂": { + text: "(15)" +}, + "⒃": { + text: "(16)" +}, + "⒄": { + text: "(17)" +}, + "⒅": { + text: "(18)" +}, + "⒆": { + text: "(19)" +}, + "⒇": { + text: "(20)" +}, + "⒈": { + text: "1." +}, + "⒉": { + text: "2." +}, + "⒊": { + text: "3." +}, + "⒋": { + text: "4." +}, + "⒌": { + text: "5." +}, + "⒍": { + text: "6." +}, + "⒎": { + text: "7." +}, + "⒏": { + text: "8." +}, + "⒐": { + text: "9." +}, + "⒑": { + text: "10." +}, + "⒒": { + text: "11." +}, + "⒓": { + text: "12." +}, + "⒔": { + text: "13." +}, + "⒕": { + text: "14." +}, + "⒖": { + text: "15." +}, + "⒗": { + text: "16." +}, + "⒘": { + text: "17." +}, + "⒙": { + text: "18." +}, + "⒚": { + text: "19." +}, + "⒛": { + text: "20." +}, + "⒜": { + text: "(a)" +}, + "⒝": { + text: "(b)" +}, + "⒞": { + text: "(c)" +}, + "⒟": { + text: "(d)" +}, + "⒠": { + text: "(e)" +}, + "⒡": { + text: "(f)" +}, + "⒢": { + text: "(g)" +}, + "⒣": { + text: "(h)" +}, + "⒤": { + text: "(i)" +}, + "⒥": { + text: "(j)" +}, + "⒦": { + text: "(k)" +}, + "⒧": { + text: "(l)" +}, + "⒨": { + text: "(m)" +}, + "⒩": { + text: "(n)" +}, + "⒪": { + text: "(o)" +}, + "⒫": { + text: "(p)" +}, + "⒬": { + text: "(q)" +}, + "⒭": { + text: "(r)" +}, + "⒮": { + text: "(s)" +}, + "⒯": { + text: "(t)" +}, + "⒰": { + text: "(u)" +}, + "⒱": { + text: "(v)" +}, + "⒲": { + text: "(w)" +}, + "⒳": { + text: "(x)" +}, + "⒴": { + text: "(y)" +}, + "⒵": { + text: "(z)" +}, + "Ⓐ": { + text: "(A)" +}, + "Ⓑ": { + text: "(B)" +}, + "Ⓒ": { + text: "(C)" +}, + "Ⓓ": { + text: "(D)" +}, + "Ⓔ": { + text: "(E)" +}, + "Ⓕ": { + text: "(F)" +}, + "Ⓖ": { + text: "(G)" +}, + "Ⓗ": { + text: "(H)" +}, + "Ⓘ": { + text: "(I)" +}, + "Ⓙ": { + text: "(J)" +}, + "Ⓚ": { + text: "(K)" +}, + "Ⓛ": { + text: "(L)" +}, + "Ⓜ": { + text: "(M)" +}, + "Ⓝ": { + text: "(N)" +}, + "Ⓞ": { + text: "(O)" +}, + "Ⓟ": { + text: "(P)" +}, + "Ⓠ": { + text: "(Q)" +}, + "Ⓡ": { + text: "(R)" +}, + "Ⓢ": { + math: "\\circledS" +}, + "Ⓣ": { + text: "(T)" +}, + "Ⓤ": { + text: "(U)" +}, + "Ⓥ": { + text: "(V)" +}, + "Ⓦ": { + text: "(W)" +}, + "Ⓧ": { + text: "(X)" +}, + "Ⓨ": { + text: "(Y)" +}, + "Ⓩ": { + text: "(Z)" +}, + "ⓐ": { + text: "(a)" +}, + "ⓑ": { + text: "(b)" +}, + "ⓒ": { + text: "(c)" +}, + "ⓓ": { + text: "(d)" +}, + "ⓔ": { + text: "(e)" +}, + "ⓕ": { + text: "(f)" +}, + "ⓖ": { + text: "(g)" +}, + "ⓗ": { + text: "(h)" +}, + "ⓘ": { + text: "(i)" +}, + "ⓙ": { + text: "(j)" +}, + "ⓚ": { + text: "(k)" +}, + "ⓛ": { + text: "(l)" +}, + "ⓜ": { + text: "(m)" +}, + "ⓝ": { + text: "(n)" +}, + "ⓞ": { + text: "(o)" +}, + "ⓟ": { + text: "(p)" +}, + "ⓠ": { + text: "(q)" +}, + "ⓡ": { + text: "(r)" +}, + "ⓢ": { + text: "(s)" +}, + "ⓣ": { + text: "(t)" +}, + "ⓤ": { + text: "(u)" +}, + "ⓥ": { + text: "(v)" +}, + "ⓦ": { + text: "(w)" +}, + "ⓧ": { + text: "(x)" +}, + "ⓨ": { + text: "(y)" +}, + "ⓩ": { + text: "(z)" +}, + "⓪": { + text: "(0)" +}, + "─": { + text: "-" +}, + "━": { + text: "=" +}, + "│": { + text: "|" +}, + "┃": { + text: "|" +}, + "┄": { + text: "-" +}, + "┅": { + text: "=" +}, + "┆": { + math: "\\Elzdshfnc" +}, + "┇": { + text: "|" +}, + "┈": { + text: "-" +}, + "┉": { + text: "=" +}, + "┊": { + text: "|" +}, + "┋": { + text: "|" +}, + "┌": { + text: "+" +}, + "┍": { + text: "+" +}, + "┎": { + text: "+" +}, + "┏": { + text: "+" +}, + "┐": { + text: "+" +}, + "┑": { + text: "+" +}, + "┒": { + text: "+" +}, + "┓": { + text: "+" +}, + "└": { + text: "+" +}, + "┕": { + text: "+" +}, + "┖": { + text: "+" +}, + "┗": { + text: "+" +}, + "┘": { + text: "+" +}, + "┙": { + math: "\\Elzsqfnw" +}, + "┚": { + text: "+" +}, + "┛": { + text: "+" +}, + "├": { + text: "+" +}, + "┝": { + text: "+" +}, + "┞": { + text: "+" +}, + "┟": { + text: "+" +}, + "┠": { + text: "+" +}, + "┡": { + text: "+" +}, + "┢": { + text: "+" +}, + "┣": { + text: "+" +}, + "┤": { + text: "+" +}, + "┥": { + text: "+" +}, + "┦": { + text: "+" +}, + "┧": { + text: "+" +}, + "┨": { + text: "+" +}, + "┩": { + text: "+" +}, + "┪": { + text: "+" +}, + "┫": { + text: "+" +}, + "┬": { + text: "+" +}, + "┭": { + text: "+" +}, + "┮": { + text: "+" +}, + "┯": { + text: "+" +}, + "┰": { + text: "+" +}, + "┱": { + text: "+" +}, + "┲": { + text: "+" +}, + "┳": { + text: "+" +}, + "┴": { + text: "+" +}, + "┵": { + text: "+" +}, + "┶": { + text: "+" +}, + "┷": { + text: "+" +}, + "┸": { + text: "+" +}, + "┹": { + text: "+" +}, + "┺": { + text: "+" +}, + "┻": { + text: "+" +}, + "┼": { + text: "+" +}, + "┽": { + text: "+" +}, + "┾": { + text: "+" +}, + "┿": { + text: "+" +}, + "╀": { + text: "+" +}, + "╁": { + text: "+" +}, + "╂": { + text: "+" +}, + "╃": { + text: "+" +}, + "╄": { + text: "+" +}, + "╅": { + text: "+" +}, + "╆": { + text: "+" +}, + "╇": { + text: "+" +}, + "╈": { + text: "+" +}, + "╉": { + text: "+" +}, + "╊": { + text: "+" +}, + "╋": { + text: "+" +}, + "╌": { + text: "-" +}, + "╍": { + text: "=" +}, + "╎": { + text: "|" +}, + "╏": { + text: "|" +}, + "═": { + text: "=" +}, + "║": { + text: "|" +}, + "╒": { + text: "+" +}, + "╓": { + text: "+" +}, + "╔": { + text: "+" +}, + "╕": { + text: "+" +}, + "╖": { + text: "+" +}, + "╗": { + text: "+" +}, + "╘": { + text: "+" +}, + "╙": { + text: "+" +}, + "╚": { + text: "+" +}, + "╛": { + text: "+" +}, + "╜": { + text: "+" +}, + "╝": { + text: "+" +}, + "╞": { + text: "+" +}, + "╟": { + text: "+" +}, + "╠": { + text: "+" +}, + "╡": { + text: "+" +}, + "╢": { + text: "+" +}, + "╣": { + text: "+" +}, + "╤": { + text: "+" +}, + "╥": { + text: "+" +}, + "╦": { + text: "+" +}, + "╧": { + text: "+" +}, + "╨": { + text: "+" +}, + "╩": { + text: "+" +}, + "╪": { + text: "+" +}, + "╫": { + text: "+" +}, + "╬": { + text: "+" +}, + "╭": { + text: "+" +}, + "╮": { + text: "+" +}, + "╯": { + text: "+" +}, + "╰": { + text: "+" +}, + "╱": { + math: "\\diagup" +}, + "╲": { + text: "\\" +}, + "╳": { + text: "X" +}, + "╼": { + text: "-" +}, + "╽": { + text: "|" +}, + "╾": { + text: "-" +}, + "╿": { + text: "|" +}, + "▀": { + math: "\\blockuphalf" +}, + "▄": { + math: "\\blocklowhalf" +}, + "█": { + math: "\\blockfull" +}, + "▌": { + math: "\\blocklefthalf" +}, + "▐": { + math: "\\blockrighthalf" +}, + "░": { + math: "\\blockqtrshaded" +}, + "▒": { + math: "\\blockhalfshaded" +}, + "▓": { + math: "\\blockthreeqtrshaded" +}, + "■": { + math: "\\mdlgblksquare", + text: "\\ding{110}" +}, + "□": { + math: "\\square" +}, + "▢": { + math: "\\squoval" +}, + "▣": { + math: "\\blackinwhitesquare" +}, + "▤": { + math: "\\squarehfill" +}, + "▥": { + math: "\\squarevfill" +}, + "▦": { + math: "\\squarehvfill" +}, + "▧": { + math: "\\squarenwsefill" +}, + "▨": { + math: "\\squareneswfill" +}, + "▩": { + math: "\\squarecrossfill" +}, + "▪": { + math: "\\blacksquare" +}, + "▫": { + math: "\\smwhtsquare" +}, + "▬": { + math: "\\hrectangleblack" +}, + "▭": { + math: "\\fbox{~~}" +}, + "▮": { + math: "\\vrectangleblack" +}, + "▯": { + math: "\\Elzvrecto" +}, + "▰": { + math: "\\parallelogramblack" +}, + "▲": { + math: "\\bigblacktriangleup", + text: "\\ding{115}" +}, + "△": { + math: "\\bigtriangleup" +}, + "▴": { + math: "\\blacktriangle" +}, + "▵": { + math: "\\vartriangle" +}, + "▶": { + math: "\\RHD" +}, + "▷": { + math: "\\rhd" +}, + "▸": { + math: "\\blacktriangleright" +}, + "▹": { + math: "\\triangleright" +}, + "►": { + math: "\\blackpointerright" +}, + "▻": { + math: "\\whitepointerright" +}, + "▼": { + math: "\\bigblacktriangledown", + text: "\\ding{116}" +}, + "▽": { + math: "\\bigtriangledown" +}, + "▾": { + math: "\\blacktriangledown" +}, + "▿": { + math: "\\triangledown" +}, + "◀": { + math: "\\LHD" +}, + "◁": { + math: "\\lhd" +}, + "◂": { + math: "\\blacktriangleleft" +}, + "◃": { + math: "\\triangleleft" +}, + "◄": { + math: "\\blackpointerleft" +}, + "◅": { + math: "\\whitepointerleft" +}, + "◆": { + math: "\\Diamondblack", + text: "\\ding{117}" +}, + "◇": { + math: "\\Diamond" +}, + "◈": { + math: "\\blackinwhitediamond" +}, + "◉": { + math: "\\fisheye" +}, + "◊": { + math: "\\lozenge" +}, + "○": { + math: "\\bigcirc" +}, + "◌": { + math: "\\dottedcircle" +}, + "◍": { + math: "\\circlevertfill" +}, + "◎": { + math: "\\bullseye" +}, + "●": { + math: "\\CIRCLE", + text: "\\ding{108}" +}, + "◐": { + math: "\\Elzcirfl" +}, + "◑": { + math: "\\Elzcirfr" +}, + "◒": { + math: "\\Elzcirfb" +}, + "◓": { + math: "\\circletophalfblack" +}, + "◔": { + math: "\\circleurquadblack" +}, + "◕": { + math: "\\blackcircleulquadwhite" +}, + "◖": { + math: "\\LEFTCIRCLE" +}, + "◗": { + math: "\\RIGHTCIRCLE", + text: "\\ding{119}" +}, + "◘": { + math: "\\Elzrvbull" +}, + "◙": { + math: "\\inversewhitecircle" +}, + "◚": { + math: "\\invwhiteupperhalfcircle" +}, + "◛": { + math: "\\invwhitelowerhalfcircle" +}, + "◜": { + math: "\\ularc" +}, + "◝": { + math: "\\urarc" +}, + "◞": { + math: "\\lrarc" +}, + "◟": { + math: "\\llarc" +}, + "◠": { + math: "\\topsemicircle" +}, + "◡": { + math: "\\botsemicircle" +}, + "◢": { + math: "\\lrblacktriangle" +}, + "◣": { + math: "\\llblacktriangle" +}, + "◤": { + math: "\\ulblacktriangle" +}, + "◥": { + math: "\\urblacktriangle" +}, + "◦": { + math: "\\smwhtcircle" +}, + "◧": { + math: "\\Elzsqfl" +}, + "◨": { + math: "\\Elzsqfr" +}, + "◩": { + math: "\\squareulblack" +}, + "◪": { + math: "\\Elzsqfse" +}, + "◫": { + math: "\\boxbar" +}, + "◬": { + math: "\\trianglecdot" +}, + "◭": { + math: "\\triangleleftblack" +}, + "◮": { + math: "\\trianglerightblack" +}, + "◯": { + math: "\\bigcirc" +}, + "◰": { + math: "\\squareulquad" +}, + "◱": { + math: "\\squarellquad" +}, + "◲": { + math: "\\squarelrquad" +}, + "◳": { + math: "\\squareurquad" +}, + "◴": { + math: "\\circleulquad" +}, + "◵": { + math: "\\circlellquad" +}, + "◶": { + math: "\\circlelrquad" +}, + "◷": { + math: "\\circleurquad" +}, + "◸": { + math: "\\ultriangle" +}, + "◹": { + math: "\\urtriangle" +}, + "◺": { + math: "\\lltriangle" +}, + "◻": { + math: "\\square" +}, + "◼": { + math: "\\blacksquare" +}, + "◽": { + math: "\\mdsmwhtsquare" +}, + "◾": { + math: "\\mdsmblksquare" +}, + "◿": { + math: "\\lrtriangle" +}, + "★": { + math: "\\bigstar", + text: "\\ding{72}" +}, + "☆": { + math: "\\bigwhitestar", + text: "\\ding{73}" +}, + "☉": { + math: "\\Sun" +}, + "☎": { + text: "\\ding{37}" +}, + "☐": { + math: "\\Square" +}, + "☑": { + math: "\\CheckedBox" +}, + "☒": { + math: "\\XBox" +}, + "☓": { + text: "X" +}, + "☕": { + math: "\\steaming" +}, + "☛": { + text: "\\ding{42}" +}, + "☞": { + math: "\\pointright", + text: "\\ding{43}" +}, + "☠": { + math: "\\skull" +}, + "☡": { + math: "\\danger" +}, + "☢": { + math: "\\radiation" +}, + "☣": { + math: "\\biohazard" +}, + "☯": { + math: "\\yinyang" +}, + "☹": { + math: "\\frownie" +}, + "☺": { + math: "\\smiley" +}, + "☻": { + math: "\\blacksmiley" +}, + "☼": { + math: "\\sun" +}, + "☽": { + text: "\\rightmoon", + commandspacer: true, + textpackages: [ + "wasysym" + ] +}, + "☾": { + text: "\\leftmoon", + commandspacer: true, + textpackages: [ + "wasysym" + ] +}, + "☿": { + math: "\\mercury", + text: "\\mercury", + commandspacer: true +}, + "♀": { + math: "\\female", + text: "\\venus", + commandspacer: true +}, + "♁": { + math: "\\earth" +}, + "♂": { + math: "\\male", + text: "\\male", + commandspacer: true +}, + "♃": { + math: "\\jupiter", + text: "\\jupiter", + commandspacer: true +}, + "♄": { + math: "\\saturn", + text: "\\saturn", + commandspacer: true +}, + "♅": { + math: "\\uranus", + text: "\\uranus", + commandspacer: true +}, + "♆": { + math: "\\neptune", + text: "\\neptune", + commandspacer: true +}, + "♇": { + math: "\\pluto", + text: "\\pluto", + commandspacer: true +}, + "♈": { + math: "\\aries", + text: "\\aries", + commandspacer: true +}, + "♉": { + math: "\\taurus", + text: "\\taurus", + commandspacer: true +}, + "♊": { + math: "\\gemini", + text: "\\gemini", + commandspacer: true +}, + "♋": { + math: "\\cancer", + text: "\\cancer", + commandspacer: true +}, + "♌": { + math: "\\leo", + text: "\\leo", + commandspacer: true +}, + "♍": { + math: "\\virgo", + text: "\\virgo", + commandspacer: true +}, + "♎": { + math: "\\libra", + text: "\\libra", + commandspacer: true +}, + "♏": { + math: "\\scorpio", + text: "\\scorpio", + commandspacer: true +}, + "♐": { + math: "\\sagittarius", + text: "\\sagittarius", + commandspacer: true +}, + "♑": { + math: "\\capricornus", + text: "\\capricornus", + commandspacer: true +}, + "♒": { + math: "\\aquarius", + text: "\\aquarius", + commandspacer: true +}, + "♓": { + math: "\\pisces", + text: "\\pisces", + commandspacer: true +}, + "♠": { + math: "\\spadesuit", + text: "\\ding{171}" +}, + "♡": { + math: "\\heartsuit" +}, + "♢": { + math: "\\diamond" +}, + "♣": { + math: "\\clubsuit", + text: "\\ding{168}" +}, + "♤": { + math: "\\varspadesuit" +}, + "♥": { + math: "\\varheartsuit", + text: "\\ding{170}" +}, + "♦": { + math: "\\vardiamondsuit", + text: "\\ding{169}" +}, + "♧": { + math: "\\varclubsuit" +}, + "♩": { + math: "\\quarternote", + text: "\\quarternote", + commandspacer: true +}, + "♪": { + math: "\\eighthnote", + text: "\\eighthnote", + commandspacer: true +}, + "♫": { + math: "\\twonotes" +}, + "♬": { + math: "\\sixteenthnote" +}, + "♭": { + math: "\\flat" +}, + "♮": { + math: "\\natural" +}, + "♯": { + math: "\\sharp" +}, + "♻": { + math: "\\recycle" +}, + "♾": { + math: "\\acidfree" +}, + "⚀": { + math: "\\dicei" +}, + "⚁": { + math: "\\diceii" +}, + "⚂": { + math: "\\diceiii" +}, + "⚃": { + math: "\\diceiv" +}, + "⚄": { + math: "\\dicev" +}, + "⚅": { + math: "\\dicevi" +}, + "⚆": { + math: "\\circledrightdot" +}, + "⚇": { + math: "\\circledtwodots" +}, + "⚈": { + math: "\\blackcircledrightdot" +}, + "⚉": { + math: "\\blackcircledtwodots" +}, + "⚓": { + math: "\\anchor" +}, + "⚔": { + math: "\\swords" +}, + "⚠": { + math: "\\warning" +}, + "⚥": { + math: "\\Hermaphrodite" +}, + "⚪": { + math: "\\medcirc" +}, + "⚫": { + math: "\\medbullet" +}, + "⚬": { + math: "\\mdsmwhtcircle" +}, + "⚲": { + math: "\\neuter" +}, + "✁": { + text: "\\ding{33}" +}, + "✂": { + text: "\\ding{34}" +}, + "✃": { + text: "\\ding{35}" +}, + "✄": { + text: "\\ding{36}" +}, + "✆": { + text: "\\ding{38}" +}, + "✇": { + text: "\\ding{39}" +}, + "✈": { + text: "\\ding{40}" +}, + "✉": { + text: "\\ding{41}" +}, + "✌": { + text: "\\ding{44}" +}, + "✍": { + text: "\\ding{45}" +}, + "✎": { + math: "\\pencil", + text: "\\ding{46}" +}, + "✏": { + text: "\\ding{47}" +}, + "✐": { + text: "\\ding{48}" +}, + "✑": { + text: "\\ding{49}" +}, + "✒": { + text: "\\ding{50}" +}, + "✓": { + math: "\\checkmark", + text: "\\ding{51}" +}, + "✔": { + text: "\\ding{52}" +}, + "✕": { + text: "\\ding{53}" +}, + "✖": { + text: "\\ding{54}" +}, + "✗": { + math: "\\ballotx", + text: "\\ding{55}" +}, + "✘": { + text: "\\ding{56}" +}, + "✙": { + text: "\\ding{57}" +}, + "✚": { + text: "\\ding{58}" +}, + "✛": { + text: "\\ding{59}" +}, + "✜": { + text: "\\ding{60}" +}, + "✝": { + text: "\\ding{61}" +}, + "✞": { + text: "\\ding{62}" +}, + "✟": { + text: "\\ding{63}" +}, + "✠": { + math: "\\maltese", + text: "\\ding{64}" +}, + "✡": { + text: "\\ding{65}" +}, + "✢": { + text: "\\ding{66}" +}, + "✣": { + text: "\\ding{67}" +}, + "✤": { + text: "\\ding{68}" +}, + "✥": { + text: "\\ding{69}" +}, + "✦": { + text: "\\ding{70}" +}, + "✧": { + text: "\\ding{71}" +}, + "✩": { + text: "\\ding{73}" +}, + "✪": { + math: "\\circledstar", + text: "\\ding{74}" +}, + "✫": { + text: "\\ding{75}" +}, + "✬": { + text: "\\ding{76}" +}, + "✭": { + text: "\\ding{77}" +}, + "✮": { + text: "\\ding{78}" +}, + "✯": { + text: "\\ding{79}" +}, + "✰": { + text: "\\ding{80}" +}, + "✱": { + text: "\\ding{81}" +}, + "✲": { + text: "\\ding{82}" +}, + "✳": { + text: "\\ding{83}" +}, + "✴": { + text: "\\ding{84}" +}, + "✵": { + text: "\\ding{85}" +}, + "✶": { + math: "\\varstar", + text: "\\ding{86}" +}, + "✷": { + text: "\\ding{87}" +}, + "✸": { + text: "\\ding{88}" +}, + "✹": { + text: "\\ding{89}" +}, + "✺": { + text: "\\ding{90}" +}, + "✻": { + text: "\\ding{91}" +}, + "✼": { + text: "\\ding{92}" +}, + "✽": { + math: "\\dingasterisk", + text: "\\ding{93}" +}, + "✾": { + text: "\\ding{94}" +}, + "✿": { + text: "\\ding{95}" +}, + "❀": { + text: "\\ding{96}" +}, + "❁": { + text: "\\ding{97}" +}, + "❂": { + text: "\\ding{98}" +}, + "❃": { + text: "\\ding{99}" +}, + "❄": { + text: "\\ding{100}" +}, + "❅": { + text: "\\ding{101}" +}, + "❆": { + text: "\\ding{102}" +}, + "❇": { + text: "\\ding{103}" +}, + "❈": { + text: "\\ding{104}" +}, + "❉": { + text: "\\ding{105}" +}, + "❊": { + text: "\\ding{106}" +}, + "❋": { + text: "\\ding{107}" +}, + "❍": { + text: "\\ding{109}" +}, + "❏": { + text: "\\ding{111}" +}, + "❐": { + text: "\\ding{112}" +}, + "❑": { + text: "\\ding{113}" +}, + "❒": { + text: "\\ding{114}" +}, + "❖": { + text: "\\ding{118}" +}, + "❘": { + text: "\\ding{120}" +}, + "❙": { + text: "\\ding{121}" +}, + "❚": { + text: "\\ding{122}" +}, + "❛": { + text: "\\ding{123}" +}, + "❜": { + text: "\\ding{124}" +}, + "❝": { + text: "\\ding{125}" +}, + "❞": { + text: "\\ding{126}" +}, + "❡": { + text: "\\ding{161}" +}, + "❢": { + text: "\\ding{162}" +}, + "❣": { + text: "\\ding{163}" +}, + "❤": { + text: "\\ding{164}" +}, + "❥": { + text: "\\ding{165}" +}, + "❦": { + text: "\\ding{166}" +}, + "❧": { + text: "\\ding{167}" +}, + "❲": { + math: "\\lbrbrak" +}, + "❳": { + math: "\\rbrbrak" +}, + "❶": { + text: "\\ding{182}" +}, + "❷": { + text: "\\ding{183}" +}, + "❸": { + text: "\\ding{184}" +}, + "❹": { + text: "\\ding{185}" +}, + "❺": { + text: "\\ding{186}" +}, + "❻": { + text: "\\ding{187}" +}, + "❼": { + text: "\\ding{188}" +}, + "❽": { + text: "\\ding{189}" +}, + "❾": { + text: "\\ding{190}" +}, + "❿": { + text: "\\ding{191}" +}, + "➀": { + text: "\\ding{192}" +}, + "➁": { + text: "\\ding{193}" +}, + "➂": { + text: "\\ding{194}" +}, + "➃": { + text: "\\ding{195}" +}, + "➄": { + text: "\\ding{196}" +}, + "➅": { + text: "\\ding{197}" +}, + "➆": { + text: "\\ding{198}" +}, + "➇": { + text: "\\ding{199}" +}, + "➈": { + text: "\\ding{200}" +}, + "➉": { + text: "\\ding{201}" +}, + "➊": { + text: "\\ding{202}" +}, + "➋": { + text: "\\ding{203}" +}, + "➌": { + text: "\\ding{204}" +}, + "➍": { + text: "\\ding{205}" +}, + "➎": { + text: "\\ding{206}" +}, + "➏": { + text: "\\ding{207}" +}, + "➐": { + text: "\\ding{208}" +}, + "➑": { + text: "\\ding{209}" +}, + "➒": { + text: "\\ding{210}" +}, + "➓": { + text: "\\ding{211}" +}, + "➔": { + text: "\\ding{212}" +}, + "➘": { + text: "\\ding{216}" +}, + "➙": { + text: "\\ding{217}" +}, + "➚": { + text: "\\ding{218}" +}, + "➛": { + math: "\\draftingarrow", + text: "\\ding{219}" +}, + "➜": { + text: "\\ding{220}" +}, + "➝": { + text: "\\ding{221}" +}, + "➞": { + text: "\\ding{222}" +}, + "➟": { + text: "\\ding{223}" +}, + "➠": { + text: "\\ding{224}" +}, + "➡": { + text: "\\ding{225}" +}, + "➢": { + math: "\\arrowbullet", + text: "\\ding{226}" +}, + "➣": { + text: "\\ding{227}" +}, + "➤": { + text: "\\ding{228}" +}, + "➥": { + text: "\\ding{229}" +}, + "➦": { + text: "\\ding{230}" +}, + "➧": { + text: "\\ding{231}" +}, + "➨": { + text: "\\ding{232}" +}, + "➩": { + text: "\\ding{233}" +}, + "➪": { + text: "\\ding{234}" +}, + "➫": { + text: "\\ding{235}" +}, + "➬": { + text: "\\ding{236}" +}, + "➭": { + text: "\\ding{237}" +}, + "➮": { + text: "\\ding{238}" +}, + "➯": { + text: "\\ding{239}" +}, + "➱": { + text: "\\ding{241}" +}, + "➲": { + text: "\\ding{242}" +}, + "➳": { + text: "\\ding{243}" +}, + "➴": { + text: "\\ding{244}" +}, + "➵": { + text: "\\ding{245}" +}, + "➶": { + text: "\\ding{246}" +}, + "➷": { + text: "\\ding{247}" +}, + "➸": { + text: "\\ding{248}" +}, + "➹": { + text: "\\ding{249}" +}, + "➺": { + text: "\\ding{250}" +}, + "➻": { + text: "\\ding{251}" +}, + "➼": { + text: "\\ding{252}" +}, + "➽": { + text: "\\ding{253}" +}, + "➾": { + text: "\\ding{254}" +}, + "⟀": { + math: "\\threedangle" +}, + "⟁": { + math: "\\whiteinwhitetriangle" +}, + "⟂": { + math: "\\perp" +}, + "⟃": { + math: "\\subsetcirc" +}, + "⟄": { + math: "\\supsetcirc" +}, + "⟅": { + math: "\\Lbag" +}, + "⟆": { + math: "\\Rbag" +}, + "⟇": { + math: "\\veedot" +}, + "⟈": { + math: "\\bsolhsub" +}, + "⟉": { + math: "\\suphsol" +}, + "⟌": { + math: "\\longdivision" +}, + "⟐": { + math: "\\Diamonddot" +}, + "⟑": { + math: "\\wedgedot" +}, + "⟒": { + math: "\\upin" +}, + "⟓": { + math: "\\pullback" +}, + "⟔": { + math: "\\pushout" +}, + "⟕": { + math: "\\leftouterjoin" +}, + "⟖": { + math: "\\rightouterjoin" +}, + "⟗": { + math: "\\fullouterjoin" +}, + "⟘": { + math: "\\bigbot" +}, + "⟙": { + math: "\\bigtop" +}, + "⟚": { + math: "\\DashVDash" +}, + "⟛": { + math: "\\dashVdash" +}, + "⟜": { + math: "\\multimapinv" +}, + "⟝": { + math: "\\vlongdash" +}, + "⟞": { + math: "\\longdashv" +}, + "⟟": { + math: "\\cirbot" +}, + "⟠": { + math: "\\lozengeminus" +}, + "⟡": { + math: "\\concavediamond" +}, + "⟢": { + math: "\\concavediamondtickleft" +}, + "⟣": { + math: "\\concavediamondtickright" +}, + "⟤": { + math: "\\whitesquaretickleft" +}, + "⟥": { + math: "\\whitesquaretickright" +}, + "⟦": { + math: "\\llbracket" +}, + "⟧": { + math: "\\rrbracket" +}, + "⟨": { + math: "\\langle" +}, + "⟩": { + math: "\\rangle" +}, + "⟪": { + math: "\\lang" +}, + "⟫": { + math: "\\rang" +}, + "⟬": { + math: "\\Lbrbrak" +}, + "⟭": { + math: "\\Rbrbrak" +}, + "⟮": { + math: "\\lgroup" +}, + "⟯": { + math: "\\rgroup" +}, + "⟰": { + math: "\\UUparrow" +}, + "⟱": { + math: "\\DDownarrow" +}, + "⟲": { + math: "\\acwgapcirclearrow" +}, + "⟳": { + math: "\\cwgapcirclearrow" +}, + "⟴": { + math: "\\rightarrowonoplus" +}, + "⟵": { + math: "\\longleftarrow" +}, + "⟶": { + math: "\\longrightarrow" +}, + "⟷": { + math: "\\longleftrightarrow" +}, + "⟸": { + math: "\\Longleftarrow" +}, + "⟹": { + math: "\\Longrightarrow" +}, + "⟺": { + math: "\\Longleftrightarrow" +}, + "⟻": { + math: "\\longmapsfrom" +}, + "⟼": { + math: "\\longmapsto" +}, + "⟽": { + math: "\\Longmapsfrom" +}, + "⟾": { + math: "\\Longmapsto" +}, + "⟿": { + math: "\\sim\\joinrel\\leadsto" +}, + "⤀": { + math: "\\psur" +}, + "⤁": { + math: "\\nVtwoheadrightarrow" +}, + "⤂": { + math: "\\nvLeftarrow" +}, + "⤃": { + math: "\\nvRightarrow" +}, + "⤄": { + math: "\\nvLeftrightarrow" +}, + "⤆": { + math: "\\Mapsfrom" +}, + "⤇": { + math: "\\Mapsto" +}, + "⤈": { + math: "\\downarrowbarred" +}, + "⤉": { + math: "\\uparrowbarred" +}, + "⤊": { + math: "\\Uuparrow" +}, + "⤋": { + math: "\\Ddownarrow" +}, + "⤌": { + math: "\\leftbkarrow" +}, + "⤍": { + math: "\\rightbkarrow" +}, + "⤎": { + math: "\\leftdbkarrow" +}, + "⤏": { + math: "\\dbkarow" +}, + "⤐": { + math: "\\drbkarow" +}, + "⤑": { + math: "\\rightdotarrow" +}, + "⤒": { + math: "\\UpArrowBar" +}, + "⤓": { + math: "\\DownArrowBar" +}, + "⤔": { + math: "\\pinj" +}, + "⤕": { + math: "\\finj" +}, + "⤖": { + math: "\\bij" +}, + "⤗": { + math: "\\nvtwoheadrightarrowtail" +}, + "⤘": { + math: "\\nVtwoheadrightarrowtail" +}, + "⤙": { + math: "\\lefttail" +}, + "⤚": { + math: "\\righttail" +}, + "⤛": { + math: "\\leftdbltail" +}, + "⤜": { + math: "\\rightdbltail" +}, + "⤝": { + math: "\\diamondleftarrow" +}, + "⤞": { + math: "\\rightarrowdiamond" +}, + "⤟": { + math: "\\diamondleftarrowbar" +}, + "⤠": { + math: "\\barrightarrowdiamond" +}, + "⤡": { + math: "\\nwsearrow" +}, + "⤢": { + math: "\\neswarrow" +}, + "⤫": { + math: "\\rdiagovfdiag" +}, + "⤬": { + math: "\\fdiagovrdiag" +}, + "⤭": { + math: "\\seovnearrow" +}, + "⤮": { + math: "\\neovsearrow" +}, + "⤯": { + math: "\\fdiagovnearrow" +}, + "⤰": { + math: "\\rdiagovsearrow" +}, + "⤱": { + math: "\\neovnwarrow" +}, + "⤲": { + math: "\\nwovnearrow" +}, + "⤴": { + math: "\\uprightcurvearrow" +}, + "⤵": { + math: "\\downrightcurvedarrow" +}, + "⤸": { + math: "\\cwrightarcarrow" +}, + "⤹": { + math: "\\acwleftarcarrow" +}, + "⤺": { + math: "\\acwoverarcarrow" +}, + "⤻": { + math: "\\acwunderarcarrow" +}, + "⤼": { + math: "\\curvearrowrightminus" +}, + "⤽": { + math: "\\curvearrowleftplus" +}, + "⤾": { + math: "\\cwundercurvearrow" +}, + "⤿": { + math: "\\ccwundercurvearrow" +}, + "⥀": { + math: "\\Elolarr" +}, + "⥁": { + math: "\\Elorarr" +}, + "⥂": { + math: "\\ElzRlarr" +}, + "⥃": { + math: "\\leftarrowshortrightarrow" +}, + "⥄": { + math: "\\ElzrLarr" +}, + "⥅": { + math: "\\rightarrowplus" +}, + "⥆": { + math: "\\leftarrowplus" +}, + "⥇": { + math: "\\Elzrarrx" +}, + "⥈": { + math: "\\leftrightarrowcircle" +}, + "⥉": { + math: "\\twoheaduparrowcircle" +}, + "⥊": { + math: "\\leftrightharpoon" +}, + "⥋": { + math: "\\rightleftharpoon" +}, + "⥌": { + math: "\\updownharpoonrightleft" +}, + "⥍": { + math: "\\updownharpoonleftright" +}, + "⥎": { + math: "\\LeftRightVector" +}, + "⥏": { + math: "\\RightUpDownVector" +}, + "⥐": { + math: "\\DownLeftRightVector" +}, + "⥑": { + math: "\\LeftUpDownVector" +}, + "⥒": { + math: "\\LeftVectorBar" +}, + "⥓": { + math: "\\RightVectorBar" +}, + "⥔": { + math: "\\RightUpVectorBar" +}, + "⥕": { + math: "\\RightDownVectorBar" +}, + "⥖": { + math: "\\DownLeftVectorBar" +}, + "⥗": { + math: "\\DownRightVectorBar" +}, + "⥘": { + math: "\\LeftUpVectorBar" +}, + "⥙": { + math: "\\LeftDownVectorBar" +}, + "⥚": { + math: "\\LeftTeeVector" +}, + "⥛": { + math: "\\RightTeeVector" +}, + "⥜": { + math: "\\RightUpTeeVector" +}, + "⥝": { + math: "\\RightDownTeeVector" +}, + "⥞": { + math: "\\DownLeftTeeVector" +}, + "⥟": { + math: "\\DownRightTeeVector" +}, + "⥠": { + math: "\\LeftUpTeeVector" +}, + "⥡": { + math: "\\LeftDownTeeVector" +}, + "⥢": { + math: "\\leftleftharpoons" +}, + "⥣": { + math: "\\upupharpoons" +}, + "⥤": { + math: "\\rightrightharpoons" +}, + "⥥": { + math: "\\downdownharpoons" +}, + "⥦": { + math: "\\leftrightharpoonsup" +}, + "⥧": { + math: "\\leftrightharpoonsdown" +}, + "⥨": { + math: "\\rightleftharpoonsup" +}, + "⥩": { + math: "\\rightleftharpoonsdown" +}, + "⥪": { + math: "\\leftbarharpoon" +}, + "⥫": { + math: "\\barleftharpoon" +}, + "⥬": { + math: "\\rightbarharpoon" +}, + "⥭": { + math: "\\barrightharpoon" +}, + "⥮": { + math: "\\UpEquilibrium" +}, + "⥯": { + math: "\\ReverseUpEquilibrium" +}, + "⥰": { + math: "\\RoundImplies" +}, + "⥱": { + math: "\\equalrightarrow" +}, + "⥲": { + math: "\\similarrightarrow" +}, + "⥳": { + math: "\\leftarrowsimilar" +}, + "⥴": { + math: "\\rightarrowsimilar" +}, + "⥵": { + math: "\\rightarrowapprox" +}, + "⥶": { + math: "\\ltlarr" +}, + "⥷": { + math: "\\leftarrowless" +}, + "⥸": { + math: "\\gtrarr" +}, + "⥹": { + math: "\\subrarr" +}, + "⥺": { + math: "\\leftarrowsubset" +}, + "⥻": { + math: "\\suplarr" +}, + "⥾": { + math: "\\upfishtail" +}, + "⥿": { + math: "\\downfishtail" +}, + "⦀": { + math: "\\Elztfnc" +}, + "⦁": { + math: "\\spot" +}, + "⦂": { + math: "\\typecolon" +}, + "⦃": { + math: "\\lBrace" +}, + "⦄": { + math: "\\rBrace" +}, + "⦆": { + math: "\\Elroang" +}, + "⦇": { + math: "\\limg" +}, + "⦈": { + math: "\\rimg" +}, + "⦉": { + math: "\\lblot" +}, + "⦊": { + math: "\\rblot" +}, + "⦋": { + math: "\\lbrackubar" +}, + "⦌": { + math: "\\rbrackubar" +}, + "⦍": { + math: "\\lbrackultick" +}, + "⦎": { + math: "\\rbracklrtick" +}, + "⦏": { + math: "\\lbracklltick" +}, + "⦐": { + math: "\\rbrackurtick" +}, + "⦑": { + math: "\\langledot" +}, + "⦒": { + math: "\\rangledot" +}, + "⦓": { + math: "<\\kern-0.58em(" +}, + "⦕": { + math: "\\Lparengtr" +}, + "⦖": { + math: "\\Rparenless" +}, + "⦗": { + math: "\\lblkbrbrak" +}, + "⦘": { + math: "\\rblkbrbrak" +}, + "⦙": { + math: "\\Elzddfnc" +}, + "⦚": { + math: "\\vzigzag" +}, + "⦛": { + math: "\\measuredangleleft" +}, + "⦜": { + math: "\\Angle" +}, + "⦝": { + math: "\\rightanglemdot" +}, + "⦞": { + math: "\\angles" +}, + "⦟": { + math: "\\angdnr" +}, + "⦠": { + math: "\\Elzlpargt" +}, + "⦡": { + math: "\\sphericalangleup" +}, + "⦢": { + math: "\\turnangle" +}, + "⦣": { + math: "\\revangle" +}, + "⦤": { + math: "\\angleubar" +}, + "⦥": { + math: "\\revangleubar" +}, + "⦦": { + math: "\\wideangledown" +}, + "⦧": { + math: "\\wideangleup" +}, + "⦨": { + math: "\\measanglerutone" +}, + "⦩": { + math: "\\measanglelutonw" +}, + "⦪": { + math: "\\measanglerdtose" +}, + "⦫": { + math: "\\measangleldtosw" +}, + "⦬": { + math: "\\measangleurtone" +}, + "⦭": { + math: "\\measangleultonw" +}, + "⦮": { + math: "\\measangledrtose" +}, + "⦯": { + math: "\\measangledltosw" +}, + "⦰": { + math: "\\revemptyset" +}, + "⦱": { + math: "\\emptysetobar" +}, + "⦲": { + math: "\\emptysetocirc" +}, + "⦳": { + math: "\\emptysetoarr" +}, + "⦴": { + math: "\\emptysetoarrl" +}, + "⦷": { + math: "\\circledparallel" +}, + "⦸": { + math: "\\circledbslash" +}, + "⦹": { + math: "\\operp" +}, + "⦺": { + math: "\\obot" +}, + "⦻": { + math: "\\olcross" +}, + "⦼": { + math: "\\odotslashdot" +}, + "⦽": { + math: "\\uparrowoncircle" +}, + "⦾": { + math: "\\circledwhitebullet" +}, + "⦿": { + math: "\\circledbullet" +}, + "⧀": { + math: "\\circledless" +}, + "⧁": { + math: "\\circledgtr" +}, + "⧂": { + math: "\\cirscir" +}, + "⧃": { + math: "\\cirE" +}, + "⧄": { + math: "\\boxslash" +}, + "⧅": { + math: "\\boxbslash" +}, + "⧆": { + math: "\\boxast" +}, + "⧇": { + math: "\\boxcircle" +}, + "⧈": { + math: "\\boxbox" +}, + "⧉": { + math: "\\boxonbox" +}, + "⧊": { + math: "\\ElzLap" +}, + "⧋": { + math: "\\Elzdefas" +}, + "⧌": { + math: "\\triangles" +}, + "⧍": { + math: "\\triangleserifs" +}, + "⧎": { + math: "\\rtriltri" +}, + "⧏": { + math: "\\LeftTriangleBar" +}, + "⧏̸": { + math: "\\NotLeftTriangleBar" +}, + "⧐": { + math: "\\RightTriangleBar" +}, + "⧐̸": { + math: "\\NotRightTriangleBar" +}, + "⧑": { + math: "\\lfbowtie" +}, + "⧒": { + math: "\\rfbowtie" +}, + "⧓": { + math: "\\fbowtie" +}, + "⧔": { + math: "\\lftimes" +}, + "⧕": { + math: "\\rftimes" +}, + "⧖": { + math: "\\hourglass" +}, + "⧗": { + math: "\\blackhourglass" +}, + "⧘": { + math: "\\lvzigzag" +}, + "⧙": { + math: "\\rvzigzag" +}, + "⧚": { + math: "\\Lvzigzag" +}, + "⧛": { + math: "\\Rvzigzag" +}, + "⧝": { + math: "\\tieinfty" +}, + "⧞": { + math: "\\nvinfty" +}, + "⧟": { + math: "\\multimapboth" +}, + "⧠": { + math: "\\laplac" +}, + "⧡": { + math: "\\lrtriangleeq" +}, + "⧢": { + math: "\\shuffle" +}, + "⧣": { + math: "\\eparsl" +}, + "⧤": { + math: "\\smeparsl" +}, + "⧥": { + math: "\\eqvparsl" +}, + "⧦": { + math: "\\gleichstark" +}, + "⧧": { + math: "\\thermod" +}, + "⧨": { + math: "\\downtriangleleftblack" +}, + "⧩": { + math: "\\downtrianglerightblack" +}, + "⧪": { + math: "\\blackdiamonddownarrow" +}, + "⧫": { + math: "\\blacklozenge" +}, + "⧬": { + math: "\\circledownarrow" +}, + "⧭": { + math: "\\blackcircledownarrow" +}, + "⧮": { + math: "\\errbarsquare" +}, + "⧯": { + math: "\\errbarblacksquare" +}, + "⧰": { + math: "\\errbardiamond" +}, + "⧱": { + math: "\\errbarblackdiamond" +}, + "⧲": { + math: "\\errbarcircle" +}, + "⧳": { + math: "\\errbarblackcircle" +}, + "⧴": { + math: "\\RuleDelayed" +}, + "⧵": { + math: "\\setminus" +}, + "⧶": { + math: "\\dsol" +}, + "⧷": { + math: "\\rsolbar" +}, + "⧸": { + math: "\\xsol" +}, + "⧹": { + math: "\\zhide" +}, + "⧺": { + math: "\\doubleplus" +}, + "⧻": { + math: "\\tripleplus" +}, + "⧼": { + math: "\\lcurvyangle" +}, + "⧽": { + math: "\\rcurvyangle" +}, + "⧾": { + math: "\\tplus" +}, + "⧿": { + math: "\\tminus" +}, + "⨀": { + math: "\\bigodot" +}, + "⨁": { + math: "\\bigoplus" +}, + "⨂": { + math: "\\bigotimes" +}, + "⨃": { + math: "\\bigcupdot" +}, + "⨄": { + math: "\\Elxuplus" +}, + "⨅": { + math: "\\ElzThr" +}, + "⨆": { + math: "\\Elxsqcup" +}, + "⨇": { + math: "\\ElzInf" +}, + "⨈": { + math: "\\ElzSup" +}, + "⨉": { + math: "\\varprod" +}, + "⨊": { + math: "\\modtwosum" +}, + "⨋": { + math: "\\sumint" +}, + "⨌": { + math: "\\iiiint" +}, + "⨍": { + math: "\\ElzCint" +}, + "⨎": { + math: "\\intBar" +}, + "⨏": { + math: "\\clockoint" +}, + "⨑": { + math: "\\awint" +}, + "⨒": { + math: "\\rppolint" +}, + "⨓": { + math: "\\scpolint" +}, + "⨔": { + math: "\\npolint" +}, + "⨕": { + math: "\\pointint" +}, + "⨖": { + math: "\\sqrint" +}, + "⨗": { + math: "\\intlarhk" +}, + "⨘": { + math: "\\intx" +}, + "⨙": { + math: "\\intcap" +}, + "⨚": { + math: "\\intcup" +}, + "⨛": { + math: "\\upint" +}, + "⨜": { + math: "\\lowint" +}, + "⨝": { + math: "\\Join" +}, + "⨞": { + math: "\\bigtriangleleft" +}, + "⨟": { + math: "\\zcmp" +}, + "⨠": { + math: "\\zpipe" +}, + "⨡": { + math: "\\zproject" +}, + "⨢": { + math: "\\ringplus" +}, + "⨣": { + math: "\\plushat" +}, + "⨤": { + math: "\\simplus" +}, + "⨦": { + math: "\\plussim" +}, + "⨧": { + math: "\\plussubtwo" +}, + "⨨": { + math: "\\plustrif" +}, + "⨩": { + math: "\\commaminus" +}, + "⨫": { + math: "\\minusfdots" +}, + "⨬": { + math: "\\minusrdots" +}, + "⨯": { + math: "\\ElzTimes" +}, + "⨰": { + math: "\\dottimes" +}, + "⨱": { + math: "\\timesbar" +}, + "⨲": { + math: "\\btimes" +}, + "⨳": { + math: "\\smashtimes" +}, + "⨶": { + math: "\\otimeshat" +}, + "⨷": { + math: "\\Otimes" +}, + "⨸": { + math: "\\odiv" +}, + "⨹": { + math: "\\triangleplus" +}, + "⨺": { + math: "\\triangleminus" +}, + "⨻": { + math: "\\triangletimes" +}, + "⨽": { + math: "\\intprodr" +}, + "⨾": { + math: "\\fcmp" +}, + "⨿": { + math: "\\amalg" +}, + "⩀": { + math: "\\capdot" +}, + "⩁": { + math: "\\uminus" +}, + "⩂": { + math: "\\barcup" +}, + "⩃": { + math: "\\barcap" +}, + "⩄": { + math: "\\capwedge" +}, + "⩅": { + math: "\\cupvee" +}, + "⩆": { + math: "\\cupovercap" +}, + "⩇": { + math: "\\capovercup" +}, + "⩈": { + math: "\\cupbarcap" +}, + "⩉": { + math: "\\capbarcup" +}, + "⩊": { + math: "\\twocups" +}, + "⩋": { + math: "\\twocaps" +}, + "⩌": { + math: "\\closedvarcup" +}, + "⩍": { + math: "\\closedvarcap" +}, + "⩎": { + math: "\\Sqcap" +}, + "⩏": { + math: "\\Sqcup" +}, + "⩐": { + math: "\\closedvarcupsmashprod" +}, + "⩑": { + math: "\\wedgeodot" +}, + "⩒": { + math: "\\veeodot" +}, + "⩓": { + math: "\\ElzAnd" +}, + "⩔": { + math: "\\ElzOr" +}, + "⩖": { + math: "\\ElOr" +}, + "⩗": { + math: "\\bigslopedvee" +}, + "⩘": { + math: "\\bigslopedwedge" +}, + "⩙": { + math: "\\veeonwedge" +}, + "⩚": { + math: "\\wedgemidvert" +}, + "⩛": { + math: "\\veemidvert" +}, + "⩜": { + math: "\\midbarwedge" +}, + "⩝": { + math: "\\midbarvee" +}, + "⩞": { + math: "\\perspcorrespond" +}, + "⩟": { + math: "\\Elzminhat" +}, + "⩠": { + math: "\\wedgedoublebar" +}, + "⩡": { + math: "\\varveebar" +}, + "⩢": { + math: "\\doublebarvee" +}, + "⩤": { + math: "\\dsub" +}, + "⩥": { + math: "\\rsub" +}, + "⩦": { + math: "\\eqdot" +}, + "⩧": { + math: "\\dotequiv" +}, + "⩨": { + math: "\\equivVert" +}, + "⩩": { + math: "\\equivVvert" +}, + "⩪": { + math: "\\dotsim" +}, + "⩫": { + math: "\\simrdots" +}, + "⩬": { + math: "\\simminussim" +}, + "⩭": { + math: "\\congdot" +}, + "⩮": { + math: "\\stackrel{*}{=}" +}, + "⩯": { + math: "\\hatapprox" +}, + "⩰": { + math: "\\approxeqq" +}, + "⩱": { + math: "\\eqqplus" +}, + "⩲": { + math: "\\pluseqq" +}, + "⩳": { + math: "\\eqqsim" +}, + "⩴": { + math: "\\Coloneqq" +}, + "⩵": { + math: "\\Equal" +}, + "⩶": { + math: "\\Same" +}, + "⩷": { + math: "\\ddotseq" +}, + "⩸": { + math: "\\equivDD" +}, + "⩹": { + math: "\\ltcir" +}, + "⩺": { + math: "\\gtcir" +}, + "⩻": { + math: "\\ltquest" +}, + "⩼": { + math: "\\gtquest" +}, + "⩽": { + math: "\\leqslant", + mathpackages: [ + "amssymb" + ] +}, + "⩽̸": { + math: "\\nleqslant", + mathpackages: [ + "amssymb" + ] +}, + "⩾": { + math: "\\geqslant", + mathpackages: [ + "amssymb" + ] +}, + "⩾̸": { + math: "\\ngeqslant", + mathpackages: [ + "amssymb" + ] +}, + "⩿": { + math: "\\lesdot" +}, + "⪀": { + math: "\\gesdot" +}, + "⪁": { + math: "\\lesdoto" +}, + "⪂": { + math: "\\gesdoto" +}, + "⪃": { + math: "\\lesdotor" +}, + "⪄": { + math: "\\gesdotol" +}, + "⪅": { + math: "\\lessapprox" +}, + "⪆": { + math: "\\gtrapprox" +}, + "⪇": { + math: "\\lneq" +}, + "⪈": { + math: "\\gneq" +}, + "⪉": { + math: "\\lnapprox" +}, + "⪊": { + math: "\\gnapprox" +}, + "⪋": { + math: "\\lesseqqgtr" +}, + "⪌": { + math: "\\gtreqqless" +}, + "⪍": { + math: "\\lsime" +}, + "⪎": { + math: "\\gsime" +}, + "⪏": { + math: "\\lsimg" +}, + "⪐": { + math: "\\gsiml" +}, + "⪑": { + math: "\\lgE" +}, + "⪒": { + math: "\\glE" +}, + "⪓": { + math: "\\lesges" +}, + "⪔": { + math: "\\gesles" +}, + "⪕": { + math: "\\eqslantless" +}, + "⪖": { + math: "\\eqslantgtr" +}, + "⪗": { + math: "\\elsdot" +}, + "⪘": { + math: "\\egsdot" +}, + "⪙": { + math: "\\eqqless" +}, + "⪚": { + math: "\\eqqgtr" +}, + "⪛": { + math: "\\eqqslantless" +}, + "⪜": { + math: "\\eqqslantgtr" +}, + "⪝": { + math: "\\Pisymbol{ppi020}{117}" +}, + "⪞": { + math: "\\Pisymbol{ppi020}{105}" +}, + "⪟": { + math: "\\simlE" +}, + "⪠": { + math: "\\simgE" +}, + "⪡": { + math: "\\NestedLessLess" +}, + "⪡̸": { + math: "\\NotNestedLessLess" +}, + "⪢": { + math: "\\NestedGreaterGreater" +}, + "⪢̸": { + math: "\\NotNestedGreaterGreater" +}, + "⪣": { + math: "\\partialmeetcontraction" +}, + "⪤": { + math: "\\glj" +}, + "⪥": { + math: "\\gla" +}, + "⪦": { + math: "\\leftslice" +}, + "⪧": { + math: "\\rightslice" +}, + "⪨": { + math: "\\lescc" +}, + "⪩": { + math: "\\gescc" +}, + "⪪": { + math: "\\smt" +}, + "⪫": { + math: "\\lat" +}, + "⪬": { + math: "\\smte" +}, + "⪭": { + math: "\\late" +}, + "⪮": { + math: "\\bumpeqq" +}, + "⪯": { + math: "\\preceq" +}, + "⪯̸": { + math: "\\not\\preceq" +}, + "⪰": { + math: "\\succeq" +}, + "⪰̸": { + math: "\\not\\succeq" +}, + "⪱": { + math: "\\precneq" +}, + "⪲": { + math: "\\succneq" +}, + "⪳": { + math: "\\preceqq" +}, + "⪴": { + math: "\\succeqq" +}, + "⪵": { + math: "\\precneqq" +}, + "⪶": { + math: "\\succneqq" +}, + "⪷": { + math: "\\precapprox" +}, + "⪸": { + math: "\\succapprox" +}, + "⪹": { + math: "\\precnapprox" +}, + "⪺": { + math: "\\succnapprox" +}, + "⪻": { + math: "\\llcurly" +}, + "⪼": { + math: "\\ggcurly" +}, + "⪽": { + math: "\\subsetdot" +}, + "⪾": { + math: "\\supsetdot" +}, + "⪿": { + math: "\\subsetplus" +}, + "⫀": { + math: "\\supsetplus" +}, + "⫁": { + math: "\\submult" +}, + "⫂": { + math: "\\supmult" +}, + "⫃": { + math: "\\subedot" +}, + "⫄": { + math: "\\supedot" +}, + "⫅": { + math: "\\subseteqq" +}, + "⫅̸": { + math: "\\nsubseteqq" +}, + "⫆": { + math: "\\supseteqq" +}, + "⫆̸": { + math: "\\nsupseteqq" +}, + "⫇": { + math: "\\subsim" +}, + "⫈": { + math: "\\supsim" +}, + "⫉": { + math: "\\subsetapprox" +}, + "⫊": { + math: "\\supsetapprox" +}, + "⫋": { + math: "\\subsetneqq" +}, + "⫌": { + math: "\\supsetneqq" +}, + "⫍": { + math: "\\lsqhook" +}, + "⫎": { + math: "\\rsqhook" +}, + "⫏": { + math: "\\csub" +}, + "⫐": { + math: "\\csup" +}, + "⫑": { + math: "\\csube" +}, + "⫒": { + math: "\\csupe" +}, + "⫓": { + math: "\\subsup" +}, + "⫔": { + math: "\\supsub" +}, + "⫕": { + math: "\\subsub" +}, + "⫖": { + math: "\\supsup" +}, + "⫗": { + math: "\\suphsub" +}, + "⫘": { + math: "\\supdsub" +}, + "⫙": { + math: "\\forkv" +}, + "⫚": { + math: "\\topfork" +}, + "⫛": { + math: "\\mlcp" +}, + "⫝̸": { + math: "\\forks" +}, + "⫝": { + math: "\\forksnot" +}, + "⫝̸": { + math: "\\forks" +}, + "⫞": { + math: "\\shortlefttack" +}, + "⫟": { + math: "\\shortdowntack" +}, + "⫠": { + math: "\\shortuptack" +}, + "⫡": { + math: "\\perps" +}, + "⫢": { + math: "\\vDdash" +}, + "⫣": { + math: "\\dashV" +}, + "⫤": { + math: "\\Dashv" +}, + "⫥": { + math: "\\DashV" +}, + "⫦": { + math: "\\varVdash" +}, + "⫧": { + math: "\\Barv" +}, + "⫨": { + math: "\\vBar" +}, + "⫩": { + math: "\\vBarv" +}, + "⫪": { + math: "\\Top" +}, + "⫬": { + math: "\\Not" +}, + "⫭": { + math: "\\bNot" +}, + "⫮": { + math: "\\revnmid" +}, + "⫯": { + math: "\\cirmid" +}, + "⫰": { + math: "\\midcir" +}, + "⫱": { + math: "\\topcir" +}, + "⫲": { + math: "\\nhpar" +}, + "⫳": { + math: "\\parsim" +}, + "⫴": { + math: "\\interleave" +}, + "⫵": { + math: "\\nhVvert" +}, + "⫶": { + math: "\\Elztdcol" +}, + "⫷": { + math: "\\lllnest" +}, + "⫸": { + math: "\\gggnest" +}, + "⫹": { + math: "\\leqqslant" +}, + "⫺": { + math: "\\geqqslant" +}, + "⫻": { + math: "\\trslash" +}, + "⫼": { + math: "\\biginterleave" +}, + "⫽": { + math: "{{/}\\!\\!{/}}" +}, + "⫽⃥": { + math: "{\\rlap{\\textbackslash}{{/}\\!\\!{/}}}" +}, + "⫾": { + math: "\\talloblong" +}, + "⫿": { + math: "\\bigtalloblong" +}, + "⬒": { + math: "\\squaretopblack" +}, + "⬓": { + math: "\\squarebotblack" +}, + "⬔": { + math: "\\squareurblack" +}, + "⬕": { + math: "\\squarellblack" +}, + "⬖": { + math: "\\diamondleftblack" +}, + "⬗": { + math: "\\diamondrightblack" +}, + "⬘": { + math: "\\diamondtopblack" +}, + "⬙": { + math: "\\diamondbotblack" +}, + "⬚": { + math: "\\dottedsquare" +}, + "⬛": { + math: "\\blacksquare" +}, + "⬜": { + math: "\\square" +}, + "⬝": { + math: "\\vysmblksquare" +}, + "⬞": { + math: "\\vysmwhtsquare" +}, + "⬟": { + math: "\\pentagonblack" +}, + "⬠": { + math: "\\pentagon" +}, + "⬡": { + math: "\\varhexagon" +}, + "⬢": { + math: "\\varhexagonblack" +}, + "⬣": { + math: "\\hexagonblack" +}, + "⬤": { + math: "\\lgblkcircle" +}, + "⬥": { + math: "\\mdblkdiamond" +}, + "⬦": { + math: "\\mdwhtdiamond" +}, + "⬧": { + math: "\\mdblklozenge" +}, + "⬨": { + math: "\\mdwhtlozenge" +}, + "⬩": { + math: "\\smblkdiamond" +}, + "⬪": { + math: "\\smblklozenge" +}, + "⬫": { + math: "\\smwhtlozenge" +}, + "⬬": { + math: "\\blkhorzoval" +}, + "⬭": { + math: "\\whthorzoval" +}, + "⬮": { + math: "\\blkvertoval" +}, + "⬯": { + math: "\\whtvertoval" +}, + "⬰": { + math: "\\circleonleftarrow" +}, + "⬱": { + math: "\\leftthreearrows" +}, + "⬲": { + math: "\\leftarrowonoplus" +}, + "⬳": { + math: "\\longleftsquigarrow" +}, + "⬴": { + math: "\\nvtwoheadleftarrow" +}, + "⬵": { + math: "\\nVtwoheadleftarrow" +}, + "⬶": { + math: "\\twoheadmapsfrom" +}, + "⬷": { + math: "\\twoheadleftdbkarrow" +}, + "⬸": { + math: "\\leftdotarrow" +}, + "⬹": { + math: "\\nvleftarrowtail" +}, + "⬺": { + math: "\\nVleftarrowtail" +}, + "⬻": { + math: "\\twoheadleftarrowtail" +}, + "⬼": { + math: "\\nvtwoheadleftarrowtail" +}, + "⬽": { + math: "\\nVtwoheadleftarrowtail" +}, + "⬾": { + math: "\\leftarrowx" +}, + "⬿": { + math: "\\leftcurvedarrow" +}, + "⭀": { + math: "\\equalleftarrow" +}, + "⭁": { + math: "\\bsimilarleftarrow" +}, + "⭂": { + math: "\\leftarrowbackapprox" +}, + "⭃": { + math: "\\rightarrowgtr" +}, + "⭄": { + math: "\\rightarrowsupset" +}, + "⭅": { + math: "\\LLeftarrow" +}, + "⭆": { + math: "\\RRightarrow" +}, + "⭇": { + math: "\\bsimilarrightarrow" +}, + "⭈": { + math: "\\rightarrowbackapprox" +}, + "⭉": { + math: "\\similarleftarrow" +}, + "⭊": { + math: "\\leftarrowapprox" +}, + "⭋": { + math: "\\leftarrowbsimilar" +}, + "⭌": { + math: "\\rightarrowbsimilar" +}, + "⭐": { + math: "\\medwhitestar" +}, + "⭑": { + math: "\\medblackstar" +}, + "⭒": { + math: "\\smwhitestar" +}, + "⭓": { + math: "\\rightpentagonblack" +}, + "⭔": { + math: "\\rightpentagon" +}, + "〈": { + math: "\\langle" +}, + "〉": { + math: "\\rangle" +}, + "〒": { + math: "\\postalmark" +}, + "〔": { + math: "\\lbrbrak" +}, + "〕": { + math: "\\rbrbrak" +}, + "〚": { + math: "\\openbracketleft" +}, + "〛": { + math: "\\openbracketright" +}, + "〰": { + math: "\\hzigzag" +}, + "ff": { + text: "ff" +}, + "fi": { + text: "fi" +}, + "fl": { + text: "fl" +}, + "ffi": { + text: "ffi" +}, + "ffl": { + text: "ffl" +}, + "ſt": { + text: "st" +}, + "st": { + text: "st" +}, + "�": { + text: "\\dbend", + commandspacer: true +}, + "𝐀": { + math: "\\mathbf{A}" +}, + "𝐁": { + math: "\\mathbf{B}" +}, + "𝐂": { + math: "\\mathbf{C}" +}, + "𝐃": { + math: "\\mathbf{D}" +}, + "𝐄": { + math: "\\mathbf{E}" +}, + "𝐅": { + math: "\\mathbf{F}" +}, + "𝐆": { + math: "\\mathbf{G}" +}, + "𝐇": { + math: "\\mathbf{H}" +}, + "𝐈": { + math: "\\mathbf{I}" +}, + "𝐉": { + math: "\\mathbf{J}" +}, + "𝐊": { + math: "\\mathbf{K}" +}, + "𝐋": { + math: "\\mathbf{L}" +}, + "𝐌": { + math: "\\mathbf{M}" +}, + "𝐍": { + math: "\\mathbf{N}" +}, + "𝐎": { + math: "\\mathbf{O}" +}, + "𝐏": { + math: "\\mathbf{P}" +}, + "𝐐": { + math: "\\mathbf{Q}" +}, + "𝐑": { + math: "\\mathbf{R}" +}, + "𝐒": { + math: "\\mathbf{S}" +}, + "𝐓": { + math: "\\mathbf{T}" +}, + "𝐔": { + math: "\\mathbf{U}" +}, + "𝐕": { + math: "\\mathbf{V}" +}, + "𝐖": { + math: "\\mathbf{W}" +}, + "𝐗": { + math: "\\mathbf{X}" +}, + "𝐘": { + math: "\\mathbf{Y}" +}, + "𝐙": { + math: "\\mathbf{Z}" +}, + "𝐚": { + math: "\\mathbf{a}" +}, + "𝐛": { + math: "\\mathbf{b}" +}, + "𝐜": { + math: "\\mathbf{c}" +}, + "𝐝": { + math: "\\mathbf{d}" +}, + "𝐞": { + math: "\\mathbf{e}" +}, + "𝐟": { + math: "\\mathbf{f}" +}, + "𝐠": { + math: "\\mathbf{g}" +}, + "𝐡": { + math: "\\mathbf{h}" +}, + "𝐢": { + math: "\\mathbf{i}" +}, + "𝐣": { + math: "\\mathbf{j}" +}, + "𝐤": { + math: "\\mathbf{k}" +}, + "𝐥": { + math: "\\mathbf{l}" +}, + "𝐦": { + math: "\\mathbf{m}" +}, + "𝐧": { + math: "\\mathbf{n}" +}, + "𝐨": { + math: "\\mathbf{o}" +}, + "𝐩": { + math: "\\mathbf{p}" +}, + "𝐪": { + math: "\\mathbf{q}" +}, + "𝐫": { + math: "\\mathbf{r}" +}, + "𝐬": { + math: "\\mathbf{s}" +}, + "𝐭": { + math: "\\mathbf{t}" +}, + "𝐮": { + math: "\\mathbf{u}" +}, + "𝐯": { + math: "\\mathbf{v}" +}, + "𝐰": { + math: "\\mathbf{w}" +}, + "𝐱": { + math: "\\mathbf{x}" +}, + "𝐲": { + math: "\\mathbf{y}" +}, + "𝐳": { + math: "\\mathbf{z}" +}, + "𝐴": { + math: "\\mathsl{A}" +}, + "𝐵": { + math: "\\mathsl{B}" +}, + "𝐶": { + math: "\\mathsl{C}" +}, + "𝐷": { + math: "\\mathsl{D}" +}, + "𝐸": { + math: "\\mathsl{E}" +}, + "𝐹": { + math: "\\mathsl{F}" +}, + "𝐺": { + math: "\\mathsl{G}" +}, + "𝐻": { + math: "\\mathsl{H}" +}, + "𝐼": { + math: "\\mathsl{I}" +}, + "𝐽": { + math: "\\mathsl{J}" +}, + "𝐾": { + math: "\\mathsl{K}" +}, + "𝐿": { + math: "\\mathsl{L}" +}, + "𝑀": { + math: "\\mathsl{M}" +}, + "𝑁": { + math: "\\mathsl{N}" +}, + "𝑂": { + math: "\\mathsl{O}" +}, + "𝑃": { + math: "\\mathsl{P}" +}, + "𝑄": { + math: "\\mathsl{Q}" +}, + "𝑅": { + math: "\\mathsl{R}" +}, + "𝑆": { + math: "\\mathsl{S}" +}, + "𝑇": { + math: "\\mathsl{T}" +}, + "𝑈": { + math: "\\mathsl{U}" +}, + "𝑉": { + math: "\\mathsl{V}" +}, + "𝑊": { + math: "\\mathsl{W}" +}, + "𝑋": { + math: "\\mathsl{X}" +}, + "𝑌": { + math: "\\mathsl{Y}" +}, + "𝑍": { + math: "\\mathsl{Z}" +}, + "𝑎": { + math: "\\mathsl{a}" +}, + "𝑏": { + math: "\\mathsl{b}" +}, + "𝑐": { + math: "\\mathsl{c}" +}, + "𝑑": { + math: "\\mathsl{d}" +}, + "𝑒": { + math: "\\mathsl{e}" +}, + "𝑓": { + math: "\\mathsl{f}" +}, + "𝑔": { + math: "\\mathsl{g}" +}, + "𝑖": { + math: "\\mathsl{i}" +}, + "𝑗": { + math: "\\mathsl{j}" +}, + "𝑘": { + math: "\\mathsl{k}" +}, + "𝑙": { + math: "\\mathsl{l}" +}, + "𝑚": { + math: "\\mathsl{m}" +}, + "𝑛": { + math: "\\mathsl{n}" +}, + "𝑜": { + math: "\\mathsl{o}" +}, + "𝑝": { + math: "\\mathsl{p}" +}, + "𝑞": { + math: "\\mathsl{q}" +}, + "𝑟": { + math: "\\mathsl{r}" +}, + "𝑠": { + math: "\\mathsl{s}" +}, + "𝑡": { + math: "\\mathsl{t}" +}, + "𝑢": { + math: "\\mathsl{u}" +}, + "𝑣": { + math: "\\mathsl{v}" +}, + "𝑤": { + math: "\\mathsl{w}" +}, + "𝑥": { + math: "\\mathsl{x}" +}, + "𝑦": { + math: "\\mathsl{y}" +}, + "𝑧": { + math: "\\mathsl{z}" +}, + "𝑨": { + math: "\\mathbit{A}" +}, + "𝑩": { + math: "\\mathbit{B}" +}, + "𝑪": { + math: "\\mathbit{C}" +}, + "𝑫": { + math: "\\mathbit{D}" +}, + "𝑬": { + math: "\\mathbit{E}" +}, + "𝑭": { + math: "\\mathbit{F}" +}, + "𝑮": { + math: "\\mathbit{G}" +}, + "𝑯": { + math: "\\mathbit{H}" +}, + "𝑰": { + math: "\\mathbit{I}" +}, + "𝑱": { + math: "\\mathbit{J}" +}, + "𝑲": { + math: "\\mathbit{K}" +}, + "𝑳": { + math: "\\mathbit{L}" +}, + "𝑴": { + math: "\\mathbit{M}" +}, + "𝑵": { + math: "\\mathbit{N}" +}, + "𝑶": { + math: "\\mathbit{O}" +}, + "𝑷": { + math: "\\mathbit{P}" +}, + "𝑸": { + math: "\\mathbit{Q}" +}, + "𝑹": { + math: "\\mathbit{R}" +}, + "𝑺": { + math: "\\mathbit{S}" +}, + "𝑻": { + math: "\\mathbit{T}" +}, + "𝑼": { + math: "\\mathbit{U}" +}, + "𝑽": { + math: "\\mathbit{V}" +}, + "𝑾": { + math: "\\mathbit{W}" +}, + "𝑿": { + math: "\\mathbit{X}" +}, + "𝒀": { + math: "\\mathbit{Y}" +}, + "𝒁": { + math: "\\mathbit{Z}" +}, + "𝒂": { + math: "\\mathbit{a}" +}, + "𝒃": { + math: "\\mathbit{b}" +}, + "𝒄": { + math: "\\mathbit{c}" +}, + "𝒅": { + math: "\\mathbit{d}" +}, + "𝒆": { + math: "\\mathbit{e}" +}, + "𝒇": { + math: "\\mathbit{f}" +}, + "𝒈": { + math: "\\mathbit{g}" +}, + "𝒉": { + math: "\\mathbit{h}" +}, + "𝒊": { + math: "\\mathbit{i}" +}, + "𝒋": { + math: "\\mathbit{j}" +}, + "𝒌": { + math: "\\mathbit{k}" +}, + "𝒍": { + math: "\\mathbit{l}" +}, + "𝒎": { + math: "\\mathbit{m}" +}, + "𝒏": { + math: "\\mathbit{n}" +}, + "𝒐": { + math: "\\mathbit{o}" +}, + "𝒑": { + math: "\\mathbit{p}" +}, + "𝒒": { + math: "\\mathbit{q}" +}, + "𝒓": { + math: "\\mathbit{r}" +}, + "𝒔": { + math: "\\mathbit{s}" +}, + "𝒕": { + math: "\\mathbit{t}" +}, + "𝒖": { + math: "\\mathbit{u}" +}, + "𝒗": { + math: "\\mathbit{v}" +}, + "𝒘": { + math: "\\mathbit{w}" +}, + "𝒙": { + math: "\\mathbit{x}" +}, + "𝒚": { + math: "\\mathbit{y}" +}, + "𝒛": { + math: "\\mathbit{z}" +}, + "𝒜": { + math: "\\mathscr{A}" +}, + "𝒞": { + math: "\\mathscr{C}" +}, + "𝒟": { + math: "\\mathscr{D}" +}, + "𝒢": { + math: "\\mathscr{G}" +}, + "𝒥": { + math: "\\mathscr{J}" +}, + "𝒦": { + math: "\\mathscr{K}" +}, + "𝒩": { + math: "\\mathscr{N}" +}, + "𝒪": { + math: "\\mathscr{O}" +}, + "𝒫": { + math: "\\mathscr{P}" +}, + "𝒬": { + math: "\\mathscr{Q}" +}, + "𝒮": { + math: "\\mathscr{S}" +}, + "𝒯": { + math: "\\mathscr{T}" +}, + "𝒰": { + math: "\\mathscr{U}" +}, + "𝒱": { + math: "\\mathscr{V}" +}, + "𝒲": { + math: "\\mathscr{W}" +}, + "𝒳": { + math: "\\mathscr{X}" +}, + "𝒴": { + math: "\\mathscr{Y}" +}, + "𝒵": { + math: "\\mathscr{Z}" +}, + "𝒶": { + math: "\\mathscr{a}" +}, + "𝒷": { + math: "\\mathscr{b}" +}, + "𝒸": { + math: "\\mathscr{c}" +}, + "𝒹": { + math: "\\mathscr{d}" +}, + "𝒻": { + math: "\\mathscr{f}" +}, + "𝒽": { + math: "\\mathscr{h}" +}, + "𝒾": { + math: "\\mathscr{i}" +}, + "𝒿": { + math: "\\mathscr{j}" +}, + "𝓀": { + math: "\\mathscr{k}" +}, + "𝓁": { + math: "\\mathscr{l}" +}, + "𝓂": { + math: "\\mathscr{m}" +}, + "𝓃": { + math: "\\mathscr{n}" +}, + "𝓅": { + math: "\\mathscr{p}" +}, + "𝓆": { + math: "\\mathscr{q}" +}, + "𝓇": { + math: "\\mathscr{r}" +}, + "𝓈": { + math: "\\mathscr{s}" +}, + "𝓉": { + math: "\\mathscr{t}" +}, + "𝓊": { + math: "\\mathscr{u}" +}, + "𝓋": { + math: "\\mathscr{v}" +}, + "𝓌": { + math: "\\mathscr{w}" +}, + "𝓍": { + math: "\\mathscr{x}" +}, + "𝓎": { + math: "\\mathscr{y}" +}, + "𝓏": { + math: "\\mathscr{z}" +}, + "𝓐": { + math: "\\mathmit{A}" +}, + "𝓑": { + math: "\\mathmit{B}" +}, + "𝓒": { + math: "\\mathmit{C}" +}, + "𝓓": { + math: "\\mathmit{D}" +}, + "𝓔": { + math: "\\mathmit{E}" +}, + "𝓕": { + math: "\\mathmit{F}" +}, + "𝓖": { + math: "\\mathmit{G}" +}, + "𝓗": { + math: "\\mathmit{H}" +}, + "𝓘": { + math: "\\mathmit{I}" +}, + "𝓙": { + math: "\\mathmit{J}" +}, + "𝓚": { + math: "\\mathmit{K}" +}, + "𝓛": { + math: "\\mathmit{L}" +}, + "𝓜": { + math: "\\mathmit{M}" +}, + "𝓝": { + math: "\\mathmit{N}" +}, + "𝓞": { + math: "\\mathmit{O}" +}, + "𝓟": { + math: "\\mathmit{P}" +}, + "𝓠": { + math: "\\mathmit{Q}" +}, + "𝓡": { + math: "\\mathmit{R}" +}, + "𝓢": { + math: "\\mathmit{S}" +}, + "𝓣": { + math: "\\mathmit{T}" +}, + "𝓤": { + math: "\\mathmit{U}" +}, + "𝓥": { + math: "\\mathmit{V}" +}, + "𝓦": { + math: "\\mathmit{W}" +}, + "𝓧": { + math: "\\mathmit{X}" +}, + "𝓨": { + math: "\\mathmit{Y}" +}, + "𝓩": { + math: "\\mathmit{Z}" +}, + "𝓪": { + math: "\\mathmit{a}" +}, + "𝓫": { + math: "\\mathmit{b}" +}, + "𝓬": { + math: "\\mathmit{c}" +}, + "𝓭": { + math: "\\mathmit{d}" +}, + "𝓮": { + math: "\\mathmit{e}" +}, + "𝓯": { + math: "\\mathmit{f}" +}, + "𝓰": { + math: "\\mathmit{g}" +}, + "𝓱": { + math: "\\mathmit{h}" +}, + "𝓲": { + math: "\\mathmit{i}" +}, + "𝓳": { + math: "\\mathmit{j}" +}, + "𝓴": { + math: "\\mathmit{k}" +}, + "𝓵": { + math: "\\mathmit{l}" +}, + "𝓶": { + math: "\\mathmit{m}" +}, + "𝓷": { + math: "\\mathmit{n}" +}, + "𝓸": { + math: "\\mathmit{o}" +}, + "𝓹": { + math: "\\mathmit{p}" +}, + "𝓺": { + math: "\\mathmit{q}" +}, + "𝓻": { + math: "\\mathmit{r}" +}, + "𝓼": { + math: "\\mathmit{s}" +}, + "𝓽": { + math: "\\mathmit{t}" +}, + "𝓾": { + math: "\\mathmit{u}" +}, + "𝓿": { + math: "\\mathmit{v}" +}, + "𝔀": { + math: "\\mathmit{w}" +}, + "𝔁": { + math: "\\mathmit{x}" +}, + "𝔂": { + math: "\\mathmit{y}" +}, + "𝔃": { + math: "\\mathmit{z}" +}, + "𝔄": { + math: "\\mathfrak{A}" +}, + "𝔅": { + math: "\\mathfrak{B}" +}, + "𝔇": { + math: "\\mathfrak{D}" +}, + "𝔈": { + math: "\\mathfrak{E}" +}, + "𝔉": { + math: "\\mathfrak{F}" +}, + "𝔊": { + math: "\\mathfrak{G}" +}, + "𝔍": { + math: "\\mathfrak{J}" +}, + "𝔎": { + math: "\\mathfrak{K}" +}, + "𝔏": { + math: "\\mathfrak{L}" +}, + "𝔐": { + math: "\\mathfrak{M}" +}, + "𝔑": { + math: "\\mathfrak{N}" +}, + "𝔒": { + math: "\\mathfrak{O}" +}, + "𝔓": { + math: "\\mathfrak{P}" +}, + "𝔔": { + math: "\\mathfrak{Q}" +}, + "𝔖": { + math: "\\mathfrak{S}" +}, + "𝔗": { + math: "\\mathfrak{T}" +}, + "𝔘": { + math: "\\mathfrak{U}" +}, + "𝔙": { + math: "\\mathfrak{V}" +}, + "𝔚": { + math: "\\mathfrak{W}" +}, + "𝔛": { + math: "\\mathfrak{X}" +}, + "𝔜": { + math: "\\mathfrak{Y}" +}, + "𝔞": { + math: "\\mathfrak{a}" +}, + "𝔟": { + math: "\\mathfrak{b}" +}, + "𝔠": { + math: "\\mathfrak{c}" +}, + "𝔡": { + math: "\\mathfrak{d}" +}, + "𝔢": { + math: "\\mathfrak{e}" +}, + "𝔣": { + math: "\\mathfrak{f}" +}, + "𝔤": { + math: "\\mathfrak{g}" +}, + "𝔥": { + math: "\\mathfrak{h}" +}, + "𝔦": { + math: "\\mathfrak{i}" +}, + "𝔧": { + math: "\\mathfrak{j}" +}, + "𝔨": { + math: "\\mathfrak{k}" +}, + "𝔩": { + math: "\\mathfrak{l}" +}, + "𝔪": { + math: "\\mathfrak{m}" +}, + "𝔫": { + math: "\\mathfrak{n}" +}, + "𝔬": { + math: "\\mathfrak{o}" +}, + "𝔭": { + math: "\\mathfrak{p}" +}, + "𝔮": { + math: "\\mathfrak{q}" +}, + "𝔯": { + math: "\\mathfrak{r}" +}, + "𝔰": { + math: "\\mathfrak{s}" +}, + "𝔱": { + math: "\\mathfrak{t}" +}, + "𝔲": { + math: "\\mathfrak{u}" +}, + "𝔳": { + math: "\\mathfrak{v}" +}, + "𝔴": { + math: "\\mathfrak{w}" +}, + "𝔵": { + math: "\\mathfrak{x}" +}, + "𝔶": { + math: "\\mathfrak{y}" +}, + "𝔷": { + math: "\\mathfrak{z}" +}, + "𝔸": { + math: "\\mathbb{A}" +}, + "𝔹": { + math: "\\mathbb{B}" +}, + "𝔻": { + math: "\\mathbb{D}" +}, + "𝔼": { + math: "\\mathbb{E}" +}, + "𝔽": { + math: "\\mathbb{F}" +}, + "𝔾": { + math: "\\mathbb{G}" +}, + "𝕀": { + math: "\\mathbb{I}" +}, + "𝕁": { + math: "\\mathbb{J}" +}, + "𝕂": { + math: "\\mathbb{K}" +}, + "𝕃": { + math: "\\mathbb{L}" +}, + "𝕄": { + math: "\\mathbb{M}" +}, + "𝕆": { + math: "\\mathbb{O}" +}, + "𝕊": { + math: "\\mathbb{S}" +}, + "𝕋": { + math: "\\mathbb{T}" +}, + "𝕌": { + math: "\\mathbb{U}" +}, + "𝕍": { + math: "\\mathbb{V}" +}, + "𝕎": { + math: "\\mathbb{W}" +}, + "𝕏": { + math: "\\mathbb{X}" +}, + "𝕐": { + math: "\\mathbb{Y}" +}, + "𝕒": { + math: "\\mathbb{a}" +}, + "𝕓": { + math: "\\mathbb{b}" +}, + "𝕔": { + math: "\\mathbb{c}" +}, + "𝕕": { + math: "\\mathbb{d}" +}, + "𝕖": { + math: "\\mathbb{e}" +}, + "𝕗": { + math: "\\mathbb{f}" +}, + "𝕘": { + math: "\\mathbb{g}" +}, + "𝕙": { + math: "\\mathbb{h}" +}, + "𝕚": { + math: "\\mathbb{i}" +}, + "𝕛": { + math: "\\mathbb{j}" +}, + "𝕜": { + math: "\\mathbb{k}" +}, + "𝕝": { + math: "\\mathbb{l}" +}, + "𝕞": { + math: "\\mathbb{m}" +}, + "𝕟": { + math: "\\mathbb{n}" +}, + "𝕠": { + math: "\\mathbb{o}" +}, + "𝕡": { + math: "\\mathbb{p}" +}, + "𝕢": { + math: "\\mathbb{q}" +}, + "𝕣": { + math: "\\mathbb{r}" +}, + "𝕤": { + math: "\\mathbb{s}" +}, + "𝕥": { + math: "\\mathbb{t}" +}, + "𝕦": { + math: "\\mathbb{u}" +}, + "𝕧": { + math: "\\mathbb{v}" +}, + "𝕨": { + math: "\\mathbb{w}" +}, + "𝕩": { + math: "\\mathbb{x}" +}, + "𝕪": { + math: "\\mathbb{y}" +}, + "𝕫": { + math: "\\mathbb{z}" +}, + "𝕬": { + math: "\\mathslbb{A}" +}, + "𝕭": { + math: "\\mathslbb{B}" +}, + "𝕮": { + math: "\\mathslbb{C}" +}, + "𝕯": { + math: "\\mathslbb{D}" +}, + "𝕰": { + math: "\\mathslbb{E}" +}, + "𝕱": { + math: "\\mathslbb{F}" +}, + "𝕲": { + math: "\\mathslbb{G}" +}, + "𝕳": { + math: "\\mathslbb{H}" +}, + "𝕴": { + math: "\\mathslbb{I}" +}, + "𝕵": { + math: "\\mathslbb{J}" +}, + "𝕶": { + math: "\\mathslbb{K}" +}, + "𝕷": { + math: "\\mathslbb{L}" +}, + "𝕸": { + math: "\\mathslbb{M}" +}, + "𝕹": { + math: "\\mathslbb{N}" +}, + "𝕺": { + math: "\\mathslbb{O}" +}, + "𝕻": { + math: "\\mathslbb{P}" +}, + "𝕼": { + math: "\\mathslbb{Q}" +}, + "𝕽": { + math: "\\mathslbb{R}" +}, + "𝕾": { + math: "\\mathslbb{S}" +}, + "𝕿": { + math: "\\mathslbb{T}" +}, + "𝖀": { + math: "\\mathslbb{U}" +}, + "𝖁": { + math: "\\mathslbb{V}" +}, + "𝖂": { + math: "\\mathslbb{W}" +}, + "𝖃": { + math: "\\mathslbb{X}" +}, + "𝖄": { + math: "\\mathslbb{Y}" +}, + "𝖅": { + math: "\\mathslbb{Z}" +}, + "𝖆": { + math: "\\mathslbb{a}" +}, + "𝖇": { + math: "\\mathslbb{b}" +}, + "𝖈": { + math: "\\mathslbb{c}" +}, + "𝖉": { + math: "\\mathslbb{d}" +}, + "𝖊": { + math: "\\mathslbb{e}" +}, + "𝖋": { + math: "\\mathslbb{f}" +}, + "𝖌": { + math: "\\mathslbb{g}" +}, + "𝖍": { + math: "\\mathslbb{h}" +}, + "𝖎": { + math: "\\mathslbb{i}" +}, + "𝖏": { + math: "\\mathslbb{j}" +}, + "𝖐": { + math: "\\mathslbb{k}" +}, + "𝖑": { + math: "\\mathslbb{l}" +}, + "𝖒": { + math: "\\mathslbb{m}" +}, + "𝖓": { + math: "\\mathslbb{n}" +}, + "𝖔": { + math: "\\mathslbb{o}" +}, + "𝖕": { + math: "\\mathslbb{p}" +}, + "𝖖": { + math: "\\mathslbb{q}" +}, + "𝖗": { + math: "\\mathslbb{r}" +}, + "𝖘": { + math: "\\mathslbb{s}" +}, + "𝖙": { + math: "\\mathslbb{t}" +}, + "𝖚": { + math: "\\mathslbb{u}" +}, + "𝖛": { + math: "\\mathslbb{v}" +}, + "𝖜": { + math: "\\mathslbb{w}" +}, + "𝖝": { + math: "\\mathslbb{x}" +}, + "𝖞": { + math: "\\mathslbb{y}" +}, + "𝖟": { + math: "\\mathslbb{z}" +}, + "𝖠": { + math: "\\mathsf{A}" +}, + "𝖡": { + math: "\\mathsf{B}" +}, + "𝖢": { + math: "\\mathsf{C}" +}, + "𝖣": { + math: "\\mathsf{D}" +}, + "𝖤": { + math: "\\mathsf{E}" +}, + "𝖥": { + math: "\\mathsf{F}" +}, + "𝖦": { + math: "\\mathsf{G}" +}, + "𝖧": { + math: "\\mathsf{H}" +}, + "𝖨": { + math: "\\mathsf{I}" +}, + "𝖩": { + math: "\\mathsf{J}" +}, + "𝖪": { + math: "\\mathsf{K}" +}, + "𝖫": { + math: "\\mathsf{L}" +}, + "𝖬": { + math: "\\mathsf{M}" +}, + "𝖭": { + math: "\\mathsf{N}" +}, + "𝖮": { + math: "\\mathsf{O}" +}, + "𝖯": { + math: "\\mathsf{P}" +}, + "𝖰": { + math: "\\mathsf{Q}" +}, + "𝖱": { + math: "\\mathsf{R}" +}, + "𝖲": { + math: "\\mathsf{S}" +}, + "𝖳": { + math: "\\mathsf{T}" +}, + "𝖴": { + math: "\\mathsf{U}" +}, + "𝖵": { + math: "\\mathsf{V}" +}, + "𝖶": { + math: "\\mathsf{W}" +}, + "𝖷": { + math: "\\mathsf{X}" +}, + "𝖸": { + math: "\\mathsf{Y}" +}, + "𝖹": { + math: "\\mathsf{Z}" +}, + "𝖺": { + math: "\\mathsf{a}" +}, + "𝖻": { + math: "\\mathsf{b}" +}, + "𝖼": { + math: "\\mathsf{c}" +}, + "𝖽": { + math: "\\mathsf{d}" +}, + "𝖾": { + math: "\\mathsf{e}" +}, + "𝖿": { + math: "\\mathsf{f}" +}, + "𝗀": { + math: "\\mathsf{g}" +}, + "𝗁": { + math: "\\mathsf{h}" +}, + "𝗂": { + math: "\\mathsf{i}" +}, + "𝗃": { + math: "\\mathsf{j}" +}, + "𝗄": { + math: "\\mathsf{k}" +}, + "𝗅": { + math: "\\mathsf{l}" +}, + "𝗆": { + math: "\\mathsf{m}" +}, + "𝗇": { + math: "\\mathsf{n}" +}, + "𝗈": { + math: "\\mathsf{o}" +}, + "𝗉": { + math: "\\mathsf{p}" +}, + "𝗊": { + math: "\\mathsf{q}" +}, + "𝗋": { + math: "\\mathsf{r}" +}, + "𝗌": { + math: "\\mathsf{s}" +}, + "𝗍": { + math: "\\mathsf{t}" +}, + "𝗎": { + math: "\\mathsf{u}" +}, + "𝗏": { + math: "\\mathsf{v}" +}, + "𝗐": { + math: "\\mathsf{w}" +}, + "𝗑": { + math: "\\mathsf{x}" +}, + "𝗒": { + math: "\\mathsf{y}" +}, + "𝗓": { + math: "\\mathsf{z}" +}, + "𝗔": { + math: "\\mathsfbf{A}" +}, + "𝗕": { + math: "\\mathsfbf{B}" +}, + "𝗖": { + math: "\\mathsfbf{C}" +}, + "𝗗": { + math: "\\mathsfbf{D}" +}, + "𝗘": { + math: "\\mathsfbf{E}" +}, + "𝗙": { + math: "\\mathsfbf{F}" +}, + "𝗚": { + math: "\\mathsfbf{G}" +}, + "𝗛": { + math: "\\mathsfbf{H}" +}, + "𝗜": { + math: "\\mathsfbf{I}" +}, + "𝗝": { + math: "\\mathsfbf{J}" +}, + "𝗞": { + math: "\\mathsfbf{K}" +}, + "𝗟": { + math: "\\mathsfbf{L}" +}, + "𝗠": { + math: "\\mathsfbf{M}" +}, + "𝗡": { + math: "\\mathsfbf{N}" +}, + "𝗢": { + math: "\\mathsfbf{O}" +}, + "𝗣": { + math: "\\mathsfbf{P}" +}, + "𝗤": { + math: "\\mathsfbf{Q}" +}, + "𝗥": { + math: "\\mathsfbf{R}" +}, + "𝗦": { + math: "\\mathsfbf{S}" +}, + "𝗧": { + math: "\\mathsfbf{T}" +}, + "𝗨": { + math: "\\mathsfbf{U}" +}, + "𝗩": { + math: "\\mathsfbf{V}" +}, + "𝗪": { + math: "\\mathsfbf{W}" +}, + "𝗫": { + math: "\\mathsfbf{X}" +}, + "𝗬": { + math: "\\mathsfbf{Y}" +}, + "𝗭": { + math: "\\mathsfbf{Z}" +}, + "𝗮": { + math: "\\mathsfbf{a}" +}, + "𝗯": { + math: "\\mathsfbf{b}" +}, + "𝗰": { + math: "\\mathsfbf{c}" +}, + "𝗱": { + math: "\\mathsfbf{d}" +}, + "𝗲": { + math: "\\mathsfbf{e}" +}, + "𝗳": { + math: "\\mathsfbf{f}" +}, + "𝗴": { + math: "\\mathsfbf{g}" +}, + "𝗵": { + math: "\\mathsfbf{h}" +}, + "𝗶": { + math: "\\mathsfbf{i}" +}, + "𝗷": { + math: "\\mathsfbf{j}" +}, + "𝗸": { + math: "\\mathsfbf{k}" +}, + "𝗹": { + math: "\\mathsfbf{l}" +}, + "𝗺": { + math: "\\mathsfbf{m}" +}, + "𝗻": { + math: "\\mathsfbf{n}" +}, + "𝗼": { + math: "\\mathsfbf{o}" +}, + "𝗽": { + math: "\\mathsfbf{p}" +}, + "𝗾": { + math: "\\mathsfbf{q}" +}, + "𝗿": { + math: "\\mathsfbf{r}" +}, + "𝘀": { + math: "\\mathsfbf{s}" +}, + "𝘁": { + math: "\\mathsfbf{t}" +}, + "𝘂": { + math: "\\mathsfbf{u}" +}, + "𝘃": { + math: "\\mathsfbf{v}" +}, + "𝘄": { + math: "\\mathsfbf{w}" +}, + "𝘅": { + math: "\\mathsfbf{x}" +}, + "𝘆": { + math: "\\mathsfbf{y}" +}, + "𝘇": { + math: "\\mathsfbf{z}" +}, + "𝘈": { + math: "\\mathsfsl{A}" +}, + "𝘉": { + math: "\\mathsfsl{B}" +}, + "𝘊": { + math: "\\mathsfsl{C}" +}, + "𝘋": { + math: "\\mathsfsl{D}" +}, + "𝘌": { + math: "\\mathsfsl{E}" +}, + "𝘍": { + math: "\\mathsfsl{F}" +}, + "𝘎": { + math: "\\mathsfsl{G}" +}, + "𝘏": { + math: "\\mathsfsl{H}" +}, + "𝘐": { + math: "\\mathsfsl{I}" +}, + "𝘑": { + math: "\\mathsfsl{J}" +}, + "𝘒": { + math: "\\mathsfsl{K}" +}, + "𝘓": { + math: "\\mathsfsl{L}" +}, + "𝘔": { + math: "\\mathsfsl{M}" +}, + "𝘕": { + math: "\\mathsfsl{N}" +}, + "𝘖": { + math: "\\mathsfsl{O}" +}, + "𝘗": { + math: "\\mathsfsl{P}" +}, + "𝘘": { + math: "\\mathsfsl{Q}" +}, + "𝘙": { + math: "\\mathsfsl{R}" +}, + "𝘚": { + math: "\\mathsfsl{S}" +}, + "𝘛": { + math: "\\mathsfsl{T}" +}, + "𝘜": { + math: "\\mathsfsl{U}" +}, + "𝘝": { + math: "\\mathsfsl{V}" +}, + "𝘞": { + math: "\\mathsfsl{W}" +}, + "𝘟": { + math: "\\mathsfsl{X}" +}, + "𝘠": { + math: "\\mathsfsl{Y}" +}, + "𝘡": { + math: "\\mathsfsl{Z}" +}, + "𝘢": { + math: "\\mathsfsl{a}" +}, + "𝘣": { + math: "\\mathsfsl{b}" +}, + "𝘤": { + math: "\\mathsfsl{c}" +}, + "𝘥": { + math: "\\mathsfsl{d}" +}, + "𝘦": { + math: "\\mathsfsl{e}" +}, + "𝘧": { + math: "\\mathsfsl{f}" +}, + "𝘨": { + math: "\\mathsfsl{g}" +}, + "𝘩": { + math: "\\mathsfsl{h}" +}, + "𝘪": { + math: "\\mathsfsl{i}" +}, + "𝘫": { + math: "\\mathsfsl{j}" +}, + "𝘬": { + math: "\\mathsfsl{k}" +}, + "𝘭": { + math: "\\mathsfsl{l}" +}, + "𝘮": { + math: "\\mathsfsl{m}" +}, + "𝘯": { + math: "\\mathsfsl{n}" +}, + "𝘰": { + math: "\\mathsfsl{o}" +}, + "𝘱": { + math: "\\mathsfsl{p}" +}, + "𝘲": { + math: "\\mathsfsl{q}" +}, + "𝘳": { + math: "\\mathsfsl{r}" +}, + "𝘴": { + math: "\\mathsfsl{s}" +}, + "𝘵": { + math: "\\mathsfsl{t}" +}, + "𝘶": { + math: "\\mathsfsl{u}" +}, + "𝘷": { + math: "\\mathsfsl{v}" +}, + "𝘸": { + math: "\\mathsfsl{w}" +}, + "𝘹": { + math: "\\mathsfsl{x}" +}, + "𝘺": { + math: "\\mathsfsl{y}" +}, + "𝘻": { + math: "\\mathsfsl{z}" +}, + "𝘼": { + math: "\\mathsfbfsl{A}" +}, + "𝘽": { + math: "\\mathsfbfsl{B}" +}, + "𝘾": { + math: "\\mathsfbfsl{C}" +}, + "𝘿": { + math: "\\mathsfbfsl{D}" +}, + "𝙀": { + math: "\\mathsfbfsl{E}" +}, + "𝙁": { + math: "\\mathsfbfsl{F}" +}, + "𝙂": { + math: "\\mathsfbfsl{G}" +}, + "𝙃": { + math: "\\mathsfbfsl{H}" +}, + "𝙄": { + math: "\\mathsfbfsl{I}" +}, + "𝙅": { + math: "\\mathsfbfsl{J}" +}, + "𝙆": { + math: "\\mathsfbfsl{K}" +}, + "𝙇": { + math: "\\mathsfbfsl{L}" +}, + "𝙈": { + math: "\\mathsfbfsl{M}" +}, + "𝙉": { + math: "\\mathsfbfsl{N}" +}, + "𝙊": { + math: "\\mathsfbfsl{O}" +}, + "𝙋": { + math: "\\mathsfbfsl{P}" +}, + "𝙌": { + math: "\\mathsfbfsl{Q}" +}, + "𝙍": { + math: "\\mathsfbfsl{R}" +}, + "𝙎": { + math: "\\mathsfbfsl{S}" +}, + "𝙏": { + math: "\\mathsfbfsl{T}" +}, + "𝙐": { + math: "\\mathsfbfsl{U}" +}, + "𝙑": { + math: "\\mathsfbfsl{V}" +}, + "𝙒": { + math: "\\mathsfbfsl{W}" +}, + "𝙓": { + math: "\\mathsfbfsl{X}" +}, + "𝙔": { + math: "\\mathsfbfsl{Y}" +}, + "𝙕": { + math: "\\mathsfbfsl{Z}" +}, + "𝙖": { + math: "\\mathsfbfsl{a}" +}, + "𝙗": { + math: "\\mathsfbfsl{b}" +}, + "𝙘": { + math: "\\mathsfbfsl{c}" +}, + "𝙙": { + math: "\\mathsfbfsl{d}" +}, + "𝙚": { + math: "\\mathsfbfsl{e}" +}, + "𝙛": { + math: "\\mathsfbfsl{f}" +}, + "𝙜": { + math: "\\mathsfbfsl{g}" +}, + "𝙝": { + math: "\\mathsfbfsl{h}" +}, + "𝙞": { + math: "\\mathsfbfsl{i}" +}, + "𝙟": { + math: "\\mathsfbfsl{j}" +}, + "𝙠": { + math: "\\mathsfbfsl{k}" +}, + "𝙡": { + math: "\\mathsfbfsl{l}" +}, + "𝙢": { + math: "\\mathsfbfsl{m}" +}, + "𝙣": { + math: "\\mathsfbfsl{n}" +}, + "𝙤": { + math: "\\mathsfbfsl{o}" +}, + "𝙥": { + math: "\\mathsfbfsl{p}" +}, + "𝙦": { + math: "\\mathsfbfsl{q}" +}, + "𝙧": { + math: "\\mathsfbfsl{r}" +}, + "𝙨": { + math: "\\mathsfbfsl{s}" +}, + "𝙩": { + math: "\\mathsfbfsl{t}" +}, + "𝙪": { + math: "\\mathsfbfsl{u}" +}, + "𝙫": { + math: "\\mathsfbfsl{v}" +}, + "𝙬": { + math: "\\mathsfbfsl{w}" +}, + "𝙭": { + math: "\\mathsfbfsl{x}" +}, + "𝙮": { + math: "\\mathsfbfsl{y}" +}, + "𝙯": { + math: "\\mathsfbfsl{z}" +}, + "𝙰": { + math: "\\mathtt{A}" +}, + "𝙱": { + math: "\\mathtt{B}" +}, + "𝙲": { + math: "\\mathtt{C}" +}, + "𝙳": { + math: "\\mathtt{D}" +}, + "𝙴": { + math: "\\mathtt{E}" +}, + "𝙵": { + math: "\\mathtt{F}" +}, + "𝙶": { + math: "\\mathtt{G}" +}, + "𝙷": { + math: "\\mathtt{H}" +}, + "𝙸": { + math: "\\mathtt{I}" +}, + "𝙹": { + math: "\\mathtt{J}" +}, + "𝙺": { + math: "\\mathtt{K}" +}, + "𝙻": { + math: "\\mathtt{L}" +}, + "𝙼": { + math: "\\mathtt{M}" +}, + "𝙽": { + math: "\\mathtt{N}" +}, + "𝙾": { + math: "\\mathtt{O}" +}, + "𝙿": { + math: "\\mathtt{P}" +}, + "𝚀": { + math: "\\mathtt{Q}" +}, + "𝚁": { + math: "\\mathtt{R}" +}, + "𝚂": { + math: "\\mathtt{S}" +}, + "𝚃": { + math: "\\mathtt{T}" +}, + "𝚄": { + math: "\\mathtt{U}" +}, + "𝚅": { + math: "\\mathtt{V}" +}, + "𝚆": { + math: "\\mathtt{W}" +}, + "𝚇": { + math: "\\mathtt{X}" +}, + "𝚈": { + math: "\\mathtt{Y}" +}, + "𝚉": { + math: "\\mathtt{Z}" +}, + "𝚊": { + math: "\\mathtt{a}" +}, + "𝚋": { + math: "\\mathtt{b}" +}, + "𝚌": { + math: "\\mathtt{c}" +}, + "𝚍": { + math: "\\mathtt{d}" +}, + "𝚎": { + math: "\\mathtt{e}" +}, + "𝚏": { + math: "\\mathtt{f}" +}, + "𝚐": { + math: "\\mathtt{g}" +}, + "𝚑": { + math: "\\mathtt{h}" +}, + "𝚒": { + math: "\\mathtt{i}" +}, + "𝚓": { + math: "\\mathtt{j}" +}, + "𝚔": { + math: "\\mathtt{k}" +}, + "𝚕": { + math: "\\mathtt{l}" +}, + "𝚖": { + math: "\\mathtt{m}" +}, + "𝚗": { + math: "\\mathtt{n}" +}, + "𝚘": { + math: "\\mathtt{o}" +}, + "𝚙": { + math: "\\mathtt{p}" +}, + "𝚚": { + math: "\\mathtt{q}" +}, + "𝚛": { + math: "\\mathtt{r}" +}, + "𝚜": { + math: "\\mathtt{s}" +}, + "𝚝": { + math: "\\mathtt{t}" +}, + "𝚞": { + math: "\\mathtt{u}" +}, + "𝚟": { + math: "\\mathtt{v}" +}, + "𝚠": { + math: "\\mathtt{w}" +}, + "𝚡": { + math: "\\mathtt{x}" +}, + "𝚢": { + math: "\\mathtt{y}" +}, + "𝚣": { + math: "\\mathtt{z}" +}, + "𝚤": { + math: "\\imath" +}, + "𝚥": { + math: "\\jmath" +}, + "𝚨": { + math: "\\mathbf{A}" +}, + "𝚩": { + math: "\\mathbf{B}" +}, + "𝚪": { + math: "\\mathbf{\\Gamma}" +}, + "𝚫": { + math: "\\mathbf{\\Delta}" +}, + "𝚬": { + math: "\\mathbf{E}" +}, + "𝚭": { + math: "\\mathbf{Z}" +}, + "𝚮": { + math: "\\mathbf{H}" +}, + "𝚯": { + math: "\\mathbf{\\Theta}" +}, + "𝚰": { + math: "\\mathbf{I}" +}, + "𝚱": { + math: "\\mathbf{K}" +}, + "𝚲": { + math: "\\mathbf{\\Lambda}" +}, + "𝚳": { + math: "M" +}, + "𝚴": { + math: "N" +}, + "𝚵": { + math: "\\mathbf{\\Xi}" +}, + "𝚶": { + math: "O" +}, + "𝚷": { + math: "\\mathbf{\\Pi}" +}, + "𝚸": { + math: "\\mathbf{P}" +}, + "𝚹": { + math: "\\mathbf{\\vartheta}" +}, + "𝚺": { + math: "\\mathbf{\\Sigma}" +}, + "𝚻": { + math: "\\mathbf{T}" +}, + "𝚼": { + math: "\\mathbf{\\Upsilon}" +}, + "𝚽": { + math: "\\mathbf{\\Phi}" +}, + "𝚾": { + math: "\\mathbf{X}" +}, + "𝚿": { + math: "\\mathbf{\\Psi}" +}, + "𝛀": { + math: "\\mathbf{\\Omega}" +}, + "𝛁": { + math: "\\mathbf{\\nabla}" +}, + "𝛂": { + math: "\\mathbf{\\alpha}" +}, + "𝛃": { + math: "\\mathbf{\\beta}" +}, + "𝛄": { + math: "\\mathbf{\\gamma}" +}, + "𝛅": { + math: "\\mathbf{\\delta}" +}, + "𝛆": { + math: "\\mathbf{\\epsilon}" +}, + "𝛇": { + math: "\\mathbf{\\zeta}" +}, + "𝛈": { + math: "\\mathbf{\\eta}" +}, + "𝛉": { + math: "\\mathbf{\\theta}" +}, + "𝛊": { + math: "\\mathbf{I}" +}, + "𝛋": { + math: "\\mathbf{K}" +}, + "𝛌": { + math: "\\mathbf{\\lambda}" +}, + "𝛍": { + math: "M" +}, + "𝛎": { + math: "N" +}, + "𝛏": { + math: "\\mathbf{\\xi}" +}, + "𝛐": { + math: "O" +}, + "𝛑": { + math: "\\mathbf{\\pi}" +}, + "𝛒": { + math: "\\mathbf{P}" +}, + "𝛓": { + math: "\\mathbf{\\varsigma}" +}, + "𝛔": { + math: "\\mathbf{\\sigma}" +}, + "𝛕": { + math: "\\mathbf{T}" +}, + "𝛖": { + math: "\\mathbf{\\upsilon}" +}, + "𝛗": { + math: "\\mathbf{\\phi}" +}, + "𝛘": { + math: "\\mathbf{X}" +}, + "𝛙": { + math: "\\mathbf{\\psi}" +}, + "𝛚": { + math: "\\mathbf{\\omega}" +}, + "𝛛": { + math: "\\partial" +}, + "𝛜": { + math: "\\in" +}, + "𝛝": { + math: "\\mathbf{\\vartheta}" +}, + "𝛞": { + math: "\\mathbf{\\varkappa}" +}, + "𝛟": { + math: "\\mathbf{\\phi}" +}, + "𝛠": { + math: "\\mathbf{\\varrho}" +}, + "𝛡": { + math: "\\mathbf{\\varpi}" +}, + "𝛢": { + math: "\\mathsl{A}" +}, + "𝛣": { + math: "\\mathsl{B}" +}, + "𝛤": { + math: "\\mathsl{\\Gamma}" +}, + "𝛥": { + math: "\\mathsl{\\Delta}" +}, + "𝛦": { + math: "\\mathsl{E}" +}, + "𝛧": { + math: "\\mathsl{Z}" +}, + "𝛨": { + math: "\\mathsl{H}" +}, + "𝛩": { + math: "\\mathsl{\\Theta}" +}, + "𝛪": { + math: "\\mathsl{I}" +}, + "𝛫": { + math: "\\mathsl{K}" +}, + "𝛬": { + math: "\\mathsl{\\Lambda}" +}, + "𝛭": { + math: "M" +}, + "𝛮": { + math: "N" +}, + "𝛯": { + math: "\\mathsl{\\Xi}" +}, + "𝛰": { + math: "O" +}, + "𝛱": { + math: "\\mathsl{\\Pi}" +}, + "𝛲": { + math: "\\mathsl{P}" +}, + "𝛳": { + math: "\\mathsl{\\Theta}" +}, + "𝛴": { + math: "\\mathsl{\\Sigma}" +}, + "𝛵": { + math: "\\mathsl{T}" +}, + "𝛶": { + math: "\\mathsl{\\Upsilon}" +}, + "𝛷": { + math: "\\mathsl{\\Phi}" +}, + "𝛸": { + math: "\\mathsl{X}" +}, + "𝛹": { + math: "\\mathsl{\\Psi}" +}, + "𝛺": { + math: "\\mathsl{\\Omega}" +}, + "𝛻": { + math: "\\mathsl{\\nabla}" +}, + "𝛼": { + math: "\\mathsl{A}" +}, + "𝛽": { + math: "\\mathsl{B}" +}, + "𝛾": { + math: "\\mathsl{\\gamma}" +}, + "𝛿": { + math: "\\mathsl{\\delta}" +}, + "𝜀": { + math: "\\mathsl{E}" +}, + "𝜁": { + math: "\\mathsl{Z}" +}, + "𝜂": { + math: "\\mathsl{H}" +}, + "𝜃": { + math: "\\mathsl{\\theta}" +}, + "𝜄": { + math: "\\mathsl{I}" +}, + "𝜅": { + math: "\\mathsl{K}" +}, + "𝜆": { + math: "\\mathsl{\\lambda}" +}, + "𝜇": { + math: "\\mu" +}, + "𝜈": { + math: "\\nu" +}, + "𝜉": { + math: "\\mathsl{\\xi}" +}, + "𝜊": { + math: "o" +}, + "𝜋": { + math: "\\mathsl{\\pi}" +}, + "𝜌": { + math: "\\mathsl{P}" +}, + "𝜍": { + math: "\\mathsl{\\varsigma}" +}, + "𝜎": { + math: "\\mathsl{\\sigma}" +}, + "𝜏": { + math: "\\mathsl{T}" +}, + "𝜐": { + math: "\\mathsl{\\upsilon}" +}, + "𝜑": { + math: "\\mathsl{\\varphi}" +}, + "𝜒": { + math: "\\mathsl{X}" +}, + "𝜓": { + math: "\\mathsl{\\psi}" +}, + "𝜔": { + math: "\\mathsl{\\omega}" +}, + "𝜕": { + math: "\\partial" +}, + "𝜖": { + math: "\\in" +}, + "𝜗": { + math: "\\mathsl{\\vartheta}" +}, + "𝜘": { + math: "\\mathsl{\\varkappa}" +}, + "𝜙": { + math: "\\mathsl{\\phi}" +}, + "𝜚": { + math: "\\mathsl{\\varrho}" +}, + "𝜛": { + math: "\\mathsl{\\varpi}" +}, + "𝜜": { + math: "\\mathbit{A}" +}, + "𝜝": { + math: "\\mathbit{B}" +}, + "𝜞": { + math: "\\mathbit{\\Gamma}" +}, + "𝜟": { + math: "\\mathbit{\\Delta}" +}, + "𝜠": { + math: "\\mathbit{E}" +}, + "𝜡": { + math: "\\mathbit{Z}" +}, + "𝜢": { + math: "\\mathbit{H}" +}, + "𝜣": { + math: "\\mathbit{\\Theta}" +}, + "𝜤": { + math: "\\mathbit{I}" +}, + "𝜥": { + math: "\\mathbit{K}" +}, + "𝜦": { + math: "\\mathbit{\\Lambda}" +}, + "𝜧": { + math: "M" +}, + "𝜨": { + math: "N" +}, + "𝜩": { + math: "\\mathbit{\\Xi}" +}, + "𝜪": { + math: "O" +}, + "𝜫": { + math: "\\mathbit{\\Pi}" +}, + "𝜬": { + math: "\\mathbit{P}" +}, + "𝜭": { + math: "\\mathbit{O}" +}, + "𝜮": { + math: "\\mathbit{\\Sigma}" +}, + "𝜯": { + math: "\\mathbit{T}" +}, + "𝜰": { + math: "\\mathbit{\\Upsilon}" +}, + "𝜱": { + math: "\\mathbit{\\Phi}" +}, + "𝜲": { + math: "\\mathbit{X}" +}, + "𝜳": { + math: "\\mathbit{\\Psi}" +}, + "𝜴": { + math: "\\mathbit{\\Omega}" +}, + "𝜵": { + math: "\\mathbit{\\nabla}" +}, + "𝜶": { + math: "\\mathbit{\\alpha}" +}, + "𝜷": { + math: "\\mathbit{\\beta}" +}, + "𝜸": { + math: "\\mathbit{\\gamma}" +}, + "𝜹": { + math: "\\mathbit{\\delta}" +}, + "𝜺": { + math: "\\mathbit{\\epsilon}" +}, + "𝜻": { + math: "\\mathbit{\\zeta}" +}, + "𝜼": { + math: "\\mathbit{\\eta}" +}, + "𝜽": { + math: "\\mathbit{\\theta}" +}, + "𝜾": { + math: "\\mathbit{\\imath}" +}, + "𝜿": { + math: "\\mathbit{\\kappa}" +}, + "𝝀": { + math: "\\mathbit{\\lambda}" +}, + "𝝁": { + math: "\\mu" +}, + "𝝂": { + math: "N" +}, + "𝝃": { + math: "\\mathbit{\\xi}" +}, + "𝝄": { + math: "O" +}, + "𝝅": { + math: "\\mathbit{\\pi}" +}, + "𝝆": { + math: "\\mathbit{\\rho}" +}, + "𝝇": { + math: "\\mathbit{\\varsigma}" +}, + "𝝈": { + math: "\\mathbit{\\sigma}" +}, + "𝝉": { + math: "\\mathbit{\\tau}" +}, + "𝝊": { + math: "\\mathbit{\\upsilon}" +}, + "𝝋": { + math: "\\mathbit{\\varphi}" +}, + "𝝌": { + math: "\\mathbit{\\chi}" +}, + "𝝍": { + math: "\\mathbit{\\psi}" +}, + "𝝎": { + math: "\\mathbit{\\omega}" +}, + "𝝏": { + math: "\\partial" +}, + "𝝐": { + math: "\\in" +}, + "𝝑": { + math: "\\mathbit{\\vartheta}" +}, + "𝝒": { + math: "\\mathbit{\\varkappa}" +}, + "𝝓": { + math: "\\mathbit{\\phi}" +}, + "𝝔": { + math: "\\mathbit{\\varrho}" +}, + "𝝕": { + math: "\\mathbit{\\varpi}" +}, + "𝝖": { + math: "\\mathsfbf{A}" +}, + "𝝗": { + math: "\\mathsfbf{B}" +}, + "𝝘": { + math: "\\mathsfbf{\\Gamma}" +}, + "𝝙": { + math: "\\mathsfbf{\\Delta}" +}, + "𝝚": { + math: "\\mathsfbf{E}" +}, + "𝝛": { + math: "\\mathsfbf{Z}" +}, + "𝝜": { + math: "\\mathsfbf{H}" +}, + "𝝝": { + math: "\\mathsfbf{\\Theta}" +}, + "𝝞": { + math: "\\mathsfbf{I}" +}, + "𝝟": { + math: "\\mathsfbf{K}" +}, + "𝝠": { + math: "\\mathsfbf{\\Lambda}" +}, + "𝝡": { + math: "M" +}, + "𝝢": { + math: "N" +}, + "𝝣": { + math: "\\mathsfbf{\\Xi}" +}, + "𝝤": { + math: "O" +}, + "𝝥": { + math: "\\mathsfbf{\\Pi}" +}, + "𝝦": { + math: "\\mathsfbf{P}" +}, + "𝝧": { + math: "\\mathsfbf{\\Theta}" +}, + "𝝨": { + math: "\\mathsfbf{\\Sigma}" +}, + "𝝩": { + math: "\\mathsfbf{T}" +}, + "𝝪": { + math: "\\mathsfbf{\\Upsilon}" +}, + "𝝫": { + math: "\\mathsfbf{\\Phi}" +}, + "𝝬": { + math: "\\mathsfbf{X}" +}, + "𝝭": { + math: "\\mathsfbf{\\Psi}" +}, + "𝝮": { + math: "\\mathsfbf{\\Omega}" +}, + "𝝯": { + math: "\\mathsfbf{\\nabla}" +}, + "𝝰": { + math: "\\mathsfbf{\\alpha}" +}, + "𝝱": { + math: "\\mathsfbf{\\beta}" +}, + "𝝲": { + math: "\\mathsfbf{\\gamma}" +}, + "𝝳": { + math: "\\mathsfbf{\\delta}" +}, + "𝝴": { + math: "\\mathsfbf{\\varepsilon}" +}, + "𝝵": { + math: "\\mathsfbf{\\zeta}" +}, + "𝝶": { + math: "\\mathsfbf{\\eta}" +}, + "𝝷": { + math: "\\mathsfbf{\\theta}" +}, + "𝝸": { + math: "\\mathsfbf{\\imath}" +}, + "𝝹": { + math: "\\mathsfbf{\\kappa}" +}, + "𝝺": { + math: "\\mathsfbf{\\lambda}" +}, + "𝝻": { + math: "\\mu" +}, + "𝝼": { + math: "\\nu" +}, + "𝝽": { + math: "\\mathsfbf{\\xi}" +}, + "𝝾": { + math: "o" +}, + "𝝿": { + math: "\\mathsfbf{\\pi}" +}, + "𝞀": { + math: "\\mathsfbf{\\rho}" +}, + "𝞁": { + math: "\\mathsfbf{\\varsigma}" +}, + "𝞂": { + math: "\\mathsfbf{\\sigma}" +}, + "𝞃": { + math: "\\mathsfbf{\\tau}" +}, + "𝞄": { + math: "\\mathsfbf{\\upsilon}" +}, + "𝞅": { + math: "\\mathsfbf{\\varphi}" +}, + "𝞆": { + math: "\\mathsfbf{\\chi}" +}, + "𝞇": { + math: "\\mathsfbf{\\psi}" +}, + "𝞈": { + math: "\\mathsfbf{\\omega}" +}, + "𝞉": { + math: "\\partial" +}, + "𝞊": { + math: "\\in" +}, + "𝞋": { + math: "\\mathsfbf{\\vartheta}" +}, + "𝞌": { + math: "\\mathsfbf{\\varkappa}" +}, + "𝞍": { + math: "\\mathsfbf{\\phi}" +}, + "𝞎": { + math: "\\mathsfbf{\\varrho}" +}, + "𝞏": { + math: "\\mathsfbf{\\varpi}" +}, + "𝞐": { + math: "\\mathsfbfsl{A}" +}, + "𝞑": { + math: "\\mathsfbfsl{B}" +}, + "𝞒": { + math: "\\mathsfbfsl{\\Gamma}" +}, + "𝞓": { + math: "\\mathsfbfsl{\\Delta}" +}, + "𝞔": { + math: "\\mathsfbfsl{E}" +}, + "𝞕": { + math: "\\mathsfbfsl{Z}" +}, + "𝞖": { + math: "\\mathsfbfsl{H}" +}, + "𝞗": { + math: "\\mathsfbfsl{\\Theta}" +}, + "𝞘": { + math: "\\mathsfbfsl{I}" +}, + "𝞙": { + math: "\\mathsfbfsl{K}" +}, + "𝞚": { + math: "\\mathsfbfsl{\\Lambda}" +}, + "𝞛": { + math: "\\mathsfbfsl{M}" +}, + "𝞜": { + math: "\\mathsfbfsl{N}" +}, + "𝞝": { + math: "\\mathsfbfsl{\\Xi}" +}, + "𝞞": { + math: "\\mathsfbfsl{O}" +}, + "𝞟": { + math: "\\mathsfbfsl{\\Pi}" +}, + "𝞠": { + math: "\\mathsfbfsl{P}" +}, + "𝞡": { + math: "\\mathsfbfsl{\\Theta}" +}, + "𝞢": { + math: "\\mathsfbfsl{\\Sigma}" +}, + "𝞣": { + math: "\\mathsfbfsl{T}" +}, + "𝞤": { + math: "\\mathsfbfsl{\\Upsilon}" +}, + "𝞥": { + math: "\\mathsfbfsl{\\Phi}" +}, + "𝞦": { + math: "\\mathsfbfsl{X}" +}, + "𝞧": { + math: "\\mathsfbfsl{\\Psi}" +}, + "𝞨": { + math: "\\mathsfbfsl{\\Omega}" +}, + "𝞩": { + math: "\\mathsfbfsl{\\nabla}" +}, + "𝞪": { + math: "\\mathsfbfsl{\\alpha}" +}, + "𝞫": { + math: "\\mathsfbfsl{\\beta}" +}, + "𝞬": { + math: "\\mathsfbfsl{\\gamma}" +}, + "𝞭": { + math: "\\mathsfbfsl{\\delta}" +}, + "𝞮": { + math: "\\mathsfbfsl{\\varepsilon}" +}, + "𝞯": { + math: "\\mathsfbfsl{\\zeta}" +}, + "𝞰": { + math: "\\mathsfbfsl{\\eta}" +}, + "𝞱": { + math: "\\mathsfbfsl{\\theta}" +}, + "𝞲": { + math: "\\mathsfbfsl{\\imath}" +}, + "𝞳": { + math: "\\mathsfbfsl{\\kappa}" +}, + "𝞴": { + math: "\\mathsfbfsl{\\lambda}" +}, + "𝞵": { + math: "\\mu" +}, + "𝞶": { + math: "\\nu" +}, + "𝞷": { + math: "\\mathsfbfsl{\\xi}" +}, + "𝞸": { + math: "o" +}, + "𝞹": { + math: "\\mathsfbfsl{\\pi}" +}, + "𝞺": { + math: "\\mathsfbfsl{\\rho}" +}, + "𝞻": { + math: "\\mathsfbfsl{\\varsigma}" +}, + "𝞼": { + math: "\\mathsfbfsl{\\sigma}" +}, + "𝞽": { + math: "\\mathsfbfsl{\\tau}" +}, + "𝞾": { + math: "\\mathsfbfsl{\\upsilon}" +}, + "𝞿": { + math: "\\mathsfbfsl{\\varphi}" +}, + "𝟀": { + math: "\\mathsfbfsl{\\chi}" +}, + "𝟁": { + math: "\\mathsfbfsl{\\psi}" +}, + "𝟂": { + math: "\\mathsfbfsl{\\omega}" +}, + "𝟃": { + math: "\\partial" +}, + "𝟄": { + math: "\\in" +}, + "𝟅": { + math: "\\mathsfbfsl{\\vartheta}" +}, + "𝟆": { + math: "\\mathsfbfsl{\\varkappa}" +}, + "𝟇": { + math: "\\mathsfbfsl{\\phi}" +}, + "𝟈": { + math: "\\mathsfbfsl{\\varrho}" +}, + "𝟉": { + math: "\\mathsfbfsl{\\varpi}" +}, + "𝟊": { + math: "\\mbfDigamma" +}, + "𝟋": { + math: "\\mbfdigamma" +}, + "𝟎": { + math: "\\mathbf{0}" +}, + "𝟏": { + math: "\\mathbf{1}" +}, + "𝟐": { + math: "\\mathbf{2}" +}, + "𝟑": { + math: "\\mathbf{3}" +}, + "𝟒": { + math: "\\mathbf{4}" +}, + "𝟓": { + math: "\\mathbf{5}" +}, + "𝟔": { + math: "\\mathbf{6}" +}, + "𝟕": { + math: "\\mathbf{7}" +}, + "𝟖": { + math: "\\mathbf{8}" +}, + "𝟗": { + math: "\\mathbf{9}" +}, + "𝟘": { + math: "\\mathbb{0}" +}, + "𝟙": { + math: "\\mathbb{1}" +}, + "𝟚": { + math: "\\mathbb{2}" +}, + "𝟛": { + math: "\\mathbb{3}" +}, + "𝟜": { + math: "\\mathbb{4}" +}, + "𝟝": { + math: "\\mathbb{5}" +}, + "𝟞": { + math: "\\mathbb{6}" +}, + "𝟟": { + math: "\\mathbb{7}" +}, + "𝟠": { + math: "\\mathbb{8}" +}, + "𝟡": { + math: "\\mathbb{9}" +}, + "𝟢": { + math: "\\mathsf{0}" +}, + "𝟣": { + math: "\\mathsf{1}" +}, + "𝟤": { + math: "\\mathsf{2}" +}, + "𝟥": { + math: "\\mathsf{3}" +}, + "𝟦": { + math: "\\mathsf{4}" +}, + "𝟧": { + math: "\\mathsf{5}" +}, + "𝟨": { + math: "\\mathsf{6}" +}, + "𝟩": { + math: "\\mathsf{7}" +}, + "𝟪": { + math: "\\mathsf{8}" +}, + "𝟫": { + math: "\\mathsf{9}" +}, + "𝟬": { + math: "\\mathsfbf{0}" +}, + "𝟭": { + math: "\\mathsfbf{1}" +}, + "𝟮": { + math: "\\mathsfbf{2}" +}, + "𝟯": { + math: "\\mathsfbf{3}" +}, + "𝟰": { + math: "\\mathsfbf{4}" +}, + "𝟱": { + math: "\\mathsfbf{5}" +}, + "𝟲": { + math: "\\mathsfbf{6}" +}, + "𝟳": { + math: "\\mathsfbf{7}" +}, + "𝟴": { + math: "\\mathsfbf{8}" +}, + "𝟵": { + math: "\\mathsfbf{9}" +}, + "𝟶": { + math: "\\mathtt{0}" +}, + "𝟷": { + math: "\\mathtt{1}" +}, + "𝟸": { + math: "\\mathtt{2}" +}, + "𝟹": { + math: "\\mathtt{3}" +}, + "𝟺": { + math: "\\mathtt{4}" +}, + "𝟻": { + math: "\\mathtt{5}" +}, + "𝟼": { + math: "\\mathtt{6}" +}, + "𝟽": { + math: "\\mathtt{7}" +}, + "𝟾": { + math: "\\mathtt{8}" +}, + "𝟿": { + math: "\\mathtt{9}" +} +}; + +var $$1 = { + math: "\\$", + text: "\\$" +}; +var _$1 = { + math: "\\_", + text: "\\_" +}; +var require$$1 = { + "#": { + math: "\\#", + text: "\\#" +}, + $: $$1, + "%": { + math: "\\%", + text: "\\%" +}, + "&": { + math: "\\&", + text: "\\&" +}, + "/​": { + text: "{\\slash}" +}, + "<": { + math: "<" +}, + ">": { + math: ">" +}, + "\\": { + math: "\\backslash", + text: "{\\textbackslash}" +}, + "^": { + math: "\\sphat", + text: "\\^" +}, + _: _$1, + "i︠a︡": { + text: "\\t{ia}" +}, + "{": { + math: "\\lbrace", + text: "\\{" +}, + "}": { + math: "\\rbrace", + text: "\\}" +}, + "~": { + math: "\\sptilde", + text: "{\\textasciitilde}" +}, + " ": { + math: "~", + space: true, + text: "~" +}, + "¡": { + text: "{\\textexclamdown}" +}, + "¢": { + math: "\\cent", + text: "{\\textcent}", + textpackages: [ + "textcomp" + ] +}, + "£": { + math: "\\pounds", + text: "{\\textsterling}", + textpackages: [ + "textcomp" + ] +}, + "¤": { + text: "{\\textcurrency}", + textpackages: [ + "textcomp" + ] +}, + "¥": { + math: "\\yen", + text: "{\\textyen}", + textpackages: [ + "textcomp" + ] +}, + "¦": { + text: "{\\textbrokenbar}", + textpackages: [ + "textcomp" + ] +}, + "§": { + text: "{\\textsection}", + textpackages: [ + "textcomp" + ] +}, + "¨": { + math: "\\spddot", + text: "{\\textasciidieresis}" +}, + "©": { + text: "{\\textcopyright}", + textpackages: [ + "textcomp" + ] +}, + "ª": { + text: "{\\textordfeminine}", + textpackages: [ + "textcomp" + ] +}, + "«": { + text: "{\\guillemotleft}" +}, + "¬": { + math: "\\lnot" +}, + "­": { + math: "\\-", + text: "\\-" +}, + "®": { + math: "\\circledR", + text: "{\\textregistered}", + textpackages: [ + "textcomp" + ] +}, + "¯": { + text: "{\\textasciimacron}" +}, + "°": { + math: "^\\circ", + text: "{\\textdegree}", + textpackages: [ + "textcomp" + ] +}, + "±": { + math: "\\pm" +}, + "²": { + math: "^{2}" +}, + "³": { + math: "^{3}" +}, + "´": { + text: "{\\textasciiacute}" +}, + "µ": { + text: "{\\textmu}" +}, + "¶": { + text: "{\\textparagraph}", + textpackages: [ + "textcomp" + ] +}, + "·": { + math: "\\cdot" +}, + "¸": { + text: "{\\c}" +}, + "¹": { + math: "^{1}" +}, + "º": { + text: "{\\textordmasculine}", + textpackages: [ + "textcomp" + ] +}, + "»": { + text: "{\\guillemotright}" +}, + "¼": { + math: "\\frac{1}{4}" +}, + "½": { + math: "\\frac{1}{2}" +}, + "¾": { + math: "\\frac{3}{4}" +}, + "¿": { + text: "{\\textquestiondown}" +}, + "À": { + text: "{\\`A}" +}, + "Á": { + text: "{\\'A}" +}, + "Â": { + text: "{\\^A}" +}, + "Ã": { + text: "{\\~A}" +}, + "Ä": { + text: "{\\\"A}" +}, + "Å": { + text: "{\\AA}" +}, + "Æ": { + text: "{\\AE}" +}, + "Ç": { + text: "{\\c C}" +}, + "È": { + text: "{\\`E}" +}, + "É": { + text: "{\\'E}" +}, + "Ê": { + text: "{\\^E}" +}, + "Ë": { + text: "{\\\"E}" +}, + "Ì": { + text: "{\\`I}" +}, + "Í": { + text: "{\\'I}" +}, + "Î": { + text: "{\\^I}" +}, + "Ï": { + text: "{\\\"I}" +}, + "Ð": { + text: "{\\DH}" +}, + "Ñ": { + text: "{\\~N}" +}, + "Ò": { + text: "{\\`O}" +}, + "Ó": { + text: "{\\'O}" +}, + "Ô": { + text: "{\\^O}" +}, + "Õ": { + text: "{\\~O}" +}, + "Ö": { + text: "{\\\"O}" +}, + "×": { + math: "\\times", + text: "{\\texttimes}" +}, + "Ø": { + text: "{\\O}" +}, + "Ù": { + text: "{\\`U}" +}, + "Ú": { + text: "{\\'U}" +}, + "Û": { + text: "{\\^U}" +}, + "Ü": { + text: "{\\\"U}" +}, + "Ý": { + text: "{\\'Y}" +}, + "Þ": { + text: "{\\TH}" +}, + "ß": { + text: "{\\ss}" +}, + "à": { + text: "{\\`a}" +}, + "á": { + text: "{\\'a}" +}, + "â": { + text: "{\\^a}" +}, + "ã": { + text: "{\\~a}" +}, + "ä": { + text: "{\\\"a}" +}, + "å": { + text: "{\\aa}" +}, + "æ": { + text: "{\\ae}" +}, + "ç": { + text: "{\\c c}" +}, + "è": { + text: "{\\`e}" +}, + "é": { + text: "{\\'e}" +}, + "ê": { + text: "{\\^e}" +}, + "ë": { + text: "{\\\"e}" +}, + "ì": { + text: "{\\`i}" +}, + "í": { + text: "{\\'i}" +}, + "î": { + text: "{\\^i}" +}, + "ï": { + text: "{\\\"i}" +}, + "ð": { + math: "\\eth", + mathpackages: [ + "amssymb", + "arevmath" + ], + text: "{\\dh}" +}, + "ñ": { + text: "{\\~n}" +}, + "ò": { + text: "{\\`o}" +}, + "ó": { + text: "{\\'o}" +}, + "ô": { + text: "{\\^o}" +}, + "õ": { + text: "{\\~o}" +}, + "ö": { + text: "{\\\"o}" +}, + "÷": { + math: "\\div" +}, + "ø": { + text: "{\\o}" +}, + "ù": { + text: "{\\`u}" +}, + "ú": { + text: "{\\'u}" +}, + "û": { + text: "{\\^u}" +}, + "ü": { + text: "{\\\"u}" +}, + "ý": { + text: "{\\'y}" +}, + "þ": { + text: "{\\th}" +}, + "ÿ": { + text: "{\\\"y}" +}, + "Ā": { + text: "{\\=A}" +}, + "ā": { + text: "{\\=a}" +}, + "Ă": { + text: "{\\u A}" +}, + "ă": { + text: "{\\u a}" +}, + "Ą": { + text: "{\\k{A}}" +}, + "ą": { + text: "{\\k{a}}" +}, + "Ć": { + text: "{\\'C}" +}, + "ć": { + text: "{\\'c}" +}, + "Ĉ": { + text: "{\\^C}" +}, + "ĉ": { + text: "{\\^c}" +}, + "Ċ": { + text: "{\\.C}" +}, + "ċ": { + text: "{\\.c}" +}, + "Č": { + text: "{\\v C}" +}, + "č": { + text: "{\\v c}" +}, + "Ď": { + text: "{\\v D}" +}, + "ď": { + text: "{\\v d}" +}, + "Đ": { + text: "{\\DJ}" +}, + "đ": { + text: "{\\dj}" +}, + "Ē": { + text: "{\\=E}" +}, + "ē": { + text: "{\\=e}" +}, + "Ĕ": { + text: "{\\u E}" +}, + "ĕ": { + text: "{\\u e}" +}, + "Ė": { + text: "{\\.E}" +}, + "ė": { + text: "{\\.e}" +}, + "Ę": { + text: "{\\k{E}}" +}, + "ę": { + text: "{\\k{e}}" +}, + "Ě": { + text: "{\\v E}" +}, + "ě": { + text: "{\\v e}" +}, + "Ĝ": { + text: "{\\^G}" +}, + "ĝ": { + text: "{\\^g}" +}, + "Ğ": { + text: "{\\u G}" +}, + "ğ": { + text: "{\\u g}" +}, + "Ġ": { + text: "{\\.G}" +}, + "ġ": { + text: "{\\.g}" +}, + "Ģ": { + text: "{\\c G}" +}, + "ģ": { + text: "{\\c g}" +}, + "Ĥ": { + text: "{\\^H}" +}, + "ĥ": { + text: "{\\^h}" +}, + "Ħ": { + text: "{\\fontencoding{LELA}\\selectfont\\char40}" +}, + "ħ": { + math: "\\Elzxh" +}, + "Ĩ": { + text: "{\\~I}" +}, + "ĩ": { + text: "{\\~i}" +}, + "Ī": { + text: "{\\=I}" +}, + "ī": { + text: "{\\=i}" +}, + "Ĭ": { + text: "{\\u I}" +}, + "ĭ": { + text: "{\\u \\i}" +}, + "Į": { + text: "{\\k{I}}" +}, + "į": { + text: "{\\k{i}}" +}, + "İ": { + text: "{\\.I}" +}, + "ı": { + math: "\\imath", + text: "{\\i}" +}, + "IJ": { + text: "IJ" +}, + "ij": { + text: "ij" +}, + "Ĵ": { + text: "{\\^J}" +}, + "ĵ": { + text: "{\\^\\j}" +}, + "Ķ": { + text: "{\\c K}" +}, + "ķ": { + text: "{\\c k}" +}, + "ĸ": { + text: "{\\fontencoding{LELA}\\selectfont\\char91}" +}, + "Ĺ": { + text: "{\\'L}" +}, + "ĺ": { + text: "{\\'l}" +}, + "Ļ": { + text: "{\\c L}" +}, + "ļ": { + text: "{\\c l}" +}, + "Ľ": { + text: "{\\v L}" +}, + "ľ": { + text: "{\\v l}" +}, + "Ŀ": { + text: "{\\fontencoding{LELA}\\selectfont\\char201}" +}, + "ŀ": { + text: "{\\fontencoding{LELA}\\selectfont\\char202}" +}, + "Ł": { + text: "{\\L}" +}, + "ł": { + text: "{\\l}" +}, + "Ń": { + text: "{\\'N}" +}, + "ń": { + text: "{\\'n}" +}, + "Ņ": { + text: "{\\c N}" +}, + "ņ": { + text: "{\\c n}" +}, + "Ň": { + text: "{\\v N}" +}, + "ň": { + text: "{\\v n}" +}, + "ʼn": { + text: "'n" +}, + "Ŋ": { + text: "{\\NG}" +}, + "ŋ": { + text: "{\\ng}" +}, + "Ō": { + text: "{\\=O}" +}, + "ō": { + text: "{\\=o}" +}, + "Ŏ": { + text: "{\\u O}" +}, + "ŏ": { + text: "{\\u o}" +}, + "Ő": { + text: "{\\H O}" +}, + "ő": { + text: "{\\H o}" +}, + "Œ": { + text: "{\\OE}" +}, + "œ": { + text: "{\\oe}" +}, + "Ŕ": { + text: "{\\'R}" +}, + "ŕ": { + text: "{\\'r}" +}, + "Ŗ": { + text: "{\\c R}" +}, + "ŗ": { + text: "{\\c r}" +}, + "Ř": { + text: "{\\v R}" +}, + "ř": { + text: "{\\v r}" +}, + "Ś": { + text: "{\\'S}" +}, + "ś": { + text: "{\\'s}" +}, + "Ŝ": { + text: "{\\^S}" +}, + "ŝ": { + text: "{\\^s}" +}, + "Ş": { + text: "{\\c S}" +}, + "ş": { + text: "{\\c s}" +}, + "Š": { + text: "{\\v S}" +}, + "š": { + text: "{\\v s}" +}, + "Ţ": { + text: "{\\c T}" +}, + "ţ": { + text: "{\\c t}" +}, + "Ť": { + text: "{\\v T}" +}, + "ť": { + text: "{\\v t}" +}, + "Ŧ": { + text: "{\\fontencoding{LELA}\\selectfont\\char47}" +}, + "ŧ": { + text: "{\\fontencoding{LELA}\\selectfont\\char63}" +}, + "Ũ": { + text: "{\\~U}" +}, + "ũ": { + text: "{\\~u}" +}, + "Ū": { + text: "{\\=U}" +}, + "ū": { + text: "{\\=u}" +}, + "Ŭ": { + text: "{\\u U}" +}, + "ŭ": { + text: "{\\u u}" +}, + "Ů": { + text: "{\\r{U}}" +}, + "ů": { + text: "{\\r{u}}" +}, + "Ű": { + text: "{\\H U}" +}, + "ű": { + text: "{\\H u}" +}, + "Ų": { + text: "{\\k{U}}" +}, + "ų": { + text: "{\\k{u}}" +}, + "Ŵ": { + text: "{\\^W}" +}, + "ŵ": { + text: "{\\^w}" +}, + "Ŷ": { + text: "{\\^Y}" +}, + "ŷ": { + text: "{\\^y}" +}, + "Ÿ": { + text: "{\\\"Y}" +}, + "Ź": { + text: "{\\'Z}" +}, + "ź": { + text: "{\\'z}" +}, + "Ż": { + text: "{\\.Z}" +}, + "ż": { + text: "{\\.z}" +}, + "Ž": { + text: "{\\v Z}" +}, + "ž": { + text: "{\\v z}" +}, + "ſ": { + text: "s" +}, + "ƒ": { + math: "f" +}, + "ƕ": { + text: "{\\texthvlig}" +}, + "ƞ": { + text: "{\\textnrleg}" +}, + "ƪ": { + text: "{\\textesh}" +}, + "Ƶ": { + math: "\\Zbar" +}, + "ƺ": { + text: "{\\fontencoding{LELA}\\selectfont\\char195}" +}, + "ǂ": { + text: "{\\textdoublepipe}" +}, + "Ǎ": { + text: "{\\v A}" +}, + "ǎ": { + text: "{\\v a}" +}, + "Ǐ": { + text: "{\\v I}" +}, + "ǐ": { + text: "{\\v i}" +}, + "Ǒ": { + text: "{\\v O}" +}, + "ǒ": { + text: "{\\v o}" +}, + "Ǔ": { + text: "{\\v U}" +}, + "ǔ": { + text: "{\\v u}" +}, + "Ǧ": { + text: "{\\v G}" +}, + "ǧ": { + text: "{\\v g}" +}, + "Ǩ": { + text: "{\\v K}" +}, + "ǩ": { + text: "{\\v k}" +}, + "Ǫ": { + text: "{\\k{O}}" +}, + "ǫ": { + text: "{\\k{o}}" +}, + "ǰ": { + text: "{\\v j}" +}, + "Ǵ": { + text: "{\\'G}" +}, + "ǵ": { + text: "{\\'g}" +}, + "Ȩ": { + text: "{\\c E}" +}, + "ȩ": { + text: "{\\c e}" +}, + "ȷ": { + math: "\\jmath" +}, + "ɐ": { + math: "\\Elztrna" +}, + "ɒ": { + math: "\\Elztrnsa" +}, + "ɔ": { + math: "\\Elzopeno" +}, + "ɖ": { + math: "\\Elzrtld" +}, + "ɘ": { + text: "{\\fontencoding{LEIP}\\selectfont\\char61}" +}, + "ə": { + math: "\\Elzschwa" +}, + "ɛ": { + math: "\\varepsilon" +}, + "ɡ": { + text: "g" +}, + "ɣ": { + math: "\\Elzpgamma" +}, + "ɤ": { + math: "\\Elzpbgam" +}, + "ɥ": { + math: "\\Elztrnh" +}, + "ɬ": { + math: "\\Elzbtdl" +}, + "ɭ": { + math: "\\Elzrtll" +}, + "ɯ": { + math: "\\Elztrnm" +}, + "ɰ": { + math: "\\Elztrnmlr" +}, + "ɱ": { + math: "\\Elzltlmr" +}, + "ɲ": { + text: "{\\Elzltln}" +}, + "ɳ": { + math: "\\Elzrtln" +}, + "ɷ": { + math: "\\Elzclomeg" +}, + "ɸ": { + text: "{\\textphi}" +}, + "ɹ": { + math: "\\Elztrnr" +}, + "ɺ": { + math: "\\Elztrnrl" +}, + "ɻ": { + math: "\\Elzrttrnr" +}, + "ɼ": { + math: "\\Elzrl" +}, + "ɽ": { + math: "\\Elzrtlr" +}, + "ɾ": { + math: "\\Elzfhr" +}, + "ɿ": { + text: "{\\fontencoding{LEIP}\\selectfont\\char202}" +}, + "ʂ": { + math: "\\Elzrtls" +}, + "ʃ": { + math: "\\Elzesh" +}, + "ʇ": { + math: "\\Elztrnt" +}, + "ʈ": { + math: "\\Elzrtlt" +}, + "ʊ": { + math: "\\Elzpupsil" +}, + "ʋ": { + math: "\\Elzpscrv" +}, + "ʌ": { + math: "\\Elzinvv" +}, + "ʍ": { + math: "\\Elzinvw" +}, + "ʎ": { + math: "\\Elztrny" +}, + "ʐ": { + math: "\\Elzrtlz" +}, + "ʒ": { + math: "\\Elzyogh" +}, + "ʔ": { + math: "\\Elzglst" +}, + "ʕ": { + math: "\\Elzreglst" +}, + "ʖ": { + math: "\\Elzinglst" +}, + "ʞ": { + text: "{\\textturnk}" +}, + "ʤ": { + math: "\\Elzdyogh" +}, + "ʧ": { + math: "\\Elztesh" +}, + "ʰ": { + math: "^{h}", + text: "\\textsuperscript{h}" +}, + "ʲ": { + math: "^{j}", + text: "\\textsuperscript{j}" +}, + "ʳ": { + math: "^{r}", + text: "\\textsuperscript{r}" +}, + "ʷ": { + math: "^{w}", + text: "\\textsuperscript{w}" +}, + "ʸ": { + math: "^{y}", + text: "\\textsuperscript{y}" +}, + "ʹ": { + text: "'" +}, + "ʻ": { + text: "'" +}, + "ʼ": { + text: "'" +}, + "ʽ": { + text: "'" +}, + "ʿ": { + text: "{\\lasp}", + textpackages: [ + "mathscinet" + ] +}, + "ˆ": { + text: "{\\textasciicircum}" +}, + "ˇ": { + text: "{\\textasciicaron}" +}, + "ˈ": { + math: "\\Elzverts" +}, + "ˉ": { + text: "-" +}, + "ˌ": { + math: "\\Elzverti" +}, + "ː": { + math: "\\Elzlmrk" +}, + "ˑ": { + math: "\\Elzhlmrk" +}, + "˒": { + math: "\\Elzsbrhr" +}, + "˓": { + math: "\\Elzsblhr" +}, + "˔": { + math: "\\Elzrais" +}, + "˕": { + math: "\\Elzlow" +}, + "˘": { + text: "{\\textasciibreve}" +}, + "˙": { + text: "{\\textperiodcentered}", + textpackages: [ + "textcomp" + ] +}, + "˚": { + text: "{\\r{}}" +}, + "˛": { + text: "{\\k{}}" +}, + "˜": { + text: "{\\texttildelow}" +}, + "˝": { + text: "{\\H{}}" +}, + "ˡ": { + math: "^{l}", + text: "\\textsuperscript{l}" +}, + "ˢ": { + math: "^{s}", + text: "\\textsuperscript{s}" +}, + "ˣ": { + math: "^{x}", + text: "\\textsuperscript{x}" +}, + "˥": { + text: "\\tone{55}" +}, + "˦": { + text: "\\tone{44}" +}, + "˧": { + text: "\\tone{33}" +}, + "˨": { + text: "\\tone{22}" +}, + "˩": { + text: "\\tone{11}" +}, + "̀": { + math: "\\grave", + combiningdiacritic: true, + text: "\\`" +}, + "̀̄": { + text: "{\\textgravemacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̄̀": { + text: "{\\textgravemacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̀̇": { + text: "{\\textgravedot}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̇̀": { + text: "{\\textgravedot}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "́": { + math: "\\acute", + combiningdiacritic: true, + text: "\\'" +}, + "́̄": { + text: "{\\textacutemacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̄́": { + text: "{\\textacutemacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "́̌": { + text: "{\\textacutewedge}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̌́": { + text: "{\\textacutewedge}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̂": { + math: "\\hat", + combiningdiacritic: true, + text: "\\^" +}, + "̂̇": { + text: "{\\textcircumdot}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̇̂": { + text: "{\\textcircumdot}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̃": { + math: "\\tilde", + combiningdiacritic: true, + text: "\\~" +}, + "̃̇": { + text: "{\\texttildedot}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̇̃": { + text: "{\\texttildedot}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̄": { + math: "\\bar", + combiningdiacritic: true, + text: "\\=" +}, + "̅": { + math: "\\overline", + combiningdiacritic: true +}, + "̆": { + math: "\\breve", + combiningdiacritic: true, + text: "{\\u}" +}, + "̆̄": { + text: "{\\textbrevemacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̄̆": { + text: "{\\textbrevemacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̇": { + math: "\\dot", + combiningdiacritic: true, + text: "\\." +}, + "̇́": { + text: "{\\textdotacute}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "́̇": { + text: "{\\textdotacute}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̇̆": { + text: "{\\textdotbreve}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̆̇": { + text: "{\\textdotbreve}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̈": { + math: "\\ddot", + combiningdiacritic: true, + text: "\\\"" +}, + "̉": { + math: "\\ovhook" +}, + "̊": { + math: "\\mathring", + combiningdiacritic: true, + text: "{\\r}" +}, + "̊̄": { + text: "{\\textringmacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̄̊": { + text: "{\\textringmacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̋": { + text: "{\\H}", + combiningdiacritic: true +}, + "̌": { + math: "\\check", + text: "{\\v}", + combiningdiacritic: true +}, + "̍": { + text: "{\\textvbaraccent}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̎": { + text: "{\\textdoublevbaraccent}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̏": { + text: "{\\textdoublegrave}", + combiningdiacritic: true +}, + "̐": { + text: "{\\textdotbreve}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̑": { + text: "{\\fontencoding{LECO}\\selectfont\\char177}" +}, + "̒": { + math: "\\oturnedcomma" +}, + "̕": { + math: "\\ocommatopright" +}, + "̖": { + text: "{\\textsubgrave}", + combiningdiacritic: true +}, + "̘": { + text: "{\\textadvancing}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̙": { + text: "{\\textretracting}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̚": { + math: "\\droang", + text: "{\\textcorner}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̜": { + text: "{\\textsublhalfring}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̝": { + text: "{\\textraising}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̞": { + text: "{\\textlowering}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̟": { + text: "{\\textsubplus}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̡": { + math: "\\Elzpalh" +}, + "̢": { + text: "{\\Elzrh}" +}, + "̣": { + text: "{\\d}", + combiningdiacritic: true +}, + "̤": { + text: "{\\textsubumlaut}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̥": { + text: "{\\textsubring}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̧": { + text: "{\\c}", + combiningdiacritic: true +}, + "̨": { + text: "{\\k}", + combiningdiacritic: true +}, + "̩": { + text: "{\\textsyllabic}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̪": { + math: "\\Elzsbbrg", + text: "{\\textsubbridge}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̫": { + text: "{\\fontencoding{LECO}\\selectfont\\char203}" +}, + "̬": { + text: "{\\textsubwedge}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̯": { + text: "{\\textsubarch}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̰": { + math: "\\utilde", + text: "{\\textsubtilde}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̱": { + math: "\\underbar", + combiningdiacritic: true, + text: "{\\textsubbar}", + textpackages: [ + "tipa" + ] +}, + "̲": { + math: "\\underline" +}, + "̴": { + text: "{\\textsuperimposetilde}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̵": { + text: "{\\Elzxl}" +}, + "̶": { + text: "{\\Elzbar}" +}, + "̷": { + text: "{\\fontencoding{LECO}\\selectfont\\char215}" +}, + "̸": { + math: "\\not" +}, + "̹": { + text: "{\\textsubrhalfring}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̺": { + text: "{\\textinvsubbridge}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̻": { + text: "{\\textsubsquare}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̼": { + text: "{\\textseagull}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "̽": { + text: "{\\textovercross}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] +}, + "͡": { + text: "{\\fontencoding{LECO}\\selectfont\\char225}" +}, + "ʹ": { + text: "'" +}, + "͵": { + text: "," +}, + ";": { + text: ";" +}, + "Ά": { + text: "{\\'A}" +}, + "Έ": { + text: "{\\'E}" +}, + "Ή": { + text: "{\\'H}" +}, + "Ί": { + text: "{\\'{}I}" +}, + "Ό": { + text: "{\\'{}O}" +}, + "Ύ": { + math: "\\mathrm{'Y}" +}, + "Ώ": { + math: "\\mathrm{'\\Omega}" +}, + "ΐ": { + math: "\\acute{\\ddot{\\iota}}" +}, + "Α": { + math: "A" +}, + "Β": { + math: "B" +}, + "Γ": { + math: "\\Gamma" +}, + "Δ": { + math: "\\Delta" +}, + "Ε": { + math: "E" +}, + "Ζ": { + math: "Z" +}, + "Η": { + math: "H" +}, + "Θ": { + math: "\\Theta" +}, + "Ι": { + math: "I" +}, + "Κ": { + math: "K" +}, + "Λ": { + math: "\\Lambda" +}, + "Μ": { + math: "M" +}, + "Ν": { + math: "N" +}, + "Ξ": { + math: "\\Xi" +}, + "Ο": { + math: "O" +}, + "Π": { + math: "\\Pi" +}, + "Ρ": { + math: "P" +}, + "Σ": { + math: "\\Sigma" +}, + "Τ": { + math: "T" +}, + "Υ": { + math: "\\Upsilon" +}, + "Φ": { + math: "\\Phi" +}, + "Χ": { + math: "X" +}, + "Ψ": { + math: "\\Psi" +}, + "Ω": { + math: "\\Omega" +}, + "Ϊ": { + math: "\\mathrm{\\ddot{I}}" +}, + "Ϋ": { + math: "\\mathrm{\\ddot{Y}}" +}, + "ά": { + text: "{\\'$\\alpha$}" +}, + "έ": { + math: "\\acute{\\epsilon}" +}, + "ή": { + math: "\\acute{\\eta}" +}, + "ί": { + math: "\\acute{\\iota}" +}, + "ΰ": { + math: "\\acute{\\ddot{\\upsilon}}" +}, + "α": { + math: "\\alpha" +}, + "β": { + math: "\\beta" +}, + "γ": { + math: "\\gamma" +}, + "δ": { + math: "\\delta" +}, + "ε": { + math: "\\epsilon" +}, + "ζ": { + math: "\\zeta" +}, + "η": { + math: "\\eta" +}, + "θ": { + math: "\\theta", + text: "{\\texttheta}" +}, + "ι": { + math: "\\iota" +}, + "κ": { + math: "\\kappa" +}, + "λ": { + math: "\\lambda" +}, + "μ": { + math: "\\mu" +}, + "ν": { + math: "\\nu" +}, + "ξ": { + math: "\\xi" +}, + "ο": { + math: "o" +}, + "π": { + math: "\\pi" +}, + "ρ": { + math: "\\rho" +}, + "ς": { + math: "\\varsigma" +}, + "σ": { + math: "\\sigma" +}, + "τ": { + math: "\\tau" +}, + "υ": { + math: "\\upsilon" +}, + "φ": { + math: "\\varphi" +}, + "χ": { + math: "\\chi" +}, + "ψ": { + math: "\\psi" +}, + "ω": { + math: "\\omega" +}, + "ϊ": { + math: "\\ddot{\\iota}" +}, + "ϋ": { + math: "\\ddot{\\upsilon}" +}, + "ό": { + text: "{\\'o}" +}, + "ύ": { + math: "\\acute{\\upsilon}" +}, + "ώ": { + math: "\\acute{\\omega}" +}, + "ϐ": { + math: "\\varbeta", + text: "\\Pisymbol{ppi022}{87}" +}, + "ϑ": { + math: "\\vartheta", + text: "{\\textvartheta}" +}, + "ϒ": { + math: "\\Upsilon" +}, + "ϕ": { + math: "\\phi" +}, + "ϖ": { + math: "\\varpi" +}, + "Ϙ": { + math: "\\Qoppa" +}, + "ϙ": { + math: "\\qoppa" +}, + "Ϛ": { + math: "\\Stigma" +}, + "ϛ": { + math: "\\stigma" +}, + "Ϝ": { + math: "\\Digamma" +}, + "ϝ": { + math: "\\digamma" +}, + "Ϟ": { + math: "\\Koppa" +}, + "ϟ": { + math: "\\koppa" +}, + "Ϡ": { + math: "\\Sampi" +}, + "ϡ": { + math: "\\sampi" +}, + "ϰ": { + math: "\\varkappa" +}, + "ϱ": { + math: "\\varrho" +}, + "ϴ": { + math: "\\upvarTheta", + text: "{\\textTheta}" +}, + "ϵ": { + math: "\\epsilon" +}, + "϶": { + math: "\\backepsilon" +}, + "Ё": { + text: "{\\cyrchar\\CYRYO}" +}, + "Ђ": { + text: "{\\cyrchar\\CYRDJE}" +}, + "Ѓ": { + text: "{\\cyrchar{\\'\\CYRG}}" +}, + "Є": { + text: "{\\cyrchar\\CYRIE}" +}, + "Ѕ": { + text: "{\\cyrchar\\CYRDZE}" +}, + "І": { + text: "{\\cyrchar\\CYRII}" +}, + "Ї": { + text: "{\\cyrchar\\CYRYI}" +}, + "Ј": { + text: "{\\cyrchar\\CYRJE}" +}, + "Љ": { + text: "{\\cyrchar\\CYRLJE}" +}, + "Њ": { + text: "{\\cyrchar\\CYRNJE}" +}, + "Ћ": { + text: "{\\cyrchar\\CYRTSHE}" +}, + "Ќ": { + text: "{\\cyrchar{\\'\\CYRK}}" +}, + "Ў": { + text: "{\\cyrchar\\CYRUSHRT}" +}, + "Џ": { + text: "{\\cyrchar\\CYRDZHE}" +}, + "А": { + text: "{\\cyrchar\\CYRA}" +}, + "Б": { + text: "{\\cyrchar\\CYRB}" +}, + "В": { + text: "{\\cyrchar\\CYRV}" +}, + "Г": { + text: "{\\cyrchar\\CYRG}" +}, + "Д": { + text: "{\\cyrchar\\CYRD}" +}, + "Е": { + text: "{\\cyrchar\\CYRE}" +}, + "Ж": { + text: "{\\cyrchar\\CYRZH}" +}, + "З": { + text: "{\\cyrchar\\CYRZ}" +}, + "И": { + text: "{\\cyrchar\\CYRI}" +}, + "Й": { + text: "{\\cyrchar\\CYRISHRT}" +}, + "К": { + text: "{\\cyrchar\\CYRK}" +}, + "Л": { + text: "{\\cyrchar\\CYRL}" +}, + "М": { + text: "{\\cyrchar\\CYRM}" +}, + "Н": { + text: "{\\cyrchar\\CYRN}" +}, + "О": { + text: "{\\cyrchar\\CYRO}" +}, + "П": { + text: "{\\cyrchar\\CYRP}" +}, + "Р": { + text: "{\\cyrchar\\CYRR}" +}, + "С": { + text: "{\\cyrchar\\CYRS}" +}, + "Т": { + text: "{\\cyrchar\\CYRT}" +}, + "У": { + text: "{\\cyrchar\\CYRU}" +}, + "Ф": { + text: "{\\cyrchar\\CYRF}" +}, + "Х": { + text: "{\\cyrchar\\CYRH}" +}, + "Ц": { + text: "{\\cyrchar\\CYRC}" +}, + "Ч": { + text: "{\\cyrchar\\CYRCH}" +}, + "Ш": { + text: "{\\cyrchar\\CYRSH}" +}, + "Щ": { + text: "{\\cyrchar\\CYRSHCH}" +}, + "Ъ": { + text: "{\\cyrchar\\CYRHRDSN}" +}, + "Ы": { + text: "{\\cyrchar\\CYRERY}" +}, + "Ь": { + text: "{\\cyrchar\\CYRSFTSN}" +}, + "Э": { + text: "{\\cyrchar\\CYREREV}" +}, + "Ю": { + text: "{\\cyrchar\\CYRYU}" +}, + "Я": { + text: "{\\cyrchar\\CYRYA}" +}, + "а": { + text: "{\\cyrchar\\cyra}" +}, + "б": { + text: "{\\cyrchar\\cyrb}" +}, + "в": { + text: "{\\cyrchar\\cyrv}" +}, + "г": { + text: "{\\cyrchar\\cyrg}" +}, + "д": { + text: "{\\cyrchar\\cyrd}" +}, + "е": { + text: "{\\cyrchar\\cyre}" +}, + "ж": { + text: "{\\cyrchar\\cyrzh}" +}, + "з": { + text: "{\\cyrchar\\cyrz}" +}, + "и": { + text: "{\\cyrchar\\cyri}" +}, + "й": { + text: "{\\cyrchar\\cyrishrt}" +}, + "к": { + text: "{\\cyrchar\\cyrk}" +}, + "л": { + text: "{\\cyrchar\\cyrl}" +}, + "м": { + text: "{\\cyrchar\\cyrm}" +}, + "н": { + text: "{\\cyrchar\\cyrn}" +}, + "о": { + text: "{\\cyrchar\\cyro}" +}, + "п": { + text: "{\\cyrchar\\cyrp}" +}, + "р": { + text: "{\\cyrchar\\cyrr}" +}, + "с": { + text: "{\\cyrchar\\cyrs}" +}, + "т": { + text: "{\\cyrchar\\cyrt}" +}, + "у": { + text: "{\\cyrchar\\cyru}" +}, + "ф": { + text: "{\\cyrchar\\cyrf}" +}, + "х": { + text: "{\\cyrchar\\cyrh}" +}, + "ц": { + text: "{\\cyrchar\\cyrc}" +}, + "ч": { + text: "{\\cyrchar\\cyrch}" +}, + "ш": { + text: "{\\cyrchar\\cyrsh}" +}, + "щ": { + text: "{\\cyrchar\\cyrshch}" +}, + "ъ": { + text: "{\\cyrchar\\cyrhrdsn}" +}, + "ы": { + text: "{\\cyrchar\\cyrery}" +}, + "ь": { + text: "{\\cyrchar\\cyrsftsn}" +}, + "э": { + text: "{\\cyrchar\\cyrerev}" +}, + "ю": { + text: "{\\cyrchar\\cyryu}" +}, + "я": { + text: "{\\cyrchar\\cyrya}" +}, + "ё": { + text: "{\\cyrchar\\cyryo}" +}, + "ђ": { + text: "{\\cyrchar\\cyrdje}" +}, + "ѓ": { + text: "{\\cyrchar{\\'\\cyrg}}" +}, + "є": { + text: "{\\cyrchar\\cyrie}" +}, + "ѕ": { + text: "{\\cyrchar\\cyrdze}" +}, + "і": { + text: "{\\cyrchar\\cyrii}" +}, + "ї": { + text: "{\\cyrchar\\cyryi}" +}, + "ј": { + text: "{\\cyrchar\\cyrje}" +}, + "љ": { + text: "{\\cyrchar\\cyrlje}" +}, + "њ": { + text: "{\\cyrchar\\cyrnje}" +}, + "ћ": { + text: "{\\cyrchar\\cyrtshe}" +}, + "ќ": { + text: "{\\cyrchar{\\'\\cyrk}}" +}, + "ў": { + text: "{\\cyrchar\\cyrushrt}" +}, + "џ": { + text: "{\\cyrchar\\cyrdzhe}" +}, + "Ѡ": { + text: "{\\cyrchar\\CYROMEGA}" +}, + "ѡ": { + text: "{\\cyrchar\\cyromega}" +}, + "Ѣ": { + text: "{\\cyrchar\\CYRYAT}" +}, + "Ѥ": { + text: "{\\cyrchar\\CYRIOTE}" +}, + "ѥ": { + text: "{\\cyrchar\\cyriote}" +}, + "Ѧ": { + text: "{\\cyrchar\\CYRLYUS}" +}, + "ѧ": { + text: "{\\cyrchar\\cyrlyus}" +}, + "Ѩ": { + text: "{\\cyrchar\\CYRIOTLYUS}" +}, + "ѩ": { + text: "{\\cyrchar\\cyriotlyus}" +}, + "Ѫ": { + text: "{\\cyrchar\\CYRBYUS}" +}, + "Ѭ": { + text: "{\\cyrchar\\CYRIOTBYUS}" +}, + "ѭ": { + text: "{\\cyrchar\\cyriotbyus}" +}, + "Ѯ": { + text: "{\\cyrchar\\CYRKSI}" +}, + "ѯ": { + text: "{\\cyrchar\\cyrksi}" +}, + "Ѱ": { + text: "{\\cyrchar\\CYRPSI}" +}, + "ѱ": { + text: "{\\cyrchar\\cyrpsi}" +}, + "Ѳ": { + text: "{\\cyrchar\\CYRFITA}" +}, + "Ѵ": { + text: "{\\cyrchar\\CYRIZH}" +}, + "Ѹ": { + text: "{\\cyrchar\\CYRUK}" +}, + "ѹ": { + text: "{\\cyrchar\\cyruk}" +}, + "Ѻ": { + text: "{\\cyrchar\\CYROMEGARND}" +}, + "ѻ": { + text: "{\\cyrchar\\cyromegarnd}" +}, + "Ѽ": { + text: "{\\cyrchar\\CYROMEGATITLO}" +}, + "ѽ": { + text: "{\\cyrchar\\cyromegatitlo}" +}, + "Ѿ": { + text: "{\\cyrchar\\CYROT}" +}, + "ѿ": { + text: "{\\cyrchar\\cyrot}" +}, + "Ҁ": { + text: "{\\cyrchar\\CYRKOPPA}" +}, + "ҁ": { + text: "{\\cyrchar\\cyrkoppa}" +}, + "҂": { + text: "{\\cyrchar\\cyrthousands}" +}, + "҈": { + text: "{\\cyrchar\\cyrhundredthousands}" +}, + "҉": { + text: "{\\cyrchar\\cyrmillions}" +}, + "Ҍ": { + text: "{\\cyrchar\\CYRSEMISFTSN}" +}, + "ҍ": { + text: "{\\cyrchar\\cyrsemisftsn}" +}, + "Ҏ": { + text: "{\\cyrchar\\CYRRTICK}" +}, + "ҏ": { + text: "{\\cyrchar\\cyrrtick}" +}, + "Ґ": { + text: "{\\cyrchar\\CYRGUP}" +}, + "ґ": { + text: "{\\cyrchar\\cyrgup}" +}, + "Ғ": { + text: "{\\cyrchar\\CYRGHCRS}" +}, + "ғ": { + text: "{\\cyrchar\\cyrghcrs}" +}, + "Ҕ": { + text: "{\\cyrchar\\CYRGHK}" +}, + "ҕ": { + text: "{\\cyrchar\\cyrghk}" +}, + "Җ": { + text: "{\\cyrchar\\CYRZHDSC}" +}, + "җ": { + text: "{\\cyrchar\\cyrzhdsc}" +}, + "Ҙ": { + text: "{\\cyrchar\\CYRZDSC}" +}, + "ҙ": { + text: "{\\cyrchar\\cyrzdsc}" +}, + "Қ": { + text: "{\\cyrchar\\CYRKDSC}" +}, + "қ": { + text: "{\\cyrchar\\cyrkdsc}" +}, + "Ҝ": { + text: "{\\cyrchar\\CYRKVCRS}" +}, + "ҝ": { + text: "{\\cyrchar\\cyrkvcrs}" +}, + "Ҟ": { + text: "{\\cyrchar\\CYRKHCRS}" +}, + "ҟ": { + text: "{\\cyrchar\\cyrkhcrs}" +}, + "Ҡ": { + text: "{\\cyrchar\\CYRKBEAK}" +}, + "ҡ": { + text: "{\\cyrchar\\cyrkbeak}" +}, + "Ң": { + text: "{\\cyrchar\\CYRNDSC}" +}, + "ң": { + text: "{\\cyrchar\\cyrndsc}" +}, + "Ҥ": { + text: "{\\cyrchar\\CYRNG}" +}, + "ҥ": { + text: "{\\cyrchar\\cyrng}" +}, + "Ҧ": { + text: "{\\cyrchar\\CYRPHK}" +}, + "ҧ": { + text: "{\\cyrchar\\cyrphk}" +}, + "Ҩ": { + text: "{\\cyrchar\\CYRABHHA}" +}, + "ҩ": { + text: "{\\cyrchar\\cyrabhha}" +}, + "Ҫ": { + text: "{\\cyrchar\\CYRSDSC}" +}, + "ҫ": { + text: "{\\cyrchar\\cyrsdsc}" +}, + "Ҭ": { + text: "{\\cyrchar\\CYRTDSC}" +}, + "ҭ": { + text: "{\\cyrchar\\cyrtdsc}" +}, + "Ү": { + text: "{\\cyrchar\\CYRY}" +}, + "ү": { + text: "{\\cyrchar\\cyry}" +}, + "Ұ": { + text: "{\\cyrchar\\CYRYHCRS}" +}, + "ұ": { + text: "{\\cyrchar\\cyryhcrs}" +}, + "Ҳ": { + text: "{\\cyrchar\\CYRHDSC}" +}, + "ҳ": { + text: "{\\cyrchar\\cyrhdsc}" +}, + "Ҵ": { + text: "{\\cyrchar\\CYRTETSE}" +}, + "ҵ": { + text: "{\\cyrchar\\cyrtetse}" +}, + "Ҷ": { + text: "{\\cyrchar\\CYRCHRDSC}" +}, + "ҷ": { + text: "{\\cyrchar\\cyrchrdsc}" +}, + "Ҹ": { + text: "{\\cyrchar\\CYRCHVCRS}" +}, + "ҹ": { + text: "{\\cyrchar\\cyrchvcrs}" +}, + "Һ": { + text: "{\\cyrchar\\CYRSHHA}" +}, + "һ": { + text: "{\\cyrchar\\cyrshha}" +}, + "Ҽ": { + text: "{\\cyrchar\\CYRABHCH}" +}, + "ҽ": { + text: "{\\cyrchar\\cyrabhch}" +}, + "Ҿ": { + text: "{\\cyrchar\\CYRABHCHDSC}" +}, + "ҿ": { + text: "{\\cyrchar\\cyrabhchdsc}" +}, + "Ӏ": { + text: "{\\cyrchar\\CYRpalochka}" +}, + "Ӄ": { + text: "{\\cyrchar\\CYRKHK}" +}, + "ӄ": { + text: "{\\cyrchar\\cyrkhk}" +}, + "Ӈ": { + text: "{\\cyrchar\\CYRNHK}" +}, + "ӈ": { + text: "{\\cyrchar\\cyrnhk}" +}, + "Ӌ": { + text: "{\\cyrchar\\CYRCHLDSC}" +}, + "ӌ": { + text: "{\\cyrchar\\cyrchldsc}" +}, + "Ӕ": { + text: "{\\cyrchar\\CYRAE}" +}, + "ӕ": { + text: "{\\cyrchar\\cyrae}" +}, + "Ә": { + text: "{\\cyrchar\\CYRSCHWA}" +}, + "ә": { + text: "{\\cyrchar\\cyrschwa}" +}, + "Ӡ": { + text: "{\\cyrchar\\CYRABHDZE}" +}, + "ӡ": { + text: "{\\cyrchar\\cyrabhdze}" +}, + "Ө": { + text: "{\\cyrchar\\CYROTLD}" +}, + "ө": { + text: "{\\cyrchar\\cyrotld}" +}, + "ࡱ": { + math: "\\\\backslash" +}, + "ᵃ": { + math: "^{a}", + text: "\\textsuperscript{a}" +}, + "ᵇ": { + math: "^{b}", + text: "\\textsuperscript{b}" +}, + "ᵈ": { + math: "^{d}", + text: "\\textsuperscript{d}" +}, + "ᵉ": { + math: "^{e}", + text: "\\textsuperscript{e}" +}, + "ᵍ": { + math: "^{g}", + text: "\\textsuperscript{g}" +}, + "ᵏ": { + math: "^{k}", + text: "\\textsuperscript{k}" +}, + "ᵐ": { + math: "^{m}", + text: "\\textsuperscript{m}" +}, + "ᵒ": { + math: "^{o}", + text: "\\textsuperscript{o}" +}, + "ᵖ": { + math: "^{p}", + text: "\\textsuperscript{p}" +}, + "ᵗ": { + math: "^{t}", + text: "\\textsuperscript{t}" +}, + "ᵘ": { + math: "^{u}", + text: "\\textsuperscript{u}" +}, + "ᵛ": { + math: "^{v}", + text: "\\textsuperscript{v}" +}, + "ᶜ": { + math: "^{c}", + text: "\\textsuperscript{c}" +}, + "ᶠ": { + math: "^{f}", + text: "\\textsuperscript{f}" +}, + "ᶻ": { + math: "^{z}", + text: "\\textsuperscript{z}" +}, + "Ḃ": { + text: "{\\.B}" +}, + "ḃ": { + text: "{\\.b}" +}, + "Ḅ": { + text: "{\\d B}" +}, + "ḅ": { + text: "{\\d b}" +}, + "Ḇ": { + text: "{\\b B}" +}, + "ḇ": { + text: "{\\b b}" +}, + "Ḋ": { + text: "{\\.D}" +}, + "ḋ": { + text: "{\\.d}" +}, + "Ḍ": { + text: "{\\d D}" +}, + "ḍ": { + text: "{\\d d}" +}, + "Ḏ": { + text: "{\\b D}" +}, + "ḏ": { + text: "{\\b d}" +}, + "Ḑ": { + text: "{\\c D}" +}, + "ḑ": { + text: "{\\c d}" +}, + "Ḝ": { + text: "{\\c{\\u{E}}}" +}, + "ḝ": { + text: "{\\c{\\u{e}}}" +}, + "Ḟ": { + text: "{\\.F}" +}, + "ḟ": { + text: "{\\.f}" +}, + "Ḡ": { + text: "{\\=G}" +}, + "ḡ": { + text: "{\\=g}" +}, + "Ḣ": { + text: "{\\.H}" +}, + "ḣ": { + text: "{\\.h}" +}, + "Ḥ": { + text: "{\\d H}" +}, + "ḥ": { + text: "{\\d h}" +}, + "Ḧ": { + text: "{\\\"H}" +}, + "ḧ": { + text: "{\\\"h}" +}, + "Ḩ": { + text: "{\\c H}" +}, + "ḩ": { + text: "{\\c h}" +}, + "Ḱ": { + text: "{\\'K}" +}, + "ḱ": { + text: "{\\'k}" +}, + "Ḳ": { + text: "{\\d K}" +}, + "ḳ": { + text: "{\\d k}" +}, + "Ḵ": { + text: "{\\b K}" +}, + "ḵ": { + text: "{\\b k}" +}, + "Ḷ": { + text: "{\\d L}" +}, + "ḷ": { + text: "{\\d l}" +}, + "Ḻ": { + text: "{\\b L}" +}, + "ḻ": { + text: "{\\b l}" +}, + "Ḿ": { + text: "{\\'M}" +}, + "ḿ": { + text: "{\\'m}" +}, + "Ṁ": { + text: "{\\.M}" +}, + "ṁ": { + text: "{\\.m}" +}, + "Ṃ": { + text: "{\\d M}" +}, + "ṃ": { + text: "{\\d m}" +}, + "Ṅ": { + text: "{\\.N}" +}, + "ṅ": { + text: "{\\.n}" +}, + "Ṇ": { + text: "{\\d N}" +}, + "ṇ": { + text: "{\\d n}" +}, + "Ṉ": { + text: "{\\b N}" +}, + "ṉ": { + text: "{\\b n}" +}, + "Ṕ": { + text: "{\\'P}" +}, + "ṕ": { + text: "{\\'p}" +}, + "Ṗ": { + text: "{\\.P}" +}, + "ṗ": { + text: "{\\.p}" +}, + "Ṙ": { + text: "{\\.R}" +}, + "ṙ": { + text: "{\\.r}" +}, + "Ṛ": { + text: "{\\d R}" +}, + "ṛ": { + text: "{\\d r}" +}, + "Ṟ": { + text: "{\\b R}" +}, + "ṟ": { + text: "{\\b r}" +}, + "Ṡ": { + text: "{\\.S}" +}, + "ṡ": { + text: "{\\.s}" +}, + "Ṣ": { + text: "{\\d S}" +}, + "ṣ": { + text: "{\\d s}" +}, + "Ṫ": { + text: "{\\.T}" +}, + "ṫ": { + text: "{\\.t}" +}, + "Ṭ": { + text: "{\\d T}" +}, + "ṭ": { + text: "{\\d t}" +}, + "Ṯ": { + text: "{\\b T}" +}, + "ṯ": { + text: "{\\b t}" +}, + "Ṽ": { + text: "{\\~V}" +}, + "ṽ": { + text: "{\\~v}" +}, + "Ṿ": { + text: "{\\d V}" +}, + "ṿ": { + text: "{\\d v}" +}, + "Ẁ": { + text: "{\\`W}" +}, + "ẁ": { + text: "{\\`w}" +}, + "Ẃ": { + text: "{\\'W}" +}, + "ẃ": { + text: "{\\'w}" +}, + "Ẅ": { + text: "{\\\"W}" +}, + "ẅ": { + text: "{\\\"w}" +}, + "Ẇ": { + text: "{\\.W}" +}, + "ẇ": { + text: "{\\.w}" +}, + "Ẉ": { + text: "{\\d W}" +}, + "ẉ": { + text: "{\\d w}" +}, + "Ẋ": { + text: "{\\.X}" +}, + "ẋ": { + text: "{\\.x}" +}, + "Ẍ": { + text: "{\\\"X}" +}, + "ẍ": { + text: "{\\\"x}" +}, + "Ẏ": { + text: "{\\.Y}" +}, + "ẏ": { + text: "{\\.y}" +}, + "Ẑ": { + text: "{\\^Z}" +}, + "ẑ": { + text: "{\\^z}" +}, + "Ẓ": { + text: "{\\d Z}" +}, + "ẓ": { + text: "{\\d z}" +}, + "Ẕ": { + text: "{\\b Z}" +}, + "ẕ": { + text: "{\\b z}" +}, + "ẖ": { + text: "{\\b h}" +}, + "ẗ": { + text: "{\\\"t}" +}, + "ẘ": { + text: "{\\r{w}}" +}, + "ẙ": { + text: "{\\r{y}}" +}, + "Ạ": { + text: "{\\d A}" +}, + "ạ": { + text: "{\\d a}" +}, + "Ẹ": { + text: "{\\d E}" +}, + "ẹ": { + text: "{\\d e}" +}, + "Ẽ": { + text: "{\\~E}" +}, + "ẽ": { + text: "{\\~e}" +}, + "Ị": { + text: "{\\d I}" +}, + "ị": { + text: "{\\d i}" +}, + "Ọ": { + text: "{\\d O}" +}, + "ọ": { + text: "{\\d o}" +}, + "Ụ": { + text: "{\\d U}" +}, + "ụ": { + text: "{\\d u}" +}, + "Ỳ": { + text: "{\\`Y}" +}, + "ỳ": { + text: "{\\`y}" +}, + "Ỵ": { + text: "{\\d Y}" +}, + "ỵ": { + text: "{\\d y}" +}, + "Ỹ": { + text: "{\\~Y}" +}, + "ỹ": { + text: "{\\~y}" +}, + " ": { + text: " ", + space: true +}, + " ": { + math: "\\quad", + space: true +}, + " ": { + text: "\\hspace{0.6em}", + space: true +}, + " ": { + math: "\\quad", + space: true, + text: "\\hspace{1em}" +}, + " ": { + text: "\\;", + space: true +}, + " ": { + text: "\\hspace{0.25em}", + space: true +}, + " ": { + text: "\\hspace{0.166em}", + space: true +}, + " ": { + text: "\\hphantom{0}", + space: true +}, + " ": { + text: "\\hphantom{,}", + space: true +}, + " ": { + text: "\\,", + space: true +}, + " ": { + math: "\\mkern1mu", + space: true +}, + "​": { + text: "{\\mbox}", + space: true +}, + "‌": { + text: "{\\aftergroup\\ignorespaces}" +}, + "‐": { + text: "-" +}, + "‑": { + text: "-" +}, + "‒": { + text: "-" +}, + "–": { + text: "{\\textendash}" +}, + "—": { + text: "{\\textemdash}" +}, + "―": { + math: "\\horizbar", + text: "\\rule{1em}{1pt}" +}, + "‖": { + math: "\\Vert" +}, + "‗": { + math: "\\twolowline" +}, + "‘": { + text: "`" +}, + "’": { + text: "'" +}, + "‚": { + text: "," +}, + "‛": { + math: "\\Elzreapos" +}, + "“": { + text: "``" +}, + "”": { + text: "''" +}, + "„": { + text: ",," +}, + "‟": { + text: "{\\quotedblbase}" +}, + "†": { + math: "\\dagger", + text: "{\\textdagger}", + textpackages: [ + "textcomp" + ] +}, + "‡": { + math: "\\ddagger", + text: "{\\textdaggerdbl}", + textpackages: [ + "textcomp" + ] +}, + "•": { + math: "\\bullet", + text: "{\\textbullet}", + textpackages: [ + "textcomp" + ] +}, + "‣": { + text: ">" +}, + "․": { + text: "." +}, + "‥": { + math: "\\enleadertwodots", + text: ".." +}, + "…": { + math: "\\ldots", + text: "{\\ldots}" +}, + "‧": { + text: "-" +}, + " ": { + text: " ", + space: true +}, + "‰": { + text: "{\\textperthousand}", + textpackages: [ + "textcomp" + ] +}, + "‱": { + text: "{\\textpertenthousand}", + textpackages: [ + "textcomp" + ] +}, + "′": { + math: "{'}" +}, + "″": { + math: "{''}" +}, + "‴": { + math: "{'''}" +}, + "‵": { + math: "\\backprime" +}, + "‶": { + math: "\\backdprime" +}, + "‷": { + math: "\\backtrprime" +}, + "‸": { + math: "\\caretinsert" +}, + "‹": { + text: "{\\guilsinglleft}" +}, + "›": { + text: "{\\guilsinglright}" +}, + "‼": { + math: "\\Exclam" +}, + "‾": { + text: "-" +}, + "⁃": { + math: "\\hyphenbullet" +}, + "⁄": { + math: "\\fracslash" +}, + "⁇": { + math: "\\Question" +}, + "⁈": { + text: "?!" +}, + "⁉": { + text: "!?" +}, + "⁊": { + text: "7" +}, + "⁐": { + math: "\\closure" +}, + "⁗": { + math: "''''" +}, + " ": { + math: "\\:", + space: true, + text: "\\:" +}, + "⁠": { + text: "{\\nolinebreak}" +}, + "⁰": { + math: "^{0}" +}, + "ⁱ": { + math: "^{i}", + text: "\\textsuperscript{i}" +}, + "⁴": { + math: "^{4}" +}, + "⁵": { + math: "^{5}" +}, + "⁶": { + math: "^{6}" +}, + "⁷": { + math: "^{7}" +}, + "⁸": { + math: "^{8}" +}, + "⁹": { + math: "^{9}" +}, + "⁺": { + math: "^{+}" +}, + "⁻": { + math: "^{-}" +}, + "⁼": { + math: "^{=}" +}, + "⁽": { + math: "^{(}" +}, + "⁾": { + math: "^{)}" +}, + "ⁿ": { + math: "^{n}", + text: "\\textsuperscript{n}" +}, + "₀": { + math: "_{0}" +}, + "₁": { + math: "_{1}" +}, + "₂": { + math: "_{2}" +}, + "₃": { + math: "_{3}" +}, + "₄": { + math: "_{4}" +}, + "₅": { + math: "_{5}" +}, + "₆": { + math: "_{6}" +}, + "₇": { + math: "_{7}" +}, + "₈": { + math: "_{8}" +}, + "₉": { + math: "_{9}" +}, + "₊": { + math: "_{+}" +}, + "₋": { + math: "_{-}" +}, + "₌": { + math: "_{=}" +}, + "₍": { + math: "_{(}" +}, + "₎": { + math: "_{)}" +}, + "ₐ": { + math: "_{a}", + text: "\\textsubscript{a}" +}, + "ₑ": { + math: "_{e}", + text: "\\textsubscript{e}" +}, + "ₒ": { + math: "_{o}", + text: "\\textsubscript{o}" +}, + "ₓ": { + math: "_{x}", + text: "\\textsubscript{x}" +}, + "ₔ": { + text: "\\textsubscript{\\textschwa}", + textpackages: [ + "tipa" + ] +}, + "ₕ": { + math: "_{h}", + text: "\\textsubscript{h}" +}, + "ₖ": { + math: "_{k}", + text: "\\textsubscript{k}" +}, + "ₗ": { + math: "_{l}", + text: "\\textsubscript{l}" +}, + "ₘ": { + math: "_{m}", + text: "\\textsubscript{m}" +}, + "ₙ": { + math: "_{n}", + text: "\\textsubscript{n}" +}, + "ₚ": { + math: "_{p}", + text: "\\textsubscript{p}" +}, + "ₛ": { + math: "_{s}", + text: "\\textsubscript{s}" +}, + "ₜ": { + math: "_{t}", + text: "\\textsubscript{t}" +}, + "₧": { + text: "\\ensuremath{\\Elzpes}" +}, + "€": { + math: "\\euro", + text: "{\\texteuro}" +}, + "⃐": { + math: "\\lvec" +}, + "⃑": { + math: "\\rightharpoonup", + mathpackages: [ + "amsmath", + "amssymb" + ] +}, + "⃒": { + math: "\\vertoverlay" +}, + "⃖": { + math: "\\LVec" +}, + "⃗": { + math: "\\vec" +}, + "⃛": { + math: "\\dddot" +}, + "⃜": { + math: "\\ddddot" +}, + "⃝": { + math: "\\enclosecircle" +}, + "⃞": { + math: "\\enclosesquare" +}, + "⃟": { + math: "\\enclosediamond" +}, + "⃡": { + math: "\\overleftrightarrow" +}, + "⃤": { + math: "\\enclosetriangle" +}, + "⃧": { + math: "\\annuity" +}, + "⃨": { + math: "\\threeunderdot" +}, + "⃩": { + math: "\\widebridgeabove" +}, + "⃬": { + math: "\\underrightharpoondown" +}, + "⃭": { + math: "\\underleftharpoondown" +}, + "⃮": { + math: "\\underleftarrow" +}, + "⃯": { + math: "\\underrightarrow" +}, + "⃰": { + math: "\\asteraccent" +}, + "℀": { + text: "a/c" +}, + "℁": { + text: "a/s" +}, + "ℂ": { + math: "\\mathbb{C}" +}, + "℃": { + text: "{\\textcelsius}" +}, + "℅": { + text: "c/o" +}, + "℆": { + text: "c/u" +}, + "ℇ": { + math: "\\Euler" +}, + "℉": { + text: "F" +}, + "ℊ": { + math: "\\mathscr{g}" +}, + "ℋ": { + math: "\\mathscr{H}" +}, + "ℌ": { + math: "\\mathfrak{H}" +}, + "ℍ": { + math: "\\mathbb{H}" +}, + "ℎ": { + math: "\\Planckconst" +}, + "ℏ": { + math: "\\hslash" +}, + "ℐ": { + math: "\\mathscr{I}" +}, + "ℑ": { + math: "\\mathfrak{I}" +}, + "ℒ": { + math: "\\mathscr{L}" +}, + "ℓ": { + math: "\\mathscr{l}" +}, + "ℕ": { + math: "\\mathbb{N}" +}, + "№": { + text: "{\\cyrchar\\textnumero}" +}, + "℗": { + text: "{\\textcircledP}" +}, + "℘": { + math: "\\wp" +}, + "ℙ": { + math: "\\mathbb{P}" +}, + "ℚ": { + math: "\\mathbb{Q}" +}, + "ℛ": { + math: "\\mathscr{R}" +}, + "ℜ": { + math: "\\mathfrak{R}" +}, + "ℝ": { + math: "\\mathbb{R}" +}, + "℞": { + math: "\\Elzxrat" +}, + "℠": { + text: "{\\textservicemark}" +}, + "℡": { + text: "TEL" +}, + "™": { + text: "{\\texttrademark}", + textpackages: [ + "textcomp" + ] +}, + "ℤ": { + math: "\\mathbb{Z}" +}, + "Ω": { + math: "\\Omega" +}, + "℧": { + math: "\\mho" +}, + "ℨ": { + math: "\\mathfrak{Z}" +}, + "℩": { + text: "{\\textriota}" +}, + "K": { + text: "K" +}, + "Å": { + math: "\\Angstroem", + text: "{\\AA}" +}, + "ℬ": { + math: "\\mathscr{B}" +}, + "ℭ": { + math: "\\mathfrak{C}" +}, + "℮": { + text: "{\\textestimated}" +}, + "ℯ": { + math: "\\mathscr{e}" +}, + "ℰ": { + math: "\\mathscr{E}" +}, + "ℱ": { + math: "\\mathscr{F}" +}, + "Ⅎ": { + math: "\\Finv" +}, + "ℳ": { + math: "\\mathscr{M}" +}, + "ℴ": { + math: "\\mathscr{o}" +}, + "ℵ": { + math: "\\aleph" +}, + "ℶ": { + math: "\\beth" +}, + "ℷ": { + math: "\\gimel" +}, + "ℸ": { + math: "\\daleth" +}, + "ℼ": { + math: "\\mathbb{\\pi}" +}, + "ℽ": { + math: "\\mathbb{\\gamma}" +}, + "ℾ": { + math: "\\mathbb{\\Gamma}" +}, + "ℿ": { + math: "\\mathbb{\\Pi}" +}, + "⅀": { + math: "\\mathbb{\\Sigma}" +}, + "⅁": { + math: "\\Game" +}, + "⅂": { + math: "\\sansLturned" +}, + "⅃": { + math: "\\sansLmirrored" +}, + "⅄": { + math: "\\Yup" +}, + "ⅅ": { + math: "\\CapitalDifferentialD" +}, + "ⅆ": { + math: "\\DifferentialD" +}, + "ⅇ": { + math: "\\ExponetialE" +}, + "ⅈ": { + math: "\\ComplexI" +}, + "ⅉ": { + math: "\\ComplexJ" +}, + "⅊": { + math: "\\PropertyLine" +}, + "⅋": { + math: "\\invamp" +}, + "⅐": { + math: "\\frac{1}{7}" +}, + "⅑": { + math: "\\frac{1}{9}" +}, + "⅒": { + math: "\\frac{1}{10}" +}, + "⅓": { + math: "\\frac{1}{3}" +}, + "⅔": { + math: "\\frac{2}{3}" +}, + "⅕": { + math: "\\frac{1}{5}" +}, + "⅖": { + math: "\\frac{2}{5}" +}, + "⅗": { + math: "\\frac{3}{5}" +}, + "⅘": { + math: "\\frac{4}{5}" +}, + "⅙": { + math: "\\frac{1}{6}" +}, + "⅚": { + math: "\\frac{5}{6}" +}, + "⅛": { + math: "\\frac{1}{8}" +}, + "⅜": { + math: "\\frac{3}{8}" +}, + "⅝": { + math: "\\frac{5}{8}" +}, + "⅞": { + math: "\\frac{7}{8}" +}, + "⅟": { + math: "\\frac{1}" +}, + "Ⅰ": { + text: "I" +}, + "Ⅱ": { + text: "II" +}, + "Ⅲ": { + text: "III" +}, + "Ⅳ": { + text: "IV" +}, + "Ⅴ": { + text: "V" +}, + "Ⅵ": { + text: "VI" +}, + "Ⅶ": { + text: "VII" +}, + "Ⅷ": { + text: "VIII" +}, + "Ⅸ": { + text: "IX" +}, + "Ⅹ": { + text: "X" +}, + "Ⅺ": { + text: "XI" +}, + "Ⅻ": { + text: "XII" +}, + "Ⅼ": { + text: "L" +}, + "Ⅽ": { + text: "C" +}, + "Ⅾ": { + text: "D" +}, + "Ⅿ": { + text: "M" +}, + "ⅰ": { + text: "i" +}, + "ⅱ": { + text: "ii" +}, + "ⅲ": { + text: "iii" +}, + "ⅳ": { + text: "iv" +}, + "ⅴ": { + text: "v" +}, + "ⅵ": { + text: "vi" +}, + "ⅶ": { + text: "vii" +}, + "ⅷ": { + text: "viii" +}, + "ⅸ": { + text: "ix" +}, + "ⅹ": { + text: "x" +}, + "ⅺ": { + text: "xi" +}, + "ⅻ": { + text: "xii" +}, + "ⅼ": { + text: "l" +}, + "ⅽ": { + text: "c" +}, + "ⅾ": { + text: "d" +}, + "ⅿ": { + text: "m" +}, + "↉": { + math: "\\frac{0}{3}" +}, + "←": { + math: "\\leftarrow" +}, + "↑": { + math: "\\uparrow" +}, + "→": { + math: "\\rightarrow", + text: "{\\textrightarrow}", + textpackages: [ + "textcomp" + ] +}, + "↓": { + math: "\\downarrow" +}, + "↔": { + math: "\\leftrightarrow" +}, + "↕": { + math: "\\updownarrow" +}, + "↖": { + math: "\\nwarrow" +}, + "↗": { + math: "\\nearrow" +}, + "↘": { + math: "\\searrow" +}, + "↙": { + math: "\\swarrow" +}, + "↚": { + math: "\\nleftarrow" +}, + "↛": { + math: "\\nrightarrow" +}, + "↜": { + math: "\\arrowwaveleft" +}, + "↝": { + math: "\\arrowwaveright" +}, + "↞": { + math: "\\twoheadleftarrow" +}, + "↟": { + math: "\\twoheaduparrow" +}, + "↠": { + math: "\\twoheadrightarrow" +}, + "↡": { + math: "\\twoheaddownarrow" +}, + "↢": { + math: "\\leftarrowtail" +}, + "↣": { + math: "\\rightarrowtail" +}, + "↤": { + math: "\\mapsfrom" +}, + "↥": { + math: "\\MapsUp" +}, + "↦": { + math: "\\mapsto" +}, + "↧": { + math: "\\MapsDown" +}, + "↨": { + math: "\\updownarrowbar" +}, + "↩": { + math: "\\hookleftarrow" +}, + "↪": { + math: "\\hookrightarrow" +}, + "↫": { + math: "\\looparrowleft" +}, + "↬": { + math: "\\looparrowright" +}, + "↭": { + math: "\\leftrightsquigarrow" +}, + "↮": { + math: "\\nleftrightarrow" +}, + "↯": { + math: "\\lightning" +}, + "↰": { + math: "\\Lsh" +}, + "↱": { + math: "\\Rsh" +}, + "↲": { + math: "\\dlsh" +}, + "↳": { + text: "\\reflectbox{\\carriagereturn}", + textpackages: [ + "graphics", + "unicode-math" + ] +}, + "↴": { + math: "\\linefeed" +}, + "↵": { + math: "\\carriagereturn" +}, + "↶": { + math: "\\curvearrowleft" +}, + "↷": { + math: "\\curvearrowright" +}, + "↸": { + math: "\\barovernorthwestarrow" +}, + "↹": { + math: "\\barleftarrowrightarrowba" +}, + "↺": { + math: "\\circlearrowleft" +}, + "↻": { + math: "\\circlearrowright" +}, + "↼": { + math: "\\leftharpoonup" +}, + "↽": { + math: "\\leftharpoondown" +}, + "↾": { + math: "\\upharpoonright" +}, + "↿": { + math: "\\upharpoonleft" +}, + "⇀": { + math: "\\rightharpoonup", + mathpackages: [ + "amsmath", + "amssymb" + ] +}, + "⇁": { + math: "\\rightharpoondown" +}, + "⇂": { + math: "\\downharpoonright" +}, + "⇃": { + math: "\\downharpoonleft" +}, + "⇄": { + math: "\\rightleftarrows" +}, + "⇅": { + math: "\\dblarrowupdown" +}, + "⇆": { + math: "\\leftrightarrows" +}, + "⇇": { + math: "\\leftleftarrows" +}, + "⇈": { + math: "\\upuparrows" +}, + "⇉": { + math: "\\rightrightarrows" +}, + "⇊": { + math: "\\downdownarrows" +}, + "⇋": { + math: "\\leftrightharpoons" +}, + "⇌": { + math: "\\rightleftharpoons" +}, + "⇍": { + math: "\\nLeftarrow" +}, + "⇎": { + math: "\\nLeftrightarrow" +}, + "⇏": { + math: "\\nRightarrow" +}, + "⇐": { + math: "\\Leftarrow" +}, + "⇑": { + math: "\\Uparrow" +}, + "⇒": { + math: "\\Rightarrow" +}, + "⇓": { + math: "\\Downarrow" +}, + "⇔": { + math: "\\Leftrightarrow" +}, + "⇕": { + math: "\\Updownarrow" +}, + "⇖": { + math: "\\Nwarrow" +}, + "⇗": { + math: "\\Nearrow" +}, + "⇘": { + math: "\\Searrow" +}, + "⇙": { + math: "\\Swarrow" +}, + "⇚": { + math: "\\Lleftarrow" +}, + "⇛": { + math: "\\Rrightarrow" +}, + "⇜": { + math: "\\leftsquigarrow" +}, + "⇝": { + math: "\\rightsquigarrow" +}, + "⇞": { + math: "\\nHuparrow" +}, + "⇟": { + math: "\\nHdownarrow" +}, + "⇠": { + math: "\\dashleftarrow" +}, + "⇡": { + math: "\\updasharrow" +}, + "⇢": { + math: "\\dashrightarrow" +}, + "⇣": { + math: "\\downdasharrow" +}, + "⇤": { + math: "\\LeftArrowBar" +}, + "⇥": { + math: "\\RightArrowBar" +}, + "⇦": { + math: "\\leftwhitearrow" +}, + "⇧": { + math: "\\upwhitearrow" +}, + "⇨": { + math: "\\rightwhitearrow" +}, + "⇩": { + math: "\\downwhitearrow" +}, + "⇪": { + math: "\\whitearrowupfrombar" +}, + "⇴": { + math: "\\circleonrightarrow" +}, + "⇵": { + math: "\\DownArrowUpArrow" +}, + "⇶": { + math: "\\rightthreearrows" +}, + "⇷": { + math: "\\nvleftarrow" +}, + "⇸": { + math: "\\pfun" +}, + "⇹": { + math: "\\nvleftrightarrow" +}, + "⇺": { + math: "\\nVleftarrow" +}, + "⇻": { + math: "\\ffun" +}, + "⇼": { + math: "\\nVleftrightarrow" +}, + "⇽": { + math: "\\leftarrowtriangle" +}, + "⇾": { + math: "\\rightarrowtriangle" +}, + "⇿": { + math: "\\leftrightarrowtriangle" +}, + "∀": { + math: "\\forall" +}, + "∁": { + math: "\\complement" +}, + "∂": { + math: "\\partial" +}, + "∃": { + math: "\\exists" +}, + "∄": { + math: "\\nexists" +}, + "∅": { + math: "\\varnothing" +}, + "∆": { + math: "\\increment" +}, + "∇": { + math: "\\nabla" +}, + "∈": { + math: "\\in" +}, + "∉": { + math: "\\not\\in" +}, + "∊": { + math: "\\smallin" +}, + "∋": { + math: "\\ni" +}, + "∌": { + math: "\\not\\ni" +}, + "∍": { + math: "\\smallni" +}, + "∎": { + math: "\\QED" +}, + "∏": { + math: "\\prod" +}, + "∐": { + math: "\\coprod" +}, + "∑": { + math: "\\sum" +}, + "−": { + math: "-", + text: "-" +}, + "∓": { + math: "\\mp" +}, + "∔": { + math: "\\dotplus" +}, + "∕": { + text: "/" +}, + "∖": { + math: "\\setminus" +}, + "∗": { + math: "{_\\ast}" +}, + "∘": { + math: "\\circ" +}, + "∙": { + math: "\\bullet" +}, + "√": { + math: "\\surd" +}, + "∛": { + math: "\\sqrt[3]" +}, + "∜": { + math: "\\sqrt[4]" +}, + "∝": { + math: "\\propto" +}, + "∞": { + math: "\\infty" +}, + "∟": { + math: "\\rightangle" +}, + "∠": { + math: "\\angle" +}, + "∡": { + math: "\\measuredangle" +}, + "∢": { + math: "\\sphericalangle" +}, + "∣": { + math: "\\mid" +}, + "∤": { + math: "\\nmid" +}, + "∥": { + math: "\\parallel" +}, + "∦": { + math: "\\nparallel" +}, + "∧": { + math: "\\wedge" +}, + "∨": { + math: "\\vee" +}, + "∩": { + math: "\\cap" +}, + "∪": { + math: "\\cup" +}, + "∫": { + math: "\\int" +}, + "∬": { + math: "{\\int\\!\\int}" +}, + "∭": { + math: "{\\int\\!\\int\\!\\int}" +}, + "∮": { + math: "\\oint" +}, + "∯": { + math: "\\surfintegral" +}, + "∰": { + math: "\\volintegral" +}, + "∱": { + math: "\\clwintegral" +}, + "∲": { + math: "\\lcirclerightint", + mathpackages: [ + "MnSymbol" + ] +}, + "∳": { + math: "\\rcirclerightint", + mathpackages: [ + "MnSymbol" + ] +}, + "∴": { + math: "\\therefore" +}, + "∵": { + math: "\\because" +}, + "∶": { + math: ":" +}, + "∷": { + math: "\\Colon" +}, + "∸": { + math: "\\dotdiv", + mathpackages: [ + "mathabx" + ] +}, + "∹": { + math: "\\eqcolon" +}, + "∺": { + math: "\\mathbin{{:}\\!\\!{-}\\!\\!{:}}" +}, + "∻": { + math: "\\homothetic" +}, + "∼": { + math: "\\sim" +}, + "∽": { + math: "\\backsim" +}, + "∾": { + math: "\\lazysinv" +}, + "∿": { + math: "\\AC" +}, + "≀": { + math: "\\wr" +}, + "≁": { + math: "\\not\\sim" +}, + "≂": { + math: "\\texteqsim", + mathpackages: [ + "xecjk" + ] +}, + "≂̸": { + math: "\\NotEqualTilde" +}, + "≃": { + math: "\\simeq" +}, + "≄": { + math: "\\not\\simeq" +}, + "≅": { + math: "\\cong" +}, + "≆": { + math: "\\approxnotequal" +}, + "≇": { + math: "\\not\\cong" +}, + "≈": { + math: "\\approx" +}, + "≉": { + math: "\\not\\approx" +}, + "≊": { + math: "\\approxeq" +}, + "≋": { + math: "\\tildetrpl" +}, + "≋̸": { + math: "\\not\\apid" +}, + "≌": { + math: "\\allequal" +}, + "≍": { + math: "\\asymp" +}, + "≎": { + math: "\\Bumpeq" +}, + "≎̸": { + math: "\\NotHumpDownHump" +}, + "≏": { + math: "\\bumpeq" +}, + "≏̸": { + math: "\\NotHumpEqual" +}, + "≐": { + math: "\\doteq" +}, + "≐̸": { + math: "\\not\\doteq" +}, + "≑": { + math: "\\doteqdot" +}, + "≒": { + math: "\\fallingdotseq" +}, + "≓": { + math: "\\risingdotseq" +}, + "≔": { + math: "\\coloneq", + text: ":=" +}, + "≕": { + math: "=:" +}, + "≖": { + math: "\\eqcirc" +}, + "≗": { + math: "\\circeq" +}, + "≘": { + math: "\\arceq" +}, + "≙": { + math: "\\estimates" +}, + "≛": { + math: "\\starequal" +}, + "≜": { + math: "\\triangleq" +}, + "≝": { + math: "\\eqdef" +}, + "≞": { + math: "\\measeq" +}, + "≠": { + math: "\\neq" +}, + "≡": { + math: "\\equiv" +}, + "≢": { + math: "\\not\\equiv" +}, + "≣": { + math: "\\Equiv" +}, + "≤": { + math: "\\leq" +}, + "≥": { + math: "\\geq" +}, + "≦": { + math: "\\leqq" +}, + "≧": { + math: "\\geqq" +}, + "≨": { + math: "\\lneqq" +}, + "≨︀": { + math: "\\lvertneqq" +}, + "≩": { + math: "\\gneqq" +}, + "≩︀": { + math: "\\gvertneqq" +}, + "≪": { + math: "\\ll" +}, + "≪̸": { + math: "\\NotLessLess" +}, + "≫": { + math: "\\gg" +}, + "≫̸": { + math: "\\NotGreaterGreater" +}, + "≬": { + math: "\\between" +}, + "≭": { + math: "{\\not\\kern-0.3em\\times}" +}, + "≮": { + math: "\\not<" +}, + "≯": { + math: "\\not>" +}, + "≰": { + math: "\\not\\leq" +}, + "≱": { + math: "\\not\\geq" +}, + "≲": { + math: "\\lessequivlnt" +}, + "≳": { + math: "\\greaterequivlnt" +}, + "≶": { + math: "\\lessgtr" +}, + "≷": { + math: "\\gtrless" +}, + "≸": { + math: "\\notlessgreater" +}, + "≹": { + math: "\\notgreaterless" +}, + "≺": { + math: "\\prec" +}, + "≻": { + math: "\\succ" +}, + "≼": { + math: "\\preccurlyeq" +}, + "≽": { + math: "\\succcurlyeq" +}, + "≾": { + math: "\\precapprox" +}, + "≾̸": { + math: "\\NotPrecedesTilde" +}, + "≿": { + math: "\\succapprox" +}, + "≿̸": { + math: "\\NotSucceedsTilde" +}, + "⊀": { + math: "\\not\\prec" +}, + "⊁": { + math: "\\not\\succ" +}, + "⊂": { + math: "\\subset" +}, + "⊃": { + math: "\\supset" +}, + "⊄": { + math: "\\not\\subset" +}, + "⊅": { + math: "\\not\\supset" +}, + "⊆": { + math: "\\subseteq" +}, + "⊇": { + math: "\\supseteq" +}, + "⊈": { + math: "\\not\\subseteq" +}, + "⊉": { + math: "\\not\\supseteq" +}, + "⊊": { + math: "\\subsetneq" +}, + "⊊︀": { + math: "\\varsubsetneqq" +}, + "⊋": { + math: "\\supsetneq" +}, + "⊋︀": { + math: "\\varsupsetneq" +}, + "⊌": { + math: "\\cupleftarrow" +}, + "⊍": { + math: "\\cupdot" +}, + "⊎": { + math: "\\uplus" +}, + "⊏": { + math: "\\sqsubset" +}, + "⊏̸": { + math: "\\NotSquareSubset" +}, + "⊐": { + math: "\\sqsupset" +}, + "⊐̸": { + math: "\\NotSquareSuperset" +}, + "⊑": { + math: "\\sqsubseteq" +}, + "⊒": { + math: "\\sqsupseteq" +}, + "⊓": { + math: "\\sqcap" +}, + "⊔": { + math: "\\sqcup" +}, + "⊕": { + math: "\\oplus" +}, + "⊖": { + math: "\\ominus" +}, + "⊗": { + math: "\\otimes" +}, + "⊘": { + math: "\\oslash" +}, + "⊙": { + math: "\\odot" +}, + "⊚": { + math: "\\circledcirc" +}, + "⊛": { + math: "\\circledast" +}, + "⊜": { + math: "\\circledequal" +}, + "⊝": { + math: "\\circleddash" +}, + "⊞": { + math: "\\boxplus" +}, + "⊟": { + math: "\\boxminus" +}, + "⊠": { + math: "\\boxtimes" +}, + "⊡": { + math: "\\boxdot" +}, + "⊢": { + math: "\\vdash" +}, + "⊣": { + math: "\\dashv" +}, + "⊤": { + math: "\\top" +}, + "⊥": { + math: "\\perp" +}, + "⊦": { + math: "\\assert" +}, + "⊧": { + math: "\\truestate" +}, + "⊨": { + math: "\\forcesextra" +}, + "⊩": { + math: "\\Vdash" +}, + "⊪": { + math: "\\Vvdash" +}, + "⊫": { + math: "\\VDash" +}, + "⊬": { + math: "\\nvdash" +}, + "⊭": { + math: "\\nvDash" +}, + "⊮": { + math: "\\nVdash" +}, + "⊯": { + math: "\\nVDash" +}, + "⊰": { + math: "\\prurel" +}, + "⊱": { + math: "\\scurel" +}, + "⊲": { + math: "\\vartriangleleft" +}, + "⊳": { + math: "\\vartriangleright" +}, + "⊴": { + math: "\\trianglelefteq" +}, + "⊵": { + math: "\\trianglerighteq" +}, + "⊶": { + math: "\\original" +}, + "⊷": { + math: "\\image" +}, + "⊸": { + math: "\\multimap" +}, + "⊹": { + math: "\\hermitconjmatrix" +}, + "⊺": { + math: "\\intercal" +}, + "⊻": { + math: "\\veebar" +}, + "⊼": { + math: "\\barwedge" +}, + "⊽": { + math: "\\barvee" +}, + "⊾": { + math: "\\rightanglearc" +}, + "⊿": { + math: "\\varlrtriangle" +}, + "⋂": { + math: "\\bigcap" +}, + "⋃": { + math: "\\bigcup" +}, + "⋄": { + math: "\\diamond" +}, + "⋅": { + math: "\\cdot" +}, + "⋆": { + math: "\\star" +}, + "⋇": { + math: "\\divideontimes" +}, + "⋈": { + math: "\\bowtie" +}, + "⋉": { + math: "\\ltimes" +}, + "⋊": { + math: "\\rtimes" +}, + "⋋": { + math: "\\leftthreetimes" +}, + "⋌": { + math: "\\rightthreetimes" +}, + "⋍": { + math: "\\backsimeq" +}, + "⋎": { + math: "\\curlyvee" +}, + "⋏": { + math: "\\curlywedge" +}, + "⋐": { + math: "\\Subset" +}, + "⋑": { + math: "\\Supset" +}, + "⋒": { + math: "\\Cap" +}, + "⋓": { + math: "\\Cup" +}, + "⋔": { + math: "\\pitchfork" +}, + "⋕": { + math: "\\hash" +}, + "⋖": { + math: "\\lessdot" +}, + "⋗": { + math: "\\gtrdot" +}, + "⋘": { + math: "\\verymuchless" +}, + "⋙": { + math: "\\verymuchgreater" +}, + "⋚": { + math: "\\lesseqgtr" +}, + "⋛": { + math: "\\gtreqless" +}, + "⋜": { + math: "\\eqless" +}, + "⋝": { + math: "\\eqgtr" +}, + "⋞": { + math: "\\curlyeqprec" +}, + "⋟": { + math: "\\curlyeqsucc" +}, + "⋠": { + math: "\\npreceq" +}, + "⋡": { + math: "\\nsucceq" +}, + "⋢": { + math: "\\not\\sqsubseteq" +}, + "⋣": { + math: "\\not\\sqsupseteq" +}, + "⋤": { + math: "\\sqsubsetneq" +}, + "⋥": { + math: "\\Elzsqspne" +}, + "⋦": { + math: "\\lnsim" +}, + "⋧": { + math: "\\gnsim" +}, + "⋨": { + math: "\\precedesnotsimilar" +}, + "⋩": { + math: "\\succnsim" +}, + "⋪": { + math: "\\ntriangleleft" +}, + "⋫": { + math: "\\ntriangleright" +}, + "⋬": { + math: "\\ntrianglelefteq" +}, + "⋭": { + math: "\\ntrianglerighteq" +}, + "⋮": { + math: "\\vdots" +}, + "⋯": { + math: "\\cdots" +}, + "⋰": { + math: "\\upslopeellipsis" +}, + "⋱": { + math: "\\downslopeellipsis" +}, + "⋲": { + math: "\\disin" +}, + "⋳": { + math: "\\varisins" +}, + "⋴": { + math: "\\isins" +}, + "⋵": { + math: "\\isindot" +}, + "⋶": { + math: "\\barin" +}, + "⋷": { + math: "\\isinobar" +}, + "⋸": { + math: "\\isinvb" +}, + "⋹": { + math: "\\isinE" +}, + "⋺": { + math: "\\nisd" +}, + "⋻": { + math: "\\varnis" +}, + "⋼": { + math: "\\nis" +}, + "⋽": { + math: "\\varniobar" +}, + "⋾": { + math: "\\niobar" +}, + "⋿": { + math: "\\bagmember" +}, + "⌀": { + math: "\\diameter" +}, + "⌂": { + math: "\\house" +}, + "⌅": { + math: "\\varbarwedge", + text: "{\\barwedge}" +}, + "⌆": { + math: "\\perspcorrespond" +}, + "⌈": { + math: "\\lceil" +}, + "⌉": { + math: "\\rceil" +}, + "⌊": { + math: "\\lfloor" +}, + "⌋": { + math: "\\rfloor" +}, + "⌐": { + math: "\\invneg" +}, + "⌑": { + math: "\\wasylozenge" +}, + "⌒": { + math: "\\profline" +}, + "⌓": { + math: "\\profsurf" +}, + "⌕": { + math: "\\recorder" +}, + "⌖": { + math: "{\\mathchar\"2208}" +}, + "⌗": { + math: "\\viewdata" +}, + "⌙": { + math: "\\turnednot" +}, + "⌜": { + math: "\\ulcorner" +}, + "⌝": { + math: "\\urcorner" +}, + "⌞": { + math: "\\llcorner" +}, + "⌟": { + math: "\\lrcorner" +}, + "⌠": { + math: "\\inttop" +}, + "⌡": { + math: "\\intbottom" +}, + "⌢": { + math: "\\frown" +}, + "⌣": { + math: "\\smile" +}, + "〈": { + math: "\\langle" +}, + "〉": { + math: "\\rangle" +}, + "⌬": { + math: "\\varhexagonlrbonds" +}, + "⌲": { + math: "\\conictaper" +}, + "⌶": { + math: "\\topbot" +}, + "⌹": { + math: "\\APLinv" +}, + "⌿": { + math: "\\notslash" +}, + "⍀": { + math: "\\notbackslash" +}, + "⍇": { + math: "\\APLleftarrowbox" +}, + "⍈": { + math: "\\APLrightarrowbox" +}, + "⍉": { + math: "\\invdiameter" +}, + "⍐": { + math: "\\APLuparrowbox" +}, + "⍓": { + math: "\\APLboxupcaret" +}, + "⍗": { + math: "\\APLdownarrowbox" +}, + "⍝": { + math: "\\APLcomment" +}, + "⍞": { + math: "\\APLinput" +}, + "⍟": { + math: "\\APLlog" +}, + "⍰": { + math: "\\APLboxquestion" +}, + "⍼": { + math: "\\rangledownzigzagarrow" +}, + "⎔": { + math: "\\hexagon" +}, + "⎛": { + math: "\\lparenuend" +}, + "⎜": { + math: "\\lparenextender" +}, + "⎝": { + math: "\\lparenlend" +}, + "⎞": { + math: "\\rparenuend" +}, + "⎟": { + math: "\\rparenextender" +}, + "⎠": { + math: "\\rparenlend" +}, + "⎡": { + math: "\\lbrackuend" +}, + "⎢": { + math: "\\lbrackextender" +}, + "⎣": { + math: "\\Elzdlcorn" +}, + "⎤": { + math: "\\rbrackuend" +}, + "⎥": { + math: "\\rbrackextender" +}, + "⎦": { + math: "\\rbracklend" +}, + "⎧": { + math: "\\lbraceuend" +}, + "⎨": { + math: "\\lbracemid" +}, + "⎩": { + math: "\\lbracelend" +}, + "⎪": { + math: "\\vbraceextender" +}, + "⎫": { + math: "\\rbraceuend" +}, + "⎬": { + math: "\\rbracemid" +}, + "⎭": { + math: "\\rbracelend" +}, + "⎮": { + math: "\\intextender" +}, + "⎯": { + math: "\\harrowextender" +}, + "⎰": { + math: "\\lmoustache" +}, + "⎱": { + math: "\\rmoustache" +}, + "⎲": { + math: "\\sumtop" +}, + "⎳": { + math: "\\sumbottom" +}, + "⎴": { + math: "\\overbracket" +}, + "⎵": { + math: "\\underbracket" +}, + "⎶": { + math: "\\bbrktbrk" +}, + "⎷": { + math: "\\sqrtbottom" +}, + "⎸": { + math: "\\lvboxline" +}, + "⎹": { + math: "\\rvboxline" +}, + "⏎": { + math: "\\varcarriagereturn" +}, + "⏜": { + math: "\\overparen" +}, + "⏝": { + math: "\\underparen" +}, + "⏞": { + math: "\\overbrace" +}, + "⏟": { + math: "\\underbrace" +}, + "⏠": { + math: "\\obrbrak" +}, + "⏡": { + math: "\\ubrbrak" +}, + "⏢": { + math: "\\trapezium" +}, + "⏣": { + math: "\\benzenr" +}, + "⏤": { + math: "\\strns" +}, + "⏥": { + math: "\\fltns" +}, + "⏦": { + math: "\\accurrent" +}, + "⏧": { + math: "\\elinters" +}, + "␀": { + text: "NUL" +}, + "␁": { + text: "SOH" +}, + "␂": { + text: "STX" +}, + "␃": { + text: "ETX" +}, + "␄": { + text: "EOT" +}, + "␅": { + text: "ENQ" +}, + "␆": { + text: "ACK" +}, + "␇": { + text: "BEL" +}, + "␈": { + text: "BS" +}, + "␉": { + text: "HT" +}, + "␊": { + text: "LF" +}, + "␋": { + text: "VT" +}, + "␌": { + text: "FF" +}, + "␍": { + text: "CR" +}, + "␎": { + text: "SO" +}, + "␏": { + text: "SI" +}, + "␐": { + text: "DLE" +}, + "␑": { + text: "DC1" +}, + "␒": { + text: "DC2" +}, + "␓": { + text: "DC3" +}, + "␔": { + text: "DC4" +}, + "␕": { + text: "NAK" +}, + "␖": { + text: "SYN" +}, + "␗": { + text: "ETB" +}, + "␘": { + text: "CAN" +}, + "␙": { + text: "EM" +}, + "␚": { + text: "SUB" +}, + "␛": { + text: "ESC" +}, + "␜": { + text: "FS" +}, + "␝": { + text: "GS" +}, + "␞": { + text: "RS" +}, + "␟": { + text: "US" +}, + "␠": { + text: "SP" +}, + "␡": { + text: "DEL" +}, + "␣": { + text: "{\\textvisiblespace}" +}, + "␤": { + text: "NL" +}, + "␥": { + text: "///" +}, + "␦": { + text: "?" +}, + "①": { + text: "\\ding{172}" +}, + "②": { + text: "\\ding{173}" +}, + "③": { + text: "\\ding{174}" +}, + "④": { + text: "\\ding{175}" +}, + "⑤": { + text: "\\ding{176}" +}, + "⑥": { + text: "\\ding{177}" +}, + "⑦": { + text: "\\ding{178}" +}, + "⑧": { + text: "\\ding{179}" +}, + "⑨": { + text: "\\ding{180}" +}, + "⑩": { + text: "\\ding{181}" +}, + "⑪": { + text: "(11)" +}, + "⑫": { + text: "(12)" +}, + "⑬": { + text: "(13)" +}, + "⑭": { + text: "(14)" +}, + "⑮": { + text: "(15)" +}, + "⑯": { + text: "(16)" +}, + "⑰": { + text: "(17)" +}, + "⑱": { + text: "(18)" +}, + "⑲": { + text: "(19)" +}, + "⑳": { + text: "(20)" +}, + "⑴": { + text: "(1)" +}, + "⑵": { + text: "(2)" +}, + "⑶": { + text: "(3)" +}, + "⑷": { + text: "(4)" +}, + "⑸": { + text: "(5)" +}, + "⑹": { + text: "(6)" +}, + "⑺": { + text: "(7)" +}, + "⑻": { + text: "(8)" +}, + "⑼": { + text: "(9)" +}, + "⑽": { + text: "(10)" +}, + "⑾": { + text: "(11)" +}, + "⑿": { + text: "(12)" +}, + "⒀": { + text: "(13)" +}, + "⒁": { + text: "(14)" +}, + "⒂": { + text: "(15)" +}, + "⒃": { + text: "(16)" +}, + "⒄": { + text: "(17)" +}, + "⒅": { + text: "(18)" +}, + "⒆": { + text: "(19)" +}, + "⒇": { + text: "(20)" +}, + "⒈": { + text: "1." +}, + "⒉": { + text: "2." +}, + "⒊": { + text: "3." +}, + "⒋": { + text: "4." +}, + "⒌": { + text: "5." +}, + "⒍": { + text: "6." +}, + "⒎": { + text: "7." +}, + "⒏": { + text: "8." +}, + "⒐": { + text: "9." +}, + "⒑": { + text: "10." +}, + "⒒": { + text: "11." +}, + "⒓": { + text: "12." +}, + "⒔": { + text: "13." +}, + "⒕": { + text: "14." +}, + "⒖": { + text: "15." +}, + "⒗": { + text: "16." +}, + "⒘": { + text: "17." +}, + "⒙": { + text: "18." +}, + "⒚": { + text: "19." +}, + "⒛": { + text: "20." +}, + "⒜": { + text: "(a)" +}, + "⒝": { + text: "(b)" +}, + "⒞": { + text: "(c)" +}, + "⒟": { + text: "(d)" +}, + "⒠": { + text: "(e)" +}, + "⒡": { + text: "(f)" +}, + "⒢": { + text: "(g)" +}, + "⒣": { + text: "(h)" +}, + "⒤": { + text: "(i)" +}, + "⒥": { + text: "(j)" +}, + "⒦": { + text: "(k)" +}, + "⒧": { + text: "(l)" +}, + "⒨": { + text: "(m)" +}, + "⒩": { + text: "(n)" +}, + "⒪": { + text: "(o)" +}, + "⒫": { + text: "(p)" +}, + "⒬": { + text: "(q)" +}, + "⒭": { + text: "(r)" +}, + "⒮": { + text: "(s)" +}, + "⒯": { + text: "(t)" +}, + "⒰": { + text: "(u)" +}, + "⒱": { + text: "(v)" +}, + "⒲": { + text: "(w)" +}, + "⒳": { + text: "(x)" +}, + "⒴": { + text: "(y)" +}, + "⒵": { + text: "(z)" +}, + "Ⓐ": { + text: "(A)" +}, + "Ⓑ": { + text: "(B)" +}, + "Ⓒ": { + text: "(C)" +}, + "Ⓓ": { + text: "(D)" +}, + "Ⓔ": { + text: "(E)" +}, + "Ⓕ": { + text: "(F)" +}, + "Ⓖ": { + text: "(G)" +}, + "Ⓗ": { + text: "(H)" +}, + "Ⓘ": { + text: "(I)" +}, + "Ⓙ": { + text: "(J)" +}, + "Ⓚ": { + text: "(K)" +}, + "Ⓛ": { + text: "(L)" +}, + "Ⓜ": { + text: "(M)" +}, + "Ⓝ": { + text: "(N)" +}, + "Ⓞ": { + text: "(O)" +}, + "Ⓟ": { + text: "(P)" +}, + "Ⓠ": { + text: "(Q)" +}, + "Ⓡ": { + text: "(R)" +}, + "Ⓢ": { + math: "\\circledS" +}, + "Ⓣ": { + text: "(T)" +}, + "Ⓤ": { + text: "(U)" +}, + "Ⓥ": { + text: "(V)" +}, + "Ⓦ": { + text: "(W)" +}, + "Ⓧ": { + text: "(X)" +}, + "Ⓨ": { + text: "(Y)" +}, + "Ⓩ": { + text: "(Z)" +}, + "ⓐ": { + text: "(a)" +}, + "ⓑ": { + text: "(b)" +}, + "ⓒ": { + text: "(c)" +}, + "ⓓ": { + text: "(d)" +}, + "ⓔ": { + text: "(e)" +}, + "ⓕ": { + text: "(f)" +}, + "ⓖ": { + text: "(g)" +}, + "ⓗ": { + text: "(h)" +}, + "ⓘ": { + text: "(i)" +}, + "ⓙ": { + text: "(j)" +}, + "ⓚ": { + text: "(k)" +}, + "ⓛ": { + text: "(l)" +}, + "ⓜ": { + text: "(m)" +}, + "ⓝ": { + text: "(n)" +}, + "ⓞ": { + text: "(o)" +}, + "ⓟ": { + text: "(p)" +}, + "ⓠ": { + text: "(q)" +}, + "ⓡ": { + text: "(r)" +}, + "ⓢ": { + text: "(s)" +}, + "ⓣ": { + text: "(t)" +}, + "ⓤ": { + text: "(u)" +}, + "ⓥ": { + text: "(v)" +}, + "ⓦ": { + text: "(w)" +}, + "ⓧ": { + text: "(x)" +}, + "ⓨ": { + text: "(y)" +}, + "ⓩ": { + text: "(z)" +}, + "⓪": { + text: "(0)" +}, + "─": { + text: "-" +}, + "━": { + text: "=" +}, + "│": { + text: "|" +}, + "┃": { + text: "|" +}, + "┄": { + text: "-" +}, + "┅": { + text: "=" +}, + "┆": { + math: "\\Elzdshfnc" +}, + "┇": { + text: "|" +}, + "┈": { + text: "-" +}, + "┉": { + text: "=" +}, + "┊": { + text: "|" +}, + "┋": { + text: "|" +}, + "┌": { + text: "+" +}, + "┍": { + text: "+" +}, + "┎": { + text: "+" +}, + "┏": { + text: "+" +}, + "┐": { + text: "+" +}, + "┑": { + text: "+" +}, + "┒": { + text: "+" +}, + "┓": { + text: "+" +}, + "└": { + text: "+" +}, + "┕": { + text: "+" +}, + "┖": { + text: "+" +}, + "┗": { + text: "+" +}, + "┘": { + text: "+" +}, + "┙": { + math: "\\Elzsqfnw" +}, + "┚": { + text: "+" +}, + "┛": { + text: "+" +}, + "├": { + text: "+" +}, + "┝": { + text: "+" +}, + "┞": { + text: "+" +}, + "┟": { + text: "+" +}, + "┠": { + text: "+" +}, + "┡": { + text: "+" +}, + "┢": { + text: "+" +}, + "┣": { + text: "+" +}, + "┤": { + text: "+" +}, + "┥": { + text: "+" +}, + "┦": { + text: "+" +}, + "┧": { + text: "+" +}, + "┨": { + text: "+" +}, + "┩": { + text: "+" +}, + "┪": { + text: "+" +}, + "┫": { + text: "+" +}, + "┬": { + text: "+" +}, + "┭": { + text: "+" +}, + "┮": { + text: "+" +}, + "┯": { + text: "+" +}, + "┰": { + text: "+" +}, + "┱": { + text: "+" +}, + "┲": { + text: "+" +}, + "┳": { + text: "+" +}, + "┴": { + text: "+" +}, + "┵": { + text: "+" +}, + "┶": { + text: "+" +}, + "┷": { + text: "+" +}, + "┸": { + text: "+" +}, + "┹": { + text: "+" +}, + "┺": { + text: "+" +}, + "┻": { + text: "+" +}, + "┼": { + text: "+" +}, + "┽": { + text: "+" +}, + "┾": { + text: "+" +}, + "┿": { + text: "+" +}, + "╀": { + text: "+" +}, + "╁": { + text: "+" +}, + "╂": { + text: "+" +}, + "╃": { + text: "+" +}, + "╄": { + text: "+" +}, + "╅": { + text: "+" +}, + "╆": { + text: "+" +}, + "╇": { + text: "+" +}, + "╈": { + text: "+" +}, + "╉": { + text: "+" +}, + "╊": { + text: "+" +}, + "╋": { + text: "+" +}, + "╌": { + text: "-" +}, + "╍": { + text: "=" +}, + "╎": { + text: "|" +}, + "╏": { + text: "|" +}, + "═": { + text: "=" +}, + "║": { + text: "|" +}, + "╒": { + text: "+" +}, + "╓": { + text: "+" +}, + "╔": { + text: "+" +}, + "╕": { + text: "+" +}, + "╖": { + text: "+" +}, + "╗": { + text: "+" +}, + "╘": { + text: "+" +}, + "╙": { + text: "+" +}, + "╚": { + text: "+" +}, + "╛": { + text: "+" +}, + "╜": { + text: "+" +}, + "╝": { + text: "+" +}, + "╞": { + text: "+" +}, + "╟": { + text: "+" +}, + "╠": { + text: "+" +}, + "╡": { + text: "+" +}, + "╢": { + text: "+" +}, + "╣": { + text: "+" +}, + "╤": { + text: "+" +}, + "╥": { + text: "+" +}, + "╦": { + text: "+" +}, + "╧": { + text: "+" +}, + "╨": { + text: "+" +}, + "╩": { + text: "+" +}, + "╪": { + text: "+" +}, + "╫": { + text: "+" +}, + "╬": { + text: "+" +}, + "╭": { + text: "+" +}, + "╮": { + text: "+" +}, + "╯": { + text: "+" +}, + "╰": { + text: "+" +}, + "╱": { + math: "\\diagup" +}, + "╲": { + text: "\\" +}, + "╳": { + text: "X" +}, + "╼": { + text: "-" +}, + "╽": { + text: "|" +}, + "╾": { + text: "-" +}, + "╿": { + text: "|" +}, + "▀": { + math: "\\blockuphalf" +}, + "▄": { + math: "\\blocklowhalf" +}, + "█": { + math: "\\blockfull" +}, + "▌": { + math: "\\blocklefthalf" +}, + "▐": { + math: "\\blockrighthalf" +}, + "░": { + math: "\\blockqtrshaded" +}, + "▒": { + math: "\\blockhalfshaded" +}, + "▓": { + math: "\\blockthreeqtrshaded" +}, + "■": { + math: "\\mdlgblksquare", + text: "\\ding{110}" +}, + "□": { + math: "\\square" +}, + "▢": { + math: "\\squoval" +}, + "▣": { + math: "\\blackinwhitesquare" +}, + "▤": { + math: "\\squarehfill" +}, + "▥": { + math: "\\squarevfill" +}, + "▦": { + math: "\\squarehvfill" +}, + "▧": { + math: "\\squarenwsefill" +}, + "▨": { + math: "\\squareneswfill" +}, + "▩": { + math: "\\squarecrossfill" +}, + "▪": { + math: "\\blacksquare" +}, + "▫": { + math: "\\smwhtsquare" +}, + "▬": { + math: "\\hrectangleblack" +}, + "▭": { + math: "\\fbox{~~}" +}, + "▮": { + math: "\\vrectangleblack" +}, + "▯": { + math: "\\Elzvrecto" +}, + "▰": { + math: "\\parallelogramblack" +}, + "▲": { + math: "\\bigblacktriangleup", + text: "\\ding{115}" +}, + "△": { + math: "\\bigtriangleup" +}, + "▴": { + math: "\\blacktriangle" +}, + "▵": { + math: "\\vartriangle" +}, + "▶": { + math: "\\RHD" +}, + "▷": { + math: "\\rhd" +}, + "▸": { + math: "\\blacktriangleright" +}, + "▹": { + math: "\\triangleright" +}, + "►": { + math: "\\blackpointerright" +}, + "▻": { + math: "\\whitepointerright" +}, + "▼": { + math: "\\bigblacktriangledown", + text: "\\ding{116}" +}, + "▽": { + math: "\\bigtriangledown" +}, + "▾": { + math: "\\blacktriangledown" +}, + "▿": { + math: "\\triangledown" +}, + "◀": { + math: "\\LHD" +}, + "◁": { + math: "\\lhd" +}, + "◂": { + math: "\\blacktriangleleft" +}, + "◃": { + math: "\\triangleleft" +}, + "◄": { + math: "\\blackpointerleft" +}, + "◅": { + math: "\\whitepointerleft" +}, + "◆": { + math: "\\Diamondblack", + text: "\\ding{117}" +}, + "◇": { + math: "\\Diamond" +}, + "◈": { + math: "\\blackinwhitediamond" +}, + "◉": { + math: "\\fisheye" +}, + "◊": { + math: "\\lozenge" +}, + "○": { + math: "\\bigcirc" +}, + "◌": { + math: "\\dottedcircle" +}, + "◍": { + math: "\\circlevertfill" +}, + "◎": { + math: "\\bullseye" +}, + "●": { + math: "\\CIRCLE", + text: "\\ding{108}" +}, + "◐": { + math: "\\Elzcirfl" +}, + "◑": { + math: "\\Elzcirfr" +}, + "◒": { + math: "\\Elzcirfb" +}, + "◓": { + math: "\\circletophalfblack" +}, + "◔": { + math: "\\circleurquadblack" +}, + "◕": { + math: "\\blackcircleulquadwhite" +}, + "◖": { + math: "\\LEFTCIRCLE" +}, + "◗": { + math: "\\RIGHTCIRCLE", + text: "\\ding{119}" +}, + "◘": { + math: "\\Elzrvbull" +}, + "◙": { + math: "\\inversewhitecircle" +}, + "◚": { + math: "\\invwhiteupperhalfcircle" +}, + "◛": { + math: "\\invwhitelowerhalfcircle" +}, + "◜": { + math: "\\ularc" +}, + "◝": { + math: "\\urarc" +}, + "◞": { + math: "\\lrarc" +}, + "◟": { + math: "\\llarc" +}, + "◠": { + math: "\\topsemicircle" +}, + "◡": { + math: "\\botsemicircle" +}, + "◢": { + math: "\\lrblacktriangle" +}, + "◣": { + math: "\\llblacktriangle" +}, + "◤": { + math: "\\ulblacktriangle" +}, + "◥": { + math: "\\urblacktriangle" +}, + "◦": { + math: "\\smwhtcircle" +}, + "◧": { + math: "\\Elzsqfl" +}, + "◨": { + math: "\\Elzsqfr" +}, + "◩": { + math: "\\squareulblack" +}, + "◪": { + math: "\\Elzsqfse" +}, + "◫": { + math: "\\boxbar" +}, + "◬": { + math: "\\trianglecdot" +}, + "◭": { + math: "\\triangleleftblack" +}, + "◮": { + math: "\\trianglerightblack" +}, + "◯": { + math: "\\bigcirc" +}, + "◰": { + math: "\\squareulquad" +}, + "◱": { + math: "\\squarellquad" +}, + "◲": { + math: "\\squarelrquad" +}, + "◳": { + math: "\\squareurquad" +}, + "◴": { + math: "\\circleulquad" +}, + "◵": { + math: "\\circlellquad" +}, + "◶": { + math: "\\circlelrquad" +}, + "◷": { + math: "\\circleurquad" +}, + "◸": { + math: "\\ultriangle" +}, + "◹": { + math: "\\urtriangle" +}, + "◺": { + math: "\\lltriangle" +}, + "◻": { + math: "\\square" +}, + "◼": { + math: "\\blacksquare" +}, + "◽": { + math: "\\mdsmwhtsquare" +}, + "◾": { + math: "\\mdsmblksquare" +}, + "◿": { + math: "\\lrtriangle" +}, + "★": { + math: "\\bigstar", + text: "\\ding{72}" +}, + "☆": { + math: "\\bigwhitestar", + text: "\\ding{73}" +}, + "☉": { + math: "\\Sun" +}, + "☎": { + text: "\\ding{37}" +}, + "☐": { + math: "\\Square" +}, + "☑": { + math: "\\CheckedBox" +}, + "☒": { + math: "\\XBox" +}, + "☓": { + text: "X" +}, + "☕": { + math: "\\steaming" +}, + "☛": { + text: "\\ding{42}" +}, + "☞": { + math: "\\pointright", + text: "\\ding{43}" +}, + "☠": { + math: "\\skull" +}, + "☡": { + math: "\\danger" +}, + "☢": { + math: "\\radiation" +}, + "☣": { + math: "\\biohazard" +}, + "☯": { + math: "\\yinyang" +}, + "☹": { + math: "\\frownie" +}, + "☺": { + math: "\\smiley" +}, + "☻": { + math: "\\blacksmiley" +}, + "☼": { + math: "\\sun" +}, + "☽": { + text: "{\\rightmoon}", + textpackages: [ + "wasysym" + ] +}, + "☾": { + text: "{\\leftmoon}", + textpackages: [ + "wasysym" + ] +}, + "☿": { + math: "\\mercury", + text: "{\\mercury}" +}, + "♀": { + math: "\\female", + text: "{\\venus}" +}, + "♁": { + math: "\\earth" +}, + "♂": { + math: "\\male", + text: "{\\male}" +}, + "♃": { + math: "\\jupiter", + text: "{\\jupiter}" +}, + "♄": { + math: "\\saturn", + text: "{\\saturn}" +}, + "♅": { + math: "\\uranus", + text: "{\\uranus}" +}, + "♆": { + math: "\\neptune", + text: "{\\neptune}" +}, + "♇": { + math: "\\pluto", + text: "{\\pluto}" +}, + "♈": { + math: "\\aries", + text: "{\\aries}" +}, + "♉": { + math: "\\taurus", + text: "{\\taurus}" +}, + "♊": { + math: "\\gemini", + text: "{\\gemini}" +}, + "♋": { + math: "\\cancer", + text: "{\\cancer}" +}, + "♌": { + math: "\\leo", + text: "{\\leo}" +}, + "♍": { + math: "\\virgo", + text: "{\\virgo}" +}, + "♎": { + math: "\\libra", + text: "{\\libra}" +}, + "♏": { + math: "\\scorpio", + text: "{\\scorpio}" +}, + "♐": { + math: "\\sagittarius", + text: "{\\sagittarius}" +}, + "♑": { + math: "\\capricornus", + text: "{\\capricornus}" +}, + "♒": { + math: "\\aquarius", + text: "{\\aquarius}" +}, + "♓": { + math: "\\pisces", + text: "{\\pisces}" +}, + "♠": { + math: "\\spadesuit", + text: "\\ding{171}" +}, + "♡": { + math: "\\heartsuit" +}, + "♢": { + math: "\\diamond" +}, + "♣": { + math: "\\clubsuit", + text: "\\ding{168}" +}, + "♤": { + math: "\\varspadesuit" +}, + "♥": { + math: "\\varheartsuit", + text: "\\ding{170}" +}, + "♦": { + math: "\\vardiamondsuit", + text: "\\ding{169}" +}, + "♧": { + math: "\\varclubsuit" +}, + "♩": { + math: "\\quarternote", + text: "{\\quarternote}" +}, + "♪": { + math: "\\eighthnote", + text: "{\\eighthnote}" +}, + "♫": { + math: "\\twonotes" +}, + "♬": { + math: "\\sixteenthnote" +}, + "♭": { + math: "\\flat" +}, + "♮": { + math: "\\natural" +}, + "♯": { + math: "\\sharp" +}, + "♻": { + math: "\\recycle" +}, + "♾": { + math: "\\acidfree" +}, + "⚀": { + math: "\\dicei" +}, + "⚁": { + math: "\\diceii" +}, + "⚂": { + math: "\\diceiii" +}, + "⚃": { + math: "\\diceiv" +}, + "⚄": { + math: "\\dicev" +}, + "⚅": { + math: "\\dicevi" +}, + "⚆": { + math: "\\circledrightdot" +}, + "⚇": { + math: "\\circledtwodots" +}, + "⚈": { + math: "\\blackcircledrightdot" +}, + "⚉": { + math: "\\blackcircledtwodots" +}, + "⚓": { + math: "\\anchor" +}, + "⚔": { + math: "\\swords" +}, + "⚠": { + math: "\\warning" +}, + "⚥": { + math: "\\Hermaphrodite" +}, + "⚪": { + math: "\\medcirc" +}, + "⚫": { + math: "\\medbullet" +}, + "⚬": { + math: "\\mdsmwhtcircle" +}, + "⚲": { + math: "\\neuter" +}, + "✁": { + text: "\\ding{33}" +}, + "✂": { + text: "\\ding{34}" +}, + "✃": { + text: "\\ding{35}" +}, + "✄": { + text: "\\ding{36}" +}, + "✆": { + text: "\\ding{38}" +}, + "✇": { + text: "\\ding{39}" +}, + "✈": { + text: "\\ding{40}" +}, + "✉": { + text: "\\ding{41}" +}, + "✌": { + text: "\\ding{44}" +}, + "✍": { + text: "\\ding{45}" +}, + "✎": { + math: "\\pencil", + text: "\\ding{46}" +}, + "✏": { + text: "\\ding{47}" +}, + "✐": { + text: "\\ding{48}" +}, + "✑": { + text: "\\ding{49}" +}, + "✒": { + text: "\\ding{50}" +}, + "✓": { + math: "\\checkmark", + text: "\\ding{51}" +}, + "✔": { + text: "\\ding{52}" +}, + "✕": { + text: "\\ding{53}" +}, + "✖": { + text: "\\ding{54}" +}, + "✗": { + math: "\\ballotx", + text: "\\ding{55}" +}, + "✘": { + text: "\\ding{56}" +}, + "✙": { + text: "\\ding{57}" +}, + "✚": { + text: "\\ding{58}" +}, + "✛": { + text: "\\ding{59}" +}, + "✜": { + text: "\\ding{60}" +}, + "✝": { + text: "\\ding{61}" +}, + "✞": { + text: "\\ding{62}" +}, + "✟": { + text: "\\ding{63}" +}, + "✠": { + math: "\\maltese", + text: "\\ding{64}" +}, + "✡": { + text: "\\ding{65}" +}, + "✢": { + text: "\\ding{66}" +}, + "✣": { + text: "\\ding{67}" +}, + "✤": { + text: "\\ding{68}" +}, + "✥": { + text: "\\ding{69}" +}, + "✦": { + text: "\\ding{70}" +}, + "✧": { + text: "\\ding{71}" +}, + "✩": { + text: "\\ding{73}" +}, + "✪": { + math: "\\circledstar", + text: "\\ding{74}" +}, + "✫": { + text: "\\ding{75}" +}, + "✬": { + text: "\\ding{76}" +}, + "✭": { + text: "\\ding{77}" +}, + "✮": { + text: "\\ding{78}" +}, + "✯": { + text: "\\ding{79}" +}, + "✰": { + text: "\\ding{80}" +}, + "✱": { + text: "\\ding{81}" +}, + "✲": { + text: "\\ding{82}" +}, + "✳": { + text: "\\ding{83}" +}, + "✴": { + text: "\\ding{84}" +}, + "✵": { + text: "\\ding{85}" +}, + "✶": { + math: "\\varstar", + text: "\\ding{86}" +}, + "✷": { + text: "\\ding{87}" +}, + "✸": { + text: "\\ding{88}" +}, + "✹": { + text: "\\ding{89}" +}, + "✺": { + text: "\\ding{90}" +}, + "✻": { + text: "\\ding{91}" +}, + "✼": { + text: "\\ding{92}" +}, + "✽": { + math: "\\dingasterisk", + text: "\\ding{93}" +}, + "✾": { + text: "\\ding{94}" +}, + "✿": { + text: "\\ding{95}" +}, + "❀": { + text: "\\ding{96}" +}, + "❁": { + text: "\\ding{97}" +}, + "❂": { + text: "\\ding{98}" +}, + "❃": { + text: "\\ding{99}" +}, + "❄": { + text: "\\ding{100}" +}, + "❅": { + text: "\\ding{101}" +}, + "❆": { + text: "\\ding{102}" +}, + "❇": { + text: "\\ding{103}" +}, + "❈": { + text: "\\ding{104}" +}, + "❉": { + text: "\\ding{105}" +}, + "❊": { + text: "\\ding{106}" +}, + "❋": { + text: "\\ding{107}" +}, + "❍": { + text: "\\ding{109}" +}, + "❏": { + text: "\\ding{111}" +}, + "❐": { + text: "\\ding{112}" +}, + "❑": { + text: "\\ding{113}" +}, + "❒": { + text: "\\ding{114}" +}, + "❖": { + text: "\\ding{118}" +}, + "❘": { + text: "\\ding{120}" +}, + "❙": { + text: "\\ding{121}" +}, + "❚": { + text: "\\ding{122}" +}, + "❛": { + text: "\\ding{123}" +}, + "❜": { + text: "\\ding{124}" +}, + "❝": { + text: "\\ding{125}" +}, + "❞": { + text: "\\ding{126}" +}, + "❡": { + text: "\\ding{161}" +}, + "❢": { + text: "\\ding{162}" +}, + "❣": { + text: "\\ding{163}" +}, + "❤": { + text: "\\ding{164}" +}, + "❥": { + text: "\\ding{165}" +}, + "❦": { + text: "\\ding{166}" +}, + "❧": { + text: "\\ding{167}" +}, + "❲": { + math: "\\lbrbrak" +}, + "❳": { + math: "\\rbrbrak" +}, + "❶": { + text: "\\ding{182}" +}, + "❷": { + text: "\\ding{183}" +}, + "❸": { + text: "\\ding{184}" +}, + "❹": { + text: "\\ding{185}" +}, + "❺": { + text: "\\ding{186}" +}, + "❻": { + text: "\\ding{187}" +}, + "❼": { + text: "\\ding{188}" +}, + "❽": { + text: "\\ding{189}" +}, + "❾": { + text: "\\ding{190}" +}, + "❿": { + text: "\\ding{191}" +}, + "➀": { + text: "\\ding{192}" +}, + "➁": { + text: "\\ding{193}" +}, + "➂": { + text: "\\ding{194}" +}, + "➃": { + text: "\\ding{195}" +}, + "➄": { + text: "\\ding{196}" +}, + "➅": { + text: "\\ding{197}" +}, + "➆": { + text: "\\ding{198}" +}, + "➇": { + text: "\\ding{199}" +}, + "➈": { + text: "\\ding{200}" +}, + "➉": { + text: "\\ding{201}" +}, + "➊": { + text: "\\ding{202}" +}, + "➋": { + text: "\\ding{203}" +}, + "➌": { + text: "\\ding{204}" +}, + "➍": { + text: "\\ding{205}" +}, + "➎": { + text: "\\ding{206}" +}, + "➏": { + text: "\\ding{207}" +}, + "➐": { + text: "\\ding{208}" +}, + "➑": { + text: "\\ding{209}" +}, + "➒": { + text: "\\ding{210}" +}, + "➓": { + text: "\\ding{211}" +}, + "➔": { + text: "\\ding{212}" +}, + "➘": { + text: "\\ding{216}" +}, + "➙": { + text: "\\ding{217}" +}, + "➚": { + text: "\\ding{218}" +}, + "➛": { + math: "\\draftingarrow", + text: "\\ding{219}" +}, + "➜": { + text: "\\ding{220}" +}, + "➝": { + text: "\\ding{221}" +}, + "➞": { + text: "\\ding{222}" +}, + "➟": { + text: "\\ding{223}" +}, + "➠": { + text: "\\ding{224}" +}, + "➡": { + text: "\\ding{225}" +}, + "➢": { + math: "\\arrowbullet", + text: "\\ding{226}" +}, + "➣": { + text: "\\ding{227}" +}, + "➤": { + text: "\\ding{228}" +}, + "➥": { + text: "\\ding{229}" +}, + "➦": { + text: "\\ding{230}" +}, + "➧": { + text: "\\ding{231}" +}, + "➨": { + text: "\\ding{232}" +}, + "➩": { + text: "\\ding{233}" +}, + "➪": { + text: "\\ding{234}" +}, + "➫": { + text: "\\ding{235}" +}, + "➬": { + text: "\\ding{236}" +}, + "➭": { + text: "\\ding{237}" +}, + "➮": { + text: "\\ding{238}" +}, + "➯": { + text: "\\ding{239}" +}, + "➱": { + text: "\\ding{241}" +}, + "➲": { + text: "\\ding{242}" +}, + "➳": { + text: "\\ding{243}" +}, + "➴": { + text: "\\ding{244}" +}, + "➵": { + text: "\\ding{245}" +}, + "➶": { + text: "\\ding{246}" +}, + "➷": { + text: "\\ding{247}" +}, + "➸": { + text: "\\ding{248}" +}, + "➹": { + text: "\\ding{249}" +}, + "➺": { + text: "\\ding{250}" +}, + "➻": { + text: "\\ding{251}" +}, + "➼": { + text: "\\ding{252}" +}, + "➽": { + text: "\\ding{253}" +}, + "➾": { + text: "\\ding{254}" +}, + "⟀": { + math: "\\threedangle" +}, + "⟁": { + math: "\\whiteinwhitetriangle" +}, + "⟂": { + math: "\\perp" +}, + "⟃": { + math: "\\subsetcirc" +}, + "⟄": { + math: "\\supsetcirc" +}, + "⟅": { + math: "\\Lbag" +}, + "⟆": { + math: "\\Rbag" +}, + "⟇": { + math: "\\veedot" +}, + "⟈": { + math: "\\bsolhsub" +}, + "⟉": { + math: "\\suphsol" +}, + "⟌": { + math: "\\longdivision" +}, + "⟐": { + math: "\\Diamonddot" +}, + "⟑": { + math: "\\wedgedot" +}, + "⟒": { + math: "\\upin" +}, + "⟓": { + math: "\\pullback" +}, + "⟔": { + math: "\\pushout" +}, + "⟕": { + math: "\\leftouterjoin" +}, + "⟖": { + math: "\\rightouterjoin" +}, + "⟗": { + math: "\\fullouterjoin" +}, + "⟘": { + math: "\\bigbot" +}, + "⟙": { + math: "\\bigtop" +}, + "⟚": { + math: "\\DashVDash" +}, + "⟛": { + math: "\\dashVdash" +}, + "⟜": { + math: "\\multimapinv" +}, + "⟝": { + math: "\\vlongdash" +}, + "⟞": { + math: "\\longdashv" +}, + "⟟": { + math: "\\cirbot" +}, + "⟠": { + math: "\\lozengeminus" +}, + "⟡": { + math: "\\concavediamond" +}, + "⟢": { + math: "\\concavediamondtickleft" +}, + "⟣": { + math: "\\concavediamondtickright" +}, + "⟤": { + math: "\\whitesquaretickleft" +}, + "⟥": { + math: "\\whitesquaretickright" +}, + "⟦": { + math: "\\llbracket" +}, + "⟧": { + math: "\\rrbracket" +}, + "⟨": { + math: "\\langle" +}, + "⟩": { + math: "\\rangle" +}, + "⟪": { + math: "\\lang" +}, + "⟫": { + math: "\\rang" +}, + "⟬": { + math: "\\Lbrbrak" +}, + "⟭": { + math: "\\Rbrbrak" +}, + "⟮": { + math: "\\lgroup" +}, + "⟯": { + math: "\\rgroup" +}, + "⟰": { + math: "\\UUparrow" +}, + "⟱": { + math: "\\DDownarrow" +}, + "⟲": { + math: "\\acwgapcirclearrow" +}, + "⟳": { + math: "\\cwgapcirclearrow" +}, + "⟴": { + math: "\\rightarrowonoplus" +}, + "⟵": { + math: "\\longleftarrow" +}, + "⟶": { + math: "\\longrightarrow" +}, + "⟷": { + math: "\\longleftrightarrow" +}, + "⟸": { + math: "\\Longleftarrow" +}, + "⟹": { + math: "\\Longrightarrow" +}, + "⟺": { + math: "\\Longleftrightarrow" +}, + "⟻": { + math: "\\longmapsfrom" +}, + "⟼": { + math: "\\longmapsto" +}, + "⟽": { + math: "\\Longmapsfrom" +}, + "⟾": { + math: "\\Longmapsto" +}, + "⟿": { + math: "\\sim\\joinrel\\leadsto" +}, + "⤀": { + math: "\\psur" +}, + "⤁": { + math: "\\nVtwoheadrightarrow" +}, + "⤂": { + math: "\\nvLeftarrow" +}, + "⤃": { + math: "\\nvRightarrow" +}, + "⤄": { + math: "\\nvLeftrightarrow" +}, + "⤆": { + math: "\\Mapsfrom" +}, + "⤇": { + math: "\\Mapsto" +}, + "⤈": { + math: "\\downarrowbarred" +}, + "⤉": { + math: "\\uparrowbarred" +}, + "⤊": { + math: "\\Uuparrow" +}, + "⤋": { + math: "\\Ddownarrow" +}, + "⤌": { + math: "\\leftbkarrow" +}, + "⤍": { + math: "\\rightbkarrow" +}, + "⤎": { + math: "\\leftdbkarrow" +}, + "⤏": { + math: "\\dbkarow" +}, + "⤐": { + math: "\\drbkarow" +}, + "⤑": { + math: "\\rightdotarrow" +}, + "⤒": { + math: "\\UpArrowBar" +}, + "⤓": { + math: "\\DownArrowBar" +}, + "⤔": { + math: "\\pinj" +}, + "⤕": { + math: "\\finj" +}, + "⤖": { + math: "\\bij" +}, + "⤗": { + math: "\\nvtwoheadrightarrowtail" +}, + "⤘": { + math: "\\nVtwoheadrightarrowtail" +}, + "⤙": { + math: "\\lefttail" +}, + "⤚": { + math: "\\righttail" +}, + "⤛": { + math: "\\leftdbltail" +}, + "⤜": { + math: "\\rightdbltail" +}, + "⤝": { + math: "\\diamondleftarrow" +}, + "⤞": { + math: "\\rightarrowdiamond" +}, + "⤟": { + math: "\\diamondleftarrowbar" +}, + "⤠": { + math: "\\barrightarrowdiamond" +}, + "⤡": { + math: "\\nwsearrow" +}, + "⤢": { + math: "\\neswarrow" +}, + "⤫": { + math: "\\rdiagovfdiag" +}, + "⤬": { + math: "\\fdiagovrdiag" +}, + "⤭": { + math: "\\seovnearrow" +}, + "⤮": { + math: "\\neovsearrow" +}, + "⤯": { + math: "\\fdiagovnearrow" +}, + "⤰": { + math: "\\rdiagovsearrow" +}, + "⤱": { + math: "\\neovnwarrow" +}, + "⤲": { + math: "\\nwovnearrow" +}, + "⤴": { + math: "\\uprightcurvearrow" +}, + "⤵": { + math: "\\downrightcurvedarrow" +}, + "⤸": { + math: "\\cwrightarcarrow" +}, + "⤹": { + math: "\\acwleftarcarrow" +}, + "⤺": { + math: "\\acwoverarcarrow" +}, + "⤻": { + math: "\\acwunderarcarrow" +}, + "⤼": { + math: "\\curvearrowrightminus" +}, + "⤽": { + math: "\\curvearrowleftplus" +}, + "⤾": { + math: "\\cwundercurvearrow" +}, + "⤿": { + math: "\\ccwundercurvearrow" +}, + "⥀": { + math: "\\Elolarr" +}, + "⥁": { + math: "\\Elorarr" +}, + "⥂": { + math: "\\ElzRlarr" +}, + "⥃": { + math: "\\leftarrowshortrightarrow" +}, + "⥄": { + math: "\\ElzrLarr" +}, + "⥅": { + math: "\\rightarrowplus" +}, + "⥆": { + math: "\\leftarrowplus" +}, + "⥇": { + math: "\\Elzrarrx" +}, + "⥈": { + math: "\\leftrightarrowcircle" +}, + "⥉": { + math: "\\twoheaduparrowcircle" +}, + "⥊": { + math: "\\leftrightharpoon" +}, + "⥋": { + math: "\\rightleftharpoon" +}, + "⥌": { + math: "\\updownharpoonrightleft" +}, + "⥍": { + math: "\\updownharpoonleftright" +}, + "⥎": { + math: "\\LeftRightVector" +}, + "⥏": { + math: "\\RightUpDownVector" +}, + "⥐": { + math: "\\DownLeftRightVector" +}, + "⥑": { + math: "\\LeftUpDownVector" +}, + "⥒": { + math: "\\LeftVectorBar" +}, + "⥓": { + math: "\\RightVectorBar" +}, + "⥔": { + math: "\\RightUpVectorBar" +}, + "⥕": { + math: "\\RightDownVectorBar" +}, + "⥖": { + math: "\\DownLeftVectorBar" +}, + "⥗": { + math: "\\DownRightVectorBar" +}, + "⥘": { + math: "\\LeftUpVectorBar" +}, + "⥙": { + math: "\\LeftDownVectorBar" +}, + "⥚": { + math: "\\LeftTeeVector" +}, + "⥛": { + math: "\\RightTeeVector" +}, + "⥜": { + math: "\\RightUpTeeVector" +}, + "⥝": { + math: "\\RightDownTeeVector" +}, + "⥞": { + math: "\\DownLeftTeeVector" +}, + "⥟": { + math: "\\DownRightTeeVector" +}, + "⥠": { + math: "\\LeftUpTeeVector" +}, + "⥡": { + math: "\\LeftDownTeeVector" +}, + "⥢": { + math: "\\leftleftharpoons" +}, + "⥣": { + math: "\\upupharpoons" +}, + "⥤": { + math: "\\rightrightharpoons" +}, + "⥥": { + math: "\\downdownharpoons" +}, + "⥦": { + math: "\\leftrightharpoonsup" +}, + "⥧": { + math: "\\leftrightharpoonsdown" +}, + "⥨": { + math: "\\rightleftharpoonsup" +}, + "⥩": { + math: "\\rightleftharpoonsdown" +}, + "⥪": { + math: "\\leftbarharpoon" +}, + "⥫": { + math: "\\barleftharpoon" +}, + "⥬": { + math: "\\rightbarharpoon" +}, + "⥭": { + math: "\\barrightharpoon" +}, + "⥮": { + math: "\\UpEquilibrium" +}, + "⥯": { + math: "\\ReverseUpEquilibrium" +}, + "⥰": { + math: "\\RoundImplies" +}, + "⥱": { + math: "\\equalrightarrow" +}, + "⥲": { + math: "\\similarrightarrow" +}, + "⥳": { + math: "\\leftarrowsimilar" +}, + "⥴": { + math: "\\rightarrowsimilar" +}, + "⥵": { + math: "\\rightarrowapprox" +}, + "⥶": { + math: "\\ltlarr" +}, + "⥷": { + math: "\\leftarrowless" +}, + "⥸": { + math: "\\gtrarr" +}, + "⥹": { + math: "\\subrarr" +}, + "⥺": { + math: "\\leftarrowsubset" +}, + "⥻": { + math: "\\suplarr" +}, + "⥾": { + math: "\\upfishtail" +}, + "⥿": { + math: "\\downfishtail" +}, + "⦀": { + math: "\\Elztfnc" +}, + "⦁": { + math: "\\spot" +}, + "⦂": { + math: "\\typecolon" +}, + "⦃": { + math: "\\lBrace" +}, + "⦄": { + math: "\\rBrace" +}, + "⦆": { + math: "\\Elroang" +}, + "⦇": { + math: "\\limg" +}, + "⦈": { + math: "\\rimg" +}, + "⦉": { + math: "\\lblot" +}, + "⦊": { + math: "\\rblot" +}, + "⦋": { + math: "\\lbrackubar" +}, + "⦌": { + math: "\\rbrackubar" +}, + "⦍": { + math: "\\lbrackultick" +}, + "⦎": { + math: "\\rbracklrtick" +}, + "⦏": { + math: "\\lbracklltick" +}, + "⦐": { + math: "\\rbrackurtick" +}, + "⦑": { + math: "\\langledot" +}, + "⦒": { + math: "\\rangledot" +}, + "⦓": { + math: "<\\kern-0.58em(" +}, + "⦕": { + math: "\\Lparengtr" +}, + "⦖": { + math: "\\Rparenless" +}, + "⦗": { + math: "\\lblkbrbrak" +}, + "⦘": { + math: "\\rblkbrbrak" +}, + "⦙": { + math: "\\Elzddfnc" +}, + "⦚": { + math: "\\vzigzag" +}, + "⦛": { + math: "\\measuredangleleft" +}, + "⦜": { + math: "\\Angle" +}, + "⦝": { + math: "\\rightanglemdot" +}, + "⦞": { + math: "\\angles" +}, + "⦟": { + math: "\\angdnr" +}, + "⦠": { + math: "\\Elzlpargt" +}, + "⦡": { + math: "\\sphericalangleup" +}, + "⦢": { + math: "\\turnangle" +}, + "⦣": { + math: "\\revangle" +}, + "⦤": { + math: "\\angleubar" +}, + "⦥": { + math: "\\revangleubar" +}, + "⦦": { + math: "\\wideangledown" +}, + "⦧": { + math: "\\wideangleup" +}, + "⦨": { + math: "\\measanglerutone" +}, + "⦩": { + math: "\\measanglelutonw" +}, + "⦪": { + math: "\\measanglerdtose" +}, + "⦫": { + math: "\\measangleldtosw" +}, + "⦬": { + math: "\\measangleurtone" +}, + "⦭": { + math: "\\measangleultonw" +}, + "⦮": { + math: "\\measangledrtose" +}, + "⦯": { + math: "\\measangledltosw" +}, + "⦰": { + math: "\\revemptyset" +}, + "⦱": { + math: "\\emptysetobar" +}, + "⦲": { + math: "\\emptysetocirc" +}, + "⦳": { + math: "\\emptysetoarr" +}, + "⦴": { + math: "\\emptysetoarrl" +}, + "⦷": { + math: "\\circledparallel" +}, + "⦸": { + math: "\\circledbslash" +}, + "⦹": { + math: "\\operp" +}, + "⦺": { + math: "\\obot" +}, + "⦻": { + math: "\\olcross" +}, + "⦼": { + math: "\\odotslashdot" +}, + "⦽": { + math: "\\uparrowoncircle" +}, + "⦾": { + math: "\\circledwhitebullet" +}, + "⦿": { + math: "\\circledbullet" +}, + "⧀": { + math: "\\circledless" +}, + "⧁": { + math: "\\circledgtr" +}, + "⧂": { + math: "\\cirscir" +}, + "⧃": { + math: "\\cirE" +}, + "⧄": { + math: "\\boxslash" +}, + "⧅": { + math: "\\boxbslash" +}, + "⧆": { + math: "\\boxast" +}, + "⧇": { + math: "\\boxcircle" +}, + "⧈": { + math: "\\boxbox" +}, + "⧉": { + math: "\\boxonbox" +}, + "⧊": { + math: "\\ElzLap" +}, + "⧋": { + math: "\\Elzdefas" +}, + "⧌": { + math: "\\triangles" +}, + "⧍": { + math: "\\triangleserifs" +}, + "⧎": { + math: "\\rtriltri" +}, + "⧏": { + math: "\\LeftTriangleBar" +}, + "⧏̸": { + math: "\\NotLeftTriangleBar" +}, + "⧐": { + math: "\\RightTriangleBar" +}, + "⧐̸": { + math: "\\NotRightTriangleBar" +}, + "⧑": { + math: "\\lfbowtie" +}, + "⧒": { + math: "\\rfbowtie" +}, + "⧓": { + math: "\\fbowtie" +}, + "⧔": { + math: "\\lftimes" +}, + "⧕": { + math: "\\rftimes" +}, + "⧖": { + math: "\\hourglass" +}, + "⧗": { + math: "\\blackhourglass" +}, + "⧘": { + math: "\\lvzigzag" +}, + "⧙": { + math: "\\rvzigzag" +}, + "⧚": { + math: "\\Lvzigzag" +}, + "⧛": { + math: "\\Rvzigzag" +}, + "⧝": { + math: "\\tieinfty" +}, + "⧞": { + math: "\\nvinfty" +}, + "⧟": { + math: "\\multimapboth" +}, + "⧠": { + math: "\\laplac" +}, + "⧡": { + math: "\\lrtriangleeq" +}, + "⧢": { + math: "\\shuffle" +}, + "⧣": { + math: "\\eparsl" +}, + "⧤": { + math: "\\smeparsl" +}, + "⧥": { + math: "\\eqvparsl" +}, + "⧦": { + math: "\\gleichstark" +}, + "⧧": { + math: "\\thermod" +}, + "⧨": { + math: "\\downtriangleleftblack" +}, + "⧩": { + math: "\\downtrianglerightblack" +}, + "⧪": { + math: "\\blackdiamonddownarrow" +}, + "⧫": { + math: "\\blacklozenge" +}, + "⧬": { + math: "\\circledownarrow" +}, + "⧭": { + math: "\\blackcircledownarrow" +}, + "⧮": { + math: "\\errbarsquare" +}, + "⧯": { + math: "\\errbarblacksquare" +}, + "⧰": { + math: "\\errbardiamond" +}, + "⧱": { + math: "\\errbarblackdiamond" +}, + "⧲": { + math: "\\errbarcircle" +}, + "⧳": { + math: "\\errbarblackcircle" +}, + "⧴": { + math: "\\RuleDelayed" +}, + "⧵": { + math: "\\setminus" +}, + "⧶": { + math: "\\dsol" +}, + "⧷": { + math: "\\rsolbar" +}, + "⧸": { + math: "\\xsol" +}, + "⧹": { + math: "\\zhide" +}, + "⧺": { + math: "\\doubleplus" +}, + "⧻": { + math: "\\tripleplus" +}, + "⧼": { + math: "\\lcurvyangle" +}, + "⧽": { + math: "\\rcurvyangle" +}, + "⧾": { + math: "\\tplus" +}, + "⧿": { + math: "\\tminus" +}, + "⨀": { + math: "\\bigodot" +}, + "⨁": { + math: "\\bigoplus" +}, + "⨂": { + math: "\\bigotimes" +}, + "⨃": { + math: "\\bigcupdot" +}, + "⨄": { + math: "\\Elxuplus" +}, + "⨅": { + math: "\\ElzThr" +}, + "⨆": { + math: "\\Elxsqcup" +}, + "⨇": { + math: "\\ElzInf" +}, + "⨈": { + math: "\\ElzSup" +}, + "⨉": { + math: "\\varprod" +}, + "⨊": { + math: "\\modtwosum" +}, + "⨋": { + math: "\\sumint" +}, + "⨌": { + math: "\\iiiint" +}, + "⨍": { + math: "\\ElzCint" +}, + "⨎": { + math: "\\intBar" +}, + "⨏": { + math: "\\clockoint" +}, + "⨑": { + math: "\\awint" +}, + "⨒": { + math: "\\rppolint" +}, + "⨓": { + math: "\\scpolint" +}, + "⨔": { + math: "\\npolint" +}, + "⨕": { + math: "\\pointint" +}, + "⨖": { + math: "\\sqrint" +}, + "⨗": { + math: "\\intlarhk" +}, + "⨘": { + math: "\\intx" +}, + "⨙": { + math: "\\intcap" +}, + "⨚": { + math: "\\intcup" +}, + "⨛": { + math: "\\upint" +}, + "⨜": { + math: "\\lowint" +}, + "⨝": { + math: "\\Join" +}, + "⨞": { + math: "\\bigtriangleleft" +}, + "⨟": { + math: "\\zcmp" +}, + "⨠": { + math: "\\zpipe" +}, + "⨡": { + math: "\\zproject" +}, + "⨢": { + math: "\\ringplus" +}, + "⨣": { + math: "\\plushat" +}, + "⨤": { + math: "\\simplus" +}, + "⨦": { + math: "\\plussim" +}, + "⨧": { + math: "\\plussubtwo" +}, + "⨨": { + math: "\\plustrif" +}, + "⨩": { + math: "\\commaminus" +}, + "⨫": { + math: "\\minusfdots" +}, + "⨬": { + math: "\\minusrdots" +}, + "⨯": { + math: "\\ElzTimes" +}, + "⨰": { + math: "\\dottimes" +}, + "⨱": { + math: "\\timesbar" +}, + "⨲": { + math: "\\btimes" +}, + "⨳": { + math: "\\smashtimes" +}, + "⨶": { + math: "\\otimeshat" +}, + "⨷": { + math: "\\Otimes" +}, + "⨸": { + math: "\\odiv" +}, + "⨹": { + math: "\\triangleplus" +}, + "⨺": { + math: "\\triangleminus" +}, + "⨻": { + math: "\\triangletimes" +}, + "⨽": { + math: "\\intprodr" +}, + "⨾": { + math: "\\fcmp" +}, + "⨿": { + math: "\\amalg" +}, + "⩀": { + math: "\\capdot" +}, + "⩁": { + math: "\\uminus" +}, + "⩂": { + math: "\\barcup" +}, + "⩃": { + math: "\\barcap" +}, + "⩄": { + math: "\\capwedge" +}, + "⩅": { + math: "\\cupvee" +}, + "⩆": { + math: "\\cupovercap" +}, + "⩇": { + math: "\\capovercup" +}, + "⩈": { + math: "\\cupbarcap" +}, + "⩉": { + math: "\\capbarcup" +}, + "⩊": { + math: "\\twocups" +}, + "⩋": { + math: "\\twocaps" +}, + "⩌": { + math: "\\closedvarcup" +}, + "⩍": { + math: "\\closedvarcap" +}, + "⩎": { + math: "\\Sqcap" +}, + "⩏": { + math: "\\Sqcup" +}, + "⩐": { + math: "\\closedvarcupsmashprod" +}, + "⩑": { + math: "\\wedgeodot" +}, + "⩒": { + math: "\\veeodot" +}, + "⩓": { + math: "\\ElzAnd" +}, + "⩔": { + math: "\\ElzOr" +}, + "⩖": { + math: "\\ElOr" +}, + "⩗": { + math: "\\bigslopedvee" +}, + "⩘": { + math: "\\bigslopedwedge" +}, + "⩙": { + math: "\\veeonwedge" +}, + "⩚": { + math: "\\wedgemidvert" +}, + "⩛": { + math: "\\veemidvert" +}, + "⩜": { + math: "\\midbarwedge" +}, + "⩝": { + math: "\\midbarvee" +}, + "⩞": { + math: "\\perspcorrespond" +}, + "⩟": { + math: "\\Elzminhat" +}, + "⩠": { + math: "\\wedgedoublebar" +}, + "⩡": { + math: "\\varveebar" +}, + "⩢": { + math: "\\doublebarvee" +}, + "⩤": { + math: "\\dsub" +}, + "⩥": { + math: "\\rsub" +}, + "⩦": { + math: "\\eqdot" +}, + "⩧": { + math: "\\dotequiv" +}, + "⩨": { + math: "\\equivVert" +}, + "⩩": { + math: "\\equivVvert" +}, + "⩪": { + math: "\\dotsim" +}, + "⩫": { + math: "\\simrdots" +}, + "⩬": { + math: "\\simminussim" +}, + "⩭": { + math: "\\congdot" +}, + "⩮": { + math: "\\stackrel{*}{=}" +}, + "⩯": { + math: "\\hatapprox" +}, + "⩰": { + math: "\\approxeqq" +}, + "⩱": { + math: "\\eqqplus" +}, + "⩲": { + math: "\\pluseqq" +}, + "⩳": { + math: "\\eqqsim" +}, + "⩴": { + math: "\\Coloneqq" +}, + "⩵": { + math: "\\Equal" +}, + "⩶": { + math: "\\Same" +}, + "⩷": { + math: "\\ddotseq" +}, + "⩸": { + math: "\\equivDD" +}, + "⩹": { + math: "\\ltcir" +}, + "⩺": { + math: "\\gtcir" +}, + "⩻": { + math: "\\ltquest" +}, + "⩼": { + math: "\\gtquest" +}, + "⩽": { + math: "\\leqslant", + mathpackages: [ + "amssymb" + ] +}, + "⩽̸": { + math: "\\nleqslant", + mathpackages: [ + "amssymb" + ] +}, + "⩾": { + math: "\\geqslant", + mathpackages: [ + "amssymb" + ] +}, + "⩾̸": { + math: "\\ngeqslant", + mathpackages: [ + "amssymb" + ] +}, + "⩿": { + math: "\\lesdot" +}, + "⪀": { + math: "\\gesdot" +}, + "⪁": { + math: "\\lesdoto" +}, + "⪂": { + math: "\\gesdoto" +}, + "⪃": { + math: "\\lesdotor" +}, + "⪄": { + math: "\\gesdotol" +}, + "⪅": { + math: "\\lessapprox" +}, + "⪆": { + math: "\\gtrapprox" +}, + "⪇": { + math: "\\lneq" +}, + "⪈": { + math: "\\gneq" +}, + "⪉": { + math: "\\lnapprox" +}, + "⪊": { + math: "\\gnapprox" +}, + "⪋": { + math: "\\lesseqqgtr" +}, + "⪌": { + math: "\\gtreqqless" +}, + "⪍": { + math: "\\lsime" +}, + "⪎": { + math: "\\gsime" +}, + "⪏": { + math: "\\lsimg" +}, + "⪐": { + math: "\\gsiml" +}, + "⪑": { + math: "\\lgE" +}, + "⪒": { + math: "\\glE" +}, + "⪓": { + math: "\\lesges" +}, + "⪔": { + math: "\\gesles" +}, + "⪕": { + math: "\\eqslantless" +}, + "⪖": { + math: "\\eqslantgtr" +}, + "⪗": { + math: "\\elsdot" +}, + "⪘": { + math: "\\egsdot" +}, + "⪙": { + math: "\\eqqless" +}, + "⪚": { + math: "\\eqqgtr" +}, + "⪛": { + math: "\\eqqslantless" +}, + "⪜": { + math: "\\eqqslantgtr" +}, + "⪝": { + math: "\\Pisymbol{ppi020}{117}" +}, + "⪞": { + math: "\\Pisymbol{ppi020}{105}" +}, + "⪟": { + math: "\\simlE" +}, + "⪠": { + math: "\\simgE" +}, + "⪡": { + math: "\\NestedLessLess" +}, + "⪡̸": { + math: "\\NotNestedLessLess" +}, + "⪢": { + math: "\\NestedGreaterGreater" +}, + "⪢̸": { + math: "\\NotNestedGreaterGreater" +}, + "⪣": { + math: "\\partialmeetcontraction" +}, + "⪤": { + math: "\\glj" +}, + "⪥": { + math: "\\gla" +}, + "⪦": { + math: "\\leftslice" +}, + "⪧": { + math: "\\rightslice" +}, + "⪨": { + math: "\\lescc" +}, + "⪩": { + math: "\\gescc" +}, + "⪪": { + math: "\\smt" +}, + "⪫": { + math: "\\lat" +}, + "⪬": { + math: "\\smte" +}, + "⪭": { + math: "\\late" +}, + "⪮": { + math: "\\bumpeqq" +}, + "⪯": { + math: "\\preceq" +}, + "⪯̸": { + math: "\\not\\preceq" +}, + "⪰": { + math: "\\succeq" +}, + "⪰̸": { + math: "\\not\\succeq" +}, + "⪱": { + math: "\\precneq" +}, + "⪲": { + math: "\\succneq" +}, + "⪳": { + math: "\\preceqq" +}, + "⪴": { + math: "\\succeqq" +}, + "⪵": { + math: "\\precneqq" +}, + "⪶": { + math: "\\succneqq" +}, + "⪷": { + math: "\\precapprox" +}, + "⪸": { + math: "\\succapprox" +}, + "⪹": { + math: "\\precnapprox" +}, + "⪺": { + math: "\\succnapprox" +}, + "⪻": { + math: "\\llcurly" +}, + "⪼": { + math: "\\ggcurly" +}, + "⪽": { + math: "\\subsetdot" +}, + "⪾": { + math: "\\supsetdot" +}, + "⪿": { + math: "\\subsetplus" +}, + "⫀": { + math: "\\supsetplus" +}, + "⫁": { + math: "\\submult" +}, + "⫂": { + math: "\\supmult" +}, + "⫃": { + math: "\\subedot" +}, + "⫄": { + math: "\\supedot" +}, + "⫅": { + math: "\\subseteqq" +}, + "⫅̸": { + math: "\\nsubseteqq" +}, + "⫆": { + math: "\\supseteqq" +}, + "⫆̸": { + math: "\\nsupseteqq" +}, + "⫇": { + math: "\\subsim" +}, + "⫈": { + math: "\\supsim" +}, + "⫉": { + math: "\\subsetapprox" +}, + "⫊": { + math: "\\supsetapprox" +}, + "⫋": { + math: "\\subsetneqq" +}, + "⫌": { + math: "\\supsetneqq" +}, + "⫍": { + math: "\\lsqhook" +}, + "⫎": { + math: "\\rsqhook" +}, + "⫏": { + math: "\\csub" +}, + "⫐": { + math: "\\csup" +}, + "⫑": { + math: "\\csube" +}, + "⫒": { + math: "\\csupe" +}, + "⫓": { + math: "\\subsup" +}, + "⫔": { + math: "\\supsub" +}, + "⫕": { + math: "\\subsub" +}, + "⫖": { + math: "\\supsup" +}, + "⫗": { + math: "\\suphsub" +}, + "⫘": { + math: "\\supdsub" +}, + "⫙": { + math: "\\forkv" +}, + "⫚": { + math: "\\topfork" +}, + "⫛": { + math: "\\mlcp" +}, + "⫝̸": { + math: "\\forks" +}, + "⫝": { + math: "\\forksnot" +}, + "⫝̸": { + math: "\\forks" +}, + "⫞": { + math: "\\shortlefttack" +}, + "⫟": { + math: "\\shortdowntack" +}, + "⫠": { + math: "\\shortuptack" +}, + "⫡": { + math: "\\perps" +}, + "⫢": { + math: "\\vDdash" +}, + "⫣": { + math: "\\dashV" +}, + "⫤": { + math: "\\Dashv" +}, + "⫥": { + math: "\\DashV" +}, + "⫦": { + math: "\\varVdash" +}, + "⫧": { + math: "\\Barv" +}, + "⫨": { + math: "\\vBar" +}, + "⫩": { + math: "\\vBarv" +}, + "⫪": { + math: "\\Top" +}, + "⫬": { + math: "\\Not" +}, + "⫭": { + math: "\\bNot" +}, + "⫮": { + math: "\\revnmid" +}, + "⫯": { + math: "\\cirmid" +}, + "⫰": { + math: "\\midcir" +}, + "⫱": { + math: "\\topcir" +}, + "⫲": { + math: "\\nhpar" +}, + "⫳": { + math: "\\parsim" +}, + "⫴": { + math: "\\interleave" +}, + "⫵": { + math: "\\nhVvert" +}, + "⫶": { + math: "\\Elztdcol" +}, + "⫷": { + math: "\\lllnest" +}, + "⫸": { + math: "\\gggnest" +}, + "⫹": { + math: "\\leqqslant" +}, + "⫺": { + math: "\\geqqslant" +}, + "⫻": { + math: "\\trslash" +}, + "⫼": { + math: "\\biginterleave" +}, + "⫽": { + math: "{{/}\\!\\!{/}}" +}, + "⫽⃥": { + math: "{\\rlap{\\textbackslash}{{/}\\!\\!{/}}}" +}, + "⫾": { + math: "\\talloblong" +}, + "⫿": { + math: "\\bigtalloblong" +}, + "⬒": { + math: "\\squaretopblack" +}, + "⬓": { + math: "\\squarebotblack" +}, + "⬔": { + math: "\\squareurblack" +}, + "⬕": { + math: "\\squarellblack" +}, + "⬖": { + math: "\\diamondleftblack" +}, + "⬗": { + math: "\\diamondrightblack" +}, + "⬘": { + math: "\\diamondtopblack" +}, + "⬙": { + math: "\\diamondbotblack" +}, + "⬚": { + math: "\\dottedsquare" +}, + "⬛": { + math: "\\blacksquare" +}, + "⬜": { + math: "\\square" +}, + "⬝": { + math: "\\vysmblksquare" +}, + "⬞": { + math: "\\vysmwhtsquare" +}, + "⬟": { + math: "\\pentagonblack" +}, + "⬠": { + math: "\\pentagon" +}, + "⬡": { + math: "\\varhexagon" +}, + "⬢": { + math: "\\varhexagonblack" +}, + "⬣": { + math: "\\hexagonblack" +}, + "⬤": { + math: "\\lgblkcircle" +}, + "⬥": { + math: "\\mdblkdiamond" +}, + "⬦": { + math: "\\mdwhtdiamond" +}, + "⬧": { + math: "\\mdblklozenge" +}, + "⬨": { + math: "\\mdwhtlozenge" +}, + "⬩": { + math: "\\smblkdiamond" +}, + "⬪": { + math: "\\smblklozenge" +}, + "⬫": { + math: "\\smwhtlozenge" +}, + "⬬": { + math: "\\blkhorzoval" +}, + "⬭": { + math: "\\whthorzoval" +}, + "⬮": { + math: "\\blkvertoval" +}, + "⬯": { + math: "\\whtvertoval" +}, + "⬰": { + math: "\\circleonleftarrow" +}, + "⬱": { + math: "\\leftthreearrows" +}, + "⬲": { + math: "\\leftarrowonoplus" +}, + "⬳": { + math: "\\longleftsquigarrow" +}, + "⬴": { + math: "\\nvtwoheadleftarrow" +}, + "⬵": { + math: "\\nVtwoheadleftarrow" +}, + "⬶": { + math: "\\twoheadmapsfrom" +}, + "⬷": { + math: "\\twoheadleftdbkarrow" +}, + "⬸": { + math: "\\leftdotarrow" +}, + "⬹": { + math: "\\nvleftarrowtail" +}, + "⬺": { + math: "\\nVleftarrowtail" +}, + "⬻": { + math: "\\twoheadleftarrowtail" +}, + "⬼": { + math: "\\nvtwoheadleftarrowtail" +}, + "⬽": { + math: "\\nVtwoheadleftarrowtail" +}, + "⬾": { + math: "\\leftarrowx" +}, + "⬿": { + math: "\\leftcurvedarrow" +}, + "⭀": { + math: "\\equalleftarrow" +}, + "⭁": { + math: "\\bsimilarleftarrow" +}, + "⭂": { + math: "\\leftarrowbackapprox" +}, + "⭃": { + math: "\\rightarrowgtr" +}, + "⭄": { + math: "\\rightarrowsupset" +}, + "⭅": { + math: "\\LLeftarrow" +}, + "⭆": { + math: "\\RRightarrow" +}, + "⭇": { + math: "\\bsimilarrightarrow" +}, + "⭈": { + math: "\\rightarrowbackapprox" +}, + "⭉": { + math: "\\similarleftarrow" +}, + "⭊": { + math: "\\leftarrowapprox" +}, + "⭋": { + math: "\\leftarrowbsimilar" +}, + "⭌": { + math: "\\rightarrowbsimilar" +}, + "⭐": { + math: "\\medwhitestar" +}, + "⭑": { + math: "\\medblackstar" +}, + "⭒": { + math: "\\smwhitestar" +}, + "⭓": { + math: "\\rightpentagonblack" +}, + "⭔": { + math: "\\rightpentagon" +}, + "〈": { + math: "\\langle" +}, + "〉": { + math: "\\rangle" +}, + "〒": { + math: "\\postalmark" +}, + "〔": { + math: "\\lbrbrak" +}, + "〕": { + math: "\\rbrbrak" +}, + "〚": { + math: "\\openbracketleft" +}, + "〛": { + math: "\\openbracketright" +}, + "〰": { + math: "\\hzigzag" +}, + "ff": { + text: "ff" +}, + "fi": { + text: "fi" +}, + "fl": { + text: "fl" +}, + "ffi": { + text: "ffi" +}, + "ffl": { + text: "ffl" +}, + "ſt": { + text: "st" +}, + "st": { + text: "st" +}, + "�": { + text: "{\\dbend}" +}, + "𝐀": { + math: "\\mathbf{A}" +}, + "𝐁": { + math: "\\mathbf{B}" +}, + "𝐂": { + math: "\\mathbf{C}" +}, + "𝐃": { + math: "\\mathbf{D}" +}, + "𝐄": { + math: "\\mathbf{E}" +}, + "𝐅": { + math: "\\mathbf{F}" +}, + "𝐆": { + math: "\\mathbf{G}" +}, + "𝐇": { + math: "\\mathbf{H}" +}, + "𝐈": { + math: "\\mathbf{I}" +}, + "𝐉": { + math: "\\mathbf{J}" +}, + "𝐊": { + math: "\\mathbf{K}" +}, + "𝐋": { + math: "\\mathbf{L}" +}, + "𝐌": { + math: "\\mathbf{M}" +}, + "𝐍": { + math: "\\mathbf{N}" +}, + "𝐎": { + math: "\\mathbf{O}" +}, + "𝐏": { + math: "\\mathbf{P}" +}, + "𝐐": { + math: "\\mathbf{Q}" +}, + "𝐑": { + math: "\\mathbf{R}" +}, + "𝐒": { + math: "\\mathbf{S}" +}, + "𝐓": { + math: "\\mathbf{T}" +}, + "𝐔": { + math: "\\mathbf{U}" +}, + "𝐕": { + math: "\\mathbf{V}" +}, + "𝐖": { + math: "\\mathbf{W}" +}, + "𝐗": { + math: "\\mathbf{X}" +}, + "𝐘": { + math: "\\mathbf{Y}" +}, + "𝐙": { + math: "\\mathbf{Z}" +}, + "𝐚": { + math: "\\mathbf{a}" +}, + "𝐛": { + math: "\\mathbf{b}" +}, + "𝐜": { + math: "\\mathbf{c}" +}, + "𝐝": { + math: "\\mathbf{d}" +}, + "𝐞": { + math: "\\mathbf{e}" +}, + "𝐟": { + math: "\\mathbf{f}" +}, + "𝐠": { + math: "\\mathbf{g}" +}, + "𝐡": { + math: "\\mathbf{h}" +}, + "𝐢": { + math: "\\mathbf{i}" +}, + "𝐣": { + math: "\\mathbf{j}" +}, + "𝐤": { + math: "\\mathbf{k}" +}, + "𝐥": { + math: "\\mathbf{l}" +}, + "𝐦": { + math: "\\mathbf{m}" +}, + "𝐧": { + math: "\\mathbf{n}" +}, + "𝐨": { + math: "\\mathbf{o}" +}, + "𝐩": { + math: "\\mathbf{p}" +}, + "𝐪": { + math: "\\mathbf{q}" +}, + "𝐫": { + math: "\\mathbf{r}" +}, + "𝐬": { + math: "\\mathbf{s}" +}, + "𝐭": { + math: "\\mathbf{t}" +}, + "𝐮": { + math: "\\mathbf{u}" +}, + "𝐯": { + math: "\\mathbf{v}" +}, + "𝐰": { + math: "\\mathbf{w}" +}, + "𝐱": { + math: "\\mathbf{x}" +}, + "𝐲": { + math: "\\mathbf{y}" +}, + "𝐳": { + math: "\\mathbf{z}" +}, + "𝐴": { + math: "\\mathsl{A}" +}, + "𝐵": { + math: "\\mathsl{B}" +}, + "𝐶": { + math: "\\mathsl{C}" +}, + "𝐷": { + math: "\\mathsl{D}" +}, + "𝐸": { + math: "\\mathsl{E}" +}, + "𝐹": { + math: "\\mathsl{F}" +}, + "𝐺": { + math: "\\mathsl{G}" +}, + "𝐻": { + math: "\\mathsl{H}" +}, + "𝐼": { + math: "\\mathsl{I}" +}, + "𝐽": { + math: "\\mathsl{J}" +}, + "𝐾": { + math: "\\mathsl{K}" +}, + "𝐿": { + math: "\\mathsl{L}" +}, + "𝑀": { + math: "\\mathsl{M}" +}, + "𝑁": { + math: "\\mathsl{N}" +}, + "𝑂": { + math: "\\mathsl{O}" +}, + "𝑃": { + math: "\\mathsl{P}" +}, + "𝑄": { + math: "\\mathsl{Q}" +}, + "𝑅": { + math: "\\mathsl{R}" +}, + "𝑆": { + math: "\\mathsl{S}" +}, + "𝑇": { + math: "\\mathsl{T}" +}, + "𝑈": { + math: "\\mathsl{U}" +}, + "𝑉": { + math: "\\mathsl{V}" +}, + "𝑊": { + math: "\\mathsl{W}" +}, + "𝑋": { + math: "\\mathsl{X}" +}, + "𝑌": { + math: "\\mathsl{Y}" +}, + "𝑍": { + math: "\\mathsl{Z}" +}, + "𝑎": { + math: "\\mathsl{a}" +}, + "𝑏": { + math: "\\mathsl{b}" +}, + "𝑐": { + math: "\\mathsl{c}" +}, + "𝑑": { + math: "\\mathsl{d}" +}, + "𝑒": { + math: "\\mathsl{e}" +}, + "𝑓": { + math: "\\mathsl{f}" +}, + "𝑔": { + math: "\\mathsl{g}" +}, + "𝑖": { + math: "\\mathsl{i}" +}, + "𝑗": { + math: "\\mathsl{j}" +}, + "𝑘": { + math: "\\mathsl{k}" +}, + "𝑙": { + math: "\\mathsl{l}" +}, + "𝑚": { + math: "\\mathsl{m}" +}, + "𝑛": { + math: "\\mathsl{n}" +}, + "𝑜": { + math: "\\mathsl{o}" +}, + "𝑝": { + math: "\\mathsl{p}" +}, + "𝑞": { + math: "\\mathsl{q}" +}, + "𝑟": { + math: "\\mathsl{r}" +}, + "𝑠": { + math: "\\mathsl{s}" +}, + "𝑡": { + math: "\\mathsl{t}" +}, + "𝑢": { + math: "\\mathsl{u}" +}, + "𝑣": { + math: "\\mathsl{v}" +}, + "𝑤": { + math: "\\mathsl{w}" +}, + "𝑥": { + math: "\\mathsl{x}" +}, + "𝑦": { + math: "\\mathsl{y}" +}, + "𝑧": { + math: "\\mathsl{z}" +}, + "𝑨": { + math: "\\mathbit{A}" +}, + "𝑩": { + math: "\\mathbit{B}" +}, + "𝑪": { + math: "\\mathbit{C}" +}, + "𝑫": { + math: "\\mathbit{D}" +}, + "𝑬": { + math: "\\mathbit{E}" +}, + "𝑭": { + math: "\\mathbit{F}" +}, + "𝑮": { + math: "\\mathbit{G}" +}, + "𝑯": { + math: "\\mathbit{H}" +}, + "𝑰": { + math: "\\mathbit{I}" +}, + "𝑱": { + math: "\\mathbit{J}" +}, + "𝑲": { + math: "\\mathbit{K}" +}, + "𝑳": { + math: "\\mathbit{L}" +}, + "𝑴": { + math: "\\mathbit{M}" +}, + "𝑵": { + math: "\\mathbit{N}" +}, + "𝑶": { + math: "\\mathbit{O}" +}, + "𝑷": { + math: "\\mathbit{P}" +}, + "𝑸": { + math: "\\mathbit{Q}" +}, + "𝑹": { + math: "\\mathbit{R}" +}, + "𝑺": { + math: "\\mathbit{S}" +}, + "𝑻": { + math: "\\mathbit{T}" +}, + "𝑼": { + math: "\\mathbit{U}" +}, + "𝑽": { + math: "\\mathbit{V}" +}, + "𝑾": { + math: "\\mathbit{W}" +}, + "𝑿": { + math: "\\mathbit{X}" +}, + "𝒀": { + math: "\\mathbit{Y}" +}, + "𝒁": { + math: "\\mathbit{Z}" +}, + "𝒂": { + math: "\\mathbit{a}" +}, + "𝒃": { + math: "\\mathbit{b}" +}, + "𝒄": { + math: "\\mathbit{c}" +}, + "𝒅": { + math: "\\mathbit{d}" +}, + "𝒆": { + math: "\\mathbit{e}" +}, + "𝒇": { + math: "\\mathbit{f}" +}, + "𝒈": { + math: "\\mathbit{g}" +}, + "𝒉": { + math: "\\mathbit{h}" +}, + "𝒊": { + math: "\\mathbit{i}" +}, + "𝒋": { + math: "\\mathbit{j}" +}, + "𝒌": { + math: "\\mathbit{k}" +}, + "𝒍": { + math: "\\mathbit{l}" +}, + "𝒎": { + math: "\\mathbit{m}" +}, + "𝒏": { + math: "\\mathbit{n}" +}, + "𝒐": { + math: "\\mathbit{o}" +}, + "𝒑": { + math: "\\mathbit{p}" +}, + "𝒒": { + math: "\\mathbit{q}" +}, + "𝒓": { + math: "\\mathbit{r}" +}, + "𝒔": { + math: "\\mathbit{s}" +}, + "𝒕": { + math: "\\mathbit{t}" +}, + "𝒖": { + math: "\\mathbit{u}" +}, + "𝒗": { + math: "\\mathbit{v}" +}, + "𝒘": { + math: "\\mathbit{w}" +}, + "𝒙": { + math: "\\mathbit{x}" +}, + "𝒚": { + math: "\\mathbit{y}" +}, + "𝒛": { + math: "\\mathbit{z}" +}, + "𝒜": { + math: "\\mathscr{A}" +}, + "𝒞": { + math: "\\mathscr{C}" +}, + "𝒟": { + math: "\\mathscr{D}" +}, + "𝒢": { + math: "\\mathscr{G}" +}, + "𝒥": { + math: "\\mathscr{J}" +}, + "𝒦": { + math: "\\mathscr{K}" +}, + "𝒩": { + math: "\\mathscr{N}" +}, + "𝒪": { + math: "\\mathscr{O}" +}, + "𝒫": { + math: "\\mathscr{P}" +}, + "𝒬": { + math: "\\mathscr{Q}" +}, + "𝒮": { + math: "\\mathscr{S}" +}, + "𝒯": { + math: "\\mathscr{T}" +}, + "𝒰": { + math: "\\mathscr{U}" +}, + "𝒱": { + math: "\\mathscr{V}" +}, + "𝒲": { + math: "\\mathscr{W}" +}, + "𝒳": { + math: "\\mathscr{X}" +}, + "𝒴": { + math: "\\mathscr{Y}" +}, + "𝒵": { + math: "\\mathscr{Z}" +}, + "𝒶": { + math: "\\mathscr{a}" +}, + "𝒷": { + math: "\\mathscr{b}" +}, + "𝒸": { + math: "\\mathscr{c}" +}, + "𝒹": { + math: "\\mathscr{d}" +}, + "𝒻": { + math: "\\mathscr{f}" +}, + "𝒽": { + math: "\\mathscr{h}" +}, + "𝒾": { + math: "\\mathscr{i}" +}, + "𝒿": { + math: "\\mathscr{j}" +}, + "𝓀": { + math: "\\mathscr{k}" +}, + "𝓁": { + math: "\\mathscr{l}" +}, + "𝓂": { + math: "\\mathscr{m}" +}, + "𝓃": { + math: "\\mathscr{n}" +}, + "𝓅": { + math: "\\mathscr{p}" +}, + "𝓆": { + math: "\\mathscr{q}" +}, + "𝓇": { + math: "\\mathscr{r}" +}, + "𝓈": { + math: "\\mathscr{s}" +}, + "𝓉": { + math: "\\mathscr{t}" +}, + "𝓊": { + math: "\\mathscr{u}" +}, + "𝓋": { + math: "\\mathscr{v}" +}, + "𝓌": { + math: "\\mathscr{w}" +}, + "𝓍": { + math: "\\mathscr{x}" +}, + "𝓎": { + math: "\\mathscr{y}" +}, + "𝓏": { + math: "\\mathscr{z}" +}, + "𝓐": { + math: "\\mathmit{A}" +}, + "𝓑": { + math: "\\mathmit{B}" +}, + "𝓒": { + math: "\\mathmit{C}" +}, + "𝓓": { + math: "\\mathmit{D}" +}, + "𝓔": { + math: "\\mathmit{E}" +}, + "𝓕": { + math: "\\mathmit{F}" +}, + "𝓖": { + math: "\\mathmit{G}" +}, + "𝓗": { + math: "\\mathmit{H}" +}, + "𝓘": { + math: "\\mathmit{I}" +}, + "𝓙": { + math: "\\mathmit{J}" +}, + "𝓚": { + math: "\\mathmit{K}" +}, + "𝓛": { + math: "\\mathmit{L}" +}, + "𝓜": { + math: "\\mathmit{M}" +}, + "𝓝": { + math: "\\mathmit{N}" +}, + "𝓞": { + math: "\\mathmit{O}" +}, + "𝓟": { + math: "\\mathmit{P}" +}, + "𝓠": { + math: "\\mathmit{Q}" +}, + "𝓡": { + math: "\\mathmit{R}" +}, + "𝓢": { + math: "\\mathmit{S}" +}, + "𝓣": { + math: "\\mathmit{T}" +}, + "𝓤": { + math: "\\mathmit{U}" +}, + "𝓥": { + math: "\\mathmit{V}" +}, + "𝓦": { + math: "\\mathmit{W}" +}, + "𝓧": { + math: "\\mathmit{X}" +}, + "𝓨": { + math: "\\mathmit{Y}" +}, + "𝓩": { + math: "\\mathmit{Z}" +}, + "𝓪": { + math: "\\mathmit{a}" +}, + "𝓫": { + math: "\\mathmit{b}" +}, + "𝓬": { + math: "\\mathmit{c}" +}, + "𝓭": { + math: "\\mathmit{d}" +}, + "𝓮": { + math: "\\mathmit{e}" +}, + "𝓯": { + math: "\\mathmit{f}" +}, + "𝓰": { + math: "\\mathmit{g}" +}, + "𝓱": { + math: "\\mathmit{h}" +}, + "𝓲": { + math: "\\mathmit{i}" +}, + "𝓳": { + math: "\\mathmit{j}" +}, + "𝓴": { + math: "\\mathmit{k}" +}, + "𝓵": { + math: "\\mathmit{l}" +}, + "𝓶": { + math: "\\mathmit{m}" +}, + "𝓷": { + math: "\\mathmit{n}" +}, + "𝓸": { + math: "\\mathmit{o}" +}, + "𝓹": { + math: "\\mathmit{p}" +}, + "𝓺": { + math: "\\mathmit{q}" +}, + "𝓻": { + math: "\\mathmit{r}" +}, + "𝓼": { + math: "\\mathmit{s}" +}, + "𝓽": { + math: "\\mathmit{t}" +}, + "𝓾": { + math: "\\mathmit{u}" +}, + "𝓿": { + math: "\\mathmit{v}" +}, + "𝔀": { + math: "\\mathmit{w}" +}, + "𝔁": { + math: "\\mathmit{x}" +}, + "𝔂": { + math: "\\mathmit{y}" +}, + "𝔃": { + math: "\\mathmit{z}" +}, + "𝔄": { + math: "\\mathfrak{A}" +}, + "𝔅": { + math: "\\mathfrak{B}" +}, + "𝔇": { + math: "\\mathfrak{D}" +}, + "𝔈": { + math: "\\mathfrak{E}" +}, + "𝔉": { + math: "\\mathfrak{F}" +}, + "𝔊": { + math: "\\mathfrak{G}" +}, + "𝔍": { + math: "\\mathfrak{J}" +}, + "𝔎": { + math: "\\mathfrak{K}" +}, + "𝔏": { + math: "\\mathfrak{L}" +}, + "𝔐": { + math: "\\mathfrak{M}" +}, + "𝔑": { + math: "\\mathfrak{N}" +}, + "𝔒": { + math: "\\mathfrak{O}" +}, + "𝔓": { + math: "\\mathfrak{P}" +}, + "𝔔": { + math: "\\mathfrak{Q}" +}, + "𝔖": { + math: "\\mathfrak{S}" +}, + "𝔗": { + math: "\\mathfrak{T}" +}, + "𝔘": { + math: "\\mathfrak{U}" +}, + "𝔙": { + math: "\\mathfrak{V}" +}, + "𝔚": { + math: "\\mathfrak{W}" +}, + "𝔛": { + math: "\\mathfrak{X}" +}, + "𝔜": { + math: "\\mathfrak{Y}" +}, + "𝔞": { + math: "\\mathfrak{a}" +}, + "𝔟": { + math: "\\mathfrak{b}" +}, + "𝔠": { + math: "\\mathfrak{c}" +}, + "𝔡": { + math: "\\mathfrak{d}" +}, + "𝔢": { + math: "\\mathfrak{e}" +}, + "𝔣": { + math: "\\mathfrak{f}" +}, + "𝔤": { + math: "\\mathfrak{g}" +}, + "𝔥": { + math: "\\mathfrak{h}" +}, + "𝔦": { + math: "\\mathfrak{i}" +}, + "𝔧": { + math: "\\mathfrak{j}" +}, + "𝔨": { + math: "\\mathfrak{k}" +}, + "𝔩": { + math: "\\mathfrak{l}" +}, + "𝔪": { + math: "\\mathfrak{m}" +}, + "𝔫": { + math: "\\mathfrak{n}" +}, + "𝔬": { + math: "\\mathfrak{o}" +}, + "𝔭": { + math: "\\mathfrak{p}" +}, + "𝔮": { + math: "\\mathfrak{q}" +}, + "𝔯": { + math: "\\mathfrak{r}" +}, + "𝔰": { + math: "\\mathfrak{s}" +}, + "𝔱": { + math: "\\mathfrak{t}" +}, + "𝔲": { + math: "\\mathfrak{u}" +}, + "𝔳": { + math: "\\mathfrak{v}" +}, + "𝔴": { + math: "\\mathfrak{w}" +}, + "𝔵": { + math: "\\mathfrak{x}" +}, + "𝔶": { + math: "\\mathfrak{y}" +}, + "𝔷": { + math: "\\mathfrak{z}" +}, + "𝔸": { + math: "\\mathbb{A}" +}, + "𝔹": { + math: "\\mathbb{B}" +}, + "𝔻": { + math: "\\mathbb{D}" +}, + "𝔼": { + math: "\\mathbb{E}" +}, + "𝔽": { + math: "\\mathbb{F}" +}, + "𝔾": { + math: "\\mathbb{G}" +}, + "𝕀": { + math: "\\mathbb{I}" +}, + "𝕁": { + math: "\\mathbb{J}" +}, + "𝕂": { + math: "\\mathbb{K}" +}, + "𝕃": { + math: "\\mathbb{L}" +}, + "𝕄": { + math: "\\mathbb{M}" +}, + "𝕆": { + math: "\\mathbb{O}" +}, + "𝕊": { + math: "\\mathbb{S}" +}, + "𝕋": { + math: "\\mathbb{T}" +}, + "𝕌": { + math: "\\mathbb{U}" +}, + "𝕍": { + math: "\\mathbb{V}" +}, + "𝕎": { + math: "\\mathbb{W}" +}, + "𝕏": { + math: "\\mathbb{X}" +}, + "𝕐": { + math: "\\mathbb{Y}" +}, + "𝕒": { + math: "\\mathbb{a}" +}, + "𝕓": { + math: "\\mathbb{b}" +}, + "𝕔": { + math: "\\mathbb{c}" +}, + "𝕕": { + math: "\\mathbb{d}" +}, + "𝕖": { + math: "\\mathbb{e}" +}, + "𝕗": { + math: "\\mathbb{f}" +}, + "𝕘": { + math: "\\mathbb{g}" +}, + "𝕙": { + math: "\\mathbb{h}" +}, + "𝕚": { + math: "\\mathbb{i}" +}, + "𝕛": { + math: "\\mathbb{j}" +}, + "𝕜": { + math: "\\mathbb{k}" +}, + "𝕝": { + math: "\\mathbb{l}" +}, + "𝕞": { + math: "\\mathbb{m}" +}, + "𝕟": { + math: "\\mathbb{n}" +}, + "𝕠": { + math: "\\mathbb{o}" +}, + "𝕡": { + math: "\\mathbb{p}" +}, + "𝕢": { + math: "\\mathbb{q}" +}, + "𝕣": { + math: "\\mathbb{r}" +}, + "𝕤": { + math: "\\mathbb{s}" +}, + "𝕥": { + math: "\\mathbb{t}" +}, + "𝕦": { + math: "\\mathbb{u}" +}, + "𝕧": { + math: "\\mathbb{v}" +}, + "𝕨": { + math: "\\mathbb{w}" +}, + "𝕩": { + math: "\\mathbb{x}" +}, + "𝕪": { + math: "\\mathbb{y}" +}, + "𝕫": { + math: "\\mathbb{z}" +}, + "𝕬": { + math: "\\mathslbb{A}" +}, + "𝕭": { + math: "\\mathslbb{B}" +}, + "𝕮": { + math: "\\mathslbb{C}" +}, + "𝕯": { + math: "\\mathslbb{D}" +}, + "𝕰": { + math: "\\mathslbb{E}" +}, + "𝕱": { + math: "\\mathslbb{F}" +}, + "𝕲": { + math: "\\mathslbb{G}" +}, + "𝕳": { + math: "\\mathslbb{H}" +}, + "𝕴": { + math: "\\mathslbb{I}" +}, + "𝕵": { + math: "\\mathslbb{J}" +}, + "𝕶": { + math: "\\mathslbb{K}" +}, + "𝕷": { + math: "\\mathslbb{L}" +}, + "𝕸": { + math: "\\mathslbb{M}" +}, + "𝕹": { + math: "\\mathslbb{N}" +}, + "𝕺": { + math: "\\mathslbb{O}" +}, + "𝕻": { + math: "\\mathslbb{P}" +}, + "𝕼": { + math: "\\mathslbb{Q}" +}, + "𝕽": { + math: "\\mathslbb{R}" +}, + "𝕾": { + math: "\\mathslbb{S}" +}, + "𝕿": { + math: "\\mathslbb{T}" +}, + "𝖀": { + math: "\\mathslbb{U}" +}, + "𝖁": { + math: "\\mathslbb{V}" +}, + "𝖂": { + math: "\\mathslbb{W}" +}, + "𝖃": { + math: "\\mathslbb{X}" +}, + "𝖄": { + math: "\\mathslbb{Y}" +}, + "𝖅": { + math: "\\mathslbb{Z}" +}, + "𝖆": { + math: "\\mathslbb{a}" +}, + "𝖇": { + math: "\\mathslbb{b}" +}, + "𝖈": { + math: "\\mathslbb{c}" +}, + "𝖉": { + math: "\\mathslbb{d}" +}, + "𝖊": { + math: "\\mathslbb{e}" +}, + "𝖋": { + math: "\\mathslbb{f}" +}, + "𝖌": { + math: "\\mathslbb{g}" +}, + "𝖍": { + math: "\\mathslbb{h}" +}, + "𝖎": { + math: "\\mathslbb{i}" +}, + "𝖏": { + math: "\\mathslbb{j}" +}, + "𝖐": { + math: "\\mathslbb{k}" +}, + "𝖑": { + math: "\\mathslbb{l}" +}, + "𝖒": { + math: "\\mathslbb{m}" +}, + "𝖓": { + math: "\\mathslbb{n}" +}, + "𝖔": { + math: "\\mathslbb{o}" +}, + "𝖕": { + math: "\\mathslbb{p}" +}, + "𝖖": { + math: "\\mathslbb{q}" +}, + "𝖗": { + math: "\\mathslbb{r}" +}, + "𝖘": { + math: "\\mathslbb{s}" +}, + "𝖙": { + math: "\\mathslbb{t}" +}, + "𝖚": { + math: "\\mathslbb{u}" +}, + "𝖛": { + math: "\\mathslbb{v}" +}, + "𝖜": { + math: "\\mathslbb{w}" +}, + "𝖝": { + math: "\\mathslbb{x}" +}, + "𝖞": { + math: "\\mathslbb{y}" +}, + "𝖟": { + math: "\\mathslbb{z}" +}, + "𝖠": { + math: "\\mathsf{A}" +}, + "𝖡": { + math: "\\mathsf{B}" +}, + "𝖢": { + math: "\\mathsf{C}" +}, + "𝖣": { + math: "\\mathsf{D}" +}, + "𝖤": { + math: "\\mathsf{E}" +}, + "𝖥": { + math: "\\mathsf{F}" +}, + "𝖦": { + math: "\\mathsf{G}" +}, + "𝖧": { + math: "\\mathsf{H}" +}, + "𝖨": { + math: "\\mathsf{I}" +}, + "𝖩": { + math: "\\mathsf{J}" +}, + "𝖪": { + math: "\\mathsf{K}" +}, + "𝖫": { + math: "\\mathsf{L}" +}, + "𝖬": { + math: "\\mathsf{M}" +}, + "𝖭": { + math: "\\mathsf{N}" +}, + "𝖮": { + math: "\\mathsf{O}" +}, + "𝖯": { + math: "\\mathsf{P}" +}, + "𝖰": { + math: "\\mathsf{Q}" +}, + "𝖱": { + math: "\\mathsf{R}" +}, + "𝖲": { + math: "\\mathsf{S}" +}, + "𝖳": { + math: "\\mathsf{T}" +}, + "𝖴": { + math: "\\mathsf{U}" +}, + "𝖵": { + math: "\\mathsf{V}" +}, + "𝖶": { + math: "\\mathsf{W}" +}, + "𝖷": { + math: "\\mathsf{X}" +}, + "𝖸": { + math: "\\mathsf{Y}" +}, + "𝖹": { + math: "\\mathsf{Z}" +}, + "𝖺": { + math: "\\mathsf{a}" +}, + "𝖻": { + math: "\\mathsf{b}" +}, + "𝖼": { + math: "\\mathsf{c}" +}, + "𝖽": { + math: "\\mathsf{d}" +}, + "𝖾": { + math: "\\mathsf{e}" +}, + "𝖿": { + math: "\\mathsf{f}" +}, + "𝗀": { + math: "\\mathsf{g}" +}, + "𝗁": { + math: "\\mathsf{h}" +}, + "𝗂": { + math: "\\mathsf{i}" +}, + "𝗃": { + math: "\\mathsf{j}" +}, + "𝗄": { + math: "\\mathsf{k}" +}, + "𝗅": { + math: "\\mathsf{l}" +}, + "𝗆": { + math: "\\mathsf{m}" +}, + "𝗇": { + math: "\\mathsf{n}" +}, + "𝗈": { + math: "\\mathsf{o}" +}, + "𝗉": { + math: "\\mathsf{p}" +}, + "𝗊": { + math: "\\mathsf{q}" +}, + "𝗋": { + math: "\\mathsf{r}" +}, + "𝗌": { + math: "\\mathsf{s}" +}, + "𝗍": { + math: "\\mathsf{t}" +}, + "𝗎": { + math: "\\mathsf{u}" +}, + "𝗏": { + math: "\\mathsf{v}" +}, + "𝗐": { + math: "\\mathsf{w}" +}, + "𝗑": { + math: "\\mathsf{x}" +}, + "𝗒": { + math: "\\mathsf{y}" +}, + "𝗓": { + math: "\\mathsf{z}" +}, + "𝗔": { + math: "\\mathsfbf{A}" +}, + "𝗕": { + math: "\\mathsfbf{B}" +}, + "𝗖": { + math: "\\mathsfbf{C}" +}, + "𝗗": { + math: "\\mathsfbf{D}" +}, + "𝗘": { + math: "\\mathsfbf{E}" +}, + "𝗙": { + math: "\\mathsfbf{F}" +}, + "𝗚": { + math: "\\mathsfbf{G}" +}, + "𝗛": { + math: "\\mathsfbf{H}" +}, + "𝗜": { + math: "\\mathsfbf{I}" +}, + "𝗝": { + math: "\\mathsfbf{J}" +}, + "𝗞": { + math: "\\mathsfbf{K}" +}, + "𝗟": { + math: "\\mathsfbf{L}" +}, + "𝗠": { + math: "\\mathsfbf{M}" +}, + "𝗡": { + math: "\\mathsfbf{N}" +}, + "𝗢": { + math: "\\mathsfbf{O}" +}, + "𝗣": { + math: "\\mathsfbf{P}" +}, + "𝗤": { + math: "\\mathsfbf{Q}" +}, + "𝗥": { + math: "\\mathsfbf{R}" +}, + "𝗦": { + math: "\\mathsfbf{S}" +}, + "𝗧": { + math: "\\mathsfbf{T}" +}, + "𝗨": { + math: "\\mathsfbf{U}" +}, + "𝗩": { + math: "\\mathsfbf{V}" +}, + "𝗪": { + math: "\\mathsfbf{W}" +}, + "𝗫": { + math: "\\mathsfbf{X}" +}, + "𝗬": { + math: "\\mathsfbf{Y}" +}, + "𝗭": { + math: "\\mathsfbf{Z}" +}, + "𝗮": { + math: "\\mathsfbf{a}" +}, + "𝗯": { + math: "\\mathsfbf{b}" +}, + "𝗰": { + math: "\\mathsfbf{c}" +}, + "𝗱": { + math: "\\mathsfbf{d}" +}, + "𝗲": { + math: "\\mathsfbf{e}" +}, + "𝗳": { + math: "\\mathsfbf{f}" +}, + "𝗴": { + math: "\\mathsfbf{g}" +}, + "𝗵": { + math: "\\mathsfbf{h}" +}, + "𝗶": { + math: "\\mathsfbf{i}" +}, + "𝗷": { + math: "\\mathsfbf{j}" +}, + "𝗸": { + math: "\\mathsfbf{k}" +}, + "𝗹": { + math: "\\mathsfbf{l}" +}, + "𝗺": { + math: "\\mathsfbf{m}" +}, + "𝗻": { + math: "\\mathsfbf{n}" +}, + "𝗼": { + math: "\\mathsfbf{o}" +}, + "𝗽": { + math: "\\mathsfbf{p}" +}, + "𝗾": { + math: "\\mathsfbf{q}" +}, + "𝗿": { + math: "\\mathsfbf{r}" +}, + "𝘀": { + math: "\\mathsfbf{s}" +}, + "𝘁": { + math: "\\mathsfbf{t}" +}, + "𝘂": { + math: "\\mathsfbf{u}" +}, + "𝘃": { + math: "\\mathsfbf{v}" +}, + "𝘄": { + math: "\\mathsfbf{w}" +}, + "𝘅": { + math: "\\mathsfbf{x}" +}, + "𝘆": { + math: "\\mathsfbf{y}" +}, + "𝘇": { + math: "\\mathsfbf{z}" +}, + "𝘈": { + math: "\\mathsfsl{A}" +}, + "𝘉": { + math: "\\mathsfsl{B}" +}, + "𝘊": { + math: "\\mathsfsl{C}" +}, + "𝘋": { + math: "\\mathsfsl{D}" +}, + "𝘌": { + math: "\\mathsfsl{E}" +}, + "𝘍": { + math: "\\mathsfsl{F}" +}, + "𝘎": { + math: "\\mathsfsl{G}" +}, + "𝘏": { + math: "\\mathsfsl{H}" +}, + "𝘐": { + math: "\\mathsfsl{I}" +}, + "𝘑": { + math: "\\mathsfsl{J}" +}, + "𝘒": { + math: "\\mathsfsl{K}" +}, + "𝘓": { + math: "\\mathsfsl{L}" +}, + "𝘔": { + math: "\\mathsfsl{M}" +}, + "𝘕": { + math: "\\mathsfsl{N}" +}, + "𝘖": { + math: "\\mathsfsl{O}" +}, + "𝘗": { + math: "\\mathsfsl{P}" +}, + "𝘘": { + math: "\\mathsfsl{Q}" +}, + "𝘙": { + math: "\\mathsfsl{R}" +}, + "𝘚": { + math: "\\mathsfsl{S}" +}, + "𝘛": { + math: "\\mathsfsl{T}" +}, + "𝘜": { + math: "\\mathsfsl{U}" +}, + "𝘝": { + math: "\\mathsfsl{V}" +}, + "𝘞": { + math: "\\mathsfsl{W}" +}, + "𝘟": { + math: "\\mathsfsl{X}" +}, + "𝘠": { + math: "\\mathsfsl{Y}" +}, + "𝘡": { + math: "\\mathsfsl{Z}" +}, + "𝘢": { + math: "\\mathsfsl{a}" +}, + "𝘣": { + math: "\\mathsfsl{b}" +}, + "𝘤": { + math: "\\mathsfsl{c}" +}, + "𝘥": { + math: "\\mathsfsl{d}" +}, + "𝘦": { + math: "\\mathsfsl{e}" +}, + "𝘧": { + math: "\\mathsfsl{f}" +}, + "𝘨": { + math: "\\mathsfsl{g}" +}, + "𝘩": { + math: "\\mathsfsl{h}" +}, + "𝘪": { + math: "\\mathsfsl{i}" +}, + "𝘫": { + math: "\\mathsfsl{j}" +}, + "𝘬": { + math: "\\mathsfsl{k}" +}, + "𝘭": { + math: "\\mathsfsl{l}" +}, + "𝘮": { + math: "\\mathsfsl{m}" +}, + "𝘯": { + math: "\\mathsfsl{n}" +}, + "𝘰": { + math: "\\mathsfsl{o}" +}, + "𝘱": { + math: "\\mathsfsl{p}" +}, + "𝘲": { + math: "\\mathsfsl{q}" +}, + "𝘳": { + math: "\\mathsfsl{r}" +}, + "𝘴": { + math: "\\mathsfsl{s}" +}, + "𝘵": { + math: "\\mathsfsl{t}" +}, + "𝘶": { + math: "\\mathsfsl{u}" +}, + "𝘷": { + math: "\\mathsfsl{v}" +}, + "𝘸": { + math: "\\mathsfsl{w}" +}, + "𝘹": { + math: "\\mathsfsl{x}" +}, + "𝘺": { + math: "\\mathsfsl{y}" +}, + "𝘻": { + math: "\\mathsfsl{z}" +}, + "𝘼": { + math: "\\mathsfbfsl{A}" +}, + "𝘽": { + math: "\\mathsfbfsl{B}" +}, + "𝘾": { + math: "\\mathsfbfsl{C}" +}, + "𝘿": { + math: "\\mathsfbfsl{D}" +}, + "𝙀": { + math: "\\mathsfbfsl{E}" +}, + "𝙁": { + math: "\\mathsfbfsl{F}" +}, + "𝙂": { + math: "\\mathsfbfsl{G}" +}, + "𝙃": { + math: "\\mathsfbfsl{H}" +}, + "𝙄": { + math: "\\mathsfbfsl{I}" +}, + "𝙅": { + math: "\\mathsfbfsl{J}" +}, + "𝙆": { + math: "\\mathsfbfsl{K}" +}, + "𝙇": { + math: "\\mathsfbfsl{L}" +}, + "𝙈": { + math: "\\mathsfbfsl{M}" +}, + "𝙉": { + math: "\\mathsfbfsl{N}" +}, + "𝙊": { + math: "\\mathsfbfsl{O}" +}, + "𝙋": { + math: "\\mathsfbfsl{P}" +}, + "𝙌": { + math: "\\mathsfbfsl{Q}" +}, + "𝙍": { + math: "\\mathsfbfsl{R}" +}, + "𝙎": { + math: "\\mathsfbfsl{S}" +}, + "𝙏": { + math: "\\mathsfbfsl{T}" +}, + "𝙐": { + math: "\\mathsfbfsl{U}" +}, + "𝙑": { + math: "\\mathsfbfsl{V}" +}, + "𝙒": { + math: "\\mathsfbfsl{W}" +}, + "𝙓": { + math: "\\mathsfbfsl{X}" +}, + "𝙔": { + math: "\\mathsfbfsl{Y}" +}, + "𝙕": { + math: "\\mathsfbfsl{Z}" +}, + "𝙖": { + math: "\\mathsfbfsl{a}" +}, + "𝙗": { + math: "\\mathsfbfsl{b}" +}, + "𝙘": { + math: "\\mathsfbfsl{c}" +}, + "𝙙": { + math: "\\mathsfbfsl{d}" +}, + "𝙚": { + math: "\\mathsfbfsl{e}" +}, + "𝙛": { + math: "\\mathsfbfsl{f}" +}, + "𝙜": { + math: "\\mathsfbfsl{g}" +}, + "𝙝": { + math: "\\mathsfbfsl{h}" +}, + "𝙞": { + math: "\\mathsfbfsl{i}" +}, + "𝙟": { + math: "\\mathsfbfsl{j}" +}, + "𝙠": { + math: "\\mathsfbfsl{k}" +}, + "𝙡": { + math: "\\mathsfbfsl{l}" +}, + "𝙢": { + math: "\\mathsfbfsl{m}" +}, + "𝙣": { + math: "\\mathsfbfsl{n}" +}, + "𝙤": { + math: "\\mathsfbfsl{o}" +}, + "𝙥": { + math: "\\mathsfbfsl{p}" +}, + "𝙦": { + math: "\\mathsfbfsl{q}" +}, + "𝙧": { + math: "\\mathsfbfsl{r}" +}, + "𝙨": { + math: "\\mathsfbfsl{s}" +}, + "𝙩": { + math: "\\mathsfbfsl{t}" +}, + "𝙪": { + math: "\\mathsfbfsl{u}" +}, + "𝙫": { + math: "\\mathsfbfsl{v}" +}, + "𝙬": { + math: "\\mathsfbfsl{w}" +}, + "𝙭": { + math: "\\mathsfbfsl{x}" +}, + "𝙮": { + math: "\\mathsfbfsl{y}" +}, + "𝙯": { + math: "\\mathsfbfsl{z}" +}, + "𝙰": { + math: "\\mathtt{A}" +}, + "𝙱": { + math: "\\mathtt{B}" +}, + "𝙲": { + math: "\\mathtt{C}" +}, + "𝙳": { + math: "\\mathtt{D}" +}, + "𝙴": { + math: "\\mathtt{E}" +}, + "𝙵": { + math: "\\mathtt{F}" +}, + "𝙶": { + math: "\\mathtt{G}" +}, + "𝙷": { + math: "\\mathtt{H}" +}, + "𝙸": { + math: "\\mathtt{I}" +}, + "𝙹": { + math: "\\mathtt{J}" +}, + "𝙺": { + math: "\\mathtt{K}" +}, + "𝙻": { + math: "\\mathtt{L}" +}, + "𝙼": { + math: "\\mathtt{M}" +}, + "𝙽": { + math: "\\mathtt{N}" +}, + "𝙾": { + math: "\\mathtt{O}" +}, + "𝙿": { + math: "\\mathtt{P}" +}, + "𝚀": { + math: "\\mathtt{Q}" +}, + "𝚁": { + math: "\\mathtt{R}" +}, + "𝚂": { + math: "\\mathtt{S}" +}, + "𝚃": { + math: "\\mathtt{T}" +}, + "𝚄": { + math: "\\mathtt{U}" +}, + "𝚅": { + math: "\\mathtt{V}" +}, + "𝚆": { + math: "\\mathtt{W}" +}, + "𝚇": { + math: "\\mathtt{X}" +}, + "𝚈": { + math: "\\mathtt{Y}" +}, + "𝚉": { + math: "\\mathtt{Z}" +}, + "𝚊": { + math: "\\mathtt{a}" +}, + "𝚋": { + math: "\\mathtt{b}" +}, + "𝚌": { + math: "\\mathtt{c}" +}, + "𝚍": { + math: "\\mathtt{d}" +}, + "𝚎": { + math: "\\mathtt{e}" +}, + "𝚏": { + math: "\\mathtt{f}" +}, + "𝚐": { + math: "\\mathtt{g}" +}, + "𝚑": { + math: "\\mathtt{h}" +}, + "𝚒": { + math: "\\mathtt{i}" +}, + "𝚓": { + math: "\\mathtt{j}" +}, + "𝚔": { + math: "\\mathtt{k}" +}, + "𝚕": { + math: "\\mathtt{l}" +}, + "𝚖": { + math: "\\mathtt{m}" +}, + "𝚗": { + math: "\\mathtt{n}" +}, + "𝚘": { + math: "\\mathtt{o}" +}, + "𝚙": { + math: "\\mathtt{p}" +}, + "𝚚": { + math: "\\mathtt{q}" +}, + "𝚛": { + math: "\\mathtt{r}" +}, + "𝚜": { + math: "\\mathtt{s}" +}, + "𝚝": { + math: "\\mathtt{t}" +}, + "𝚞": { + math: "\\mathtt{u}" +}, + "𝚟": { + math: "\\mathtt{v}" +}, + "𝚠": { + math: "\\mathtt{w}" +}, + "𝚡": { + math: "\\mathtt{x}" +}, + "𝚢": { + math: "\\mathtt{y}" +}, + "𝚣": { + math: "\\mathtt{z}" +}, + "𝚤": { + math: "\\imath" +}, + "𝚥": { + math: "\\jmath" +}, + "𝚨": { + math: "\\mathbf{A}" +}, + "𝚩": { + math: "\\mathbf{B}" +}, + "𝚪": { + math: "\\mathbf{\\Gamma}" +}, + "𝚫": { + math: "\\mathbf{\\Delta}" +}, + "𝚬": { + math: "\\mathbf{E}" +}, + "𝚭": { + math: "\\mathbf{Z}" +}, + "𝚮": { + math: "\\mathbf{H}" +}, + "𝚯": { + math: "\\mathbf{\\Theta}" +}, + "𝚰": { + math: "\\mathbf{I}" +}, + "𝚱": { + math: "\\mathbf{K}" +}, + "𝚲": { + math: "\\mathbf{\\Lambda}" +}, + "𝚳": { + math: "M" +}, + "𝚴": { + math: "N" +}, + "𝚵": { + math: "\\mathbf{\\Xi}" +}, + "𝚶": { + math: "O" +}, + "𝚷": { + math: "\\mathbf{\\Pi}" +}, + "𝚸": { + math: "\\mathbf{P}" +}, + "𝚹": { + math: "\\mathbf{\\vartheta}" +}, + "𝚺": { + math: "\\mathbf{\\Sigma}" +}, + "𝚻": { + math: "\\mathbf{T}" +}, + "𝚼": { + math: "\\mathbf{\\Upsilon}" +}, + "𝚽": { + math: "\\mathbf{\\Phi}" +}, + "𝚾": { + math: "\\mathbf{X}" +}, + "𝚿": { + math: "\\mathbf{\\Psi}" +}, + "𝛀": { + math: "\\mathbf{\\Omega}" +}, + "𝛁": { + math: "\\mathbf{\\nabla}" +}, + "𝛂": { + math: "\\mathbf{\\alpha}" +}, + "𝛃": { + math: "\\mathbf{\\beta}" +}, + "𝛄": { + math: "\\mathbf{\\gamma}" +}, + "𝛅": { + math: "\\mathbf{\\delta}" +}, + "𝛆": { + math: "\\mathbf{\\epsilon}" +}, + "𝛇": { + math: "\\mathbf{\\zeta}" +}, + "𝛈": { + math: "\\mathbf{\\eta}" +}, + "𝛉": { + math: "\\mathbf{\\theta}" +}, + "𝛊": { + math: "\\mathbf{I}" +}, + "𝛋": { + math: "\\mathbf{K}" +}, + "𝛌": { + math: "\\mathbf{\\lambda}" +}, + "𝛍": { + math: "M" +}, + "𝛎": { + math: "N" +}, + "𝛏": { + math: "\\mathbf{\\xi}" +}, + "𝛐": { + math: "O" +}, + "𝛑": { + math: "\\mathbf{\\pi}" +}, + "𝛒": { + math: "\\mathbf{P}" +}, + "𝛓": { + math: "\\mathbf{\\varsigma}" +}, + "𝛔": { + math: "\\mathbf{\\sigma}" +}, + "𝛕": { + math: "\\mathbf{T}" +}, + "𝛖": { + math: "\\mathbf{\\upsilon}" +}, + "𝛗": { + math: "\\mathbf{\\phi}" +}, + "𝛘": { + math: "\\mathbf{X}" +}, + "𝛙": { + math: "\\mathbf{\\psi}" +}, + "𝛚": { + math: "\\mathbf{\\omega}" +}, + "𝛛": { + math: "\\partial" +}, + "𝛜": { + math: "\\in" +}, + "𝛝": { + math: "\\mathbf{\\vartheta}" +}, + "𝛞": { + math: "\\mathbf{\\varkappa}" +}, + "𝛟": { + math: "\\mathbf{\\phi}" +}, + "𝛠": { + math: "\\mathbf{\\varrho}" +}, + "𝛡": { + math: "\\mathbf{\\varpi}" +}, + "𝛢": { + math: "\\mathsl{A}" +}, + "𝛣": { + math: "\\mathsl{B}" +}, + "𝛤": { + math: "\\mathsl{\\Gamma}" +}, + "𝛥": { + math: "\\mathsl{\\Delta}" +}, + "𝛦": { + math: "\\mathsl{E}" +}, + "𝛧": { + math: "\\mathsl{Z}" +}, + "𝛨": { + math: "\\mathsl{H}" +}, + "𝛩": { + math: "\\mathsl{\\Theta}" +}, + "𝛪": { + math: "\\mathsl{I}" +}, + "𝛫": { + math: "\\mathsl{K}" +}, + "𝛬": { + math: "\\mathsl{\\Lambda}" +}, + "𝛭": { + math: "M" +}, + "𝛮": { + math: "N" +}, + "𝛯": { + math: "\\mathsl{\\Xi}" +}, + "𝛰": { + math: "O" +}, + "𝛱": { + math: "\\mathsl{\\Pi}" +}, + "𝛲": { + math: "\\mathsl{P}" +}, + "𝛳": { + math: "\\mathsl{\\Theta}" +}, + "𝛴": { + math: "\\mathsl{\\Sigma}" +}, + "𝛵": { + math: "\\mathsl{T}" +}, + "𝛶": { + math: "\\mathsl{\\Upsilon}" +}, + "𝛷": { + math: "\\mathsl{\\Phi}" +}, + "𝛸": { + math: "\\mathsl{X}" +}, + "𝛹": { + math: "\\mathsl{\\Psi}" +}, + "𝛺": { + math: "\\mathsl{\\Omega}" +}, + "𝛻": { + math: "\\mathsl{\\nabla}" +}, + "𝛼": { + math: "\\mathsl{A}" +}, + "𝛽": { + math: "\\mathsl{B}" +}, + "𝛾": { + math: "\\mathsl{\\gamma}" +}, + "𝛿": { + math: "\\mathsl{\\delta}" +}, + "𝜀": { + math: "\\mathsl{E}" +}, + "𝜁": { + math: "\\mathsl{Z}" +}, + "𝜂": { + math: "\\mathsl{H}" +}, + "𝜃": { + math: "\\mathsl{\\theta}" +}, + "𝜄": { + math: "\\mathsl{I}" +}, + "𝜅": { + math: "\\mathsl{K}" +}, + "𝜆": { + math: "\\mathsl{\\lambda}" +}, + "𝜇": { + math: "\\mu" +}, + "𝜈": { + math: "\\nu" +}, + "𝜉": { + math: "\\mathsl{\\xi}" +}, + "𝜊": { + math: "o" +}, + "𝜋": { + math: "\\mathsl{\\pi}" +}, + "𝜌": { + math: "\\mathsl{P}" +}, + "𝜍": { + math: "\\mathsl{\\varsigma}" +}, + "𝜎": { + math: "\\mathsl{\\sigma}" +}, + "𝜏": { + math: "\\mathsl{T}" +}, + "𝜐": { + math: "\\mathsl{\\upsilon}" +}, + "𝜑": { + math: "\\mathsl{\\varphi}" +}, + "𝜒": { + math: "\\mathsl{X}" +}, + "𝜓": { + math: "\\mathsl{\\psi}" +}, + "𝜔": { + math: "\\mathsl{\\omega}" +}, + "𝜕": { + math: "\\partial" +}, + "𝜖": { + math: "\\in" +}, + "𝜗": { + math: "\\mathsl{\\vartheta}" +}, + "𝜘": { + math: "\\mathsl{\\varkappa}" +}, + "𝜙": { + math: "\\mathsl{\\phi}" +}, + "𝜚": { + math: "\\mathsl{\\varrho}" +}, + "𝜛": { + math: "\\mathsl{\\varpi}" +}, + "𝜜": { + math: "\\mathbit{A}" +}, + "𝜝": { + math: "\\mathbit{B}" +}, + "𝜞": { + math: "\\mathbit{\\Gamma}" +}, + "𝜟": { + math: "\\mathbit{\\Delta}" +}, + "𝜠": { + math: "\\mathbit{E}" +}, + "𝜡": { + math: "\\mathbit{Z}" +}, + "𝜢": { + math: "\\mathbit{H}" +}, + "𝜣": { + math: "\\mathbit{\\Theta}" +}, + "𝜤": { + math: "\\mathbit{I}" +}, + "𝜥": { + math: "\\mathbit{K}" +}, + "𝜦": { + math: "\\mathbit{\\Lambda}" +}, + "𝜧": { + math: "M" +}, + "𝜨": { + math: "N" +}, + "𝜩": { + math: "\\mathbit{\\Xi}" +}, + "𝜪": { + math: "O" +}, + "𝜫": { + math: "\\mathbit{\\Pi}" +}, + "𝜬": { + math: "\\mathbit{P}" +}, + "𝜭": { + math: "\\mathbit{O}" +}, + "𝜮": { + math: "\\mathbit{\\Sigma}" +}, + "𝜯": { + math: "\\mathbit{T}" +}, + "𝜰": { + math: "\\mathbit{\\Upsilon}" +}, + "𝜱": { + math: "\\mathbit{\\Phi}" +}, + "𝜲": { + math: "\\mathbit{X}" +}, + "𝜳": { + math: "\\mathbit{\\Psi}" +}, + "𝜴": { + math: "\\mathbit{\\Omega}" +}, + "𝜵": { + math: "\\mathbit{\\nabla}" +}, + "𝜶": { + math: "\\mathbit{\\alpha}" +}, + "𝜷": { + math: "\\mathbit{\\beta}" +}, + "𝜸": { + math: "\\mathbit{\\gamma}" +}, + "𝜹": { + math: "\\mathbit{\\delta}" +}, + "𝜺": { + math: "\\mathbit{\\epsilon}" +}, + "𝜻": { + math: "\\mathbit{\\zeta}" +}, + "𝜼": { + math: "\\mathbit{\\eta}" +}, + "𝜽": { + math: "\\mathbit{\\theta}" +}, + "𝜾": { + math: "\\mathbit{\\imath}" +}, + "𝜿": { + math: "\\mathbit{\\kappa}" +}, + "𝝀": { + math: "\\mathbit{\\lambda}" +}, + "𝝁": { + math: "\\mu" +}, + "𝝂": { + math: "N" +}, + "𝝃": { + math: "\\mathbit{\\xi}" +}, + "𝝄": { + math: "O" +}, + "𝝅": { + math: "\\mathbit{\\pi}" +}, + "𝝆": { + math: "\\mathbit{\\rho}" +}, + "𝝇": { + math: "\\mathbit{\\varsigma}" +}, + "𝝈": { + math: "\\mathbit{\\sigma}" +}, + "𝝉": { + math: "\\mathbit{\\tau}" +}, + "𝝊": { + math: "\\mathbit{\\upsilon}" +}, + "𝝋": { + math: "\\mathbit{\\varphi}" +}, + "𝝌": { + math: "\\mathbit{\\chi}" +}, + "𝝍": { + math: "\\mathbit{\\psi}" +}, + "𝝎": { + math: "\\mathbit{\\omega}" +}, + "𝝏": { + math: "\\partial" +}, + "𝝐": { + math: "\\in" +}, + "𝝑": { + math: "\\mathbit{\\vartheta}" +}, + "𝝒": { + math: "\\mathbit{\\varkappa}" +}, + "𝝓": { + math: "\\mathbit{\\phi}" +}, + "𝝔": { + math: "\\mathbit{\\varrho}" +}, + "𝝕": { + math: "\\mathbit{\\varpi}" +}, + "𝝖": { + math: "\\mathsfbf{A}" +}, + "𝝗": { + math: "\\mathsfbf{B}" +}, + "𝝘": { + math: "\\mathsfbf{\\Gamma}" +}, + "𝝙": { + math: "\\mathsfbf{\\Delta}" +}, + "𝝚": { + math: "\\mathsfbf{E}" +}, + "𝝛": { + math: "\\mathsfbf{Z}" +}, + "𝝜": { + math: "\\mathsfbf{H}" +}, + "𝝝": { + math: "\\mathsfbf{\\Theta}" +}, + "𝝞": { + math: "\\mathsfbf{I}" +}, + "𝝟": { + math: "\\mathsfbf{K}" +}, + "𝝠": { + math: "\\mathsfbf{\\Lambda}" +}, + "𝝡": { + math: "M" +}, + "𝝢": { + math: "N" +}, + "𝝣": { + math: "\\mathsfbf{\\Xi}" +}, + "𝝤": { + math: "O" +}, + "𝝥": { + math: "\\mathsfbf{\\Pi}" +}, + "𝝦": { + math: "\\mathsfbf{P}" +}, + "𝝧": { + math: "\\mathsfbf{\\Theta}" +}, + "𝝨": { + math: "\\mathsfbf{\\Sigma}" +}, + "𝝩": { + math: "\\mathsfbf{T}" +}, + "𝝪": { + math: "\\mathsfbf{\\Upsilon}" +}, + "𝝫": { + math: "\\mathsfbf{\\Phi}" +}, + "𝝬": { + math: "\\mathsfbf{X}" +}, + "𝝭": { + math: "\\mathsfbf{\\Psi}" +}, + "𝝮": { + math: "\\mathsfbf{\\Omega}" +}, + "𝝯": { + math: "\\mathsfbf{\\nabla}" +}, + "𝝰": { + math: "\\mathsfbf{\\alpha}" +}, + "𝝱": { + math: "\\mathsfbf{\\beta}" +}, + "𝝲": { + math: "\\mathsfbf{\\gamma}" +}, + "𝝳": { + math: "\\mathsfbf{\\delta}" +}, + "𝝴": { + math: "\\mathsfbf{\\varepsilon}" +}, + "𝝵": { + math: "\\mathsfbf{\\zeta}" +}, + "𝝶": { + math: "\\mathsfbf{\\eta}" +}, + "𝝷": { + math: "\\mathsfbf{\\theta}" +}, + "𝝸": { + math: "\\mathsfbf{\\imath}" +}, + "𝝹": { + math: "\\mathsfbf{\\kappa}" +}, + "𝝺": { + math: "\\mathsfbf{\\lambda}" +}, + "𝝻": { + math: "\\mu" +}, + "𝝼": { + math: "\\nu" +}, + "𝝽": { + math: "\\mathsfbf{\\xi}" +}, + "𝝾": { + math: "o" +}, + "𝝿": { + math: "\\mathsfbf{\\pi}" +}, + "𝞀": { + math: "\\mathsfbf{\\rho}" +}, + "𝞁": { + math: "\\mathsfbf{\\varsigma}" +}, + "𝞂": { + math: "\\mathsfbf{\\sigma}" +}, + "𝞃": { + math: "\\mathsfbf{\\tau}" +}, + "𝞄": { + math: "\\mathsfbf{\\upsilon}" +}, + "𝞅": { + math: "\\mathsfbf{\\varphi}" +}, + "𝞆": { + math: "\\mathsfbf{\\chi}" +}, + "𝞇": { + math: "\\mathsfbf{\\psi}" +}, + "𝞈": { + math: "\\mathsfbf{\\omega}" +}, + "𝞉": { + math: "\\partial" +}, + "𝞊": { + math: "\\in" +}, + "𝞋": { + math: "\\mathsfbf{\\vartheta}" +}, + "𝞌": { + math: "\\mathsfbf{\\varkappa}" +}, + "𝞍": { + math: "\\mathsfbf{\\phi}" +}, + "𝞎": { + math: "\\mathsfbf{\\varrho}" +}, + "𝞏": { + math: "\\mathsfbf{\\varpi}" +}, + "𝞐": { + math: "\\mathsfbfsl{A}" +}, + "𝞑": { + math: "\\mathsfbfsl{B}" +}, + "𝞒": { + math: "\\mathsfbfsl{\\Gamma}" +}, + "𝞓": { + math: "\\mathsfbfsl{\\Delta}" +}, + "𝞔": { + math: "\\mathsfbfsl{E}" +}, + "𝞕": { + math: "\\mathsfbfsl{Z}" +}, + "𝞖": { + math: "\\mathsfbfsl{H}" +}, + "𝞗": { + math: "\\mathsfbfsl{\\Theta}" +}, + "𝞘": { + math: "\\mathsfbfsl{I}" +}, + "𝞙": { + math: "\\mathsfbfsl{K}" +}, + "𝞚": { + math: "\\mathsfbfsl{\\Lambda}" +}, + "𝞛": { + math: "\\mathsfbfsl{M}" +}, + "𝞜": { + math: "\\mathsfbfsl{N}" +}, + "𝞝": { + math: "\\mathsfbfsl{\\Xi}" +}, + "𝞞": { + math: "\\mathsfbfsl{O}" +}, + "𝞟": { + math: "\\mathsfbfsl{\\Pi}" +}, + "𝞠": { + math: "\\mathsfbfsl{P}" +}, + "𝞡": { + math: "\\mathsfbfsl{\\Theta}" +}, + "𝞢": { + math: "\\mathsfbfsl{\\Sigma}" +}, + "𝞣": { + math: "\\mathsfbfsl{T}" +}, + "𝞤": { + math: "\\mathsfbfsl{\\Upsilon}" +}, + "𝞥": { + math: "\\mathsfbfsl{\\Phi}" +}, + "𝞦": { + math: "\\mathsfbfsl{X}" +}, + "𝞧": { + math: "\\mathsfbfsl{\\Psi}" +}, + "𝞨": { + math: "\\mathsfbfsl{\\Omega}" +}, + "𝞩": { + math: "\\mathsfbfsl{\\nabla}" +}, + "𝞪": { + math: "\\mathsfbfsl{\\alpha}" +}, + "𝞫": { + math: "\\mathsfbfsl{\\beta}" +}, + "𝞬": { + math: "\\mathsfbfsl{\\gamma}" +}, + "𝞭": { + math: "\\mathsfbfsl{\\delta}" +}, + "𝞮": { + math: "\\mathsfbfsl{\\varepsilon}" +}, + "𝞯": { + math: "\\mathsfbfsl{\\zeta}" +}, + "𝞰": { + math: "\\mathsfbfsl{\\eta}" +}, + "𝞱": { + math: "\\mathsfbfsl{\\theta}" +}, + "𝞲": { + math: "\\mathsfbfsl{\\imath}" +}, + "𝞳": { + math: "\\mathsfbfsl{\\kappa}" +}, + "𝞴": { + math: "\\mathsfbfsl{\\lambda}" +}, + "𝞵": { + math: "\\mu" +}, + "𝞶": { + math: "\\nu" +}, + "𝞷": { + math: "\\mathsfbfsl{\\xi}" +}, + "𝞸": { + math: "o" +}, + "𝞹": { + math: "\\mathsfbfsl{\\pi}" +}, + "𝞺": { + math: "\\mathsfbfsl{\\rho}" +}, + "𝞻": { + math: "\\mathsfbfsl{\\varsigma}" +}, + "𝞼": { + math: "\\mathsfbfsl{\\sigma}" +}, + "𝞽": { + math: "\\mathsfbfsl{\\tau}" +}, + "𝞾": { + math: "\\mathsfbfsl{\\upsilon}" +}, + "𝞿": { + math: "\\mathsfbfsl{\\varphi}" +}, + "𝟀": { + math: "\\mathsfbfsl{\\chi}" +}, + "𝟁": { + math: "\\mathsfbfsl{\\psi}" +}, + "𝟂": { + math: "\\mathsfbfsl{\\omega}" +}, + "𝟃": { + math: "\\partial" +}, + "𝟄": { + math: "\\in" +}, + "𝟅": { + math: "\\mathsfbfsl{\\vartheta}" +}, + "𝟆": { + math: "\\mathsfbfsl{\\varkappa}" +}, + "𝟇": { + math: "\\mathsfbfsl{\\phi}" +}, + "𝟈": { + math: "\\mathsfbfsl{\\varrho}" +}, + "𝟉": { + math: "\\mathsfbfsl{\\varpi}" +}, + "𝟊": { + math: "\\mbfDigamma" +}, + "𝟋": { + math: "\\mbfdigamma" +}, + "𝟎": { + math: "\\mathbf{0}" +}, + "𝟏": { + math: "\\mathbf{1}" +}, + "𝟐": { + math: "\\mathbf{2}" +}, + "𝟑": { + math: "\\mathbf{3}" +}, + "𝟒": { + math: "\\mathbf{4}" +}, + "𝟓": { + math: "\\mathbf{5}" +}, + "𝟔": { + math: "\\mathbf{6}" +}, + "𝟕": { + math: "\\mathbf{7}" +}, + "𝟖": { + math: "\\mathbf{8}" +}, + "𝟗": { + math: "\\mathbf{9}" +}, + "𝟘": { + math: "\\mathbb{0}" +}, + "𝟙": { + math: "\\mathbb{1}" +}, + "𝟚": { + math: "\\mathbb{2}" +}, + "𝟛": { + math: "\\mathbb{3}" +}, + "𝟜": { + math: "\\mathbb{4}" +}, + "𝟝": { + math: "\\mathbb{5}" +}, + "𝟞": { + math: "\\mathbb{6}" +}, + "𝟟": { + math: "\\mathbb{7}" +}, + "𝟠": { + math: "\\mathbb{8}" +}, + "𝟡": { + math: "\\mathbb{9}" +}, + "𝟢": { + math: "\\mathsf{0}" +}, + "𝟣": { + math: "\\mathsf{1}" +}, + "𝟤": { + math: "\\mathsf{2}" +}, + "𝟥": { + math: "\\mathsf{3}" +}, + "𝟦": { + math: "\\mathsf{4}" +}, + "𝟧": { + math: "\\mathsf{5}" +}, + "𝟨": { + math: "\\mathsf{6}" +}, + "𝟩": { + math: "\\mathsf{7}" +}, + "𝟪": { + math: "\\mathsf{8}" +}, + "𝟫": { + math: "\\mathsf{9}" +}, + "𝟬": { + math: "\\mathsfbf{0}" +}, + "𝟭": { + math: "\\mathsfbf{1}" +}, + "𝟮": { + math: "\\mathsfbf{2}" +}, + "𝟯": { + math: "\\mathsfbf{3}" +}, + "𝟰": { + math: "\\mathsfbf{4}" +}, + "𝟱": { + math: "\\mathsfbf{5}" +}, + "𝟲": { + math: "\\mathsfbf{6}" +}, + "𝟳": { + math: "\\mathsfbf{7}" +}, + "𝟴": { + math: "\\mathsfbf{8}" +}, + "𝟵": { + math: "\\mathsfbf{9}" +}, + "𝟶": { + math: "\\mathtt{0}" +}, + "𝟷": { + math: "\\mathtt{1}" +}, + "𝟸": { + math: "\\mathtt{2}" +}, + "𝟹": { + math: "\\mathtt{3}" +}, + "𝟺": { + math: "\\mathtt{4}" +}, + "𝟻": { + math: "\\mathtt{5}" +}, + "𝟼": { + math: "\\mathtt{6}" +}, + "𝟽": { + math: "\\mathtt{7}" +}, + "𝟾": { + math: "\\mathtt{8}" +}, + "𝟿": { + math: "\\mathtt{9}" +} +}; + +var $$2 = { + math: "\\$", + text: "\\$" +}; +var _$2 = { + math: "\\_", + text: "\\_" +}; +var require$$2 = { + "#": { + math: "\\#", + text: "\\#" +}, + $: $$2, + "%": { + math: "\\%", + text: "\\%" +}, + "&": { + math: "\\&", + text: "\\&" +}, + "/​": { + text: "\\slash", + commandspacer: true +}, + "<": { + math: "<" +}, + ">": { + math: ">" +}, + "\\": { + math: "\\backslash", + text: "\\textbackslash", + commandspacer: true +}, + "^": { + math: "\\sphat", + text: "\\^" +}, + _: _$2, + "{": { + math: "\\lbrace", + text: "\\{" +}, + "}": { + math: "\\rbrace", + text: "\\}" +}, + "~": { + math: "\\sptilde", + text: "\\textasciitilde", + commandspacer: true +}, + " ": { + math: "~", + space: true, + text: "~" +}, + " ": { + text: " ", + space: true +}, + " ": { + math: "\\quad", + space: true +}, + " ": { + text: "\\hspace{0.6em}", + space: true +}, + " ": { + math: "\\quad", + space: true, + text: "\\hspace{1em}" +}, + " ": { + text: "\\;", + space: true +}, + " ": { + text: "\\hspace{0.25em}", + space: true +}, + " ": { + text: "\\hspace{0.166em}", + space: true +}, + " ": { + text: "\\hphantom{0}", + space: true +}, + " ": { + text: "\\hphantom{,}", + space: true +}, + " ": { + text: "\\,", + space: true +}, + " ": { + math: "\\mkern1mu", + space: true +}, + "​": { + text: "\\mbox", + commandspacer: true, + space: true +}, + " ": { + text: " ", + space: true +}, + " ": { + math: "\\:", + space: true, + text: "\\:" +} +}; + +var require$$3 = { + "\\#": "#", + "\\$": "$", + "\\%": "%", + "\\&": "&", + "\\slash": "/​", + "\\textless": "<", + "\\textgreater": ">", + "\\LaTeX": "LaTeX", + "\\textbackslash": "\\", + "\\backslash": "\\", + "\\": "\\", + "\\^": "^", + "\\sphat": "^", + "\\_": "_", + "\\t{ia}": "i︠a︡", + "{\\~ w}": "w̃", + "\\{": "{", + "\\lbrace": "{", + "\\textbar": "|", + "\\}": "}", + "\\rbrace": "}", + "\\textasciitilde": "~", + "\\sptilde": "~", + "\\textexclamdown": "¡", + "\\textcent": "¢", + "\\cent": "¢", + "\\textsterling": "£", + "\\pounds": "£", + "\\textcurrency": "¤", + "\\textyen": "¥", + "\\yen": "¥", + "\\textbrokenbar": "¦", + "\\textsection": "§", + "\\textasciidieresis": "¨", + "\\spddot": "¨", + "\\textcopyright": "©", + "\\textordfeminine": "ª", + "\\guillemotleft": "«", + "\\lnot": "¬", + "\\neg": "¬", + "\\-": "­", + "\\textregistered": "®", + "\\circledR": "®", + "\\textasciimacron": "¯", + "\\textdegree": "°", + "^\\circ": "°", + "\\pm": "±", + "^{2}": "²", + "^{3}": "³", + "\\textasciiacute": "´", + "\\textmu": "µ", + "\\textparagraph": "¶", + "^{1}": "¹", + "\\textordmasculine": "º", + "\\guillemotright": "»", + "\\frac{1}{4}": "¼", + "\\textonequarter": "¼", + "\\frac{1}{2}": "½", + "\\textonehalf": "½", + "\\frac{3}{4}": "¾", + "\\textthreequarters": "¾", + "\\textquestiondown": "¿", + "\\`A": "À", + "\\'A": "Á", + "\\^A": "Â", + "\\~A": "Ã", + "\\\"A": "Ä", + "\\AA": "Å", + "\\r{A}": "Å", + "{\\r A}": "Å", + "\\AE": "Æ", + "\\c{C}": "Ç", + "\\`E": "È", + "\\'E": "É", + "\\^E": "Ê", + "\\\"E": "Ë", + "\\`I": "Ì", + "\\'I": "Í", + "\\^I": "Î", + "\\\"I": "Ï", + "\\DH": "Ð", + "\\~N": "Ñ", + "\\`O": "Ò", + "\\'O": "Ó", + "\\^O": "Ô", + "\\~O": "Õ", + "\\\"O": "Ö", + "\\texttimes": "×", + "\\times": "×", + "\\O": "Ø", + "\\`U": "Ù", + "\\'U": "Ú", + "\\^U": "Û", + "\\\"U": "Ü", + "\\'Y": "Ý", + "\\TH": "Þ", + "\\ss": "ß", + "\\`a": "à", + "\\'a": "á", + "\\^a": "â", + "\\~a": "ã", + "\\\"a": "ä", + "\\aa": "å", + "\\r{a}": "å", + "{\\r a}": "å", + "\\ae": "æ", + "\\c{c}": "ç", + "\\`e": "è", + "\\'e": "é", + "\\^e": "ê", + "\\\"e": "ë", + "\\`i": "ì", + "\\`\\i": "ì", + "\\'i": "í", + "\\'\\i": "í", + "\\^i": "î", + "\\^\\i": "î", + "\\\"i": "ï", + "\\\"\\i": "ï", + "\\dh": "ð", + "\\eth": "ð", + "\\~n": "ñ", + "\\`o": "ò", + "\\'o": "ó", + "\\^o": "ô", + "\\~o": "õ", + "\\\"o": "ö", + "\\div": "÷", + "\\o": "ø", + "\\`u": "ù", + "\\'u": "ú", + "\\^u": "û", + "\\\"u": "ü", + "\\'y": "ý", + "\\th": "þ", + "\\\"y": "ÿ", + "\\=A": "Ā", + "\\=a": "ā", + "\\u{A}": "Ă", + "\\u{a}": "ă", + "\\k{A}": "Ą", + "\\k{a}": "ą", + "\\'C": "Ć", + "\\'c": "ć", + "\\^C": "Ĉ", + "\\^c": "ĉ", + "\\.C": "Ċ", + "\\.c": "ċ", + "\\v{C}": "Č", + "\\v{c}": "č", + "\\v{D}": "Ď", + "\\v{d}": "ď", + "\\DJ": "Đ", + "\\dj": "đ", + "\\=E": "Ē", + "\\=e": "ē", + "\\u{E}": "Ĕ", + "\\u{e}": "ĕ", + "\\.E": "Ė", + "\\.e": "ė", + "\\k{E}": "Ę", + "\\k{e}": "ę", + "\\v{E}": "Ě", + "\\v{e}": "ě", + "\\^G": "Ĝ", + "\\^g": "ĝ", + "\\u{G}": "Ğ", + "\\u{g}": "ğ", + "\\.G": "Ġ", + "\\.g": "ġ", + "\\c{G}": "Ģ", + "\\c{g}": "ģ", + "\\^H": "Ĥ", + "\\^h": "ĥ", + "{\\fontencoding{LELA}\\selectfont\\char40}": "Ħ", + "\\Elzxh": "ħ", + "\\~I": "Ĩ", + "\\~i": "ĩ", + "\\=I": "Ī", + "\\=i": "ī", + "\\u{I}": "Ĭ", + "{\\u \\i}": "ĭ", + "\\k{I}": "Į", + "\\k{i}": "į", + "\\.I": "İ", + "\\i": "ı", + "\\imath": "ı", + "\\^J": "Ĵ", + "\\^\\j": "ĵ", + "\\c{K}": "Ķ", + "\\c{k}": "ķ", + "{\\fontencoding{LELA}\\selectfont\\char91}": "ĸ", + "\\'L": "Ĺ", + "\\'l": "ĺ", + "\\c{L}": "Ļ", + "\\c{l}": "ļ", + "\\v{L}": "Ľ", + "\\v{l}": "ľ", + "{\\fontencoding{LELA}\\selectfont\\char201}": "Ŀ", + "{\\fontencoding{LELA}\\selectfont\\char202}": "ŀ", + "\\L": "Ł", + "\\l": "ł", + "\\'N": "Ń", + "\\'n": "ń", + "\\c{N}": "Ņ", + "\\c{n}": "ņ", + "\\v{N}": "Ň", + "\\v{n}": "ň", + "\\NG": "Ŋ", + "\\ng": "ŋ", + "\\=O": "Ō", + "\\=o": "ō", + "\\u{O}": "Ŏ", + "\\u{o}": "ŏ", + "\\H{O}": "Ő", + "\\H{o}": "ő", + "\\OE": "Œ", + "\\oe": "œ", + "\\'R": "Ŕ", + "\\'r": "ŕ", + "\\c{R}": "Ŗ", + "\\c{r}": "ŗ", + "\\v{R}": "Ř", + "\\v{r}": "ř", + "\\'S": "Ś", + "\\'s": "ś", + "\\^S": "Ŝ", + "\\^s": "ŝ", + "\\c{S}": "Ş", + "\\c{s}": "ş", + "\\v{S}": "Š", + "\\v{s}": "š", + "\\c{T}": "Ţ", + "\\c{t}": "ţ", + "\\v{T}": "Ť", + "\\v{t}": "ť", + "{\\fontencoding{LELA}\\selectfont\\char47}": "Ŧ", + "{\\fontencoding{LELA}\\selectfont\\char63}": "ŧ", + "\\~U": "Ũ", + "\\~u": "ũ", + "\\=U": "Ū", + "\\=u": "ū", + "\\u{U}": "Ŭ", + "\\u{u}": "ŭ", + "\\r{U}": "Ů", + "{\\r U}": "Ů", + "\\r{u}": "ů", + "\\ocirc{u}": "ů", + "{\\r u}": "ů", + "\\H{U}": "Ű", + "\\H{u}": "ű", + "\\k{U}": "Ų", + "\\k{u}": "ų", + "\\^W": "Ŵ", + "\\^w": "ŵ", + "\\^Y": "Ŷ", + "\\^y": "ŷ", + "\\\"Y": "Ÿ", + "\\'Z": "Ź", + "\\'z": "ź", + "\\.Z": "Ż", + "\\.z": "ż", + "\\v{Z}": "Ž", + "\\v{z}": "ž", + "\\texthvlig": "ƕ", + "\\textnrleg": "ƞ", + "\\textesh": "ƪ", + "\\Zbar": "Ƶ", + "{\\fontencoding{LELA}\\selectfont\\char195}": "ƺ", + "\\textdoublepipe": "ǂ", + "\\v{A}": "Ǎ", + "\\v{a}": "ǎ", + "\\v{I}": "Ǐ", + "\\v{i}": "ǐ", + "\\v{O}": "Ǒ", + "\\v{o}": "ǒ", + "\\v{U}": "Ǔ", + "\\v{u}": "ǔ", + "\\v{G}": "Ǧ", + "\\v{g}": "ǧ", + "\\v{K}": "Ǩ", + "\\v{k}": "ǩ", + "\\k{O}": "Ǫ", + "\\k{o}": "ǫ", + "\\v{j}": "ǰ", + "\\'G": "Ǵ", + "\\'g": "ǵ", + "\\c{E}": "Ȩ", + "\\c{e}": "ȩ", + "\\jmath": "ȷ", + "\\Elztrna": "ɐ", + "\\Elztrnsa": "ɒ", + "\\Elzopeno": "ɔ", + "\\Elzrtld": "ɖ", + "{\\fontencoding{LEIP}\\selectfont\\char61}": "ɘ", + "\\Elzschwa": "ə", + "\\varepsilon": "ɛ", + "\\Elzpgamma": "ɣ", + "\\Elzpbgam": "ɤ", + "\\Elztrnh": "ɥ", + "\\Elzbtdl": "ɬ", + "\\Elzrtll": "ɭ", + "\\Elztrnm": "ɯ", + "\\Elztrnmlr": "ɰ", + "\\Elzltlmr": "ɱ", + "\\Elzltln": "ɲ", + "\\Elzrtln": "ɳ", + "\\Elzclomeg": "ɷ", + "\\textphi": "ɸ", + "\\Elztrnr": "ɹ", + "\\Elztrnrl": "ɺ", + "\\Elzrttrnr": "ɻ", + "\\Elzrl": "ɼ", + "\\Elzrtlr": "ɽ", + "\\Elzfhr": "ɾ", + "{\\fontencoding{LEIP}\\selectfont\\char202}": "ɿ", + "\\Elzrtls": "ʂ", + "\\Elzesh": "ʃ", + "\\Elztrnt": "ʇ", + "\\Elzrtlt": "ʈ", + "\\Elzpupsil": "ʊ", + "\\Elzpscrv": "ʋ", + "\\Elzinvv": "ʌ", + "\\Elzinvw": "ʍ", + "\\Elztrny": "ʎ", + "\\Elzrtlz": "ʐ", + "\\Elzyogh": "ʒ", + "\\Elzglst": "ʔ", + "\\Elzreglst": "ʕ", + "\\Elzinglst": "ʖ", + "\\textturnk": "ʞ", + "\\Elzdyogh": "ʤ", + "\\Elztesh": "ʧ", + "\\textsuperscript{h}": "ʰ", + "^{h}": "ʰ", + "\\textsuperscript{j}": "ʲ", + "^{j}": "ʲ", + "\\textsuperscript{r}": "ʳ", + "^{r}": "ʳ", + "\\textsuperscript{w}": "ʷ", + "^{w}": "ʷ", + "\\textsuperscript{y}": "ʸ", + "^{y}": "ʸ", + "\\lasp": "ʿ", + "\\textasciicircum": "ˆ", + "\\textasciicaron": "ˇ", + "\\Elzverts": "ˈ", + "\\Elzverti": "ˌ", + "\\Elzlmrk": "ː", + "\\Elzhlmrk": "ˑ", + "\\Elzsbrhr": "˒", + "\\Elzsblhr": "˓", + "\\Elzrais": "˔", + "\\Elzlow": "˕", + "\\textasciibreve": "˘", + "\\textperiodcentered": "˙", + "\\texttildelow": "˜", + "\\textsuperscript{l}": "ˡ", + "^{l}": "ˡ", + "\\textsuperscript{s}": "ˢ", + "^{s}": "ˢ", + "\\textsuperscript{x}": "ˣ", + "^{x}": "ˣ", + "\\tone{55}": "˥", + "\\tone{44}": "˦", + "\\tone{33}": "˧", + "\\tone{22}": "˨", + "\\tone{11}": "˩", + "\\`": "̀", + "\\grave": "̀", + "\\textgravemacron": "̀̄", + "\\textgravedot": "̀̇", + "\\'": "́", + "\\acute": "́", + "\\textacutemacron": "́̄", + "\\textacutewedge": "́̌", + "\\hat": "̂", + "\\textcircumdot": "̂̇", + "\\~": "̃", + "\\tilde": "̃", + "\\texttildedot": "̃̇", + "\\=": "̄", + "\\bar": "̄", + "\\overline": "̅", + "\\u": "̆", + "\\breve": "̆", + "\\textbrevemacron": "̆̄", + "\\.": "̇", + "\\dot": "̇", + "\\textdotacute": "̇́", + "\\\"": "̈", + "\\ddot": "̈", + "\\ovhook": "̉", + "\\r": "̊", + "\\mathring": "̊", + "\\textringmacron": "̊̄", + "\\H": "̋", + "\\check": "̌", + "\\v": "̌", + "\\textvbaraccent": "̍", + "\\textdoublevbaraccent": "̎", + "\\textdoublegrave": "̏", + "\\textdotbreve": "̐", + "{\\fontencoding{LECO}\\selectfont\\char177}": "̑", + "\\oturnedcomma": "̒", + "\\ocommatopright": "̕", + "\\textsubgrave": "̖", + "\\textadvancing": "̘", + "\\textretracting": "̙", + "\\droang": "̚", + "\\textcorner": "̚", + "\\textsublhalfring": "̜", + "\\textraising": "̝", + "\\textlowering": "̞", + "\\textsubplus": "̟", + "\\Elzpalh": "̡", + "\\Elzrh": "̢", + "\\d": "̣", + "\\textsubumlaut": "̤", + "\\textsubring": "̥", + "\\c": "̧", + "\\k": "̨", + "\\textsyllabic": "̩", + "\\Elzsbbrg": "̪", + "\\textsubbridge": "̪", + "{\\fontencoding{LECO}\\selectfont\\char203}": "̫", + "\\textsubwedge": "̬", + "\\textsubarch": "̯", + "\\utilde": "̰", + "\\textsubtilde": "̰", + "\\textsubbar": "̱", + "\\underbar": "̱", + "\\underline": "̲", + "\\textsuperimposetilde": "̴", + "\\Elzxl": "̵", + "\\Elzbar": "̶", + "{\\fontencoding{LECO}\\selectfont\\char215}": "̷", + "\\not": "̸", + "\\textsubrhalfring": "̹", + "\\textinvsubbridge": "̺", + "\\textsubsquare": "̻", + "\\textseagull": "̼", + "\\textovercross": "̽", + "{\\fontencoding{LECO}\\selectfont\\char225}": "͡", + "\\'H": "Ή", + "{\\'{}I}": "Ί", + "{\\'{}O}": "Ό", + "\\mathrm{'Y}": "Ύ", + "\\mathrm{'\\Omega}": "Ώ", + "\\acute{\\ddot{\\iota}}": "ΐ", + "\\Gamma": "Γ", + "\\varGamma": "Γ", + "\\Delta": "Δ", + "\\Theta": "Θ", + "\\Lambda": "Λ", + "\\Xi": "Ξ", + "\\Pi": "Π", + "\\Sigma": "Σ", + "\\Upsilon": "Υ", + "\\Phi": "Φ", + "\\Psi": "Ψ", + "\\Omega": "Ω", + "\\mathrm{\\ddot{I}}": "Ϊ", + "\\mathrm{\\ddot{Y}}": "Ϋ", + "{\\'$\\alpha$}": "ά", + "\\acute{\\epsilon}": "έ", + "\\acute{\\eta}": "ή", + "\\acute{\\iota}": "ί", + "\\acute{\\ddot{\\upsilon}}": "ΰ", + "\\alpha": "α", + "\\beta": "β", + "\\gamma": "γ", + "\\delta": "δ", + "\\zeta": "ζ", + "\\eta": "η", + "\\texttheta": "θ", + "\\theta": "θ", + "\\iota": "ι", + "\\kappa": "κ", + "\\lambda": "λ", + "\\nu": "ν", + "\\xi": "ξ", + "\\pi": "π", + "\\rho": "ρ", + "\\varsigma": "ς", + "\\sigma": "σ", + "\\tau": "τ", + "\\upsilon": "υ", + "\\varphi": "φ", + "\\chi": "χ", + "\\psi": "ψ", + "\\omega": "ω", + "\\ddot{\\iota}": "ϊ", + "\\ddot{\\upsilon}": "ϋ", + "\\acute{\\upsilon}": "ύ", + "\\acute{\\omega}": "ώ", + "\\Pisymbol{ppi022}{87}": "ϐ", + "\\varbeta": "ϐ", + "\\textvartheta": "ϑ", + "\\vartheta": "ϑ", + "\\phi": "ϕ", + "\\varpi": "ϖ", + "\\Qoppa": "Ϙ", + "\\qoppa": "ϙ", + "\\Stigma": "Ϛ", + "\\stigma": "ϛ", + "\\Digamma": "Ϝ", + "\\digamma": "ϝ", + "\\Koppa": "Ϟ", + "\\koppa": "ϟ", + "\\Sampi": "Ϡ", + "\\sampi": "ϡ", + "\\varkappa": "ϰ", + "\\varrho": "ϱ", + "\\textTheta": "ϴ", + "\\upvarTheta": "ϴ", + "\\epsilon": "ϵ", + "\\backepsilon": "϶", + "\\cyrchar\\CYRYO": "Ё", + "\\cyrchar\\CYRDJE": "Ђ", + "\\cyrchar{\\'\\CYRG}": "Ѓ", + "\\cyrchar\\CYRIE": "Є", + "\\cyrchar\\CYRDZE": "Ѕ", + "\\cyrchar\\CYRII": "І", + "\\cyrchar\\CYRYI": "Ї", + "\\cyrchar\\CYRJE": "Ј", + "\\cyrchar\\CYRLJE": "Љ", + "\\cyrchar\\CYRNJE": "Њ", + "\\cyrchar\\CYRTSHE": "Ћ", + "\\cyrchar{\\'\\CYRK}": "Ќ", + "\\cyrchar\\CYRUSHRT": "Ў", + "\\cyrchar\\CYRDZHE": "Џ", + "\\cyrchar\\CYRA": "А", + "\\cyrchar\\CYRB": "Б", + "\\cyrchar\\CYRV": "В", + "\\cyrchar\\CYRG": "Г", + "\\cyrchar\\CYRD": "Д", + "\\cyrchar\\CYRE": "Е", + "\\cyrchar\\CYRZH": "Ж", + "\\cyrchar\\CYRZ": "З", + "\\cyrchar\\CYRI": "И", + "\\cyrchar\\CYRISHRT": "Й", + "\\cyrchar\\CYRK": "К", + "\\cyrchar\\CYRL": "Л", + "\\cyrchar\\CYRM": "М", + "\\cyrchar\\CYRN": "Н", + "\\cyrchar\\CYRO": "О", + "\\cyrchar\\CYRP": "П", + "\\cyrchar\\CYRR": "Р", + "\\cyrchar\\CYRS": "С", + "\\cyrchar\\CYRT": "Т", + "\\cyrchar\\CYRU": "У", + "\\cyrchar\\CYRF": "Ф", + "\\cyrchar\\CYRH": "Х", + "\\cyrchar\\CYRC": "Ц", + "\\cyrchar\\CYRCH": "Ч", + "\\cyrchar\\CYRSH": "Ш", + "\\cyrchar\\CYRSHCH": "Щ", + "\\cyrchar\\CYRHRDSN": "Ъ", + "\\bud": "Ъ", + "\\cdprime": "Ъ", + "\\cyrchar\\CYRERY": "Ы", + "\\cyrchar\\CYRSFTSN": "Ь", + "\\cprime": "Ь", + "\\cyrchar\\CYREREV": "Э", + "\\cyrchar\\CYRYU": "Ю", + "\\cyrchar\\CYRYA": "Я", + "\\cyrchar\\cyra": "а", + "\\cyrchar\\cyrb": "б", + "\\cyrchar\\cyrv": "в", + "\\cyrchar\\cyrg": "г", + "\\cyrchar\\cyrd": "д", + "\\cyrchar\\cyre": "е", + "\\cyrchar\\cyrzh": "ж", + "\\cyrchar\\cyrz": "з", + "\\cyrchar\\cyri": "и", + "\\cyrchar\\cyrishrt": "й", + "\\cyrchar\\cyrk": "к", + "\\cyrchar\\cyrl": "л", + "\\cyrchar\\cyrm": "м", + "\\cyrchar\\cyrn": "н", + "\\cyrchar\\cyro": "о", + "\\cyrchar\\cyrp": "п", + "\\cyrchar\\cyrr": "р", + "\\cyrchar\\cyrs": "с", + "\\cyrchar\\cyrt": "т", + "\\cyrchar\\cyru": "у", + "\\cyrchar\\cyrf": "ф", + "\\cyrchar\\cyrh": "х", + "\\cyrchar\\cyrc": "ц", + "\\cyrchar\\cyrch": "ч", + "\\cyrchar\\cyrsh": "ш", + "\\cyrchar\\cyrshch": "щ", + "\\cyrchar\\cyrhrdsn": "ъ", + "\\cyrchar\\cyrery": "ы", + "\\cyrchar\\cyrsftsn": "ь", + "\\cyrchar\\cyrerev": "э", + "\\cyrchar\\cyryu": "ю", + "\\cyrchar\\cyrya": "я", + "\\cyrchar\\cyryo": "ё", + "\\cyrchar\\cyrdje": "ђ", + "\\cyrchar{\\'\\cyrg}": "ѓ", + "\\cyrchar\\cyrie": "є", + "\\cyrchar\\cyrdze": "ѕ", + "\\cyrchar\\cyrii": "і", + "\\cyrchar\\cyryi": "ї", + "\\cyrchar\\cyrje": "ј", + "\\cyrchar\\cyrlje": "љ", + "\\cyrchar\\cyrnje": "њ", + "\\cyrchar\\cyrtshe": "ћ", + "\\cyrchar{\\'\\cyrk}": "ќ", + "\\cyrchar\\cyrushrt": "ў", + "\\cyrchar\\cyrdzhe": "џ", + "\\cyrchar\\CYROMEGA": "Ѡ", + "\\cyrchar\\cyromega": "ѡ", + "\\cyrchar\\CYRYAT": "Ѣ", + "\\cyrchar\\CYRIOTE": "Ѥ", + "\\cyrchar\\cyriote": "ѥ", + "\\cyrchar\\CYRLYUS": "Ѧ", + "\\cyrchar\\cyrlyus": "ѧ", + "\\cyrchar\\CYRIOTLYUS": "Ѩ", + "\\cyrchar\\cyriotlyus": "ѩ", + "\\cyrchar\\CYRBYUS": "Ѫ", + "\\cyrchar\\CYRIOTBYUS": "Ѭ", + "\\cyrchar\\cyriotbyus": "ѭ", + "\\cyrchar\\CYRKSI": "Ѯ", + "\\cyrchar\\cyrksi": "ѯ", + "\\cyrchar\\CYRPSI": "Ѱ", + "\\cyrchar\\cyrpsi": "ѱ", + "\\cyrchar\\CYRFITA": "Ѳ", + "\\cyrchar\\CYRIZH": "Ѵ", + "\\cyrchar\\CYRUK": "Ѹ", + "\\cyrchar\\cyruk": "ѹ", + "\\cyrchar\\CYROMEGARND": "Ѻ", + "\\cyrchar\\cyromegarnd": "ѻ", + "\\cyrchar\\CYROMEGATITLO": "Ѽ", + "\\cyrchar\\cyromegatitlo": "ѽ", + "\\cyrchar\\CYROT": "Ѿ", + "\\cyrchar\\cyrot": "ѿ", + "\\cyrchar\\CYRKOPPA": "Ҁ", + "\\cyrchar\\cyrkoppa": "ҁ", + "\\cyrchar\\cyrthousands": "҂", + "\\cyrchar\\cyrhundredthousands": "҈", + "\\cyrchar\\cyrmillions": "҉", + "\\cyrchar\\CYRSEMISFTSN": "Ҍ", + "\\cyrchar\\cyrsemisftsn": "ҍ", + "\\cyrchar\\CYRRTICK": "Ҏ", + "\\cyrchar\\cyrrtick": "ҏ", + "\\cyrchar\\CYRGUP": "Ґ", + "\\cyrchar\\cyrgup": "ґ", + "\\cyrchar\\CYRGHCRS": "Ғ", + "\\cyrchar\\cyrghcrs": "ғ", + "\\cyrchar\\CYRGHK": "Ҕ", + "\\cyrchar\\cyrghk": "ҕ", + "\\cyrchar\\CYRZHDSC": "Җ", + "\\cyrchar\\cyrzhdsc": "җ", + "\\cyrchar\\CYRZDSC": "Ҙ", + "\\cyrchar\\cyrzdsc": "ҙ", + "\\cyrchar\\CYRKDSC": "Қ", + "\\cyrchar\\cyrkdsc": "қ", + "\\cyrchar\\CYRKVCRS": "Ҝ", + "\\cyrchar\\cyrkvcrs": "ҝ", + "\\cyrchar\\CYRKHCRS": "Ҟ", + "\\cyrchar\\cyrkhcrs": "ҟ", + "\\cyrchar\\CYRKBEAK": "Ҡ", + "\\cyrchar\\cyrkbeak": "ҡ", + "\\cyrchar\\CYRNDSC": "Ң", + "\\cyrchar\\cyrndsc": "ң", + "\\cyrchar\\CYRNG": "Ҥ", + "\\cyrchar\\cyrng": "ҥ", + "\\cyrchar\\CYRPHK": "Ҧ", + "\\cyrchar\\cyrphk": "ҧ", + "\\cyrchar\\CYRABHHA": "Ҩ", + "\\cyrchar\\cyrabhha": "ҩ", + "\\cyrchar\\CYRSDSC": "Ҫ", + "\\cyrchar\\cyrsdsc": "ҫ", + "\\cyrchar\\CYRTDSC": "Ҭ", + "\\cyrchar\\cyrtdsc": "ҭ", + "\\cyrchar\\CYRY": "Ү", + "\\cyrchar\\cyry": "ү", + "\\cyrchar\\CYRYHCRS": "Ұ", + "\\cyrchar\\cyryhcrs": "ұ", + "\\cyrchar\\CYRHDSC": "Ҳ", + "\\cyrchar\\cyrhdsc": "ҳ", + "\\cyrchar\\CYRTETSE": "Ҵ", + "\\cyrchar\\cyrtetse": "ҵ", + "\\cyrchar\\CYRCHRDSC": "Ҷ", + "\\cyrchar\\cyrchrdsc": "ҷ", + "\\cyrchar\\CYRCHVCRS": "Ҹ", + "\\cyrchar\\cyrchvcrs": "ҹ", + "\\cyrchar\\CYRSHHA": "Һ", + "\\cyrchar\\cyrshha": "һ", + "\\cyrchar\\CYRABHCH": "Ҽ", + "\\cyrchar\\cyrabhch": "ҽ", + "\\cyrchar\\CYRABHCHDSC": "Ҿ", + "\\cyrchar\\cyrabhchdsc": "ҿ", + "\\cyrchar\\CYRpalochka": "Ӏ", + "\\cyrchar\\CYRKHK": "Ӄ", + "\\cyrchar\\cyrkhk": "ӄ", + "\\cyrchar\\CYRNHK": "Ӈ", + "\\cyrchar\\cyrnhk": "ӈ", + "\\cyrchar\\CYRCHLDSC": "Ӌ", + "\\cyrchar\\cyrchldsc": "ӌ", + "\\cyrchar\\CYRAE": "Ӕ", + "\\cyrchar\\cyrae": "ӕ", + "\\cyrchar\\CYRSCHWA": "Ә", + "\\cyrchar\\cyrschwa": "ә", + "\\cyrchar\\CYRABHDZE": "Ӡ", + "\\cyrchar\\cyrabhdze": "ӡ", + "\\cyrchar\\CYROTLD": "Ө", + "\\cyrchar\\cyrotld": "ө", + "\\\\backslash": "ࡱ", + "\\textsuperscript{a}": "ᵃ", + "^{a}": "ᵃ", + "\\textsuperscript{b}": "ᵇ", + "^{b}": "ᵇ", + "\\textsuperscript{d}": "ᵈ", + "^{d}": "ᵈ", + "\\textsuperscript{e}": "ᵉ", + "^{e}": "ᵉ", + "\\textsuperscript{g}": "ᵍ", + "^{g}": "ᵍ", + "\\textsuperscript{k}": "ᵏ", + "^{k}": "ᵏ", + "\\textsuperscript{m}": "ᵐ", + "^{m}": "ᵐ", + "\\textsuperscript{o}": "ᵒ", + "^{o}": "ᵒ", + "\\textsuperscript{p}": "ᵖ", + "^{p}": "ᵖ", + "\\textsuperscript{t}": "ᵗ", + "^{t}": "ᵗ", + "\\textsuperscript{u}": "ᵘ", + "^{u}": "ᵘ", + "\\textsuperscript{v}": "ᵛ", + "^{v}": "ᵛ", + "\\textsuperscript{c}": "ᶜ", + "^{c}": "ᶜ", + "\\textsuperscript{f}": "ᶠ", + "^{f}": "ᶠ", + "\\textsuperscript{z}": "ᶻ", + "^{z}": "ᶻ", + "\\.B": "Ḃ", + "\\.b": "ḃ", + "\\d{B}": "Ḅ", + "\\d{b}": "ḅ", + "\\b{B}": "Ḇ", + "\\b{b}": "ḇ", + "\\.D": "Ḋ", + "\\.d": "ḋ", + "\\d{D}": "Ḍ", + "\\d{d}": "ḍ", + "\\b{D}": "Ḏ", + "\\b{d}": "ḏ", + "\\c{D}": "Ḑ", + "\\c{d}": "ḑ", + "\\c{\\u{E}}": "Ḝ", + "\\c{\\u{e}}": "ḝ", + "\\.F": "Ḟ", + "\\.f": "ḟ", + "\\=G": "Ḡ", + "\\=g": "ḡ", + "\\.H": "Ḣ", + "\\.h": "ḣ", + "\\d{H}": "Ḥ", + "\\d{h}": "ḥ", + "\\\"H": "Ḧ", + "\\\"h": "ḧ", + "\\c{H}": "Ḩ", + "\\c{h}": "ḩ", + "\\'K": "Ḱ", + "\\'k": "ḱ", + "\\d{K}": "Ḳ", + "\\d{k}": "ḳ", + "\\b{K}": "Ḵ", + "\\b{k}": "ḵ", + "\\d{L}": "Ḷ", + "\\d{l}": "ḷ", + "\\b{L}": "Ḻ", + "\\b{l}": "ḻ", + "\\'M": "Ḿ", + "\\'m": "ḿ", + "\\.M": "Ṁ", + "\\.m": "ṁ", + "\\d{M}": "Ṃ", + "\\d{m}": "ṃ", + "\\.N": "Ṅ", + "\\.n": "ṅ", + "\\d{N}": "Ṇ", + "\\d{n}": "ṇ", + "\\b{N}": "Ṉ", + "\\b{n}": "ṉ", + "\\'P": "Ṕ", + "\\'p": "ṕ", + "\\.P": "Ṗ", + "\\.p": "ṗ", + "\\.R": "Ṙ", + "\\.r": "ṙ", + "\\d{R}": "Ṛ", + "\\d{r}": "ṛ", + "\\b{R}": "Ṟ", + "\\b{r}": "ṟ", + "\\.S": "Ṡ", + "\\.s": "ṡ", + "\\d{S}": "Ṣ", + "\\d{s}": "ṣ", + "\\.T": "Ṫ", + "\\.t": "ṫ", + "\\d{T}": "Ṭ", + "\\d{t}": "ṭ", + "\\b{T}": "Ṯ", + "\\b{t}": "ṯ", + "\\~V": "Ṽ", + "\\~v": "ṽ", + "\\d{V}": "Ṿ", + "\\d{v}": "ṿ", + "\\`W": "Ẁ", + "\\`w": "ẁ", + "\\'W": "Ẃ", + "\\'w": "ẃ", + "\\\"W": "Ẅ", + "\\\"w": "ẅ", + "\\.W": "Ẇ", + "\\.w": "ẇ", + "\\d{W}": "Ẉ", + "\\d{w}": "ẉ", + "\\.X": "Ẋ", + "\\.x": "ẋ", + "\\\"X": "Ẍ", + "\\\"x": "ẍ", + "\\.Y": "Ẏ", + "\\.y": "ẏ", + "\\^Z": "Ẑ", + "\\^z": "ẑ", + "\\d{Z}": "Ẓ", + "\\d{z}": "ẓ", + "\\b{Z}": "Ẕ", + "\\b{z}": "ẕ", + "\\b{h}": "ẖ", + "\\\"t": "ẗ", + "\\r{w}": "ẘ", + "\\r{y}": "ẙ", + "\\d{A}": "Ạ", + "\\d{a}": "ạ", + "\\d{E}": "Ẹ", + "\\d{e}": "ẹ", + "\\~E": "Ẽ", + "\\~e": "ẽ", + "\\d{I}": "Ị", + "\\d{i}": "ị", + "\\d{O}": "Ọ", + "\\d{o}": "ọ", + "\\d{U}": "Ụ", + "\\d{u}": "ụ", + "\\`Y": "Ỳ", + "\\`y": "ỳ", + "\\d{Y}": "Ỵ", + "\\d{y}": "ỵ", + "\\~Y": "Ỹ", + "\\~y": "ỹ", + "\\hspace{0.6em}": " ", + "\\hspace{1em}": " ", + "\\quad": " ", + "\\;": " ", + "\\hspace{0.25em}": " ", + "\\hspace{0.166em}": " ", + "\\hphantom{0}": " ", + "\\hphantom{,}": " ", + "\\,": " ", + "\\mkern1mu": " ", + "\\mbox": "​", + "{\\aftergroup\\ignorespaces}": "‌", + "\\textendash": "–", + "\\textemdash": "—", + "\\rule{1em}{1pt}": "―", + "\\horizbar": "―", + "\\Vert": "‖", + "\\twolowline": "‗", + "\\textquoteleft": "‘", + "\\textquoteright": "’", + "\\Elzreapos": "‛", + "\\textquotedblleft": "“", + "\\textquotedblright": "”", + "\\quotedblbase": "‟", + "\\textdagger": "†", + "\\dagger": "†", + "\\textdaggerdbl": "‡", + "\\ddagger": "‡", + "\\textbullet": "•", + "\\enleadertwodots": "‥", + "\\ldots": "…", + "\\textperthousand": "‰", + "\\textpertenthousand": "‱", + "{'}": "′", + "{''}": "″", + "{'''}": "‴", + "\\backprime": "‵", + "\\backdprime": "‶", + "\\backtrprime": "‷", + "\\caretinsert": "‸", + "\\guilsinglleft": "‹", + "\\guilsinglright": "›", + "\\Exclam": "‼", + "\\hyphenbullet": "⁃", + "\\fracslash": "⁄", + "\\Question": "⁇", + "\\closure": "⁐", + "\\:": " ", + "\\nolinebreak": "⁠", + "^{0}": "⁰", + "\\textsuperscript{i}": "ⁱ", + "^{i}": "ⁱ", + "^{4}": "⁴", + "^{5}": "⁵", + "^{6}": "⁶", + "^{7}": "⁷", + "^{8}": "⁸", + "^{9}": "⁹", + "^{+}": "⁺", + "^{-}": "⁻", + "^{=}": "⁼", + "^{(}": "⁽", + "^{)}": "⁾", + "\\textsuperscript{n}": "ⁿ", + "^{n}": "ⁿ", + "_{0}": "₀", + "_{1}": "₁", + "_{2}": "₂", + "_{3}": "₃", + "_{4}": "₄", + "_{5}": "₅", + "_{6}": "₆", + "_{7}": "₇", + "_{8}": "₈", + "_{9}": "₉", + "_{+}": "₊", + "_{-}": "₋", + "_{=}": "₌", + "_{(}": "₍", + "_{)}": "₎", + "\\textsubscript{a}": "ₐ", + "_{a}": "ₐ", + "\\textsubscript{e}": "ₑ", + "_{e}": "ₑ", + "\\textsubscript{o}": "ₒ", + "_{o}": "ₒ", + "\\textsubscript{x}": "ₓ", + "_{x}": "ₓ", + "\\textsubscript{\\textschwa}": "ₔ", + "\\textsubscript{h}": "ₕ", + "_{h}": "ₕ", + "\\textsubscript{k}": "ₖ", + "_{k}": "ₖ", + "\\textsubscript{l}": "ₗ", + "_{l}": "ₗ", + "\\textsubscript{m}": "ₘ", + "_{m}": "ₘ", + "\\textsubscript{n}": "ₙ", + "_{n}": "ₙ", + "\\textsubscript{p}": "ₚ", + "_{p}": "ₚ", + "\\textsubscript{s}": "ₛ", + "_{s}": "ₛ", + "\\textsubscript{t}": "ₜ", + "_{t}": "ₜ", + "\\ensuremath{\\Elzpes}": "₧", + "\\texteuro": "€", + "\\euro": "€", + "\\lvec": "⃐", + "\\vertoverlay": "⃒", + "\\LVec": "⃖", + "\\vec": "⃗", + "\\dddot": "⃛", + "\\ddddot": "⃜", + "\\enclosecircle": "⃝", + "\\enclosesquare": "⃞", + "\\enclosediamond": "⃟", + "\\overleftrightarrow": "⃡", + "\\enclosetriangle": "⃤", + "\\annuity": "⃧", + "\\threeunderdot": "⃨", + "\\widebridgeabove": "⃩", + "\\underrightharpoondown": "⃬", + "\\underleftharpoondown": "⃭", + "\\underleftarrow": "⃮", + "\\underrightarrow": "⃯", + "\\asteraccent": "⃰", + "\\mathbb{C}": "ℂ", + "\\textcelsius": "℃", + "\\Euler": "ℇ", + "\\mathscr{g}": "ℊ", + "\\mathscr{H}": "ℋ", + "\\mathfrak{H}": "ℌ", + "\\mathbb{H}": "ℍ", + "\\Planckconst": "ℎ", + "\\hslash": "ℏ", + "\\mathscr{I}": "ℐ", + "\\mathfrak{I}": "ℑ", + "\\mathscr{L}": "ℒ", + "\\mathscr{l}": "ℓ", + "\\mathbb{N}": "ℕ", + "\\cyrchar\\textnumero": "№", + "\\textcircledP": "℗", + "\\wp": "℘", + "\\mathbb{P}": "ℙ", + "\\mathbb{Q}": "ℚ", + "\\mathscr{R}": "ℛ", + "\\mathfrak{R}": "ℜ", + "\\mathbb{R}": "ℝ", + "\\Elzxrat": "℞", + "\\textservicemark": "℠", + "\\texttrademark": "™", + "\\mathbb{Z}": "ℤ", + "\\mho": "℧", + "\\mathfrak{Z}": "ℨ", + "\\textriota": "℩", + "\\Angstroem": "Å", + "\\mathscr{B}": "ℬ", + "\\mathfrak{C}": "ℭ", + "\\textestimated": "℮", + "\\mathscr{e}": "ℯ", + "\\mathscr{E}": "ℰ", + "\\mathscr{F}": "ℱ", + "\\Finv": "Ⅎ", + "\\mathscr{M}": "ℳ", + "\\mathscr{o}": "ℴ", + "\\aleph": "ℵ", + "\\beth": "ℶ", + "\\gimel": "ℷ", + "\\daleth": "ℸ", + "\\mathbb{\\pi}": "ℼ", + "\\mathbb{\\gamma}": "ℽ", + "\\mathbb{\\Gamma}": "ℾ", + "\\mathbb{\\Pi}": "ℿ", + "\\mathbb{\\Sigma}": "⅀", + "\\Game": "⅁", + "\\sansLturned": "⅂", + "\\sansLmirrored": "⅃", + "\\Yup": "⅄", + "\\CapitalDifferentialD": "ⅅ", + "\\DifferentialD": "ⅆ", + "\\ExponetialE": "ⅇ", + "\\ComplexI": "ⅈ", + "\\ComplexJ": "ⅉ", + "\\PropertyLine": "⅊", + "\\invamp": "⅋", + "\\frac{1}{7}": "⅐", + "\\textfrac{1}{7}": "⅐", + "\\frac{1}{9}": "⅑", + "\\textfrac{1}{9}": "⅑", + "\\frac{1}{10}": "⅒", + "\\textfrac{1}{10}": "⅒", + "\\frac{1}{3}": "⅓", + "\\textfrac{1}{3}": "⅓", + "\\frac{2}{3}": "⅔", + "\\textfrac{2}{3}": "⅔", + "\\frac{1}{5}": "⅕", + "\\textfrac{1}{5}": "⅕", + "\\frac{2}{5}": "⅖", + "\\textfrac{2}{5}": "⅖", + "\\frac{3}{5}": "⅗", + "\\textfrac{3}{5}": "⅗", + "\\frac{4}{5}": "⅘", + "\\textfrac{4}{5}": "⅘", + "\\frac{1}{6}": "⅙", + "\\textfrac{1}{6}": "⅙", + "\\frac{5}{6}": "⅚", + "\\textfrac{5}{6}": "⅚", + "\\frac{1}{8}": "⅛", + "\\textfrac{1}{8}": "⅛", + "\\frac{3}{8}": "⅜", + "\\textfrac{3}{8}": "⅜", + "\\frac{5}{8}": "⅝", + "\\textfrac{5}{8}": "⅝", + "\\frac{7}{8}": "⅞", + "\\textfrac{7}{8}": "⅞", + "\\frac{1}": "⅟", + "\\textfrac{1}": "⅟", + "\\frac{0}{3}": "↉", + "\\textfrac{0}{3}": "↉", + "\\leftarrow": "←", + "\\uparrow": "↑", + "\\textrightarrow": "→", + "\\rightarrow": "→", + "\\to": "→", + "\\downarrow": "↓", + "\\leftrightarrow": "↔", + "\\updownarrow": "↕", + "\\nwarrow": "↖", + "\\nearrow": "↗", + "\\searrow": "↘", + "\\swarrow": "↙", + "\\nleftarrow": "↚", + "\\nrightarrow": "↛", + "\\arrowwaveleft": "↜", + "\\arrowwaveright": "↝", + "\\twoheadleftarrow": "↞", + "\\twoheaduparrow": "↟", + "\\twoheadrightarrow": "↠", + "\\twoheaddownarrow": "↡", + "\\leftarrowtail": "↢", + "\\rightarrowtail": "↣", + "\\mapsfrom": "↤", + "\\MapsUp": "↥", + "\\mapsto": "↦", + "\\MapsDown": "↧", + "\\updownarrowbar": "↨", + "\\hookleftarrow": "↩", + "\\hookrightarrow": "↪", + "\\looparrowleft": "↫", + "\\looparrowright": "↬", + "\\leftrightsquigarrow": "↭", + "\\nleftrightarrow": "↮", + "\\lightning": "↯", + "\\Lsh": "↰", + "\\Rsh": "↱", + "\\dlsh": "↲", + "\\reflectbox{\\carriagereturn}": "↳", + "\\linefeed": "↴", + "\\carriagereturn": "↵", + "\\curvearrowleft": "↶", + "\\curvearrowright": "↷", + "\\barovernorthwestarrow": "↸", + "\\barleftarrowrightarrowba": "↹", + "\\circlearrowleft": "↺", + "\\circlearrowright": "↻", + "\\leftharpoonup": "↼", + "\\leftharpoondown": "↽", + "\\upharpoonright": "↾", + "\\upharpoonleft": "↿", + "\\rightharpoonup": "⇀", + "\\rightharpoondown": "⇁", + "\\downharpoonright": "⇂", + "\\downharpoonleft": "⇃", + "\\rightleftarrows": "⇄", + "\\dblarrowupdown": "⇅", + "\\leftrightarrows": "⇆", + "\\leftleftarrows": "⇇", + "\\upuparrows": "⇈", + "\\rightrightarrows": "⇉", + "\\downdownarrows": "⇊", + "\\leftrightharpoons": "⇋", + "\\rightleftharpoons": "⇌", + "\\nLeftarrow": "⇍", + "\\nLeftrightarrow": "⇎", + "\\nRightarrow": "⇏", + "\\Leftarrow": "⇐", + "\\Uparrow": "⇑", + "\\Rightarrow": "⇒", + "\\Downarrow": "⇓", + "\\Leftrightarrow": "⇔", + "\\Updownarrow": "⇕", + "\\Nwarrow": "⇖", + "\\Nearrow": "⇗", + "\\Searrow": "⇘", + "\\Swarrow": "⇙", + "\\Lleftarrow": "⇚", + "\\Rrightarrow": "⇛", + "\\leftsquigarrow": "⇜", + "\\rightsquigarrow": "⇝", + "\\nHuparrow": "⇞", + "\\nHdownarrow": "⇟", + "\\dashleftarrow": "⇠", + "\\updasharrow": "⇡", + "\\dashrightarrow": "⇢", + "\\downdasharrow": "⇣", + "\\LeftArrowBar": "⇤", + "\\RightArrowBar": "⇥", + "\\leftwhitearrow": "⇦", + "\\upwhitearrow": "⇧", + "\\rightwhitearrow": "⇨", + "\\downwhitearrow": "⇩", + "\\whitearrowupfrombar": "⇪", + "\\circleonrightarrow": "⇴", + "\\DownArrowUpArrow": "⇵", + "\\rightthreearrows": "⇶", + "\\nvleftarrow": "⇷", + "\\pfun": "⇸", + "\\nvleftrightarrow": "⇹", + "\\nVleftarrow": "⇺", + "\\ffun": "⇻", + "\\nVleftrightarrow": "⇼", + "\\leftarrowtriangle": "⇽", + "\\rightarrowtriangle": "⇾", + "\\leftrightarrowtriangle": "⇿", + "\\forall": "∀", + "\\complement": "∁", + "\\partial": "∂", + "\\exists": "∃", + "\\nexists": "∄", + "\\varnothing": "∅", + "\\increment": "∆", + "\\nabla": "∇", + "\\in": "∈", + "\\not\\in": "∉", + "\\smallin": "∊", + "\\ni": "∋", + "\\not\\ni": "∌", + "\\smallni": "∍", + "\\QED": "∎", + "\\prod": "∏", + "\\coprod": "∐", + "\\sum": "∑", + "\\mp": "∓", + "\\dotplus": "∔", + "\\setminus": "∖", + "{_\\ast}": "∗", + "\\circ": "∘", + "\\bullet": "∙", + "\\surd": "√", + "\\sqrt[3]": "∛", + "\\sqrt[4]": "∜", + "\\propto": "∝", + "\\infty": "∞", + "\\rightangle": "∟", + "\\angle": "∠", + "\\measuredangle": "∡", + "\\sphericalangle": "∢", + "\\mid": "∣", + "\\nmid": "∤", + "\\parallel": "∥", + "\\nparallel": "∦", + "\\wedge": "∧", + "\\vee": "∨", + "\\cap": "∩", + "\\cup": "∪", + "\\int": "∫", + "{\\int\\!\\int}": "∬", + "{\\int\\!\\int\\!\\int}": "∭", + "\\oint": "∮", + "\\surfintegral": "∯", + "\\volintegral": "∰", + "\\clwintegral": "∱", + "\\lcirclerightint": "∲", + "\\rcirclerightint": "∳", + "\\therefore": "∴", + "\\because": "∵", + "\\Colon": "∷", + "\\dotdiv": "∸", + "\\eqcolon": "∹", + "\\mathbin{{:}\\!\\!{-}\\!\\!{:}}": "∺", + "\\homothetic": "∻", + "\\sim": "∼", + "\\backsim": "∽", + "\\lazysinv": "∾", + "\\AC": "∿", + "\\wr": "≀", + "\\not\\sim": "≁", + "\\texteqsim": "≂", + "\\NotEqualTilde": "≂̸", + "\\simeq": "≃", + "\\not\\simeq": "≄", + "\\cong": "≅", + "\\approxnotequal": "≆", + "\\not\\cong": "≇", + "\\approx": "≈", + "\\not\\approx": "≉", + "\\approxeq": "≊", + "\\tildetrpl": "≋", + "\\not\\apid": "≋̸", + "\\allequal": "≌", + "\\asymp": "≍", + "\\Bumpeq": "≎", + "\\NotHumpDownHump": "≎̸", + "\\bumpeq": "≏", + "\\NotHumpEqual": "≏̸", + "\\doteq": "≐", + "\\not\\doteq": "≐̸", + "\\doteqdot": "≑", + "\\fallingdotseq": "≒", + "\\risingdotseq": "≓", + "\\coloneq": "≔", + "\\eqcirc": "≖", + "\\circeq": "≗", + "\\arceq": "≘", + "\\estimates": "≙", + "\\starequal": "≛", + "\\triangleq": "≜", + "\\eqdef": "≝", + "\\measeq": "≞", + "\\neq": "≠", + "\\equiv": "≡", + "\\not\\equiv": "≢", + "\\Equiv": "≣", + "\\leq": "≤", + "\\le": "≤", + "\\geq": "≥", + "\\leqq": "≦", + "\\geqq": "≧", + "\\lneqq": "≨", + "\\lvertneqq": "≨︀", + "\\gneqq": "≩", + "\\gvertneqq": "≩︀", + "\\ll": "≪", + "\\NotLessLess": "≪̸", + "\\gg": "≫", + "\\NotGreaterGreater": "≫̸", + "\\between": "≬", + "{\\not\\kern-0.3em\\times}": "≭", + "\\not<": "≮", + "\\not>": "≯", + "\\not\\leq": "≰", + "\\not\\geq": "≱", + "\\lessequivlnt": "≲", + "\\greaterequivlnt": "≳", + "\\lessgtr": "≶", + "\\gtrless": "≷", + "\\notlessgreater": "≸", + "\\notgreaterless": "≹", + "\\prec": "≺", + "\\succ": "≻", + "\\preccurlyeq": "≼", + "\\succcurlyeq": "≽", + "\\NotPrecedesTilde": "≾̸", + "\\NotSucceedsTilde": "≿̸", + "\\not\\prec": "⊀", + "\\not\\succ": "⊁", + "\\subset": "⊂", + "\\supset": "⊃", + "\\not\\subset": "⊄", + "\\not\\supset": "⊅", + "\\subseteq": "⊆", + "\\supseteq": "⊇", + "\\not\\subseteq": "⊈", + "\\not\\supseteq": "⊉", + "\\subsetneq": "⊊", + "\\varsubsetneqq": "⊊︀", + "\\supsetneq": "⊋", + "\\varsupsetneq": "⊋︀", + "\\cupleftarrow": "⊌", + "\\cupdot": "⊍", + "\\uplus": "⊎", + "\\sqsubset": "⊏", + "\\NotSquareSubset": "⊏̸", + "\\sqsupset": "⊐", + "\\NotSquareSuperset": "⊐̸", + "\\sqsubseteq": "⊑", + "\\sqsupseteq": "⊒", + "\\sqcap": "⊓", + "\\sqcup": "⊔", + "\\oplus": "⊕", + "\\ominus": "⊖", + "\\otimes": "⊗", + "\\oslash": "⊘", + "\\odot": "⊙", + "\\circledcirc": "⊚", + "\\circledast": "⊛", + "\\circledequal": "⊜", + "\\circleddash": "⊝", + "\\boxplus": "⊞", + "\\boxminus": "⊟", + "\\boxtimes": "⊠", + "\\boxdot": "⊡", + "\\vdash": "⊢", + "\\dashv": "⊣", + "\\top": "⊤", + "\\assert": "⊦", + "\\truestate": "⊧", + "\\forcesextra": "⊨", + "\\Vdash": "⊩", + "\\Vvdash": "⊪", + "\\VDash": "⊫", + "\\nvdash": "⊬", + "\\nvDash": "⊭", + "\\nVdash": "⊮", + "\\nVDash": "⊯", + "\\prurel": "⊰", + "\\scurel": "⊱", + "\\vartriangleleft": "⊲", + "\\vartriangleright": "⊳", + "\\trianglelefteq": "⊴", + "\\trianglerighteq": "⊵", + "\\original": "⊶", + "\\image": "⊷", + "\\multimap": "⊸", + "\\hermitconjmatrix": "⊹", + "\\intercal": "⊺", + "\\veebar": "⊻", + "\\barvee": "⊽", + "\\rightanglearc": "⊾", + "\\varlrtriangle": "⊿", + "\\bigcap": "⋂", + "\\bigcup": "⋃", + "\\diamond": "⋄", + "\\cdot": "⋅", + "\\star": "⋆", + "\\divideontimes": "⋇", + "\\bowtie": "⋈", + "\\ltimes": "⋉", + "\\rtimes": "⋊", + "\\leftthreetimes": "⋋", + "\\rightthreetimes": "⋌", + "\\backsimeq": "⋍", + "\\curlyvee": "⋎", + "\\curlywedge": "⋏", + "\\Subset": "⋐", + "\\Supset": "⋑", + "\\Cap": "⋒", + "\\Cup": "⋓", + "\\pitchfork": "⋔", + "\\hash": "⋕", + "\\lessdot": "⋖", + "\\gtrdot": "⋗", + "\\verymuchless": "⋘", + "\\verymuchgreater": "⋙", + "\\lesseqgtr": "⋚", + "\\gtreqless": "⋛", + "\\eqless": "⋜", + "\\eqgtr": "⋝", + "\\curlyeqprec": "⋞", + "\\curlyeqsucc": "⋟", + "\\npreceq": "⋠", + "\\nsucceq": "⋡", + "\\not\\sqsubseteq": "⋢", + "\\not\\sqsupseteq": "⋣", + "\\sqsubsetneq": "⋤", + "\\Elzsqspne": "⋥", + "\\lnsim": "⋦", + "\\gnsim": "⋧", + "\\precedesnotsimilar": "⋨", + "\\succnsim": "⋩", + "\\ntriangleleft": "⋪", + "\\ntriangleright": "⋫", + "\\ntrianglelefteq": "⋬", + "\\ntrianglerighteq": "⋭", + "\\vdots": "⋮", + "\\cdots": "⋯", + "\\upslopeellipsis": "⋰", + "\\downslopeellipsis": "⋱", + "\\disin": "⋲", + "\\varisins": "⋳", + "\\isins": "⋴", + "\\isindot": "⋵", + "\\barin": "⋶", + "\\isinobar": "⋷", + "\\isinvb": "⋸", + "\\isinE": "⋹", + "\\nisd": "⋺", + "\\varnis": "⋻", + "\\nis": "⋼", + "\\varniobar": "⋽", + "\\niobar": "⋾", + "\\bagmember": "⋿", + "\\diameter": "⌀", + "\\house": "⌂", + "\\barwedge": "⌅", + "\\varbarwedge": "⌅", + "\\perspcorrespond": "⌆", + "\\lceil": "⌈", + "\\rceil": "⌉", + "\\lfloor": "⌊", + "\\rfloor": "⌋", + "\\invneg": "⌐", + "\\wasylozenge": "⌑", + "\\profline": "⌒", + "\\profsurf": "⌓", + "\\recorder": "⌕", + "{\\mathchar\"2208}": "⌖", + "\\viewdata": "⌗", + "\\turnednot": "⌙", + "\\ulcorner": "⌜", + "\\urcorner": "⌝", + "\\llcorner": "⌞", + "\\lrcorner": "⌟", + "\\inttop": "⌠", + "\\intbottom": "⌡", + "\\frown": "⌢", + "\\smile": "⌣", + "\\varhexagonlrbonds": "⌬", + "\\conictaper": "⌲", + "\\topbot": "⌶", + "\\APLinv": "⌹", + "\\notslash": "⌿", + "\\notbackslash": "⍀", + "\\APLleftarrowbox": "⍇", + "\\APLrightarrowbox": "⍈", + "\\invdiameter": "⍉", + "\\APLuparrowbox": "⍐", + "\\APLboxupcaret": "⍓", + "\\APLdownarrowbox": "⍗", + "\\APLcomment": "⍝", + "\\APLinput": "⍞", + "\\APLlog": "⍟", + "\\APLboxquestion": "⍰", + "\\rangledownzigzagarrow": "⍼", + "\\hexagon": "⎔", + "\\lparenuend": "⎛", + "\\lparenextender": "⎜", + "\\lparenlend": "⎝", + "\\rparenuend": "⎞", + "\\rparenextender": "⎟", + "\\rparenlend": "⎠", + "\\lbrackuend": "⎡", + "\\lbrackextender": "⎢", + "\\Elzdlcorn": "⎣", + "\\rbrackuend": "⎤", + "\\rbrackextender": "⎥", + "\\rbracklend": "⎦", + "\\lbraceuend": "⎧", + "\\lbracemid": "⎨", + "\\lbracelend": "⎩", + "\\vbraceextender": "⎪", + "\\rbraceuend": "⎫", + "\\rbracemid": "⎬", + "\\rbracelend": "⎭", + "\\intextender": "⎮", + "\\harrowextender": "⎯", + "\\lmoustache": "⎰", + "\\rmoustache": "⎱", + "\\sumtop": "⎲", + "\\sumbottom": "⎳", + "\\overbracket": "⎴", + "\\underbracket": "⎵", + "\\bbrktbrk": "⎶", + "\\sqrtbottom": "⎷", + "\\lvboxline": "⎸", + "\\rvboxline": "⎹", + "\\varcarriagereturn": "⏎", + "\\overparen": "⏜", + "\\underparen": "⏝", + "\\overbrace": "⏞", + "\\underbrace": "⏟", + "\\obrbrak": "⏠", + "\\ubrbrak": "⏡", + "\\trapezium": "⏢", + "\\benzenr": "⏣", + "\\strns": "⏤", + "\\fltns": "⏥", + "\\accurrent": "⏦", + "\\elinters": "⏧", + "\\textvisiblespace": "␣", + "\\ding{172}": "①", + "\\ding{173}": "②", + "\\ding{174}": "③", + "\\ding{175}": "④", + "\\ding{176}": "⑤", + "\\ding{177}": "⑥", + "\\ding{178}": "⑦", + "\\ding{179}": "⑧", + "\\ding{180}": "⑨", + "\\ding{181}": "⑩", + "\\circledS": "Ⓢ", + "\\Elzdshfnc": "┆", + "\\Elzsqfnw": "┙", + "\\diagup": "╱", + "\\blockuphalf": "▀", + "\\blocklowhalf": "▄", + "\\blockfull": "█", + "\\blocklefthalf": "▌", + "\\blockrighthalf": "▐", + "\\blockqtrshaded": "░", + "\\blockhalfshaded": "▒", + "\\blockthreeqtrshaded": "▓", + "\\ding{110}": "■", + "\\mdlgblksquare": "■", + "\\square": "□", + "\\Box": "□", + "\\squoval": "▢", + "\\blackinwhitesquare": "▣", + "\\squarehfill": "▤", + "\\squarevfill": "▥", + "\\squarehvfill": "▦", + "\\squarenwsefill": "▧", + "\\squareneswfill": "▨", + "\\squarecrossfill": "▩", + "\\smwhtsquare": "▫", + "\\hrectangleblack": "▬", + "\\fbox{~~}": "▭", + "\\vrectangleblack": "▮", + "\\Elzvrecto": "▯", + "\\parallelogramblack": "▰", + "\\ding{115}": "▲", + "\\bigblacktriangleup": "▲", + "\\bigtriangleup": "△", + "\\blacktriangle": "▴", + "\\vartriangle": "▵", + "\\RHD": "▶", + "\\rhd": "▷", + "\\blacktriangleright": "▸", + "\\triangleright": "▹", + "\\blackpointerright": "►", + "\\whitepointerright": "▻", + "\\ding{116}": "▼", + "\\bigblacktriangledown": "▼", + "\\bigtriangledown": "▽", + "\\blacktriangledown": "▾", + "\\triangledown": "▿", + "\\LHD": "◀", + "\\lhd": "◁", + "\\blacktriangleleft": "◂", + "\\triangleleft": "◃", + "\\blackpointerleft": "◄", + "\\whitepointerleft": "◅", + "\\ding{117}": "◆", + "\\Diamondblack": "◆", + "\\Diamond": "◇", + "\\blackinwhitediamond": "◈", + "\\fisheye": "◉", + "\\lozenge": "◊", + "\\dottedcircle": "◌", + "\\circlevertfill": "◍", + "\\bullseye": "◎", + "\\ding{108}": "●", + "\\CIRCLE": "●", + "\\Elzcirfl": "◐", + "\\Elzcirfr": "◑", + "\\Elzcirfb": "◒", + "\\circletophalfblack": "◓", + "\\circleurquadblack": "◔", + "\\blackcircleulquadwhite": "◕", + "\\LEFTCIRCLE": "◖", + "\\ding{119}": "◗", + "\\RIGHTCIRCLE": "◗", + "\\Elzrvbull": "◘", + "\\inversewhitecircle": "◙", + "\\invwhiteupperhalfcircle": "◚", + "\\invwhitelowerhalfcircle": "◛", + "\\ularc": "◜", + "\\urarc": "◝", + "\\lrarc": "◞", + "\\llarc": "◟", + "\\topsemicircle": "◠", + "\\botsemicircle": "◡", + "\\lrblacktriangle": "◢", + "\\llblacktriangle": "◣", + "\\ulblacktriangle": "◤", + "\\urblacktriangle": "◥", + "\\smwhtcircle": "◦", + "\\Elzsqfl": "◧", + "\\Elzsqfr": "◨", + "\\squareulblack": "◩", + "\\Elzsqfse": "◪", + "\\boxbar": "◫", + "\\trianglecdot": "◬", + "\\triangleleftblack": "◭", + "\\trianglerightblack": "◮", + "\\bigcirc": "◯", + "\\squareulquad": "◰", + "\\squarellquad": "◱", + "\\squarelrquad": "◲", + "\\squareurquad": "◳", + "\\circleulquad": "◴", + "\\circlellquad": "◵", + "\\circlelrquad": "◶", + "\\circleurquad": "◷", + "\\ultriangle": "◸", + "\\urtriangle": "◹", + "\\lltriangle": "◺", + "\\mdsmwhtsquare": "◽", + "\\mdsmblksquare": "◾", + "\\lrtriangle": "◿", + "\\ding{72}": "★", + "\\bigstar": "★", + "\\ding{73}": "☆", + "\\bigwhitestar": "☆", + "\\Sun": "☉", + "\\ding{37}": "☎", + "\\Square": "☐", + "\\CheckedBox": "☑", + "\\XBox": "☒", + "\\steaming": "☕", + "\\ding{42}": "☛", + "\\ding{43}": "☞", + "\\pointright": "☞", + "\\skull": "☠", + "\\danger": "☡", + "\\radiation": "☢", + "\\biohazard": "☣", + "\\yinyang": "☯", + "\\frownie": "☹", + "\\smiley": "☺", + "\\blacksmiley": "☻", + "\\sun": "☼", + "\\rightmoon": "☽", + "\\leftmoon": "☾", + "\\mercury": "☿", + "\\venus": "♀", + "\\female": "♀", + "\\earth": "♁", + "\\male": "♂", + "\\jupiter": "♃", + "\\saturn": "♄", + "\\uranus": "♅", + "\\neptune": "♆", + "\\pluto": "♇", + "\\aries": "♈", + "\\taurus": "♉", + "\\gemini": "♊", + "\\cancer": "♋", + "\\leo": "♌", + "\\virgo": "♍", + "\\libra": "♎", + "\\scorpio": "♏", + "\\sagittarius": "♐", + "\\capricornus": "♑", + "\\aquarius": "♒", + "\\pisces": "♓", + "\\ding{171}": "♠", + "\\spadesuit": "♠", + "\\heartsuit": "♡", + "\\ding{168}": "♣", + "\\clubsuit": "♣", + "\\varspadesuit": "♤", + "\\ding{170}": "♥", + "\\varheartsuit": "♥", + "\\ding{169}": "♦", + "\\vardiamondsuit": "♦", + "\\varclubsuit": "♧", + "\\quarternote": "♩", + "\\eighthnote": "♪", + "\\twonotes": "♫", + "\\sixteenthnote": "♬", + "\\flat": "♭", + "\\natural": "♮", + "\\sharp": "♯", + "\\recycle": "♻", + "\\acidfree": "♾", + "\\dicei": "⚀", + "\\diceii": "⚁", + "\\diceiii": "⚂", + "\\diceiv": "⚃", + "\\dicev": "⚄", + "\\dicevi": "⚅", + "\\circledrightdot": "⚆", + "\\circledtwodots": "⚇", + "\\blackcircledrightdot": "⚈", + "\\blackcircledtwodots": "⚉", + "\\anchor": "⚓", + "\\swords": "⚔", + "\\warning": "⚠", + "\\Hermaphrodite": "⚥", + "\\medcirc": "⚪", + "\\medbullet": "⚫", + "\\mdsmwhtcircle": "⚬", + "\\neuter": "⚲", + "\\ding{33}": "✁", + "\\ding{34}": "✂", + "\\ding{35}": "✃", + "\\ding{36}": "✄", + "\\ding{38}": "✆", + "\\ding{39}": "✇", + "\\ding{40}": "✈", + "\\ding{41}": "✉", + "\\ding{44}": "✌", + "\\ding{45}": "✍", + "\\ding{46}": "✎", + "\\pencil": "✎", + "\\ding{47}": "✏", + "\\ding{48}": "✐", + "\\ding{49}": "✑", + "\\ding{50}": "✒", + "\\ding{51}": "✓", + "\\checkmark": "✓", + "\\ding{52}": "✔", + "\\ding{53}": "✕", + "\\ding{54}": "✖", + "\\ding{55}": "✗", + "\\ballotx": "✗", + "\\ding{56}": "✘", + "\\ding{57}": "✙", + "\\ding{58}": "✚", + "\\ding{59}": "✛", + "\\ding{60}": "✜", + "\\ding{61}": "✝", + "\\ding{62}": "✞", + "\\ding{63}": "✟", + "\\ding{64}": "✠", + "\\maltese": "✠", + "\\ding{65}": "✡", + "\\ding{66}": "✢", + "\\ding{67}": "✣", + "\\ding{68}": "✤", + "\\ding{69}": "✥", + "\\ding{70}": "✦", + "\\ding{71}": "✧", + "\\ding{74}": "✪", + "\\circledstar": "✪", + "\\ding{75}": "✫", + "\\ding{76}": "✬", + "\\ding{77}": "✭", + "\\ding{78}": "✮", + "\\ding{79}": "✯", + "\\ding{80}": "✰", + "\\ding{81}": "✱", + "\\ding{82}": "✲", + "\\ding{83}": "✳", + "\\ding{84}": "✴", + "\\ding{85}": "✵", + "\\ding{86}": "✶", + "\\varstar": "✶", + "\\ding{87}": "✷", + "\\ding{88}": "✸", + "\\ding{89}": "✹", + "\\ding{90}": "✺", + "\\ding{91}": "✻", + "\\ding{92}": "✼", + "\\ding{93}": "✽", + "\\dingasterisk": "✽", + "\\ding{94}": "✾", + "\\ding{95}": "✿", + "\\ding{96}": "❀", + "\\ding{97}": "❁", + "\\ding{98}": "❂", + "\\ding{99}": "❃", + "\\ding{100}": "❄", + "\\ding{101}": "❅", + "\\ding{102}": "❆", + "\\ding{103}": "❇", + "\\ding{104}": "❈", + "\\ding{105}": "❉", + "\\ding{106}": "❊", + "\\ding{107}": "❋", + "\\ding{109}": "❍", + "\\ding{111}": "❏", + "\\ding{112}": "❐", + "\\ding{113}": "❑", + "\\ding{114}": "❒", + "\\ding{118}": "❖", + "\\ding{120}": "❘", + "\\ding{121}": "❙", + "\\ding{122}": "❚", + "\\ding{123}": "❛", + "\\ding{124}": "❜", + "\\ding{125}": "❝", + "\\ding{126}": "❞", + "\\ding{161}": "❡", + "\\ding{162}": "❢", + "\\ding{163}": "❣", + "\\ding{164}": "❤", + "\\ding{165}": "❥", + "\\ding{166}": "❦", + "\\ding{167}": "❧", + "\\ding{182}": "❶", + "\\ding{183}": "❷", + "\\ding{184}": "❸", + "\\ding{185}": "❹", + "\\ding{186}": "❺", + "\\ding{187}": "❻", + "\\ding{188}": "❼", + "\\ding{189}": "❽", + "\\ding{190}": "❾", + "\\ding{191}": "❿", + "\\ding{192}": "➀", + "\\ding{193}": "➁", + "\\ding{194}": "➂", + "\\ding{195}": "➃", + "\\ding{196}": "➄", + "\\ding{197}": "➅", + "\\ding{198}": "➆", + "\\ding{199}": "➇", + "\\ding{200}": "➈", + "\\ding{201}": "➉", + "\\ding{202}": "➊", + "\\ding{203}": "➋", + "\\ding{204}": "➌", + "\\ding{205}": "➍", + "\\ding{206}": "➎", + "\\ding{207}": "➏", + "\\ding{208}": "➐", + "\\ding{209}": "➑", + "\\ding{210}": "➒", + "\\ding{211}": "➓", + "\\ding{212}": "➔", + "\\ding{216}": "➘", + "\\ding{217}": "➙", + "\\ding{218}": "➚", + "\\ding{219}": "➛", + "\\draftingarrow": "➛", + "\\ding{220}": "➜", + "\\ding{221}": "➝", + "\\ding{222}": "➞", + "\\ding{223}": "➟", + "\\ding{224}": "➠", + "\\ding{225}": "➡", + "\\ding{226}": "➢", + "\\arrowbullet": "➢", + "\\ding{227}": "➣", + "\\ding{228}": "➤", + "\\ding{229}": "➥", + "\\ding{230}": "➦", + "\\ding{231}": "➧", + "\\ding{232}": "➨", + "\\ding{233}": "➩", + "\\ding{234}": "➪", + "\\ding{235}": "➫", + "\\ding{236}": "➬", + "\\ding{237}": "➭", + "\\ding{238}": "➮", + "\\ding{239}": "➯", + "\\ding{241}": "➱", + "\\ding{242}": "➲", + "\\ding{243}": "➳", + "\\ding{244}": "➴", + "\\ding{245}": "➵", + "\\ding{246}": "➶", + "\\ding{247}": "➷", + "\\ding{248}": "➸", + "\\ding{249}": "➹", + "\\ding{250}": "➺", + "\\ding{251}": "➻", + "\\ding{252}": "➼", + "\\ding{253}": "➽", + "\\ding{254}": "➾", + "\\threedangle": "⟀", + "\\whiteinwhitetriangle": "⟁", + "\\perp": "⟂", + "\\subsetcirc": "⟃", + "\\supsetcirc": "⟄", + "\\Lbag": "⟅", + "\\Rbag": "⟆", + "\\veedot": "⟇", + "\\bsolhsub": "⟈", + "\\suphsol": "⟉", + "\\longdivision": "⟌", + "\\Diamonddot": "⟐", + "\\wedgedot": "⟑", + "\\upin": "⟒", + "\\pullback": "⟓", + "\\pushout": "⟔", + "\\leftouterjoin": "⟕", + "\\rightouterjoin": "⟖", + "\\fullouterjoin": "⟗", + "\\bigbot": "⟘", + "\\bigtop": "⟙", + "\\DashVDash": "⟚", + "\\dashVdash": "⟛", + "\\multimapinv": "⟜", + "\\vlongdash": "⟝", + "\\longdashv": "⟞", + "\\cirbot": "⟟", + "\\lozengeminus": "⟠", + "\\concavediamond": "⟡", + "\\concavediamondtickleft": "⟢", + "\\concavediamondtickright": "⟣", + "\\whitesquaretickleft": "⟤", + "\\whitesquaretickright": "⟥", + "\\llbracket": "⟦", + "\\rrbracket": "⟧", + "\\langle": "⟨", + "\\rangle": "⟩", + "\\lang": "⟪", + "\\rang": "⟫", + "\\Lbrbrak": "⟬", + "\\Rbrbrak": "⟭", + "\\lgroup": "⟮", + "\\rgroup": "⟯", + "\\UUparrow": "⟰", + "\\DDownarrow": "⟱", + "\\acwgapcirclearrow": "⟲", + "\\cwgapcirclearrow": "⟳", + "\\rightarrowonoplus": "⟴", + "\\longleftarrow": "⟵", + "\\longrightarrow": "⟶", + "\\longleftrightarrow": "⟷", + "\\Longleftarrow": "⟸", + "\\Longrightarrow": "⟹", + "\\Longleftrightarrow": "⟺", + "\\longmapsfrom": "⟻", + "\\longmapsto": "⟼", + "\\Longmapsfrom": "⟽", + "\\Longmapsto": "⟾", + "\\sim\\joinrel\\leadsto": "⟿", + "\\psur": "⤀", + "\\nVtwoheadrightarrow": "⤁", + "\\nvLeftarrow": "⤂", + "\\nvRightarrow": "⤃", + "\\nvLeftrightarrow": "⤄", + "\\Mapsfrom": "⤆", + "\\Mapsto": "⤇", + "\\downarrowbarred": "⤈", + "\\uparrowbarred": "⤉", + "\\Uuparrow": "⤊", + "\\Ddownarrow": "⤋", + "\\leftbkarrow": "⤌", + "\\rightbkarrow": "⤍", + "\\leftdbkarrow": "⤎", + "\\dbkarow": "⤏", + "\\drbkarow": "⤐", + "\\rightdotarrow": "⤑", + "\\UpArrowBar": "⤒", + "\\DownArrowBar": "⤓", + "\\pinj": "⤔", + "\\finj": "⤕", + "\\bij": "⤖", + "\\nvtwoheadrightarrowtail": "⤗", + "\\nVtwoheadrightarrowtail": "⤘", + "\\lefttail": "⤙", + "\\righttail": "⤚", + "\\leftdbltail": "⤛", + "\\rightdbltail": "⤜", + "\\diamondleftarrow": "⤝", + "\\rightarrowdiamond": "⤞", + "\\diamondleftarrowbar": "⤟", + "\\barrightarrowdiamond": "⤠", + "\\nwsearrow": "⤡", + "\\neswarrow": "⤢", + "\\rdiagovfdiag": "⤫", + "\\fdiagovrdiag": "⤬", + "\\seovnearrow": "⤭", + "\\neovsearrow": "⤮", + "\\fdiagovnearrow": "⤯", + "\\rdiagovsearrow": "⤰", + "\\neovnwarrow": "⤱", + "\\nwovnearrow": "⤲", + "\\uprightcurvearrow": "⤴", + "\\downrightcurvedarrow": "⤵", + "\\cwrightarcarrow": "⤸", + "\\acwleftarcarrow": "⤹", + "\\acwoverarcarrow": "⤺", + "\\acwunderarcarrow": "⤻", + "\\curvearrowrightminus": "⤼", + "\\curvearrowleftplus": "⤽", + "\\cwundercurvearrow": "⤾", + "\\ccwundercurvearrow": "⤿", + "\\Elolarr": "⥀", + "\\Elorarr": "⥁", + "\\ElzRlarr": "⥂", + "\\leftarrowshortrightarrow": "⥃", + "\\ElzrLarr": "⥄", + "\\rightarrowplus": "⥅", + "\\leftarrowplus": "⥆", + "\\Elzrarrx": "⥇", + "\\leftrightarrowcircle": "⥈", + "\\twoheaduparrowcircle": "⥉", + "\\leftrightharpoon": "⥊", + "\\rightleftharpoon": "⥋", + "\\updownharpoonrightleft": "⥌", + "\\updownharpoonleftright": "⥍", + "\\LeftRightVector": "⥎", + "\\RightUpDownVector": "⥏", + "\\DownLeftRightVector": "⥐", + "\\LeftUpDownVector": "⥑", + "\\LeftVectorBar": "⥒", + "\\RightVectorBar": "⥓", + "\\RightUpVectorBar": "⥔", + "\\RightDownVectorBar": "⥕", + "\\DownLeftVectorBar": "⥖", + "\\DownRightVectorBar": "⥗", + "\\LeftUpVectorBar": "⥘", + "\\LeftDownVectorBar": "⥙", + "\\LeftTeeVector": "⥚", + "\\RightTeeVector": "⥛", + "\\RightUpTeeVector": "⥜", + "\\RightDownTeeVector": "⥝", + "\\DownLeftTeeVector": "⥞", + "\\DownRightTeeVector": "⥟", + "\\LeftUpTeeVector": "⥠", + "\\LeftDownTeeVector": "⥡", + "\\leftleftharpoons": "⥢", + "\\upupharpoons": "⥣", + "\\rightrightharpoons": "⥤", + "\\downdownharpoons": "⥥", + "\\leftrightharpoonsup": "⥦", + "\\leftrightharpoonsdown": "⥧", + "\\rightleftharpoonsup": "⥨", + "\\rightleftharpoonsdown": "⥩", + "\\leftbarharpoon": "⥪", + "\\barleftharpoon": "⥫", + "\\rightbarharpoon": "⥬", + "\\barrightharpoon": "⥭", + "\\UpEquilibrium": "⥮", + "\\ReverseUpEquilibrium": "⥯", + "\\RoundImplies": "⥰", + "\\equalrightarrow": "⥱", + "\\similarrightarrow": "⥲", + "\\leftarrowsimilar": "⥳", + "\\rightarrowsimilar": "⥴", + "\\rightarrowapprox": "⥵", + "\\ltlarr": "⥶", + "\\leftarrowless": "⥷", + "\\gtrarr": "⥸", + "\\subrarr": "⥹", + "\\leftarrowsubset": "⥺", + "\\suplarr": "⥻", + "\\upfishtail": "⥾", + "\\downfishtail": "⥿", + "\\Elztfnc": "⦀", + "\\spot": "⦁", + "\\typecolon": "⦂", + "\\lBrace": "⦃", + "\\rBrace": "⦄", + "\\Elroang": "⦆", + "\\limg": "⦇", + "\\rimg": "⦈", + "\\lblot": "⦉", + "\\rblot": "⦊", + "\\lbrackubar": "⦋", + "\\rbrackubar": "⦌", + "\\lbrackultick": "⦍", + "\\rbracklrtick": "⦎", + "\\lbracklltick": "⦏", + "\\rbrackurtick": "⦐", + "\\langledot": "⦑", + "\\rangledot": "⦒", + "<\\kern-0.58em(": "⦓", + "\\Lparengtr": "⦕", + "\\Rparenless": "⦖", + "\\lblkbrbrak": "⦗", + "\\rblkbrbrak": "⦘", + "\\Elzddfnc": "⦙", + "\\vzigzag": "⦚", + "\\measuredangleleft": "⦛", + "\\Angle": "⦜", + "\\rightanglemdot": "⦝", + "\\angles": "⦞", + "\\angdnr": "⦟", + "\\Elzlpargt": "⦠", + "\\sphericalangleup": "⦡", + "\\turnangle": "⦢", + "\\revangle": "⦣", + "\\angleubar": "⦤", + "\\revangleubar": "⦥", + "\\wideangledown": "⦦", + "\\wideangleup": "⦧", + "\\measanglerutone": "⦨", + "\\measanglelutonw": "⦩", + "\\measanglerdtose": "⦪", + "\\measangleldtosw": "⦫", + "\\measangleurtone": "⦬", + "\\measangleultonw": "⦭", + "\\measangledrtose": "⦮", + "\\measangledltosw": "⦯", + "\\revemptyset": "⦰", + "\\emptysetobar": "⦱", + "\\emptysetocirc": "⦲", + "\\emptysetoarr": "⦳", + "\\emptysetoarrl": "⦴", + "\\circledparallel": "⦷", + "\\circledbslash": "⦸", + "\\operp": "⦹", + "\\obot": "⦺", + "\\olcross": "⦻", + "\\odotslashdot": "⦼", + "\\uparrowoncircle": "⦽", + "\\circledwhitebullet": "⦾", + "\\circledbullet": "⦿", + "\\circledless": "⧀", + "\\circledgtr": "⧁", + "\\cirscir": "⧂", + "\\cirE": "⧃", + "\\boxslash": "⧄", + "\\boxbslash": "⧅", + "\\boxast": "⧆", + "\\boxcircle": "⧇", + "\\boxbox": "⧈", + "\\boxonbox": "⧉", + "\\ElzLap": "⧊", + "\\Elzdefas": "⧋", + "\\triangles": "⧌", + "\\triangleserifs": "⧍", + "\\rtriltri": "⧎", + "\\LeftTriangleBar": "⧏", + "\\NotLeftTriangleBar": "⧏̸", + "\\RightTriangleBar": "⧐", + "\\NotRightTriangleBar": "⧐̸", + "\\lfbowtie": "⧑", + "\\rfbowtie": "⧒", + "\\fbowtie": "⧓", + "\\lftimes": "⧔", + "\\rftimes": "⧕", + "\\hourglass": "⧖", + "\\blackhourglass": "⧗", + "\\lvzigzag": "⧘", + "\\rvzigzag": "⧙", + "\\Lvzigzag": "⧚", + "\\Rvzigzag": "⧛", + "\\tieinfty": "⧝", + "\\nvinfty": "⧞", + "\\multimapboth": "⧟", + "\\laplac": "⧠", + "\\lrtriangleeq": "⧡", + "\\shuffle": "⧢", + "\\eparsl": "⧣", + "\\smeparsl": "⧤", + "\\eqvparsl": "⧥", + "\\gleichstark": "⧦", + "\\thermod": "⧧", + "\\downtriangleleftblack": "⧨", + "\\downtrianglerightblack": "⧩", + "\\blackdiamonddownarrow": "⧪", + "\\blacklozenge": "⧫", + "\\circledownarrow": "⧬", + "\\blackcircledownarrow": "⧭", + "\\errbarsquare": "⧮", + "\\errbarblacksquare": "⧯", + "\\errbardiamond": "⧰", + "\\errbarblackdiamond": "⧱", + "\\errbarcircle": "⧲", + "\\errbarblackcircle": "⧳", + "\\RuleDelayed": "⧴", + "\\dsol": "⧶", + "\\rsolbar": "⧷", + "\\xsol": "⧸", + "\\zhide": "⧹", + "\\doubleplus": "⧺", + "\\tripleplus": "⧻", + "\\lcurvyangle": "⧼", + "\\rcurvyangle": "⧽", + "\\tplus": "⧾", + "\\tminus": "⧿", + "\\bigodot": "⨀", + "\\bigoplus": "⨁", + "\\bigotimes": "⨂", + "\\bigcupdot": "⨃", + "\\Elxuplus": "⨄", + "\\ElzThr": "⨅", + "\\Elxsqcup": "⨆", + "\\ElzInf": "⨇", + "\\ElzSup": "⨈", + "\\varprod": "⨉", + "\\modtwosum": "⨊", + "\\sumint": "⨋", + "\\iiiint": "⨌", + "\\ElzCint": "⨍", + "\\intBar": "⨎", + "\\clockoint": "⨏", + "\\awint": "⨑", + "\\rppolint": "⨒", + "\\scpolint": "⨓", + "\\npolint": "⨔", + "\\pointint": "⨕", + "\\sqrint": "⨖", + "\\intlarhk": "⨗", + "\\intx": "⨘", + "\\intcap": "⨙", + "\\intcup": "⨚", + "\\upint": "⨛", + "\\lowint": "⨜", + "\\Join": "⨝", + "\\bigtriangleleft": "⨞", + "\\zcmp": "⨟", + "\\zpipe": "⨠", + "\\zproject": "⨡", + "\\ringplus": "⨢", + "\\plushat": "⨣", + "\\simplus": "⨤", + "\\plussim": "⨦", + "\\plussubtwo": "⨧", + "\\plustrif": "⨨", + "\\commaminus": "⨩", + "\\minusfdots": "⨫", + "\\minusrdots": "⨬", + "\\ElzTimes": "⨯", + "\\dottimes": "⨰", + "\\timesbar": "⨱", + "\\btimes": "⨲", + "\\smashtimes": "⨳", + "\\otimeshat": "⨶", + "\\Otimes": "⨷", + "\\odiv": "⨸", + "\\triangleplus": "⨹", + "\\triangleminus": "⨺", + "\\triangletimes": "⨻", + "\\intprodr": "⨽", + "\\fcmp": "⨾", + "\\amalg": "⨿", + "\\capdot": "⩀", + "\\uminus": "⩁", + "\\barcup": "⩂", + "\\barcap": "⩃", + "\\capwedge": "⩄", + "\\cupvee": "⩅", + "\\cupovercap": "⩆", + "\\capovercup": "⩇", + "\\cupbarcap": "⩈", + "\\capbarcup": "⩉", + "\\twocups": "⩊", + "\\twocaps": "⩋", + "\\closedvarcup": "⩌", + "\\closedvarcap": "⩍", + "\\Sqcap": "⩎", + "\\Sqcup": "⩏", + "\\closedvarcupsmashprod": "⩐", + "\\wedgeodot": "⩑", + "\\veeodot": "⩒", + "\\ElzAnd": "⩓", + "\\ElzOr": "⩔", + "\\ElOr": "⩖", + "\\bigslopedvee": "⩗", + "\\bigslopedwedge": "⩘", + "\\veeonwedge": "⩙", + "\\wedgemidvert": "⩚", + "\\veemidvert": "⩛", + "\\midbarwedge": "⩜", + "\\midbarvee": "⩝", + "\\Elzminhat": "⩟", + "\\wedgedoublebar": "⩠", + "\\varveebar": "⩡", + "\\doublebarvee": "⩢", + "\\dsub": "⩤", + "\\rsub": "⩥", + "\\eqdot": "⩦", + "\\dotequiv": "⩧", + "\\equivVert": "⩨", + "\\equivVvert": "⩩", + "\\dotsim": "⩪", + "\\simrdots": "⩫", + "\\simminussim": "⩬", + "\\congdot": "⩭", + "\\stackrel{*}{=}": "⩮", + "\\hatapprox": "⩯", + "\\approxeqq": "⩰", + "\\eqqplus": "⩱", + "\\pluseqq": "⩲", + "\\eqqsim": "⩳", + "\\Coloneqq": "⩴", + "\\Equal": "⩵", + "\\Same": "⩶", + "\\ddotseq": "⩷", + "\\equivDD": "⩸", + "\\ltcir": "⩹", + "\\gtcir": "⩺", + "\\ltquest": "⩻", + "\\gtquest": "⩼", + "\\leqslant": "⩽", + "\\nleqslant": "⩽̸", + "\\geqslant": "⩾", + "\\ngeqslant": "⩾̸", + "\\lesdot": "⩿", + "\\gesdot": "⪀", + "\\lesdoto": "⪁", + "\\gesdoto": "⪂", + "\\lesdotor": "⪃", + "\\gesdotol": "⪄", + "\\lessapprox": "⪅", + "\\gtrapprox": "⪆", + "\\lneq": "⪇", + "\\gneq": "⪈", + "\\lnapprox": "⪉", + "\\gnapprox": "⪊", + "\\lesseqqgtr": "⪋", + "\\gtreqqless": "⪌", + "\\lsime": "⪍", + "\\gsime": "⪎", + "\\lsimg": "⪏", + "\\gsiml": "⪐", + "\\lgE": "⪑", + "\\glE": "⪒", + "\\lesges": "⪓", + "\\gesles": "⪔", + "\\eqslantless": "⪕", + "\\eqslantgtr": "⪖", + "\\elsdot": "⪗", + "\\egsdot": "⪘", + "\\eqqless": "⪙", + "\\eqqgtr": "⪚", + "\\eqqslantless": "⪛", + "\\eqqslantgtr": "⪜", + "\\Pisymbol{ppi020}{117}": "⪝", + "\\Pisymbol{ppi020}{105}": "⪞", + "\\simlE": "⪟", + "\\simgE": "⪠", + "\\NestedLessLess": "⪡", + "\\NotNestedLessLess": "⪡̸", + "\\NestedGreaterGreater": "⪢", + "\\NotNestedGreaterGreater": "⪢̸", + "\\partialmeetcontraction": "⪣", + "\\glj": "⪤", + "\\gla": "⪥", + "\\leftslice": "⪦", + "\\rightslice": "⪧", + "\\lescc": "⪨", + "\\gescc": "⪩", + "\\smt": "⪪", + "\\lat": "⪫", + "\\smte": "⪬", + "\\late": "⪭", + "\\bumpeqq": "⪮", + "\\preceq": "⪯", + "\\not\\preceq": "⪯̸", + "\\succeq": "⪰", + "\\not\\succeq": "⪰̸", + "\\precneq": "⪱", + "\\succneq": "⪲", + "\\preceqq": "⪳", + "\\succeqq": "⪴", + "\\precneqq": "⪵", + "\\succneqq": "⪶", + "\\precapprox": "⪷", + "\\succapprox": "⪸", + "\\precnapprox": "⪹", + "\\succnapprox": "⪺", + "\\llcurly": "⪻", + "\\ggcurly": "⪼", + "\\subsetdot": "⪽", + "\\supsetdot": "⪾", + "\\subsetplus": "⪿", + "\\supsetplus": "⫀", + "\\submult": "⫁", + "\\supmult": "⫂", + "\\subedot": "⫃", + "\\supedot": "⫄", + "\\subseteqq": "⫅", + "\\nsubseteqq": "⫅̸", + "\\supseteqq": "⫆", + "\\nsupseteqq": "⫆̸", + "\\subsim": "⫇", + "\\supsim": "⫈", + "\\subsetapprox": "⫉", + "\\supsetapprox": "⫊", + "\\subsetneqq": "⫋", + "\\supsetneqq": "⫌", + "\\lsqhook": "⫍", + "\\rsqhook": "⫎", + "\\csub": "⫏", + "\\csup": "⫐", + "\\csube": "⫑", + "\\csupe": "⫒", + "\\subsup": "⫓", + "\\supsub": "⫔", + "\\subsub": "⫕", + "\\supsup": "⫖", + "\\suphsub": "⫗", + "\\supdsub": "⫘", + "\\forkv": "⫙", + "\\topfork": "⫚", + "\\mlcp": "⫛", + "\\forks": "⫝̸", + "\\forksnot": "⫝", + "\\shortlefttack": "⫞", + "\\shortdowntack": "⫟", + "\\shortuptack": "⫠", + "\\perps": "⫡", + "\\vDdash": "⫢", + "\\dashV": "⫣", + "\\Dashv": "⫤", + "\\DashV": "⫥", + "\\varVdash": "⫦", + "\\Barv": "⫧", + "\\vBar": "⫨", + "\\vBarv": "⫩", + "\\Top": "⫪", + "\\Not": "⫬", + "\\bNot": "⫭", + "\\revnmid": "⫮", + "\\cirmid": "⫯", + "\\midcir": "⫰", + "\\topcir": "⫱", + "\\nhpar": "⫲", + "\\parsim": "⫳", + "\\interleave": "⫴", + "\\nhVvert": "⫵", + "\\Elztdcol": "⫶", + "\\lllnest": "⫷", + "\\gggnest": "⫸", + "\\leqqslant": "⫹", + "\\geqqslant": "⫺", + "\\trslash": "⫻", + "\\biginterleave": "⫼", + "{{/}\\!\\!{/}}": "⫽", + "{\\rlap{\\textbackslash}{{/}\\!\\!{/}}}": "⫽⃥", + "\\talloblong": "⫾", + "\\bigtalloblong": "⫿", + "\\squaretopblack": "⬒", + "\\squarebotblack": "⬓", + "\\squareurblack": "⬔", + "\\squarellblack": "⬕", + "\\diamondleftblack": "⬖", + "\\diamondrightblack": "⬗", + "\\diamondtopblack": "⬘", + "\\diamondbotblack": "⬙", + "\\dottedsquare": "⬚", + "\\blacksquare": "⬛", + "\\vysmblksquare": "⬝", + "\\vysmwhtsquare": "⬞", + "\\pentagonblack": "⬟", + "\\pentagon": "⬠", + "\\varhexagon": "⬡", + "\\varhexagonblack": "⬢", + "\\hexagonblack": "⬣", + "\\lgblkcircle": "⬤", + "\\mdblkdiamond": "⬥", + "\\mdwhtdiamond": "⬦", + "\\mdblklozenge": "⬧", + "\\mdwhtlozenge": "⬨", + "\\smblkdiamond": "⬩", + "\\smblklozenge": "⬪", + "\\smwhtlozenge": "⬫", + "\\blkhorzoval": "⬬", + "\\whthorzoval": "⬭", + "\\blkvertoval": "⬮", + "\\whtvertoval": "⬯", + "\\circleonleftarrow": "⬰", + "\\leftthreearrows": "⬱", + "\\leftarrowonoplus": "⬲", + "\\longleftsquigarrow": "⬳", + "\\nvtwoheadleftarrow": "⬴", + "\\nVtwoheadleftarrow": "⬵", + "\\twoheadmapsfrom": "⬶", + "\\twoheadleftdbkarrow": "⬷", + "\\leftdotarrow": "⬸", + "\\nvleftarrowtail": "⬹", + "\\nVleftarrowtail": "⬺", + "\\twoheadleftarrowtail": "⬻", + "\\nvtwoheadleftarrowtail": "⬼", + "\\nVtwoheadleftarrowtail": "⬽", + "\\leftarrowx": "⬾", + "\\leftcurvedarrow": "⬿", + "\\equalleftarrow": "⭀", + "\\bsimilarleftarrow": "⭁", + "\\leftarrowbackapprox": "⭂", + "\\rightarrowgtr": "⭃", + "\\rightarrowsupset": "⭄", + "\\LLeftarrow": "⭅", + "\\RRightarrow": "⭆", + "\\bsimilarrightarrow": "⭇", + "\\rightarrowbackapprox": "⭈", + "\\similarleftarrow": "⭉", + "\\leftarrowapprox": "⭊", + "\\leftarrowbsimilar": "⭋", + "\\rightarrowbsimilar": "⭌", + "\\medwhitestar": "⭐", + "\\medblackstar": "⭑", + "\\smwhitestar": "⭒", + "\\rightpentagonblack": "⭓", + "\\rightpentagon": "⭔", + "\\postalmark": "〒", + "\\lbrbrak": "〔", + "\\rbrbrak": "〕", + "\\openbracketleft": "〚", + "\\openbracketright": "〛", + "\\hzigzag": "〰", + "\\dbend": "�", + "\\mathbf{A}": "𝐀", + "\\mathbf{B}": "𝐁", + "\\mathbf{C}": "𝐂", + "\\mathbf{D}": "𝐃", + "\\mathbf{E}": "𝐄", + "\\mathbf{F}": "𝐅", + "\\mathbf{G}": "𝐆", + "\\mathbf{H}": "𝐇", + "\\mathbf{I}": "𝐈", + "\\mathbf{J}": "𝐉", + "\\mathbf{K}": "𝐊", + "\\mathbf{L}": "𝐋", + "\\mathbf{M}": "𝐌", + "\\mathbf{N}": "𝐍", + "\\mathbf{O}": "𝐎", + "\\mathbf{P}": "𝐏", + "\\mathbf{Q}": "𝐐", + "\\mathbf{R}": "𝐑", + "\\mathbf{S}": "𝐒", + "\\mathbf{T}": "𝐓", + "\\mathbf{U}": "𝐔", + "\\mathbf{V}": "𝐕", + "\\mathbf{W}": "𝐖", + "\\mathbf{X}": "𝐗", + "\\mathbf{Y}": "𝐘", + "\\mathbf{Z}": "𝐙", + "\\mathbf{a}": "𝐚", + "\\mathbf{b}": "𝐛", + "\\mathbf{c}": "𝐜", + "\\mathbf{d}": "𝐝", + "\\mathbf{e}": "𝐞", + "\\mathbf{f}": "𝐟", + "\\mathbf{g}": "𝐠", + "\\mathbf{h}": "𝐡", + "\\mathbf{i}": "𝐢", + "\\mathbf{j}": "𝐣", + "\\mathbf{k}": "𝐤", + "\\mathbf{l}": "𝐥", + "\\mathbf{m}": "𝐦", + "\\mathbf{n}": "𝐧", + "\\mathbf{o}": "𝐨", + "\\mathbf{p}": "𝐩", + "\\mathbf{q}": "𝐪", + "\\mathbf{r}": "𝐫", + "\\mathbf{s}": "𝐬", + "\\mathbf{t}": "𝐭", + "\\mathbf{u}": "𝐮", + "\\mathbf{v}": "𝐯", + "\\mathbf{w}": "𝐰", + "\\mathbf{x}": "𝐱", + "\\mathbf{y}": "𝐲", + "\\mathbf{z}": "𝐳", + "\\mathsl{A}": "𝐴", + "\\mathsl{B}": "𝐵", + "\\mathsl{C}": "𝐶", + "\\mathsl{D}": "𝐷", + "\\mathsl{E}": "𝐸", + "\\mathsl{F}": "𝐹", + "\\mathsl{G}": "𝐺", + "\\mathsl{H}": "𝐻", + "\\mathsl{I}": "𝐼", + "\\mathsl{J}": "𝐽", + "\\mathsl{K}": "𝐾", + "\\mathsl{L}": "𝐿", + "\\mathsl{M}": "𝑀", + "\\mathsl{N}": "𝑁", + "\\mathsl{O}": "𝑂", + "\\mathsl{P}": "𝑃", + "\\mathsl{Q}": "𝑄", + "\\mathsl{R}": "𝑅", + "\\mathsl{S}": "𝑆", + "\\mathsl{T}": "𝑇", + "\\mathsl{U}": "𝑈", + "\\mathsl{V}": "𝑉", + "\\mathsl{W}": "𝑊", + "\\mathsl{X}": "𝑋", + "\\mathsl{Y}": "𝑌", + "\\mathsl{Z}": "𝑍", + "\\mathsl{a}": "𝑎", + "\\mathsl{b}": "𝑏", + "\\mathsl{c}": "𝑐", + "\\mathsl{d}": "𝑑", + "\\mathsl{e}": "𝑒", + "\\mathsl{f}": "𝑓", + "\\mathsl{g}": "𝑔", + "\\mathsl{i}": "𝑖", + "\\mathsl{j}": "𝑗", + "\\mathsl{k}": "𝑘", + "\\mathsl{l}": "𝑙", + "\\mathsl{m}": "𝑚", + "\\mathsl{n}": "𝑛", + "\\mathsl{o}": "𝑜", + "\\mathsl{p}": "𝑝", + "\\mathsl{q}": "𝑞", + "\\mathsl{r}": "𝑟", + "\\mathsl{s}": "𝑠", + "\\mathsl{t}": "𝑡", + "\\mathsl{u}": "𝑢", + "\\mathsl{v}": "𝑣", + "\\mathsl{w}": "𝑤", + "\\mathsl{x}": "𝑥", + "\\mathsl{y}": "𝑦", + "\\mathsl{z}": "𝑧", + "\\mathbit{A}": "𝑨", + "\\mathbit{B}": "𝑩", + "\\mathbit{C}": "𝑪", + "\\mathbit{D}": "𝑫", + "\\mathbit{E}": "𝑬", + "\\mathbit{F}": "𝑭", + "\\mathbit{G}": "𝑮", + "\\mathbit{H}": "𝑯", + "\\mathbit{I}": "𝑰", + "\\mathbit{J}": "𝑱", + "\\mathbit{K}": "𝑲", + "\\mathbit{L}": "𝑳", + "\\mathbit{M}": "𝑴", + "\\mathbit{N}": "𝑵", + "\\mathbit{O}": "𝑶", + "\\mathbit{P}": "𝑷", + "\\mathbit{Q}": "𝑸", + "\\mathbit{R}": "𝑹", + "\\mathbit{S}": "𝑺", + "\\mathbit{T}": "𝑻", + "\\mathbit{U}": "𝑼", + "\\mathbit{V}": "𝑽", + "\\mathbit{W}": "𝑾", + "\\mathbit{X}": "𝑿", + "\\mathbit{Y}": "𝒀", + "\\mathbit{Z}": "𝒁", + "\\mathbit{a}": "𝒂", + "\\mathbit{b}": "𝒃", + "\\mathbit{c}": "𝒄", + "\\mathbit{d}": "𝒅", + "\\mathbit{e}": "𝒆", + "\\mathbit{f}": "𝒇", + "\\mathbit{g}": "𝒈", + "\\mathbit{h}": "𝒉", + "\\mathbit{i}": "𝒊", + "\\mathbit{j}": "𝒋", + "\\mathbit{k}": "𝒌", + "\\mathbit{l}": "𝒍", + "\\mathbit{m}": "𝒎", + "\\mathbit{n}": "𝒏", + "\\mathbit{o}": "𝒐", + "\\mathbit{p}": "𝒑", + "\\mathbit{q}": "𝒒", + "\\mathbit{r}": "𝒓", + "\\mathbit{s}": "𝒔", + "\\mathbit{t}": "𝒕", + "\\mathbit{u}": "𝒖", + "\\mathbit{v}": "𝒗", + "\\mathbit{w}": "𝒘", + "\\mathbit{x}": "𝒙", + "\\mathbit{y}": "𝒚", + "\\mathbit{z}": "𝒛", + "\\mathscr{A}": "𝒜", + "\\mathscr{C}": "𝒞", + "\\mathscr{D}": "𝒟", + "\\mathscr{G}": "𝒢", + "\\mathscr{J}": "𝒥", + "\\mathscr{K}": "𝒦", + "\\mathscr{N}": "𝒩", + "\\mathscr{O}": "𝒪", + "\\mathscr{P}": "𝒫", + "\\mathscr{Q}": "𝒬", + "\\mathscr{S}": "𝒮", + "\\mathscr{T}": "𝒯", + "\\mathscr{U}": "𝒰", + "\\mathscr{V}": "𝒱", + "\\mathscr{W}": "𝒲", + "\\mathscr{X}": "𝒳", + "\\mathscr{Y}": "𝒴", + "\\mathscr{Z}": "𝒵", + "\\mathscr{a}": "𝒶", + "\\mathscr{b}": "𝒷", + "\\mathscr{c}": "𝒸", + "\\mathscr{d}": "𝒹", + "\\mathscr{f}": "𝒻", + "\\mathscr{h}": "𝒽", + "\\mathscr{i}": "𝒾", + "\\mathscr{j}": "𝒿", + "\\mathscr{k}": "𝓀", + "\\mathscr{m}": "𝓂", + "\\mathscr{n}": "𝓃", + "\\mathscr{p}": "𝓅", + "\\mathscr{q}": "𝓆", + "\\mathscr{r}": "𝓇", + "\\mathscr{s}": "𝓈", + "\\mathscr{t}": "𝓉", + "\\mathscr{u}": "𝓊", + "\\mathscr{v}": "𝓋", + "\\mathscr{w}": "𝓌", + "\\mathscr{x}": "𝓍", + "\\mathscr{y}": "𝓎", + "\\mathscr{z}": "𝓏", + "\\mathmit{A}": "𝓐", + "\\mathmit{B}": "𝓑", + "\\mathmit{C}": "𝓒", + "\\mathmit{D}": "𝓓", + "\\mathmit{E}": "𝓔", + "\\mathmit{F}": "𝓕", + "\\mathmit{G}": "𝓖", + "\\mathmit{H}": "𝓗", + "\\mathmit{I}": "𝓘", + "\\mathmit{J}": "𝓙", + "\\mathmit{K}": "𝓚", + "\\mathmit{L}": "𝓛", + "\\mathmit{M}": "𝓜", + "\\mathmit{N}": "𝓝", + "\\mathmit{O}": "𝓞", + "\\mathmit{P}": "𝓟", + "\\mathmit{Q}": "𝓠", + "\\mathmit{R}": "𝓡", + "\\mathmit{S}": "𝓢", + "\\mathmit{T}": "𝓣", + "\\mathmit{U}": "𝓤", + "\\mathmit{V}": "𝓥", + "\\mathmit{W}": "𝓦", + "\\mathmit{X}": "𝓧", + "\\mathmit{Y}": "𝓨", + "\\mathmit{Z}": "𝓩", + "\\mathmit{a}": "𝓪", + "\\mathmit{b}": "𝓫", + "\\mathmit{c}": "𝓬", + "\\mathmit{d}": "𝓭", + "\\mathmit{e}": "𝓮", + "\\mathmit{f}": "𝓯", + "\\mathmit{g}": "𝓰", + "\\mathmit{h}": "𝓱", + "\\mathmit{i}": "𝓲", + "\\mathmit{j}": "𝓳", + "\\mathmit{k}": "𝓴", + "\\mathmit{l}": "𝓵", + "\\mathmit{m}": "𝓶", + "\\mathmit{n}": "𝓷", + "\\mathmit{o}": "𝓸", + "\\mathmit{p}": "𝓹", + "\\mathmit{q}": "𝓺", + "\\mathmit{r}": "𝓻", + "\\mathmit{s}": "𝓼", + "\\mathmit{t}": "𝓽", + "\\mathmit{u}": "𝓾", + "\\mathmit{v}": "𝓿", + "\\mathmit{w}": "𝔀", + "\\mathmit{x}": "𝔁", + "\\mathmit{y}": "𝔂", + "\\mathmit{z}": "𝔃", + "\\mathfrak{A}": "𝔄", + "\\mathfrak{B}": "𝔅", + "\\mathfrak{D}": "𝔇", + "\\mathfrak{E}": "𝔈", + "\\mathfrak{F}": "𝔉", + "\\mathfrak{G}": "𝔊", + "\\mathfrak{J}": "𝔍", + "\\mathfrak{K}": "𝔎", + "\\mathfrak{L}": "𝔏", + "\\mathfrak{M}": "𝔐", + "\\mathfrak{N}": "𝔑", + "\\mathfrak{O}": "𝔒", + "\\mathfrak{P}": "𝔓", + "\\mathfrak{Q}": "𝔔", + "\\mathfrak{S}": "𝔖", + "\\mathfrak{T}": "𝔗", + "\\mathfrak{U}": "𝔘", + "\\mathfrak{V}": "𝔙", + "\\mathfrak{W}": "𝔚", + "\\mathfrak{X}": "𝔛", + "\\mathfrak{Y}": "𝔜", + "\\mathfrak{a}": "𝔞", + "\\mathfrak{b}": "𝔟", + "\\mathfrak{c}": "𝔠", + "\\mathfrak{d}": "𝔡", + "\\mathfrak{e}": "𝔢", + "\\mathfrak{f}": "𝔣", + "\\mathfrak{g}": "𝔤", + "\\mathfrak{h}": "𝔥", + "\\mathfrak{i}": "𝔦", + "\\mathfrak{j}": "𝔧", + "\\mathfrak{k}": "𝔨", + "\\mathfrak{l}": "𝔩", + "\\mathfrak{m}": "𝔪", + "\\mathfrak{n}": "𝔫", + "\\mathfrak{o}": "𝔬", + "\\mathfrak{p}": "𝔭", + "\\mathfrak{q}": "𝔮", + "\\mathfrak{r}": "𝔯", + "\\mathfrak{s}": "𝔰", + "\\mathfrak{t}": "𝔱", + "\\mathfrak{u}": "𝔲", + "\\mathfrak{v}": "𝔳", + "\\mathfrak{w}": "𝔴", + "\\mathfrak{x}": "𝔵", + "\\mathfrak{y}": "𝔶", + "\\mathfrak{z}": "𝔷", + "\\mathbb{A}": "𝔸", + "\\mathbb{B}": "𝔹", + "\\mathbb{D}": "𝔻", + "\\mathbb{E}": "𝔼", + "\\mathbb{F}": "𝔽", + "\\mathbb{G}": "𝔾", + "\\mathbb{I}": "𝕀", + "\\mathbb{J}": "𝕁", + "\\mathbb{K}": "𝕂", + "\\mathbb{L}": "𝕃", + "\\mathbb{M}": "𝕄", + "\\mathbb{O}": "𝕆", + "\\mathbb{S}": "𝕊", + "\\mathbb{T}": "𝕋", + "\\mathbb{U}": "𝕌", + "\\mathbb{V}": "𝕍", + "\\mathbb{W}": "𝕎", + "\\mathbb{X}": "𝕏", + "\\mathbb{Y}": "𝕐", + "\\mathbb{a}": "𝕒", + "\\mathbb{b}": "𝕓", + "\\mathbb{c}": "𝕔", + "\\mathbb{d}": "𝕕", + "\\mathbb{e}": "𝕖", + "\\mathbb{f}": "𝕗", + "\\mathbb{g}": "𝕘", + "\\mathbb{h}": "𝕙", + "\\mathbb{i}": "𝕚", + "\\mathbb{j}": "𝕛", + "\\mathbb{k}": "𝕜", + "\\mathbb{l}": "𝕝", + "\\mathbb{m}": "𝕞", + "\\mathbb{n}": "𝕟", + "\\mathbb{o}": "𝕠", + "\\mathbb{p}": "𝕡", + "\\mathbb{q}": "𝕢", + "\\mathbb{r}": "𝕣", + "\\mathbb{s}": "𝕤", + "\\mathbb{t}": "𝕥", + "\\mathbb{u}": "𝕦", + "\\mathbb{v}": "𝕧", + "\\mathbb{w}": "𝕨", + "\\mathbb{x}": "𝕩", + "\\mathbb{y}": "𝕪", + "\\mathbb{z}": "𝕫", + "\\mathslbb{A}": "𝕬", + "\\mathslbb{B}": "𝕭", + "\\mathslbb{C}": "𝕮", + "\\mathslbb{D}": "𝕯", + "\\mathslbb{E}": "𝕰", + "\\mathslbb{F}": "𝕱", + "\\mathslbb{G}": "𝕲", + "\\mathslbb{H}": "𝕳", + "\\mathslbb{I}": "𝕴", + "\\mathslbb{J}": "𝕵", + "\\mathslbb{K}": "𝕶", + "\\mathslbb{L}": "𝕷", + "\\mathslbb{M}": "𝕸", + "\\mathslbb{N}": "𝕹", + "\\mathslbb{O}": "𝕺", + "\\mathslbb{P}": "𝕻", + "\\mathslbb{Q}": "𝕼", + "\\mathslbb{R}": "𝕽", + "\\mathslbb{S}": "𝕾", + "\\mathslbb{T}": "𝕿", + "\\mathslbb{U}": "𝖀", + "\\mathslbb{V}": "𝖁", + "\\mathslbb{W}": "𝖂", + "\\mathslbb{X}": "𝖃", + "\\mathslbb{Y}": "𝖄", + "\\mathslbb{Z}": "𝖅", + "\\mathslbb{a}": "𝖆", + "\\mathslbb{b}": "𝖇", + "\\mathslbb{c}": "𝖈", + "\\mathslbb{d}": "𝖉", + "\\mathslbb{e}": "𝖊", + "\\mathslbb{f}": "𝖋", + "\\mathslbb{g}": "𝖌", + "\\mathslbb{h}": "𝖍", + "\\mathslbb{i}": "𝖎", + "\\mathslbb{j}": "𝖏", + "\\mathslbb{k}": "𝖐", + "\\mathslbb{l}": "𝖑", + "\\mathslbb{m}": "𝖒", + "\\mathslbb{n}": "𝖓", + "\\mathslbb{o}": "𝖔", + "\\mathslbb{p}": "𝖕", + "\\mathslbb{q}": "𝖖", + "\\mathslbb{r}": "𝖗", + "\\mathslbb{s}": "𝖘", + "\\mathslbb{t}": "𝖙", + "\\mathslbb{u}": "𝖚", + "\\mathslbb{v}": "𝖛", + "\\mathslbb{w}": "𝖜", + "\\mathslbb{x}": "𝖝", + "\\mathslbb{y}": "𝖞", + "\\mathslbb{z}": "𝖟", + "\\mathsf{A}": "𝖠", + "\\mathsf{B}": "𝖡", + "\\mathsf{C}": "𝖢", + "\\mathsf{D}": "𝖣", + "\\mathsf{E}": "𝖤", + "\\mathsf{F}": "𝖥", + "\\mathsf{G}": "𝖦", + "\\mathsf{H}": "𝖧", + "\\mathsf{I}": "𝖨", + "\\mathsf{J}": "𝖩", + "\\mathsf{K}": "𝖪", + "\\mathsf{L}": "𝖫", + "\\mathsf{M}": "𝖬", + "\\mathsf{N}": "𝖭", + "\\mathsf{O}": "𝖮", + "\\mathsf{P}": "𝖯", + "\\mathsf{Q}": "𝖰", + "\\mathsf{R}": "𝖱", + "\\mathsf{S}": "𝖲", + "\\mathsf{T}": "𝖳", + "\\mathsf{U}": "𝖴", + "\\mathsf{V}": "𝖵", + "\\mathsf{W}": "𝖶", + "\\mathsf{X}": "𝖷", + "\\mathsf{Y}": "𝖸", + "\\mathsf{Z}": "𝖹", + "\\mathsf{a}": "𝖺", + "\\mathsf{b}": "𝖻", + "\\mathsf{c}": "𝖼", + "\\mathsf{d}": "𝖽", + "\\mathsf{e}": "𝖾", + "\\mathsf{f}": "𝖿", + "\\mathsf{g}": "𝗀", + "\\mathsf{h}": "𝗁", + "\\mathsf{i}": "𝗂", + "\\mathsf{j}": "𝗃", + "\\mathsf{k}": "𝗄", + "\\mathsf{l}": "𝗅", + "\\mathsf{m}": "𝗆", + "\\mathsf{n}": "𝗇", + "\\mathsf{o}": "𝗈", + "\\mathsf{p}": "𝗉", + "\\mathsf{q}": "𝗊", + "\\mathsf{r}": "𝗋", + "\\mathsf{s}": "𝗌", + "\\mathsf{t}": "𝗍", + "\\mathsf{u}": "𝗎", + "\\mathsf{v}": "𝗏", + "\\mathsf{w}": "𝗐", + "\\mathsf{x}": "𝗑", + "\\mathsf{y}": "𝗒", + "\\mathsf{z}": "𝗓", + "\\mathsfbf{A}": "𝗔", + "\\mathsfbf{B}": "𝗕", + "\\mathsfbf{C}": "𝗖", + "\\mathsfbf{D}": "𝗗", + "\\mathsfbf{E}": "𝗘", + "\\mathsfbf{F}": "𝗙", + "\\mathsfbf{G}": "𝗚", + "\\mathsfbf{H}": "𝗛", + "\\mathsfbf{I}": "𝗜", + "\\mathsfbf{J}": "𝗝", + "\\mathsfbf{K}": "𝗞", + "\\mathsfbf{L}": "𝗟", + "\\mathsfbf{M}": "𝗠", + "\\mathsfbf{N}": "𝗡", + "\\mathsfbf{O}": "𝗢", + "\\mathsfbf{P}": "𝗣", + "\\mathsfbf{Q}": "𝗤", + "\\mathsfbf{R}": "𝗥", + "\\mathsfbf{S}": "𝗦", + "\\mathsfbf{T}": "𝗧", + "\\mathsfbf{U}": "𝗨", + "\\mathsfbf{V}": "𝗩", + "\\mathsfbf{W}": "𝗪", + "\\mathsfbf{X}": "𝗫", + "\\mathsfbf{Y}": "𝗬", + "\\mathsfbf{Z}": "𝗭", + "\\mathsfbf{a}": "𝗮", + "\\mathsfbf{b}": "𝗯", + "\\mathsfbf{c}": "𝗰", + "\\mathsfbf{d}": "𝗱", + "\\mathsfbf{e}": "𝗲", + "\\mathsfbf{f}": "𝗳", + "\\mathsfbf{g}": "𝗴", + "\\mathsfbf{h}": "𝗵", + "\\mathsfbf{i}": "𝗶", + "\\mathsfbf{j}": "𝗷", + "\\mathsfbf{k}": "𝗸", + "\\mathsfbf{l}": "𝗹", + "\\mathsfbf{m}": "𝗺", + "\\mathsfbf{n}": "𝗻", + "\\mathsfbf{o}": "𝗼", + "\\mathsfbf{p}": "𝗽", + "\\mathsfbf{q}": "𝗾", + "\\mathsfbf{r}": "𝗿", + "\\mathsfbf{s}": "𝘀", + "\\mathsfbf{t}": "𝘁", + "\\mathsfbf{u}": "𝘂", + "\\mathsfbf{v}": "𝘃", + "\\mathsfbf{w}": "𝘄", + "\\mathsfbf{x}": "𝘅", + "\\mathsfbf{y}": "𝘆", + "\\mathsfbf{z}": "𝘇", + "\\mathsfsl{A}": "𝘈", + "\\mathsfsl{B}": "𝘉", + "\\mathsfsl{C}": "𝘊", + "\\mathsfsl{D}": "𝘋", + "\\mathsfsl{E}": "𝘌", + "\\mathsfsl{F}": "𝘍", + "\\mathsfsl{G}": "𝘎", + "\\mathsfsl{H}": "𝘏", + "\\mathsfsl{I}": "𝘐", + "\\mathsfsl{J}": "𝘑", + "\\mathsfsl{K}": "𝘒", + "\\mathsfsl{L}": "𝘓", + "\\mathsfsl{M}": "𝘔", + "\\mathsfsl{N}": "𝘕", + "\\mathsfsl{O}": "𝘖", + "\\mathsfsl{P}": "𝘗", + "\\mathsfsl{Q}": "𝘘", + "\\mathsfsl{R}": "𝘙", + "\\mathsfsl{S}": "𝘚", + "\\mathsfsl{T}": "𝘛", + "\\mathsfsl{U}": "𝘜", + "\\mathsfsl{V}": "𝘝", + "\\mathsfsl{W}": "𝘞", + "\\mathsfsl{X}": "𝘟", + "\\mathsfsl{Y}": "𝘠", + "\\mathsfsl{Z}": "𝘡", + "\\mathsfsl{a}": "𝘢", + "\\mathsfsl{b}": "𝘣", + "\\mathsfsl{c}": "𝘤", + "\\mathsfsl{d}": "𝘥", + "\\mathsfsl{e}": "𝘦", + "\\mathsfsl{f}": "𝘧", + "\\mathsfsl{g}": "𝘨", + "\\mathsfsl{h}": "𝘩", + "\\mathsfsl{i}": "𝘪", + "\\mathsfsl{j}": "𝘫", + "\\mathsfsl{k}": "𝘬", + "\\mathsfsl{l}": "𝘭", + "\\mathsfsl{m}": "𝘮", + "\\mathsfsl{n}": "𝘯", + "\\mathsfsl{o}": "𝘰", + "\\mathsfsl{p}": "𝘱", + "\\mathsfsl{q}": "𝘲", + "\\mathsfsl{r}": "𝘳", + "\\mathsfsl{s}": "𝘴", + "\\mathsfsl{t}": "𝘵", + "\\mathsfsl{u}": "𝘶", + "\\mathsfsl{v}": "𝘷", + "\\mathsfsl{w}": "𝘸", + "\\mathsfsl{x}": "𝘹", + "\\mathsfsl{y}": "𝘺", + "\\mathsfsl{z}": "𝘻", + "\\mathsfbfsl{A}": "𝘼", + "\\mathsfbfsl{B}": "𝘽", + "\\mathsfbfsl{C}": "𝘾", + "\\mathsfbfsl{D}": "𝘿", + "\\mathsfbfsl{E}": "𝙀", + "\\mathsfbfsl{F}": "𝙁", + "\\mathsfbfsl{G}": "𝙂", + "\\mathsfbfsl{H}": "𝙃", + "\\mathsfbfsl{I}": "𝙄", + "\\mathsfbfsl{J}": "𝙅", + "\\mathsfbfsl{K}": "𝙆", + "\\mathsfbfsl{L}": "𝙇", + "\\mathsfbfsl{M}": "𝙈", + "\\mathsfbfsl{N}": "𝙉", + "\\mathsfbfsl{O}": "𝙊", + "\\mathsfbfsl{P}": "𝙋", + "\\mathsfbfsl{Q}": "𝙌", + "\\mathsfbfsl{R}": "𝙍", + "\\mathsfbfsl{S}": "𝙎", + "\\mathsfbfsl{T}": "𝙏", + "\\mathsfbfsl{U}": "𝙐", + "\\mathsfbfsl{V}": "𝙑", + "\\mathsfbfsl{W}": "𝙒", + "\\mathsfbfsl{X}": "𝙓", + "\\mathsfbfsl{Y}": "𝙔", + "\\mathsfbfsl{Z}": "𝙕", + "\\mathsfbfsl{a}": "𝙖", + "\\mathsfbfsl{b}": "𝙗", + "\\mathsfbfsl{c}": "𝙘", + "\\mathsfbfsl{d}": "𝙙", + "\\mathsfbfsl{e}": "𝙚", + "\\mathsfbfsl{f}": "𝙛", + "\\mathsfbfsl{g}": "𝙜", + "\\mathsfbfsl{h}": "𝙝", + "\\mathsfbfsl{i}": "𝙞", + "\\mathsfbfsl{j}": "𝙟", + "\\mathsfbfsl{k}": "𝙠", + "\\mathsfbfsl{l}": "𝙡", + "\\mathsfbfsl{m}": "𝙢", + "\\mathsfbfsl{n}": "𝙣", + "\\mathsfbfsl{o}": "𝙤", + "\\mathsfbfsl{p}": "𝙥", + "\\mathsfbfsl{q}": "𝙦", + "\\mathsfbfsl{r}": "𝙧", + "\\mathsfbfsl{s}": "𝙨", + "\\mathsfbfsl{t}": "𝙩", + "\\mathsfbfsl{u}": "𝙪", + "\\mathsfbfsl{v}": "𝙫", + "\\mathsfbfsl{w}": "𝙬", + "\\mathsfbfsl{x}": "𝙭", + "\\mathsfbfsl{y}": "𝙮", + "\\mathsfbfsl{z}": "𝙯", + "\\mathtt{A}": "𝙰", + "\\mathtt{B}": "𝙱", + "\\mathtt{C}": "𝙲", + "\\mathtt{D}": "𝙳", + "\\mathtt{E}": "𝙴", + "\\mathtt{F}": "𝙵", + "\\mathtt{G}": "𝙶", + "\\mathtt{H}": "𝙷", + "\\mathtt{I}": "𝙸", + "\\mathtt{J}": "𝙹", + "\\mathtt{K}": "𝙺", + "\\mathtt{L}": "𝙻", + "\\mathtt{M}": "𝙼", + "\\mathtt{N}": "𝙽", + "\\mathtt{O}": "𝙾", + "\\mathtt{P}": "𝙿", + "\\mathtt{Q}": "𝚀", + "\\mathtt{R}": "𝚁", + "\\mathtt{S}": "𝚂", + "\\mathtt{T}": "𝚃", + "\\mathtt{U}": "𝚄", + "\\mathtt{V}": "𝚅", + "\\mathtt{W}": "𝚆", + "\\mathtt{X}": "𝚇", + "\\mathtt{Y}": "𝚈", + "\\mathtt{Z}": "𝚉", + "\\mathtt{a}": "𝚊", + "\\mathtt{b}": "𝚋", + "\\mathtt{c}": "𝚌", + "\\mathtt{d}": "𝚍", + "\\mathtt{e}": "𝚎", + "\\mathtt{f}": "𝚏", + "\\mathtt{g}": "𝚐", + "\\mathtt{h}": "𝚑", + "\\mathtt{i}": "𝚒", + "\\mathtt{j}": "𝚓", + "\\mathtt{k}": "𝚔", + "\\mathtt{l}": "𝚕", + "\\mathtt{m}": "𝚖", + "\\mathtt{n}": "𝚗", + "\\mathtt{o}": "𝚘", + "\\mathtt{p}": "𝚙", + "\\mathtt{q}": "𝚚", + "\\mathtt{r}": "𝚛", + "\\mathtt{s}": "𝚜", + "\\mathtt{t}": "𝚝", + "\\mathtt{u}": "𝚞", + "\\mathtt{v}": "𝚟", + "\\mathtt{w}": "𝚠", + "\\mathtt{x}": "𝚡", + "\\mathtt{y}": "𝚢", + "\\mathtt{z}": "𝚣", + "\\mathbf{\\Gamma}": "𝚪", + "\\mathbf{\\Delta}": "𝚫", + "\\mathbf{\\Theta}": "𝚯", + "\\mathbf{\\Lambda}": "𝚲", + "\\mathbf{\\Xi}": "𝚵", + "\\mathbf{\\Pi}": "𝚷", + "\\mathbf{\\vartheta}": "𝚹", + "\\mathbf{\\Sigma}": "𝚺", + "\\mathbf{\\Upsilon}": "𝚼", + "\\mathbf{\\Phi}": "𝚽", + "\\mathbf{\\Psi}": "𝚿", + "\\mathbf{\\Omega}": "𝛀", + "\\mathbf{\\nabla}": "𝛁", + "\\mathbf{\\alpha}": "𝛂", + "\\mathbf{\\beta}": "𝛃", + "\\mathbf{\\gamma}": "𝛄", + "\\mathbf{\\delta}": "𝛅", + "\\mathbf{\\epsilon}": "𝛆", + "\\mathbf{\\zeta}": "𝛇", + "\\mathbf{\\eta}": "𝛈", + "\\mathbf{\\theta}": "𝛉", + "\\mathbf{\\lambda}": "𝛌", + "\\mathbf{\\xi}": "𝛏", + "\\mathbf{\\pi}": "𝛑", + "\\mathbf{\\varsigma}": "𝛓", + "\\mathbf{\\sigma}": "𝛔", + "\\mathbf{\\upsilon}": "𝛖", + "\\mathbf{\\phi}": "𝛗", + "\\mathbf{\\psi}": "𝛙", + "\\mathbf{\\omega}": "𝛚", + "\\mathbf{\\varkappa}": "𝛞", + "\\mathbf{\\varrho}": "𝛠", + "\\mathbf{\\varpi}": "𝛡", + "\\mathsl{\\Gamma}": "𝛤", + "\\mathsl{\\Delta}": "𝛥", + "\\mathsl{\\Lambda}": "𝛬", + "\\mathsl{\\Xi}": "𝛯", + "\\mathsl{\\Pi}": "𝛱", + "\\mathsl{\\Theta}": "𝛳", + "\\mathsl{\\Sigma}": "𝛴", + "\\mathsl{\\Upsilon}": "𝛶", + "\\mathsl{\\Phi}": "𝛷", + "\\mathsl{\\Psi}": "𝛹", + "\\mathsl{\\Omega}": "𝛺", + "\\mathsl{\\nabla}": "𝛻", + "\\mathsl{\\gamma}": "𝛾", + "\\mathsl{\\delta}": "𝛿", + "\\mathsl{\\theta}": "𝜃", + "\\mathsl{\\lambda}": "𝜆", + "\\mu": "𝜇", + "\\mathsl{\\xi}": "𝜉", + "\\mathsl{\\pi}": "𝜋", + "\\mathsl{\\varsigma}": "𝜍", + "\\mathsl{\\sigma}": "𝜎", + "\\mathsl{\\upsilon}": "𝜐", + "\\mathsl{\\varphi}": "𝜑", + "\\mathsl{\\psi}": "𝜓", + "\\mathsl{\\omega}": "𝜔", + "\\mathsl{\\vartheta}": "𝜗", + "\\mathsl{\\varkappa}": "𝜘", + "\\mathsl{\\phi}": "𝜙", + "\\mathsl{\\varrho}": "𝜚", + "\\mathsl{\\varpi}": "𝜛", + "\\mathbit{\\Gamma}": "𝜞", + "\\mathbit{\\Delta}": "𝜟", + "\\mathbit{\\Theta}": "𝜣", + "\\mathbit{\\Lambda}": "𝜦", + "\\mathbit{\\Xi}": "𝜩", + "\\mathbit{\\Pi}": "𝜫", + "\\mathbit{\\Sigma}": "𝜮", + "\\mathbit{\\Upsilon}": "𝜰", + "\\mathbit{\\Phi}": "𝜱", + "\\mathbit{\\Psi}": "𝜳", + "\\mathbit{\\Omega}": "𝜴", + "\\mathbit{\\nabla}": "𝜵", + "\\mathbit{\\alpha}": "𝜶", + "\\mathbit{\\beta}": "𝜷", + "\\mathbit{\\gamma}": "𝜸", + "\\mathbit{\\delta}": "𝜹", + "\\mathbit{\\epsilon}": "𝜺", + "\\mathbit{\\zeta}": "𝜻", + "\\mathbit{\\eta}": "𝜼", + "\\mathbit{\\theta}": "𝜽", + "\\mathbit{\\imath}": "𝜾", + "\\mathbit{\\kappa}": "𝜿", + "\\mathbit{\\lambda}": "𝝀", + "\\mathbit{\\xi}": "𝝃", + "\\mathbit{\\pi}": "𝝅", + "\\mathbit{\\rho}": "𝝆", + "\\mathbit{\\varsigma}": "𝝇", + "\\mathbit{\\sigma}": "𝝈", + "\\mathbit{\\tau}": "𝝉", + "\\mathbit{\\upsilon}": "𝝊", + "\\mathbit{\\varphi}": "𝝋", + "\\mathbit{\\chi}": "𝝌", + "\\mathbit{\\psi}": "𝝍", + "\\mathbit{\\omega}": "𝝎", + "\\mathbit{\\vartheta}": "𝝑", + "\\mathbit{\\varkappa}": "𝝒", + "\\mathbit{\\phi}": "𝝓", + "\\mathbit{\\varrho}": "𝝔", + "\\mathbit{\\varpi}": "𝝕", + "\\mathsfbf{\\Gamma}": "𝝘", + "\\mathsfbf{\\Delta}": "𝝙", + "\\mathsfbf{\\Theta}": "𝝝", + "\\mathsfbf{\\Lambda}": "𝝠", + "\\mathsfbf{\\Xi}": "𝝣", + "\\mathsfbf{\\Pi}": "𝝥", + "\\mathsfbf{\\Sigma}": "𝝨", + "\\mathsfbf{\\Upsilon}": "𝝪", + "\\mathsfbf{\\Phi}": "𝝫", + "\\mathsfbf{\\Psi}": "𝝭", + "\\mathsfbf{\\Omega}": "𝝮", + "\\mathsfbf{\\nabla}": "𝝯", + "\\mathsfbf{\\alpha}": "𝝰", + "\\mathsfbf{\\beta}": "𝝱", + "\\mathsfbf{\\gamma}": "𝝲", + "\\mathsfbf{\\delta}": "𝝳", + "\\mathsfbf{\\varepsilon}": "𝝴", + "\\mathsfbf{\\zeta}": "𝝵", + "\\mathsfbf{\\eta}": "𝝶", + "\\mathsfbf{\\theta}": "𝝷", + "\\mathsfbf{\\imath}": "𝝸", + "\\mathsfbf{\\kappa}": "𝝹", + "\\mathsfbf{\\lambda}": "𝝺", + "\\mathsfbf{\\xi}": "𝝽", + "\\mathsfbf{\\pi}": "𝝿", + "\\mathsfbf{\\rho}": "𝞀", + "\\mathsfbf{\\varsigma}": "𝞁", + "\\mathsfbf{\\sigma}": "𝞂", + "\\mathsfbf{\\tau}": "𝞃", + "\\mathsfbf{\\upsilon}": "𝞄", + "\\mathsfbf{\\varphi}": "𝞅", + "\\mathsfbf{\\chi}": "𝞆", + "\\mathsfbf{\\psi}": "𝞇", + "\\mathsfbf{\\omega}": "𝞈", + "\\mathsfbf{\\vartheta}": "𝞋", + "\\mathsfbf{\\varkappa}": "𝞌", + "\\mathsfbf{\\phi}": "𝞍", + "\\mathsfbf{\\varrho}": "𝞎", + "\\mathsfbf{\\varpi}": "𝞏", + "\\mathsfbfsl{\\Gamma}": "𝞒", + "\\mathsfbfsl{\\Delta}": "𝞓", + "\\mathsfbfsl{\\Theta}": "𝞗", + "\\mathsfbfsl{\\Lambda}": "𝞚", + "\\mathsfbfsl{\\Xi}": "𝞝", + "\\mathsfbfsl{\\Pi}": "𝞟", + "\\mathsfbfsl{\\Sigma}": "𝞢", + "\\mathsfbfsl{\\Upsilon}": "𝞤", + "\\mathsfbfsl{\\Phi}": "𝞥", + "\\mathsfbfsl{\\Psi}": "𝞧", + "\\mathsfbfsl{\\Omega}": "𝞨", + "\\mathsfbfsl{\\nabla}": "𝞩", + "\\mathsfbfsl{\\alpha}": "𝞪", + "\\mathsfbfsl{\\beta}": "𝞫", + "\\mathsfbfsl{\\gamma}": "𝞬", + "\\mathsfbfsl{\\delta}": "𝞭", + "\\mathsfbfsl{\\varepsilon}": "𝞮", + "\\mathsfbfsl{\\zeta}": "𝞯", + "\\mathsfbfsl{\\eta}": "𝞰", + "\\mathsfbfsl{\\theta}": "𝞱", + "\\mathsfbfsl{\\imath}": "𝞲", + "\\mathsfbfsl{\\kappa}": "𝞳", + "\\mathsfbfsl{\\lambda}": "𝞴", + "\\mathsfbfsl{\\xi}": "𝞷", + "\\mathsfbfsl{\\pi}": "𝞹", + "\\mathsfbfsl{\\rho}": "𝞺", + "\\mathsfbfsl{\\varsigma}": "𝞻", + "\\mathsfbfsl{\\sigma}": "𝞼", + "\\mathsfbfsl{\\tau}": "𝞽", + "\\mathsfbfsl{\\upsilon}": "𝞾", + "\\mathsfbfsl{\\varphi}": "𝞿", + "\\mathsfbfsl{\\chi}": "𝟀", + "\\mathsfbfsl{\\psi}": "𝟁", + "\\mathsfbfsl{\\omega}": "𝟂", + "\\mathsfbfsl{\\vartheta}": "𝟅", + "\\mathsfbfsl{\\varkappa}": "𝟆", + "\\mathsfbfsl{\\phi}": "𝟇", + "\\mathsfbfsl{\\varrho}": "𝟈", + "\\mathsfbfsl{\\varpi}": "𝟉", + "\\mbfDigamma": "𝟊", + "\\mbfdigamma": "𝟋", + "\\mathbf{0}": "𝟎", + "\\mathbf{1}": "𝟏", + "\\mathbf{2}": "𝟐", + "\\mathbf{3}": "𝟑", + "\\mathbf{4}": "𝟒", + "\\mathbf{5}": "𝟓", + "\\mathbf{6}": "𝟔", + "\\mathbf{7}": "𝟕", + "\\mathbf{8}": "𝟖", + "\\mathbf{9}": "𝟗", + "\\mathbb{0}": "𝟘", + "\\mathbb{1}": "𝟙", + "\\mathbb{2}": "𝟚", + "\\mathbb{3}": "𝟛", + "\\mathbb{4}": "𝟜", + "\\mathbb{5}": "𝟝", + "\\mathbb{6}": "𝟞", + "\\mathbb{7}": "𝟟", + "\\mathbb{8}": "𝟠", + "\\mathbb{9}": "𝟡", + "\\mathsf{0}": "𝟢", + "\\mathsf{1}": "𝟣", + "\\mathsf{2}": "𝟤", + "\\mathsf{3}": "𝟥", + "\\mathsf{4}": "𝟦", + "\\mathsf{5}": "𝟧", + "\\mathsf{6}": "𝟨", + "\\mathsf{7}": "𝟩", + "\\mathsf{8}": "𝟪", + "\\mathsf{9}": "𝟫", + "\\mathsfbf{0}": "𝟬", + "\\mathsfbf{1}": "𝟭", + "\\mathsfbf{2}": "𝟮", + "\\mathsfbf{3}": "𝟯", + "\\mathsfbf{4}": "𝟰", + "\\mathsfbf{5}": "𝟱", + "\\mathsfbf{6}": "𝟲", + "\\mathsfbf{7}": "𝟳", + "\\mathsfbf{8}": "𝟴", + "\\mathsfbf{9}": "𝟵", + "\\mathtt{0}": "𝟶", + "\\mathtt{1}": "𝟷", + "\\mathtt{2}": "𝟸", + "\\mathtt{3}": "𝟹", + "\\mathtt{4}": "𝟺", + "\\mathtt{5}": "𝟻", + "\\mathtt{6}": "𝟼", + "\\mathtt{7}": "𝟽", + "\\mathtt{8}": "𝟾", + "\\mathtt{9}": "𝟿" +}; + +var commands = [ + "acute", + "bar", + "breve", + "c", + "d", + "ddot", + "dot", + "grave", + "hat", + "k", + "mathring", + "overline", + "r", + "textacutemacron", + "textacutewedge", + "textadvancing", + "textbrevemacron", + "textcircumdot", + "textcorner", + "textdotacute", + "textdotbreve", + "textdoublegrave", + "textdoublevbaraccent", + "textgravedot", + "textgravemacron", + "textinvsubbridge", + "textlowering", + "textovercross", + "textraising", + "textretracting", + "textringmacron", + "textseagull", + "textsubarch", + "textsubbar", + "textsubbridge", + "textsubgrave", + "textsublhalfring", + "textsubplus", + "textsubrhalfring", + "textsubring", + "textsubsquare", + "textsubtilde", + "textsubumlaut", + "textsubwedge", + "textsuperimposetilde", + "textsyllabic", + "texttildedot", + "textvbaraccent", + "tilde", + "u", + "underbar", + "v" +]; +var tolatex = { + "̀": { + command: "`", + mode: "text" + }, + "̀̄": { + command: "textgravemacron", + mode: "text" + }, + "̀̇": { + command: "textgravedot", + mode: "text" + }, + "́": { + command: "'", + mode: "text" + }, + "́̄": { + command: "textacutemacron", + mode: "text" + }, + "́̇": { + command: "textdotacute", + mode: "text" + }, + "́̌": { + command: "textacutewedge", + mode: "text" + }, + "̂": { + command: "^", + mode: "text" + }, + "̂̇": { + command: "textcircumdot", + mode: "text" + }, + "̃": { + command: "~", + mode: "text" + }, + "̃̇": { + command: "texttildedot", + mode: "text" + }, + "̄": { + command: "=", + mode: "text" + }, + "̄̀": { + command: "textgravemacron", + mode: "text" + }, + "̄́": { + command: "textacutemacron", + mode: "text" + }, + "̄̆": { + command: "textbrevemacron", + mode: "text" + }, + "̄̊": { + command: "textringmacron", + mode: "text" + }, + "̅": { + command: "overline", + mode: "math" + }, + "̆": { + command: "u", + mode: "text" + }, + "̆̄": { + command: "textbrevemacron", + mode: "text" + }, + "̆̇": { + command: "textdotbreve", + mode: "text" + }, + "̇": { + command: ".", + mode: "text" + }, + "̇̀": { + command: "textgravedot", + mode: "text" + }, + "̇́": { + command: "textdotacute", + mode: "text" + }, + "̇̂": { + command: "textcircumdot", + mode: "text" + }, + "̇̃": { + command: "texttildedot", + mode: "text" + }, + "̇̆": { + command: "textdotbreve", + mode: "text" + }, + "̈": { + command: "\"", + mode: "text" + }, + "̊": { + command: "r", + mode: "text" + }, + "̊̄": { + command: "textringmacron", + mode: "text" + }, + "̋": { + command: "H", + mode: "text" + }, + "̌": { + command: "v", + mode: "text" + }, + "̌́": { + command: "textacutewedge", + mode: "text" + }, + "̍": { + command: "textvbaraccent", + mode: "text" + }, + "̎": { + command: "textdoublevbaraccent", + mode: "text" + }, + "̏": { + command: "textdoublegrave", + mode: "text" + }, + "̐": { + command: "textdotbreve", + mode: "text" + }, + "̖": { + command: "textsubgrave", + mode: "text" + }, + "̘": { + command: "textadvancing", + mode: "text" + }, + "̙": { + command: "textretracting", + mode: "text" + }, + "̚": { + command: "textcorner", + mode: "text" + }, + "̜": { + command: "textsublhalfring", + mode: "text" + }, + "̝": { + command: "textraising", + mode: "text" + }, + "̞": { + command: "textlowering", + mode: "text" + }, + "̟": { + command: "textsubplus", + mode: "text" + }, + "̣": { + command: "d", + mode: "text" + }, + "̤": { + command: "textsubumlaut", + mode: "text" + }, + "̥": { + command: "textsubring", + mode: "text" + }, + "̧": { + command: "c", + mode: "text" + }, + "̨": { + command: "k", + mode: "text" + }, + "̩": { + command: "textsyllabic", + mode: "text" + }, + "̪": { + command: "textsubbridge", + mode: "text" + }, + "̬": { + command: "textsubwedge", + mode: "text" + }, + "̯": { + command: "textsubarch", + mode: "text" + }, + "̰": { + command: "textsubtilde", + mode: "text" + }, + "̱": { + command: "textsubbar", + mode: "text" + }, + "̴": { + command: "textsuperimposetilde", + mode: "text" + }, + "̹": { + command: "textsubrhalfring", + mode: "text" + }, + "̺": { + command: "textinvsubbridge", + mode: "text" + }, + "̻": { + command: "textsubsquare", + mode: "text" + }, + "̼": { + command: "textseagull", + mode: "text" + }, + "̽": { + command: "textovercross", + mode: "text" + } +}; +var tounicode = { + "\"": "̈", + "'": "́", + ".": "̇", + "=": "̄", + H: "̋", + "^": "̂", + "`": "̀", + acute: "́", + bar: "̄", + breve: "̆", + c: "̧", + d: "̣", + ddot: "̈", + dot: "̇", + grave: "̀", + hat: "̂", + k: "̨", + mathring: "̊", + overline: "̅", + r: "̊", + textacutemacron: "̄́", + textacutewedge: "̌́", + textadvancing: "̘", + textbrevemacron: "̄̆", + textcircumdot: "̇̂", + textcorner: "̚", + textdotacute: "́̇", + textdotbreve: "̐", + textdoublegrave: "̏", + textdoublevbaraccent: "̎", + textgravedot: "̇̀", + textgravemacron: "̀̄", + textinvsubbridge: "̺", + textlowering: "̞", + textovercross: "̽", + textraising: "̝", + textretracting: "̙", + textringmacron: "̄̊", + textseagull: "̼", + textsubarch: "̯", + textsubbar: "̱", + textsubbridge: "̪", + textsubgrave: "̖", + textsublhalfring: "̜", + textsubplus: "̟", + textsubrhalfring: "̹", + textsubring: "̥", + textsubsquare: "̻", + textsubtilde: "̰", + textsubumlaut: "̤", + textsubwedge: "̬", + textsuperimposetilde: "̴", + textsyllabic: "̩", + texttildedot: "̇̃", + textvbaraccent: "̍", + tilde: "̃", + u: "̆", + underbar: "̱", + v: "̌", + "~": "̃" +}; +var require$$4 = { + commands: commands, + tolatex: tolatex, + tounicode: tounicode +}; + +var unicode2latex = { + ascii: require$$0$1, + ascii_bibtex_creator: require$$1, + unicode: require$$2, + latex: require$$3, + diacritics: require$$4, +}; + +var categories = [ + { + 'name': 'C', + 'alias': 'Other', + 'isBmpLast': true, + 'bmp': '\0-\x1F\x7F-\x9F\xAD\u0378\u0379\u0380-\u0383\u038B\u038D\u03A2\u0530\u0557\u0558\u058B\u058C\u0590\u05C8-\u05CF\u05EB-\u05EE\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB\u07FC\u082E\u082F\u083F\u085C\u085D\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A77-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C76\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE\u13FF\u169D-\u169F\u16F9-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C89-\u1C8F\u1CBB\u1CBC\u1CC8-\u1CCF\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20C0-\u20CF\u20F1-\u20FF\u218C-\u218F\u2427-\u243F\u244B-\u245F\u2B74\u2B75\u2B96\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E53-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u3130\u318F\u31E4-\u31EF\u321F\u9FFD-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA6F8-\uA6FF\uA7C0\uA7C1\uA7CB-\uA7F4\uA82D-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C6-\uA8CD\uA8DA-\uA8DF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB6C-\uAB6F\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF', + 'astral': '\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDCFF\uDD03-\uDD06\uDD34-\uDD36\uDD8F\uDD9D-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDFC4-\uDFC7\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6E\uDD70-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1E\uDD3A-\uDD3E\uDD40-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE4F\uDE59-\uDE5F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF7-\uDEFF\uDF36-\uDF38\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDF98\uDF9D-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F\uDEAA\uDEAE\uDEAF\uDEB2-\uDEFF\uDF28-\uDF2F\uDF5A-\uDFAF\uDFCC-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC4E-\uDC51\uDC70-\uDC7E\uDCBD\uDCC2-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD48-\uDD4F\uDD77-\uDD7F\uDDE0\uDDF5-\uDDFF\uDE12\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEAA-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC5C\uDC62-\uDC7F\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDDE-\uDDFF\uDE45-\uDE4F\uDE5A-\uDE5F\uDE6D-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF40-\uDFFF]|\uD806[\uDC3C-\uDC9F\uDCF3-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD47-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE5-\uDDFF\uDE48-\uDE4F\uDEA3-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC46-\uDC4F\uDC6D-\uDC6F\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF9-\uDFAF\uDFB1-\uDFBF\uDFF2-\uDFFE]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F\uDC75-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6D\uDE70-\uDECF\uDEEE\uDEEF\uDEF6-\uDEFF\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE9B-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDCA0-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDD73-\uDD7A\uDDE9-\uDDFF\uDE46-\uDEDF\uDEF4-\uDEFF\uDF57-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE8C-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD50-\uDEBF\uDEFA-\uDEFE\uDF00-\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDD5D\uDD60-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCB5-\uDD00\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDDAE-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDE5F\uDE66-\uDEFF]|\uD83D[\uDED8-\uDEDF\uDEED-\uDEEF\uDEFD-\uDEFF\uDF74-\uDF7F\uDFD9-\uDFDF\uDFEC-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE\uDCAF\uDCB2-\uDCFF\uDD79\uDDCC\uDE54-\uDE5F\uDE6E\uDE6F\uDE75-\uDE77\uDE7B-\uDE7F\uDE87-\uDE8F\uDEA9-\uDEAF\uDEB7-\uDEBF\uDEC3-\uDECF\uDED7-\uDEFF\uDF93\uDFCB-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]' + }, + { + 'name': 'Cc', + 'alias': 'Control', + 'bmp': '\0-\x1F\x7F-\x9F' + }, + { + 'name': 'Cf', + 'alias': 'Format', + 'bmp': '\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB', + 'astral': '\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC38]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]' + }, + { + 'name': 'Cn', + 'alias': 'Unassigned', + 'bmp': '\u0378\u0379\u0380-\u0383\u038B\u038D\u03A2\u0530\u0557\u0558\u058B\u058C\u0590\u05C8-\u05CF\u05EB-\u05EE\u05F5-\u05FF\u061D\u070E\u074B\u074C\u07B2-\u07BF\u07FB\u07FC\u082E\u082F\u083F\u085C\u085D\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A77-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C76\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE\u13FF\u169D-\u169F\u16F9-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C89-\u1C8F\u1CBB\u1CBC\u1CC8-\u1CCF\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u2065\u2072\u2073\u208F\u209D-\u209F\u20C0-\u20CF\u20F1-\u20FF\u218C-\u218F\u2427-\u243F\u244B-\u245F\u2B74\u2B75\u2B96\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E53-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u3130\u318F\u31E4-\u31EF\u321F\u9FFD-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA6F8-\uA6FF\uA7C0\uA7C1\uA7CB-\uA7F4\uA82D-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C6-\uA8CD\uA8DA-\uA8DF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB6C-\uAB6F\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD\uFEFE\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFF8\uFFFE\uFFFF', + 'astral': '\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDCFF\uDD03-\uDD06\uDD34-\uDD36\uDD8F\uDD9D-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDFC4-\uDFC7\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6E\uDD70-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1E\uDD3A-\uDD3E\uDD40-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE4F\uDE59-\uDE5F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF7-\uDEFF\uDF36-\uDF38\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDF98\uDF9D-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F\uDEAA\uDEAE\uDEAF\uDEB2-\uDEFF\uDF28-\uDF2F\uDF5A-\uDFAF\uDFCC-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC4E-\uDC51\uDC70-\uDC7E\uDCC2-\uDCCC\uDCCE\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD48-\uDD4F\uDD77-\uDD7F\uDDE0\uDDF5-\uDDFF\uDE12\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEAA-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC5C\uDC62-\uDC7F\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDDE-\uDDFF\uDE45-\uDE4F\uDE5A-\uDE5F\uDE6D-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF40-\uDFFF]|\uD806[\uDC3C-\uDC9F\uDCF3-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD47-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE5-\uDDFF\uDE48-\uDE4F\uDEA3-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC46-\uDC4F\uDC6D-\uDC6F\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF9-\uDFAF\uDFB1-\uDFBF\uDFF2-\uDFFE]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F\uDC75-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDB7F][\uDC00-\uDFFF]|\uD80D[\uDC2F\uDC39-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6D\uDE70-\uDECF\uDEEE\uDEEF\uDEF6-\uDEFF\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE9B-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDCA4-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDDE9-\uDDFF\uDE46-\uDEDF\uDEF4-\uDEFF\uDF57-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE8C-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD50-\uDEBF\uDEFA-\uDEFE\uDF00-\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDD5D\uDD60-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCB5-\uDD00\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDDAE-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDE5F\uDE66-\uDEFF]|\uD83D[\uDED8-\uDEDF\uDEED-\uDEEF\uDEFD-\uDEFF\uDF74-\uDF7F\uDFD9-\uDFDF\uDFEC-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE\uDCAF\uDCB2-\uDCFF\uDD79\uDDCC\uDE54-\uDE5F\uDE6E\uDE6F\uDE75-\uDE77\uDE7B-\uDE7F\uDE87-\uDE8F\uDEA9-\uDEAF\uDEB7-\uDEBF\uDEC3-\uDECF\uDED7-\uDEFF\uDF93\uDFCB-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00\uDC02-\uDC1F\uDC80-\uDCFF\uDDF0-\uDFFF]|[\uDBBF\uDBFF][\uDFFE\uDFFF]' + }, + { + 'name': 'Co', + 'alias': 'Private_Use', + 'bmp': '\uE000-\uF8FF', + 'astral': '[\uDB80-\uDBBE\uDBC0-\uDBFE][\uDC00-\uDFFF]|[\uDBBF\uDBFF][\uDC00-\uDFFD]' + }, + { + 'name': 'Cs', + 'alias': 'Surrogate', + 'bmp': '\uD800-\uDFFF' + }, + { + 'name': 'L', + 'alias': 'Letter', + 'bmp': 'A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7CA\uA7F5-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC', + 'astral': '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]' + }, + { + 'name': 'LC', + 'alias': 'Cased_Letter', + 'bmp': 'A-Za-z\xB5\xC0-\xD6\xD8-\xF6\xF8-\u01BA\u01BC-\u01BF\u01C4-\u0293\u0295-\u02AF\u0370-\u0373\u0376\u0377\u037B-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0560-\u0588\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FD-\u10FF\u13A0-\u13F5\u13F8-\u13FD\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2134\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2C7B\u2C7E-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA640-\uA66D\uA680-\uA69B\uA722-\uA76F\uA771-\uA787\uA78B-\uA78E\uA790-\uA7BF\uA7C2-\uA7CA\uA7F5\uA7F6\uA7FA\uAB30-\uAB5A\uAB60-\uAB68\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF21-\uFF3A\uFF41-\uFF5A', + 'astral': '\uD801[\uDC00-\uDC4F\uDCB0-\uDCD3\uDCD8-\uDCFB]|\uD803[\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD806[\uDCA0-\uDCDF]|\uD81B[\uDE40-\uDE7F]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDD00-\uDD43]' + }, + { + 'name': 'Ll', + 'alias': 'Lowercase_Letter', + 'bmp': 'a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7BB\uA7BD\uA7BF\uA7C3\uA7C8\uA7CA\uA7F6\uA7FA\uAB30-\uAB5A\uAB60-\uAB68\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A', + 'astral': '\uD801[\uDC28-\uDC4F\uDCD8-\uDCFB]|\uD803[\uDCC0-\uDCF2]|\uD806[\uDCC0-\uDCDF]|\uD81B[\uDE60-\uDE7F]|\uD835[\uDC1A-\uDC33\uDC4E-\uDC54\uDC56-\uDC67\uDC82-\uDC9B\uDCB6-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDCEA-\uDD03\uDD1E-\uDD37\uDD52-\uDD6B\uDD86-\uDD9F\uDDBA-\uDDD3\uDDEE-\uDE07\uDE22-\uDE3B\uDE56-\uDE6F\uDE8A-\uDEA5\uDEC2-\uDEDA\uDEDC-\uDEE1\uDEFC-\uDF14\uDF16-\uDF1B\uDF36-\uDF4E\uDF50-\uDF55\uDF70-\uDF88\uDF8A-\uDF8F\uDFAA-\uDFC2\uDFC4-\uDFC9\uDFCB]|\uD83A[\uDD22-\uDD43]' + }, + { + 'name': 'Lm', + 'alias': 'Modifier_Letter', + 'bmp': '\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C\uA69D\uA717-\uA71F\uA770\uA788\uA7F8\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3\uAAF4\uAB5C-\uAB5F\uAB69\uFF70\uFF9E\uFF9F', + 'astral': '\uD81A[\uDF40-\uDF43]|\uD81B[\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD838[\uDD37-\uDD3D]|\uD83A\uDD4B' + }, + { + 'name': 'Lo', + 'alias': 'Other_Letter', + 'bmp': '\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05EF-\u05F2\u0620-\u063F\u0641-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E45\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1100-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC', + 'astral': '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC50-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF4A\uDF50]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD838[\uDD00-\uDD2C\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]' + }, + { + 'name': 'Lt', + 'alias': 'Titlecase_Letter', + 'bmp': '\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC' + }, + { + 'name': 'Lu', + 'alias': 'Uppercase_Letter', + 'bmp': 'A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uA7BA\uA7BC\uA7BE\uA7C2\uA7C4-\uA7C7\uA7C9\uA7F5\uFF21-\uFF3A', + 'astral': '\uD801[\uDC00-\uDC27\uDCB0-\uDCD3]|\uD803[\uDC80-\uDCB2]|\uD806[\uDCA0-\uDCBF]|\uD81B[\uDE40-\uDE5F]|\uD835[\uDC00-\uDC19\uDC34-\uDC4D\uDC68-\uDC81\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB5\uDCD0-\uDCE9\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD38\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD6C-\uDD85\uDDA0-\uDDB9\uDDD4-\uDDED\uDE08-\uDE21\uDE3C-\uDE55\uDE70-\uDE89\uDEA8-\uDEC0\uDEE2-\uDEFA\uDF1C-\uDF34\uDF56-\uDF6E\uDF90-\uDFA8\uDFCA]|\uD83A[\uDD00-\uDD21]' + }, + { + 'name': 'M', + 'alias': 'Mark', + 'bmp': '\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1AC0\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F', + 'astral': '\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDF46-\uDF50]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDCE\uDDCF\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC5E\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDEAB-\uDEB7\uDF1D-\uDF2B]|\uD806[\uDC2C-\uDC3A\uDD30-\uDD35\uDD37\uDD38\uDD3B-\uDD3E\uDD40\uDD42\uDD43\uDDD1-\uDDD7\uDDDA-\uDDE0\uDDE4\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDEF3-\uDEF6]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF51-\uDF87\uDF8F-\uDF92\uDFE4\uDFF0\uDFF1]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD30-\uDD36\uDEEC-\uDEEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]' + }, + { + 'name': 'Mc', + 'alias': 'Spacing_Mark', + 'bmp': '\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E\u094F\u0982\u0983\u09BE-\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062-\u1064\u1067-\u106D\u1083\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7\u17C8\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1A19\u1A1A\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1C24-\u1C2B\u1C34\u1C35\u1CE1\u1CF7\u302E\u302F\uA823\uA824\uA827\uA880\uA881\uA8B4-\uA8C3\uA952\uA953\uA983\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9C0\uAA2F\uAA30\uAA33\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE\uAAEF\uAAF5\uABE3\uABE4\uABE6\uABE7\uABE9\uABEA\uABEC', + 'astral': '\uD804[\uDC00\uDC02\uDC82\uDCB0-\uDCB2\uDCB7\uDCB8\uDD2C\uDD45\uDD46\uDD82\uDDB3-\uDDB5\uDDBF\uDDC0\uDDCE\uDE2C-\uDE2E\uDE32\uDE33\uDE35\uDEE0-\uDEE2\uDF02\uDF03\uDF3E\uDF3F\uDF41-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63]|\uD805[\uDC35-\uDC37\uDC40\uDC41\uDC45\uDCB0-\uDCB2\uDCB9\uDCBB-\uDCBE\uDCC1\uDDAF-\uDDB1\uDDB8-\uDDBB\uDDBE\uDE30-\uDE32\uDE3B\uDE3C\uDE3E\uDEAC\uDEAE\uDEAF\uDEB6\uDF20\uDF21\uDF26]|\uD806[\uDC2C-\uDC2E\uDC38\uDD30-\uDD35\uDD37\uDD38\uDD3D\uDD40\uDD42\uDDD1-\uDDD3\uDDDC-\uDDDF\uDDE4\uDE39\uDE57\uDE58\uDE97]|\uD807[\uDC2F\uDC3E\uDCA9\uDCB1\uDCB4\uDD8A-\uDD8E\uDD93\uDD94\uDD96\uDEF5\uDEF6]|\uD81B[\uDF51-\uDF87\uDFF0\uDFF1]|\uD834[\uDD65\uDD66\uDD6D-\uDD72]' + }, + { + 'name': 'Me', + 'alias': 'Enclosing_Mark', + 'bmp': '\u0488\u0489\u1ABE\u20DD-\u20E0\u20E2-\u20E4\uA670-\uA672' + }, + { + 'name': 'Mn', + 'alias': 'Nonspacing_Mark', + 'bmp': '\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B55\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D81\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1ABF\u1AC0\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F', + 'astral': '\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDF46-\uDF50]|\uD804[\uDC01\uDC38-\uDC46\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDDCF\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF40\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB3-\uDCB8\uDCBA\uDCBF\uDCC0\uDCC2\uDCC3\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDD3B\uDD3C\uDD3E\uDD43\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92\uDFE4]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD67-\uDD69\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD30-\uDD36\uDEEC-\uDEEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]' + }, + { + 'name': 'N', + 'alias': 'Number', + 'bmp': '0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19', + 'astral': '\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]' + }, + { + 'name': 'Nd', + 'alias': 'Decimal_Number', + 'bmp': '0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19', + 'astral': '\uD801[\uDCA0-\uDCA9]|\uD803[\uDD30-\uDD39]|\uD804[\uDC66-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF39]|\uD806[\uDCE0-\uDCE9\uDD50-\uDD59]|\uD807[\uDC50-\uDC59\uDD50-\uDD59\uDDA0-\uDDA9]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDD50-\uDD59]|\uD83E[\uDFF0-\uDFF9]' + }, + { + 'name': 'Nl', + 'alias': 'Letter_Number', + 'bmp': '\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF', + 'astral': '\uD800[\uDD40-\uDD74\uDF41\uDF4A\uDFD1-\uDFD5]|\uD809[\uDC00-\uDC6E]' + }, + { + 'name': 'No', + 'alias': 'Other_Number', + 'bmp': '\xB2\xB3\xB9\xBC-\xBE\u09F4-\u09F9\u0B72-\u0B77\u0BF0-\u0BF2\u0C78-\u0C7E\u0D58-\u0D5E\u0D70-\u0D78\u0F2A-\u0F33\u1369-\u137C\u17F0-\u17F9\u19DA\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215F\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA830-\uA835', + 'astral': '\uD800[\uDD07-\uDD33\uDD75-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC65\uDDE1-\uDDF4]|\uD805[\uDF3A\uDF3B]|\uD806[\uDCEA-\uDCF2]|\uD807[\uDC5A-\uDC6C\uDFC0-\uDFD4]|\uD81A[\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD83A[\uDCC7-\uDCCF]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]' + }, + { + 'name': 'P', + 'alias': 'Punctuation', + 'bmp': '!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65', + 'astral': '\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]' + }, + { + 'name': 'Pc', + 'alias': 'Connector_Punctuation', + 'bmp': '_\u203F\u2040\u2054\uFE33\uFE34\uFE4D-\uFE4F\uFF3F' + }, + { + 'name': 'Pd', + 'alias': 'Dash_Punctuation', + 'bmp': '\\-\u058A\u05BE\u1400\u1806\u2010-\u2015\u2E17\u2E1A\u2E3A\u2E3B\u2E40\u301C\u3030\u30A0\uFE31\uFE32\uFE58\uFE63\uFF0D', + 'astral': '\uD803\uDEAD' + }, + { + 'name': 'Pe', + 'alias': 'Close_Punctuation', + 'bmp': '\\)\\]\\}\u0F3B\u0F3D\u169C\u2046\u207E\u208E\u2309\u230B\u232A\u2769\u276B\u276D\u276F\u2771\u2773\u2775\u27C6\u27E7\u27E9\u27EB\u27ED\u27EF\u2984\u2986\u2988\u298A\u298C\u298E\u2990\u2992\u2994\u2996\u2998\u29D9\u29DB\u29FD\u2E23\u2E25\u2E27\u2E29\u3009\u300B\u300D\u300F\u3011\u3015\u3017\u3019\u301B\u301E\u301F\uFD3E\uFE18\uFE36\uFE38\uFE3A\uFE3C\uFE3E\uFE40\uFE42\uFE44\uFE48\uFE5A\uFE5C\uFE5E\uFF09\uFF3D\uFF5D\uFF60\uFF63' + }, + { + 'name': 'Pf', + 'alias': 'Final_Punctuation', + 'bmp': '\xBB\u2019\u201D\u203A\u2E03\u2E05\u2E0A\u2E0D\u2E1D\u2E21' + }, + { + 'name': 'Pi', + 'alias': 'Initial_Punctuation', + 'bmp': '\xAB\u2018\u201B\u201C\u201F\u2039\u2E02\u2E04\u2E09\u2E0C\u2E1C\u2E20' + }, + { + 'name': 'Po', + 'alias': 'Other_Punctuation', + 'bmp': '!-#%-\'\\*,\\.\\/:;\\?@\\\xA1\xA7\xB6\xB7\xBF\u037E\u0387\u055A-\u055F\u0589\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u166E\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u1805\u1807-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2016\u2017\u2020-\u2027\u2030-\u2038\u203B-\u203E\u2041-\u2043\u2047-\u2051\u2053\u2055-\u205E\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00\u2E01\u2E06-\u2E08\u2E0B\u2E0E-\u2E16\u2E18\u2E19\u2E1B\u2E1E\u2E1F\u2E2A-\u2E2E\u2E30-\u2E39\u2E3C-\u2E3F\u2E41\u2E43-\u2E4F\u2E52\u3001-\u3003\u303D\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFE10-\uFE16\uFE19\uFE30\uFE45\uFE46\uFE49-\uFE4C\uFE50-\uFE52\uFE54-\uFE57\uFE5F-\uFE61\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF07\uFF0A\uFF0C\uFF0E\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3C\uFF61\uFF64\uFF65', + 'astral': '\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]' + }, + { + 'name': 'Ps', + 'alias': 'Open_Punctuation', + 'bmp': '\\(\\[\\{\u0F3A\u0F3C\u169B\u201A\u201E\u2045\u207D\u208D\u2308\u230A\u2329\u2768\u276A\u276C\u276E\u2770\u2772\u2774\u27C5\u27E6\u27E8\u27EA\u27EC\u27EE\u2983\u2985\u2987\u2989\u298B\u298D\u298F\u2991\u2993\u2995\u2997\u29D8\u29DA\u29FC\u2E22\u2E24\u2E26\u2E28\u2E42\u3008\u300A\u300C\u300E\u3010\u3014\u3016\u3018\u301A\u301D\uFD3F\uFE17\uFE35\uFE37\uFE39\uFE3B\uFE3D\uFE3F\uFE41\uFE43\uFE47\uFE59\uFE5B\uFE5D\uFF08\uFF3B\uFF5B\uFF5F\uFF62' + }, + { + 'name': 'S', + 'alias': 'Symbol', + 'bmp': '\\$\\+<->\\^`\\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD', + 'astral': '\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]' + }, + { + 'name': 'Sc', + 'alias': 'Currency_Symbol', + 'bmp': '\\$\xA2-\xA5\u058F\u060B\u07FE\u07FF\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BF\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6', + 'astral': '\uD807[\uDFDD-\uDFE0]|\uD838\uDEFF|\uD83B\uDCB0' + }, + { + 'name': 'Sk', + 'alias': 'Modifier_Symbol', + 'bmp': '\\^`\xA8\xAF\xB4\xB8\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u309B\u309C\uA700-\uA716\uA720\uA721\uA789\uA78A\uAB5B\uAB6A\uAB6B\uFBB2-\uFBC1\uFF3E\uFF40\uFFE3', + 'astral': '\uD83C[\uDFFB-\uDFFF]' + }, + { + 'name': 'Sm', + 'alias': 'Math_Symbol', + 'bmp': '\\+<->\\|~\xAC\xB1\xD7\xF7\u03F6\u0606-\u0608\u2044\u2052\u207A-\u207C\u208A-\u208C\u2118\u2140-\u2144\u214B\u2190-\u2194\u219A\u219B\u21A0\u21A3\u21A6\u21AE\u21CE\u21CF\u21D2\u21D4\u21F4-\u22FF\u2320\u2321\u237C\u239B-\u23B3\u23DC-\u23E1\u25B7\u25C1\u25F8-\u25FF\u266F\u27C0-\u27C4\u27C7-\u27E5\u27F0-\u27FF\u2900-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2AFF\u2B30-\u2B44\u2B47-\u2B4C\uFB29\uFE62\uFE64-\uFE66\uFF0B\uFF1C-\uFF1E\uFF5C\uFF5E\uFFE2\uFFE9-\uFFEC', + 'astral': '\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD83B[\uDEF0\uDEF1]' + }, + { + 'name': 'So', + 'alias': 'Other_Symbol', + 'bmp': '\xA6\xA9\xAE\xB0\u0482\u058D\u058E\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u09FA\u0B70\u0BF3-\u0BF8\u0BFA\u0C7F\u0D4F\u0D79\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u214A\u214C\u214D\u214F\u218A\u218B\u2195-\u2199\u219C-\u219F\u21A1\u21A2\u21A4\u21A5\u21A7-\u21AD\u21AF-\u21CD\u21D0\u21D1\u21D3\u21D5-\u21F3\u2300-\u2307\u230C-\u231F\u2322-\u2328\u232B-\u237B\u237D-\u239A\u23B4-\u23DB\u23E2-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u25B6\u25B8-\u25C0\u25C2-\u25F7\u2600-\u266E\u2670-\u2767\u2794-\u27BF\u2800-\u28FF\u2B00-\u2B2F\u2B45\u2B46\u2B4D-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA828-\uA82B\uA836\uA837\uA839\uAA77-\uAA79\uFDFD\uFFE4\uFFE8\uFFED\uFFEE\uFFFC\uFFFD', + 'astral': '\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFDC\uDFE1-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838\uDD4F|\uD83B[\uDCAC\uDD2E]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFA]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]' + }, + { + 'name': 'Z', + 'alias': 'Separator', + 'bmp': ' \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000' + }, + { + 'name': 'Zl', + 'alias': 'Line_Separator', + 'bmp': '\u2028' + }, + { + 'name': 'Zp', + 'alias': 'Paragraph_Separator', + 'bmp': '\u2029' + }, + { + 'name': 'Zs', + 'alias': 'Space_Separator', + 'bmp': ' \xA0\u1680\u2000-\u200A\u202F\u205F\u3000' + } +]; + +var jabref = createCommonjsModule(function (module, exports) { +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parse = void 0; +function decode(s, sep = ';') { + s = s.replace(/\n/g, ''); + let pos = 0; + const records = ['']; + while (pos < s.length) { + switch (s[pos]) { + case '\\': + pos++; + records[0] += s[pos]; + break; + case sep: + records.unshift(''); + break; + default: + records[0] += s[pos]; + } + pos++; + } + return records.reverse().filter(record => record); +} +const prefixes = { + fileDirectory: 'jabref-meta: fileDirectory:', + groupsversion: 'jabref-meta: groupsversion:', + groupstree: 'jabref-meta: groupstree:', + grouping: 'jabref-meta: grouping:', +}; +/** + * Import the JabRef groups from the `@string` comments in which they were stored. You would typically pass the comments parsed by [[bibtex.parse]] in here. + * + * JabRef knows several group types, and this parser parses most, but not all of them: + * + * * independent group: the keys listed in the group are the entries that are considered to belong to it + * * intersection: the keys listed in the group are considered to belong to the group if they're also in the parent group + * * union: the keys listed in the group are considered to belong to the group, and also the keys that are in the parent group + * * query: not supported by this parser + */ +function parse(comments) { + const result = { + root: [], + groups: {}, + fileDirectory: '', + version: '', + }; + const levels = []; + const decoded = { + fileDirectory: null, + groupsversion: null, + groupstree: null, + grouping: null, + }; + for (const comment of comments) { + for (const [meta, prefix] of Object.entries(prefixes)) { + if (comment.startsWith(prefix)) { + decoded[meta] = decode(comment.substring(prefix.length)); + } + } + } + result.version = decoded.groupsversion && decoded.groupsversion[0]; + result.fileDirectory = decoded.fileDirectory && decoded.fileDirectory[0]; + for (const tree of ['groupstree', 'grouping']) { + if (!decoded[tree]) + continue; + for (const encoded of decoded[tree]) { + const fields = decode(encoded); + const level_type_name = decode(fields.shift(), ':'); + const m = /^([0-9]+) (.+)/.exec(level_type_name[0]); + if (!m) + break; + const level = parseInt(m[1]); + const type = m[2]; // test for StaticGroup? + if (type === 'AllEntriesGroup') + continue; // root + const name = level_type_name[1]; + const intersection = decode(fields.shift())[0]; + const keys = tree === 'grouping' ? [] : fields.map(field => decode(field)[0]); + const group = { + name, + entries: keys, + groups: [], + }; + result.groups[name] = result.groups[name] || group; + if (levels.length < level) { + levels.push(group); + } + else { + levels[level - 1] = group; + } + if (level === 1) { + result.root.push(group); + } + else { + const parent = levels[level - 2]; + switch (intersection) { + case '0': // independent + break; + case '1': // intersect + group.entries = group.entries.filter(key => parent.entries.includes(key)); + break; + case '2': // union + group.entries = group.entries.concat(parent.entries.filter(key => !group.entries.includes(key))); + break; + } + levels[level - 2].groups.push(group); + } + } + } + return result; +} +exports.parse = parse; + +}); + +var bibtexParser = createCommonjsModule(function (module, exports) { +Object.defineProperty(exports, "__esModule", { value: true }); +exports.jabref = exports.chunker = exports.ast = exports.parse = void 0; + + + +class ParserError extends Error { + constructor(message, node) { + super(message); // 'Error' breaks prototype chain here + Object.setPrototypeOf(this, new.target.prototype); // restore prototype chain + this.name = this.constructor.name; + this.node = node; + } +} +class TeXError extends Error { + constructor(message, node, text) { + super(message); // 'Error' breaks prototype chain here + Object.setPrototypeOf(this, new.target.prototype); // restore prototype chain + this.name = this.constructor.name; + this.node = node; + this.text = text; + } +} + +const charClass = { + Lu: categories.filter(cat => ['Uppercase_Letter', 'Titlecase_Letter'].includes(cat.alias)).map(cat => cat.bmp).join(''), + Ll: categories.find(cat => cat.alias === 'Lowercase_Letter').bmp, + LnotLu: categories.filter(cat => ['Lowercase_Letter', 'Modifier_Letter', 'Other_Letter', 'Nonspacing_Mark', 'Spacing_Mark', 'Decimal_Number', 'Letter_Number'].includes(cat.alias)).map(cat => cat.bmp).join(''), + P: categories.find(cat => cat.alias === 'Punctuation').bmp, + L: categories.find(cat => cat.alias === 'Letter').bmp, + N: categories.filter(cat => ['Decimal_Number', 'Letter_Number'].includes(cat.alias)).map(cat => cat.bmp).join(''), + AlphaNum: categories.filter(cat => ['Letter', 'Decimal_Number', 'Letter_Number'].includes(cat.alias)).map(cat => cat.bmp).join(''), + LC: categories.find(cat => cat.alias === 'Cased_Letter').bmp, +}; +const marker = { + and: '\u0001', + comma: '\u0002', + space: '\u0003', + literal: '\u0004', + markup: '\u0005', + re: { + and: /./, + comma: /./, + space: /./, + literal: /./, + literalName: /./, + }, + clean(s) { + return s.replace(marker.re.space, ' ').replace(marker.re.comma, ', ').replace(marker.re.literal, ''); + }, +}; +marker.re = { + and: new RegExp(marker.and, 'g'), + comma: new RegExp(marker.comma, 'g'), + space: new RegExp(marker.space, 'g'), + literal: new RegExp(marker.literal, 'g'), + literalName: new RegExp(`^${marker.literal}([^${marker.literal}]*)${marker.literal}$`), +}; +const preserveCase = { + leadingCap: new RegExp(`^[${charClass.Lu}][${charClass.LnotLu}]+[${charClass.P}]?$`), + allCaps: new RegExp(`^[${charClass.Lu}${charClass.N}]{2,}$`), + allLower: new RegExp(`^[${charClass.Ll}${charClass.N}]{2,}$`), + joined: new RegExp(`^[${charClass.Lu}][${charClass.LnotLu}]*([-+][${charClass.L}${charClass.N}]+)*[${charClass.P}]*$`), + hasUpper: new RegExp(`[${charClass.Lu}]`), + hasLower: new RegExp(`[${charClass.Ll}]`), + isNumber: /^[0-9]+$/, + hasAlpha: new RegExp(`[${charClass.L}]`), + hasAlphaNum: new RegExp(`[${charClass.AlphaNum}]`), + notAlphaNum: new RegExp(`[^${charClass.AlphaNum}]`, 'g'), + sentenceStart: new RegExp(`(^|([\u2014:?!.]\\s+))[${charClass.Lu}]`, 'g'), + markup: /<\/?span[^>]*>/g, + acronym: new RegExp(`.*\\.${marker.markup}*[${charClass.Lu}]${marker.markup}*\\.$`), + notCaseSensitive: new RegExp(`[^${charClass.LC}]`), + isCaseSensitive: new RegExp(`[${charClass.LC}]`), + quoted: /("[^"]+")|(“[^“]+“)/g, +}; +const fields = { + creator: [ + 'author', + 'bookauthor', + 'collaborator', + 'commentator', + 'director', + 'editor', + 'editora', + 'editorb', + 'editors', + 'holder', + 'scriptwriter', + 'translator', + ], + title: [ + 'title', + 'series', + 'shorttitle', + 'booktitle', + 'type', + 'origtitle', + 'maintitle', + 'eventtitle', + ], + unnest: [ + 'publisher', + 'location', + ], + verbatim: [ + 'url', + 'doi', + 'file', + 'files', + 'eprint', + 'verba', + 'verbb', + 'verbc', + 'groups', + ], + html: [ + 'annotation', + 'comment', + 'annote', + 'review', + 'notes', + 'note', + ], + unabbrev: [ + 'journal', + 'journaltitle', + 'journal-full', + ], +}; +const english = [ + 'american', + 'british', + 'canadian', + 'english', + 'australian', + 'newzealand', + 'usenglish', + 'ukenglish', + 'en', + 'eng', + 'en-au', + 'en-bz', + 'en-ca', + 'en-cb', + 'en-gb', + 'en-ie', + 'en-jm', + 'en-nz', + 'en-ph', + 'en-tt', + 'en-us', + 'en-za', + 'en-zw', + 'anglais', +]; +class Parser { + constructor(options = {}) { + this.in_preamble = false; + this.preamble = []; + this.log = function (str) { }; // tslint:disable-line variable-name only-arrow-functions no-empty + for (const [option, value] of Object.entries(options)) { + if (typeof value === 'undefined') + delete options[option]; + } + if (options.errorHandler === false) { + // tslint:disable-next-line only-arrow-functions no-empty + options.errorHandler = function (err) { }; + } + else if (options.errorHandler === undefined) { + // tslint:disable-next-line only-arrow-functions + options.errorHandler = function (err) { throw err; }; + } + if (typeof options.sentenceCase === 'boolean') { + options.sentenceCase = options.sentenceCase ? english : []; + } + else { + options.sentenceCase = options.sentenceCase || english; + } + if (!options.strings) + options.strings = {}; + if (!options.unabbreviate) + options.unabbreviate = {}; + if (options.raw) { + options.sentenceCase = false; + options.caseProtection = false; + } + this.options = Object.assign({ caseProtection: 'as-needed', verbatimFields: [/^citeulike-linkout-[0-9]+$/, ...fields.verbatim], verbatimCommands: ['url', 'href'], unnestFields: [...fields.title, ...fields.unnest, ...fields.verbatim], unnestMode: 'unwrap', htmlFields: fields.html, guessAlreadySentenceCased: true, markup: {} }, options); + const markup_defaults = { + enquote: { open: '\u201c', close: '\u201d' }, + sub: { open: '', close: '' }, + sup: { open: '', close: '' }, + bold: { open: '', close: '' }, + italics: { open: '', close: '' }, + smallCaps: { open: '', close: '' }, + caseProtect: { open: '', close: '' }, + roman: { open: '', close: '' }, + fixedWidth: { open: '', close: '' }, + }; + // patch in because the options will likely not have enquote and case-protect + for (const [markup, { open, close }] of Object.entries(markup_defaults)) { + this.options.markup[markup] = this.options.markup[markup] || { open, close }; + } + for (const i of [1, 2, 3, 4]) { // tslint:disable-line:no-magic-numbers + this.options.markup[`h${i}`] = this.options.markup[`h${i}`] || { open: ``, close: `` }; + } + this.unresolvedStrings = {}; + this.errors = []; + this.comments = []; + this.entries = []; + this.strings = {}; + this.newcommands = {}; + this.default_strings = { + JAN: [this.text('01')], + FEB: [this.text('02')], + MAR: [this.text('03')], + APR: [this.text('04')], + MAY: [this.text('05')], + JUN: [this.text('06')], + JUL: [this.text('07')], + AUG: [this.text('08')], + SEP: [this.text('09')], + OCT: [this.text('10')], + NOV: [this.text('11')], + DEC: [this.text('12')], + ACMCS: [this.text('ACM Computing Surveys')], + ACTA: [this.text('Acta Informatica')], + CACM: [this.text('Communications of the ACM')], + IBMJRD: [this.text('IBM Journal of Research and Development')], + IBMSJ: [this.text('IBM Systems Journal')], + IEEESE: [this.text('IEEE Transactions on Software Engineering')], + IEEETC: [this.text('IEEE Transactions on Computers')], + IEEETCAD: [this.text('IEEE Transactions on Computer-Aided Design of Integrated Circuits')], + IPL: [this.text('Information Processing Letters')], + JACM: [this.text('Journal of the ACM')], + JCSS: [this.text('Journal of Computer and System Sciences')], + SCP: [this.text('Science of Computer Programming')], + SICOMP: [this.text('SIAM Journal on Computing')], + TOCS: [this.text('ACM Transactions on Computer Systems')], + TODS: [this.text('ACM Transactions on Database Systems')], + TOG: [this.text('ACM Transactions on Graphics')], + TOMS: [this.text('ACM Transactions on Mathematical Software')], + TOOIS: [this.text('ACM Transactions on Office Information Systems')], + TOPLAS: [this.text('ACM Transactions on Programming Languages and Systems')], + TCS: [this.text('Theoretical Computer Science')], + }; + } + ast(input, clean = true) { + const _ast = []; + for (const chunk of chunker.parse(input)) { + let chunk_ast = grammar.parse(chunk.text, Object.assign(Object.assign({}, this.options), { combiningDiacritics: unicode2latex.diacritics.commands })); + if (clean) + chunk_ast = this.clean(chunk_ast); + _ast.push(chunk_ast); + } + return _ast; + } + parse(input) { + return this.options.async ? this.parseAsync(input) : this.parseSync(input); + } + parseSync(input) { + for (const chunk of chunker.parse(input)) { + this.parseChunk(chunk); + } + return this.parsed(); + } + async parseAsync(input) { + for (const chunk of await chunker.parse(input, { async: true })) { + this.parseChunk(chunk); + } + return this.parsed(); + } + parsed() { + this.field = null; + const strings = {}; + this.cleaning = { type: 'other' }; + for (const [key, value] of Object.entries(this.strings)) { + this.field = { + name: '@string', + text: '', + level: 0, + preserveRanges: null, + words: { + upper: 0, + lower: 0, + other: 0, + }, + }; + this.convert(this.clean(value)); + strings[key] = this.field.text; + } + return { + errors: this.errors, + entries: this.entries, + comments: this.comments, + strings, + preamble: this.preamble, + }; + } + preserve(start, end, reason) { + if (!this.field.preserveRanges) + return; + if (!end) { + this.field.preserveRanges = null; + return; + } + /* + this.field.preserveRanges = this.field.preserveRanges.filter(range => range.start < start || range.end > end) + if (this.field.preserveRanges.find(range => range.start <= start && range.end >= end)) return + */ + /* + if (this.field.preserveRanges && this.field.preserveRanges.length) { + const last = this.field.preserveRanges[this.field.preserveRanges.length - 1] + if (start < last.start) throw new Error(JSON.stringify({...last, new: { start, end, reason }, text: this.field.text})) + } + */ + this.field.preserveRanges.push({ start, end, reason }); + } + parseChunk(chunk) { + this.chunk = chunk.text; + try { + let bib = grammar.parse(chunk.text, Object.assign(Object.assign({}, this.options), { combiningDiacritics: unicode2latex.diacritics.commands })); + if (bib.kind !== 'Bibliography') + throw new Error(this.show(bib)); + bib = this.clean(bib); + for (const entity of bib.children) { + switch (entity.kind) { + case 'Entry': + case 'BracedComment': + case 'LineComment': + case 'PreambleExpression': + this.convert(entity); + break; + case 'StringDeclaration': + case 'NonEntryText': + break; + } + } + return bib; + } + catch (err) { + if (!err.location) + throw err; + this.errors.push({ + message: err.message, + line: err.location.start.line + chunk.offset.line, + column: err.location.start.column, + source: this.chunk, + }); + return null; + } + } + show(o) { + // tslint:disable-next-line prefer-template + let text = JSON.stringify(o); + if (this.chunk) + text += '\n' + this.chunk.trim(); + return text; + } + text(value = '') { + return { kind: 'Text', value, mode: 'text' }; + } + error(err, returnvalue) { + if (typeof this.options.errorHandler === 'function') + this.options.errorHandler(err); + return returnvalue; + } + condense(node) { + // apply cleaning to resulting children + node.value = node.value.map(child => this.clean(child)); + // unpack redundant blocks + node.value = node.value.reduce((acc, child, i) => { + if (child.kind === 'Block' && !child.case && Object.keys(child.markup).length === 0) { + acc = acc.concat(child.value); + } + else { + acc.push(child); + } + return acc; + }, []); + // condense text nodes to make whole words for sentence casing + node.value = node.value.reduce((acc, child, i) => { + if (acc.length === 0) { + acc.push(child); + return acc; + } + const last = acc[acc.length - 1]; + const next = node.value[i + 1]; + if (this.options.caseProtection === 'strict' && this.onlyCaseProtected(last) && child.kind === 'Text' && !child.value.match(preserveCase.isCaseSensitive) && this.onlyCaseProtected(next)) { + last.value.push(child); + delete last.source; + return acc; + } + if (last.kind === 'Block' && child.kind === 'Block' && Object.keys(last.markup).sort().join('/') === Object.keys(child.markup).sort().join('/')) { + last.value = last.value.concat(child.value); + delete last.source; + return acc; + } + if (last.kind === 'Text' && child.kind === 'Text' && last.mode === child.mode) { + last.value += child.value; + delete last.source; + return acc; + } + acc.push(child); + return acc; + }, []); + } + onlyCaseProtected(node) { + return (node === null || node === void 0 ? void 0 : node.kind) === 'Block' && node.case === 'protect' && Object.keys(node.markup).join('/') === ''; + } + argument(node, kind) { + if (!node.arguments || !node.arguments.required.length) + return (kind === 'none'); + // expect 'n' text arguments + if (typeof kind === 'number') { + if (node.arguments.required.length !== kind) + return false; + return node.arguments.required; + } + // return first argument if it's the only one + if (node.arguments.required.length !== 1) + return false; + // loose checking for text + if (kind === 'text') { + const first = node.arguments.required[0]; + if (first.kind === 'Block' && first.value.length === 1) { + if (first.value[0].kind === 'Text') + return first.value[0].value; + } + // fall back to strict kind check + kind = 'Text'; + } + // return first argument if it's the only one and is of the specified kind + if (node.arguments.required.length !== 1 || node.arguments.required[0].kind !== kind) + return false; + switch (kind) { + case 'Text': + return node.arguments.required[0].value; + case 'RegularCommand': + case 'Block': + return node.arguments.required[0]; + } + return false; + } + clean(node) { + if (Array.isArray(node)) + return node.map(child => this.clean(child)); + delete node.loc; + switch (node.kind) { + case 'InlineMath': + case 'DisplayMath': + return this.clean_block(node); + case 'Environment': + return this.clean_environment(node); + case 'Block': + return this.clean_block(node); + case 'Bibliography': + return this.clean_bib(node); + case 'RegularCommand': + return this.clean_command(node); + case 'DiacriticCommand': + return this.clean_diacritic(node); + case 'Entry': + return this.clean_entry(node); + case 'Field': + return this.options.raw ? node : this.clean_field(node); + case 'StringDeclaration': + return this.clean_stringdecl(node); + case 'StringReference': + return this.clean_stringref(node); + case 'SubscriptCommand': + case 'SuperscriptCommand': + return this.clean_script(node); + case 'SymbolCommand': + return this.clean_symbol(node); + case 'PreambleExpression': + return this.clean_preamble(node); + case 'Number': + case 'Text': + case 'BracedComment': + case 'LineComment': + return node; + default: + return this.error(new ParserError(`no cleanup method for ${this.show(node)}`, node), this.text()); + } + } + clean_preamble(node) { + this.in_preamble = true; + const clean = this.clean(node.value); + this.in_preamble = false; + return clean; + } + clean_bib(node) { + node.children = node.children.filter(child => child.kind !== 'NonEntryText').map(child => this.clean(child)); + return node; + } + clean_stringdecl(node) { + this.strings[node.name.toUpperCase()] = node.value; + return node; + } + clean_stringref(node) { + var _a; + const name = node.name.toUpperCase(); + const _string = this.strings[name] + || this.options.strings[name] + || this.default_strings[name] + || (fields.unabbrev.includes(this.cleaning.name) && ((_a = this.options.unabbreviate[name]) === null || _a === void 0 ? void 0 : _a.text) && [this.text(this.options.unabbreviate[name].text)]); + if (!_string) { + if (!this.unresolvedStrings[name]) + this.errors.push({ message: `Unresolved @string reference ${JSON.stringify(node.name)}` }); + this.unresolvedStrings[name] = true; + } + return this.clean({ + kind: 'Block', + // if the string isn't found, add it as-is but exempt it from sentence casing + case: _string ? undefined : 'preserve', + markup: {}, + value: _string ? JSON.parse(JSON.stringify(_string)) : [this.text(node.name)], + }); + } + clean_entry(node) { + const shortjournals = []; + for (const field of node.fields) { + if (fields.unabbrev.includes(field.name) && Array.isArray(field.value)) { + const abbr = field.value.map(v => v.source).join(''); + const journal = this.options.unabbreviate[abbr]; + if (journal) { + shortjournals.push(Object.assign(Object.assign({}, JSON.parse(JSON.stringify(field))), { name: 'shortjournal' })); + field.value = JSON.parse(JSON.stringify(journal.ast)); + } + } + } + node.fields = node.fields.concat(shortjournals).map(child => this.clean(child)); + return node; + } + startCleaning(name) { + name = name.toLowerCase(); + if (fields.title.includes(name)) { + this.cleaning = { type: 'title', name }; + } + else if (fields.creator.includes(name.replace(/s$/, ''))) { + this.cleaning = { type: 'creator', name: name.replace(/s$/, '') }; + } + else { + this.cleaning = { type: 'other', name }; + } + } + stripNoCase(node, strip, preserve) { + switch (node.kind) { + case 'RegularCommand': + // a bit cheaty to assume these to be nocased, but it's just more likely to be what people want + if (['chsf', 'bibstring', 'cite'].includes(node.command)) + strip = true; + node.arguments.required.map(arg => this.stripNoCase(arg, strip, preserve)); + break; + case 'Block': + case 'InlineMath': + case 'DisplayMath': + if (strip && node.case === 'protect') { + if (preserve) { + node.case = 'preserve'; + } + else { + delete node.case; + } + } + node.value.map(v => this.stripNoCase(v, strip || node.case === 'protect', preserve)); + break; + case 'Field': + if (Array.isArray(node.value)) + node.value.map(v => this.stripNoCase(v, strip, preserve)); + break; + } + } + isVerbatimField(name) { + return !!this.options.verbatimFields.find(p => (typeof p === 'string') ? name === p : name.match(p)); + } + clean_field(node) { + this.startCleaning(node.name); + this.stripNoCase(node, !this.options.caseProtection || this.isVerbatimField(node.name), this.options.sentenceCase.length === 0); + if (Array.isArray(node.value)) + this.condense(node); + return node; + } + clean_script(node) { + let m, value, singlechar; + // recognize combined forms like \^\circ + if (singlechar = unicode2latex.latex[node.source]) + return this.text(singlechar); + if ((m = node.source.match(/^([\^_])([^{}]+)$/)) && ((singlechar = unicode2latex.latex[`${m[1]}${m[2]}`]) || (singlechar = unicode2latex.latex[`${m[1]}{${m[2]}}`]))) + return this.text(singlechar); + if ((m = node.source.match(/^([\^_])\{([^{}]+)\}$/)) && ((singlechar = unicode2latex.latex[`${m[1]}${m[2]}`]) || (singlechar = unicode2latex.latex[`${m[1]}{${m[2]}}`]))) + return this.text(singlechar); + const cmd = node.kind === 'SuperscriptCommand' ? '^' : '_'; + if (typeof node.value === 'string' && (singlechar = unicode2latex.latex[`${cmd}${node.value}`] || unicode2latex.latex[`${cmd}{${node.value}}`])) { + return this.text(singlechar); + } + if (typeof node.value === 'string') { + value = [this.text(node.value)]; + } + else if (!Array.isArray(node.value)) { + value = [node.value]; + } + else { + value = node.value; + } + const mode = node.kind === 'SuperscriptCommand' ? 'sup' : 'sub'; + return this.clean({ + kind: 'Block', + markup: { [mode]: true }, + value, + }); + } + clean_environment(node) { + this.condense(node); + return node; + } + needsProtection(word) { + return !word.match(preserveCase.hasUpper) && word.match(preserveCase.hasLower); + } + clean_block(node) { + var _a; + this.condense(node); + if (this.options.caseProtection !== 'strict' && ((_a = this.cleaning) === null || _a === void 0 ? void 0 : _a.type) === 'title' && node.case === 'protect') { + // test whether we can get away with skipping case protection because it contains all words that will be preserved anyway when converting back to Title Case + let preserve = true; + for (const child of node.value) { + if (child.kind === 'Text') { + const value = child.value.trim(); + preserve = !value.match(preserveCase.isCaseSensitive) || !value.split(/\s+/).find(word => this.needsProtection(word)); + } + else { + preserve = false; + } + if (!preserve) + break; + } + if (preserve) + node.case = 'preserve'; + } + if (node.kind === 'Block') { + for (const [markup, on] of Object.entries(node.markup)) { + if (!on) + delete node.markup[markup]; + } + } + return node; + } + clean_diacritic(node) { + const char = node.dotless ? `\\${node.character}` : node.character; + let unicode = unicode2latex.latex[`\\${node.mark}{${char}}`] + || unicode2latex.latex[`\\${node.mark}${char}`] + || unicode2latex.latex[`{\\${node.mark} ${char}}`] + || unicode2latex.latex[`{\\${node.mark}${char}}`] + || unicode2latex.latex[`\\${node.mark} ${char}`]; + if (!unicode && !node.dotless && node.character.length === 1 && unicode2latex.diacritics.tounicode[node.mark]) + unicode = node.character + unicode2latex.diacritics.tounicode[node.mark]; + if (!unicode && !this.in_preamble) + return this.error(new TeXError(`Unhandled \\${node.mark}{${char}}`, node, this.chunk), this.text()); + return this.text(unicode); + } + clean_symbol(node) { + if (node.command === '\\') + return this.text('\n'); + return this.text(unicode2latex.latex[`\\${node.command}`] || node.command); + } + first_text_block(node) { + if (!node) + return null; + if (node.kind === 'Block') { + for (const child of node.value) { + switch (child.kind) { + case 'Text': + return child.value ? node : null; + case 'Block': + const candidate = this.first_text_block(child); + if (candidate) + return candidate; + break; + default: + return null; + } + } + } + else { + return null; + } + } + clean_command(node) { + var _a; + let arg, unicode; + if (unicode = unicode2latex.latex[node.source]) + return this.text(unicode); + switch (node.command) { + case 'newcommand': + if (((_a = node.arguments) === null || _a === void 0 ? void 0 : _a.required.length) === 2 + && node.arguments.required[0].kind === 'Block' + && node.arguments.required[0].value.length === 1 + && node.arguments.required[0].value[0].kind === 'RegularCommand' + && node.arguments.required[1].kind === 'Block') { + this.newcommands[node.arguments.required[0].value[0].command] = node.arguments.required[1].value; + return this.text(); + } + // console.log('newcommand?', JSON.stringify(node, null, 2)) + break; + case 'item': + return { kind: 'Markup', value: '
  • ', source: node.source }; + case 'frac': + if (arg = this.argument(node, 2)) { + if (arg[0].kind === 'Text' && arg[1].kind === 'Text' && (unicode = unicode2latex.latex[`\\frac{${arg[0].value}}{${arg[1].value}}`])) + return this.text(unicode); + return this.clean({ + kind: 'Block', + case: 'protect', + markup: {}, + value: [ + { kind: 'Block', markup: { sup: true }, value: [arg[0]] }, + this.text('\u2044'), + { kind: 'Block', markup: { sub: true }, value: [arg[1]] }, + ], + }); + } + break; + // ignore + case 'vspace': + case 'vphantom': + case 'path': + case 'aftergroup': + case 'ignorespaces': + case 'relax': + case 'noopsort': + case 'ifdefined': + case 'DeclarePrefChars': + case 'else': + case 'fi': + case 'makeatletter': + return this.text(); + case 'ElsevierGlyph': + if (arg = this.argument(node, 'Text')) { + if (unicode = unicode2latex.latex[`\\${node.command}{${arg}}`]) + return this.text(unicode); + return this.text(String.fromCharCode(parseInt(arg, 16))); + } + break; + case 'chsf': + if (this.argument(node, 'none')) + return this.text(); + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'bibstring': + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'cite': + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'textsuperscript': + case 'sp': + if ((arg = this.argument(node, 'Text')) && (unicode = unicode2latex.latex[`^{${arg}}`])) + return this.text(unicode); + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'textsubscript': + case 'sb': + if ((arg = this.argument(node, 'Text')) && (unicode = unicode2latex.latex[`_{${arg}}`])) + return this.text(unicode); + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'textsc': + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'enquote': + case 'mkbibquote': + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'textbf': + case 'mkbibbold': + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'section': + case 'subsection': + case 'subsubsection': + case 'subsubsubsection': + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'mkbibitalic': + case 'mkbibemph': + case 'textit': + case 'emph': + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + if (arg = this.argument(node, 'Text')) + return this.clean({ kind: 'Block', markup: { italics: true }, value: [this.text(arg)] }); + break; + case 'bibcyr': + if (this.argument(node, 'none')) + return this.text(); + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'hspace': + case 'mathrm': + case 'textrm': + case 'ocirc': + case 'mbox': + if (arg = this.argument(node, 'text')) { + unicode = unicode2latex.latex[`\\${node.command}{${arg}}`]; + return this.text(unicode || (node.command === 'hspace' ? ' ' : arg)); + } + else if (!node.arguments.required.length) { + return this.text(); + } + else if (arg = this.argument(node, 'Block')) { + return this.clean(arg); + } + break; + // just take the URL? Not the label? + case 'href': + if (arg = this.argument(node, 2)) + return this.clean(arg[0]); + break; + case 'url': + if (arg = this.argument(node, 'Text')) + return this.text(arg); + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'sl': + case 'em': + case 'it': + case 'itshape': + case 'bf': + case 'bfseries': + case 'sc': + case 'scshape': + case 'tt': + case 'rm': + case 'sf': + case 'verb': + // handled in the grammar + return this.text(); + // wouldn't know what to do with these + case 'left': + case 'right': + return this.text(); + case 'par': + return this.text('\n\n'); + case 'cyr': + if (this.argument(node, 'none')) + return this.text(); + break; + case 'polhk': + if (unicode = this.argument(node, 'text')) { + if (unicode.length === 1) + return this.text(unicode + '\u0328'); + } + if (this.argument(node, 'none')) + return this.text('\u0328'); + break; + default: + if (node.kind === 'RegularCommand' && this.newcommands[node.command]) { + return this.clean({ + kind: 'Block', + markup: {}, + value: JSON.parse(JSON.stringify(this.newcommands[node.command])), + }); + } + if (unicode2latex.diacritics.tounicode[node.command]) { + node.arguments.required = this.clean(node.arguments.required); + let block; + if (node.arguments.required.length === 1 && node.arguments.required[0].kind === 'Text') { + // no idea why I can't just straight return this but typescript just won't shut up + block = { + kind: 'Block', + markup: {}, + value: [{ + kind: 'DiacriticCommand', + mark: node.command, + character: node.arguments.required[0].value, + dotless: false, + loc: node.arguments.required[0].loc, + source: node.arguments.required[0].source, + }], + }; + return this.clean(block); + } + else if (block = this.first_text_block(node.arguments.required[0])) { + let fixed = false; + block.value = block.value.reduce((value, child) => { + if (!fixed && child.kind === 'Text') { + fixed = true; + value.push({ kind: 'DiacriticCommand', mark: node.command, character: child.value[0] }); + value.push(Object.assign(Object.assign({}, child), { value: child.value.substring(1) })); + } + else { + value.push(child); + } + return value; + }, []); + return this.clean({ + kind: 'Block', + markup: {}, + value: node.arguments.required, + }); + } + else { + // overline without arguments doesn't seem to render in LaTeX + if (node.command === 'overline') + return this.text(' '); + return this.clean({ + kind: 'Block', + markup: {}, + value: [this.text(' ' + unicode2latex.diacritics.tounicode[node.command])].concat(node.arguments.required), + }); + } + } + if (unicode = unicode2latex.latex[node.source] || unicode2latex.latex[`${node.source}{}`]) + return this.text(unicode); + if ((unicode = unicode2latex.latex[`\\${node.command}`] || unicode2latex.latex[`\\${node.command}{}`]) && this.argument(node, 'none')) + return this.text(unicode); + if ((arg = this.argument(node, 'Text')) && (unicode = unicode2latex.latex[`\\${node.command}{${arg}}`])) + return this.text(unicode); + break; + } + if (this.in_preamble) + return this.text(node.source); + return this.error(new TeXError(`Unhandled command: ${node.command}` + this.show(node), node, this.chunk), this.text()); + } + preserveCase(word) { + // word = word.replace(new RegExp(`"[${this.markup.enquote.open}${this.markup.enquote.close}:()]`, 'g'), '') + var _a, _b; + if (!word.trim()) + return false; + if (!word.match(preserveCase.hasAlphaNum)) + return true; + word = word.replace(/[\/’'”:()]/g, ''); + if (word === 'I') + return true; + if (word.length === 1) + return false; + if (word.replace(preserveCase.notCaseSensitive) === '') + return false; + // word = word.replace(preserveCase.notAlphaNum, '') + // simple cap at start of field + if (word.match(preserveCase.leadingCap) && ((_b = (_a = this.field) === null || _a === void 0 ? void 0 : _a.text) === null || _b === void 0 ? void 0 : _b.length) === 0) + return false; + if (word.match(preserveCase.allCaps)) + return true; + if (word.length > 1 && word.match(preserveCase.joined)) + return false; + if (word.match(preserveCase.hasUpper)) + return true; + if (word.match(preserveCase.isNumber)) + return true; + return false; + } + convert(node) { + if (Array.isArray(node)) + return node.map(child => this.convert(child)); + if (this.options.raw && this.field) + node = this.text(node.source); + switch (node.kind) { + case 'Markup': + if (this.field) + this.field.text += node.value; + break; + case 'BracedComment': + case 'LineComment': + this.comments.push(node.value); + break; + case 'Entry': + this.convert_entry(node); + break; + case 'Number': + this.convert_number(node); + break; + case 'Text': + this.convert_text(node); + break; + case 'Block': + case 'InlineMath': + case 'DisplayMath': + const start = this.field ? this.field.text.length : null; + const preserve = typeof start === 'number' && this.field.preserveRanges; + this.convert_block(node); + if (preserve && (node.case || node.kind.endsWith('Math'))) + this.preserve(start, this.field.text.length); // , `convert-block: case=${node.case}, math=${node.kind.endsWith('Math')}`) + break; + case 'Environment': + this.convert_environment(node); + break; + case 'PreambleExpression': + this.preamble.push(node.value.map(preamble => preamble.source).join('\n\n')); + break; + case 'DisplayMath': + case 'InlineMath': + case 'StringDeclaration': + break; + default: + return this.error(new ParserError(`no converter for ${node.kind}: ${this.show(node)}`, node), undefined); + } + } + splitOnce(s, sep, fromEnd = false) { + const split = fromEnd ? s.lastIndexOf(sep) : s.indexOf(sep); + return (split < 0) ? [s, ''] : [s.substr(0, split), s.substr(split + 1)]; + } + parseName(name) { + let parsed = null; + const parts = name.split(marker.comma); + if (parts.length && !parts.find(p => !p.match(/^[a-z]+(-i)?=/i))) { // extended name format + for (const part of parts) { + parsed = parsed || {}; + const [attr, value] = this.splitOnce(part.replace(marker.re.space, ''), '=').map(v => v.trim()); + if (!value) { + parsed = null; + break; + } + switch (attr.toLowerCase()) { + case 'family': + parsed.lastName = value; + break; + case 'given-i': + parsed.initial = value; + break; + case 'given': + parsed.firstName = value; + break; + case 'prefix': + parsed.prefix = value; + break; + case 'suffix': + parsed.suffix = value; + break; + case 'useprefix': + parsed.useprefix = value.toLowerCase() === 'true'; + break; + case 'juniorcomma': + parsed.useprefix = value.toLowerCase() === 'true'; + break; + default: + parsed[attr.toLowerCase()] = value; + break; + } + } + } + const prefix = /(.+?)\s+(vere|von|van den|van der|van|de|del|della|der|di|da|pietro|vanden|du|st.|st|la|lo|ter|bin|ibn|te|ten|op|ben|al)\s+(.+)/; + let m; + switch (parsed ? 0 : parts.length) { + case 0: + // already parsed + break; + case 1: // name without commas + // literal + if (marker.re.literalName.test(parts[0])) { + parsed = { literal: parts[0] }; + } + else if (m = parts[0].replace(marker.re.space, ' ').match(prefix)) { // split on prefix + parsed = { + firstName: m[1], + prefix: m[2], + lastName: m[3], + }; + } + else { + // top-level "firstname lastname" + const [firstName, lastName] = this.splitOnce(parts[0], marker.space, true); + if (lastName) { + parsed = { firstName, lastName }; + } + else { + parsed = { lastName: firstName }; + } + } + break; + case 2: // lastname, firstname + parsed = { + lastName: parts[0], + firstName: parts[1], + }; + break; + default: // lastname, suffix, firstname + parsed = { + lastName: parts[0], + suffix: parts[1], + firstName: parts.slice(2).join(marker.comma), + }; + } + for (const [k, v] of Object.entries(parsed)) { + if (typeof v !== 'string') + continue; + parsed[k] = marker.clean(v).trim(); + } + return parsed; + } + convert_entry(node) { + var _a; + this.entry = { + key: node.id, + type: node.type, + fields: {}, + creators: {}, + }; + this.entries.push(this.entry); + // order these first for language-dependent sentence casing + const order = ['langid', 'hyphenation', 'language']; + node.fields.sort((a, b) => { + const ia = order.indexOf(a.name); + const ib = order.indexOf(b.name); + if (ia === -1 && ib === -1) + return a.name.localeCompare(b.name); // doesn't matter really + if (ia === -1) + return 1; + if (ib === -1) + return -1; + return ia - ib; + }); + let sentenceCase = !!this.options.sentenceCase.length; // if sentenceCase is empty, no sentence casing + for (const field of node.fields) { + if (field.kind !== 'Field') + return this.error(new ParserError(`Expected Field, got ${field.kind}`, node), undefined); + this.startCleaning(field.name); + /* + if (this.options.raw && this.fieldType !== 'creator') { + this.entry.fields[field.name] = [ field.value.map(v => v.source).join('') ] + continue + } + */ + this.field = { + name: field.name, + text: '', + level: 0, + words: { + upper: 0, + lower: 0, + other: 0, + }, + preserveRanges: (sentenceCase && fields.title.includes(field.name)) ? [] : null, + html: this.options.htmlFields.includes(field.name), + }; + this.entry.fields[this.field.name] = this.entry.fields[this.field.name] || []; + // special case for 'title = 2020' + if (field.value.kind === 'Number') { + this.entry.fields[this.field.name].push(field.value.value); + this.field = null; + continue; + } + this.convert(field.value); + this.field.text = this.field.text.trim(); + this.field.text = this.field.text.replace(/<\/([a-z])><\1>/g, ''); + this.field.text = this.field.text.replace(/<([a-z])>(\s*)<\/\1>/g, '$1'); + if (!this.field.text) + continue; + // disable sentenceCasing if not an english + switch (this.field.name) { + case 'langid': + case 'hyphenation': + sentenceCase = sentenceCase && this.options.sentenceCase.includes(this.field.text.toLowerCase()); + break; + case 'language': + sentenceCase = sentenceCase && !!(this.field.text.toLowerCase().trim().split(/\s*,\s*/).find(lang => this.options.sentenceCase.includes(lang))); + break; + } + // "groups" is a jabref 3.8+ monstrosity + if (this.field.name.match(/^(keywords?|groups)$/)) { + for (let text of this.field.text.split(marker.comma)) { + text = text.trim(); + if (text) + this.entry.fields[this.field.name].push(text); + } + } + else if (this.cleaning.type === 'creator') { + if (!this.entry.creators[this.field.name]) + this.entry.creators[this.field.name] = []; + // {M. Halle, J. Bresnan, and G. Miller} + if (this.field.text.includes(`${marker.comma}${marker.and}`)) { // + this.field.text = this.field.text.replace(new RegExp(`${marker.comma}${marker.and}`, 'g'), marker.and).replace(new RegExp(marker.comma), marker.and); + } + for (const creator of this.field.text.split(marker.and)) { + this.entry.fields[this.field.name].push(marker.clean(creator)); + this.entry.creators[this.field.name].push(this.parseName(creator)); + } + } + else if (fields.unabbrev.includes(field.name)) { // doesn't get sentence casing anyhow TODO: booktitle does! + this.entry.fields[this.field.name].push((((_a = this.options.unabbreviate[this.field.text]) === null || _a === void 0 ? void 0 : _a.text) || this.field.text).normalize('NFC')); + } + else { + if (this.field.preserveRanges) { + if (this.options.guessAlreadySentenceCased && Math.max(this.field.words.upper, this.field.words.lower) > (this.field.words.other + Math.min(this.field.words.upper, this.field.words.lower))) { + this.preserve(null, null); // , 'mostly sentence cased already') + } + else { + const txt = this.field.text.replace(preserveCase.markup, markup => marker.markup.repeat(markup.length)); + let match; + preserveCase.sentenceStart.lastIndex = 0; + while ((match = preserveCase.sentenceStart.exec(txt))) { + // exclude stuff like "U.S. Taxes" + if (match.index > 2 && txt.substr(0, match.index + 1).match(preserveCase.acronym)) + continue; + this.preserve(match.index, match.index + match[0].length); // , `sentenceStart: ${match[0]} at ${match.index}..${match.index + match[0].length}`) + } + preserveCase.quoted.lastIndex = 0; + while ((match = preserveCase.quoted.exec(this.field.text))) { + this.preserve(match.index, match.index + match[0].length); // , 'quoted') + } + } + } + this.entry.fields[this.field.name].push(this.convertToSentenceCase(this.field.text).normalize('NFC')); + } + } + this.field = null; + } + convertToSentenceCase(text) { + if (!this.field.preserveRanges) + return text; + // always keep the leading char, but skip markup + const lead = text.match(/^(<[^>]+>)*./); + if (lead) { + this.preserve(lead[0].length - 1, lead[0].length); + } + else { + this.preserve(0, 1); + } + let sentenceCased = text.toLowerCase().replace(/(([\?!]\s*|^)([\'\"¡¿“‘„«\s]+)?[^\s])/g, x => x.toUpperCase()); + for (const { start, end } of this.field.preserveRanges) { + sentenceCased = sentenceCased.substring(0, start) + text.substring(start, end) + sentenceCased.substring(end); + } + if (text !== sentenceCased) + this.entry.sentenceCased = true; + return sentenceCased; + } + convert_number(node) { + this.field.text += `${node.value}`; + } + convert_text(node) { + if (node.mode === 'verbatim') { + this.field.text += node.value.trim(); + return; + } + // heuristic to detect pre-sentencecased text + for (const word of node.value.split(/\b/)) { + if (word.match(preserveCase.allLower)) { + this.field.words.lower++; + } + else if (word.match(preserveCase.allCaps)) { + this.field.words.upper++; + } + else if (word.match(preserveCase.hasAlpha)) { + this.field.words.other++; + } + } + if (this.field.level === 0 && this.cleaning.type === 'creator') { + this.field.text += node.value.replace(/\s+and\s+/ig, marker.and).replace(/\s*,\s*/g, marker.comma).replace(/\s+/g, marker.space); + return; + } + if (this.field.level === 0 && this.field.name.match(/^(keywords?|groups)$/)) { + this.field.text += node.value.replace(/\s*[;,]\s*/g, marker.comma); + return; + } + if (this.field.html) { + this.field.text += node.value.replace(/&/g, '&').replace(//g, '>'); + } + else if (this.field.preserveRanges) { + const words = node.value.split(/(\s+)/); + for (const word of words) { + const start = this.field.text.length; + this.field.text += word; + if (this.preserveCase(word)) + this.preserve(start, this.field.text.length); // , `word: ${JSON.stringify(word)}`) + } + } + else { + this.field.text += node.value; + } + } + convert_environment(node) { + this.field.text += { enumerate: '
      ', itemize: '
        ' }[node.env]; + this.convert_block(Object.assign(Object.assign({}, node), { kind: 'Block', markup: {} })); + this.field.text += { enumerate: '
    ', itemize: '' }[node.env]; + } + convert_block(node) { + const start = this.field.text.length; + let prefix = ''; + let postfix = ''; + if (this.options.caseProtection !== 'strict' && this.cleaning.type === 'other') + delete node.case; + if (this.cleaning.type === 'creator' && node.case === 'protect') { + prefix += marker.literal; + postfix = marker.literal + postfix; + delete node.case; + } + if (node.case === 'protect') { + prefix += this.options.markup.caseProtect.open; + postfix = this.options.markup.caseProtect.close + postfix; + } + if (node.kind === 'Block') { + for (const markup of Object.keys(node.markup)) { + if (!this.options.markup[markup]) + return this.error(new ParserError(`markup: ${markup}`, node), undefined); + prefix += this.options.markup[markup].open; + postfix = this.options.markup[markup].close + postfix; + } + } + const end = { + withoutPrefix: this.field.text.length, + withPrefix: this.field.text.length + prefix.length, + }; + this.field.text += prefix; + this.field.level++; + this.convert(node.value); + this.field.level--; + const added = this.field.text.substring(end.withPrefix); + const added_text = added.replace(/<\/?[^>]+>/g, ''); + const needsProtection = added_text && ((this.options.caseProtection === 'strict' && added_text.match(preserveCase.isCaseSensitive)) + || + (this.options.caseProtection === 'as-needed' && added_text.split(/\s+/).find(word => this.needsProtection(word)))); + if (!added) { // nothing was added, so remove prefix + this.field.text = this.field.text.substring(0, end.withoutPrefix); + } + else if (this.field.preserveRanges && prefix === this.options.markup.caseProtect.open && !needsProtection) { + // something was added that didn't actually need case protection + this.field.text = this.field.text.substring(0, end.withoutPrefix) + added; + this.field.preserveRanges = this.field.preserveRanges.filter(range => range.start < end.withoutPrefix); + } + else { + this.field.text += postfix; + } + this.field.text = this.field.text.replace(/<(sup|sub)>([^<>]+)<\/\1>$/i, (m, mode, chars) => { + const cmd = mode === 'sup' ? '^' : '_'; + let script = ''; + for (const char of chars) { + const unicode = unicode2latex.latex[`${cmd}${char}`] || unicode2latex.latex[`${cmd}{${char}}`]; + script += unicode ? unicode : `<${mode}>${char}`; + } + script = script.replace(new RegExp(`<${mode}>`, 'g'), ''); + return script.length < m.length ? script : m; + }); + if (node.case && this.field.preserveRanges) + this.preserve(start, this.field.text.length); // , 'in convert-block ' + node.source || '') + } +} +/** + * parse bibtex. This will try to convert TeX commands into unicode equivalents, and apply `@string` expansion + */ +function parse(input, options = {}) { + const parser = new Parser(options); + return parser.parse(input); +} +exports.parse = parse; +function ast(input, options = {}, clean = true) { + const parser = new Parser(options); + return parser.ast(input, clean); +} +exports.ast = ast; +var chunker_2 = chunker; +Object.defineProperty(exports, "chunker", { enumerable: true, get: function () { return chunker_2.parse; } }); + +Object.defineProperty(exports, "jabref", { enumerable: true, get: function () { return jabref.parse; } }); + +}); + +var TEMPLATE_VARIABLES = { + citekey: 'Unique citekey', + abstract: '', + authorString: 'Comma-separated list of author names', + containerTitle: 'Title of the container holding the reference (e.g. book title for a book chapter, or the journal title for a journal article)', + DOI: '', + eprint: '', + eprinttype: '', + eventPlace: 'Location of event', + note: '', + page: 'Page or page range', + publisher: '', + publisherPlace: 'Location of publisher', + title: '', + titleShort: '', + URL: '', + year: 'Publication year', + zoteroSelectURI: 'URI to open the reference in Zotero', +}; +var Library = /** @class */ (function () { + function Library(entries) { + this.entries = entries; + } + Object.defineProperty(Library.prototype, "size", { + get: function () { + return Object.keys(this.entries).length; + }, + enumerable: false, + configurable: true + }); + /** + * For the given citekey, find the corresponding `Entry` and return a + * collection of template variable assignments. + */ + Library.prototype.getTemplateVariablesForCitekey = function (citekey) { + var _a; + var entry = this.entries[citekey]; + var shortcuts = { + citekey: citekey, + abstract: entry.abstract, + authorString: entry.authorString, + containerTitle: entry.containerTitle, + DOI: entry.DOI, + eprint: entry.eprint, + eprinttype: entry.eprinttype, + eventPlace: entry.eventPlace, + note: entry.note, + page: entry.page, + publisher: entry.publisher, + publisherPlace: entry.publisherPlace, + title: entry.title, + titleShort: entry.titleShort, + URL: entry.URL, + year: (_a = entry.year) === null || _a === void 0 ? void 0 : _a.toString(), + zoteroSelectURI: entry.zoteroSelectURI, + }; + return __assign({ entry: entry.toJSON() }, shortcuts); + }; + return Library; +}()); +/** + * An `Entry` represents a single reference in a reference database. + * Each entry has a unique identifier, known in most reference managers as its + * "citekey." + */ +var Entry = /** @class */ (function () { + function Entry() { + } + Object.defineProperty(Entry.prototype, "year", { + get: function () { + var _a; + return this._year + ? parseInt(this._year) + : (_a = this.issuedDate) === null || _a === void 0 ? void 0 : _a.getUTCFullYear(); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Entry.prototype, "note", { + get: function () { + var _a; + return (_a = this._note) === null || _a === void 0 ? void 0 : _a.map(function (el) { return el.replace(/(zotero:\/\/.+)/g, '[Link]($1)'); }).join('\n\n'); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Entry.prototype, "zoteroSelectURI", { + /** + * A URI which will open the relevant entry in the Zotero client. + */ + get: function () { + return "zotero://select/items/@" + this.id; + }, + enumerable: false, + configurable: true + }); + Entry.prototype.toJSON = function () { + var _this = this; + var jsonObj = Object.assign({}, this); + // add getter values + var proto = Object.getPrototypeOf(this); + Object.entries(Object.getOwnPropertyDescriptors(proto)) + .filter(function (_a) { + var descriptor = _a[1]; + return typeof descriptor.get == 'function'; + }) + .forEach(function (_a) { + var key = _a[0], descriptor = _a[1]; + if (descriptor && key[0] !== '_') { + try { + var val = _this[key]; + jsonObj[key] = val; + } + catch (error) { + return; + } + } + }); + return jsonObj; + }; + return Entry; +}()); +var EntryCSLAdapter = /** @class */ (function (_super) { + __extends(EntryCSLAdapter, _super); + function EntryCSLAdapter(data) { + var _this = _super.call(this) || this; + _this.data = data; + _this.eprint = null; + _this.eprinttype = null; + _this.files = null; + return _this; + } + Object.defineProperty(EntryCSLAdapter.prototype, "id", { + get: function () { + return this.data.id; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "type", { + get: function () { + return this.data.type; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "abstract", { + get: function () { + return this.data.abstract; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "author", { + get: function () { + return this.data.author; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "authorString", { + get: function () { + return this.data.author + ? this.data.author.map(function (a) { return a.given + " " + a.family; }).join(', ') + : null; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "containerTitle", { + get: function () { + return this.data['container-title']; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "DOI", { + get: function () { + return this.data.DOI; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "eventPlace", { + get: function () { + return this.data['event-place']; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "issuedDate", { + get: function () { + if (!(this.data.issued && + this.data.issued['date-parts'] && + this.data.issued['date-parts'][0].length > 0)) + return null; + var _a = this.data.issued['date-parts'][0], year = _a[0], month = _a[1], day = _a[2]; + return new Date(Date.UTC(year, (month || 1) - 1, day || 1)); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "page", { + get: function () { + return this.data.page; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "publisher", { + get: function () { + return this.data.publisher; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "publisherPlace", { + get: function () { + return this.data['publisher-place']; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "title", { + get: function () { + return this.data.title; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "titleShort", { + get: function () { + return this.data['title-short']; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "URL", { + get: function () { + return this.data.URL; + }, + enumerable: false, + configurable: true + }); + return EntryCSLAdapter; +}(Entry)); +var BIBLATEX_PROPERTY_MAPPING = { + abstract: 'abstract', + booktitle: '_containerTitle', + date: 'issued', + doi: 'DOI', + eprint: 'eprint', + eprinttype: 'eprinttype', + eventtitle: 'event', + journal: '_containerTitle', + journaltitle: '_containerTitle', + location: 'publisherPlace', + pages: 'page', + shortjournal: 'containerTitleShort', + title: 'title', + shorttitle: 'titleShort', + url: 'URL', + venue: 'eventPlace', + year: '_year', + publisher: 'publisher', + note: '_note', +}; +// BibLaTeX parser returns arrays of property values (allowing for repeated +// property entries). For the following fields, just blindly take the first. +var BIBLATEX_PROPERTY_TAKE_FIRST = [ + 'abstract', + 'booktitle', + '_containerTitle', + 'date', + 'doi', + 'eprint', + 'eprinttype', + 'eventtitle', + 'journaltitle', + 'location', + 'pages', + 'shortjournal', + 'title', + 'shorttitle', + 'url', + 'venue', + '_year', + 'publisher', +]; +var EntryBibLaTeXAdapter = /** @class */ (function (_super) { + __extends(EntryBibLaTeXAdapter, _super); + function EntryBibLaTeXAdapter(data) { + var _this = _super.call(this) || this; + _this.data = data; + Object.entries(BIBLATEX_PROPERTY_MAPPING).forEach(function (map) { + var src = map[0], tgt = map[1]; + if (src in _this.data.fields) { + var val = _this.data.fields[src]; + if (BIBLATEX_PROPERTY_TAKE_FIRST.includes(src)) { + val = val[0]; + } + _this[tgt] = val; + } + }); + return _this; + } + Object.defineProperty(EntryBibLaTeXAdapter.prototype, "id", { + get: function () { + return this.data.key; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryBibLaTeXAdapter.prototype, "type", { + get: function () { + return this.data.type; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryBibLaTeXAdapter.prototype, "files", { + get: function () { + // For some reason the bibtex parser doesn't reliably parse file list to + // array ; so we'll do it manually / redundantly + var ret = []; + if (this.data.fields.file) { + ret = ret.concat(this.data.fields.file.flatMap(function (x) { return x.split(';'); })); + } + if (this.data.fields.files) { + ret = ret.concat(this.data.fields.files.flatMap(function (x) { return x.split(';'); })); + } + return ret; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryBibLaTeXAdapter.prototype, "authorString", { + get: function () { + var _a; + if (this.data.creators.author) { + var names = this.data.creators.author.map(function (name) { + if (name.literal) + return name.literal; + var parts = [name.firstName, name.prefix, name.lastName, name.suffix]; + // Drop any null parts and join + return parts.filter(function (x) { return x; }).join(' '); + }); + return names.join(', '); + } + else { + return (_a = this.data.fields.author) === null || _a === void 0 ? void 0 : _a.join(', '); + } + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryBibLaTeXAdapter.prototype, "containerTitle", { + get: function () { + if (this._containerTitle) { + return this._containerTitle; + } + else if (this.data.fields.eprint) { + var prefix = this.data.fields.eprinttype + ? this.data.fields.eprinttype + ":" + : ''; + var suffix = this.data.fields.primaryclass + ? " [" + this.data.fields.primaryclass + "]" + : ''; + return "" + prefix + this.data.fields.eprint + suffix; + } + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryBibLaTeXAdapter.prototype, "issuedDate", { + get: function () { + return this.issued ? new Date(this.issued) : null; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryBibLaTeXAdapter.prototype, "author", { + get: function () { + var _a; + return (_a = this.data.creators.author) === null || _a === void 0 ? void 0 : _a.map(function (a) { return ({ + given: a.firstName, + family: a.lastName, + }); }); + }, + enumerable: false, + configurable: true + }); + return EntryBibLaTeXAdapter; +}(Entry)); + +var CITATION_DATABASE_FORMAT_LABELS = { + 'csl-json': 'CSL-JSON', + biblatex: 'BibLaTeX', +}; +var CitationsPluginSettings = /** @class */ (function () { + function CitationsPluginSettings() { + this.citationExportFormat = 'csl-json'; + this.literatureNoteTitleTemplate = '@{{citekey}}'; + this.literatureNoteFolder = 'Reading notes'; + this.literatureNoteContentTemplate = '---\n' + + 'title: {{title}}\n' + + 'authors: {{authorString}}\n' + + 'year: {{year}}\n' + + '---\n\n'; + this.markdownCitationTemplate = '[@{{citekey}}]'; + this.alternativeMarkdownCitationTemplate = '@{{citekey}}'; + } + return CitationsPluginSettings; +}()); +var CitationSettingTab = /** @class */ (function (_super) { + __extends(CitationSettingTab, _super); + function CitationSettingTab(app, plugin) { + var _this = _super.call(this, app, plugin) || this; + _this.plugin = plugin; + return _this; + } + CitationSettingTab.prototype.open = function () { + var _this = this; + _super.prototype.open.call(this); + this.checkCitationExportPath(this.plugin.settings.citationExportPath).then(function () { return _this.showCitationExportPathSuccess(); }); + }; + CitationSettingTab.prototype.addValueChangeCallback = function (component, settingsKey, cb) { + var _this = this; + component.onChange(function (value) { return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + this.plugin.settings[settingsKey] = value; + this.plugin.saveSettings().then(function () { + if (cb) { + cb(value); + } + }); + return [2 /*return*/]; + }); + }); }); + }; + CitationSettingTab.prototype.buildValueInput = function (component, settingsKey, cb) { + component.setValue(this.plugin.settings[settingsKey]); + this.addValueChangeCallback(component, settingsKey, cb); + }; + CitationSettingTab.prototype.display = function () { + var _this = this; + var containerEl = this.containerEl; + containerEl.empty(); + containerEl.setAttr('id', 'zoteroSettingTab'); + containerEl.createEl('h2', { text: 'Citation plugin settings' }); + new obsidian.Setting(containerEl) + .setName('Citation database format') + .addDropdown(function (component) { + return _this.buildValueInput(component.addOptions(CITATION_DATABASE_FORMAT_LABELS), 'citationExportFormat', function (value) { + _this.checkCitationExportPath(_this.plugin.settings.citationExportPath).then(function (success) { + if (success) { + _this.citationPathSuccessEl.addClass('d-none'); + _this.citationPathLoadingEl.removeClass('d-none'); + _this.plugin.loadLibrary().then(function () { + _this.citationPathLoadingEl.addClass('d-none'); + _this.showCitationExportPathSuccess(); + }); + } + }); + }); + }); + // NB: we force reload of the library on path change. + new obsidian.Setting(containerEl) + .setName('Citation database path') + .setDesc('Path to citation library exported by your reference manager. ' + + 'Can be an absolute path or a path relative to the current vault root folder. ' + + 'Citations will be automatically reloaded whenever this file updates.') + .addText(function (input) { + return _this.buildValueInput(input.setPlaceholder('/path/to/export.json'), 'citationExportPath', function (value) { + _this.checkCitationExportPath(value).then(function (success) { + return success && + _this.plugin + .loadLibrary() + .then(function () { return _this.showCitationExportPathSuccess(); }); + }); + }); + }); + this.citationPathLoadingEl = containerEl.createEl('p', { + cls: 'zoteroSettingCitationPathLoading d-none', + text: 'Loading citation database...', + }); + this.citationPathErrorEl = containerEl.createEl('p', { + cls: 'zoteroSettingCitationPathError d-none', + text: 'The citation export file cannot be found. Please check the path above.', + }); + this.citationPathSuccessEl = containerEl.createEl('p', { + cls: 'zoteroSettingCitationPathSuccess d-none', + text: 'Loaded library with {{n}} references.', + }); + new obsidian.Setting(containerEl) + .setName('Literature note folder') + .addText(function (input) { return _this.buildValueInput(input, 'literatureNoteFolder'); }) + .setDesc('Save literature note files in this folder within your vault. If empty, notes will be stored in the root directory of the vault.'); + containerEl.createEl('h3', { text: 'Template settings' }); + var templateInstructionsEl = containerEl.createEl('p'); + templateInstructionsEl.append(createSpan({ + text: 'The following settings determine how the notes and links created by ' + + 'the plugin will be rendered. You may specify a custom template for ' + + 'each type of content. Templates are interpreted using ', + })); + templateInstructionsEl.append(createEl('a', { + text: 'Handlebars', + href: 'https://handlebarsjs.com/guide/expressions.html', + })); + templateInstructionsEl.append(createSpan({ + text: ' syntax. You can make reference to the following variables:', + })); + var templateVariableUl = containerEl.createEl('ul', { + attr: { id: 'citationTemplateVariables' }, + }); + Object.entries(TEMPLATE_VARIABLES).forEach(function (variableData) { + var key = variableData[0], description = variableData[1], templateVariableItem = templateVariableUl.createEl('li'); + templateVariableItem.createEl('span', { + cls: 'text-monospace', + text: '{{' + key + '}}', + }); + templateVariableItem.createEl('span', { + text: description ? " \u2014 " + description : '', + }); + }); + var templateEntryInstructionsEl = containerEl.createEl('p'); + templateEntryInstructionsEl.append(createSpan({ text: 'Advanced users may also refer to the ' }), createSpan({ text: '{{entry}}', cls: 'text-monospace' }), createSpan({ + text: ' variable, which contains the full object representation of the ' + + 'reference as used internally by the plugin. See the ', + }), createEl('a', { + text: 'plugin documentation', + href: 'http://www.foldl.me/obsidian-citation-plugin/classes/entry.html', + }), createSpan({ text: " for information on this object's structure." })); + containerEl.createEl('h3', { text: 'Literature note templates' }); + new obsidian.Setting(containerEl) + .setName('Literature note title template') + .addText(function (input) { + return _this.buildValueInput(input, 'literatureNoteTitleTemplate'); + }); + new obsidian.Setting(containerEl) + .setName('Literature note content template') + .addTextArea(function (input) { + return _this.buildValueInput(input, 'literatureNoteContentTemplate'); + }); + containerEl.createEl('h3', { text: 'Markdown citation templates' }); + containerEl.createEl('p', { + text: 'You can insert Pandoc-style Markdown citations rather than literature notes by using the "Insert Markdown citation" command. The below options allow customization of the Markdown citation format.', + }); + new obsidian.Setting(containerEl) + .setName('Markdown primary citation template') + .addText(function (input) { + return _this.buildValueInput(input, 'markdownCitationTemplate'); + }); + new obsidian.Setting(containerEl) + .setName('Markdown secondary citation template') + .addText(function (input) { + return _this.buildValueInput(input, 'alternativeMarkdownCitationTemplate'); + }); + }; + /** + * Returns true iff the path exists; displays error as a side-effect + */ + CitationSettingTab.prototype.checkCitationExportPath = function (filePath) { + return __awaiter(this, void 0, void 0, function () { + var e_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + this.citationPathLoadingEl.addClass('d-none'); + _a.label = 1; + case 1: + _a.trys.push([1, 3, , 4]); + return [4 /*yield*/, obsidian.FileSystemAdapter.readLocalFile(this.plugin.resolveLibraryPath(filePath))]; + case 2: + _a.sent(); + this.citationPathErrorEl.addClass('d-none'); + return [3 /*break*/, 4]; + case 3: + e_1 = _a.sent(); + this.citationPathSuccessEl.addClass('d-none'); + this.citationPathErrorEl.removeClass('d-none'); + return [2 /*return*/, false]; + case 4: return [2 /*return*/, true]; + } + }); + }); + }; + CitationSettingTab.prototype.showCitationExportPathSuccess = function () { + if (!this.plugin.library) + return; + this.citationPathSuccessEl.setText("Loaded library with " + this.plugin.library.size + " references."); + this.citationPathSuccessEl.removeClass('d-none'); + }; + return CitationSettingTab; +}(obsidian.PluginSettingTab)); + +var messageIds = 0; + +function onMessage (self, e) { + var message = e.data; + if (!Array.isArray(message) || message.length < 2) { + // Ignore - this message is not for us. + return + } + var messageId = message[0]; + var error = message[1]; + var result = message[2]; + + var callback = self._callbacks[messageId]; + + if (!callback) { + // Ignore - user might have created multiple PromiseWorkers. + // This message is not for us. + return + } + + delete self._callbacks[messageId]; + callback(error, result); +} + +function PromiseWorker (worker) { + var self = this; + self._worker = worker; + self._callbacks = {}; + + worker.addEventListener('message', function (e) { + onMessage(self, e); + }); +} + +PromiseWorker.prototype.postMessage = function (userMessage) { + var self = this; + var messageId = messageIds++; + + var messageToSend = [messageId, userMessage]; + + return new Promise(function (resolve, reject) { + self._callbacks[messageId] = function (error, result) { + if (error) { + return reject(new Error(error.message)) + } + resolve(result); + }; + + /* istanbul ignore if */ + if (typeof self._worker.controller !== 'undefined') { + // service worker, use MessageChannels because e.source is broken in Chrome < 51: + // https://bugs.chromium.org/p/chromium/issues/detail?id=543198 + var channel = new MessageChannel(); + channel.port1.onmessage = function (e) { + onMessage(self, e); + }; + self._worker.controller.postMessage(messageToSend, [channel.port2]); + } else { + // web worker + self._worker.postMessage(messageToSend); + } + }) +}; + +var promiseWorker = PromiseWorker; + +/** + * Declares properties and methods which are missing from the Obsidian API. + */ +var NoticeExt = /** @class */ (function (_super) { + __extends(NoticeExt, _super); + function NoticeExt() { + return _super !== null && _super.apply(this, arguments) || this; + } + NoticeExt.DISAPPEARING_CLASS = 'mod-disappearing'; + return NoticeExt; +}(obsidian.Notice)); + +var DISALLOWED_FILENAME_CHARACTERS_RE = /[*"\\/<>:|?]/g; +/** + * Manages a category of notices to be displayed in the UI. Prevents multiple + * notices being shown at the same time. + */ +var Notifier = /** @class */ (function () { + function Notifier(defaultMessage) { + this.defaultMessage = defaultMessage; + } + Notifier.prototype.unload = function () { + this.hide(); + }; + /** + * @returns true if the notice was shown, and false otherwise + */ + Notifier.prototype.show = function (message) { + var _this = this; + var _a; + message = message || this.defaultMessage; + if (this.currentNotice) + return false; + this.currentNotice = new obsidian.Notice(message); + // Set up mutation observer to watch for when the notice disappears. + (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect(); + this.mutationObserver = new MutationObserver(function (changes, observer) { + var isDisappearing = changes.some(function (change) { + var el = change.target; + return (change.type == 'attributes' && + el.hasClass(NoticeExt.DISAPPEARING_CLASS)); + }); + if (isDisappearing) { + _this.currentNotice = null; + observer.disconnect(); + _this.mutationObserver = null; + } + }); + this.mutationObserver.observe(this.currentNotice.noticeEl, { + attributeFilter: ['class'], + }); + }; + Notifier.prototype.hide = function () { + var _a, _b; + (_a = this.currentNotice) === null || _a === void 0 ? void 0 : _a.hide(); + (_b = this.mutationObserver) === null || _b === void 0 ? void 0 : _b.disconnect(); + this.currentNotice = null; + this.mutationObserver = null; + }; + Notifier.DISAPPEARING_CLASS = 'mod-disappearing'; + return Notifier; +}()); +/** + * Manages a Worker, recording its state and optionally preventing + * message postings before responses to prior messages have been received. + */ +var WorkerManager = /** @class */ (function () { + function WorkerManager(_worker, options) { + this._worker = _worker; + this.worker = new promiseWorker(this._worker); + /** + * Only relevant when `blockingChannel` option is true. + * Then this property is true iff the worker is currently processing a + * received message, and has not yet posted a response. + */ + this.blocked = false; + this.options = __assign(__assign({}, workerManagerDefaultOptions), options); + } + /** + * Attempt to post a message to the worker and return a promise response. + * + * If `blockingChannel` option is true and the channel is currently blocked, + * the message will be discarded and an error will be thrown. + */ + WorkerManager.prototype.post = function (msg) { + return __awaiter(this, void 0, void 0, function () { + var _this = this; + return __generator(this, function (_a) { + if (this.options.blockingChannel && this.blocked) { + throw new WorkerManagerBlocked(); + } + this.blocked = true; + return [2 /*return*/, this.worker.postMessage(msg).then(function (result) { + _this.blocked = false; + return result; + }, function (error) { + _this.blocked = false; + throw error; + })]; + }); + }); + }; + return WorkerManager; +}()); +var WorkerManagerBlocked = /** @class */ (function (_super) { + __extends(WorkerManagerBlocked, _super); + function WorkerManagerBlocked() { + var _this = _super.call(this, 'WorkerManager: discarded message because channel is blocked') || this; + Object.setPrototypeOf(_this, WorkerManagerBlocked.prototype); + return _this; + } + return WorkerManagerBlocked; +}(Error)); +var workerManagerDefaultOptions = { + blockingChannel: false, +}; + +function funcToSource(fn, sourcemapArg) { + var sourcemap = sourcemapArg === undefined ? null : sourcemapArg; + var source = fn.toString(); + var lines = source.split('\n'); + lines.pop(); + lines.shift(); + var blankPrefixLength = lines[0].search(/\S/); + var regex = /(['"])__worker_loader_strict__(['"])/g; + for (var i = 0, n = lines.length; i < n; ++i) { + lines[i] = lines[i].substring(blankPrefixLength).replace(regex, '$1use strict$2') + '\n'; + } + if (sourcemap) { + lines.push('\/\/# sourceMappingURL=' + sourcemap + '\n'); + } + return lines; +} + +function createURL(fn, sourcemapArg) { + var lines = funcToSource(fn, sourcemapArg); + var blob = new Blob(lines, { type: 'application/javascript' }); + return URL.createObjectURL(blob); +} + +function createInlineWorkerFactory(fn, sourcemapArg) { + var url; + return function WorkerFactory(options) { + url = url || createURL(fn, sourcemapArg); + return new Worker(url, options); + }; +} + +var WorkerFactory = createInlineWorkerFactory(/* rollup-plugin-web-worker-loader */function () { +(function () { + '__worker_loader_strict__'; + + function isPromise (obj) { + // via https://unpkg.com/is-promise@2.1.0/index.js + return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function' + } + + function registerPromiseWorker (callback) { + function postOutgoingMessage (e, messageId, error, result) { + function postMessage (msg) { + /* istanbul ignore if */ + if (typeof self.postMessage !== 'function') { // service worker + e.ports[0].postMessage(msg); + } else { // web worker + self.postMessage(msg); + } + } + if (error) { + /* istanbul ignore else */ + if (typeof console !== 'undefined' && 'error' in console) { + // This is to make errors easier to debug. I think it's important + // enough to just leave here without giving the user an option + // to silence it. + console.error('Worker caught an error:', error); + } + postMessage([messageId, { + message: error.message + }]); + } else { + postMessage([messageId, null, result]); + } + } + + function tryCatchFunc (callback, message) { + try { + return { res: callback(message) } + } catch (e) { + return { err: e } + } + } + + function handleIncomingMessage (e, callback, messageId, message) { + var result = tryCatchFunc(callback, message); + + if (result.err) { + postOutgoingMessage(e, messageId, result.err); + } else if (!isPromise(result.res)) { + postOutgoingMessage(e, messageId, null, result.res); + } else { + result.res.then(function (finalResult) { + postOutgoingMessage(e, messageId, null, finalResult); + }, function (finalError) { + postOutgoingMessage(e, messageId, finalError); + }); + } + } + + function onIncomingMessage (e) { + var payload = e.data; + if (!Array.isArray(payload) || payload.length !== 2) { + // message doens't match communication format; ignore + return + } + var messageId = payload[0]; + var message = payload[1]; + + if (typeof callback !== 'function') { + postOutgoingMessage(e, messageId, new Error( + 'Please pass a function into register().')); + } else { + handleIncomingMessage(e, callback, messageId, message); + } + } + + self.addEventListener('message', onIncomingMessage); + } + + var register = registerPromiseWorker; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + /* global Reflect, Promise */ + + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + + function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + } + + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(path, (base === undefined || base === null) ? module.path : base); + } + }, fn(module, module.exports), module.exports; + } + + function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); + } + + /* + * Generated by PEG.js 0.10.0. + * + * http://pegjs.org/ + */ + + function peg$subclass(child, parent) { + function ctor() { this.constructor = child; } + ctor.prototype = parent.prototype; + child.prototype = new ctor(); + } + + function peg$SyntaxError(message, expected, found, location) { + this.message = message; + this.expected = expected; + this.found = found; + this.location = location; + this.name = "SyntaxError"; + + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, peg$SyntaxError); + } + } + + peg$subclass(peg$SyntaxError, Error); + + peg$SyntaxError.buildMessage = function(expected, found) { + var DESCRIBE_EXPECTATION_FNS = { + literal: function(expectation) { + return "\"" + literalEscape(expectation.text) + "\""; + }, + + "class": function(expectation) { + var escapedParts = "", + i; + + for (i = 0; i < expectation.parts.length; i++) { + escapedParts += expectation.parts[i] instanceof Array + ? classEscape(expectation.parts[i][0]) + "-" + classEscape(expectation.parts[i][1]) + : classEscape(expectation.parts[i]); + } + + return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]"; + }, + + any: function(expectation) { + return "any character"; + }, + + end: function(expectation) { + return "end of input"; + }, + + other: function(expectation) { + return expectation.description; + } + }; + + function hex(ch) { + return ch.charCodeAt(0).toString(16).toUpperCase(); + } + + function literalEscape(s) { + return s + .replace(/\\/g, '\\\\') + .replace(/"/g, '\\"') + .replace(/\0/g, '\\0') + .replace(/\t/g, '\\t') + .replace(/\n/g, '\\n') + .replace(/\r/g, '\\r') + .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) + .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); }); + } + + function classEscape(s) { + return s + .replace(/\\/g, '\\\\') + .replace(/\]/g, '\\]') + .replace(/\^/g, '\\^') + .replace(/-/g, '\\-') + .replace(/\0/g, '\\0') + .replace(/\t/g, '\\t') + .replace(/\n/g, '\\n') + .replace(/\r/g, '\\r') + .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) + .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); }); + } + + function describeExpectation(expectation) { + return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation); + } + + function describeExpected(expected) { + var descriptions = new Array(expected.length), + i, j; + + for (i = 0; i < expected.length; i++) { + descriptions[i] = describeExpectation(expected[i]); + } + + descriptions.sort(); + + if (descriptions.length > 0) { + for (i = 1, j = 1; i < descriptions.length; i++) { + if (descriptions[i - 1] !== descriptions[i]) { + descriptions[j] = descriptions[i]; + j++; + } + } + descriptions.length = j; + } + + switch (descriptions.length) { + case 1: + return descriptions[0]; + + case 2: + return descriptions[0] + " or " + descriptions[1]; + + default: + return descriptions.slice(0, -1).join(", ") + + ", or " + + descriptions[descriptions.length - 1]; + } + } + + function describeFound(found) { + return found ? "\"" + literalEscape(found) + "\"" : "end of input"; + } + + return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found."; + }; + + function peg$parse(input, options) { + options = options !== void 0 ? options : {}; + + var peg$FAILED = {}, + + peg$startRuleFunctions = { Bibliography: peg$parseBibliography }, + peg$startRuleFunction = peg$parseBibliography, + + peg$c0 = function(r) { + return { + kind: 'Bibliography', + loc: location(), + source: text(), + children: r, + } + }, + peg$c1 = "@", + peg$c2 = peg$literalExpectation("@", false), + peg$c3 = "comment", + peg$c4 = peg$literalExpectation("comment", true), + peg$c5 = function(v) { + return { + kind: 'BracedComment', + loc: location(), + source: text(), + value: v.slice(1, -1), + } + }, + peg$c6 = /^[^\n\r]/, + peg$c7 = peg$classExpectation(["\n", "\r"], true, false), + peg$c8 = /^[\n\r]/, + peg$c9 = peg$classExpectation(["\n", "\r"], false, false), + peg$c10 = function(v) { + return { + kind: 'LineComment', + loc: location(), + source: text(), + value: normalizeWhitespace(v), + } + }, + peg$c11 = /^[^@]/, + peg$c12 = peg$classExpectation(["@"], true, false), + peg$c13 = function(v) { + return { + kind: 'NonEntryText', + loc: location(), + source: text(), + value: normalizeWhitespace(v), + } + }, + peg$c14 = function(n) { return n; }, + peg$c15 = "{", + peg$c16 = peg$literalExpectation("{", false), + peg$c17 = /^[^{}]/, + peg$c18 = peg$classExpectation(["{", "}"], true, false), + peg$c19 = "}", + peg$c20 = peg$literalExpectation("}", false), + peg$c21 = function(comment) { return '{' + comment.join('') + '}' }, + peg$c22 = /^[A-Za-z]/, + peg$c23 = peg$classExpectation([["A", "Z"], ["a", "z"]], false, false), + peg$c24 = /^[({]/, + peg$c25 = peg$classExpectation(["(", "{"], false, false), + peg$c26 = /^[})]/, + peg$c27 = peg$classExpectation(["}", ")"], false, false), + peg$c28 = function(type, id, fields) { + return { + kind: 'Entry', + id: id || '', + type: type.toLowerCase(), + loc: location(), + source: text(), + fields: fields, + } + }, + peg$c29 = "preamble", + peg$c30 = peg$literalExpectation("preamble", true), + peg$c31 = function(opener, v, closer) { + switch (opener + closer) { + case '{}': + case '()': + break + default: + throw new Error(`Unbalanced opener-closer for preamble: ${opener}...${closer}`) + } + return { + kind: 'PreambleExpression', + loc: location(), + source: text(), + value: v.reduce((a, b) => a.concat(b), []), + } + }, + peg$c32 = "string", + peg$c33 = peg$literalExpectation("string", true), + peg$c34 = function(k, v) { + return { + kind: 'StringDeclaration', + loc: location(), + source: text(), + name: k, + value: v.reduce((a, b) => a.concat(b), []), + } + }, + peg$c35 = /^[^ \t\r\n,]/, + peg$c36 = peg$classExpectation([" ", "\t", "\r", "\n", ","], true, false), + peg$c37 = ",", + peg$c38 = peg$literalExpectation(",", false), + peg$c39 = function(id) { return id; }, + peg$c40 = function(name) { return isVerbatimField(name) && unnestFields.includes(name) }, + peg$c41 = function(name, value) { + // because this was abused so much, many processors treat double-outer-braces as single + return { + kind: 'Field', + loc: location(), + source: text(), + name: name, + loc: location(), + value: [ protect(value) ] + } + }, + peg$c42 = function(name) { return isVerbatimField(name) }, + peg$c43 = function(name, value) { + return { + kind: 'Field', + loc: location(), + source: text(), + name: name, + loc: location(), + value: [ protect(value) ] + } + }, + peg$c44 = function(name, value) { + // because this was abused so much, many processors treat double-outer-braces as single + if (unnestFields.includes(name) && Array.isArray(value) && value.length === 1 && value[0].kind === 'Block') { + if (options.unnestMode === 'preserve') { + value[0].case = 'preserve'; + } else { + value = value[0].value; + } + } + + return handle_markup_switches({ + kind: 'Field', + loc: location(), + source: text(), + name: name, + value: value, + }) + }, + peg$c45 = /^[_:a-zA-Z0-9\-]/, + peg$c46 = peg$classExpectation(["_", ":", ["a", "z"], ["A", "Z"], ["0", "9"], "-"], false, false), + peg$c47 = function(name) { return name.toLowerCase() }, + peg$c48 = "\"", + peg$c49 = peg$literalExpectation("\"", false), + peg$c50 = function(v) { + v = v || { + kind: 'Text', + loc: location(), + source: text(), + value: '', + }; + v.mode = 'verbatim'; + return basicTextConversions(v) + }, + peg$c51 = function(v) { + return basicTextConversions({ + kind: 'Text', + loc: location(), + source: text(), + value: v.join('').trim(), + mode: 'verbatim', + }) + }, + peg$c52 = function(v) { return v }, + peg$c53 = function(v) { return '{' + v.join('') + '}' }, + peg$c54 = function() { return math.set(false) }, + peg$c55 = function(v) { + return v.reduce((a, b) => a.concat(b), []); + }, + peg$c56 = function(v) { return v; }, + peg$c57 = "{\\verb", + peg$c58 = peg$literalExpectation("{\\verb", false), + peg$c59 = /^[a-zA-Z]/, + peg$c60 = peg$classExpectation([["a", "z"], ["A", "Z"]], false, false), + peg$c61 = /^[^\^_${}\\]/, + peg$c62 = peg$classExpectation(["^", "_", "$", "{", "}", "\\"], true, false), + peg$c63 = function(v) { + return basicTextConversions({ + kind: 'Text', + loc: location(), + source: text(), + value: normalizeWhitespace(v), + mode: math.on ? 'math' : 'text', + }) + }, + peg$c64 = /^[^\^_${}"\\]/, + peg$c65 = peg$classExpectation(["^", "_", "$", "{", "}", "\"", "\\"], true, false), + peg$c66 = /^[0-9]/, + peg$c67 = peg$classExpectation([["0", "9"]], false, false), + peg$c68 = function(v) { + return { + kind: 'Number', + loc: location(), + source: text(), + value: parseInt(v, 10), + } + }, + peg$c69 = function(v) { + return { + kind: 'StringReference', + loc: location(), + source: text(), + name: v, + } + }, + peg$c70 = "\\begin{", + peg$c71 = peg$literalExpectation("\\begin{", false), + peg$c72 = /^[a-zA-Z0-9]/, + peg$c73 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"]], false, false), + peg$c74 = "\\end{", + peg$c75 = peg$literalExpectation("\\end{", false), + peg$c76 = function(env, v, cenv) { return env === cenv }, + peg$c77 = function(env, v, cenv) { + if (markup[env]) { + return { + kind: 'Block', + loc: location(), + source: text(), + value: v, + markup: { [markup[env]]: true }, + } + } else { + return { + kind: 'Environment', + loc: location(), + source: text(), + value: v, + env: env, + } + } + }, + peg$c78 = "{\\", + peg$c79 = peg$literalExpectation("{\\", false), + peg$c80 = "\\", + peg$c81 = peg$literalExpectation("\\", false), + peg$c82 = /^[ij]/, + peg$c83 = peg$classExpectation(["i", "j"], false, false), + peg$c84 = function(mark, char) { + return { + kind: 'DiacriticCommand', + loc: location(), + source: text(), + mark: mark, + dotless: !!char[1], + character: char[1] || char[0], + } + }, + peg$c85 = function(v) { + return basicTextConversions({ + kind: 'Text', + loc: location(), + source: text(), + value: v.join('').trim(), + mode: 'verbatim', + }) + }, + peg$c86 = function(v) { + const block = { + kind: 'Block', + loc: location(), + source: text(), + value: v, + markup: {}, + case: 'protect', + }; + + let leadingcmd = block.value.length && (block.value[0].kind.endsWith('Command') || block.value[0].kind === 'Environment') ? block.value[0] : null; + let leadingcmdblockarg = leadingcmd + && leadingcmd.kind === 'RegularCommand' + && leadingcmd.arguments.required.length + && leadingcmd.arguments.required[0].kind === 'Block' + && leadingcmd.arguments.required[0]; + + // https://github.com/retorquere/zotero-better-bibtex/issues/541#issuecomment-240156274 + if (leadingcmd) { + delete block.case; + + // command with a block cancels out case protection with containing block + // if a smallcaps block has set case to 'preserve' we want to keep this + if (leadingcmdblockarg && leadingcmdblockarg.case === 'protect') delete leadingcmdblockarg.case; + + // \sl, \it etc + if (markup[leadingcmd.command]) { + block.markup[markup[leadingcmd.command]] = true; + block.value.shift(); + } + } + + return handle_markup_switches(block) + }, + peg$c87 = function() { return !math.on }, + peg$c88 = "$", + peg$c89 = peg$literalExpectation("$", false), + peg$c90 = "$$", + peg$c91 = peg$literalExpectation("$$", false), + peg$c92 = function(mode) { return math.set(true) }, + peg$c93 = function(mode, v) { return math.set(false) }, + peg$c94 = function(mode, v) { + return { + kind: mode == '$$' ? 'DisplayMath' : 'InlineMath', + loc: location(), + source: text(), + value: v, + case: 'protect', + markup: {}, + } + }, + peg$c95 = "%", + peg$c96 = peg$literalExpectation("%", false), + peg$c97 = /^[^\r\n]/, + peg$c98 = peg$classExpectation(["\r", "\n"], true, false), + peg$c99 = function(v) { + return { + kind: 'LineComment', + loc: location(), + source: text(), + value: v, + } + }, + peg$c100 = /^[_\^]/, + peg$c101 = peg$classExpectation(["_", "^"], false, false), + peg$c102 = function(mode, v) { + if (v.kind === 'Block') v = v.value; + + return { + kind: mode === '_' ? 'SubscriptCommand' : 'SuperscriptCommand', + loc: location(), + source: text(), + value: v, + } + }, + peg$c103 = function(mark, v) { + return { + kind: 'RegularCommand', + loc: location(), + source: text(), + command: mark, + arguments: { + optional: [], + required: [ protect(v) ], + }, + } + }, + peg$c104 = /^[^A-Za-z0-9\t\r\n]/, + peg$c105 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"], "\t", "\r", "\n"], true, false), + peg$c106 = function(v) { + return { + kind: 'SymbolCommand', + loc: location(), + source: text(), + command: v, + } + }, + peg$c107 = "newcommand", + peg$c108 = peg$literalExpectation("newcommand", false), + peg$c109 = function(cmd, name) { return name.value.length == 1 && name.value[0].kind === 'RegularCommand' }, + peg$c110 = function(cmd, name, optional, def) { + return { + kind: 'RegularCommand', + loc: location(), + source: text(), + command: cmd, + arguments: { + optional: [], + required: [name, def], + }, + } + }, + peg$c111 = "begin", + peg$c112 = peg$literalExpectation("begin", false), + peg$c113 = "end", + peg$c114 = peg$literalExpectation("end", false), + peg$c115 = function(cmd) { return verbatimCommands.includes(cmd) && (has_arguments[cmd] === 2) }, + peg$c116 = function(cmd, optional, req1, req2) { + return { + kind: 'RegularCommand', + loc: location(), + source: text(), + command: cmd, + arguments: { + optional: optional, + required: [protect(req1), protect(req2)], + }, + } + }, + peg$c117 = function(cmd) { return verbatimCommands.includes(cmd) && (has_arguments[cmd] === 1) }, + peg$c118 = function(cmd, optional, req) { + return { + kind: 'RegularCommand', + loc: location(), + source: text(), + command: cmd, + arguments: { + optional: optional, + required: [protect(req)], + }, + } + }, + peg$c119 = function(cmd) { return (has_arguments[cmd] === 2) }, + peg$c120 = function(cmd, optional, req1, req2) { + return { + kind: 'RegularCommand', + loc: location(), + source: text(), + command: cmd, + arguments: { + optional: optional, + required: [req1, req2], + }, + } + }, + peg$c121 = function(cmd) { return (has_arguments[cmd] === 1) }, + peg$c122 = function(cmd, optional, req) { + let m; + if (req.kind === 'Block') { + switch (cmd) { + case 'textsuperscript': + case 'sp': + req.markup.sup = true; + break + case 'textsubscript': + case 'sb': + req.markup.sub = true; + break + case 'textsc': + req.markup.smallCaps = true; + break + case 'enquote': + case 'mkbibquote': + req.markup.enquote = true; + break + case 'textbf': + case 'mkbibbold': + req.markup.bold = true; + break + case 'emph': + case 'textit': + case 'mkbibitalic': + case 'mkbibemph': + req.markup.italics = true; + break + default: + if (m = cmd.match(/^((sub)*)section$/)) { + req.markup[`h${(m[1].length / 3) + 1}`] = true; + } + } + } + + // ignore case stuff on bibcyr + if (cmd === 'bibcyr') delete req.case; + + return { + kind: 'RegularCommand', + loc: location(), + source: text(), + command: cmd, + arguments: { + optional: optional, + required: [req], + } + } + }, + peg$c123 = function(cmd, optional) { + return { + kind: 'RegularCommand', + loc: location(), + source: text(), + command: cmd, + arguments: { + optional: optional, + required: [], + } + } + }, + peg$c124 = "[", + peg$c125 = peg$literalExpectation("[", false), + peg$c126 = /^[^\]]/, + peg$c127 = peg$classExpectation(["]"], true, false), + peg$c128 = "]", + peg$c129 = peg$literalExpectation("]", false), + peg$c130 = function(v) { + return basicTextConversions({ + kind: 'Text', // this isn't really correct but I don't need these right now + loc: location(), + source: text(), + value: v, + mode: math.on ? 'math' : 'text', + }) + }, + peg$c131 = /^[^ \t\^_${}\\]/, + peg$c132 = peg$classExpectation([" ", "\t", "^", "_", "$", "{", "}", "\\"], true, false), + peg$c133 = function(v) { + return basicTextConversions({ + kind: 'Text', + loc: location(), + source: text(), + value: normalizeWhitespace([v]), + mode: math.on ? 'math' : 'text', + }) + }, + peg$c134 = /^[a-zA-Z\-_]/, + peg$c135 = peg$classExpectation([["a", "z"], ["A", "Z"], "-", "_"], false, false), + peg$c136 = /^[a-zA-Z0-9\-&_:]/, + peg$c137 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"], "-", "&", "_", ":"], false, false), + peg$c138 = /^['`"=~\^.]/, + peg$c139 = peg$classExpectation(["'", "`", "\"", "=", "~", "^", "."], false, false), + peg$c140 = /^['`"=~\^.cbuvdrHk]/, + peg$c141 = peg$classExpectation(["'", "`", "\"", "=", "~", "^", ".", "c", "b", "u", "v", "d", "r", "H", "k"], false, false), + peg$c142 = "=", + peg$c143 = peg$literalExpectation("=", false), + peg$c144 = "#", + peg$c145 = peg$literalExpectation("#", false), + peg$c146 = /^[\r\n]/, + peg$c147 = peg$classExpectation(["\r", "\n"], false, false), + peg$c149 = /^[ \t]/, + peg$c150 = peg$classExpectation([" ", "\t"], false, false), + peg$c151 = peg$otherExpectation("Optional Horizontal Whitespace"), + peg$c155 = /^[ \t\n\r]/, + peg$c156 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false), + peg$c157 = peg$otherExpectation("Optional Whitespace"), + + peg$currPos = 0, + peg$savedPos = 0, + peg$posDetailsCache = [{ line: 1, column: 1 }], + peg$maxFailPos = 0, + peg$maxFailExpected = [], + peg$silentFails = 0, + + peg$result; + + if ("startRule" in options) { + if (!(options.startRule in peg$startRuleFunctions)) { + throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); + } + + peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; + } + + function text() { + return input.substring(peg$savedPos, peg$currPos); + } + + function location() { + return peg$computeLocation(peg$savedPos, peg$currPos); + } + + function peg$literalExpectation(text, ignoreCase) { + return { type: "literal", text: text, ignoreCase: ignoreCase }; + } + + function peg$classExpectation(parts, inverted, ignoreCase) { + return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase }; + } + + function peg$endExpectation() { + return { type: "end" }; + } + + function peg$otherExpectation(description) { + return { type: "other", description: description }; + } + + function peg$computePosDetails(pos) { + var details = peg$posDetailsCache[pos], p; + + if (details) { + return details; + } else { + p = pos - 1; + while (!peg$posDetailsCache[p]) { + p--; + } + + details = peg$posDetailsCache[p]; + details = { + line: details.line, + column: details.column + }; + + while (p < pos) { + if (input.charCodeAt(p) === 10) { + details.line++; + details.column = 1; + } else { + details.column++; + } + + p++; + } + + peg$posDetailsCache[pos] = details; + return details; + } + } + + function peg$computeLocation(startPos, endPos) { + var startPosDetails = peg$computePosDetails(startPos), + endPosDetails = peg$computePosDetails(endPos); + + return { + start: { + offset: startPos, + line: startPosDetails.line, + column: startPosDetails.column + }, + end: { + offset: endPos, + line: endPosDetails.line, + column: endPosDetails.column + } + }; + } + + function peg$fail(expected) { + if (peg$currPos < peg$maxFailPos) { return; } + + if (peg$currPos > peg$maxFailPos) { + peg$maxFailPos = peg$currPos; + peg$maxFailExpected = []; + } + + peg$maxFailExpected.push(expected); + } + + function peg$buildStructuredError(expected, found, location) { + return new peg$SyntaxError( + peg$SyntaxError.buildMessage(expected, found), + expected, + found, + location + ); + } + + function peg$parseBibliography() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + s1 = peg$parse__(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseNode(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseNode(); + } + if (s2 !== peg$FAILED) { + s3 = peg$parse__(); + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c0(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseComment() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 64) { + s1 = peg$c1; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c2); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 7).toLowerCase() === peg$c3) { + s3 = input.substr(peg$currPos, 7); + peg$currPos += 7; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c4); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__h(); + if (s4 !== peg$FAILED) { + s5 = peg$parseBracedComment(); + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c5(s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 64) { + s1 = peg$c1; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c2); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 7).toLowerCase() === peg$c3) { + s3 = input.substr(peg$currPos, 7); + peg$currPos += 7; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c4); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__h(); + if (s4 !== peg$FAILED) { + s5 = []; + if (peg$c6.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c7); } + } + while (s6 !== peg$FAILED) { + s5.push(s6); + if (peg$c6.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c7); } + } + } + if (s5 !== peg$FAILED) { + s6 = []; + if (peg$c8.test(input.charAt(peg$currPos))) { + s7 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + while (s7 !== peg$FAILED) { + s6.push(s7); + if (peg$c8.test(input.charAt(peg$currPos))) { + s7 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + } + if (s6 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c10(s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$currPos; + if (peg$c11.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c12); } + } + if (s2 !== peg$FAILED) { + s3 = []; + if (peg$c6.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c7); } + } + while (s4 !== peg$FAILED) { + s3.push(s4); + if (peg$c6.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c7); } + } + } + if (s3 !== peg$FAILED) { + s2 = [s2, s3]; + s1 = s2; + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + s2 = []; + if (peg$c8.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + while (s3 !== peg$FAILED) { + s2.push(s3); + if (peg$c8.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c13(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + + return s0; + } + + function peg$parseNode() { + var s0, s1; + + s0 = peg$currPos; + s1 = peg$parseComment(); + if (s1 === peg$FAILED) { + s1 = peg$parsePreambleExpression(); + if (s1 === peg$FAILED) { + s1 = peg$parseStringDeclaration(); + if (s1 === peg$FAILED) { + s1 = peg$parseEntry(); + } + } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c14(s1); + } + s0 = s1; + + return s0; + } + + function peg$parseBracedComment() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 123) { + s1 = peg$c15; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s1 !== peg$FAILED) { + s2 = []; + if (peg$c17.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c18); } + } + if (s3 === peg$FAILED) { + s3 = peg$parseBracedComment(); + } + while (s3 !== peg$FAILED) { + s2.push(s3); + if (peg$c17.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c18); } + } + if (s3 === peg$FAILED) { + s3 = peg$parseBracedComment(); + } + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s3 = peg$c19; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c21(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseEntry() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 64) { + s1 = peg$c1; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c2); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + s4 = []; + if (peg$c22.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + if (s5 !== peg$FAILED) { + while (s5 !== peg$FAILED) { + s4.push(s5); + if (peg$c22.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + } + } else { + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s3 = input.substring(s3, peg$currPos); + } else { + s3 = s4; + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (peg$c24.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c25); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = peg$parseEntryId(); + if (s7 === peg$FAILED) { + s7 = null; + } + if (s7 !== peg$FAILED) { + s8 = peg$parse__(); + if (s8 !== peg$FAILED) { + s9 = []; + s10 = peg$parseField(); + while (s10 !== peg$FAILED) { + s9.push(s10); + s10 = peg$parseField(); + } + if (s9 !== peg$FAILED) { + s10 = peg$parse__(); + if (s10 !== peg$FAILED) { + if (peg$c26.test(input.charAt(peg$currPos))) { + s11 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s11 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c27); } + } + if (s11 !== peg$FAILED) { + s12 = peg$parse__(); + if (s12 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c28(s3, s7, s9); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parsePreambleExpression() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 64) { + s1 = peg$c1; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c2); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 8).toLowerCase() === peg$c29) { + s3 = input.substr(peg$currPos, 8); + peg$currPos += 8; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c30); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (peg$c24.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c25); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = []; + s8 = peg$parseEnvironment(); + if (s8 === peg$FAILED) { + s8 = peg$parseBlock(); + if (s8 === peg$FAILED) { + s8 = peg$parseMath(); + if (s8 === peg$FAILED) { + s8 = peg$parseCommand(); + if (s8 === peg$FAILED) { + s8 = peg$parseText(); + } + } + } + } + while (s8 !== peg$FAILED) { + s7.push(s8); + s8 = peg$parseEnvironment(); + if (s8 === peg$FAILED) { + s8 = peg$parseBlock(); + if (s8 === peg$FAILED) { + s8 = peg$parseMath(); + if (s8 === peg$FAILED) { + s8 = peg$parseCommand(); + if (s8 === peg$FAILED) { + s8 = peg$parseText(); + } + } + } + } + } + if (s7 !== peg$FAILED) { + s8 = peg$parse__(); + if (s8 !== peg$FAILED) { + if (peg$c26.test(input.charAt(peg$currPos))) { + s9 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c27); } + } + if (s9 !== peg$FAILED) { + s10 = peg$parse__(); + if (s10 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c31(s5, s7, s9); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseStringDeclaration() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 64) { + s1 = peg$c1; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c2); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 6).toLowerCase() === peg$c32) { + s3 = input.substr(peg$currPos, 6); + peg$currPos += 6; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c33); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (peg$c24.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c25); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = peg$parseVariableName(); + if (s7 !== peg$FAILED) { + s8 = peg$parseFieldSeparator(); + if (s8 !== peg$FAILED) { + s9 = []; + s10 = peg$parseRegularValue(); + if (s10 !== peg$FAILED) { + while (s10 !== peg$FAILED) { + s9.push(s10); + s10 = peg$parseRegularValue(); + } + } else { + s9 = peg$FAILED; + } + if (s9 !== peg$FAILED) { + s10 = peg$parse__(); + if (s10 !== peg$FAILED) { + if (peg$c26.test(input.charAt(peg$currPos))) { + s11 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s11 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c27); } + } + if (s11 !== peg$FAILED) { + s12 = peg$parse__(); + if (s12 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c34(s7, s9); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseEntryId() { + var s0, s1, s2, s3, s4; + + s0 = peg$currPos; + s1 = peg$parse__(); + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + s3 = []; + if (peg$c35.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c36); } + } + while (s4 !== peg$FAILED) { + s3.push(s4); + if (peg$c35.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c36); } + } + } + if (s3 !== peg$FAILED) { + s2 = input.substring(s2, peg$currPos); + } else { + s2 = s3; + } + if (s2 !== peg$FAILED) { + s3 = peg$parse__(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s4 = peg$c37; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c38); } + } + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c39(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseField() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8; + + s0 = peg$currPos; + s1 = peg$parseFieldName(); + if (s1 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s2 = peg$c40(s1); + if (s2) { + s2 = void 0; + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$parseFieldSeparator(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 123) { + s4 = peg$c15; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s4 !== peg$FAILED) { + s5 = peg$currPos; + peg$silentFails++; + if (input.charCodeAt(peg$currPos) === 123) { + s6 = peg$c15; + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + peg$silentFails--; + if (s6 !== peg$FAILED) { + peg$currPos = s5; + s5 = void 0; + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s6 = peg$parseVerbatimFieldValue(); + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s7 = peg$c19; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s7 !== peg$FAILED) { + s8 = peg$parseFieldTerminator(); + if (s8 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c41(s1, s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseFieldName(); + if (s1 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s2 = peg$c42(s1); + if (s2) { + s2 = void 0; + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$parseFieldSeparator(); + if (s3 !== peg$FAILED) { + s4 = peg$parseVerbatimFieldValue(); + if (s4 !== peg$FAILED) { + s5 = peg$parseFieldTerminator(); + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c43(s1, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseFieldName(); + if (s1 !== peg$FAILED) { + s2 = peg$parseFieldSeparator(); + if (s2 !== peg$FAILED) { + s3 = peg$parseFieldValue(); + if (s3 !== peg$FAILED) { + s4 = peg$parseFieldTerminator(); + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c44(s1, s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + + return s0; + } + + function peg$parseFieldName() { + var s0, s1, s2, s3, s4; + + s0 = peg$currPos; + s1 = peg$parse__(); + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + s3 = []; + if (peg$c45.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c46); } + } + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + if (peg$c45.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c46); } + } + } + } else { + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s2 = input.substring(s2, peg$currPos); + } else { + s2 = s3; + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c47(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseVerbatimFieldValue() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 34) { + s1 = peg$c48; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c49); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseTextNoQuotes(); + if (s2 === peg$FAILED) { + s2 = null; + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 34) { + s3 = peg$c48; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c49); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c50(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 123) { + s1 = peg$c15; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseVerbatimText(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseVerbatimText(); + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s3 = peg$c19; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c51(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + + return s0; + } + + function peg$parseVerbatimText() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + s1 = peg$currPos; + s2 = []; + if (peg$c17.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c18); } + } + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + if (peg$c17.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c18); } + } + } + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s1 = input.substring(s1, peg$currPos); + } else { + s1 = s2; + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c52(s1); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 123) { + s1 = peg$c15; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseVerbatimText(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseVerbatimText(); + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s3 = peg$c19; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c53(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + + return s0; + } + + function peg$parseFieldValue() { + var s0, s1, s2, s3; + + s0 = peg$parseNumber(); + if (s0 === peg$FAILED) { + s0 = peg$currPos; + peg$savedPos = peg$currPos; + s1 = peg$c54(); + if (s1) { + s1 = void 0; + } else { + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseRegularValue(); + if (s3 === peg$FAILED) { + s3 = peg$parseStringValue(); + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseRegularValue(); + if (s3 === peg$FAILED) { + s3 = peg$parseStringValue(); + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c55(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + + return s0; + } + + function peg$parseRegularValue() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 34) { + s1 = peg$c48; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c49); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseEnvironment(); + if (s3 === peg$FAILED) { + s3 = peg$parseBlock(); + if (s3 === peg$FAILED) { + s3 = peg$parseMath(); + if (s3 === peg$FAILED) { + s3 = peg$parseCommand(); + if (s3 === peg$FAILED) { + s3 = peg$parseTextNoQuotes(); + } + } + } + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseEnvironment(); + if (s3 === peg$FAILED) { + s3 = peg$parseBlock(); + if (s3 === peg$FAILED) { + s3 = peg$parseMath(); + if (s3 === peg$FAILED) { + s3 = peg$parseCommand(); + if (s3 === peg$FAILED) { + s3 = peg$parseTextNoQuotes(); + } + } + } + } + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 34) { + s3 = peg$c48; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c49); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parseConcat(); + if (s4 === peg$FAILED) { + s4 = null; + } + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c56(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 6) === peg$c57) { + s1 = peg$c57; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c58); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + peg$silentFails++; + if (peg$c59.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c60); } + } + peg$silentFails--; + if (s3 === peg$FAILED) { + s2 = void 0; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseVerbatimText(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseVerbatimText(); + } + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s4 = peg$c19; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s4 !== peg$FAILED) { + s5 = peg$parseConcat(); + if (s5 === peg$FAILED) { + s5 = null; + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c51(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 123) { + s1 = peg$c15; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseEnvironment(); + if (s3 === peg$FAILED) { + s3 = peg$parseBlock(); + if (s3 === peg$FAILED) { + s3 = peg$parseMath(); + if (s3 === peg$FAILED) { + s3 = peg$parseCommand(); + if (s3 === peg$FAILED) { + s3 = peg$parseText(); + } + } + } + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseEnvironment(); + if (s3 === peg$FAILED) { + s3 = peg$parseBlock(); + if (s3 === peg$FAILED) { + s3 = peg$parseMath(); + if (s3 === peg$FAILED) { + s3 = peg$parseCommand(); + if (s3 === peg$FAILED) { + s3 = peg$parseText(); + } + } + } + } + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s3 = peg$c19; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parseConcat(); + if (s4 === peg$FAILED) { + s4 = null; + } + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c56(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseStringReference(); + if (s1 !== peg$FAILED) { + s2 = peg$parseConcat(); + if (s2 === peg$FAILED) { + s2 = null; + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c56(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + } + + return s0; + } + + function peg$parseStringValue() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = peg$parseStringReference(); + if (s1 !== peg$FAILED) { + s2 = peg$parseConcat(); + if (s2 === peg$FAILED) { + s2 = null; + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c56(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseText() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = []; + if (peg$c61.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c62); } + } + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + if (peg$c61.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c62); } + } + } + } else { + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c63(s1); + } + s0 = s1; + + return s0; + } + + function peg$parseTextNoQuotes() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = []; + if (peg$c64.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c65); } + } + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + if (peg$c64.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c65); } + } + } + } else { + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c63(s1); + } + s0 = s1; + + return s0; + } + + function peg$parseNumber() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + s1 = peg$currPos; + s2 = []; + if (peg$c66.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c67); } + } + if (s3 !== peg$FAILED) { + while (s3 !== peg$FAILED) { + s2.push(s3); + if (peg$c66.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c67); } + } + } + } else { + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s1 = input.substring(s1, peg$currPos); + } else { + s1 = s2; + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c68(s1); + } + s0 = s1; + + return s0; + } + + function peg$parseStringReference() { + var s0, s1; + + s0 = peg$currPos; + s1 = peg$parseVariableName(); + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c69(s1); + } + s0 = s1; + + return s0; + } + + function peg$parseEnvironment() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 7) === peg$c70) { + s1 = peg$c70; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c71); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + s3 = []; + if (peg$c72.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c73); } + } + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + if (peg$c72.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c73); } + } + } + } else { + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s2 = input.substring(s2, peg$currPos); + } else { + s2 = s3; + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s3 = peg$c19; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parseEnvironment(); + if (s5 === peg$FAILED) { + s5 = peg$parseBlock(); + if (s5 === peg$FAILED) { + s5 = peg$parseCommand(); + if (s5 === peg$FAILED) { + s5 = peg$parseMath(); + if (s5 === peg$FAILED) { + s5 = peg$parseText(); + } + } + } + } + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parseEnvironment(); + if (s5 === peg$FAILED) { + s5 = peg$parseBlock(); + if (s5 === peg$FAILED) { + s5 = peg$parseCommand(); + if (s5 === peg$FAILED) { + s5 = peg$parseMath(); + if (s5 === peg$FAILED) { + s5 = peg$parseText(); + } + } + } + } + } + if (s4 !== peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c74) { + s5 = peg$c74; + peg$currPos += 5; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c75); } + } + if (s5 !== peg$FAILED) { + s6 = peg$currPos; + s7 = []; + if (peg$c72.test(input.charAt(peg$currPos))) { + s8 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s8 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c73); } + } + if (s8 !== peg$FAILED) { + while (s8 !== peg$FAILED) { + s7.push(s8); + if (peg$c72.test(input.charAt(peg$currPos))) { + s8 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s8 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c73); } + } + } + } else { + s7 = peg$FAILED; + } + if (s7 !== peg$FAILED) { + s6 = input.substring(s6, peg$currPos); + } else { + s6 = s7; + } + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s7 = peg$c19; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s7 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s8 = peg$c76(s2, s4, s6); + if (s8) { + s8 = void 0; + } else { + s8 = peg$FAILED; + } + if (s8 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c77(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseBlock() { + var s0, s1, s2, s3, s4, s5, s6; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c78) { + s1 = peg$c78; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c79); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseExtendedDiacritic(); + if (s2 !== peg$FAILED) { + s3 = peg$parse__(); + if (s3 !== peg$FAILED) { + if (peg$c72.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c73); } + } + if (s4 === peg$FAILED) { + s4 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s5 = peg$c80; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s5 !== peg$FAILED) { + if (peg$c82.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c83); } + } + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s5 = peg$c19; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c84(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 6) === peg$c57) { + s1 = peg$c57; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c58); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + peg$silentFails++; + if (peg$c59.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c60); } + } + peg$silentFails--; + if (s3 === peg$FAILED) { + s2 = void 0; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = []; + s4 = peg$parseVerbatimText(); + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseVerbatimText(); + } + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s4 = peg$c19; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c85(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 123) { + s1 = peg$c15; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseEnvironment(); + if (s3 === peg$FAILED) { + s3 = peg$parseBlock(); + if (s3 === peg$FAILED) { + s3 = peg$parseCommand(); + if (s3 === peg$FAILED) { + s3 = peg$parseMath(); + if (s3 === peg$FAILED) { + s3 = peg$parseText(); + } + } + } + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseEnvironment(); + if (s3 === peg$FAILED) { + s3 = peg$parseBlock(); + if (s3 === peg$FAILED) { + s3 = peg$parseCommand(); + if (s3 === peg$FAILED) { + s3 = peg$parseMath(); + if (s3 === peg$FAILED) { + s3 = peg$parseText(); + } + } + } + } + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s3 = peg$c19; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c86(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + + return s0; + } + + function peg$parseMath() { + var s0, s1, s2, s3, s4, s5, s6; + + s0 = peg$currPos; + peg$savedPos = peg$currPos; + s1 = peg$c87(); + if (s1) { + s1 = void 0; + } else { + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 36) { + s2 = peg$c88; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c89); } + } + if (s2 === peg$FAILED) { + if (input.substr(peg$currPos, 2) === peg$c90) { + s2 = peg$c90; + peg$currPos += 2; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c91); } + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s3 = peg$c92(); + if (s3) { + s3 = void 0; + } else { + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parseBlock(); + if (s5 === peg$FAILED) { + s5 = peg$parseCommand(); + if (s5 === peg$FAILED) { + s5 = peg$parseText(); + } + } + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parseBlock(); + if (s5 === peg$FAILED) { + s5 = peg$parseCommand(); + if (s5 === peg$FAILED) { + s5 = peg$parseText(); + } + } + } + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 36) { + s5 = peg$c88; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c89); } + } + if (s5 === peg$FAILED) { + if (input.substr(peg$currPos, 2) === peg$c90) { + s5 = peg$c90; + peg$currPos += 2; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c91); } + } + } + if (s5 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s6 = peg$c93(); + if (s6) { + s6 = void 0; + } else { + s6 = peg$FAILED; + } + if (s6 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c94(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseLineComment() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 37) { + s1 = peg$c95; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c96); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__h(); + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + s4 = []; + if (peg$c97.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c98); } + } + if (s5 !== peg$FAILED) { + while (s5 !== peg$FAILED) { + s4.push(s5); + if (peg$c97.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c98); } + } + } + } else { + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s3 = input.substring(s3, peg$currPos); + } else { + s3 = s4; + } + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parseEOL(); + if (s5 !== peg$FAILED) { + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parseEOL(); + } + } else { + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c99(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseCommand() { + var s0; + + s0 = peg$parseScriptCommand(); + if (s0 === peg$FAILED) { + s0 = peg$parseDiacriticCommand(); + if (s0 === peg$FAILED) { + s0 = peg$parseRegularCommand(); + if (s0 === peg$FAILED) { + s0 = peg$parseSymbolCommand(); + } + } + } + + return s0; + } + + function peg$parseScriptCommand() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + if (peg$c100.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c101); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__h(); + if (s2 !== peg$FAILED) { + s3 = peg$parseRequiredArgument(); + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c102(s1, s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseDiacriticCommand() { + var s0, s1, s2, s3, s4, s5, s6; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseSimpleDiacritic(); + if (s2 !== peg$FAILED) { + s3 = peg$parse__(); + if (s3 !== peg$FAILED) { + if (peg$c72.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c73); } + } + if (s4 === peg$FAILED) { + s4 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s5 = peg$c80; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s5 !== peg$FAILED) { + if (peg$c82.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c83); } + } + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c84(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseExtendedDiacritic(); + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 123) { + s3 = peg$c15; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s3 !== peg$FAILED) { + if (peg$c72.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c73); } + } + if (s4 === peg$FAILED) { + s4 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s5 = peg$c80; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s5 !== peg$FAILED) { + if (peg$c82.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c83); } + } + if (s6 !== peg$FAILED) { + s5 = [s5, s6]; + s4 = s5; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + } + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s5 = peg$c19; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c84(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseExtendedDiacritic(); + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + peg$silentFails++; + if (input.charCodeAt(peg$currPos) === 123) { + s4 = peg$c15; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + peg$silentFails--; + if (s4 !== peg$FAILED) { + peg$currPos = s3; + s3 = void 0; + } else { + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$parseRegularValue(); + if (s4 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c103(s2, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + + return s0; + } + + function peg$parseSymbolCommand() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + if (peg$c104.test(input.charAt(peg$currPos))) { + s3 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c105); } + } + if (s3 !== peg$FAILED) { + s2 = input.substring(s2, peg$currPos); + } else { + s2 = s3; + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c106(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseRegularCommand() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c107) { + s2 = peg$c107; + peg$currPos += 10; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c108); } + } + if (s2 !== peg$FAILED) { + s3 = peg$parseBlock(); + if (s3 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s4 = peg$c109(s2, s3); + if (s4) { + s4 = void 0; + } else { + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = []; + s6 = peg$parseOptionalArgument(); + while (s6 !== peg$FAILED) { + s5.push(s6); + s6 = peg$parseOptionalArgument(); + } + if (s5 !== peg$FAILED) { + s6 = peg$parseRequiredArgument(); + if (s6 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c110(s2, s3, s5, s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 5) === peg$c111) { + s3 = peg$c111; + peg$currPos += 5; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c112); } + } + peg$silentFails--; + if (s3 === peg$FAILED) { + s2 = void 0; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 3) === peg$c113) { + s4 = peg$c113; + peg$currPos += 3; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c114); } + } + peg$silentFails--; + if (s4 === peg$FAILED) { + s3 = void 0; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$currPos; + s5 = []; + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + if (s6 !== peg$FAILED) { + while (s6 !== peg$FAILED) { + s5.push(s6); + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + } + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s4 = input.substring(s4, peg$currPos); + } else { + s4 = s5; + } + if (s4 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s5 = peg$c115(s4); + if (s5) { + s5 = void 0; + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parseOptionalArgument(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parseOptionalArgument(); + } + if (s6 !== peg$FAILED) { + s7 = peg$parse__h(); + if (s7 !== peg$FAILED) { + s8 = peg$currPos; + peg$silentFails++; + if (input.charCodeAt(peg$currPos) === 123) { + s9 = peg$c15; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + peg$silentFails--; + if (s9 !== peg$FAILED) { + peg$currPos = s8; + s8 = void 0; + } else { + s8 = peg$FAILED; + } + if (s8 !== peg$FAILED) { + s9 = peg$parseVerbatimFieldValue(); + if (s9 !== peg$FAILED) { + s10 = peg$parseVerbatimFieldValue(); + if (s10 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c116(s4, s6, s9, s10); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 5) === peg$c111) { + s3 = peg$c111; + peg$currPos += 5; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c112); } + } + peg$silentFails--; + if (s3 === peg$FAILED) { + s2 = void 0; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 3) === peg$c113) { + s4 = peg$c113; + peg$currPos += 3; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c114); } + } + peg$silentFails--; + if (s4 === peg$FAILED) { + s3 = void 0; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$currPos; + s5 = []; + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + if (s6 !== peg$FAILED) { + while (s6 !== peg$FAILED) { + s5.push(s6); + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + } + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s4 = input.substring(s4, peg$currPos); + } else { + s4 = s5; + } + if (s4 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s5 = peg$c117(s4); + if (s5) { + s5 = void 0; + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parseOptionalArgument(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parseOptionalArgument(); + } + if (s6 !== peg$FAILED) { + s7 = peg$parse__h(); + if (s7 !== peg$FAILED) { + s8 = peg$currPos; + peg$silentFails++; + if (input.charCodeAt(peg$currPos) === 123) { + s9 = peg$c15; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + peg$silentFails--; + if (s9 !== peg$FAILED) { + peg$currPos = s8; + s8 = void 0; + } else { + s8 = peg$FAILED; + } + if (s8 !== peg$FAILED) { + s9 = peg$parseVerbatimFieldValue(); + if (s9 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c118(s4, s6, s9); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 5) === peg$c111) { + s3 = peg$c111; + peg$currPos += 5; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c112); } + } + peg$silentFails--; + if (s3 === peg$FAILED) { + s2 = void 0; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 3) === peg$c113) { + s4 = peg$c113; + peg$currPos += 3; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c114); } + } + peg$silentFails--; + if (s4 === peg$FAILED) { + s3 = void 0; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$currPos; + s5 = []; + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + if (s6 !== peg$FAILED) { + while (s6 !== peg$FAILED) { + s5.push(s6); + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + } + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s4 = input.substring(s4, peg$currPos); + } else { + s4 = s5; + } + if (s4 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s5 = peg$c119(s4); + if (s5) { + s5 = void 0; + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parseOptionalArgument(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parseOptionalArgument(); + } + if (s6 !== peg$FAILED) { + s7 = peg$parse__h(); + if (s7 !== peg$FAILED) { + s8 = peg$parseRequiredArgument(); + if (s8 !== peg$FAILED) { + s9 = peg$parseRequiredArgument(); + if (s9 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c120(s4, s6, s8, s9); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 5) === peg$c111) { + s3 = peg$c111; + peg$currPos += 5; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c112); } + } + peg$silentFails--; + if (s3 === peg$FAILED) { + s2 = void 0; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 3) === peg$c113) { + s4 = peg$c113; + peg$currPos += 3; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c114); } + } + peg$silentFails--; + if (s4 === peg$FAILED) { + s3 = void 0; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$currPos; + s5 = []; + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + if (s6 !== peg$FAILED) { + while (s6 !== peg$FAILED) { + s5.push(s6); + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + } + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s4 = input.substring(s4, peg$currPos); + } else { + s4 = s5; + } + if (s4 !== peg$FAILED) { + peg$savedPos = peg$currPos; + s5 = peg$c121(s4); + if (s5) { + s5 = void 0; + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s6 = []; + s7 = peg$parseOptionalArgument(); + while (s7 !== peg$FAILED) { + s6.push(s7); + s7 = peg$parseOptionalArgument(); + } + if (s6 !== peg$FAILED) { + s7 = peg$parse__h(); + if (s7 !== peg$FAILED) { + s8 = peg$parseRequiredArgument(); + if (s8 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c122(s4, s6, s8); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c80; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c81); } + } + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 5) === peg$c111) { + s3 = peg$c111; + peg$currPos += 5; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c112); } + } + peg$silentFails--; + if (s3 === peg$FAILED) { + s2 = void 0; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 3) === peg$c113) { + s4 = peg$c113; + peg$currPos += 3; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c114); } + } + peg$silentFails--; + if (s4 === peg$FAILED) { + s3 = void 0; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$currPos; + s5 = []; + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + if (s6 !== peg$FAILED) { + while (s6 !== peg$FAILED) { + s5.push(s6); + if (peg$c22.test(input.charAt(peg$currPos))) { + s6 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s6 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c23); } + } + } + } else { + s5 = peg$FAILED; + } + if (s5 !== peg$FAILED) { + s4 = input.substring(s4, peg$currPos); + } else { + s4 = s5; + } + if (s4 !== peg$FAILED) { + s5 = []; + s6 = peg$parseOptionalArgument(); + while (s6 !== peg$FAILED) { + s5.push(s6); + s6 = peg$parseOptionalArgument(); + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c123(s4, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + } + } + } + + return s0; + } + + function peg$parseOptionalArgument() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c124; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c125); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__h(); + if (s2 !== peg$FAILED) { + s3 = peg$currPos; + s4 = []; + if (peg$c126.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c127); } + } + if (s5 !== peg$FAILED) { + while (s5 !== peg$FAILED) { + s4.push(s5); + if (peg$c126.test(input.charAt(peg$currPos))) { + s5 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c127); } + } + } + } else { + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s3 = input.substring(s3, peg$currPos); + } else { + s3 = s4; + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__h(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s5 = peg$c128; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c129); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c130(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseRequiredArgument() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = peg$parse__h(); + if (s1 !== peg$FAILED) { + if (peg$c131.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c132); } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c133(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseBlock(); + if (s1 === peg$FAILED) { + s1 = peg$parseCommand(); + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c52(s1); + } + s0 = s1; + } + + return s0; + } + + function peg$parseVariableName() { + var s0, s1, s2, s3, s4; + + s0 = peg$currPos; + s1 = peg$currPos; + if (peg$c134.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c135); } + } + if (s2 !== peg$FAILED) { + s3 = []; + if (peg$c136.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c137); } + } + while (s4 !== peg$FAILED) { + s3.push(s4); + if (peg$c136.test(input.charAt(peg$currPos))) { + s4 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c137); } + } + } + if (s3 !== peg$FAILED) { + s2 = [s2, s3]; + s1 = s2; + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + s0 = input.substring(s0, peg$currPos); + } else { + s0 = s1; + } + + return s0; + } + + function peg$parseSimpleDiacritic() { + var s0; + + if (peg$c138.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c139); } + } + + return s0; + } + + function peg$parseExtendedDiacritic() { + var s0; + + if (peg$c140.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c141); } + } + + return s0; + } + + function peg$parseFieldSeparator() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + s1 = peg$parse__(); + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s2 = peg$c142; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c143); } + } + if (s2 !== peg$FAILED) { + s3 = peg$parse__(); + if (s3 !== peg$FAILED) { + s1 = [s1, s2, s3]; + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseFieldTerminator() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + s1 = peg$parse__(); + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s2 = peg$c37; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c38); } + } + if (s2 === peg$FAILED) { + s2 = null; + } + if (s2 !== peg$FAILED) { + s3 = peg$parse__h(); + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parseLineComment(); + if (s5 === peg$FAILED) { + s5 = peg$parseEOL(); + } + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parseLineComment(); + if (s5 === peg$FAILED) { + s5 = peg$parseEOL(); + } + } + if (s4 !== peg$FAILED) { + s1 = [s1, s2, s3, s4]; + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseConcat() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + s1 = peg$parse__(); + if (s1 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 35) { + s2 = peg$c144; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c145); } + } + if (s2 !== peg$FAILED) { + s3 = peg$parse__(); + if (s3 !== peg$FAILED) { + s1 = [s1, s2, s3]; + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseEOL() { + var s0; + + if (peg$c146.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c147); } + } + + return s0; + } + + function peg$parse__h() { + var s0, s1; + + peg$silentFails++; + s0 = []; + if (peg$c149.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c150); } + } + while (s1 !== peg$FAILED) { + s0.push(s1); + if (peg$c149.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c150); } + } + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c151); } + } + + return s0; + } + + function peg$parse__() { + var s0, s1; + + peg$silentFails++; + s0 = []; + if (peg$c155.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c156); } + } + while (s1 !== peg$FAILED) { + s0.push(s1); + if (peg$c155.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c156); } + } + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c157); } + } + + return s0; + } + + + /* + MIT License + + Copyright (c) 2017 Derek P Sifford, parts copyright (c) 2019 by Emiliano Heyns + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + */ + + const markup = { + sl: 'italics', + em: 'italics', + it: 'italics', + itshape: 'italics', + + bf: 'bold', + bfseries: 'bold', + + sc: 'smallCaps', + scshape: 'smallCaps', + + tt: 'fixedWidth', + rm: 'roman', + sf: 'sansSerif', + verb: 'verbatim', + }; + + const unnestFields = (options.unnestFields || []).map(field => field.toLowerCase()); + const verbatimFields = (options.verbatimFields || [ 'urlraw', 'url', 'doi', 'file', 'files', 'eprint', 'verba', 'verbb', 'verbc' ]).map(field => typeof field === 'string' ? field.toLowerCase() : field); + const verbatimCommands = (options.verbatimCommands || ['texttt', 'url', 'href']); + + function isVerbatimField(name) { + return verbatimFields.find(p => (typeof p === 'string') ? name === p : name.match(p)) + } + + function normalizeWhitespace(textArr) { + return textArr.reduce((prev, curr) => { + if (/\s/.test(curr)) { + if (/\s/.test(prev[prev.length - 1])) { + return prev; + } else { + return prev + ' '; + } + } + return prev + curr; + }, ''); + } + + const has_arguments = { + ElsevierGlyph: 1, + end: 1, + begin: 1, + bibcyr: 1, + bibstring: 1, + chsf: 1, + cite: 1, + cyrchar: 1, + ding: 1, + emph: 1, + enquote: 1, + frac: 2, + href: 2, + hspace: 1, + mathrm: 1, + mbox: 1, + mkbibbold: 1, + mkbibemph: 1, + mkbibitalic: 1, + mkbibquote: 1, + newcommand: 2, + noopsort: 1, + ocirc: 1, + section: 1, + sb: 1, + sp: 1, + subsection: 1, + subsubsection: 1, + subsubsubsection: 1, + t: 1, + textbf: 1, + textit: 1, + textrm: 1, + textsc: 1, + textsubscript: 1, + textsuperscript: 1, + texttt: 1, + url: 1, + vphantom: 1, + vspace: 1, + }; + + if (options.combiningDiacritics) { + for (const cmd of options.combiningDiacritics) { + has_arguments[cmd] = 1; + } + } + + const math = { + on: false, + + set: function(state) { + this.on = state; + return true + } + }; + + function basicTextConversions(node) { + if (node.kind !== 'Text') throw new Error(node.kind + ' is not a Text node') + + switch (node.mode) { + case 'verbatim': + break + + case 'math': + node.value = node.value.replace(/~/g, '\u00A0'); + break + + case 'text': + node.value = node.value + .replace(/---/g, '\u2014') + .replace(/--/g, '\u2013') + .replace(//g, '\u00BF') + .replace(/~/g, '\u00A0') + .replace(/``/g, options.markup.enquote.open) + .replace(/''/g, options.markup.enquote.close); + break + + default: + throw new Error(`Unexpected text mode ${node.mode}`) + } + + return node + } + + function protect(v) { + let source; + if (Array.isArray(v)) { + source = v.map(e => e.source).join(''); + } else { + v = [ v ]; + source = v.source; + } + + return { + kind: 'Block', + value: v, + markup: {}, + case: 'protect', + source: source, + } + } + + function handle_markup_switches(block) { + const value = block.value; + if (!Array.isArray(value)) return block + + block.value = []; + + const pseudo = { + block: null, + markup: {}, + }; + function pseudo_block() { + pseudo.block = { + kind: 'Block', + loc: location(), + source: '', + value: [], + markup: JSON.parse(JSON.stringify(pseudo.markup)), + pseudo: true, + }; + block.value.push(pseudo.block); + } + for (const node of value) { + if (node.kind === 'Environment' || node.kind === 'Block') { + block.value.push(node); + + if (Object.keys(pseudo.markup).length) { + pseudo_block(); + } else { + pseudo.block = null; + } + continue + } + + if (node.kind === 'RegularCommand' && markup[node.command]) { + if (pseudo.markup.italics) { // https://github.com/citation-js/bibtex-parser-experiments/commit/cae475f075a05d1c074485a061b08ed245170c7e + delete pseudo.markup.italics; + if (markup[node.command] !== 'italics') pseudo.markup[markup[node.command]] = true; + } else { + pseudo.markup[markup[node.command]] = true; + } + + if (Object.keys(pseudo.markup).length) { + pseudo_block(); + } else { + pseudo.block = null; + } + } + + if (pseudo.block) { + pseudo.block.source += node.source; + pseudo.block.value.push(node); + + } else { + block.value.push(node); + + } + } + + block.value = block.value.filter(node => !(node.pseudo && node.value.length === 0)); + + return block + } + + + peg$result = peg$startRuleFunction(); + + if (peg$result !== peg$FAILED && peg$currPos === input.length) { + return peg$result; + } else { + if (peg$result !== peg$FAILED && peg$currPos < input.length) { + peg$fail(peg$endExpectation()); + } + + throw peg$buildStructuredError( + peg$maxFailExpected, + peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, + peg$maxFailPos < input.length + ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) + : peg$computeLocation(peg$maxFailPos, peg$maxFailPos) + ); + } + } + + var grammar = { + SyntaxError: peg$SyntaxError, + parse: peg$parse + }; + + var chunker = createCommonjsModule(function (module, exports) { + // Original work by Henrik Muehe (c) 2010 + // + // CommonJS port by Mikola Lysenko 2013 + // + Object.defineProperty(exports, "__esModule", { value: true }); + exports.parse = void 0; + class ParseError extends Error { + constructor(message, parser) { + message += ` @ ${parser.pos}`; + if (parser.parsing) + message += ` in ${JSON.stringify(parser.parsing)}`; + super(message); + this.name = 'ParseError'; + } + } + // tslint:disable-next-line prefer-template + const letter = new RegExp('[' + [ + // Letter, Uppercase + /\u0041-\u005A\u00C0-\u00D6\u00D8-\u00DE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AD\uA7B0-\uA7B4\uA7B6\uFF21-\uFF3A/.source, + // Letter, Titlecase + /\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC/.source, + // Letter, Lowercase + /\u0061-\u007A\u00B5\u00DF-\u00F6\u00F8-\u00FF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A/.source, + // Letter, Modifier + /\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F/.source, + // Letter, Other + /\u00AA\u00BA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05F0-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10D0-\u10FA\u10FD-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source, + ].join('') + ']'); + class BibtexParser { + parse(input, options = {}) { + // this._progress = 0 + this.pos = 0; + this.input = input; + this.max_entries = options.max_entries || 0; + this.entries = 0; + this.parsing = null; + this.chunks = []; + if (options.async) { + return this.bibtexAsync().then(() => this.chunks); + } + else { + this.bibtex(); + return this.chunks; + } + } + isWhitespace(s, horizontalOnly = false) { + return (s === ' ' || s === '\t' || (!horizontalOnly && (s === '\r' || s === '\n'))); + } + match(s) { + this.skipWhitespace(); + if (this.input.substr(this.pos, s.length) !== s) { + throw new ParseError(`Token mismatch, expected ${JSON.stringify(s)}, found ${JSON.stringify(this.input.substr(this.pos, 20))}...`, this); // tslint:disable-line no-magic-numbers + } + this.pos += s.length; + this.skipWhitespace(); + } + tryMatch(s) { + this.skipWhitespace(); + return (this.input.substr(this.pos, s.length) === s); + // this.skipWhitespace() + } + skipWhitespace() { + while (this.pos < this.input.length && this.isWhitespace(this.input[this.pos])) + this.pos++; + // shady + if (this.input[this.pos] === '%') { + while (this.pos < this.input.length && this.input[this.pos] !== '\n') + this.pos++; + while (this.pos < this.input.length && this.isWhitespace(this.input[this.pos])) + this.pos++; + } + } + value_braces() { + let bracecount = 0; + this.match('{'); + const start = this.pos; + let math = false; + while (true) { + switch (this.input[this.pos]) { + case '\\': + this.pos += 1; + break; + case '{': + bracecount++; + break; + case '}': + if (bracecount === 0) { + if (math) + throw new ParseError('Unclosed math section', this); + this.pos++; + return this.input.substring(start, this.pos - 1); + } + bracecount--; + break; + case '$': + math = !math; + break; + } + this.pos++; + if (this.pos >= this.input.length) { + throw new ParseError(`Unterminated brace-value ${JSON.stringify(this.input.substr(start, 20))}`, this); // tslint:disable-line no-magic-numbers + } + } + } + value_quotes() { + this.match('"'); + const start = this.pos; + let bracecount = 0; + while (true) { + switch (this.input[this.pos]) { + case '\\': + this.pos += 1; + break; + case '{': + bracecount++; + break; + case '}': + bracecount--; + break; + case '"': + if (bracecount <= 0) { + this.pos++; + return this.input.substring(start, this.pos - 1); + } + } + this.pos++; + if (this.pos >= this.input.length) { + throw new ParseError(`Unterminated quote-value ${JSON.stringify(this.input.substr(start, 20))}`, this); // tslint:disable-line no-magic-numbers + } + } + } + single_value() { + if (this.tryMatch('{')) { + return this.value_braces(); + } + else if (this.tryMatch('"')) { + return this.value_quotes(); + } + else { + return this.key(); + } + } + value() { + const values = []; + values.push(this.single_value()); + while (this.tryMatch('#')) { + this.match('#'); + values.push(this.single_value()); + } + return values.join(''); + } + key(allowUnicode = false) { + const start = this.pos; + while (true) { + if (this.pos === this.input.length) { + throw new ParseError('Runaway key', this); + } + if (this.input[this.pos].match(/['a-zA-Z0-9&;_:\\./-]/)) { + this.pos++; + } + else if (allowUnicode && this.input[this.pos].match(letter)) { + this.pos++; + } + else { + return this.input.substring(start, this.pos); + } + } + } + key_equals_value() { + const key = this.key(); + if (!this.tryMatch('=')) { + throw new ParseError(`... = value expected, equals sign missing: ${JSON.stringify(this.input.substr(this.pos, 20))}...`, this); // tslint:disable-line no-magic-numbers + } + this.match('='); + const val = this.value(); + return [key, val]; + } + key_value_list() { + this.key_equals_value(); + while (this.tryMatch(',')) { + this.match(','); + // fixes problems with commas at the end of a list + if (this.tryMatch('}')) { + break; + } + this.key_equals_value(); + } + } + entry(d) { + this.parsing = this.key(true); + this.match(','); + this.key_value_list(); + } + directive() { + this.match('@'); + return `@${this.key()}`.toLowerCase(); + } + string() { + this.key_equals_value(); + } + preamble() { + this.value(); + } + comment() { + while (this.isWhitespace(this.input[this.pos], true)) + this.pos++; + if (this.input[this.pos] === '{') { + this.value_braces(); + return; + } + while (this.input[this.pos] !== '\n' && this.pos < this.input.length) + this.pos++; + } + /* + private progress() { + const progress = Math.round((this.pos / this.input.length * 100) / 5) * 5 // tslint:disable-line no-magic-numbers + if (this._progress !== progress) { + this._progress = progress + process.stdout.write(` (${this._progress}%) `) + } + } + */ + hasMore() { + if (this.max_entries && this.entries >= this.max_entries) + return false; + return (this.pos < this.input.length); + } + bibtex() { + while (this.hasMore()) { + this.parseNext(); + } + } + bibtexAsync() { + return this.hasMore() ? (new Promise(resolve => resolve(this.parseNext()))).then(() => this.bibtexAsync()) : Promise.resolve(null); + } + parseNext() { + // this.progress() + const chunk = { + offset: { + pos: this.pos, + line: this.input.substring(0, this.pos).split('\n').length - 1, + }, + error: null, + text: null, + }; + this.skipWhitespace(); + if (this.pos >= this.input.length) + return; + let guard = ''; + try { + const d = this.directive(); + switch (d) { + case '@string': + this.match('{'); + this.string(); + this.match('}'); + chunk.stringDeclaration = true; + break; + case '@preamble': + this.match('{'); + this.preamble(); + this.match('}'); + chunk.preamble = true; + break; + case '@comment': + this.comment(); + chunk.comment = true; + break; + default: + if (this.tryMatch('{')) { + guard = '{}'; + } + else if (this.tryMatch('(')) { + guard = '()'; + } + else { + throw new ParseError(`Token mismatch, expected '{' or '(', found ${JSON.stringify(this.input.substr(this.pos, 20))}...`, this); // tslint:disable-line no-magic-numbers + } + this.match(guard[0]); + this.entry(d); + this.match(guard[1]); + chunk.entry = true; + this.entries++; + break; + } + } + catch (err) { + if (err.name !== 'ParseError') + throw err; + chunk.error = err.message, + // skip ahead to the next @ and try again + this.pos = chunk.offset.pos + 1; + while (this.pos < this.input.length && this.input[this.pos] !== '@') + this.pos++; + } + const text = this.input.substring(chunk.offset.pos, this.pos); + const last = this.chunks.length - 1; + if (chunk.error && this.chunks.length && this.chunks[last].error) { + this.chunks[last].text += text; + } + else { + chunk.text = text; + this.chunks.push(chunk); + } + } + } + /** + * Reads the bibtex input and splits it into separate chunks of `@string`s, `@comment`s, and bibtex entries. Useful for detecting if a file is bibtex file and for filtering out basic errors that would + * make the more sophisticated [[bibtex.parse]] reject the whole file + * + * @returns array of chunks, with markers for type and errors (if any) found. + */ + function parse(input, options = {}) { + return (new BibtexParser).parse(input, options); + } + exports.parse = parse; + + }); + + var $ = { + math: "\\$", + text: "\\$" + }; + var _ = { + math: "\\_", + text: "\\_" + }; + var require$$0 = { + "#": { + math: "\\#", + text: "\\#" + }, + $: $, + "%": { + math: "\\%", + text: "\\%" + }, + "&": { + math: "\\&", + text: "\\&" + }, + "/​": { + text: "\\slash", + commandspacer: true + }, + "<": { + math: "<" + }, + ">": { + math: ">" + }, + "\\": { + math: "\\backslash", + text: "\\textbackslash", + commandspacer: true + }, + "^": { + math: "\\sphat", + text: "\\^" + }, + _: _, + "i︠a︡": { + text: "\\t{ia}" + }, + "{": { + math: "\\lbrace", + text: "\\{" + }, + "}": { + math: "\\rbrace", + text: "\\}" + }, + "~": { + math: "\\sptilde", + text: "\\textasciitilde", + commandspacer: true + }, + " ": { + math: "~", + space: true, + text: "~" + }, + "¡": { + text: "\\textexclamdown", + commandspacer: true + }, + "¢": { + math: "\\cent", + text: "\\textcent", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "£": { + math: "\\pounds", + text: "\\textsterling", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "¤": { + text: "\\textcurrency", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "¥": { + math: "\\yen", + text: "\\textyen", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "¦": { + text: "\\textbrokenbar", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "§": { + text: "\\textsection", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "¨": { + math: "\\spddot", + text: "\\textasciidieresis", + commandspacer: true + }, + "©": { + text: "\\textcopyright", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "ª": { + text: "\\textordfeminine", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "«": { + text: "\\guillemotleft", + commandspacer: true + }, + "¬": { + math: "\\lnot" + }, + "­": { + math: "\\-", + text: "\\-" + }, + "®": { + math: "\\circledR", + text: "\\textregistered", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "¯": { + text: "\\textasciimacron", + commandspacer: true + }, + "°": { + math: "^\\circ", + text: "\\textdegree", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "±": { + math: "\\pm" + }, + "²": { + math: "^{2}" + }, + "³": { + math: "^{3}" + }, + "´": { + text: "\\textasciiacute", + commandspacer: true + }, + "µ": { + text: "\\textmu", + commandspacer: true + }, + "¶": { + text: "\\textparagraph", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "·": { + math: "\\cdot" + }, + "¸": { + text: "\\c", + commandspacer: true + }, + "¹": { + math: "^{1}" + }, + "º": { + text: "\\textordmasculine", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "»": { + text: "\\guillemotright", + commandspacer: true + }, + "¼": { + math: "\\frac{1}{4}" + }, + "½": { + math: "\\frac{1}{2}" + }, + "¾": { + math: "\\frac{3}{4}" + }, + "¿": { + text: "\\textquestiondown", + commandspacer: true + }, + "À": { + text: "\\`A" + }, + "Á": { + text: "\\'A" + }, + "Â": { + text: "\\^A" + }, + "Ã": { + text: "\\~A" + }, + "Ä": { + text: "\\\"A" + }, + "Å": { + text: "\\AA", + commandspacer: true + }, + "Æ": { + text: "\\AE", + commandspacer: true + }, + "Ç": { + text: "\\c{C}" + }, + "È": { + text: "\\`E" + }, + "É": { + text: "\\'E" + }, + "Ê": { + text: "\\^E" + }, + "Ë": { + text: "\\\"E" + }, + "Ì": { + text: "\\`I" + }, + "Í": { + text: "\\'I" + }, + "Î": { + text: "\\^I" + }, + "Ï": { + text: "\\\"I" + }, + "Ð": { + text: "\\DH", + commandspacer: true + }, + "Ñ": { + text: "\\~N" + }, + "Ò": { + text: "\\`O" + }, + "Ó": { + text: "\\'O" + }, + "Ô": { + text: "\\^O" + }, + "Õ": { + text: "\\~O" + }, + "Ö": { + text: "\\\"O" + }, + "×": { + math: "\\times", + text: "\\texttimes", + commandspacer: true + }, + "Ø": { + text: "\\O", + commandspacer: true + }, + "Ù": { + text: "\\`U" + }, + "Ú": { + text: "\\'U" + }, + "Û": { + text: "\\^U" + }, + "Ü": { + text: "\\\"U" + }, + "Ý": { + text: "\\'Y" + }, + "Þ": { + text: "\\TH", + commandspacer: true + }, + "ß": { + text: "\\ss", + commandspacer: true + }, + "à": { + text: "\\`a" + }, + "á": { + text: "\\'a" + }, + "â": { + text: "\\^a" + }, + "ã": { + text: "\\~a" + }, + "ä": { + text: "\\\"a" + }, + "å": { + text: "\\aa", + commandspacer: true + }, + "æ": { + text: "\\ae", + commandspacer: true + }, + "ç": { + text: "\\c{c}" + }, + "è": { + text: "\\`e" + }, + "é": { + text: "\\'e" + }, + "ê": { + text: "\\^e" + }, + "ë": { + text: "\\\"e" + }, + "ì": { + text: "\\`i" + }, + "í": { + text: "\\'i" + }, + "î": { + text: "\\^i" + }, + "ï": { + text: "\\\"i" + }, + "ð": { + math: "\\eth", + mathpackages: [ + "amssymb", + "arevmath" + ], + text: "\\dh", + commandspacer: true + }, + "ñ": { + text: "\\~n" + }, + "ò": { + text: "\\`o" + }, + "ó": { + text: "\\'o" + }, + "ô": { + text: "\\^o" + }, + "õ": { + text: "\\~o" + }, + "ö": { + text: "\\\"o" + }, + "÷": { + math: "\\div" + }, + "ø": { + text: "\\o", + commandspacer: true + }, + "ù": { + text: "\\`u" + }, + "ú": { + text: "\\'u" + }, + "û": { + text: "\\^u" + }, + "ü": { + text: "\\\"u" + }, + "ý": { + text: "\\'y" + }, + "þ": { + text: "\\th", + commandspacer: true + }, + "ÿ": { + text: "\\\"y" + }, + "Ā": { + text: "\\=A" + }, + "ā": { + text: "\\=a" + }, + "Ă": { + text: "\\u{A}" + }, + "ă": { + text: "\\u{a}" + }, + "Ą": { + text: "\\k{A}" + }, + "ą": { + text: "\\k{a}" + }, + "Ć": { + text: "\\'C" + }, + "ć": { + text: "\\'c" + }, + "Ĉ": { + text: "\\^C" + }, + "ĉ": { + text: "\\^c" + }, + "Ċ": { + text: "\\.C" + }, + "ċ": { + text: "\\.c" + }, + "Č": { + text: "\\v{C}" + }, + "č": { + text: "\\v{c}" + }, + "Ď": { + text: "\\v{D}" + }, + "ď": { + text: "\\v{d}" + }, + "Đ": { + text: "\\DJ", + commandspacer: true + }, + "đ": { + text: "\\dj", + commandspacer: true + }, + "Ē": { + text: "\\=E" + }, + "ē": { + text: "\\=e" + }, + "Ĕ": { + text: "\\u{E}" + }, + "ĕ": { + text: "\\u{e}" + }, + "Ė": { + text: "\\.E" + }, + "ė": { + text: "\\.e" + }, + "Ę": { + text: "\\k{E}" + }, + "ę": { + text: "\\k{e}" + }, + "Ě": { + text: "\\v{E}" + }, + "ě": { + text: "\\v{e}" + }, + "Ĝ": { + text: "\\^G" + }, + "ĝ": { + text: "\\^g" + }, + "Ğ": { + text: "\\u{G}" + }, + "ğ": { + text: "\\u{g}" + }, + "Ġ": { + text: "\\.G" + }, + "ġ": { + text: "\\.g" + }, + "Ģ": { + text: "\\c{G}" + }, + "ģ": { + text: "\\c{g}" + }, + "Ĥ": { + text: "\\^H" + }, + "ĥ": { + text: "\\^h" + }, + "Ħ": { + text: "{\\fontencoding{LELA}\\selectfont\\char40}" + }, + "ħ": { + math: "\\Elzxh" + }, + "Ĩ": { + text: "\\~I" + }, + "ĩ": { + text: "\\~i" + }, + "Ī": { + text: "\\=I" + }, + "ī": { + text: "\\=i" + }, + "Ĭ": { + text: "\\u{I}" + }, + "ĭ": { + text: "{\\u \\i}" + }, + "Į": { + text: "\\k{I}" + }, + "į": { + text: "\\k{i}" + }, + "İ": { + text: "\\.I" + }, + "ı": { + math: "\\imath", + text: "\\i", + commandspacer: true + }, + "IJ": { + text: "IJ" + }, + "ij": { + text: "ij" + }, + "Ĵ": { + text: "\\^J" + }, + "ĵ": { + text: "\\^\\j", + commandspacer: true + }, + "Ķ": { + text: "\\c{K}" + }, + "ķ": { + text: "\\c{k}" + }, + "ĸ": { + text: "{\\fontencoding{LELA}\\selectfont\\char91}" + }, + "Ĺ": { + text: "\\'L" + }, + "ĺ": { + text: "\\'l" + }, + "Ļ": { + text: "\\c{L}" + }, + "ļ": { + text: "\\c{l}" + }, + "Ľ": { + text: "\\v{L}" + }, + "ľ": { + text: "\\v{l}" + }, + "Ŀ": { + text: "{\\fontencoding{LELA}\\selectfont\\char201}" + }, + "ŀ": { + text: "{\\fontencoding{LELA}\\selectfont\\char202}" + }, + "Ł": { + text: "\\L", + commandspacer: true + }, + "ł": { + text: "\\l", + commandspacer: true + }, + "Ń": { + text: "\\'N" + }, + "ń": { + text: "\\'n" + }, + "Ņ": { + text: "\\c{N}" + }, + "ņ": { + text: "\\c{n}" + }, + "Ň": { + text: "\\v{N}" + }, + "ň": { + text: "\\v{n}" + }, + "ʼn": { + text: "'n" + }, + "Ŋ": { + text: "\\NG", + commandspacer: true + }, + "ŋ": { + text: "\\ng", + commandspacer: true + }, + "Ō": { + text: "\\=O" + }, + "ō": { + text: "\\=o" + }, + "Ŏ": { + text: "\\u{O}" + }, + "ŏ": { + text: "\\u{o}" + }, + "Ő": { + text: "\\H{O}" + }, + "ő": { + text: "\\H{o}" + }, + "Œ": { + text: "\\OE", + commandspacer: true + }, + "œ": { + text: "\\oe", + commandspacer: true + }, + "Ŕ": { + text: "\\'R" + }, + "ŕ": { + text: "\\'r" + }, + "Ŗ": { + text: "\\c{R}" + }, + "ŗ": { + text: "\\c{r}" + }, + "Ř": { + text: "\\v{R}" + }, + "ř": { + text: "\\v{r}" + }, + "Ś": { + text: "\\'S" + }, + "ś": { + text: "\\'s" + }, + "Ŝ": { + text: "\\^S" + }, + "ŝ": { + text: "\\^s" + }, + "Ş": { + text: "\\c{S}" + }, + "ş": { + text: "\\c{s}" + }, + "Š": { + text: "\\v{S}" + }, + "š": { + text: "\\v{s}" + }, + "Ţ": { + text: "\\c{T}" + }, + "ţ": { + text: "\\c{t}" + }, + "Ť": { + text: "\\v{T}" + }, + "ť": { + text: "\\v{t}" + }, + "Ŧ": { + text: "{\\fontencoding{LELA}\\selectfont\\char47}" + }, + "ŧ": { + text: "{\\fontencoding{LELA}\\selectfont\\char63}" + }, + "Ũ": { + text: "\\~U" + }, + "ũ": { + text: "\\~u" + }, + "Ū": { + text: "\\=U" + }, + "ū": { + text: "\\=u" + }, + "Ŭ": { + text: "\\u{U}" + }, + "ŭ": { + text: "\\u{u}" + }, + "Ů": { + text: "\\r{U}" + }, + "ů": { + text: "\\r{u}" + }, + "Ű": { + text: "\\H{U}" + }, + "ű": { + text: "\\H{u}" + }, + "Ų": { + text: "\\k{U}" + }, + "ų": { + text: "\\k{u}" + }, + "Ŵ": { + text: "\\^W" + }, + "ŵ": { + text: "\\^w" + }, + "Ŷ": { + text: "\\^Y" + }, + "ŷ": { + text: "\\^y" + }, + "Ÿ": { + text: "\\\"Y" + }, + "Ź": { + text: "\\'Z" + }, + "ź": { + text: "\\'z" + }, + "Ż": { + text: "\\.Z" + }, + "ż": { + text: "\\.z" + }, + "Ž": { + text: "\\v{Z}" + }, + "ž": { + text: "\\v{z}" + }, + "ſ": { + text: "s" + }, + "ƒ": { + math: "f" + }, + "ƕ": { + text: "\\texthvlig", + commandspacer: true + }, + "ƞ": { + text: "\\textnrleg", + commandspacer: true + }, + "ƪ": { + text: "\\textesh", + commandspacer: true + }, + "Ƶ": { + math: "\\Zbar" + }, + "ƺ": { + text: "{\\fontencoding{LELA}\\selectfont\\char195}" + }, + "ǂ": { + text: "\\textdoublepipe", + commandspacer: true + }, + "Ǎ": { + text: "\\v{A}" + }, + "ǎ": { + text: "\\v{a}" + }, + "Ǐ": { + text: "\\v{I}" + }, + "ǐ": { + text: "\\v{i}" + }, + "Ǒ": { + text: "\\v{O}" + }, + "ǒ": { + text: "\\v{o}" + }, + "Ǔ": { + text: "\\v{U}" + }, + "ǔ": { + text: "\\v{u}" + }, + "Ǧ": { + text: "\\v{G}" + }, + "ǧ": { + text: "\\v{g}" + }, + "Ǩ": { + text: "\\v{K}" + }, + "ǩ": { + text: "\\v{k}" + }, + "Ǫ": { + text: "\\k{O}" + }, + "ǫ": { + text: "\\k{o}" + }, + "ǰ": { + text: "\\v{j}" + }, + "Ǵ": { + text: "\\'G" + }, + "ǵ": { + text: "\\'g" + }, + "Ȩ": { + text: "\\c{E}" + }, + "ȩ": { + text: "\\c{e}" + }, + "ȷ": { + math: "\\jmath" + }, + "ɐ": { + math: "\\Elztrna" + }, + "ɒ": { + math: "\\Elztrnsa" + }, + "ɔ": { + math: "\\Elzopeno" + }, + "ɖ": { + math: "\\Elzrtld" + }, + "ɘ": { + text: "{\\fontencoding{LEIP}\\selectfont\\char61}" + }, + "ə": { + math: "\\Elzschwa" + }, + "ɛ": { + math: "\\varepsilon" + }, + "ɡ": { + text: "g" + }, + "ɣ": { + math: "\\Elzpgamma" + }, + "ɤ": { + math: "\\Elzpbgam" + }, + "ɥ": { + math: "\\Elztrnh" + }, + "ɬ": { + math: "\\Elzbtdl" + }, + "ɭ": { + math: "\\Elzrtll" + }, + "ɯ": { + math: "\\Elztrnm" + }, + "ɰ": { + math: "\\Elztrnmlr" + }, + "ɱ": { + math: "\\Elzltlmr" + }, + "ɲ": { + text: "\\Elzltln", + commandspacer: true + }, + "ɳ": { + math: "\\Elzrtln" + }, + "ɷ": { + math: "\\Elzclomeg" + }, + "ɸ": { + text: "\\textphi", + commandspacer: true + }, + "ɹ": { + math: "\\Elztrnr" + }, + "ɺ": { + math: "\\Elztrnrl" + }, + "ɻ": { + math: "\\Elzrttrnr" + }, + "ɼ": { + math: "\\Elzrl" + }, + "ɽ": { + math: "\\Elzrtlr" + }, + "ɾ": { + math: "\\Elzfhr" + }, + "ɿ": { + text: "{\\fontencoding{LEIP}\\selectfont\\char202}" + }, + "ʂ": { + math: "\\Elzrtls" + }, + "ʃ": { + math: "\\Elzesh" + }, + "ʇ": { + math: "\\Elztrnt" + }, + "ʈ": { + math: "\\Elzrtlt" + }, + "ʊ": { + math: "\\Elzpupsil" + }, + "ʋ": { + math: "\\Elzpscrv" + }, + "ʌ": { + math: "\\Elzinvv" + }, + "ʍ": { + math: "\\Elzinvw" + }, + "ʎ": { + math: "\\Elztrny" + }, + "ʐ": { + math: "\\Elzrtlz" + }, + "ʒ": { + math: "\\Elzyogh" + }, + "ʔ": { + math: "\\Elzglst" + }, + "ʕ": { + math: "\\Elzreglst" + }, + "ʖ": { + math: "\\Elzinglst" + }, + "ʞ": { + text: "\\textturnk", + commandspacer: true + }, + "ʤ": { + math: "\\Elzdyogh" + }, + "ʧ": { + math: "\\Elztesh" + }, + "ʰ": { + math: "^{h}", + text: "\\textsuperscript{h}" + }, + "ʲ": { + math: "^{j}", + text: "\\textsuperscript{j}" + }, + "ʳ": { + math: "^{r}", + text: "\\textsuperscript{r}" + }, + "ʷ": { + math: "^{w}", + text: "\\textsuperscript{w}" + }, + "ʸ": { + math: "^{y}", + text: "\\textsuperscript{y}" + }, + "ʹ": { + text: "'" + }, + "ʻ": { + text: "'" + }, + "ʼ": { + text: "'" + }, + "ʽ": { + text: "'" + }, + "ʿ": { + text: "\\lasp", + commandspacer: true, + textpackages: [ + "mathscinet" + ] + }, + "ˆ": { + text: "\\textasciicircum", + commandspacer: true + }, + "ˇ": { + text: "\\textasciicaron", + commandspacer: true + }, + "ˈ": { + math: "\\Elzverts" + }, + "ˉ": { + text: "-" + }, + "ˌ": { + math: "\\Elzverti" + }, + "ː": { + math: "\\Elzlmrk" + }, + "ˑ": { + math: "\\Elzhlmrk" + }, + "˒": { + math: "\\Elzsbrhr" + }, + "˓": { + math: "\\Elzsblhr" + }, + "˔": { + math: "\\Elzrais" + }, + "˕": { + math: "\\Elzlow" + }, + "˘": { + text: "\\textasciibreve", + commandspacer: true + }, + "˙": { + text: "\\textperiodcentered", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "˚": { + text: "\\r{}" + }, + "˛": { + text: "\\k{}" + }, + "˜": { + text: "\\texttildelow", + commandspacer: true + }, + "˝": { + text: "\\H{}" + }, + "ˡ": { + math: "^{l}", + text: "\\textsuperscript{l}" + }, + "ˢ": { + math: "^{s}", + text: "\\textsuperscript{s}" + }, + "ˣ": { + math: "^{x}", + text: "\\textsuperscript{x}" + }, + "˥": { + text: "\\tone{55}" + }, + "˦": { + text: "\\tone{44}" + }, + "˧": { + text: "\\tone{33}" + }, + "˨": { + text: "\\tone{22}" + }, + "˩": { + text: "\\tone{11}" + }, + "̀": { + math: "\\grave", + combiningdiacritic: true, + text: "\\`" + }, + "̀̄": { + text: "\\textgravemacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̄̀": { + text: "\\textgravemacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̀̇": { + text: "\\textgravedot", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̇̀": { + text: "\\textgravedot", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "́": { + math: "\\acute", + combiningdiacritic: true, + text: "\\'" + }, + "́̄": { + text: "\\textacutemacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̄́": { + text: "\\textacutemacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "́̌": { + text: "\\textacutewedge", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̌́": { + text: "\\textacutewedge", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̂": { + math: "\\hat", + combiningdiacritic: true, + text: "\\^" + }, + "̂̇": { + text: "\\textcircumdot", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̇̂": { + text: "\\textcircumdot", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̃": { + math: "\\tilde", + combiningdiacritic: true, + text: "\\~" + }, + "̃̇": { + text: "\\texttildedot", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̇̃": { + text: "\\texttildedot", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̄": { + math: "\\bar", + combiningdiacritic: true, + text: "\\=" + }, + "̅": { + math: "\\overline", + combiningdiacritic: true + }, + "̆": { + math: "\\breve", + combiningdiacritic: true, + text: "\\u", + commandspacer: true + }, + "̆̄": { + text: "\\textbrevemacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̄̆": { + text: "\\textbrevemacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̇": { + math: "\\dot", + combiningdiacritic: true, + text: "\\." + }, + "̇́": { + text: "\\textdotacute", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "́̇": { + text: "\\textdotacute", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̇̆": { + text: "\\textdotbreve", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̆̇": { + text: "\\textdotbreve", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̈": { + math: "\\ddot", + combiningdiacritic: true, + text: "\\\"" + }, + "̉": { + math: "\\ovhook" + }, + "̊": { + math: "\\mathring", + combiningdiacritic: true, + text: "\\r", + commandspacer: true + }, + "̊̄": { + text: "\\textringmacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̄̊": { + text: "\\textringmacron", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̋": { + text: "\\H", + commandspacer: true, + combiningdiacritic: true + }, + "̌": { + math: "\\check", + text: "\\v", + commandspacer: true, + combiningdiacritic: true + }, + "̍": { + text: "\\textvbaraccent", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̎": { + text: "\\textdoublevbaraccent", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̏": { + text: "\\textdoublegrave", + commandspacer: true, + combiningdiacritic: true + }, + "̐": { + text: "\\textdotbreve", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̑": { + text: "{\\fontencoding{LECO}\\selectfont\\char177}" + }, + "̒": { + math: "\\oturnedcomma" + }, + "̕": { + math: "\\ocommatopright" + }, + "̖": { + text: "\\textsubgrave", + commandspacer: true, + combiningdiacritic: true + }, + "̘": { + text: "\\textadvancing", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̙": { + text: "\\textretracting", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̚": { + math: "\\droang", + text: "\\textcorner", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̜": { + text: "\\textsublhalfring", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̝": { + text: "\\textraising", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̞": { + text: "\\textlowering", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̟": { + text: "\\textsubplus", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̡": { + math: "\\Elzpalh" + }, + "̢": { + text: "\\Elzrh", + commandspacer: true + }, + "̣": { + text: "\\d", + commandspacer: true, + combiningdiacritic: true + }, + "̤": { + text: "\\textsubumlaut", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̥": { + text: "\\textsubring", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̧": { + text: "\\c", + commandspacer: true, + combiningdiacritic: true + }, + "̨": { + text: "\\k", + commandspacer: true, + combiningdiacritic: true + }, + "̩": { + text: "\\textsyllabic", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̪": { + math: "\\Elzsbbrg", + text: "\\textsubbridge", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̫": { + text: "{\\fontencoding{LECO}\\selectfont\\char203}" + }, + "̬": { + text: "\\textsubwedge", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̯": { + text: "\\textsubarch", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̰": { + math: "\\utilde", + text: "\\textsubtilde", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̱": { + math: "\\underbar", + combiningdiacritic: true, + text: "\\textsubbar", + commandspacer: true, + textpackages: [ + "tipa" + ] + }, + "̲": { + math: "\\underline" + }, + "̴": { + text: "\\textsuperimposetilde", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̵": { + text: "\\Elzxl", + commandspacer: true + }, + "̶": { + text: "\\Elzbar", + commandspacer: true + }, + "̷": { + text: "{\\fontencoding{LECO}\\selectfont\\char215}" + }, + "̸": { + math: "\\not" + }, + "̹": { + text: "\\textsubrhalfring", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̺": { + text: "\\textinvsubbridge", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̻": { + text: "\\textsubsquare", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̼": { + text: "\\textseagull", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̽": { + text: "\\textovercross", + commandspacer: true, + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "͡": { + text: "{\\fontencoding{LECO}\\selectfont\\char225}" + }, + "ʹ": { + text: "'" + }, + "͵": { + text: "," + }, + ";": { + text: ";" + }, + "Ά": { + text: "\\'A" + }, + "Έ": { + text: "\\'E" + }, + "Ή": { + text: "\\'H" + }, + "Ί": { + text: "{\\'{}I}" + }, + "Ό": { + text: "{\\'{}O}" + }, + "Ύ": { + math: "\\mathrm{'Y}" + }, + "Ώ": { + math: "\\mathrm{'\\Omega}" + }, + "ΐ": { + math: "\\acute{\\ddot{\\iota}}" + }, + "Α": { + math: "A" + }, + "Β": { + math: "B" + }, + "Γ": { + math: "\\Gamma" + }, + "Δ": { + math: "\\Delta" + }, + "Ε": { + math: "E" + }, + "Ζ": { + math: "Z" + }, + "Η": { + math: "H" + }, + "Θ": { + math: "\\Theta" + }, + "Ι": { + math: "I" + }, + "Κ": { + math: "K" + }, + "Λ": { + math: "\\Lambda" + }, + "Μ": { + math: "M" + }, + "Ν": { + math: "N" + }, + "Ξ": { + math: "\\Xi" + }, + "Ο": { + math: "O" + }, + "Π": { + math: "\\Pi" + }, + "Ρ": { + math: "P" + }, + "Σ": { + math: "\\Sigma" + }, + "Τ": { + math: "T" + }, + "Υ": { + math: "\\Upsilon" + }, + "Φ": { + math: "\\Phi" + }, + "Χ": { + math: "X" + }, + "Ψ": { + math: "\\Psi" + }, + "Ω": { + math: "\\Omega" + }, + "Ϊ": { + math: "\\mathrm{\\ddot{I}}" + }, + "Ϋ": { + math: "\\mathrm{\\ddot{Y}}" + }, + "ά": { + text: "{\\'$\\alpha$}" + }, + "έ": { + math: "\\acute{\\epsilon}" + }, + "ή": { + math: "\\acute{\\eta}" + }, + "ί": { + math: "\\acute{\\iota}" + }, + "ΰ": { + math: "\\acute{\\ddot{\\upsilon}}" + }, + "α": { + math: "\\alpha" + }, + "β": { + math: "\\beta" + }, + "γ": { + math: "\\gamma" + }, + "δ": { + math: "\\delta" + }, + "ε": { + math: "\\epsilon" + }, + "ζ": { + math: "\\zeta" + }, + "η": { + math: "\\eta" + }, + "θ": { + math: "\\theta", + text: "\\texttheta", + commandspacer: true + }, + "ι": { + math: "\\iota" + }, + "κ": { + math: "\\kappa" + }, + "λ": { + math: "\\lambda" + }, + "μ": { + math: "\\mu" + }, + "ν": { + math: "\\nu" + }, + "ξ": { + math: "\\xi" + }, + "ο": { + math: "o" + }, + "π": { + math: "\\pi" + }, + "ρ": { + math: "\\rho" + }, + "ς": { + math: "\\varsigma" + }, + "σ": { + math: "\\sigma" + }, + "τ": { + math: "\\tau" + }, + "υ": { + math: "\\upsilon" + }, + "φ": { + math: "\\varphi" + }, + "χ": { + math: "\\chi" + }, + "ψ": { + math: "\\psi" + }, + "ω": { + math: "\\omega" + }, + "ϊ": { + math: "\\ddot{\\iota}" + }, + "ϋ": { + math: "\\ddot{\\upsilon}" + }, + "ό": { + text: "\\'o" + }, + "ύ": { + math: "\\acute{\\upsilon}" + }, + "ώ": { + math: "\\acute{\\omega}" + }, + "ϐ": { + math: "\\varbeta", + text: "\\Pisymbol{ppi022}{87}" + }, + "ϑ": { + math: "\\vartheta", + text: "\\textvartheta", + commandspacer: true + }, + "ϒ": { + math: "\\Upsilon" + }, + "ϕ": { + math: "\\phi" + }, + "ϖ": { + math: "\\varpi" + }, + "Ϙ": { + math: "\\Qoppa" + }, + "ϙ": { + math: "\\qoppa" + }, + "Ϛ": { + math: "\\Stigma" + }, + "ϛ": { + math: "\\stigma" + }, + "Ϝ": { + math: "\\Digamma" + }, + "ϝ": { + math: "\\digamma" + }, + "Ϟ": { + math: "\\Koppa" + }, + "ϟ": { + math: "\\koppa" + }, + "Ϡ": { + math: "\\Sampi" + }, + "ϡ": { + math: "\\sampi" + }, + "ϰ": { + math: "\\varkappa" + }, + "ϱ": { + math: "\\varrho" + }, + "ϴ": { + math: "\\upvarTheta", + text: "\\textTheta", + commandspacer: true + }, + "ϵ": { + math: "\\epsilon" + }, + "϶": { + math: "\\backepsilon" + }, + "Ё": { + text: "\\cyrchar\\CYRYO", + commandspacer: true + }, + "Ђ": { + text: "\\cyrchar\\CYRDJE", + commandspacer: true + }, + "Ѓ": { + text: "\\cyrchar{\\'\\CYRG}" + }, + "Є": { + text: "\\cyrchar\\CYRIE", + commandspacer: true + }, + "Ѕ": { + text: "\\cyrchar\\CYRDZE", + commandspacer: true + }, + "І": { + text: "\\cyrchar\\CYRII", + commandspacer: true + }, + "Ї": { + text: "\\cyrchar\\CYRYI", + commandspacer: true + }, + "Ј": { + text: "\\cyrchar\\CYRJE", + commandspacer: true + }, + "Љ": { + text: "\\cyrchar\\CYRLJE", + commandspacer: true + }, + "Њ": { + text: "\\cyrchar\\CYRNJE", + commandspacer: true + }, + "Ћ": { + text: "\\cyrchar\\CYRTSHE", + commandspacer: true + }, + "Ќ": { + text: "\\cyrchar{\\'\\CYRK}" + }, + "Ў": { + text: "\\cyrchar\\CYRUSHRT", + commandspacer: true + }, + "Џ": { + text: "\\cyrchar\\CYRDZHE", + commandspacer: true + }, + "А": { + text: "\\cyrchar\\CYRA", + commandspacer: true + }, + "Б": { + text: "\\cyrchar\\CYRB", + commandspacer: true + }, + "В": { + text: "\\cyrchar\\CYRV", + commandspacer: true + }, + "Г": { + text: "\\cyrchar\\CYRG", + commandspacer: true + }, + "Д": { + text: "\\cyrchar\\CYRD", + commandspacer: true + }, + "Е": { + text: "\\cyrchar\\CYRE", + commandspacer: true + }, + "Ж": { + text: "\\cyrchar\\CYRZH", + commandspacer: true + }, + "З": { + text: "\\cyrchar\\CYRZ", + commandspacer: true + }, + "И": { + text: "\\cyrchar\\CYRI", + commandspacer: true + }, + "Й": { + text: "\\cyrchar\\CYRISHRT", + commandspacer: true + }, + "К": { + text: "\\cyrchar\\CYRK", + commandspacer: true + }, + "Л": { + text: "\\cyrchar\\CYRL", + commandspacer: true + }, + "М": { + text: "\\cyrchar\\CYRM", + commandspacer: true + }, + "Н": { + text: "\\cyrchar\\CYRN", + commandspacer: true + }, + "О": { + text: "\\cyrchar\\CYRO", + commandspacer: true + }, + "П": { + text: "\\cyrchar\\CYRP", + commandspacer: true + }, + "Р": { + text: "\\cyrchar\\CYRR", + commandspacer: true + }, + "С": { + text: "\\cyrchar\\CYRS", + commandspacer: true + }, + "Т": { + text: "\\cyrchar\\CYRT", + commandspacer: true + }, + "У": { + text: "\\cyrchar\\CYRU", + commandspacer: true + }, + "Ф": { + text: "\\cyrchar\\CYRF", + commandspacer: true + }, + "Х": { + text: "\\cyrchar\\CYRH", + commandspacer: true + }, + "Ц": { + text: "\\cyrchar\\CYRC", + commandspacer: true + }, + "Ч": { + text: "\\cyrchar\\CYRCH", + commandspacer: true + }, + "Ш": { + text: "\\cyrchar\\CYRSH", + commandspacer: true + }, + "Щ": { + text: "\\cyrchar\\CYRSHCH", + commandspacer: true + }, + "Ъ": { + text: "\\cyrchar\\CYRHRDSN", + commandspacer: true + }, + "Ы": { + text: "\\cyrchar\\CYRERY", + commandspacer: true + }, + "Ь": { + text: "\\cyrchar\\CYRSFTSN", + commandspacer: true + }, + "Э": { + text: "\\cyrchar\\CYREREV", + commandspacer: true + }, + "Ю": { + text: "\\cyrchar\\CYRYU", + commandspacer: true + }, + "Я": { + text: "\\cyrchar\\CYRYA", + commandspacer: true + }, + "а": { + text: "\\cyrchar\\cyra", + commandspacer: true + }, + "б": { + text: "\\cyrchar\\cyrb", + commandspacer: true + }, + "в": { + text: "\\cyrchar\\cyrv", + commandspacer: true + }, + "г": { + text: "\\cyrchar\\cyrg", + commandspacer: true + }, + "д": { + text: "\\cyrchar\\cyrd", + commandspacer: true + }, + "е": { + text: "\\cyrchar\\cyre", + commandspacer: true + }, + "ж": { + text: "\\cyrchar\\cyrzh", + commandspacer: true + }, + "з": { + text: "\\cyrchar\\cyrz", + commandspacer: true + }, + "и": { + text: "\\cyrchar\\cyri", + commandspacer: true + }, + "й": { + text: "\\cyrchar\\cyrishrt", + commandspacer: true + }, + "к": { + text: "\\cyrchar\\cyrk", + commandspacer: true + }, + "л": { + text: "\\cyrchar\\cyrl", + commandspacer: true + }, + "м": { + text: "\\cyrchar\\cyrm", + commandspacer: true + }, + "н": { + text: "\\cyrchar\\cyrn", + commandspacer: true + }, + "о": { + text: "\\cyrchar\\cyro", + commandspacer: true + }, + "п": { + text: "\\cyrchar\\cyrp", + commandspacer: true + }, + "р": { + text: "\\cyrchar\\cyrr", + commandspacer: true + }, + "с": { + text: "\\cyrchar\\cyrs", + commandspacer: true + }, + "т": { + text: "\\cyrchar\\cyrt", + commandspacer: true + }, + "у": { + text: "\\cyrchar\\cyru", + commandspacer: true + }, + "ф": { + text: "\\cyrchar\\cyrf", + commandspacer: true + }, + "х": { + text: "\\cyrchar\\cyrh", + commandspacer: true + }, + "ц": { + text: "\\cyrchar\\cyrc", + commandspacer: true + }, + "ч": { + text: "\\cyrchar\\cyrch", + commandspacer: true + }, + "ш": { + text: "\\cyrchar\\cyrsh", + commandspacer: true + }, + "щ": { + text: "\\cyrchar\\cyrshch", + commandspacer: true + }, + "ъ": { + text: "\\cyrchar\\cyrhrdsn", + commandspacer: true + }, + "ы": { + text: "\\cyrchar\\cyrery", + commandspacer: true + }, + "ь": { + text: "\\cyrchar\\cyrsftsn", + commandspacer: true + }, + "э": { + text: "\\cyrchar\\cyrerev", + commandspacer: true + }, + "ю": { + text: "\\cyrchar\\cyryu", + commandspacer: true + }, + "я": { + text: "\\cyrchar\\cyrya", + commandspacer: true + }, + "ё": { + text: "\\cyrchar\\cyryo", + commandspacer: true + }, + "ђ": { + text: "\\cyrchar\\cyrdje", + commandspacer: true + }, + "ѓ": { + text: "\\cyrchar{\\'\\cyrg}" + }, + "є": { + text: "\\cyrchar\\cyrie", + commandspacer: true + }, + "ѕ": { + text: "\\cyrchar\\cyrdze", + commandspacer: true + }, + "і": { + text: "\\cyrchar\\cyrii", + commandspacer: true + }, + "ї": { + text: "\\cyrchar\\cyryi", + commandspacer: true + }, + "ј": { + text: "\\cyrchar\\cyrje", + commandspacer: true + }, + "љ": { + text: "\\cyrchar\\cyrlje", + commandspacer: true + }, + "њ": { + text: "\\cyrchar\\cyrnje", + commandspacer: true + }, + "ћ": { + text: "\\cyrchar\\cyrtshe", + commandspacer: true + }, + "ќ": { + text: "\\cyrchar{\\'\\cyrk}" + }, + "ў": { + text: "\\cyrchar\\cyrushrt", + commandspacer: true + }, + "џ": { + text: "\\cyrchar\\cyrdzhe", + commandspacer: true + }, + "Ѡ": { + text: "\\cyrchar\\CYROMEGA", + commandspacer: true + }, + "ѡ": { + text: "\\cyrchar\\cyromega", + commandspacer: true + }, + "Ѣ": { + text: "\\cyrchar\\CYRYAT", + commandspacer: true + }, + "Ѥ": { + text: "\\cyrchar\\CYRIOTE", + commandspacer: true + }, + "ѥ": { + text: "\\cyrchar\\cyriote", + commandspacer: true + }, + "Ѧ": { + text: "\\cyrchar\\CYRLYUS", + commandspacer: true + }, + "ѧ": { + text: "\\cyrchar\\cyrlyus", + commandspacer: true + }, + "Ѩ": { + text: "\\cyrchar\\CYRIOTLYUS", + commandspacer: true + }, + "ѩ": { + text: "\\cyrchar\\cyriotlyus", + commandspacer: true + }, + "Ѫ": { + text: "\\cyrchar\\CYRBYUS", + commandspacer: true + }, + "Ѭ": { + text: "\\cyrchar\\CYRIOTBYUS", + commandspacer: true + }, + "ѭ": { + text: "\\cyrchar\\cyriotbyus", + commandspacer: true + }, + "Ѯ": { + text: "\\cyrchar\\CYRKSI", + commandspacer: true + }, + "ѯ": { + text: "\\cyrchar\\cyrksi", + commandspacer: true + }, + "Ѱ": { + text: "\\cyrchar\\CYRPSI", + commandspacer: true + }, + "ѱ": { + text: "\\cyrchar\\cyrpsi", + commandspacer: true + }, + "Ѳ": { + text: "\\cyrchar\\CYRFITA", + commandspacer: true + }, + "Ѵ": { + text: "\\cyrchar\\CYRIZH", + commandspacer: true + }, + "Ѹ": { + text: "\\cyrchar\\CYRUK", + commandspacer: true + }, + "ѹ": { + text: "\\cyrchar\\cyruk", + commandspacer: true + }, + "Ѻ": { + text: "\\cyrchar\\CYROMEGARND", + commandspacer: true + }, + "ѻ": { + text: "\\cyrchar\\cyromegarnd", + commandspacer: true + }, + "Ѽ": { + text: "\\cyrchar\\CYROMEGATITLO", + commandspacer: true + }, + "ѽ": { + text: "\\cyrchar\\cyromegatitlo", + commandspacer: true + }, + "Ѿ": { + text: "\\cyrchar\\CYROT", + commandspacer: true + }, + "ѿ": { + text: "\\cyrchar\\cyrot", + commandspacer: true + }, + "Ҁ": { + text: "\\cyrchar\\CYRKOPPA", + commandspacer: true + }, + "ҁ": { + text: "\\cyrchar\\cyrkoppa", + commandspacer: true + }, + "҂": { + text: "\\cyrchar\\cyrthousands", + commandspacer: true + }, + "҈": { + text: "\\cyrchar\\cyrhundredthousands", + commandspacer: true + }, + "҉": { + text: "\\cyrchar\\cyrmillions", + commandspacer: true + }, + "Ҍ": { + text: "\\cyrchar\\CYRSEMISFTSN", + commandspacer: true + }, + "ҍ": { + text: "\\cyrchar\\cyrsemisftsn", + commandspacer: true + }, + "Ҏ": { + text: "\\cyrchar\\CYRRTICK", + commandspacer: true + }, + "ҏ": { + text: "\\cyrchar\\cyrrtick", + commandspacer: true + }, + "Ґ": { + text: "\\cyrchar\\CYRGUP", + commandspacer: true + }, + "ґ": { + text: "\\cyrchar\\cyrgup", + commandspacer: true + }, + "Ғ": { + text: "\\cyrchar\\CYRGHCRS", + commandspacer: true + }, + "ғ": { + text: "\\cyrchar\\cyrghcrs", + commandspacer: true + }, + "Ҕ": { + text: "\\cyrchar\\CYRGHK", + commandspacer: true + }, + "ҕ": { + text: "\\cyrchar\\cyrghk", + commandspacer: true + }, + "Җ": { + text: "\\cyrchar\\CYRZHDSC", + commandspacer: true + }, + "җ": { + text: "\\cyrchar\\cyrzhdsc", + commandspacer: true + }, + "Ҙ": { + text: "\\cyrchar\\CYRZDSC", + commandspacer: true + }, + "ҙ": { + text: "\\cyrchar\\cyrzdsc", + commandspacer: true + }, + "Қ": { + text: "\\cyrchar\\CYRKDSC", + commandspacer: true + }, + "қ": { + text: "\\cyrchar\\cyrkdsc", + commandspacer: true + }, + "Ҝ": { + text: "\\cyrchar\\CYRKVCRS", + commandspacer: true + }, + "ҝ": { + text: "\\cyrchar\\cyrkvcrs", + commandspacer: true + }, + "Ҟ": { + text: "\\cyrchar\\CYRKHCRS", + commandspacer: true + }, + "ҟ": { + text: "\\cyrchar\\cyrkhcrs", + commandspacer: true + }, + "Ҡ": { + text: "\\cyrchar\\CYRKBEAK", + commandspacer: true + }, + "ҡ": { + text: "\\cyrchar\\cyrkbeak", + commandspacer: true + }, + "Ң": { + text: "\\cyrchar\\CYRNDSC", + commandspacer: true + }, + "ң": { + text: "\\cyrchar\\cyrndsc", + commandspacer: true + }, + "Ҥ": { + text: "\\cyrchar\\CYRNG", + commandspacer: true + }, + "ҥ": { + text: "\\cyrchar\\cyrng", + commandspacer: true + }, + "Ҧ": { + text: "\\cyrchar\\CYRPHK", + commandspacer: true + }, + "ҧ": { + text: "\\cyrchar\\cyrphk", + commandspacer: true + }, + "Ҩ": { + text: "\\cyrchar\\CYRABHHA", + commandspacer: true + }, + "ҩ": { + text: "\\cyrchar\\cyrabhha", + commandspacer: true + }, + "Ҫ": { + text: "\\cyrchar\\CYRSDSC", + commandspacer: true + }, + "ҫ": { + text: "\\cyrchar\\cyrsdsc", + commandspacer: true + }, + "Ҭ": { + text: "\\cyrchar\\CYRTDSC", + commandspacer: true + }, + "ҭ": { + text: "\\cyrchar\\cyrtdsc", + commandspacer: true + }, + "Ү": { + text: "\\cyrchar\\CYRY", + commandspacer: true + }, + "ү": { + text: "\\cyrchar\\cyry", + commandspacer: true + }, + "Ұ": { + text: "\\cyrchar\\CYRYHCRS", + commandspacer: true + }, + "ұ": { + text: "\\cyrchar\\cyryhcrs", + commandspacer: true + }, + "Ҳ": { + text: "\\cyrchar\\CYRHDSC", + commandspacer: true + }, + "ҳ": { + text: "\\cyrchar\\cyrhdsc", + commandspacer: true + }, + "Ҵ": { + text: "\\cyrchar\\CYRTETSE", + commandspacer: true + }, + "ҵ": { + text: "\\cyrchar\\cyrtetse", + commandspacer: true + }, + "Ҷ": { + text: "\\cyrchar\\CYRCHRDSC", + commandspacer: true + }, + "ҷ": { + text: "\\cyrchar\\cyrchrdsc", + commandspacer: true + }, + "Ҹ": { + text: "\\cyrchar\\CYRCHVCRS", + commandspacer: true + }, + "ҹ": { + text: "\\cyrchar\\cyrchvcrs", + commandspacer: true + }, + "Һ": { + text: "\\cyrchar\\CYRSHHA", + commandspacer: true + }, + "һ": { + text: "\\cyrchar\\cyrshha", + commandspacer: true + }, + "Ҽ": { + text: "\\cyrchar\\CYRABHCH", + commandspacer: true + }, + "ҽ": { + text: "\\cyrchar\\cyrabhch", + commandspacer: true + }, + "Ҿ": { + text: "\\cyrchar\\CYRABHCHDSC", + commandspacer: true + }, + "ҿ": { + text: "\\cyrchar\\cyrabhchdsc", + commandspacer: true + }, + "Ӏ": { + text: "\\cyrchar\\CYRpalochka", + commandspacer: true + }, + "Ӄ": { + text: "\\cyrchar\\CYRKHK", + commandspacer: true + }, + "ӄ": { + text: "\\cyrchar\\cyrkhk", + commandspacer: true + }, + "Ӈ": { + text: "\\cyrchar\\CYRNHK", + commandspacer: true + }, + "ӈ": { + text: "\\cyrchar\\cyrnhk", + commandspacer: true + }, + "Ӌ": { + text: "\\cyrchar\\CYRCHLDSC", + commandspacer: true + }, + "ӌ": { + text: "\\cyrchar\\cyrchldsc", + commandspacer: true + }, + "Ӕ": { + text: "\\cyrchar\\CYRAE", + commandspacer: true + }, + "ӕ": { + text: "\\cyrchar\\cyrae", + commandspacer: true + }, + "Ә": { + text: "\\cyrchar\\CYRSCHWA", + commandspacer: true + }, + "ә": { + text: "\\cyrchar\\cyrschwa", + commandspacer: true + }, + "Ӡ": { + text: "\\cyrchar\\CYRABHDZE", + commandspacer: true + }, + "ӡ": { + text: "\\cyrchar\\cyrabhdze", + commandspacer: true + }, + "Ө": { + text: "\\cyrchar\\CYROTLD", + commandspacer: true + }, + "ө": { + text: "\\cyrchar\\cyrotld", + commandspacer: true + }, + "ࡱ": { + math: "\\\\backslash" + }, + "ᵃ": { + math: "^{a}", + text: "\\textsuperscript{a}" + }, + "ᵇ": { + math: "^{b}", + text: "\\textsuperscript{b}" + }, + "ᵈ": { + math: "^{d}", + text: "\\textsuperscript{d}" + }, + "ᵉ": { + math: "^{e}", + text: "\\textsuperscript{e}" + }, + "ᵍ": { + math: "^{g}", + text: "\\textsuperscript{g}" + }, + "ᵏ": { + math: "^{k}", + text: "\\textsuperscript{k}" + }, + "ᵐ": { + math: "^{m}", + text: "\\textsuperscript{m}" + }, + "ᵒ": { + math: "^{o}", + text: "\\textsuperscript{o}" + }, + "ᵖ": { + math: "^{p}", + text: "\\textsuperscript{p}" + }, + "ᵗ": { + math: "^{t}", + text: "\\textsuperscript{t}" + }, + "ᵘ": { + math: "^{u}", + text: "\\textsuperscript{u}" + }, + "ᵛ": { + math: "^{v}", + text: "\\textsuperscript{v}" + }, + "ᶜ": { + math: "^{c}", + text: "\\textsuperscript{c}" + }, + "ᶠ": { + math: "^{f}", + text: "\\textsuperscript{f}" + }, + "ᶻ": { + math: "^{z}", + text: "\\textsuperscript{z}" + }, + "Ḃ": { + text: "\\.B" + }, + "ḃ": { + text: "\\.b" + }, + "Ḅ": { + text: "\\d{B}" + }, + "ḅ": { + text: "\\d{b}" + }, + "Ḇ": { + text: "\\b{B}" + }, + "ḇ": { + text: "\\b{b}" + }, + "Ḋ": { + text: "\\.D" + }, + "ḋ": { + text: "\\.d" + }, + "Ḍ": { + text: "\\d{D}" + }, + "ḍ": { + text: "\\d{d}" + }, + "Ḏ": { + text: "\\b{D}" + }, + "ḏ": { + text: "\\b{d}" + }, + "Ḑ": { + text: "\\c{D}" + }, + "ḑ": { + text: "\\c{d}" + }, + "Ḝ": { + text: "\\c{\\u{E}}" + }, + "ḝ": { + text: "\\c{\\u{e}}" + }, + "Ḟ": { + text: "\\.F" + }, + "ḟ": { + text: "\\.f" + }, + "Ḡ": { + text: "\\=G" + }, + "ḡ": { + text: "\\=g" + }, + "Ḣ": { + text: "\\.H" + }, + "ḣ": { + text: "\\.h" + }, + "Ḥ": { + text: "\\d{H}" + }, + "ḥ": { + text: "\\d{h}" + }, + "Ḧ": { + text: "\\\"H" + }, + "ḧ": { + text: "\\\"h" + }, + "Ḩ": { + text: "\\c{H}" + }, + "ḩ": { + text: "\\c{h}" + }, + "Ḱ": { + text: "\\'K" + }, + "ḱ": { + text: "\\'k" + }, + "Ḳ": { + text: "\\d{K}" + }, + "ḳ": { + text: "\\d{k}" + }, + "Ḵ": { + text: "\\b{K}" + }, + "ḵ": { + text: "\\b{k}" + }, + "Ḷ": { + text: "\\d{L}" + }, + "ḷ": { + text: "\\d{l}" + }, + "Ḻ": { + text: "\\b{L}" + }, + "ḻ": { + text: "\\b{l}" + }, + "Ḿ": { + text: "\\'M" + }, + "ḿ": { + text: "\\'m" + }, + "Ṁ": { + text: "\\.M" + }, + "ṁ": { + text: "\\.m" + }, + "Ṃ": { + text: "\\d{M}" + }, + "ṃ": { + text: "\\d{m}" + }, + "Ṅ": { + text: "\\.N" + }, + "ṅ": { + text: "\\.n" + }, + "Ṇ": { + text: "\\d{N}" + }, + "ṇ": { + text: "\\d{n}" + }, + "Ṉ": { + text: "\\b{N}" + }, + "ṉ": { + text: "\\b{n}" + }, + "Ṕ": { + text: "\\'P" + }, + "ṕ": { + text: "\\'p" + }, + "Ṗ": { + text: "\\.P" + }, + "ṗ": { + text: "\\.p" + }, + "Ṙ": { + text: "\\.R" + }, + "ṙ": { + text: "\\.r" + }, + "Ṛ": { + text: "\\d{R}" + }, + "ṛ": { + text: "\\d{r}" + }, + "Ṟ": { + text: "\\b{R}" + }, + "ṟ": { + text: "\\b{r}" + }, + "Ṡ": { + text: "\\.S" + }, + "ṡ": { + text: "\\.s" + }, + "Ṣ": { + text: "\\d{S}" + }, + "ṣ": { + text: "\\d{s}" + }, + "Ṫ": { + text: "\\.T" + }, + "ṫ": { + text: "\\.t" + }, + "Ṭ": { + text: "\\d{T}" + }, + "ṭ": { + text: "\\d{t}" + }, + "Ṯ": { + text: "\\b{T}" + }, + "ṯ": { + text: "\\b{t}" + }, + "Ṽ": { + text: "\\~V" + }, + "ṽ": { + text: "\\~v" + }, + "Ṿ": { + text: "\\d{V}" + }, + "ṿ": { + text: "\\d{v}" + }, + "Ẁ": { + text: "\\`W" + }, + "ẁ": { + text: "\\`w" + }, + "Ẃ": { + text: "\\'W" + }, + "ẃ": { + text: "\\'w" + }, + "Ẅ": { + text: "\\\"W" + }, + "ẅ": { + text: "\\\"w" + }, + "Ẇ": { + text: "\\.W" + }, + "ẇ": { + text: "\\.w" + }, + "Ẉ": { + text: "\\d{W}" + }, + "ẉ": { + text: "\\d{w}" + }, + "Ẋ": { + text: "\\.X" + }, + "ẋ": { + text: "\\.x" + }, + "Ẍ": { + text: "\\\"X" + }, + "ẍ": { + text: "\\\"x" + }, + "Ẏ": { + text: "\\.Y" + }, + "ẏ": { + text: "\\.y" + }, + "Ẑ": { + text: "\\^Z" + }, + "ẑ": { + text: "\\^z" + }, + "Ẓ": { + text: "\\d{Z}" + }, + "ẓ": { + text: "\\d{z}" + }, + "Ẕ": { + text: "\\b{Z}" + }, + "ẕ": { + text: "\\b{z}" + }, + "ẖ": { + text: "\\b{h}" + }, + "ẗ": { + text: "\\\"t" + }, + "ẘ": { + text: "\\r{w}" + }, + "ẙ": { + text: "\\r{y}" + }, + "Ạ": { + text: "\\d{A}" + }, + "ạ": { + text: "\\d{a}" + }, + "Ẹ": { + text: "\\d{E}" + }, + "ẹ": { + text: "\\d{e}" + }, + "Ẽ": { + text: "\\~E" + }, + "ẽ": { + text: "\\~e" + }, + "Ị": { + text: "\\d{I}" + }, + "ị": { + text: "\\d{i}" + }, + "Ọ": { + text: "\\d{O}" + }, + "ọ": { + text: "\\d{o}" + }, + "Ụ": { + text: "\\d{U}" + }, + "ụ": { + text: "\\d{u}" + }, + "Ỳ": { + text: "\\`Y" + }, + "ỳ": { + text: "\\`y" + }, + "Ỵ": { + text: "\\d{Y}" + }, + "ỵ": { + text: "\\d{y}" + }, + "Ỹ": { + text: "\\~Y" + }, + "ỹ": { + text: "\\~y" + }, + " ": { + text: " ", + space: true + }, + " ": { + math: "\\quad", + space: true + }, + " ": { + text: "\\hspace{0.6em}", + space: true + }, + " ": { + math: "\\quad", + space: true, + text: "\\hspace{1em}" + }, + " ": { + text: "\\;", + space: true + }, + " ": { + text: "\\hspace{0.25em}", + space: true + }, + " ": { + text: "\\hspace{0.166em}", + space: true + }, + " ": { + text: "\\hphantom{0}", + space: true + }, + " ": { + text: "\\hphantom{,}", + space: true + }, + " ": { + text: "\\,", + space: true + }, + " ": { + math: "\\mkern1mu", + space: true + }, + "​": { + text: "\\mbox", + commandspacer: true, + space: true + }, + "‌": { + text: "{\\aftergroup\\ignorespaces}" + }, + "‐": { + text: "-" + }, + "‑": { + text: "-" + }, + "‒": { + text: "-" + }, + "–": { + text: "\\textendash", + commandspacer: true + }, + "—": { + text: "\\textemdash", + commandspacer: true + }, + "―": { + math: "\\horizbar", + text: "\\rule{1em}{1pt}" + }, + "‖": { + math: "\\Vert" + }, + "‗": { + math: "\\twolowline" + }, + "‘": { + text: "`" + }, + "’": { + text: "'" + }, + "‚": { + text: "," + }, + "‛": { + math: "\\Elzreapos" + }, + "“": { + text: "``" + }, + "”": { + text: "''" + }, + "„": { + text: ",," + }, + "‟": { + text: "\\quotedblbase", + commandspacer: true + }, + "†": { + math: "\\dagger", + text: "\\textdagger", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "‡": { + math: "\\ddagger", + text: "\\textdaggerdbl", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "•": { + math: "\\bullet", + text: "\\textbullet", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "‣": { + text: ">" + }, + "․": { + text: "." + }, + "‥": { + math: "\\enleadertwodots", + text: ".." + }, + "…": { + math: "\\ldots", + text: "\\ldots", + commandspacer: true + }, + "‧": { + text: "-" + }, + " ": { + text: " ", + space: true + }, + "‰": { + text: "\\textperthousand", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "‱": { + text: "\\textpertenthousand", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "′": { + math: "{'}" + }, + "″": { + math: "{''}" + }, + "‴": { + math: "{'''}" + }, + "‵": { + math: "\\backprime" + }, + "‶": { + math: "\\backdprime" + }, + "‷": { + math: "\\backtrprime" + }, + "‸": { + math: "\\caretinsert" + }, + "‹": { + text: "\\guilsinglleft", + commandspacer: true + }, + "›": { + text: "\\guilsinglright", + commandspacer: true + }, + "‼": { + math: "\\Exclam" + }, + "‾": { + text: "-" + }, + "⁃": { + math: "\\hyphenbullet" + }, + "⁄": { + math: "\\fracslash" + }, + "⁇": { + math: "\\Question" + }, + "⁈": { + text: "?!" + }, + "⁉": { + text: "!?" + }, + "⁊": { + text: "7" + }, + "⁐": { + math: "\\closure" + }, + "⁗": { + math: "''''" + }, + " ": { + math: "\\:", + space: true, + text: "\\:" + }, + "⁠": { + text: "\\nolinebreak", + commandspacer: true + }, + "⁰": { + math: "^{0}" + }, + "ⁱ": { + math: "^{i}", + text: "\\textsuperscript{i}" + }, + "⁴": { + math: "^{4}" + }, + "⁵": { + math: "^{5}" + }, + "⁶": { + math: "^{6}" + }, + "⁷": { + math: "^{7}" + }, + "⁸": { + math: "^{8}" + }, + "⁹": { + math: "^{9}" + }, + "⁺": { + math: "^{+}" + }, + "⁻": { + math: "^{-}" + }, + "⁼": { + math: "^{=}" + }, + "⁽": { + math: "^{(}" + }, + "⁾": { + math: "^{)}" + }, + "ⁿ": { + math: "^{n}", + text: "\\textsuperscript{n}" + }, + "₀": { + math: "_{0}" + }, + "₁": { + math: "_{1}" + }, + "₂": { + math: "_{2}" + }, + "₃": { + math: "_{3}" + }, + "₄": { + math: "_{4}" + }, + "₅": { + math: "_{5}" + }, + "₆": { + math: "_{6}" + }, + "₇": { + math: "_{7}" + }, + "₈": { + math: "_{8}" + }, + "₉": { + math: "_{9}" + }, + "₊": { + math: "_{+}" + }, + "₋": { + math: "_{-}" + }, + "₌": { + math: "_{=}" + }, + "₍": { + math: "_{(}" + }, + "₎": { + math: "_{)}" + }, + "ₐ": { + math: "_{a}", + text: "\\textsubscript{a}" + }, + "ₑ": { + math: "_{e}", + text: "\\textsubscript{e}" + }, + "ₒ": { + math: "_{o}", + text: "\\textsubscript{o}" + }, + "ₓ": { + math: "_{x}", + text: "\\textsubscript{x}" + }, + "ₔ": { + text: "\\textsubscript{\\textschwa}", + textpackages: [ + "tipa" + ] + }, + "ₕ": { + math: "_{h}", + text: "\\textsubscript{h}" + }, + "ₖ": { + math: "_{k}", + text: "\\textsubscript{k}" + }, + "ₗ": { + math: "_{l}", + text: "\\textsubscript{l}" + }, + "ₘ": { + math: "_{m}", + text: "\\textsubscript{m}" + }, + "ₙ": { + math: "_{n}", + text: "\\textsubscript{n}" + }, + "ₚ": { + math: "_{p}", + text: "\\textsubscript{p}" + }, + "ₛ": { + math: "_{s}", + text: "\\textsubscript{s}" + }, + "ₜ": { + math: "_{t}", + text: "\\textsubscript{t}" + }, + "₧": { + text: "\\ensuremath{\\Elzpes}" + }, + "€": { + math: "\\euro", + text: "\\texteuro", + commandspacer: true + }, + "⃐": { + math: "\\lvec" + }, + "⃑": { + math: "\\rightharpoonup", + mathpackages: [ + "amsmath", + "amssymb" + ] + }, + "⃒": { + math: "\\vertoverlay" + }, + "⃖": { + math: "\\LVec" + }, + "⃗": { + math: "\\vec" + }, + "⃛": { + math: "\\dddot" + }, + "⃜": { + math: "\\ddddot" + }, + "⃝": { + math: "\\enclosecircle" + }, + "⃞": { + math: "\\enclosesquare" + }, + "⃟": { + math: "\\enclosediamond" + }, + "⃡": { + math: "\\overleftrightarrow" + }, + "⃤": { + math: "\\enclosetriangle" + }, + "⃧": { + math: "\\annuity" + }, + "⃨": { + math: "\\threeunderdot" + }, + "⃩": { + math: "\\widebridgeabove" + }, + "⃬": { + math: "\\underrightharpoondown" + }, + "⃭": { + math: "\\underleftharpoondown" + }, + "⃮": { + math: "\\underleftarrow" + }, + "⃯": { + math: "\\underrightarrow" + }, + "⃰": { + math: "\\asteraccent" + }, + "℀": { + text: "a/c" + }, + "℁": { + text: "a/s" + }, + "ℂ": { + math: "\\mathbb{C}" + }, + "℃": { + text: "\\textcelsius", + commandspacer: true + }, + "℅": { + text: "c/o" + }, + "℆": { + text: "c/u" + }, + "ℇ": { + math: "\\Euler" + }, + "℉": { + text: "F" + }, + "ℊ": { + math: "\\mathscr{g}" + }, + "ℋ": { + math: "\\mathscr{H}" + }, + "ℌ": { + math: "\\mathfrak{H}" + }, + "ℍ": { + math: "\\mathbb{H}" + }, + "ℎ": { + math: "\\Planckconst" + }, + "ℏ": { + math: "\\hslash" + }, + "ℐ": { + math: "\\mathscr{I}" + }, + "ℑ": { + math: "\\mathfrak{I}" + }, + "ℒ": { + math: "\\mathscr{L}" + }, + "ℓ": { + math: "\\mathscr{l}" + }, + "ℕ": { + math: "\\mathbb{N}" + }, + "№": { + text: "\\cyrchar\\textnumero", + commandspacer: true + }, + "℗": { + text: "\\textcircledP", + commandspacer: true + }, + "℘": { + math: "\\wp" + }, + "ℙ": { + math: "\\mathbb{P}" + }, + "ℚ": { + math: "\\mathbb{Q}" + }, + "ℛ": { + math: "\\mathscr{R}" + }, + "ℜ": { + math: "\\mathfrak{R}" + }, + "ℝ": { + math: "\\mathbb{R}" + }, + "℞": { + math: "\\Elzxrat" + }, + "℠": { + text: "\\textservicemark", + commandspacer: true + }, + "℡": { + text: "TEL" + }, + "™": { + text: "\\texttrademark", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "ℤ": { + math: "\\mathbb{Z}" + }, + "Ω": { + math: "\\Omega" + }, + "℧": { + math: "\\mho" + }, + "ℨ": { + math: "\\mathfrak{Z}" + }, + "℩": { + text: "\\textriota", + commandspacer: true + }, + "K": { + text: "K" + }, + "Å": { + math: "\\Angstroem", + text: "\\AA", + commandspacer: true + }, + "ℬ": { + math: "\\mathscr{B}" + }, + "ℭ": { + math: "\\mathfrak{C}" + }, + "℮": { + text: "\\textestimated", + commandspacer: true + }, + "ℯ": { + math: "\\mathscr{e}" + }, + "ℰ": { + math: "\\mathscr{E}" + }, + "ℱ": { + math: "\\mathscr{F}" + }, + "Ⅎ": { + math: "\\Finv" + }, + "ℳ": { + math: "\\mathscr{M}" + }, + "ℴ": { + math: "\\mathscr{o}" + }, + "ℵ": { + math: "\\aleph" + }, + "ℶ": { + math: "\\beth" + }, + "ℷ": { + math: "\\gimel" + }, + "ℸ": { + math: "\\daleth" + }, + "ℼ": { + math: "\\mathbb{\\pi}" + }, + "ℽ": { + math: "\\mathbb{\\gamma}" + }, + "ℾ": { + math: "\\mathbb{\\Gamma}" + }, + "ℿ": { + math: "\\mathbb{\\Pi}" + }, + "⅀": { + math: "\\mathbb{\\Sigma}" + }, + "⅁": { + math: "\\Game" + }, + "⅂": { + math: "\\sansLturned" + }, + "⅃": { + math: "\\sansLmirrored" + }, + "⅄": { + math: "\\Yup" + }, + "ⅅ": { + math: "\\CapitalDifferentialD" + }, + "ⅆ": { + math: "\\DifferentialD" + }, + "ⅇ": { + math: "\\ExponetialE" + }, + "ⅈ": { + math: "\\ComplexI" + }, + "ⅉ": { + math: "\\ComplexJ" + }, + "⅊": { + math: "\\PropertyLine" + }, + "⅋": { + math: "\\invamp" + }, + "⅐": { + math: "\\frac{1}{7}" + }, + "⅑": { + math: "\\frac{1}{9}" + }, + "⅒": { + math: "\\frac{1}{10}" + }, + "⅓": { + math: "\\frac{1}{3}" + }, + "⅔": { + math: "\\frac{2}{3}" + }, + "⅕": { + math: "\\frac{1}{5}" + }, + "⅖": { + math: "\\frac{2}{5}" + }, + "⅗": { + math: "\\frac{3}{5}" + }, + "⅘": { + math: "\\frac{4}{5}" + }, + "⅙": { + math: "\\frac{1}{6}" + }, + "⅚": { + math: "\\frac{5}{6}" + }, + "⅛": { + math: "\\frac{1}{8}" + }, + "⅜": { + math: "\\frac{3}{8}" + }, + "⅝": { + math: "\\frac{5}{8}" + }, + "⅞": { + math: "\\frac{7}{8}" + }, + "⅟": { + math: "\\frac{1}" + }, + "Ⅰ": { + text: "I" + }, + "Ⅱ": { + text: "II" + }, + "Ⅲ": { + text: "III" + }, + "Ⅳ": { + text: "IV" + }, + "Ⅴ": { + text: "V" + }, + "Ⅵ": { + text: "VI" + }, + "Ⅶ": { + text: "VII" + }, + "Ⅷ": { + text: "VIII" + }, + "Ⅸ": { + text: "IX" + }, + "Ⅹ": { + text: "X" + }, + "Ⅺ": { + text: "XI" + }, + "Ⅻ": { + text: "XII" + }, + "Ⅼ": { + text: "L" + }, + "Ⅽ": { + text: "C" + }, + "Ⅾ": { + text: "D" + }, + "Ⅿ": { + text: "M" + }, + "ⅰ": { + text: "i" + }, + "ⅱ": { + text: "ii" + }, + "ⅲ": { + text: "iii" + }, + "ⅳ": { + text: "iv" + }, + "ⅴ": { + text: "v" + }, + "ⅵ": { + text: "vi" + }, + "ⅶ": { + text: "vii" + }, + "ⅷ": { + text: "viii" + }, + "ⅸ": { + text: "ix" + }, + "ⅹ": { + text: "x" + }, + "ⅺ": { + text: "xi" + }, + "ⅻ": { + text: "xii" + }, + "ⅼ": { + text: "l" + }, + "ⅽ": { + text: "c" + }, + "ⅾ": { + text: "d" + }, + "ⅿ": { + text: "m" + }, + "↉": { + math: "\\frac{0}{3}" + }, + "←": { + math: "\\leftarrow" + }, + "↑": { + math: "\\uparrow" + }, + "→": { + math: "\\rightarrow", + text: "\\textrightarrow", + commandspacer: true, + textpackages: [ + "textcomp" + ] + }, + "↓": { + math: "\\downarrow" + }, + "↔": { + math: "\\leftrightarrow" + }, + "↕": { + math: "\\updownarrow" + }, + "↖": { + math: "\\nwarrow" + }, + "↗": { + math: "\\nearrow" + }, + "↘": { + math: "\\searrow" + }, + "↙": { + math: "\\swarrow" + }, + "↚": { + math: "\\nleftarrow" + }, + "↛": { + math: "\\nrightarrow" + }, + "↜": { + math: "\\arrowwaveleft" + }, + "↝": { + math: "\\arrowwaveright" + }, + "↞": { + math: "\\twoheadleftarrow" + }, + "↟": { + math: "\\twoheaduparrow" + }, + "↠": { + math: "\\twoheadrightarrow" + }, + "↡": { + math: "\\twoheaddownarrow" + }, + "↢": { + math: "\\leftarrowtail" + }, + "↣": { + math: "\\rightarrowtail" + }, + "↤": { + math: "\\mapsfrom" + }, + "↥": { + math: "\\MapsUp" + }, + "↦": { + math: "\\mapsto" + }, + "↧": { + math: "\\MapsDown" + }, + "↨": { + math: "\\updownarrowbar" + }, + "↩": { + math: "\\hookleftarrow" + }, + "↪": { + math: "\\hookrightarrow" + }, + "↫": { + math: "\\looparrowleft" + }, + "↬": { + math: "\\looparrowright" + }, + "↭": { + math: "\\leftrightsquigarrow" + }, + "↮": { + math: "\\nleftrightarrow" + }, + "↯": { + math: "\\lightning" + }, + "↰": { + math: "\\Lsh" + }, + "↱": { + math: "\\Rsh" + }, + "↲": { + math: "\\dlsh" + }, + "↳": { + text: "\\reflectbox{\\carriagereturn}", + textpackages: [ + "graphics", + "unicode-math" + ] + }, + "↴": { + math: "\\linefeed" + }, + "↵": { + math: "\\carriagereturn" + }, + "↶": { + math: "\\curvearrowleft" + }, + "↷": { + math: "\\curvearrowright" + }, + "↸": { + math: "\\barovernorthwestarrow" + }, + "↹": { + math: "\\barleftarrowrightarrowba" + }, + "↺": { + math: "\\circlearrowleft" + }, + "↻": { + math: "\\circlearrowright" + }, + "↼": { + math: "\\leftharpoonup" + }, + "↽": { + math: "\\leftharpoondown" + }, + "↾": { + math: "\\upharpoonright" + }, + "↿": { + math: "\\upharpoonleft" + }, + "⇀": { + math: "\\rightharpoonup", + mathpackages: [ + "amsmath", + "amssymb" + ] + }, + "⇁": { + math: "\\rightharpoondown" + }, + "⇂": { + math: "\\downharpoonright" + }, + "⇃": { + math: "\\downharpoonleft" + }, + "⇄": { + math: "\\rightleftarrows" + }, + "⇅": { + math: "\\dblarrowupdown" + }, + "⇆": { + math: "\\leftrightarrows" + }, + "⇇": { + math: "\\leftleftarrows" + }, + "⇈": { + math: "\\upuparrows" + }, + "⇉": { + math: "\\rightrightarrows" + }, + "⇊": { + math: "\\downdownarrows" + }, + "⇋": { + math: "\\leftrightharpoons" + }, + "⇌": { + math: "\\rightleftharpoons" + }, + "⇍": { + math: "\\nLeftarrow" + }, + "⇎": { + math: "\\nLeftrightarrow" + }, + "⇏": { + math: "\\nRightarrow" + }, + "⇐": { + math: "\\Leftarrow" + }, + "⇑": { + math: "\\Uparrow" + }, + "⇒": { + math: "\\Rightarrow" + }, + "⇓": { + math: "\\Downarrow" + }, + "⇔": { + math: "\\Leftrightarrow" + }, + "⇕": { + math: "\\Updownarrow" + }, + "⇖": { + math: "\\Nwarrow" + }, + "⇗": { + math: "\\Nearrow" + }, + "⇘": { + math: "\\Searrow" + }, + "⇙": { + math: "\\Swarrow" + }, + "⇚": { + math: "\\Lleftarrow" + }, + "⇛": { + math: "\\Rrightarrow" + }, + "⇜": { + math: "\\leftsquigarrow" + }, + "⇝": { + math: "\\rightsquigarrow" + }, + "⇞": { + math: "\\nHuparrow" + }, + "⇟": { + math: "\\nHdownarrow" + }, + "⇠": { + math: "\\dashleftarrow" + }, + "⇡": { + math: "\\updasharrow" + }, + "⇢": { + math: "\\dashrightarrow" + }, + "⇣": { + math: "\\downdasharrow" + }, + "⇤": { + math: "\\LeftArrowBar" + }, + "⇥": { + math: "\\RightArrowBar" + }, + "⇦": { + math: "\\leftwhitearrow" + }, + "⇧": { + math: "\\upwhitearrow" + }, + "⇨": { + math: "\\rightwhitearrow" + }, + "⇩": { + math: "\\downwhitearrow" + }, + "⇪": { + math: "\\whitearrowupfrombar" + }, + "⇴": { + math: "\\circleonrightarrow" + }, + "⇵": { + math: "\\DownArrowUpArrow" + }, + "⇶": { + math: "\\rightthreearrows" + }, + "⇷": { + math: "\\nvleftarrow" + }, + "⇸": { + math: "\\pfun" + }, + "⇹": { + math: "\\nvleftrightarrow" + }, + "⇺": { + math: "\\nVleftarrow" + }, + "⇻": { + math: "\\ffun" + }, + "⇼": { + math: "\\nVleftrightarrow" + }, + "⇽": { + math: "\\leftarrowtriangle" + }, + "⇾": { + math: "\\rightarrowtriangle" + }, + "⇿": { + math: "\\leftrightarrowtriangle" + }, + "∀": { + math: "\\forall" + }, + "∁": { + math: "\\complement" + }, + "∂": { + math: "\\partial" + }, + "∃": { + math: "\\exists" + }, + "∄": { + math: "\\nexists" + }, + "∅": { + math: "\\varnothing" + }, + "∆": { + math: "\\increment" + }, + "∇": { + math: "\\nabla" + }, + "∈": { + math: "\\in" + }, + "∉": { + math: "\\not\\in" + }, + "∊": { + math: "\\smallin" + }, + "∋": { + math: "\\ni" + }, + "∌": { + math: "\\not\\ni" + }, + "∍": { + math: "\\smallni" + }, + "∎": { + math: "\\QED" + }, + "∏": { + math: "\\prod" + }, + "∐": { + math: "\\coprod" + }, + "∑": { + math: "\\sum" + }, + "−": { + math: "-", + text: "-" + }, + "∓": { + math: "\\mp" + }, + "∔": { + math: "\\dotplus" + }, + "∕": { + text: "/" + }, + "∖": { + math: "\\setminus" + }, + "∗": { + math: "{_\\ast}" + }, + "∘": { + math: "\\circ" + }, + "∙": { + math: "\\bullet" + }, + "√": { + math: "\\surd" + }, + "∛": { + math: "\\sqrt[3]" + }, + "∜": { + math: "\\sqrt[4]" + }, + "∝": { + math: "\\propto" + }, + "∞": { + math: "\\infty" + }, + "∟": { + math: "\\rightangle" + }, + "∠": { + math: "\\angle" + }, + "∡": { + math: "\\measuredangle" + }, + "∢": { + math: "\\sphericalangle" + }, + "∣": { + math: "\\mid" + }, + "∤": { + math: "\\nmid" + }, + "∥": { + math: "\\parallel" + }, + "∦": { + math: "\\nparallel" + }, + "∧": { + math: "\\wedge" + }, + "∨": { + math: "\\vee" + }, + "∩": { + math: "\\cap" + }, + "∪": { + math: "\\cup" + }, + "∫": { + math: "\\int" + }, + "∬": { + math: "{\\int\\!\\int}" + }, + "∭": { + math: "{\\int\\!\\int\\!\\int}" + }, + "∮": { + math: "\\oint" + }, + "∯": { + math: "\\surfintegral" + }, + "∰": { + math: "\\volintegral" + }, + "∱": { + math: "\\clwintegral" + }, + "∲": { + math: "\\lcirclerightint", + mathpackages: [ + "MnSymbol" + ] + }, + "∳": { + math: "\\rcirclerightint", + mathpackages: [ + "MnSymbol" + ] + }, + "∴": { + math: "\\therefore" + }, + "∵": { + math: "\\because" + }, + "∶": { + math: ":" + }, + "∷": { + math: "\\Colon" + }, + "∸": { + math: "\\dotdiv", + mathpackages: [ + "mathabx" + ] + }, + "∹": { + math: "\\eqcolon" + }, + "∺": { + math: "\\mathbin{{:}\\!\\!{-}\\!\\!{:}}" + }, + "∻": { + math: "\\homothetic" + }, + "∼": { + math: "\\sim" + }, + "∽": { + math: "\\backsim" + }, + "∾": { + math: "\\lazysinv" + }, + "∿": { + math: "\\AC" + }, + "≀": { + math: "\\wr" + }, + "≁": { + math: "\\not\\sim" + }, + "≂": { + math: "\\texteqsim", + mathpackages: [ + "xecjk" + ] + }, + "≂̸": { + math: "\\NotEqualTilde" + }, + "≃": { + math: "\\simeq" + }, + "≄": { + math: "\\not\\simeq" + }, + "≅": { + math: "\\cong" + }, + "≆": { + math: "\\approxnotequal" + }, + "≇": { + math: "\\not\\cong" + }, + "≈": { + math: "\\approx" + }, + "≉": { + math: "\\not\\approx" + }, + "≊": { + math: "\\approxeq" + }, + "≋": { + math: "\\tildetrpl" + }, + "≋̸": { + math: "\\not\\apid" + }, + "≌": { + math: "\\allequal" + }, + "≍": { + math: "\\asymp" + }, + "≎": { + math: "\\Bumpeq" + }, + "≎̸": { + math: "\\NotHumpDownHump" + }, + "≏": { + math: "\\bumpeq" + }, + "≏̸": { + math: "\\NotHumpEqual" + }, + "≐": { + math: "\\doteq" + }, + "≐̸": { + math: "\\not\\doteq" + }, + "≑": { + math: "\\doteqdot" + }, + "≒": { + math: "\\fallingdotseq" + }, + "≓": { + math: "\\risingdotseq" + }, + "≔": { + math: "\\coloneq", + text: ":=" + }, + "≕": { + math: "=:" + }, + "≖": { + math: "\\eqcirc" + }, + "≗": { + math: "\\circeq" + }, + "≘": { + math: "\\arceq" + }, + "≙": { + math: "\\estimates" + }, + "≛": { + math: "\\starequal" + }, + "≜": { + math: "\\triangleq" + }, + "≝": { + math: "\\eqdef" + }, + "≞": { + math: "\\measeq" + }, + "≠": { + math: "\\neq" + }, + "≡": { + math: "\\equiv" + }, + "≢": { + math: "\\not\\equiv" + }, + "≣": { + math: "\\Equiv" + }, + "≤": { + math: "\\leq" + }, + "≥": { + math: "\\geq" + }, + "≦": { + math: "\\leqq" + }, + "≧": { + math: "\\geqq" + }, + "≨": { + math: "\\lneqq" + }, + "≨︀": { + math: "\\lvertneqq" + }, + "≩": { + math: "\\gneqq" + }, + "≩︀": { + math: "\\gvertneqq" + }, + "≪": { + math: "\\ll" + }, + "≪̸": { + math: "\\NotLessLess" + }, + "≫": { + math: "\\gg" + }, + "≫̸": { + math: "\\NotGreaterGreater" + }, + "≬": { + math: "\\between" + }, + "≭": { + math: "{\\not\\kern-0.3em\\times}" + }, + "≮": { + math: "\\not<" + }, + "≯": { + math: "\\not>" + }, + "≰": { + math: "\\not\\leq" + }, + "≱": { + math: "\\not\\geq" + }, + "≲": { + math: "\\lessequivlnt" + }, + "≳": { + math: "\\greaterequivlnt" + }, + "≶": { + math: "\\lessgtr" + }, + "≷": { + math: "\\gtrless" + }, + "≸": { + math: "\\notlessgreater" + }, + "≹": { + math: "\\notgreaterless" + }, + "≺": { + math: "\\prec" + }, + "≻": { + math: "\\succ" + }, + "≼": { + math: "\\preccurlyeq" + }, + "≽": { + math: "\\succcurlyeq" + }, + "≾": { + math: "\\precapprox" + }, + "≾̸": { + math: "\\NotPrecedesTilde" + }, + "≿": { + math: "\\succapprox" + }, + "≿̸": { + math: "\\NotSucceedsTilde" + }, + "⊀": { + math: "\\not\\prec" + }, + "⊁": { + math: "\\not\\succ" + }, + "⊂": { + math: "\\subset" + }, + "⊃": { + math: "\\supset" + }, + "⊄": { + math: "\\not\\subset" + }, + "⊅": { + math: "\\not\\supset" + }, + "⊆": { + math: "\\subseteq" + }, + "⊇": { + math: "\\supseteq" + }, + "⊈": { + math: "\\not\\subseteq" + }, + "⊉": { + math: "\\not\\supseteq" + }, + "⊊": { + math: "\\subsetneq" + }, + "⊊︀": { + math: "\\varsubsetneqq" + }, + "⊋": { + math: "\\supsetneq" + }, + "⊋︀": { + math: "\\varsupsetneq" + }, + "⊌": { + math: "\\cupleftarrow" + }, + "⊍": { + math: "\\cupdot" + }, + "⊎": { + math: "\\uplus" + }, + "⊏": { + math: "\\sqsubset" + }, + "⊏̸": { + math: "\\NotSquareSubset" + }, + "⊐": { + math: "\\sqsupset" + }, + "⊐̸": { + math: "\\NotSquareSuperset" + }, + "⊑": { + math: "\\sqsubseteq" + }, + "⊒": { + math: "\\sqsupseteq" + }, + "⊓": { + math: "\\sqcap" + }, + "⊔": { + math: "\\sqcup" + }, + "⊕": { + math: "\\oplus" + }, + "⊖": { + math: "\\ominus" + }, + "⊗": { + math: "\\otimes" + }, + "⊘": { + math: "\\oslash" + }, + "⊙": { + math: "\\odot" + }, + "⊚": { + math: "\\circledcirc" + }, + "⊛": { + math: "\\circledast" + }, + "⊜": { + math: "\\circledequal" + }, + "⊝": { + math: "\\circleddash" + }, + "⊞": { + math: "\\boxplus" + }, + "⊟": { + math: "\\boxminus" + }, + "⊠": { + math: "\\boxtimes" + }, + "⊡": { + math: "\\boxdot" + }, + "⊢": { + math: "\\vdash" + }, + "⊣": { + math: "\\dashv" + }, + "⊤": { + math: "\\top" + }, + "⊥": { + math: "\\perp" + }, + "⊦": { + math: "\\assert" + }, + "⊧": { + math: "\\truestate" + }, + "⊨": { + math: "\\forcesextra" + }, + "⊩": { + math: "\\Vdash" + }, + "⊪": { + math: "\\Vvdash" + }, + "⊫": { + math: "\\VDash" + }, + "⊬": { + math: "\\nvdash" + }, + "⊭": { + math: "\\nvDash" + }, + "⊮": { + math: "\\nVdash" + }, + "⊯": { + math: "\\nVDash" + }, + "⊰": { + math: "\\prurel" + }, + "⊱": { + math: "\\scurel" + }, + "⊲": { + math: "\\vartriangleleft" + }, + "⊳": { + math: "\\vartriangleright" + }, + "⊴": { + math: "\\trianglelefteq" + }, + "⊵": { + math: "\\trianglerighteq" + }, + "⊶": { + math: "\\original" + }, + "⊷": { + math: "\\image" + }, + "⊸": { + math: "\\multimap" + }, + "⊹": { + math: "\\hermitconjmatrix" + }, + "⊺": { + math: "\\intercal" + }, + "⊻": { + math: "\\veebar" + }, + "⊼": { + math: "\\barwedge" + }, + "⊽": { + math: "\\barvee" + }, + "⊾": { + math: "\\rightanglearc" + }, + "⊿": { + math: "\\varlrtriangle" + }, + "⋂": { + math: "\\bigcap" + }, + "⋃": { + math: "\\bigcup" + }, + "⋄": { + math: "\\diamond" + }, + "⋅": { + math: "\\cdot" + }, + "⋆": { + math: "\\star" + }, + "⋇": { + math: "\\divideontimes" + }, + "⋈": { + math: "\\bowtie" + }, + "⋉": { + math: "\\ltimes" + }, + "⋊": { + math: "\\rtimes" + }, + "⋋": { + math: "\\leftthreetimes" + }, + "⋌": { + math: "\\rightthreetimes" + }, + "⋍": { + math: "\\backsimeq" + }, + "⋎": { + math: "\\curlyvee" + }, + "⋏": { + math: "\\curlywedge" + }, + "⋐": { + math: "\\Subset" + }, + "⋑": { + math: "\\Supset" + }, + "⋒": { + math: "\\Cap" + }, + "⋓": { + math: "\\Cup" + }, + "⋔": { + math: "\\pitchfork" + }, + "⋕": { + math: "\\hash" + }, + "⋖": { + math: "\\lessdot" + }, + "⋗": { + math: "\\gtrdot" + }, + "⋘": { + math: "\\verymuchless" + }, + "⋙": { + math: "\\verymuchgreater" + }, + "⋚": { + math: "\\lesseqgtr" + }, + "⋛": { + math: "\\gtreqless" + }, + "⋜": { + math: "\\eqless" + }, + "⋝": { + math: "\\eqgtr" + }, + "⋞": { + math: "\\curlyeqprec" + }, + "⋟": { + math: "\\curlyeqsucc" + }, + "⋠": { + math: "\\npreceq" + }, + "⋡": { + math: "\\nsucceq" + }, + "⋢": { + math: "\\not\\sqsubseteq" + }, + "⋣": { + math: "\\not\\sqsupseteq" + }, + "⋤": { + math: "\\sqsubsetneq" + }, + "⋥": { + math: "\\Elzsqspne" + }, + "⋦": { + math: "\\lnsim" + }, + "⋧": { + math: "\\gnsim" + }, + "⋨": { + math: "\\precedesnotsimilar" + }, + "⋩": { + math: "\\succnsim" + }, + "⋪": { + math: "\\ntriangleleft" + }, + "⋫": { + math: "\\ntriangleright" + }, + "⋬": { + math: "\\ntrianglelefteq" + }, + "⋭": { + math: "\\ntrianglerighteq" + }, + "⋮": { + math: "\\vdots" + }, + "⋯": { + math: "\\cdots" + }, + "⋰": { + math: "\\upslopeellipsis" + }, + "⋱": { + math: "\\downslopeellipsis" + }, + "⋲": { + math: "\\disin" + }, + "⋳": { + math: "\\varisins" + }, + "⋴": { + math: "\\isins" + }, + "⋵": { + math: "\\isindot" + }, + "⋶": { + math: "\\barin" + }, + "⋷": { + math: "\\isinobar" + }, + "⋸": { + math: "\\isinvb" + }, + "⋹": { + math: "\\isinE" + }, + "⋺": { + math: "\\nisd" + }, + "⋻": { + math: "\\varnis" + }, + "⋼": { + math: "\\nis" + }, + "⋽": { + math: "\\varniobar" + }, + "⋾": { + math: "\\niobar" + }, + "⋿": { + math: "\\bagmember" + }, + "⌀": { + math: "\\diameter" + }, + "⌂": { + math: "\\house" + }, + "⌅": { + math: "\\varbarwedge", + text: "\\barwedge", + commandspacer: true + }, + "⌆": { + math: "\\perspcorrespond" + }, + "⌈": { + math: "\\lceil" + }, + "⌉": { + math: "\\rceil" + }, + "⌊": { + math: "\\lfloor" + }, + "⌋": { + math: "\\rfloor" + }, + "⌐": { + math: "\\invneg" + }, + "⌑": { + math: "\\wasylozenge" + }, + "⌒": { + math: "\\profline" + }, + "⌓": { + math: "\\profsurf" + }, + "⌕": { + math: "\\recorder" + }, + "⌖": { + math: "{\\mathchar\"2208}" + }, + "⌗": { + math: "\\viewdata" + }, + "⌙": { + math: "\\turnednot" + }, + "⌜": { + math: "\\ulcorner" + }, + "⌝": { + math: "\\urcorner" + }, + "⌞": { + math: "\\llcorner" + }, + "⌟": { + math: "\\lrcorner" + }, + "⌠": { + math: "\\inttop" + }, + "⌡": { + math: "\\intbottom" + }, + "⌢": { + math: "\\frown" + }, + "⌣": { + math: "\\smile" + }, + "〈": { + math: "\\langle" + }, + "〉": { + math: "\\rangle" + }, + "⌬": { + math: "\\varhexagonlrbonds" + }, + "⌲": { + math: "\\conictaper" + }, + "⌶": { + math: "\\topbot" + }, + "⌹": { + math: "\\APLinv" + }, + "⌿": { + math: "\\notslash" + }, + "⍀": { + math: "\\notbackslash" + }, + "⍇": { + math: "\\APLleftarrowbox" + }, + "⍈": { + math: "\\APLrightarrowbox" + }, + "⍉": { + math: "\\invdiameter" + }, + "⍐": { + math: "\\APLuparrowbox" + }, + "⍓": { + math: "\\APLboxupcaret" + }, + "⍗": { + math: "\\APLdownarrowbox" + }, + "⍝": { + math: "\\APLcomment" + }, + "⍞": { + math: "\\APLinput" + }, + "⍟": { + math: "\\APLlog" + }, + "⍰": { + math: "\\APLboxquestion" + }, + "⍼": { + math: "\\rangledownzigzagarrow" + }, + "⎔": { + math: "\\hexagon" + }, + "⎛": { + math: "\\lparenuend" + }, + "⎜": { + math: "\\lparenextender" + }, + "⎝": { + math: "\\lparenlend" + }, + "⎞": { + math: "\\rparenuend" + }, + "⎟": { + math: "\\rparenextender" + }, + "⎠": { + math: "\\rparenlend" + }, + "⎡": { + math: "\\lbrackuend" + }, + "⎢": { + math: "\\lbrackextender" + }, + "⎣": { + math: "\\Elzdlcorn" + }, + "⎤": { + math: "\\rbrackuend" + }, + "⎥": { + math: "\\rbrackextender" + }, + "⎦": { + math: "\\rbracklend" + }, + "⎧": { + math: "\\lbraceuend" + }, + "⎨": { + math: "\\lbracemid" + }, + "⎩": { + math: "\\lbracelend" + }, + "⎪": { + math: "\\vbraceextender" + }, + "⎫": { + math: "\\rbraceuend" + }, + "⎬": { + math: "\\rbracemid" + }, + "⎭": { + math: "\\rbracelend" + }, + "⎮": { + math: "\\intextender" + }, + "⎯": { + math: "\\harrowextender" + }, + "⎰": { + math: "\\lmoustache" + }, + "⎱": { + math: "\\rmoustache" + }, + "⎲": { + math: "\\sumtop" + }, + "⎳": { + math: "\\sumbottom" + }, + "⎴": { + math: "\\overbracket" + }, + "⎵": { + math: "\\underbracket" + }, + "⎶": { + math: "\\bbrktbrk" + }, + "⎷": { + math: "\\sqrtbottom" + }, + "⎸": { + math: "\\lvboxline" + }, + "⎹": { + math: "\\rvboxline" + }, + "⏎": { + math: "\\varcarriagereturn" + }, + "⏜": { + math: "\\overparen" + }, + "⏝": { + math: "\\underparen" + }, + "⏞": { + math: "\\overbrace" + }, + "⏟": { + math: "\\underbrace" + }, + "⏠": { + math: "\\obrbrak" + }, + "⏡": { + math: "\\ubrbrak" + }, + "⏢": { + math: "\\trapezium" + }, + "⏣": { + math: "\\benzenr" + }, + "⏤": { + math: "\\strns" + }, + "⏥": { + math: "\\fltns" + }, + "⏦": { + math: "\\accurrent" + }, + "⏧": { + math: "\\elinters" + }, + "␀": { + text: "NUL" + }, + "␁": { + text: "SOH" + }, + "␂": { + text: "STX" + }, + "␃": { + text: "ETX" + }, + "␄": { + text: "EOT" + }, + "␅": { + text: "ENQ" + }, + "␆": { + text: "ACK" + }, + "␇": { + text: "BEL" + }, + "␈": { + text: "BS" + }, + "␉": { + text: "HT" + }, + "␊": { + text: "LF" + }, + "␋": { + text: "VT" + }, + "␌": { + text: "FF" + }, + "␍": { + text: "CR" + }, + "␎": { + text: "SO" + }, + "␏": { + text: "SI" + }, + "␐": { + text: "DLE" + }, + "␑": { + text: "DC1" + }, + "␒": { + text: "DC2" + }, + "␓": { + text: "DC3" + }, + "␔": { + text: "DC4" + }, + "␕": { + text: "NAK" + }, + "␖": { + text: "SYN" + }, + "␗": { + text: "ETB" + }, + "␘": { + text: "CAN" + }, + "␙": { + text: "EM" + }, + "␚": { + text: "SUB" + }, + "␛": { + text: "ESC" + }, + "␜": { + text: "FS" + }, + "␝": { + text: "GS" + }, + "␞": { + text: "RS" + }, + "␟": { + text: "US" + }, + "␠": { + text: "SP" + }, + "␡": { + text: "DEL" + }, + "␣": { + text: "\\textvisiblespace", + commandspacer: true + }, + "␤": { + text: "NL" + }, + "␥": { + text: "///" + }, + "␦": { + text: "?" + }, + "①": { + text: "\\ding{172}" + }, + "②": { + text: "\\ding{173}" + }, + "③": { + text: "\\ding{174}" + }, + "④": { + text: "\\ding{175}" + }, + "⑤": { + text: "\\ding{176}" + }, + "⑥": { + text: "\\ding{177}" + }, + "⑦": { + text: "\\ding{178}" + }, + "⑧": { + text: "\\ding{179}" + }, + "⑨": { + text: "\\ding{180}" + }, + "⑩": { + text: "\\ding{181}" + }, + "⑪": { + text: "(11)" + }, + "⑫": { + text: "(12)" + }, + "⑬": { + text: "(13)" + }, + "⑭": { + text: "(14)" + }, + "⑮": { + text: "(15)" + }, + "⑯": { + text: "(16)" + }, + "⑰": { + text: "(17)" + }, + "⑱": { + text: "(18)" + }, + "⑲": { + text: "(19)" + }, + "⑳": { + text: "(20)" + }, + "⑴": { + text: "(1)" + }, + "⑵": { + text: "(2)" + }, + "⑶": { + text: "(3)" + }, + "⑷": { + text: "(4)" + }, + "⑸": { + text: "(5)" + }, + "⑹": { + text: "(6)" + }, + "⑺": { + text: "(7)" + }, + "⑻": { + text: "(8)" + }, + "⑼": { + text: "(9)" + }, + "⑽": { + text: "(10)" + }, + "⑾": { + text: "(11)" + }, + "⑿": { + text: "(12)" + }, + "⒀": { + text: "(13)" + }, + "⒁": { + text: "(14)" + }, + "⒂": { + text: "(15)" + }, + "⒃": { + text: "(16)" + }, + "⒄": { + text: "(17)" + }, + "⒅": { + text: "(18)" + }, + "⒆": { + text: "(19)" + }, + "⒇": { + text: "(20)" + }, + "⒈": { + text: "1." + }, + "⒉": { + text: "2." + }, + "⒊": { + text: "3." + }, + "⒋": { + text: "4." + }, + "⒌": { + text: "5." + }, + "⒍": { + text: "6." + }, + "⒎": { + text: "7." + }, + "⒏": { + text: "8." + }, + "⒐": { + text: "9." + }, + "⒑": { + text: "10." + }, + "⒒": { + text: "11." + }, + "⒓": { + text: "12." + }, + "⒔": { + text: "13." + }, + "⒕": { + text: "14." + }, + "⒖": { + text: "15." + }, + "⒗": { + text: "16." + }, + "⒘": { + text: "17." + }, + "⒙": { + text: "18." + }, + "⒚": { + text: "19." + }, + "⒛": { + text: "20." + }, + "⒜": { + text: "(a)" + }, + "⒝": { + text: "(b)" + }, + "⒞": { + text: "(c)" + }, + "⒟": { + text: "(d)" + }, + "⒠": { + text: "(e)" + }, + "⒡": { + text: "(f)" + }, + "⒢": { + text: "(g)" + }, + "⒣": { + text: "(h)" + }, + "⒤": { + text: "(i)" + }, + "⒥": { + text: "(j)" + }, + "⒦": { + text: "(k)" + }, + "⒧": { + text: "(l)" + }, + "⒨": { + text: "(m)" + }, + "⒩": { + text: "(n)" + }, + "⒪": { + text: "(o)" + }, + "⒫": { + text: "(p)" + }, + "⒬": { + text: "(q)" + }, + "⒭": { + text: "(r)" + }, + "⒮": { + text: "(s)" + }, + "⒯": { + text: "(t)" + }, + "⒰": { + text: "(u)" + }, + "⒱": { + text: "(v)" + }, + "⒲": { + text: "(w)" + }, + "⒳": { + text: "(x)" + }, + "⒴": { + text: "(y)" + }, + "⒵": { + text: "(z)" + }, + "Ⓐ": { + text: "(A)" + }, + "Ⓑ": { + text: "(B)" + }, + "Ⓒ": { + text: "(C)" + }, + "Ⓓ": { + text: "(D)" + }, + "Ⓔ": { + text: "(E)" + }, + "Ⓕ": { + text: "(F)" + }, + "Ⓖ": { + text: "(G)" + }, + "Ⓗ": { + text: "(H)" + }, + "Ⓘ": { + text: "(I)" + }, + "Ⓙ": { + text: "(J)" + }, + "Ⓚ": { + text: "(K)" + }, + "Ⓛ": { + text: "(L)" + }, + "Ⓜ": { + text: "(M)" + }, + "Ⓝ": { + text: "(N)" + }, + "Ⓞ": { + text: "(O)" + }, + "Ⓟ": { + text: "(P)" + }, + "Ⓠ": { + text: "(Q)" + }, + "Ⓡ": { + text: "(R)" + }, + "Ⓢ": { + math: "\\circledS" + }, + "Ⓣ": { + text: "(T)" + }, + "Ⓤ": { + text: "(U)" + }, + "Ⓥ": { + text: "(V)" + }, + "Ⓦ": { + text: "(W)" + }, + "Ⓧ": { + text: "(X)" + }, + "Ⓨ": { + text: "(Y)" + }, + "Ⓩ": { + text: "(Z)" + }, + "ⓐ": { + text: "(a)" + }, + "ⓑ": { + text: "(b)" + }, + "ⓒ": { + text: "(c)" + }, + "ⓓ": { + text: "(d)" + }, + "ⓔ": { + text: "(e)" + }, + "ⓕ": { + text: "(f)" + }, + "ⓖ": { + text: "(g)" + }, + "ⓗ": { + text: "(h)" + }, + "ⓘ": { + text: "(i)" + }, + "ⓙ": { + text: "(j)" + }, + "ⓚ": { + text: "(k)" + }, + "ⓛ": { + text: "(l)" + }, + "ⓜ": { + text: "(m)" + }, + "ⓝ": { + text: "(n)" + }, + "ⓞ": { + text: "(o)" + }, + "ⓟ": { + text: "(p)" + }, + "ⓠ": { + text: "(q)" + }, + "ⓡ": { + text: "(r)" + }, + "ⓢ": { + text: "(s)" + }, + "ⓣ": { + text: "(t)" + }, + "ⓤ": { + text: "(u)" + }, + "ⓥ": { + text: "(v)" + }, + "ⓦ": { + text: "(w)" + }, + "ⓧ": { + text: "(x)" + }, + "ⓨ": { + text: "(y)" + }, + "ⓩ": { + text: "(z)" + }, + "⓪": { + text: "(0)" + }, + "─": { + text: "-" + }, + "━": { + text: "=" + }, + "│": { + text: "|" + }, + "┃": { + text: "|" + }, + "┄": { + text: "-" + }, + "┅": { + text: "=" + }, + "┆": { + math: "\\Elzdshfnc" + }, + "┇": { + text: "|" + }, + "┈": { + text: "-" + }, + "┉": { + text: "=" + }, + "┊": { + text: "|" + }, + "┋": { + text: "|" + }, + "┌": { + text: "+" + }, + "┍": { + text: "+" + }, + "┎": { + text: "+" + }, + "┏": { + text: "+" + }, + "┐": { + text: "+" + }, + "┑": { + text: "+" + }, + "┒": { + text: "+" + }, + "┓": { + text: "+" + }, + "└": { + text: "+" + }, + "┕": { + text: "+" + }, + "┖": { + text: "+" + }, + "┗": { + text: "+" + }, + "┘": { + text: "+" + }, + "┙": { + math: "\\Elzsqfnw" + }, + "┚": { + text: "+" + }, + "┛": { + text: "+" + }, + "├": { + text: "+" + }, + "┝": { + text: "+" + }, + "┞": { + text: "+" + }, + "┟": { + text: "+" + }, + "┠": { + text: "+" + }, + "┡": { + text: "+" + }, + "┢": { + text: "+" + }, + "┣": { + text: "+" + }, + "┤": { + text: "+" + }, + "┥": { + text: "+" + }, + "┦": { + text: "+" + }, + "┧": { + text: "+" + }, + "┨": { + text: "+" + }, + "┩": { + text: "+" + }, + "┪": { + text: "+" + }, + "┫": { + text: "+" + }, + "┬": { + text: "+" + }, + "┭": { + text: "+" + }, + "┮": { + text: "+" + }, + "┯": { + text: "+" + }, + "┰": { + text: "+" + }, + "┱": { + text: "+" + }, + "┲": { + text: "+" + }, + "┳": { + text: "+" + }, + "┴": { + text: "+" + }, + "┵": { + text: "+" + }, + "┶": { + text: "+" + }, + "┷": { + text: "+" + }, + "┸": { + text: "+" + }, + "┹": { + text: "+" + }, + "┺": { + text: "+" + }, + "┻": { + text: "+" + }, + "┼": { + text: "+" + }, + "┽": { + text: "+" + }, + "┾": { + text: "+" + }, + "┿": { + text: "+" + }, + "╀": { + text: "+" + }, + "╁": { + text: "+" + }, + "╂": { + text: "+" + }, + "╃": { + text: "+" + }, + "╄": { + text: "+" + }, + "╅": { + text: "+" + }, + "╆": { + text: "+" + }, + "╇": { + text: "+" + }, + "╈": { + text: "+" + }, + "╉": { + text: "+" + }, + "╊": { + text: "+" + }, + "╋": { + text: "+" + }, + "╌": { + text: "-" + }, + "╍": { + text: "=" + }, + "╎": { + text: "|" + }, + "╏": { + text: "|" + }, + "═": { + text: "=" + }, + "║": { + text: "|" + }, + "╒": { + text: "+" + }, + "╓": { + text: "+" + }, + "╔": { + text: "+" + }, + "╕": { + text: "+" + }, + "╖": { + text: "+" + }, + "╗": { + text: "+" + }, + "╘": { + text: "+" + }, + "╙": { + text: "+" + }, + "╚": { + text: "+" + }, + "╛": { + text: "+" + }, + "╜": { + text: "+" + }, + "╝": { + text: "+" + }, + "╞": { + text: "+" + }, + "╟": { + text: "+" + }, + "╠": { + text: "+" + }, + "╡": { + text: "+" + }, + "╢": { + text: "+" + }, + "╣": { + text: "+" + }, + "╤": { + text: "+" + }, + "╥": { + text: "+" + }, + "╦": { + text: "+" + }, + "╧": { + text: "+" + }, + "╨": { + text: "+" + }, + "╩": { + text: "+" + }, + "╪": { + text: "+" + }, + "╫": { + text: "+" + }, + "╬": { + text: "+" + }, + "╭": { + text: "+" + }, + "╮": { + text: "+" + }, + "╯": { + text: "+" + }, + "╰": { + text: "+" + }, + "╱": { + math: "\\diagup" + }, + "╲": { + text: "\\" + }, + "╳": { + text: "X" + }, + "╼": { + text: "-" + }, + "╽": { + text: "|" + }, + "╾": { + text: "-" + }, + "╿": { + text: "|" + }, + "▀": { + math: "\\blockuphalf" + }, + "▄": { + math: "\\blocklowhalf" + }, + "█": { + math: "\\blockfull" + }, + "▌": { + math: "\\blocklefthalf" + }, + "▐": { + math: "\\blockrighthalf" + }, + "░": { + math: "\\blockqtrshaded" + }, + "▒": { + math: "\\blockhalfshaded" + }, + "▓": { + math: "\\blockthreeqtrshaded" + }, + "■": { + math: "\\mdlgblksquare", + text: "\\ding{110}" + }, + "□": { + math: "\\square" + }, + "▢": { + math: "\\squoval" + }, + "▣": { + math: "\\blackinwhitesquare" + }, + "▤": { + math: "\\squarehfill" + }, + "▥": { + math: "\\squarevfill" + }, + "▦": { + math: "\\squarehvfill" + }, + "▧": { + math: "\\squarenwsefill" + }, + "▨": { + math: "\\squareneswfill" + }, + "▩": { + math: "\\squarecrossfill" + }, + "▪": { + math: "\\blacksquare" + }, + "▫": { + math: "\\smwhtsquare" + }, + "▬": { + math: "\\hrectangleblack" + }, + "▭": { + math: "\\fbox{~~}" + }, + "▮": { + math: "\\vrectangleblack" + }, + "▯": { + math: "\\Elzvrecto" + }, + "▰": { + math: "\\parallelogramblack" + }, + "▲": { + math: "\\bigblacktriangleup", + text: "\\ding{115}" + }, + "△": { + math: "\\bigtriangleup" + }, + "▴": { + math: "\\blacktriangle" + }, + "▵": { + math: "\\vartriangle" + }, + "▶": { + math: "\\RHD" + }, + "▷": { + math: "\\rhd" + }, + "▸": { + math: "\\blacktriangleright" + }, + "▹": { + math: "\\triangleright" + }, + "►": { + math: "\\blackpointerright" + }, + "▻": { + math: "\\whitepointerright" + }, + "▼": { + math: "\\bigblacktriangledown", + text: "\\ding{116}" + }, + "▽": { + math: "\\bigtriangledown" + }, + "▾": { + math: "\\blacktriangledown" + }, + "▿": { + math: "\\triangledown" + }, + "◀": { + math: "\\LHD" + }, + "◁": { + math: "\\lhd" + }, + "◂": { + math: "\\blacktriangleleft" + }, + "◃": { + math: "\\triangleleft" + }, + "◄": { + math: "\\blackpointerleft" + }, + "◅": { + math: "\\whitepointerleft" + }, + "◆": { + math: "\\Diamondblack", + text: "\\ding{117}" + }, + "◇": { + math: "\\Diamond" + }, + "◈": { + math: "\\blackinwhitediamond" + }, + "◉": { + math: "\\fisheye" + }, + "◊": { + math: "\\lozenge" + }, + "○": { + math: "\\bigcirc" + }, + "◌": { + math: "\\dottedcircle" + }, + "◍": { + math: "\\circlevertfill" + }, + "◎": { + math: "\\bullseye" + }, + "●": { + math: "\\CIRCLE", + text: "\\ding{108}" + }, + "◐": { + math: "\\Elzcirfl" + }, + "◑": { + math: "\\Elzcirfr" + }, + "◒": { + math: "\\Elzcirfb" + }, + "◓": { + math: "\\circletophalfblack" + }, + "◔": { + math: "\\circleurquadblack" + }, + "◕": { + math: "\\blackcircleulquadwhite" + }, + "◖": { + math: "\\LEFTCIRCLE" + }, + "◗": { + math: "\\RIGHTCIRCLE", + text: "\\ding{119}" + }, + "◘": { + math: "\\Elzrvbull" + }, + "◙": { + math: "\\inversewhitecircle" + }, + "◚": { + math: "\\invwhiteupperhalfcircle" + }, + "◛": { + math: "\\invwhitelowerhalfcircle" + }, + "◜": { + math: "\\ularc" + }, + "◝": { + math: "\\urarc" + }, + "◞": { + math: "\\lrarc" + }, + "◟": { + math: "\\llarc" + }, + "◠": { + math: "\\topsemicircle" + }, + "◡": { + math: "\\botsemicircle" + }, + "◢": { + math: "\\lrblacktriangle" + }, + "◣": { + math: "\\llblacktriangle" + }, + "◤": { + math: "\\ulblacktriangle" + }, + "◥": { + math: "\\urblacktriangle" + }, + "◦": { + math: "\\smwhtcircle" + }, + "◧": { + math: "\\Elzsqfl" + }, + "◨": { + math: "\\Elzsqfr" + }, + "◩": { + math: "\\squareulblack" + }, + "◪": { + math: "\\Elzsqfse" + }, + "◫": { + math: "\\boxbar" + }, + "◬": { + math: "\\trianglecdot" + }, + "◭": { + math: "\\triangleleftblack" + }, + "◮": { + math: "\\trianglerightblack" + }, + "◯": { + math: "\\bigcirc" + }, + "◰": { + math: "\\squareulquad" + }, + "◱": { + math: "\\squarellquad" + }, + "◲": { + math: "\\squarelrquad" + }, + "◳": { + math: "\\squareurquad" + }, + "◴": { + math: "\\circleulquad" + }, + "◵": { + math: "\\circlellquad" + }, + "◶": { + math: "\\circlelrquad" + }, + "◷": { + math: "\\circleurquad" + }, + "◸": { + math: "\\ultriangle" + }, + "◹": { + math: "\\urtriangle" + }, + "◺": { + math: "\\lltriangle" + }, + "◻": { + math: "\\square" + }, + "◼": { + math: "\\blacksquare" + }, + "◽": { + math: "\\mdsmwhtsquare" + }, + "◾": { + math: "\\mdsmblksquare" + }, + "◿": { + math: "\\lrtriangle" + }, + "★": { + math: "\\bigstar", + text: "\\ding{72}" + }, + "☆": { + math: "\\bigwhitestar", + text: "\\ding{73}" + }, + "☉": { + math: "\\Sun" + }, + "☎": { + text: "\\ding{37}" + }, + "☐": { + math: "\\Square" + }, + "☑": { + math: "\\CheckedBox" + }, + "☒": { + math: "\\XBox" + }, + "☓": { + text: "X" + }, + "☕": { + math: "\\steaming" + }, + "☛": { + text: "\\ding{42}" + }, + "☞": { + math: "\\pointright", + text: "\\ding{43}" + }, + "☠": { + math: "\\skull" + }, + "☡": { + math: "\\danger" + }, + "☢": { + math: "\\radiation" + }, + "☣": { + math: "\\biohazard" + }, + "☯": { + math: "\\yinyang" + }, + "☹": { + math: "\\frownie" + }, + "☺": { + math: "\\smiley" + }, + "☻": { + math: "\\blacksmiley" + }, + "☼": { + math: "\\sun" + }, + "☽": { + text: "\\rightmoon", + commandspacer: true, + textpackages: [ + "wasysym" + ] + }, + "☾": { + text: "\\leftmoon", + commandspacer: true, + textpackages: [ + "wasysym" + ] + }, + "☿": { + math: "\\mercury", + text: "\\mercury", + commandspacer: true + }, + "♀": { + math: "\\female", + text: "\\venus", + commandspacer: true + }, + "♁": { + math: "\\earth" + }, + "♂": { + math: "\\male", + text: "\\male", + commandspacer: true + }, + "♃": { + math: "\\jupiter", + text: "\\jupiter", + commandspacer: true + }, + "♄": { + math: "\\saturn", + text: "\\saturn", + commandspacer: true + }, + "♅": { + math: "\\uranus", + text: "\\uranus", + commandspacer: true + }, + "♆": { + math: "\\neptune", + text: "\\neptune", + commandspacer: true + }, + "♇": { + math: "\\pluto", + text: "\\pluto", + commandspacer: true + }, + "♈": { + math: "\\aries", + text: "\\aries", + commandspacer: true + }, + "♉": { + math: "\\taurus", + text: "\\taurus", + commandspacer: true + }, + "♊": { + math: "\\gemini", + text: "\\gemini", + commandspacer: true + }, + "♋": { + math: "\\cancer", + text: "\\cancer", + commandspacer: true + }, + "♌": { + math: "\\leo", + text: "\\leo", + commandspacer: true + }, + "♍": { + math: "\\virgo", + text: "\\virgo", + commandspacer: true + }, + "♎": { + math: "\\libra", + text: "\\libra", + commandspacer: true + }, + "♏": { + math: "\\scorpio", + text: "\\scorpio", + commandspacer: true + }, + "♐": { + math: "\\sagittarius", + text: "\\sagittarius", + commandspacer: true + }, + "♑": { + math: "\\capricornus", + text: "\\capricornus", + commandspacer: true + }, + "♒": { + math: "\\aquarius", + text: "\\aquarius", + commandspacer: true + }, + "♓": { + math: "\\pisces", + text: "\\pisces", + commandspacer: true + }, + "♠": { + math: "\\spadesuit", + text: "\\ding{171}" + }, + "♡": { + math: "\\heartsuit" + }, + "♢": { + math: "\\diamond" + }, + "♣": { + math: "\\clubsuit", + text: "\\ding{168}" + }, + "♤": { + math: "\\varspadesuit" + }, + "♥": { + math: "\\varheartsuit", + text: "\\ding{170}" + }, + "♦": { + math: "\\vardiamondsuit", + text: "\\ding{169}" + }, + "♧": { + math: "\\varclubsuit" + }, + "♩": { + math: "\\quarternote", + text: "\\quarternote", + commandspacer: true + }, + "♪": { + math: "\\eighthnote", + text: "\\eighthnote", + commandspacer: true + }, + "♫": { + math: "\\twonotes" + }, + "♬": { + math: "\\sixteenthnote" + }, + "♭": { + math: "\\flat" + }, + "♮": { + math: "\\natural" + }, + "♯": { + math: "\\sharp" + }, + "♻": { + math: "\\recycle" + }, + "♾": { + math: "\\acidfree" + }, + "⚀": { + math: "\\dicei" + }, + "⚁": { + math: "\\diceii" + }, + "⚂": { + math: "\\diceiii" + }, + "⚃": { + math: "\\diceiv" + }, + "⚄": { + math: "\\dicev" + }, + "⚅": { + math: "\\dicevi" + }, + "⚆": { + math: "\\circledrightdot" + }, + "⚇": { + math: "\\circledtwodots" + }, + "⚈": { + math: "\\blackcircledrightdot" + }, + "⚉": { + math: "\\blackcircledtwodots" + }, + "⚓": { + math: "\\anchor" + }, + "⚔": { + math: "\\swords" + }, + "⚠": { + math: "\\warning" + }, + "⚥": { + math: "\\Hermaphrodite" + }, + "⚪": { + math: "\\medcirc" + }, + "⚫": { + math: "\\medbullet" + }, + "⚬": { + math: "\\mdsmwhtcircle" + }, + "⚲": { + math: "\\neuter" + }, + "✁": { + text: "\\ding{33}" + }, + "✂": { + text: "\\ding{34}" + }, + "✃": { + text: "\\ding{35}" + }, + "✄": { + text: "\\ding{36}" + }, + "✆": { + text: "\\ding{38}" + }, + "✇": { + text: "\\ding{39}" + }, + "✈": { + text: "\\ding{40}" + }, + "✉": { + text: "\\ding{41}" + }, + "✌": { + text: "\\ding{44}" + }, + "✍": { + text: "\\ding{45}" + }, + "✎": { + math: "\\pencil", + text: "\\ding{46}" + }, + "✏": { + text: "\\ding{47}" + }, + "✐": { + text: "\\ding{48}" + }, + "✑": { + text: "\\ding{49}" + }, + "✒": { + text: "\\ding{50}" + }, + "✓": { + math: "\\checkmark", + text: "\\ding{51}" + }, + "✔": { + text: "\\ding{52}" + }, + "✕": { + text: "\\ding{53}" + }, + "✖": { + text: "\\ding{54}" + }, + "✗": { + math: "\\ballotx", + text: "\\ding{55}" + }, + "✘": { + text: "\\ding{56}" + }, + "✙": { + text: "\\ding{57}" + }, + "✚": { + text: "\\ding{58}" + }, + "✛": { + text: "\\ding{59}" + }, + "✜": { + text: "\\ding{60}" + }, + "✝": { + text: "\\ding{61}" + }, + "✞": { + text: "\\ding{62}" + }, + "✟": { + text: "\\ding{63}" + }, + "✠": { + math: "\\maltese", + text: "\\ding{64}" + }, + "✡": { + text: "\\ding{65}" + }, + "✢": { + text: "\\ding{66}" + }, + "✣": { + text: "\\ding{67}" + }, + "✤": { + text: "\\ding{68}" + }, + "✥": { + text: "\\ding{69}" + }, + "✦": { + text: "\\ding{70}" + }, + "✧": { + text: "\\ding{71}" + }, + "✩": { + text: "\\ding{73}" + }, + "✪": { + math: "\\circledstar", + text: "\\ding{74}" + }, + "✫": { + text: "\\ding{75}" + }, + "✬": { + text: "\\ding{76}" + }, + "✭": { + text: "\\ding{77}" + }, + "✮": { + text: "\\ding{78}" + }, + "✯": { + text: "\\ding{79}" + }, + "✰": { + text: "\\ding{80}" + }, + "✱": { + text: "\\ding{81}" + }, + "✲": { + text: "\\ding{82}" + }, + "✳": { + text: "\\ding{83}" + }, + "✴": { + text: "\\ding{84}" + }, + "✵": { + text: "\\ding{85}" + }, + "✶": { + math: "\\varstar", + text: "\\ding{86}" + }, + "✷": { + text: "\\ding{87}" + }, + "✸": { + text: "\\ding{88}" + }, + "✹": { + text: "\\ding{89}" + }, + "✺": { + text: "\\ding{90}" + }, + "✻": { + text: "\\ding{91}" + }, + "✼": { + text: "\\ding{92}" + }, + "✽": { + math: "\\dingasterisk", + text: "\\ding{93}" + }, + "✾": { + text: "\\ding{94}" + }, + "✿": { + text: "\\ding{95}" + }, + "❀": { + text: "\\ding{96}" + }, + "❁": { + text: "\\ding{97}" + }, + "❂": { + text: "\\ding{98}" + }, + "❃": { + text: "\\ding{99}" + }, + "❄": { + text: "\\ding{100}" + }, + "❅": { + text: "\\ding{101}" + }, + "❆": { + text: "\\ding{102}" + }, + "❇": { + text: "\\ding{103}" + }, + "❈": { + text: "\\ding{104}" + }, + "❉": { + text: "\\ding{105}" + }, + "❊": { + text: "\\ding{106}" + }, + "❋": { + text: "\\ding{107}" + }, + "❍": { + text: "\\ding{109}" + }, + "❏": { + text: "\\ding{111}" + }, + "❐": { + text: "\\ding{112}" + }, + "❑": { + text: "\\ding{113}" + }, + "❒": { + text: "\\ding{114}" + }, + "❖": { + text: "\\ding{118}" + }, + "❘": { + text: "\\ding{120}" + }, + "❙": { + text: "\\ding{121}" + }, + "❚": { + text: "\\ding{122}" + }, + "❛": { + text: "\\ding{123}" + }, + "❜": { + text: "\\ding{124}" + }, + "❝": { + text: "\\ding{125}" + }, + "❞": { + text: "\\ding{126}" + }, + "❡": { + text: "\\ding{161}" + }, + "❢": { + text: "\\ding{162}" + }, + "❣": { + text: "\\ding{163}" + }, + "❤": { + text: "\\ding{164}" + }, + "❥": { + text: "\\ding{165}" + }, + "❦": { + text: "\\ding{166}" + }, + "❧": { + text: "\\ding{167}" + }, + "❲": { + math: "\\lbrbrak" + }, + "❳": { + math: "\\rbrbrak" + }, + "❶": { + text: "\\ding{182}" + }, + "❷": { + text: "\\ding{183}" + }, + "❸": { + text: "\\ding{184}" + }, + "❹": { + text: "\\ding{185}" + }, + "❺": { + text: "\\ding{186}" + }, + "❻": { + text: "\\ding{187}" + }, + "❼": { + text: "\\ding{188}" + }, + "❽": { + text: "\\ding{189}" + }, + "❾": { + text: "\\ding{190}" + }, + "❿": { + text: "\\ding{191}" + }, + "➀": { + text: "\\ding{192}" + }, + "➁": { + text: "\\ding{193}" + }, + "➂": { + text: "\\ding{194}" + }, + "➃": { + text: "\\ding{195}" + }, + "➄": { + text: "\\ding{196}" + }, + "➅": { + text: "\\ding{197}" + }, + "➆": { + text: "\\ding{198}" + }, + "➇": { + text: "\\ding{199}" + }, + "➈": { + text: "\\ding{200}" + }, + "➉": { + text: "\\ding{201}" + }, + "➊": { + text: "\\ding{202}" + }, + "➋": { + text: "\\ding{203}" + }, + "➌": { + text: "\\ding{204}" + }, + "➍": { + text: "\\ding{205}" + }, + "➎": { + text: "\\ding{206}" + }, + "➏": { + text: "\\ding{207}" + }, + "➐": { + text: "\\ding{208}" + }, + "➑": { + text: "\\ding{209}" + }, + "➒": { + text: "\\ding{210}" + }, + "➓": { + text: "\\ding{211}" + }, + "➔": { + text: "\\ding{212}" + }, + "➘": { + text: "\\ding{216}" + }, + "➙": { + text: "\\ding{217}" + }, + "➚": { + text: "\\ding{218}" + }, + "➛": { + math: "\\draftingarrow", + text: "\\ding{219}" + }, + "➜": { + text: "\\ding{220}" + }, + "➝": { + text: "\\ding{221}" + }, + "➞": { + text: "\\ding{222}" + }, + "➟": { + text: "\\ding{223}" + }, + "➠": { + text: "\\ding{224}" + }, + "➡": { + text: "\\ding{225}" + }, + "➢": { + math: "\\arrowbullet", + text: "\\ding{226}" + }, + "➣": { + text: "\\ding{227}" + }, + "➤": { + text: "\\ding{228}" + }, + "➥": { + text: "\\ding{229}" + }, + "➦": { + text: "\\ding{230}" + }, + "➧": { + text: "\\ding{231}" + }, + "➨": { + text: "\\ding{232}" + }, + "➩": { + text: "\\ding{233}" + }, + "➪": { + text: "\\ding{234}" + }, + "➫": { + text: "\\ding{235}" + }, + "➬": { + text: "\\ding{236}" + }, + "➭": { + text: "\\ding{237}" + }, + "➮": { + text: "\\ding{238}" + }, + "➯": { + text: "\\ding{239}" + }, + "➱": { + text: "\\ding{241}" + }, + "➲": { + text: "\\ding{242}" + }, + "➳": { + text: "\\ding{243}" + }, + "➴": { + text: "\\ding{244}" + }, + "➵": { + text: "\\ding{245}" + }, + "➶": { + text: "\\ding{246}" + }, + "➷": { + text: "\\ding{247}" + }, + "➸": { + text: "\\ding{248}" + }, + "➹": { + text: "\\ding{249}" + }, + "➺": { + text: "\\ding{250}" + }, + "➻": { + text: "\\ding{251}" + }, + "➼": { + text: "\\ding{252}" + }, + "➽": { + text: "\\ding{253}" + }, + "➾": { + text: "\\ding{254}" + }, + "⟀": { + math: "\\threedangle" + }, + "⟁": { + math: "\\whiteinwhitetriangle" + }, + "⟂": { + math: "\\perp" + }, + "⟃": { + math: "\\subsetcirc" + }, + "⟄": { + math: "\\supsetcirc" + }, + "⟅": { + math: "\\Lbag" + }, + "⟆": { + math: "\\Rbag" + }, + "⟇": { + math: "\\veedot" + }, + "⟈": { + math: "\\bsolhsub" + }, + "⟉": { + math: "\\suphsol" + }, + "⟌": { + math: "\\longdivision" + }, + "⟐": { + math: "\\Diamonddot" + }, + "⟑": { + math: "\\wedgedot" + }, + "⟒": { + math: "\\upin" + }, + "⟓": { + math: "\\pullback" + }, + "⟔": { + math: "\\pushout" + }, + "⟕": { + math: "\\leftouterjoin" + }, + "⟖": { + math: "\\rightouterjoin" + }, + "⟗": { + math: "\\fullouterjoin" + }, + "⟘": { + math: "\\bigbot" + }, + "⟙": { + math: "\\bigtop" + }, + "⟚": { + math: "\\DashVDash" + }, + "⟛": { + math: "\\dashVdash" + }, + "⟜": { + math: "\\multimapinv" + }, + "⟝": { + math: "\\vlongdash" + }, + "⟞": { + math: "\\longdashv" + }, + "⟟": { + math: "\\cirbot" + }, + "⟠": { + math: "\\lozengeminus" + }, + "⟡": { + math: "\\concavediamond" + }, + "⟢": { + math: "\\concavediamondtickleft" + }, + "⟣": { + math: "\\concavediamondtickright" + }, + "⟤": { + math: "\\whitesquaretickleft" + }, + "⟥": { + math: "\\whitesquaretickright" + }, + "⟦": { + math: "\\llbracket" + }, + "⟧": { + math: "\\rrbracket" + }, + "⟨": { + math: "\\langle" + }, + "⟩": { + math: "\\rangle" + }, + "⟪": { + math: "\\lang" + }, + "⟫": { + math: "\\rang" + }, + "⟬": { + math: "\\Lbrbrak" + }, + "⟭": { + math: "\\Rbrbrak" + }, + "⟮": { + math: "\\lgroup" + }, + "⟯": { + math: "\\rgroup" + }, + "⟰": { + math: "\\UUparrow" + }, + "⟱": { + math: "\\DDownarrow" + }, + "⟲": { + math: "\\acwgapcirclearrow" + }, + "⟳": { + math: "\\cwgapcirclearrow" + }, + "⟴": { + math: "\\rightarrowonoplus" + }, + "⟵": { + math: "\\longleftarrow" + }, + "⟶": { + math: "\\longrightarrow" + }, + "⟷": { + math: "\\longleftrightarrow" + }, + "⟸": { + math: "\\Longleftarrow" + }, + "⟹": { + math: "\\Longrightarrow" + }, + "⟺": { + math: "\\Longleftrightarrow" + }, + "⟻": { + math: "\\longmapsfrom" + }, + "⟼": { + math: "\\longmapsto" + }, + "⟽": { + math: "\\Longmapsfrom" + }, + "⟾": { + math: "\\Longmapsto" + }, + "⟿": { + math: "\\sim\\joinrel\\leadsto" + }, + "⤀": { + math: "\\psur" + }, + "⤁": { + math: "\\nVtwoheadrightarrow" + }, + "⤂": { + math: "\\nvLeftarrow" + }, + "⤃": { + math: "\\nvRightarrow" + }, + "⤄": { + math: "\\nvLeftrightarrow" + }, + "⤆": { + math: "\\Mapsfrom" + }, + "⤇": { + math: "\\Mapsto" + }, + "⤈": { + math: "\\downarrowbarred" + }, + "⤉": { + math: "\\uparrowbarred" + }, + "⤊": { + math: "\\Uuparrow" + }, + "⤋": { + math: "\\Ddownarrow" + }, + "⤌": { + math: "\\leftbkarrow" + }, + "⤍": { + math: "\\rightbkarrow" + }, + "⤎": { + math: "\\leftdbkarrow" + }, + "⤏": { + math: "\\dbkarow" + }, + "⤐": { + math: "\\drbkarow" + }, + "⤑": { + math: "\\rightdotarrow" + }, + "⤒": { + math: "\\UpArrowBar" + }, + "⤓": { + math: "\\DownArrowBar" + }, + "⤔": { + math: "\\pinj" + }, + "⤕": { + math: "\\finj" + }, + "⤖": { + math: "\\bij" + }, + "⤗": { + math: "\\nvtwoheadrightarrowtail" + }, + "⤘": { + math: "\\nVtwoheadrightarrowtail" + }, + "⤙": { + math: "\\lefttail" + }, + "⤚": { + math: "\\righttail" + }, + "⤛": { + math: "\\leftdbltail" + }, + "⤜": { + math: "\\rightdbltail" + }, + "⤝": { + math: "\\diamondleftarrow" + }, + "⤞": { + math: "\\rightarrowdiamond" + }, + "⤟": { + math: "\\diamondleftarrowbar" + }, + "⤠": { + math: "\\barrightarrowdiamond" + }, + "⤡": { + math: "\\nwsearrow" + }, + "⤢": { + math: "\\neswarrow" + }, + "⤫": { + math: "\\rdiagovfdiag" + }, + "⤬": { + math: "\\fdiagovrdiag" + }, + "⤭": { + math: "\\seovnearrow" + }, + "⤮": { + math: "\\neovsearrow" + }, + "⤯": { + math: "\\fdiagovnearrow" + }, + "⤰": { + math: "\\rdiagovsearrow" + }, + "⤱": { + math: "\\neovnwarrow" + }, + "⤲": { + math: "\\nwovnearrow" + }, + "⤴": { + math: "\\uprightcurvearrow" + }, + "⤵": { + math: "\\downrightcurvedarrow" + }, + "⤸": { + math: "\\cwrightarcarrow" + }, + "⤹": { + math: "\\acwleftarcarrow" + }, + "⤺": { + math: "\\acwoverarcarrow" + }, + "⤻": { + math: "\\acwunderarcarrow" + }, + "⤼": { + math: "\\curvearrowrightminus" + }, + "⤽": { + math: "\\curvearrowleftplus" + }, + "⤾": { + math: "\\cwundercurvearrow" + }, + "⤿": { + math: "\\ccwundercurvearrow" + }, + "⥀": { + math: "\\Elolarr" + }, + "⥁": { + math: "\\Elorarr" + }, + "⥂": { + math: "\\ElzRlarr" + }, + "⥃": { + math: "\\leftarrowshortrightarrow" + }, + "⥄": { + math: "\\ElzrLarr" + }, + "⥅": { + math: "\\rightarrowplus" + }, + "⥆": { + math: "\\leftarrowplus" + }, + "⥇": { + math: "\\Elzrarrx" + }, + "⥈": { + math: "\\leftrightarrowcircle" + }, + "⥉": { + math: "\\twoheaduparrowcircle" + }, + "⥊": { + math: "\\leftrightharpoon" + }, + "⥋": { + math: "\\rightleftharpoon" + }, + "⥌": { + math: "\\updownharpoonrightleft" + }, + "⥍": { + math: "\\updownharpoonleftright" + }, + "⥎": { + math: "\\LeftRightVector" + }, + "⥏": { + math: "\\RightUpDownVector" + }, + "⥐": { + math: "\\DownLeftRightVector" + }, + "⥑": { + math: "\\LeftUpDownVector" + }, + "⥒": { + math: "\\LeftVectorBar" + }, + "⥓": { + math: "\\RightVectorBar" + }, + "⥔": { + math: "\\RightUpVectorBar" + }, + "⥕": { + math: "\\RightDownVectorBar" + }, + "⥖": { + math: "\\DownLeftVectorBar" + }, + "⥗": { + math: "\\DownRightVectorBar" + }, + "⥘": { + math: "\\LeftUpVectorBar" + }, + "⥙": { + math: "\\LeftDownVectorBar" + }, + "⥚": { + math: "\\LeftTeeVector" + }, + "⥛": { + math: "\\RightTeeVector" + }, + "⥜": { + math: "\\RightUpTeeVector" + }, + "⥝": { + math: "\\RightDownTeeVector" + }, + "⥞": { + math: "\\DownLeftTeeVector" + }, + "⥟": { + math: "\\DownRightTeeVector" + }, + "⥠": { + math: "\\LeftUpTeeVector" + }, + "⥡": { + math: "\\LeftDownTeeVector" + }, + "⥢": { + math: "\\leftleftharpoons" + }, + "⥣": { + math: "\\upupharpoons" + }, + "⥤": { + math: "\\rightrightharpoons" + }, + "⥥": { + math: "\\downdownharpoons" + }, + "⥦": { + math: "\\leftrightharpoonsup" + }, + "⥧": { + math: "\\leftrightharpoonsdown" + }, + "⥨": { + math: "\\rightleftharpoonsup" + }, + "⥩": { + math: "\\rightleftharpoonsdown" + }, + "⥪": { + math: "\\leftbarharpoon" + }, + "⥫": { + math: "\\barleftharpoon" + }, + "⥬": { + math: "\\rightbarharpoon" + }, + "⥭": { + math: "\\barrightharpoon" + }, + "⥮": { + math: "\\UpEquilibrium" + }, + "⥯": { + math: "\\ReverseUpEquilibrium" + }, + "⥰": { + math: "\\RoundImplies" + }, + "⥱": { + math: "\\equalrightarrow" + }, + "⥲": { + math: "\\similarrightarrow" + }, + "⥳": { + math: "\\leftarrowsimilar" + }, + "⥴": { + math: "\\rightarrowsimilar" + }, + "⥵": { + math: "\\rightarrowapprox" + }, + "⥶": { + math: "\\ltlarr" + }, + "⥷": { + math: "\\leftarrowless" + }, + "⥸": { + math: "\\gtrarr" + }, + "⥹": { + math: "\\subrarr" + }, + "⥺": { + math: "\\leftarrowsubset" + }, + "⥻": { + math: "\\suplarr" + }, + "⥾": { + math: "\\upfishtail" + }, + "⥿": { + math: "\\downfishtail" + }, + "⦀": { + math: "\\Elztfnc" + }, + "⦁": { + math: "\\spot" + }, + "⦂": { + math: "\\typecolon" + }, + "⦃": { + math: "\\lBrace" + }, + "⦄": { + math: "\\rBrace" + }, + "⦆": { + math: "\\Elroang" + }, + "⦇": { + math: "\\limg" + }, + "⦈": { + math: "\\rimg" + }, + "⦉": { + math: "\\lblot" + }, + "⦊": { + math: "\\rblot" + }, + "⦋": { + math: "\\lbrackubar" + }, + "⦌": { + math: "\\rbrackubar" + }, + "⦍": { + math: "\\lbrackultick" + }, + "⦎": { + math: "\\rbracklrtick" + }, + "⦏": { + math: "\\lbracklltick" + }, + "⦐": { + math: "\\rbrackurtick" + }, + "⦑": { + math: "\\langledot" + }, + "⦒": { + math: "\\rangledot" + }, + "⦓": { + math: "<\\kern-0.58em(" + }, + "⦕": { + math: "\\Lparengtr" + }, + "⦖": { + math: "\\Rparenless" + }, + "⦗": { + math: "\\lblkbrbrak" + }, + "⦘": { + math: "\\rblkbrbrak" + }, + "⦙": { + math: "\\Elzddfnc" + }, + "⦚": { + math: "\\vzigzag" + }, + "⦛": { + math: "\\measuredangleleft" + }, + "⦜": { + math: "\\Angle" + }, + "⦝": { + math: "\\rightanglemdot" + }, + "⦞": { + math: "\\angles" + }, + "⦟": { + math: "\\angdnr" + }, + "⦠": { + math: "\\Elzlpargt" + }, + "⦡": { + math: "\\sphericalangleup" + }, + "⦢": { + math: "\\turnangle" + }, + "⦣": { + math: "\\revangle" + }, + "⦤": { + math: "\\angleubar" + }, + "⦥": { + math: "\\revangleubar" + }, + "⦦": { + math: "\\wideangledown" + }, + "⦧": { + math: "\\wideangleup" + }, + "⦨": { + math: "\\measanglerutone" + }, + "⦩": { + math: "\\measanglelutonw" + }, + "⦪": { + math: "\\measanglerdtose" + }, + "⦫": { + math: "\\measangleldtosw" + }, + "⦬": { + math: "\\measangleurtone" + }, + "⦭": { + math: "\\measangleultonw" + }, + "⦮": { + math: "\\measangledrtose" + }, + "⦯": { + math: "\\measangledltosw" + }, + "⦰": { + math: "\\revemptyset" + }, + "⦱": { + math: "\\emptysetobar" + }, + "⦲": { + math: "\\emptysetocirc" + }, + "⦳": { + math: "\\emptysetoarr" + }, + "⦴": { + math: "\\emptysetoarrl" + }, + "⦷": { + math: "\\circledparallel" + }, + "⦸": { + math: "\\circledbslash" + }, + "⦹": { + math: "\\operp" + }, + "⦺": { + math: "\\obot" + }, + "⦻": { + math: "\\olcross" + }, + "⦼": { + math: "\\odotslashdot" + }, + "⦽": { + math: "\\uparrowoncircle" + }, + "⦾": { + math: "\\circledwhitebullet" + }, + "⦿": { + math: "\\circledbullet" + }, + "⧀": { + math: "\\circledless" + }, + "⧁": { + math: "\\circledgtr" + }, + "⧂": { + math: "\\cirscir" + }, + "⧃": { + math: "\\cirE" + }, + "⧄": { + math: "\\boxslash" + }, + "⧅": { + math: "\\boxbslash" + }, + "⧆": { + math: "\\boxast" + }, + "⧇": { + math: "\\boxcircle" + }, + "⧈": { + math: "\\boxbox" + }, + "⧉": { + math: "\\boxonbox" + }, + "⧊": { + math: "\\ElzLap" + }, + "⧋": { + math: "\\Elzdefas" + }, + "⧌": { + math: "\\triangles" + }, + "⧍": { + math: "\\triangleserifs" + }, + "⧎": { + math: "\\rtriltri" + }, + "⧏": { + math: "\\LeftTriangleBar" + }, + "⧏̸": { + math: "\\NotLeftTriangleBar" + }, + "⧐": { + math: "\\RightTriangleBar" + }, + "⧐̸": { + math: "\\NotRightTriangleBar" + }, + "⧑": { + math: "\\lfbowtie" + }, + "⧒": { + math: "\\rfbowtie" + }, + "⧓": { + math: "\\fbowtie" + }, + "⧔": { + math: "\\lftimes" + }, + "⧕": { + math: "\\rftimes" + }, + "⧖": { + math: "\\hourglass" + }, + "⧗": { + math: "\\blackhourglass" + }, + "⧘": { + math: "\\lvzigzag" + }, + "⧙": { + math: "\\rvzigzag" + }, + "⧚": { + math: "\\Lvzigzag" + }, + "⧛": { + math: "\\Rvzigzag" + }, + "⧝": { + math: "\\tieinfty" + }, + "⧞": { + math: "\\nvinfty" + }, + "⧟": { + math: "\\multimapboth" + }, + "⧠": { + math: "\\laplac" + }, + "⧡": { + math: "\\lrtriangleeq" + }, + "⧢": { + math: "\\shuffle" + }, + "⧣": { + math: "\\eparsl" + }, + "⧤": { + math: "\\smeparsl" + }, + "⧥": { + math: "\\eqvparsl" + }, + "⧦": { + math: "\\gleichstark" + }, + "⧧": { + math: "\\thermod" + }, + "⧨": { + math: "\\downtriangleleftblack" + }, + "⧩": { + math: "\\downtrianglerightblack" + }, + "⧪": { + math: "\\blackdiamonddownarrow" + }, + "⧫": { + math: "\\blacklozenge" + }, + "⧬": { + math: "\\circledownarrow" + }, + "⧭": { + math: "\\blackcircledownarrow" + }, + "⧮": { + math: "\\errbarsquare" + }, + "⧯": { + math: "\\errbarblacksquare" + }, + "⧰": { + math: "\\errbardiamond" + }, + "⧱": { + math: "\\errbarblackdiamond" + }, + "⧲": { + math: "\\errbarcircle" + }, + "⧳": { + math: "\\errbarblackcircle" + }, + "⧴": { + math: "\\RuleDelayed" + }, + "⧵": { + math: "\\setminus" + }, + "⧶": { + math: "\\dsol" + }, + "⧷": { + math: "\\rsolbar" + }, + "⧸": { + math: "\\xsol" + }, + "⧹": { + math: "\\zhide" + }, + "⧺": { + math: "\\doubleplus" + }, + "⧻": { + math: "\\tripleplus" + }, + "⧼": { + math: "\\lcurvyangle" + }, + "⧽": { + math: "\\rcurvyangle" + }, + "⧾": { + math: "\\tplus" + }, + "⧿": { + math: "\\tminus" + }, + "⨀": { + math: "\\bigodot" + }, + "⨁": { + math: "\\bigoplus" + }, + "⨂": { + math: "\\bigotimes" + }, + "⨃": { + math: "\\bigcupdot" + }, + "⨄": { + math: "\\Elxuplus" + }, + "⨅": { + math: "\\ElzThr" + }, + "⨆": { + math: "\\Elxsqcup" + }, + "⨇": { + math: "\\ElzInf" + }, + "⨈": { + math: "\\ElzSup" + }, + "⨉": { + math: "\\varprod" + }, + "⨊": { + math: "\\modtwosum" + }, + "⨋": { + math: "\\sumint" + }, + "⨌": { + math: "\\iiiint" + }, + "⨍": { + math: "\\ElzCint" + }, + "⨎": { + math: "\\intBar" + }, + "⨏": { + math: "\\clockoint" + }, + "⨑": { + math: "\\awint" + }, + "⨒": { + math: "\\rppolint" + }, + "⨓": { + math: "\\scpolint" + }, + "⨔": { + math: "\\npolint" + }, + "⨕": { + math: "\\pointint" + }, + "⨖": { + math: "\\sqrint" + }, + "⨗": { + math: "\\intlarhk" + }, + "⨘": { + math: "\\intx" + }, + "⨙": { + math: "\\intcap" + }, + "⨚": { + math: "\\intcup" + }, + "⨛": { + math: "\\upint" + }, + "⨜": { + math: "\\lowint" + }, + "⨝": { + math: "\\Join" + }, + "⨞": { + math: "\\bigtriangleleft" + }, + "⨟": { + math: "\\zcmp" + }, + "⨠": { + math: "\\zpipe" + }, + "⨡": { + math: "\\zproject" + }, + "⨢": { + math: "\\ringplus" + }, + "⨣": { + math: "\\plushat" + }, + "⨤": { + math: "\\simplus" + }, + "⨦": { + math: "\\plussim" + }, + "⨧": { + math: "\\plussubtwo" + }, + "⨨": { + math: "\\plustrif" + }, + "⨩": { + math: "\\commaminus" + }, + "⨫": { + math: "\\minusfdots" + }, + "⨬": { + math: "\\minusrdots" + }, + "⨯": { + math: "\\ElzTimes" + }, + "⨰": { + math: "\\dottimes" + }, + "⨱": { + math: "\\timesbar" + }, + "⨲": { + math: "\\btimes" + }, + "⨳": { + math: "\\smashtimes" + }, + "⨶": { + math: "\\otimeshat" + }, + "⨷": { + math: "\\Otimes" + }, + "⨸": { + math: "\\odiv" + }, + "⨹": { + math: "\\triangleplus" + }, + "⨺": { + math: "\\triangleminus" + }, + "⨻": { + math: "\\triangletimes" + }, + "⨽": { + math: "\\intprodr" + }, + "⨾": { + math: "\\fcmp" + }, + "⨿": { + math: "\\amalg" + }, + "⩀": { + math: "\\capdot" + }, + "⩁": { + math: "\\uminus" + }, + "⩂": { + math: "\\barcup" + }, + "⩃": { + math: "\\barcap" + }, + "⩄": { + math: "\\capwedge" + }, + "⩅": { + math: "\\cupvee" + }, + "⩆": { + math: "\\cupovercap" + }, + "⩇": { + math: "\\capovercup" + }, + "⩈": { + math: "\\cupbarcap" + }, + "⩉": { + math: "\\capbarcup" + }, + "⩊": { + math: "\\twocups" + }, + "⩋": { + math: "\\twocaps" + }, + "⩌": { + math: "\\closedvarcup" + }, + "⩍": { + math: "\\closedvarcap" + }, + "⩎": { + math: "\\Sqcap" + }, + "⩏": { + math: "\\Sqcup" + }, + "⩐": { + math: "\\closedvarcupsmashprod" + }, + "⩑": { + math: "\\wedgeodot" + }, + "⩒": { + math: "\\veeodot" + }, + "⩓": { + math: "\\ElzAnd" + }, + "⩔": { + math: "\\ElzOr" + }, + "⩖": { + math: "\\ElOr" + }, + "⩗": { + math: "\\bigslopedvee" + }, + "⩘": { + math: "\\bigslopedwedge" + }, + "⩙": { + math: "\\veeonwedge" + }, + "⩚": { + math: "\\wedgemidvert" + }, + "⩛": { + math: "\\veemidvert" + }, + "⩜": { + math: "\\midbarwedge" + }, + "⩝": { + math: "\\midbarvee" + }, + "⩞": { + math: "\\perspcorrespond" + }, + "⩟": { + math: "\\Elzminhat" + }, + "⩠": { + math: "\\wedgedoublebar" + }, + "⩡": { + math: "\\varveebar" + }, + "⩢": { + math: "\\doublebarvee" + }, + "⩤": { + math: "\\dsub" + }, + "⩥": { + math: "\\rsub" + }, + "⩦": { + math: "\\eqdot" + }, + "⩧": { + math: "\\dotequiv" + }, + "⩨": { + math: "\\equivVert" + }, + "⩩": { + math: "\\equivVvert" + }, + "⩪": { + math: "\\dotsim" + }, + "⩫": { + math: "\\simrdots" + }, + "⩬": { + math: "\\simminussim" + }, + "⩭": { + math: "\\congdot" + }, + "⩮": { + math: "\\stackrel{*}{=}" + }, + "⩯": { + math: "\\hatapprox" + }, + "⩰": { + math: "\\approxeqq" + }, + "⩱": { + math: "\\eqqplus" + }, + "⩲": { + math: "\\pluseqq" + }, + "⩳": { + math: "\\eqqsim" + }, + "⩴": { + math: "\\Coloneqq" + }, + "⩵": { + math: "\\Equal" + }, + "⩶": { + math: "\\Same" + }, + "⩷": { + math: "\\ddotseq" + }, + "⩸": { + math: "\\equivDD" + }, + "⩹": { + math: "\\ltcir" + }, + "⩺": { + math: "\\gtcir" + }, + "⩻": { + math: "\\ltquest" + }, + "⩼": { + math: "\\gtquest" + }, + "⩽": { + math: "\\leqslant", + mathpackages: [ + "amssymb" + ] + }, + "⩽̸": { + math: "\\nleqslant", + mathpackages: [ + "amssymb" + ] + }, + "⩾": { + math: "\\geqslant", + mathpackages: [ + "amssymb" + ] + }, + "⩾̸": { + math: "\\ngeqslant", + mathpackages: [ + "amssymb" + ] + }, + "⩿": { + math: "\\lesdot" + }, + "⪀": { + math: "\\gesdot" + }, + "⪁": { + math: "\\lesdoto" + }, + "⪂": { + math: "\\gesdoto" + }, + "⪃": { + math: "\\lesdotor" + }, + "⪄": { + math: "\\gesdotol" + }, + "⪅": { + math: "\\lessapprox" + }, + "⪆": { + math: "\\gtrapprox" + }, + "⪇": { + math: "\\lneq" + }, + "⪈": { + math: "\\gneq" + }, + "⪉": { + math: "\\lnapprox" + }, + "⪊": { + math: "\\gnapprox" + }, + "⪋": { + math: "\\lesseqqgtr" + }, + "⪌": { + math: "\\gtreqqless" + }, + "⪍": { + math: "\\lsime" + }, + "⪎": { + math: "\\gsime" + }, + "⪏": { + math: "\\lsimg" + }, + "⪐": { + math: "\\gsiml" + }, + "⪑": { + math: "\\lgE" + }, + "⪒": { + math: "\\glE" + }, + "⪓": { + math: "\\lesges" + }, + "⪔": { + math: "\\gesles" + }, + "⪕": { + math: "\\eqslantless" + }, + "⪖": { + math: "\\eqslantgtr" + }, + "⪗": { + math: "\\elsdot" + }, + "⪘": { + math: "\\egsdot" + }, + "⪙": { + math: "\\eqqless" + }, + "⪚": { + math: "\\eqqgtr" + }, + "⪛": { + math: "\\eqqslantless" + }, + "⪜": { + math: "\\eqqslantgtr" + }, + "⪝": { + math: "\\Pisymbol{ppi020}{117}" + }, + "⪞": { + math: "\\Pisymbol{ppi020}{105}" + }, + "⪟": { + math: "\\simlE" + }, + "⪠": { + math: "\\simgE" + }, + "⪡": { + math: "\\NestedLessLess" + }, + "⪡̸": { + math: "\\NotNestedLessLess" + }, + "⪢": { + math: "\\NestedGreaterGreater" + }, + "⪢̸": { + math: "\\NotNestedGreaterGreater" + }, + "⪣": { + math: "\\partialmeetcontraction" + }, + "⪤": { + math: "\\glj" + }, + "⪥": { + math: "\\gla" + }, + "⪦": { + math: "\\leftslice" + }, + "⪧": { + math: "\\rightslice" + }, + "⪨": { + math: "\\lescc" + }, + "⪩": { + math: "\\gescc" + }, + "⪪": { + math: "\\smt" + }, + "⪫": { + math: "\\lat" + }, + "⪬": { + math: "\\smte" + }, + "⪭": { + math: "\\late" + }, + "⪮": { + math: "\\bumpeqq" + }, + "⪯": { + math: "\\preceq" + }, + "⪯̸": { + math: "\\not\\preceq" + }, + "⪰": { + math: "\\succeq" + }, + "⪰̸": { + math: "\\not\\succeq" + }, + "⪱": { + math: "\\precneq" + }, + "⪲": { + math: "\\succneq" + }, + "⪳": { + math: "\\preceqq" + }, + "⪴": { + math: "\\succeqq" + }, + "⪵": { + math: "\\precneqq" + }, + "⪶": { + math: "\\succneqq" + }, + "⪷": { + math: "\\precapprox" + }, + "⪸": { + math: "\\succapprox" + }, + "⪹": { + math: "\\precnapprox" + }, + "⪺": { + math: "\\succnapprox" + }, + "⪻": { + math: "\\llcurly" + }, + "⪼": { + math: "\\ggcurly" + }, + "⪽": { + math: "\\subsetdot" + }, + "⪾": { + math: "\\supsetdot" + }, + "⪿": { + math: "\\subsetplus" + }, + "⫀": { + math: "\\supsetplus" + }, + "⫁": { + math: "\\submult" + }, + "⫂": { + math: "\\supmult" + }, + "⫃": { + math: "\\subedot" + }, + "⫄": { + math: "\\supedot" + }, + "⫅": { + math: "\\subseteqq" + }, + "⫅̸": { + math: "\\nsubseteqq" + }, + "⫆": { + math: "\\supseteqq" + }, + "⫆̸": { + math: "\\nsupseteqq" + }, + "⫇": { + math: "\\subsim" + }, + "⫈": { + math: "\\supsim" + }, + "⫉": { + math: "\\subsetapprox" + }, + "⫊": { + math: "\\supsetapprox" + }, + "⫋": { + math: "\\subsetneqq" + }, + "⫌": { + math: "\\supsetneqq" + }, + "⫍": { + math: "\\lsqhook" + }, + "⫎": { + math: "\\rsqhook" + }, + "⫏": { + math: "\\csub" + }, + "⫐": { + math: "\\csup" + }, + "⫑": { + math: "\\csube" + }, + "⫒": { + math: "\\csupe" + }, + "⫓": { + math: "\\subsup" + }, + "⫔": { + math: "\\supsub" + }, + "⫕": { + math: "\\subsub" + }, + "⫖": { + math: "\\supsup" + }, + "⫗": { + math: "\\suphsub" + }, + "⫘": { + math: "\\supdsub" + }, + "⫙": { + math: "\\forkv" + }, + "⫚": { + math: "\\topfork" + }, + "⫛": { + math: "\\mlcp" + }, + "⫝̸": { + math: "\\forks" + }, + "⫝": { + math: "\\forksnot" + }, + "⫝̸": { + math: "\\forks" + }, + "⫞": { + math: "\\shortlefttack" + }, + "⫟": { + math: "\\shortdowntack" + }, + "⫠": { + math: "\\shortuptack" + }, + "⫡": { + math: "\\perps" + }, + "⫢": { + math: "\\vDdash" + }, + "⫣": { + math: "\\dashV" + }, + "⫤": { + math: "\\Dashv" + }, + "⫥": { + math: "\\DashV" + }, + "⫦": { + math: "\\varVdash" + }, + "⫧": { + math: "\\Barv" + }, + "⫨": { + math: "\\vBar" + }, + "⫩": { + math: "\\vBarv" + }, + "⫪": { + math: "\\Top" + }, + "⫬": { + math: "\\Not" + }, + "⫭": { + math: "\\bNot" + }, + "⫮": { + math: "\\revnmid" + }, + "⫯": { + math: "\\cirmid" + }, + "⫰": { + math: "\\midcir" + }, + "⫱": { + math: "\\topcir" + }, + "⫲": { + math: "\\nhpar" + }, + "⫳": { + math: "\\parsim" + }, + "⫴": { + math: "\\interleave" + }, + "⫵": { + math: "\\nhVvert" + }, + "⫶": { + math: "\\Elztdcol" + }, + "⫷": { + math: "\\lllnest" + }, + "⫸": { + math: "\\gggnest" + }, + "⫹": { + math: "\\leqqslant" + }, + "⫺": { + math: "\\geqqslant" + }, + "⫻": { + math: "\\trslash" + }, + "⫼": { + math: "\\biginterleave" + }, + "⫽": { + math: "{{/}\\!\\!{/}}" + }, + "⫽⃥": { + math: "{\\rlap{\\textbackslash}{{/}\\!\\!{/}}}" + }, + "⫾": { + math: "\\talloblong" + }, + "⫿": { + math: "\\bigtalloblong" + }, + "⬒": { + math: "\\squaretopblack" + }, + "⬓": { + math: "\\squarebotblack" + }, + "⬔": { + math: "\\squareurblack" + }, + "⬕": { + math: "\\squarellblack" + }, + "⬖": { + math: "\\diamondleftblack" + }, + "⬗": { + math: "\\diamondrightblack" + }, + "⬘": { + math: "\\diamondtopblack" + }, + "⬙": { + math: "\\diamondbotblack" + }, + "⬚": { + math: "\\dottedsquare" + }, + "⬛": { + math: "\\blacksquare" + }, + "⬜": { + math: "\\square" + }, + "⬝": { + math: "\\vysmblksquare" + }, + "⬞": { + math: "\\vysmwhtsquare" + }, + "⬟": { + math: "\\pentagonblack" + }, + "⬠": { + math: "\\pentagon" + }, + "⬡": { + math: "\\varhexagon" + }, + "⬢": { + math: "\\varhexagonblack" + }, + "⬣": { + math: "\\hexagonblack" + }, + "⬤": { + math: "\\lgblkcircle" + }, + "⬥": { + math: "\\mdblkdiamond" + }, + "⬦": { + math: "\\mdwhtdiamond" + }, + "⬧": { + math: "\\mdblklozenge" + }, + "⬨": { + math: "\\mdwhtlozenge" + }, + "⬩": { + math: "\\smblkdiamond" + }, + "⬪": { + math: "\\smblklozenge" + }, + "⬫": { + math: "\\smwhtlozenge" + }, + "⬬": { + math: "\\blkhorzoval" + }, + "⬭": { + math: "\\whthorzoval" + }, + "⬮": { + math: "\\blkvertoval" + }, + "⬯": { + math: "\\whtvertoval" + }, + "⬰": { + math: "\\circleonleftarrow" + }, + "⬱": { + math: "\\leftthreearrows" + }, + "⬲": { + math: "\\leftarrowonoplus" + }, + "⬳": { + math: "\\longleftsquigarrow" + }, + "⬴": { + math: "\\nvtwoheadleftarrow" + }, + "⬵": { + math: "\\nVtwoheadleftarrow" + }, + "⬶": { + math: "\\twoheadmapsfrom" + }, + "⬷": { + math: "\\twoheadleftdbkarrow" + }, + "⬸": { + math: "\\leftdotarrow" + }, + "⬹": { + math: "\\nvleftarrowtail" + }, + "⬺": { + math: "\\nVleftarrowtail" + }, + "⬻": { + math: "\\twoheadleftarrowtail" + }, + "⬼": { + math: "\\nvtwoheadleftarrowtail" + }, + "⬽": { + math: "\\nVtwoheadleftarrowtail" + }, + "⬾": { + math: "\\leftarrowx" + }, + "⬿": { + math: "\\leftcurvedarrow" + }, + "⭀": { + math: "\\equalleftarrow" + }, + "⭁": { + math: "\\bsimilarleftarrow" + }, + "⭂": { + math: "\\leftarrowbackapprox" + }, + "⭃": { + math: "\\rightarrowgtr" + }, + "⭄": { + math: "\\rightarrowsupset" + }, + "⭅": { + math: "\\LLeftarrow" + }, + "⭆": { + math: "\\RRightarrow" + }, + "⭇": { + math: "\\bsimilarrightarrow" + }, + "⭈": { + math: "\\rightarrowbackapprox" + }, + "⭉": { + math: "\\similarleftarrow" + }, + "⭊": { + math: "\\leftarrowapprox" + }, + "⭋": { + math: "\\leftarrowbsimilar" + }, + "⭌": { + math: "\\rightarrowbsimilar" + }, + "⭐": { + math: "\\medwhitestar" + }, + "⭑": { + math: "\\medblackstar" + }, + "⭒": { + math: "\\smwhitestar" + }, + "⭓": { + math: "\\rightpentagonblack" + }, + "⭔": { + math: "\\rightpentagon" + }, + "〈": { + math: "\\langle" + }, + "〉": { + math: "\\rangle" + }, + "〒": { + math: "\\postalmark" + }, + "〔": { + math: "\\lbrbrak" + }, + "〕": { + math: "\\rbrbrak" + }, + "〚": { + math: "\\openbracketleft" + }, + "〛": { + math: "\\openbracketright" + }, + "〰": { + math: "\\hzigzag" + }, + "ff": { + text: "ff" + }, + "fi": { + text: "fi" + }, + "fl": { + text: "fl" + }, + "ffi": { + text: "ffi" + }, + "ffl": { + text: "ffl" + }, + "ſt": { + text: "st" + }, + "st": { + text: "st" + }, + "�": { + text: "\\dbend", + commandspacer: true + }, + "𝐀": { + math: "\\mathbf{A}" + }, + "𝐁": { + math: "\\mathbf{B}" + }, + "𝐂": { + math: "\\mathbf{C}" + }, + "𝐃": { + math: "\\mathbf{D}" + }, + "𝐄": { + math: "\\mathbf{E}" + }, + "𝐅": { + math: "\\mathbf{F}" + }, + "𝐆": { + math: "\\mathbf{G}" + }, + "𝐇": { + math: "\\mathbf{H}" + }, + "𝐈": { + math: "\\mathbf{I}" + }, + "𝐉": { + math: "\\mathbf{J}" + }, + "𝐊": { + math: "\\mathbf{K}" + }, + "𝐋": { + math: "\\mathbf{L}" + }, + "𝐌": { + math: "\\mathbf{M}" + }, + "𝐍": { + math: "\\mathbf{N}" + }, + "𝐎": { + math: "\\mathbf{O}" + }, + "𝐏": { + math: "\\mathbf{P}" + }, + "𝐐": { + math: "\\mathbf{Q}" + }, + "𝐑": { + math: "\\mathbf{R}" + }, + "𝐒": { + math: "\\mathbf{S}" + }, + "𝐓": { + math: "\\mathbf{T}" + }, + "𝐔": { + math: "\\mathbf{U}" + }, + "𝐕": { + math: "\\mathbf{V}" + }, + "𝐖": { + math: "\\mathbf{W}" + }, + "𝐗": { + math: "\\mathbf{X}" + }, + "𝐘": { + math: "\\mathbf{Y}" + }, + "𝐙": { + math: "\\mathbf{Z}" + }, + "𝐚": { + math: "\\mathbf{a}" + }, + "𝐛": { + math: "\\mathbf{b}" + }, + "𝐜": { + math: "\\mathbf{c}" + }, + "𝐝": { + math: "\\mathbf{d}" + }, + "𝐞": { + math: "\\mathbf{e}" + }, + "𝐟": { + math: "\\mathbf{f}" + }, + "𝐠": { + math: "\\mathbf{g}" + }, + "𝐡": { + math: "\\mathbf{h}" + }, + "𝐢": { + math: "\\mathbf{i}" + }, + "𝐣": { + math: "\\mathbf{j}" + }, + "𝐤": { + math: "\\mathbf{k}" + }, + "𝐥": { + math: "\\mathbf{l}" + }, + "𝐦": { + math: "\\mathbf{m}" + }, + "𝐧": { + math: "\\mathbf{n}" + }, + "𝐨": { + math: "\\mathbf{o}" + }, + "𝐩": { + math: "\\mathbf{p}" + }, + "𝐪": { + math: "\\mathbf{q}" + }, + "𝐫": { + math: "\\mathbf{r}" + }, + "𝐬": { + math: "\\mathbf{s}" + }, + "𝐭": { + math: "\\mathbf{t}" + }, + "𝐮": { + math: "\\mathbf{u}" + }, + "𝐯": { + math: "\\mathbf{v}" + }, + "𝐰": { + math: "\\mathbf{w}" + }, + "𝐱": { + math: "\\mathbf{x}" + }, + "𝐲": { + math: "\\mathbf{y}" + }, + "𝐳": { + math: "\\mathbf{z}" + }, + "𝐴": { + math: "\\mathsl{A}" + }, + "𝐵": { + math: "\\mathsl{B}" + }, + "𝐶": { + math: "\\mathsl{C}" + }, + "𝐷": { + math: "\\mathsl{D}" + }, + "𝐸": { + math: "\\mathsl{E}" + }, + "𝐹": { + math: "\\mathsl{F}" + }, + "𝐺": { + math: "\\mathsl{G}" + }, + "𝐻": { + math: "\\mathsl{H}" + }, + "𝐼": { + math: "\\mathsl{I}" + }, + "𝐽": { + math: "\\mathsl{J}" + }, + "𝐾": { + math: "\\mathsl{K}" + }, + "𝐿": { + math: "\\mathsl{L}" + }, + "𝑀": { + math: "\\mathsl{M}" + }, + "𝑁": { + math: "\\mathsl{N}" + }, + "𝑂": { + math: "\\mathsl{O}" + }, + "𝑃": { + math: "\\mathsl{P}" + }, + "𝑄": { + math: "\\mathsl{Q}" + }, + "𝑅": { + math: "\\mathsl{R}" + }, + "𝑆": { + math: "\\mathsl{S}" + }, + "𝑇": { + math: "\\mathsl{T}" + }, + "𝑈": { + math: "\\mathsl{U}" + }, + "𝑉": { + math: "\\mathsl{V}" + }, + "𝑊": { + math: "\\mathsl{W}" + }, + "𝑋": { + math: "\\mathsl{X}" + }, + "𝑌": { + math: "\\mathsl{Y}" + }, + "𝑍": { + math: "\\mathsl{Z}" + }, + "𝑎": { + math: "\\mathsl{a}" + }, + "𝑏": { + math: "\\mathsl{b}" + }, + "𝑐": { + math: "\\mathsl{c}" + }, + "𝑑": { + math: "\\mathsl{d}" + }, + "𝑒": { + math: "\\mathsl{e}" + }, + "𝑓": { + math: "\\mathsl{f}" + }, + "𝑔": { + math: "\\mathsl{g}" + }, + "𝑖": { + math: "\\mathsl{i}" + }, + "𝑗": { + math: "\\mathsl{j}" + }, + "𝑘": { + math: "\\mathsl{k}" + }, + "𝑙": { + math: "\\mathsl{l}" + }, + "𝑚": { + math: "\\mathsl{m}" + }, + "𝑛": { + math: "\\mathsl{n}" + }, + "𝑜": { + math: "\\mathsl{o}" + }, + "𝑝": { + math: "\\mathsl{p}" + }, + "𝑞": { + math: "\\mathsl{q}" + }, + "𝑟": { + math: "\\mathsl{r}" + }, + "𝑠": { + math: "\\mathsl{s}" + }, + "𝑡": { + math: "\\mathsl{t}" + }, + "𝑢": { + math: "\\mathsl{u}" + }, + "𝑣": { + math: "\\mathsl{v}" + }, + "𝑤": { + math: "\\mathsl{w}" + }, + "𝑥": { + math: "\\mathsl{x}" + }, + "𝑦": { + math: "\\mathsl{y}" + }, + "𝑧": { + math: "\\mathsl{z}" + }, + "𝑨": { + math: "\\mathbit{A}" + }, + "𝑩": { + math: "\\mathbit{B}" + }, + "𝑪": { + math: "\\mathbit{C}" + }, + "𝑫": { + math: "\\mathbit{D}" + }, + "𝑬": { + math: "\\mathbit{E}" + }, + "𝑭": { + math: "\\mathbit{F}" + }, + "𝑮": { + math: "\\mathbit{G}" + }, + "𝑯": { + math: "\\mathbit{H}" + }, + "𝑰": { + math: "\\mathbit{I}" + }, + "𝑱": { + math: "\\mathbit{J}" + }, + "𝑲": { + math: "\\mathbit{K}" + }, + "𝑳": { + math: "\\mathbit{L}" + }, + "𝑴": { + math: "\\mathbit{M}" + }, + "𝑵": { + math: "\\mathbit{N}" + }, + "𝑶": { + math: "\\mathbit{O}" + }, + "𝑷": { + math: "\\mathbit{P}" + }, + "𝑸": { + math: "\\mathbit{Q}" + }, + "𝑹": { + math: "\\mathbit{R}" + }, + "𝑺": { + math: "\\mathbit{S}" + }, + "𝑻": { + math: "\\mathbit{T}" + }, + "𝑼": { + math: "\\mathbit{U}" + }, + "𝑽": { + math: "\\mathbit{V}" + }, + "𝑾": { + math: "\\mathbit{W}" + }, + "𝑿": { + math: "\\mathbit{X}" + }, + "𝒀": { + math: "\\mathbit{Y}" + }, + "𝒁": { + math: "\\mathbit{Z}" + }, + "𝒂": { + math: "\\mathbit{a}" + }, + "𝒃": { + math: "\\mathbit{b}" + }, + "𝒄": { + math: "\\mathbit{c}" + }, + "𝒅": { + math: "\\mathbit{d}" + }, + "𝒆": { + math: "\\mathbit{e}" + }, + "𝒇": { + math: "\\mathbit{f}" + }, + "𝒈": { + math: "\\mathbit{g}" + }, + "𝒉": { + math: "\\mathbit{h}" + }, + "𝒊": { + math: "\\mathbit{i}" + }, + "𝒋": { + math: "\\mathbit{j}" + }, + "𝒌": { + math: "\\mathbit{k}" + }, + "𝒍": { + math: "\\mathbit{l}" + }, + "𝒎": { + math: "\\mathbit{m}" + }, + "𝒏": { + math: "\\mathbit{n}" + }, + "𝒐": { + math: "\\mathbit{o}" + }, + "𝒑": { + math: "\\mathbit{p}" + }, + "𝒒": { + math: "\\mathbit{q}" + }, + "𝒓": { + math: "\\mathbit{r}" + }, + "𝒔": { + math: "\\mathbit{s}" + }, + "𝒕": { + math: "\\mathbit{t}" + }, + "𝒖": { + math: "\\mathbit{u}" + }, + "𝒗": { + math: "\\mathbit{v}" + }, + "𝒘": { + math: "\\mathbit{w}" + }, + "𝒙": { + math: "\\mathbit{x}" + }, + "𝒚": { + math: "\\mathbit{y}" + }, + "𝒛": { + math: "\\mathbit{z}" + }, + "𝒜": { + math: "\\mathscr{A}" + }, + "𝒞": { + math: "\\mathscr{C}" + }, + "𝒟": { + math: "\\mathscr{D}" + }, + "𝒢": { + math: "\\mathscr{G}" + }, + "𝒥": { + math: "\\mathscr{J}" + }, + "𝒦": { + math: "\\mathscr{K}" + }, + "𝒩": { + math: "\\mathscr{N}" + }, + "𝒪": { + math: "\\mathscr{O}" + }, + "𝒫": { + math: "\\mathscr{P}" + }, + "𝒬": { + math: "\\mathscr{Q}" + }, + "𝒮": { + math: "\\mathscr{S}" + }, + "𝒯": { + math: "\\mathscr{T}" + }, + "𝒰": { + math: "\\mathscr{U}" + }, + "𝒱": { + math: "\\mathscr{V}" + }, + "𝒲": { + math: "\\mathscr{W}" + }, + "𝒳": { + math: "\\mathscr{X}" + }, + "𝒴": { + math: "\\mathscr{Y}" + }, + "𝒵": { + math: "\\mathscr{Z}" + }, + "𝒶": { + math: "\\mathscr{a}" + }, + "𝒷": { + math: "\\mathscr{b}" + }, + "𝒸": { + math: "\\mathscr{c}" + }, + "𝒹": { + math: "\\mathscr{d}" + }, + "𝒻": { + math: "\\mathscr{f}" + }, + "𝒽": { + math: "\\mathscr{h}" + }, + "𝒾": { + math: "\\mathscr{i}" + }, + "𝒿": { + math: "\\mathscr{j}" + }, + "𝓀": { + math: "\\mathscr{k}" + }, + "𝓁": { + math: "\\mathscr{l}" + }, + "𝓂": { + math: "\\mathscr{m}" + }, + "𝓃": { + math: "\\mathscr{n}" + }, + "𝓅": { + math: "\\mathscr{p}" + }, + "𝓆": { + math: "\\mathscr{q}" + }, + "𝓇": { + math: "\\mathscr{r}" + }, + "𝓈": { + math: "\\mathscr{s}" + }, + "𝓉": { + math: "\\mathscr{t}" + }, + "𝓊": { + math: "\\mathscr{u}" + }, + "𝓋": { + math: "\\mathscr{v}" + }, + "𝓌": { + math: "\\mathscr{w}" + }, + "𝓍": { + math: "\\mathscr{x}" + }, + "𝓎": { + math: "\\mathscr{y}" + }, + "𝓏": { + math: "\\mathscr{z}" + }, + "𝓐": { + math: "\\mathmit{A}" + }, + "𝓑": { + math: "\\mathmit{B}" + }, + "𝓒": { + math: "\\mathmit{C}" + }, + "𝓓": { + math: "\\mathmit{D}" + }, + "𝓔": { + math: "\\mathmit{E}" + }, + "𝓕": { + math: "\\mathmit{F}" + }, + "𝓖": { + math: "\\mathmit{G}" + }, + "𝓗": { + math: "\\mathmit{H}" + }, + "𝓘": { + math: "\\mathmit{I}" + }, + "𝓙": { + math: "\\mathmit{J}" + }, + "𝓚": { + math: "\\mathmit{K}" + }, + "𝓛": { + math: "\\mathmit{L}" + }, + "𝓜": { + math: "\\mathmit{M}" + }, + "𝓝": { + math: "\\mathmit{N}" + }, + "𝓞": { + math: "\\mathmit{O}" + }, + "𝓟": { + math: "\\mathmit{P}" + }, + "𝓠": { + math: "\\mathmit{Q}" + }, + "𝓡": { + math: "\\mathmit{R}" + }, + "𝓢": { + math: "\\mathmit{S}" + }, + "𝓣": { + math: "\\mathmit{T}" + }, + "𝓤": { + math: "\\mathmit{U}" + }, + "𝓥": { + math: "\\mathmit{V}" + }, + "𝓦": { + math: "\\mathmit{W}" + }, + "𝓧": { + math: "\\mathmit{X}" + }, + "𝓨": { + math: "\\mathmit{Y}" + }, + "𝓩": { + math: "\\mathmit{Z}" + }, + "𝓪": { + math: "\\mathmit{a}" + }, + "𝓫": { + math: "\\mathmit{b}" + }, + "𝓬": { + math: "\\mathmit{c}" + }, + "𝓭": { + math: "\\mathmit{d}" + }, + "𝓮": { + math: "\\mathmit{e}" + }, + "𝓯": { + math: "\\mathmit{f}" + }, + "𝓰": { + math: "\\mathmit{g}" + }, + "𝓱": { + math: "\\mathmit{h}" + }, + "𝓲": { + math: "\\mathmit{i}" + }, + "𝓳": { + math: "\\mathmit{j}" + }, + "𝓴": { + math: "\\mathmit{k}" + }, + "𝓵": { + math: "\\mathmit{l}" + }, + "𝓶": { + math: "\\mathmit{m}" + }, + "𝓷": { + math: "\\mathmit{n}" + }, + "𝓸": { + math: "\\mathmit{o}" + }, + "𝓹": { + math: "\\mathmit{p}" + }, + "𝓺": { + math: "\\mathmit{q}" + }, + "𝓻": { + math: "\\mathmit{r}" + }, + "𝓼": { + math: "\\mathmit{s}" + }, + "𝓽": { + math: "\\mathmit{t}" + }, + "𝓾": { + math: "\\mathmit{u}" + }, + "𝓿": { + math: "\\mathmit{v}" + }, + "𝔀": { + math: "\\mathmit{w}" + }, + "𝔁": { + math: "\\mathmit{x}" + }, + "𝔂": { + math: "\\mathmit{y}" + }, + "𝔃": { + math: "\\mathmit{z}" + }, + "𝔄": { + math: "\\mathfrak{A}" + }, + "𝔅": { + math: "\\mathfrak{B}" + }, + "𝔇": { + math: "\\mathfrak{D}" + }, + "𝔈": { + math: "\\mathfrak{E}" + }, + "𝔉": { + math: "\\mathfrak{F}" + }, + "𝔊": { + math: "\\mathfrak{G}" + }, + "𝔍": { + math: "\\mathfrak{J}" + }, + "𝔎": { + math: "\\mathfrak{K}" + }, + "𝔏": { + math: "\\mathfrak{L}" + }, + "𝔐": { + math: "\\mathfrak{M}" + }, + "𝔑": { + math: "\\mathfrak{N}" + }, + "𝔒": { + math: "\\mathfrak{O}" + }, + "𝔓": { + math: "\\mathfrak{P}" + }, + "𝔔": { + math: "\\mathfrak{Q}" + }, + "𝔖": { + math: "\\mathfrak{S}" + }, + "𝔗": { + math: "\\mathfrak{T}" + }, + "𝔘": { + math: "\\mathfrak{U}" + }, + "𝔙": { + math: "\\mathfrak{V}" + }, + "𝔚": { + math: "\\mathfrak{W}" + }, + "𝔛": { + math: "\\mathfrak{X}" + }, + "𝔜": { + math: "\\mathfrak{Y}" + }, + "𝔞": { + math: "\\mathfrak{a}" + }, + "𝔟": { + math: "\\mathfrak{b}" + }, + "𝔠": { + math: "\\mathfrak{c}" + }, + "𝔡": { + math: "\\mathfrak{d}" + }, + "𝔢": { + math: "\\mathfrak{e}" + }, + "𝔣": { + math: "\\mathfrak{f}" + }, + "𝔤": { + math: "\\mathfrak{g}" + }, + "𝔥": { + math: "\\mathfrak{h}" + }, + "𝔦": { + math: "\\mathfrak{i}" + }, + "𝔧": { + math: "\\mathfrak{j}" + }, + "𝔨": { + math: "\\mathfrak{k}" + }, + "𝔩": { + math: "\\mathfrak{l}" + }, + "𝔪": { + math: "\\mathfrak{m}" + }, + "𝔫": { + math: "\\mathfrak{n}" + }, + "𝔬": { + math: "\\mathfrak{o}" + }, + "𝔭": { + math: "\\mathfrak{p}" + }, + "𝔮": { + math: "\\mathfrak{q}" + }, + "𝔯": { + math: "\\mathfrak{r}" + }, + "𝔰": { + math: "\\mathfrak{s}" + }, + "𝔱": { + math: "\\mathfrak{t}" + }, + "𝔲": { + math: "\\mathfrak{u}" + }, + "𝔳": { + math: "\\mathfrak{v}" + }, + "𝔴": { + math: "\\mathfrak{w}" + }, + "𝔵": { + math: "\\mathfrak{x}" + }, + "𝔶": { + math: "\\mathfrak{y}" + }, + "𝔷": { + math: "\\mathfrak{z}" + }, + "𝔸": { + math: "\\mathbb{A}" + }, + "𝔹": { + math: "\\mathbb{B}" + }, + "𝔻": { + math: "\\mathbb{D}" + }, + "𝔼": { + math: "\\mathbb{E}" + }, + "𝔽": { + math: "\\mathbb{F}" + }, + "𝔾": { + math: "\\mathbb{G}" + }, + "𝕀": { + math: "\\mathbb{I}" + }, + "𝕁": { + math: "\\mathbb{J}" + }, + "𝕂": { + math: "\\mathbb{K}" + }, + "𝕃": { + math: "\\mathbb{L}" + }, + "𝕄": { + math: "\\mathbb{M}" + }, + "𝕆": { + math: "\\mathbb{O}" + }, + "𝕊": { + math: "\\mathbb{S}" + }, + "𝕋": { + math: "\\mathbb{T}" + }, + "𝕌": { + math: "\\mathbb{U}" + }, + "𝕍": { + math: "\\mathbb{V}" + }, + "𝕎": { + math: "\\mathbb{W}" + }, + "𝕏": { + math: "\\mathbb{X}" + }, + "𝕐": { + math: "\\mathbb{Y}" + }, + "𝕒": { + math: "\\mathbb{a}" + }, + "𝕓": { + math: "\\mathbb{b}" + }, + "𝕔": { + math: "\\mathbb{c}" + }, + "𝕕": { + math: "\\mathbb{d}" + }, + "𝕖": { + math: "\\mathbb{e}" + }, + "𝕗": { + math: "\\mathbb{f}" + }, + "𝕘": { + math: "\\mathbb{g}" + }, + "𝕙": { + math: "\\mathbb{h}" + }, + "𝕚": { + math: "\\mathbb{i}" + }, + "𝕛": { + math: "\\mathbb{j}" + }, + "𝕜": { + math: "\\mathbb{k}" + }, + "𝕝": { + math: "\\mathbb{l}" + }, + "𝕞": { + math: "\\mathbb{m}" + }, + "𝕟": { + math: "\\mathbb{n}" + }, + "𝕠": { + math: "\\mathbb{o}" + }, + "𝕡": { + math: "\\mathbb{p}" + }, + "𝕢": { + math: "\\mathbb{q}" + }, + "𝕣": { + math: "\\mathbb{r}" + }, + "𝕤": { + math: "\\mathbb{s}" + }, + "𝕥": { + math: "\\mathbb{t}" + }, + "𝕦": { + math: "\\mathbb{u}" + }, + "𝕧": { + math: "\\mathbb{v}" + }, + "𝕨": { + math: "\\mathbb{w}" + }, + "𝕩": { + math: "\\mathbb{x}" + }, + "𝕪": { + math: "\\mathbb{y}" + }, + "𝕫": { + math: "\\mathbb{z}" + }, + "𝕬": { + math: "\\mathslbb{A}" + }, + "𝕭": { + math: "\\mathslbb{B}" + }, + "𝕮": { + math: "\\mathslbb{C}" + }, + "𝕯": { + math: "\\mathslbb{D}" + }, + "𝕰": { + math: "\\mathslbb{E}" + }, + "𝕱": { + math: "\\mathslbb{F}" + }, + "𝕲": { + math: "\\mathslbb{G}" + }, + "𝕳": { + math: "\\mathslbb{H}" + }, + "𝕴": { + math: "\\mathslbb{I}" + }, + "𝕵": { + math: "\\mathslbb{J}" + }, + "𝕶": { + math: "\\mathslbb{K}" + }, + "𝕷": { + math: "\\mathslbb{L}" + }, + "𝕸": { + math: "\\mathslbb{M}" + }, + "𝕹": { + math: "\\mathslbb{N}" + }, + "𝕺": { + math: "\\mathslbb{O}" + }, + "𝕻": { + math: "\\mathslbb{P}" + }, + "𝕼": { + math: "\\mathslbb{Q}" + }, + "𝕽": { + math: "\\mathslbb{R}" + }, + "𝕾": { + math: "\\mathslbb{S}" + }, + "𝕿": { + math: "\\mathslbb{T}" + }, + "𝖀": { + math: "\\mathslbb{U}" + }, + "𝖁": { + math: "\\mathslbb{V}" + }, + "𝖂": { + math: "\\mathslbb{W}" + }, + "𝖃": { + math: "\\mathslbb{X}" + }, + "𝖄": { + math: "\\mathslbb{Y}" + }, + "𝖅": { + math: "\\mathslbb{Z}" + }, + "𝖆": { + math: "\\mathslbb{a}" + }, + "𝖇": { + math: "\\mathslbb{b}" + }, + "𝖈": { + math: "\\mathslbb{c}" + }, + "𝖉": { + math: "\\mathslbb{d}" + }, + "𝖊": { + math: "\\mathslbb{e}" + }, + "𝖋": { + math: "\\mathslbb{f}" + }, + "𝖌": { + math: "\\mathslbb{g}" + }, + "𝖍": { + math: "\\mathslbb{h}" + }, + "𝖎": { + math: "\\mathslbb{i}" + }, + "𝖏": { + math: "\\mathslbb{j}" + }, + "𝖐": { + math: "\\mathslbb{k}" + }, + "𝖑": { + math: "\\mathslbb{l}" + }, + "𝖒": { + math: "\\mathslbb{m}" + }, + "𝖓": { + math: "\\mathslbb{n}" + }, + "𝖔": { + math: "\\mathslbb{o}" + }, + "𝖕": { + math: "\\mathslbb{p}" + }, + "𝖖": { + math: "\\mathslbb{q}" + }, + "𝖗": { + math: "\\mathslbb{r}" + }, + "𝖘": { + math: "\\mathslbb{s}" + }, + "𝖙": { + math: "\\mathslbb{t}" + }, + "𝖚": { + math: "\\mathslbb{u}" + }, + "𝖛": { + math: "\\mathslbb{v}" + }, + "𝖜": { + math: "\\mathslbb{w}" + }, + "𝖝": { + math: "\\mathslbb{x}" + }, + "𝖞": { + math: "\\mathslbb{y}" + }, + "𝖟": { + math: "\\mathslbb{z}" + }, + "𝖠": { + math: "\\mathsf{A}" + }, + "𝖡": { + math: "\\mathsf{B}" + }, + "𝖢": { + math: "\\mathsf{C}" + }, + "𝖣": { + math: "\\mathsf{D}" + }, + "𝖤": { + math: "\\mathsf{E}" + }, + "𝖥": { + math: "\\mathsf{F}" + }, + "𝖦": { + math: "\\mathsf{G}" + }, + "𝖧": { + math: "\\mathsf{H}" + }, + "𝖨": { + math: "\\mathsf{I}" + }, + "𝖩": { + math: "\\mathsf{J}" + }, + "𝖪": { + math: "\\mathsf{K}" + }, + "𝖫": { + math: "\\mathsf{L}" + }, + "𝖬": { + math: "\\mathsf{M}" + }, + "𝖭": { + math: "\\mathsf{N}" + }, + "𝖮": { + math: "\\mathsf{O}" + }, + "𝖯": { + math: "\\mathsf{P}" + }, + "𝖰": { + math: "\\mathsf{Q}" + }, + "𝖱": { + math: "\\mathsf{R}" + }, + "𝖲": { + math: "\\mathsf{S}" + }, + "𝖳": { + math: "\\mathsf{T}" + }, + "𝖴": { + math: "\\mathsf{U}" + }, + "𝖵": { + math: "\\mathsf{V}" + }, + "𝖶": { + math: "\\mathsf{W}" + }, + "𝖷": { + math: "\\mathsf{X}" + }, + "𝖸": { + math: "\\mathsf{Y}" + }, + "𝖹": { + math: "\\mathsf{Z}" + }, + "𝖺": { + math: "\\mathsf{a}" + }, + "𝖻": { + math: "\\mathsf{b}" + }, + "𝖼": { + math: "\\mathsf{c}" + }, + "𝖽": { + math: "\\mathsf{d}" + }, + "𝖾": { + math: "\\mathsf{e}" + }, + "𝖿": { + math: "\\mathsf{f}" + }, + "𝗀": { + math: "\\mathsf{g}" + }, + "𝗁": { + math: "\\mathsf{h}" + }, + "𝗂": { + math: "\\mathsf{i}" + }, + "𝗃": { + math: "\\mathsf{j}" + }, + "𝗄": { + math: "\\mathsf{k}" + }, + "𝗅": { + math: "\\mathsf{l}" + }, + "𝗆": { + math: "\\mathsf{m}" + }, + "𝗇": { + math: "\\mathsf{n}" + }, + "𝗈": { + math: "\\mathsf{o}" + }, + "𝗉": { + math: "\\mathsf{p}" + }, + "𝗊": { + math: "\\mathsf{q}" + }, + "𝗋": { + math: "\\mathsf{r}" + }, + "𝗌": { + math: "\\mathsf{s}" + }, + "𝗍": { + math: "\\mathsf{t}" + }, + "𝗎": { + math: "\\mathsf{u}" + }, + "𝗏": { + math: "\\mathsf{v}" + }, + "𝗐": { + math: "\\mathsf{w}" + }, + "𝗑": { + math: "\\mathsf{x}" + }, + "𝗒": { + math: "\\mathsf{y}" + }, + "𝗓": { + math: "\\mathsf{z}" + }, + "𝗔": { + math: "\\mathsfbf{A}" + }, + "𝗕": { + math: "\\mathsfbf{B}" + }, + "𝗖": { + math: "\\mathsfbf{C}" + }, + "𝗗": { + math: "\\mathsfbf{D}" + }, + "𝗘": { + math: "\\mathsfbf{E}" + }, + "𝗙": { + math: "\\mathsfbf{F}" + }, + "𝗚": { + math: "\\mathsfbf{G}" + }, + "𝗛": { + math: "\\mathsfbf{H}" + }, + "𝗜": { + math: "\\mathsfbf{I}" + }, + "𝗝": { + math: "\\mathsfbf{J}" + }, + "𝗞": { + math: "\\mathsfbf{K}" + }, + "𝗟": { + math: "\\mathsfbf{L}" + }, + "𝗠": { + math: "\\mathsfbf{M}" + }, + "𝗡": { + math: "\\mathsfbf{N}" + }, + "𝗢": { + math: "\\mathsfbf{O}" + }, + "𝗣": { + math: "\\mathsfbf{P}" + }, + "𝗤": { + math: "\\mathsfbf{Q}" + }, + "𝗥": { + math: "\\mathsfbf{R}" + }, + "𝗦": { + math: "\\mathsfbf{S}" + }, + "𝗧": { + math: "\\mathsfbf{T}" + }, + "𝗨": { + math: "\\mathsfbf{U}" + }, + "𝗩": { + math: "\\mathsfbf{V}" + }, + "𝗪": { + math: "\\mathsfbf{W}" + }, + "𝗫": { + math: "\\mathsfbf{X}" + }, + "𝗬": { + math: "\\mathsfbf{Y}" + }, + "𝗭": { + math: "\\mathsfbf{Z}" + }, + "𝗮": { + math: "\\mathsfbf{a}" + }, + "𝗯": { + math: "\\mathsfbf{b}" + }, + "𝗰": { + math: "\\mathsfbf{c}" + }, + "𝗱": { + math: "\\mathsfbf{d}" + }, + "𝗲": { + math: "\\mathsfbf{e}" + }, + "𝗳": { + math: "\\mathsfbf{f}" + }, + "𝗴": { + math: "\\mathsfbf{g}" + }, + "𝗵": { + math: "\\mathsfbf{h}" + }, + "𝗶": { + math: "\\mathsfbf{i}" + }, + "𝗷": { + math: "\\mathsfbf{j}" + }, + "𝗸": { + math: "\\mathsfbf{k}" + }, + "𝗹": { + math: "\\mathsfbf{l}" + }, + "𝗺": { + math: "\\mathsfbf{m}" + }, + "𝗻": { + math: "\\mathsfbf{n}" + }, + "𝗼": { + math: "\\mathsfbf{o}" + }, + "𝗽": { + math: "\\mathsfbf{p}" + }, + "𝗾": { + math: "\\mathsfbf{q}" + }, + "𝗿": { + math: "\\mathsfbf{r}" + }, + "𝘀": { + math: "\\mathsfbf{s}" + }, + "𝘁": { + math: "\\mathsfbf{t}" + }, + "𝘂": { + math: "\\mathsfbf{u}" + }, + "𝘃": { + math: "\\mathsfbf{v}" + }, + "𝘄": { + math: "\\mathsfbf{w}" + }, + "𝘅": { + math: "\\mathsfbf{x}" + }, + "𝘆": { + math: "\\mathsfbf{y}" + }, + "𝘇": { + math: "\\mathsfbf{z}" + }, + "𝘈": { + math: "\\mathsfsl{A}" + }, + "𝘉": { + math: "\\mathsfsl{B}" + }, + "𝘊": { + math: "\\mathsfsl{C}" + }, + "𝘋": { + math: "\\mathsfsl{D}" + }, + "𝘌": { + math: "\\mathsfsl{E}" + }, + "𝘍": { + math: "\\mathsfsl{F}" + }, + "𝘎": { + math: "\\mathsfsl{G}" + }, + "𝘏": { + math: "\\mathsfsl{H}" + }, + "𝘐": { + math: "\\mathsfsl{I}" + }, + "𝘑": { + math: "\\mathsfsl{J}" + }, + "𝘒": { + math: "\\mathsfsl{K}" + }, + "𝘓": { + math: "\\mathsfsl{L}" + }, + "𝘔": { + math: "\\mathsfsl{M}" + }, + "𝘕": { + math: "\\mathsfsl{N}" + }, + "𝘖": { + math: "\\mathsfsl{O}" + }, + "𝘗": { + math: "\\mathsfsl{P}" + }, + "𝘘": { + math: "\\mathsfsl{Q}" + }, + "𝘙": { + math: "\\mathsfsl{R}" + }, + "𝘚": { + math: "\\mathsfsl{S}" + }, + "𝘛": { + math: "\\mathsfsl{T}" + }, + "𝘜": { + math: "\\mathsfsl{U}" + }, + "𝘝": { + math: "\\mathsfsl{V}" + }, + "𝘞": { + math: "\\mathsfsl{W}" + }, + "𝘟": { + math: "\\mathsfsl{X}" + }, + "𝘠": { + math: "\\mathsfsl{Y}" + }, + "𝘡": { + math: "\\mathsfsl{Z}" + }, + "𝘢": { + math: "\\mathsfsl{a}" + }, + "𝘣": { + math: "\\mathsfsl{b}" + }, + "𝘤": { + math: "\\mathsfsl{c}" + }, + "𝘥": { + math: "\\mathsfsl{d}" + }, + "𝘦": { + math: "\\mathsfsl{e}" + }, + "𝘧": { + math: "\\mathsfsl{f}" + }, + "𝘨": { + math: "\\mathsfsl{g}" + }, + "𝘩": { + math: "\\mathsfsl{h}" + }, + "𝘪": { + math: "\\mathsfsl{i}" + }, + "𝘫": { + math: "\\mathsfsl{j}" + }, + "𝘬": { + math: "\\mathsfsl{k}" + }, + "𝘭": { + math: "\\mathsfsl{l}" + }, + "𝘮": { + math: "\\mathsfsl{m}" + }, + "𝘯": { + math: "\\mathsfsl{n}" + }, + "𝘰": { + math: "\\mathsfsl{o}" + }, + "𝘱": { + math: "\\mathsfsl{p}" + }, + "𝘲": { + math: "\\mathsfsl{q}" + }, + "𝘳": { + math: "\\mathsfsl{r}" + }, + "𝘴": { + math: "\\mathsfsl{s}" + }, + "𝘵": { + math: "\\mathsfsl{t}" + }, + "𝘶": { + math: "\\mathsfsl{u}" + }, + "𝘷": { + math: "\\mathsfsl{v}" + }, + "𝘸": { + math: "\\mathsfsl{w}" + }, + "𝘹": { + math: "\\mathsfsl{x}" + }, + "𝘺": { + math: "\\mathsfsl{y}" + }, + "𝘻": { + math: "\\mathsfsl{z}" + }, + "𝘼": { + math: "\\mathsfbfsl{A}" + }, + "𝘽": { + math: "\\mathsfbfsl{B}" + }, + "𝘾": { + math: "\\mathsfbfsl{C}" + }, + "𝘿": { + math: "\\mathsfbfsl{D}" + }, + "𝙀": { + math: "\\mathsfbfsl{E}" + }, + "𝙁": { + math: "\\mathsfbfsl{F}" + }, + "𝙂": { + math: "\\mathsfbfsl{G}" + }, + "𝙃": { + math: "\\mathsfbfsl{H}" + }, + "𝙄": { + math: "\\mathsfbfsl{I}" + }, + "𝙅": { + math: "\\mathsfbfsl{J}" + }, + "𝙆": { + math: "\\mathsfbfsl{K}" + }, + "𝙇": { + math: "\\mathsfbfsl{L}" + }, + "𝙈": { + math: "\\mathsfbfsl{M}" + }, + "𝙉": { + math: "\\mathsfbfsl{N}" + }, + "𝙊": { + math: "\\mathsfbfsl{O}" + }, + "𝙋": { + math: "\\mathsfbfsl{P}" + }, + "𝙌": { + math: "\\mathsfbfsl{Q}" + }, + "𝙍": { + math: "\\mathsfbfsl{R}" + }, + "𝙎": { + math: "\\mathsfbfsl{S}" + }, + "𝙏": { + math: "\\mathsfbfsl{T}" + }, + "𝙐": { + math: "\\mathsfbfsl{U}" + }, + "𝙑": { + math: "\\mathsfbfsl{V}" + }, + "𝙒": { + math: "\\mathsfbfsl{W}" + }, + "𝙓": { + math: "\\mathsfbfsl{X}" + }, + "𝙔": { + math: "\\mathsfbfsl{Y}" + }, + "𝙕": { + math: "\\mathsfbfsl{Z}" + }, + "𝙖": { + math: "\\mathsfbfsl{a}" + }, + "𝙗": { + math: "\\mathsfbfsl{b}" + }, + "𝙘": { + math: "\\mathsfbfsl{c}" + }, + "𝙙": { + math: "\\mathsfbfsl{d}" + }, + "𝙚": { + math: "\\mathsfbfsl{e}" + }, + "𝙛": { + math: "\\mathsfbfsl{f}" + }, + "𝙜": { + math: "\\mathsfbfsl{g}" + }, + "𝙝": { + math: "\\mathsfbfsl{h}" + }, + "𝙞": { + math: "\\mathsfbfsl{i}" + }, + "𝙟": { + math: "\\mathsfbfsl{j}" + }, + "𝙠": { + math: "\\mathsfbfsl{k}" + }, + "𝙡": { + math: "\\mathsfbfsl{l}" + }, + "𝙢": { + math: "\\mathsfbfsl{m}" + }, + "𝙣": { + math: "\\mathsfbfsl{n}" + }, + "𝙤": { + math: "\\mathsfbfsl{o}" + }, + "𝙥": { + math: "\\mathsfbfsl{p}" + }, + "𝙦": { + math: "\\mathsfbfsl{q}" + }, + "𝙧": { + math: "\\mathsfbfsl{r}" + }, + "𝙨": { + math: "\\mathsfbfsl{s}" + }, + "𝙩": { + math: "\\mathsfbfsl{t}" + }, + "𝙪": { + math: "\\mathsfbfsl{u}" + }, + "𝙫": { + math: "\\mathsfbfsl{v}" + }, + "𝙬": { + math: "\\mathsfbfsl{w}" + }, + "𝙭": { + math: "\\mathsfbfsl{x}" + }, + "𝙮": { + math: "\\mathsfbfsl{y}" + }, + "𝙯": { + math: "\\mathsfbfsl{z}" + }, + "𝙰": { + math: "\\mathtt{A}" + }, + "𝙱": { + math: "\\mathtt{B}" + }, + "𝙲": { + math: "\\mathtt{C}" + }, + "𝙳": { + math: "\\mathtt{D}" + }, + "𝙴": { + math: "\\mathtt{E}" + }, + "𝙵": { + math: "\\mathtt{F}" + }, + "𝙶": { + math: "\\mathtt{G}" + }, + "𝙷": { + math: "\\mathtt{H}" + }, + "𝙸": { + math: "\\mathtt{I}" + }, + "𝙹": { + math: "\\mathtt{J}" + }, + "𝙺": { + math: "\\mathtt{K}" + }, + "𝙻": { + math: "\\mathtt{L}" + }, + "𝙼": { + math: "\\mathtt{M}" + }, + "𝙽": { + math: "\\mathtt{N}" + }, + "𝙾": { + math: "\\mathtt{O}" + }, + "𝙿": { + math: "\\mathtt{P}" + }, + "𝚀": { + math: "\\mathtt{Q}" + }, + "𝚁": { + math: "\\mathtt{R}" + }, + "𝚂": { + math: "\\mathtt{S}" + }, + "𝚃": { + math: "\\mathtt{T}" + }, + "𝚄": { + math: "\\mathtt{U}" + }, + "𝚅": { + math: "\\mathtt{V}" + }, + "𝚆": { + math: "\\mathtt{W}" + }, + "𝚇": { + math: "\\mathtt{X}" + }, + "𝚈": { + math: "\\mathtt{Y}" + }, + "𝚉": { + math: "\\mathtt{Z}" + }, + "𝚊": { + math: "\\mathtt{a}" + }, + "𝚋": { + math: "\\mathtt{b}" + }, + "𝚌": { + math: "\\mathtt{c}" + }, + "𝚍": { + math: "\\mathtt{d}" + }, + "𝚎": { + math: "\\mathtt{e}" + }, + "𝚏": { + math: "\\mathtt{f}" + }, + "𝚐": { + math: "\\mathtt{g}" + }, + "𝚑": { + math: "\\mathtt{h}" + }, + "𝚒": { + math: "\\mathtt{i}" + }, + "𝚓": { + math: "\\mathtt{j}" + }, + "𝚔": { + math: "\\mathtt{k}" + }, + "𝚕": { + math: "\\mathtt{l}" + }, + "𝚖": { + math: "\\mathtt{m}" + }, + "𝚗": { + math: "\\mathtt{n}" + }, + "𝚘": { + math: "\\mathtt{o}" + }, + "𝚙": { + math: "\\mathtt{p}" + }, + "𝚚": { + math: "\\mathtt{q}" + }, + "𝚛": { + math: "\\mathtt{r}" + }, + "𝚜": { + math: "\\mathtt{s}" + }, + "𝚝": { + math: "\\mathtt{t}" + }, + "𝚞": { + math: "\\mathtt{u}" + }, + "𝚟": { + math: "\\mathtt{v}" + }, + "𝚠": { + math: "\\mathtt{w}" + }, + "𝚡": { + math: "\\mathtt{x}" + }, + "𝚢": { + math: "\\mathtt{y}" + }, + "𝚣": { + math: "\\mathtt{z}" + }, + "𝚤": { + math: "\\imath" + }, + "𝚥": { + math: "\\jmath" + }, + "𝚨": { + math: "\\mathbf{A}" + }, + "𝚩": { + math: "\\mathbf{B}" + }, + "𝚪": { + math: "\\mathbf{\\Gamma}" + }, + "𝚫": { + math: "\\mathbf{\\Delta}" + }, + "𝚬": { + math: "\\mathbf{E}" + }, + "𝚭": { + math: "\\mathbf{Z}" + }, + "𝚮": { + math: "\\mathbf{H}" + }, + "𝚯": { + math: "\\mathbf{\\Theta}" + }, + "𝚰": { + math: "\\mathbf{I}" + }, + "𝚱": { + math: "\\mathbf{K}" + }, + "𝚲": { + math: "\\mathbf{\\Lambda}" + }, + "𝚳": { + math: "M" + }, + "𝚴": { + math: "N" + }, + "𝚵": { + math: "\\mathbf{\\Xi}" + }, + "𝚶": { + math: "O" + }, + "𝚷": { + math: "\\mathbf{\\Pi}" + }, + "𝚸": { + math: "\\mathbf{P}" + }, + "𝚹": { + math: "\\mathbf{\\vartheta}" + }, + "𝚺": { + math: "\\mathbf{\\Sigma}" + }, + "𝚻": { + math: "\\mathbf{T}" + }, + "𝚼": { + math: "\\mathbf{\\Upsilon}" + }, + "𝚽": { + math: "\\mathbf{\\Phi}" + }, + "𝚾": { + math: "\\mathbf{X}" + }, + "𝚿": { + math: "\\mathbf{\\Psi}" + }, + "𝛀": { + math: "\\mathbf{\\Omega}" + }, + "𝛁": { + math: "\\mathbf{\\nabla}" + }, + "𝛂": { + math: "\\mathbf{\\alpha}" + }, + "𝛃": { + math: "\\mathbf{\\beta}" + }, + "𝛄": { + math: "\\mathbf{\\gamma}" + }, + "𝛅": { + math: "\\mathbf{\\delta}" + }, + "𝛆": { + math: "\\mathbf{\\epsilon}" + }, + "𝛇": { + math: "\\mathbf{\\zeta}" + }, + "𝛈": { + math: "\\mathbf{\\eta}" + }, + "𝛉": { + math: "\\mathbf{\\theta}" + }, + "𝛊": { + math: "\\mathbf{I}" + }, + "𝛋": { + math: "\\mathbf{K}" + }, + "𝛌": { + math: "\\mathbf{\\lambda}" + }, + "𝛍": { + math: "M" + }, + "𝛎": { + math: "N" + }, + "𝛏": { + math: "\\mathbf{\\xi}" + }, + "𝛐": { + math: "O" + }, + "𝛑": { + math: "\\mathbf{\\pi}" + }, + "𝛒": { + math: "\\mathbf{P}" + }, + "𝛓": { + math: "\\mathbf{\\varsigma}" + }, + "𝛔": { + math: "\\mathbf{\\sigma}" + }, + "𝛕": { + math: "\\mathbf{T}" + }, + "𝛖": { + math: "\\mathbf{\\upsilon}" + }, + "𝛗": { + math: "\\mathbf{\\phi}" + }, + "𝛘": { + math: "\\mathbf{X}" + }, + "𝛙": { + math: "\\mathbf{\\psi}" + }, + "𝛚": { + math: "\\mathbf{\\omega}" + }, + "𝛛": { + math: "\\partial" + }, + "𝛜": { + math: "\\in" + }, + "𝛝": { + math: "\\mathbf{\\vartheta}" + }, + "𝛞": { + math: "\\mathbf{\\varkappa}" + }, + "𝛟": { + math: "\\mathbf{\\phi}" + }, + "𝛠": { + math: "\\mathbf{\\varrho}" + }, + "𝛡": { + math: "\\mathbf{\\varpi}" + }, + "𝛢": { + math: "\\mathsl{A}" + }, + "𝛣": { + math: "\\mathsl{B}" + }, + "𝛤": { + math: "\\mathsl{\\Gamma}" + }, + "𝛥": { + math: "\\mathsl{\\Delta}" + }, + "𝛦": { + math: "\\mathsl{E}" + }, + "𝛧": { + math: "\\mathsl{Z}" + }, + "𝛨": { + math: "\\mathsl{H}" + }, + "𝛩": { + math: "\\mathsl{\\Theta}" + }, + "𝛪": { + math: "\\mathsl{I}" + }, + "𝛫": { + math: "\\mathsl{K}" + }, + "𝛬": { + math: "\\mathsl{\\Lambda}" + }, + "𝛭": { + math: "M" + }, + "𝛮": { + math: "N" + }, + "𝛯": { + math: "\\mathsl{\\Xi}" + }, + "𝛰": { + math: "O" + }, + "𝛱": { + math: "\\mathsl{\\Pi}" + }, + "𝛲": { + math: "\\mathsl{P}" + }, + "𝛳": { + math: "\\mathsl{\\Theta}" + }, + "𝛴": { + math: "\\mathsl{\\Sigma}" + }, + "𝛵": { + math: "\\mathsl{T}" + }, + "𝛶": { + math: "\\mathsl{\\Upsilon}" + }, + "𝛷": { + math: "\\mathsl{\\Phi}" + }, + "𝛸": { + math: "\\mathsl{X}" + }, + "𝛹": { + math: "\\mathsl{\\Psi}" + }, + "𝛺": { + math: "\\mathsl{\\Omega}" + }, + "𝛻": { + math: "\\mathsl{\\nabla}" + }, + "𝛼": { + math: "\\mathsl{A}" + }, + "𝛽": { + math: "\\mathsl{B}" + }, + "𝛾": { + math: "\\mathsl{\\gamma}" + }, + "𝛿": { + math: "\\mathsl{\\delta}" + }, + "𝜀": { + math: "\\mathsl{E}" + }, + "𝜁": { + math: "\\mathsl{Z}" + }, + "𝜂": { + math: "\\mathsl{H}" + }, + "𝜃": { + math: "\\mathsl{\\theta}" + }, + "𝜄": { + math: "\\mathsl{I}" + }, + "𝜅": { + math: "\\mathsl{K}" + }, + "𝜆": { + math: "\\mathsl{\\lambda}" + }, + "𝜇": { + math: "\\mu" + }, + "𝜈": { + math: "\\nu" + }, + "𝜉": { + math: "\\mathsl{\\xi}" + }, + "𝜊": { + math: "o" + }, + "𝜋": { + math: "\\mathsl{\\pi}" + }, + "𝜌": { + math: "\\mathsl{P}" + }, + "𝜍": { + math: "\\mathsl{\\varsigma}" + }, + "𝜎": { + math: "\\mathsl{\\sigma}" + }, + "𝜏": { + math: "\\mathsl{T}" + }, + "𝜐": { + math: "\\mathsl{\\upsilon}" + }, + "𝜑": { + math: "\\mathsl{\\varphi}" + }, + "𝜒": { + math: "\\mathsl{X}" + }, + "𝜓": { + math: "\\mathsl{\\psi}" + }, + "𝜔": { + math: "\\mathsl{\\omega}" + }, + "𝜕": { + math: "\\partial" + }, + "𝜖": { + math: "\\in" + }, + "𝜗": { + math: "\\mathsl{\\vartheta}" + }, + "𝜘": { + math: "\\mathsl{\\varkappa}" + }, + "𝜙": { + math: "\\mathsl{\\phi}" + }, + "𝜚": { + math: "\\mathsl{\\varrho}" + }, + "𝜛": { + math: "\\mathsl{\\varpi}" + }, + "𝜜": { + math: "\\mathbit{A}" + }, + "𝜝": { + math: "\\mathbit{B}" + }, + "𝜞": { + math: "\\mathbit{\\Gamma}" + }, + "𝜟": { + math: "\\mathbit{\\Delta}" + }, + "𝜠": { + math: "\\mathbit{E}" + }, + "𝜡": { + math: "\\mathbit{Z}" + }, + "𝜢": { + math: "\\mathbit{H}" + }, + "𝜣": { + math: "\\mathbit{\\Theta}" + }, + "𝜤": { + math: "\\mathbit{I}" + }, + "𝜥": { + math: "\\mathbit{K}" + }, + "𝜦": { + math: "\\mathbit{\\Lambda}" + }, + "𝜧": { + math: "M" + }, + "𝜨": { + math: "N" + }, + "𝜩": { + math: "\\mathbit{\\Xi}" + }, + "𝜪": { + math: "O" + }, + "𝜫": { + math: "\\mathbit{\\Pi}" + }, + "𝜬": { + math: "\\mathbit{P}" + }, + "𝜭": { + math: "\\mathbit{O}" + }, + "𝜮": { + math: "\\mathbit{\\Sigma}" + }, + "𝜯": { + math: "\\mathbit{T}" + }, + "𝜰": { + math: "\\mathbit{\\Upsilon}" + }, + "𝜱": { + math: "\\mathbit{\\Phi}" + }, + "𝜲": { + math: "\\mathbit{X}" + }, + "𝜳": { + math: "\\mathbit{\\Psi}" + }, + "𝜴": { + math: "\\mathbit{\\Omega}" + }, + "𝜵": { + math: "\\mathbit{\\nabla}" + }, + "𝜶": { + math: "\\mathbit{\\alpha}" + }, + "𝜷": { + math: "\\mathbit{\\beta}" + }, + "𝜸": { + math: "\\mathbit{\\gamma}" + }, + "𝜹": { + math: "\\mathbit{\\delta}" + }, + "𝜺": { + math: "\\mathbit{\\epsilon}" + }, + "𝜻": { + math: "\\mathbit{\\zeta}" + }, + "𝜼": { + math: "\\mathbit{\\eta}" + }, + "𝜽": { + math: "\\mathbit{\\theta}" + }, + "𝜾": { + math: "\\mathbit{\\imath}" + }, + "𝜿": { + math: "\\mathbit{\\kappa}" + }, + "𝝀": { + math: "\\mathbit{\\lambda}" + }, + "𝝁": { + math: "\\mu" + }, + "𝝂": { + math: "N" + }, + "𝝃": { + math: "\\mathbit{\\xi}" + }, + "𝝄": { + math: "O" + }, + "𝝅": { + math: "\\mathbit{\\pi}" + }, + "𝝆": { + math: "\\mathbit{\\rho}" + }, + "𝝇": { + math: "\\mathbit{\\varsigma}" + }, + "𝝈": { + math: "\\mathbit{\\sigma}" + }, + "𝝉": { + math: "\\mathbit{\\tau}" + }, + "𝝊": { + math: "\\mathbit{\\upsilon}" + }, + "𝝋": { + math: "\\mathbit{\\varphi}" + }, + "𝝌": { + math: "\\mathbit{\\chi}" + }, + "𝝍": { + math: "\\mathbit{\\psi}" + }, + "𝝎": { + math: "\\mathbit{\\omega}" + }, + "𝝏": { + math: "\\partial" + }, + "𝝐": { + math: "\\in" + }, + "𝝑": { + math: "\\mathbit{\\vartheta}" + }, + "𝝒": { + math: "\\mathbit{\\varkappa}" + }, + "𝝓": { + math: "\\mathbit{\\phi}" + }, + "𝝔": { + math: "\\mathbit{\\varrho}" + }, + "𝝕": { + math: "\\mathbit{\\varpi}" + }, + "𝝖": { + math: "\\mathsfbf{A}" + }, + "𝝗": { + math: "\\mathsfbf{B}" + }, + "𝝘": { + math: "\\mathsfbf{\\Gamma}" + }, + "𝝙": { + math: "\\mathsfbf{\\Delta}" + }, + "𝝚": { + math: "\\mathsfbf{E}" + }, + "𝝛": { + math: "\\mathsfbf{Z}" + }, + "𝝜": { + math: "\\mathsfbf{H}" + }, + "𝝝": { + math: "\\mathsfbf{\\Theta}" + }, + "𝝞": { + math: "\\mathsfbf{I}" + }, + "𝝟": { + math: "\\mathsfbf{K}" + }, + "𝝠": { + math: "\\mathsfbf{\\Lambda}" + }, + "𝝡": { + math: "M" + }, + "𝝢": { + math: "N" + }, + "𝝣": { + math: "\\mathsfbf{\\Xi}" + }, + "𝝤": { + math: "O" + }, + "𝝥": { + math: "\\mathsfbf{\\Pi}" + }, + "𝝦": { + math: "\\mathsfbf{P}" + }, + "𝝧": { + math: "\\mathsfbf{\\Theta}" + }, + "𝝨": { + math: "\\mathsfbf{\\Sigma}" + }, + "𝝩": { + math: "\\mathsfbf{T}" + }, + "𝝪": { + math: "\\mathsfbf{\\Upsilon}" + }, + "𝝫": { + math: "\\mathsfbf{\\Phi}" + }, + "𝝬": { + math: "\\mathsfbf{X}" + }, + "𝝭": { + math: "\\mathsfbf{\\Psi}" + }, + "𝝮": { + math: "\\mathsfbf{\\Omega}" + }, + "𝝯": { + math: "\\mathsfbf{\\nabla}" + }, + "𝝰": { + math: "\\mathsfbf{\\alpha}" + }, + "𝝱": { + math: "\\mathsfbf{\\beta}" + }, + "𝝲": { + math: "\\mathsfbf{\\gamma}" + }, + "𝝳": { + math: "\\mathsfbf{\\delta}" + }, + "𝝴": { + math: "\\mathsfbf{\\varepsilon}" + }, + "𝝵": { + math: "\\mathsfbf{\\zeta}" + }, + "𝝶": { + math: "\\mathsfbf{\\eta}" + }, + "𝝷": { + math: "\\mathsfbf{\\theta}" + }, + "𝝸": { + math: "\\mathsfbf{\\imath}" + }, + "𝝹": { + math: "\\mathsfbf{\\kappa}" + }, + "𝝺": { + math: "\\mathsfbf{\\lambda}" + }, + "𝝻": { + math: "\\mu" + }, + "𝝼": { + math: "\\nu" + }, + "𝝽": { + math: "\\mathsfbf{\\xi}" + }, + "𝝾": { + math: "o" + }, + "𝝿": { + math: "\\mathsfbf{\\pi}" + }, + "𝞀": { + math: "\\mathsfbf{\\rho}" + }, + "𝞁": { + math: "\\mathsfbf{\\varsigma}" + }, + "𝞂": { + math: "\\mathsfbf{\\sigma}" + }, + "𝞃": { + math: "\\mathsfbf{\\tau}" + }, + "𝞄": { + math: "\\mathsfbf{\\upsilon}" + }, + "𝞅": { + math: "\\mathsfbf{\\varphi}" + }, + "𝞆": { + math: "\\mathsfbf{\\chi}" + }, + "𝞇": { + math: "\\mathsfbf{\\psi}" + }, + "𝞈": { + math: "\\mathsfbf{\\omega}" + }, + "𝞉": { + math: "\\partial" + }, + "𝞊": { + math: "\\in" + }, + "𝞋": { + math: "\\mathsfbf{\\vartheta}" + }, + "𝞌": { + math: "\\mathsfbf{\\varkappa}" + }, + "𝞍": { + math: "\\mathsfbf{\\phi}" + }, + "𝞎": { + math: "\\mathsfbf{\\varrho}" + }, + "𝞏": { + math: "\\mathsfbf{\\varpi}" + }, + "𝞐": { + math: "\\mathsfbfsl{A}" + }, + "𝞑": { + math: "\\mathsfbfsl{B}" + }, + "𝞒": { + math: "\\mathsfbfsl{\\Gamma}" + }, + "𝞓": { + math: "\\mathsfbfsl{\\Delta}" + }, + "𝞔": { + math: "\\mathsfbfsl{E}" + }, + "𝞕": { + math: "\\mathsfbfsl{Z}" + }, + "𝞖": { + math: "\\mathsfbfsl{H}" + }, + "𝞗": { + math: "\\mathsfbfsl{\\Theta}" + }, + "𝞘": { + math: "\\mathsfbfsl{I}" + }, + "𝞙": { + math: "\\mathsfbfsl{K}" + }, + "𝞚": { + math: "\\mathsfbfsl{\\Lambda}" + }, + "𝞛": { + math: "\\mathsfbfsl{M}" + }, + "𝞜": { + math: "\\mathsfbfsl{N}" + }, + "𝞝": { + math: "\\mathsfbfsl{\\Xi}" + }, + "𝞞": { + math: "\\mathsfbfsl{O}" + }, + "𝞟": { + math: "\\mathsfbfsl{\\Pi}" + }, + "𝞠": { + math: "\\mathsfbfsl{P}" + }, + "𝞡": { + math: "\\mathsfbfsl{\\Theta}" + }, + "𝞢": { + math: "\\mathsfbfsl{\\Sigma}" + }, + "𝞣": { + math: "\\mathsfbfsl{T}" + }, + "𝞤": { + math: "\\mathsfbfsl{\\Upsilon}" + }, + "𝞥": { + math: "\\mathsfbfsl{\\Phi}" + }, + "𝞦": { + math: "\\mathsfbfsl{X}" + }, + "𝞧": { + math: "\\mathsfbfsl{\\Psi}" + }, + "𝞨": { + math: "\\mathsfbfsl{\\Omega}" + }, + "𝞩": { + math: "\\mathsfbfsl{\\nabla}" + }, + "𝞪": { + math: "\\mathsfbfsl{\\alpha}" + }, + "𝞫": { + math: "\\mathsfbfsl{\\beta}" + }, + "𝞬": { + math: "\\mathsfbfsl{\\gamma}" + }, + "𝞭": { + math: "\\mathsfbfsl{\\delta}" + }, + "𝞮": { + math: "\\mathsfbfsl{\\varepsilon}" + }, + "𝞯": { + math: "\\mathsfbfsl{\\zeta}" + }, + "𝞰": { + math: "\\mathsfbfsl{\\eta}" + }, + "𝞱": { + math: "\\mathsfbfsl{\\theta}" + }, + "𝞲": { + math: "\\mathsfbfsl{\\imath}" + }, + "𝞳": { + math: "\\mathsfbfsl{\\kappa}" + }, + "𝞴": { + math: "\\mathsfbfsl{\\lambda}" + }, + "𝞵": { + math: "\\mu" + }, + "𝞶": { + math: "\\nu" + }, + "𝞷": { + math: "\\mathsfbfsl{\\xi}" + }, + "𝞸": { + math: "o" + }, + "𝞹": { + math: "\\mathsfbfsl{\\pi}" + }, + "𝞺": { + math: "\\mathsfbfsl{\\rho}" + }, + "𝞻": { + math: "\\mathsfbfsl{\\varsigma}" + }, + "𝞼": { + math: "\\mathsfbfsl{\\sigma}" + }, + "𝞽": { + math: "\\mathsfbfsl{\\tau}" + }, + "𝞾": { + math: "\\mathsfbfsl{\\upsilon}" + }, + "𝞿": { + math: "\\mathsfbfsl{\\varphi}" + }, + "𝟀": { + math: "\\mathsfbfsl{\\chi}" + }, + "𝟁": { + math: "\\mathsfbfsl{\\psi}" + }, + "𝟂": { + math: "\\mathsfbfsl{\\omega}" + }, + "𝟃": { + math: "\\partial" + }, + "𝟄": { + math: "\\in" + }, + "𝟅": { + math: "\\mathsfbfsl{\\vartheta}" + }, + "𝟆": { + math: "\\mathsfbfsl{\\varkappa}" + }, + "𝟇": { + math: "\\mathsfbfsl{\\phi}" + }, + "𝟈": { + math: "\\mathsfbfsl{\\varrho}" + }, + "𝟉": { + math: "\\mathsfbfsl{\\varpi}" + }, + "𝟊": { + math: "\\mbfDigamma" + }, + "𝟋": { + math: "\\mbfdigamma" + }, + "𝟎": { + math: "\\mathbf{0}" + }, + "𝟏": { + math: "\\mathbf{1}" + }, + "𝟐": { + math: "\\mathbf{2}" + }, + "𝟑": { + math: "\\mathbf{3}" + }, + "𝟒": { + math: "\\mathbf{4}" + }, + "𝟓": { + math: "\\mathbf{5}" + }, + "𝟔": { + math: "\\mathbf{6}" + }, + "𝟕": { + math: "\\mathbf{7}" + }, + "𝟖": { + math: "\\mathbf{8}" + }, + "𝟗": { + math: "\\mathbf{9}" + }, + "𝟘": { + math: "\\mathbb{0}" + }, + "𝟙": { + math: "\\mathbb{1}" + }, + "𝟚": { + math: "\\mathbb{2}" + }, + "𝟛": { + math: "\\mathbb{3}" + }, + "𝟜": { + math: "\\mathbb{4}" + }, + "𝟝": { + math: "\\mathbb{5}" + }, + "𝟞": { + math: "\\mathbb{6}" + }, + "𝟟": { + math: "\\mathbb{7}" + }, + "𝟠": { + math: "\\mathbb{8}" + }, + "𝟡": { + math: "\\mathbb{9}" + }, + "𝟢": { + math: "\\mathsf{0}" + }, + "𝟣": { + math: "\\mathsf{1}" + }, + "𝟤": { + math: "\\mathsf{2}" + }, + "𝟥": { + math: "\\mathsf{3}" + }, + "𝟦": { + math: "\\mathsf{4}" + }, + "𝟧": { + math: "\\mathsf{5}" + }, + "𝟨": { + math: "\\mathsf{6}" + }, + "𝟩": { + math: "\\mathsf{7}" + }, + "𝟪": { + math: "\\mathsf{8}" + }, + "𝟫": { + math: "\\mathsf{9}" + }, + "𝟬": { + math: "\\mathsfbf{0}" + }, + "𝟭": { + math: "\\mathsfbf{1}" + }, + "𝟮": { + math: "\\mathsfbf{2}" + }, + "𝟯": { + math: "\\mathsfbf{3}" + }, + "𝟰": { + math: "\\mathsfbf{4}" + }, + "𝟱": { + math: "\\mathsfbf{5}" + }, + "𝟲": { + math: "\\mathsfbf{6}" + }, + "𝟳": { + math: "\\mathsfbf{7}" + }, + "𝟴": { + math: "\\mathsfbf{8}" + }, + "𝟵": { + math: "\\mathsfbf{9}" + }, + "𝟶": { + math: "\\mathtt{0}" + }, + "𝟷": { + math: "\\mathtt{1}" + }, + "𝟸": { + math: "\\mathtt{2}" + }, + "𝟹": { + math: "\\mathtt{3}" + }, + "𝟺": { + math: "\\mathtt{4}" + }, + "𝟻": { + math: "\\mathtt{5}" + }, + "𝟼": { + math: "\\mathtt{6}" + }, + "𝟽": { + math: "\\mathtt{7}" + }, + "𝟾": { + math: "\\mathtt{8}" + }, + "𝟿": { + math: "\\mathtt{9}" + } + }; + + var $$1 = { + math: "\\$", + text: "\\$" + }; + var _$1 = { + math: "\\_", + text: "\\_" + }; + var require$$1 = { + "#": { + math: "\\#", + text: "\\#" + }, + $: $$1, + "%": { + math: "\\%", + text: "\\%" + }, + "&": { + math: "\\&", + text: "\\&" + }, + "/​": { + text: "{\\slash}" + }, + "<": { + math: "<" + }, + ">": { + math: ">" + }, + "\\": { + math: "\\backslash", + text: "{\\textbackslash}" + }, + "^": { + math: "\\sphat", + text: "\\^" + }, + _: _$1, + "i︠a︡": { + text: "\\t{ia}" + }, + "{": { + math: "\\lbrace", + text: "\\{" + }, + "}": { + math: "\\rbrace", + text: "\\}" + }, + "~": { + math: "\\sptilde", + text: "{\\textasciitilde}" + }, + " ": { + math: "~", + space: true, + text: "~" + }, + "¡": { + text: "{\\textexclamdown}" + }, + "¢": { + math: "\\cent", + text: "{\\textcent}", + textpackages: [ + "textcomp" + ] + }, + "£": { + math: "\\pounds", + text: "{\\textsterling}", + textpackages: [ + "textcomp" + ] + }, + "¤": { + text: "{\\textcurrency}", + textpackages: [ + "textcomp" + ] + }, + "¥": { + math: "\\yen", + text: "{\\textyen}", + textpackages: [ + "textcomp" + ] + }, + "¦": { + text: "{\\textbrokenbar}", + textpackages: [ + "textcomp" + ] + }, + "§": { + text: "{\\textsection}", + textpackages: [ + "textcomp" + ] + }, + "¨": { + math: "\\spddot", + text: "{\\textasciidieresis}" + }, + "©": { + text: "{\\textcopyright}", + textpackages: [ + "textcomp" + ] + }, + "ª": { + text: "{\\textordfeminine}", + textpackages: [ + "textcomp" + ] + }, + "«": { + text: "{\\guillemotleft}" + }, + "¬": { + math: "\\lnot" + }, + "­": { + math: "\\-", + text: "\\-" + }, + "®": { + math: "\\circledR", + text: "{\\textregistered}", + textpackages: [ + "textcomp" + ] + }, + "¯": { + text: "{\\textasciimacron}" + }, + "°": { + math: "^\\circ", + text: "{\\textdegree}", + textpackages: [ + "textcomp" + ] + }, + "±": { + math: "\\pm" + }, + "²": { + math: "^{2}" + }, + "³": { + math: "^{3}" + }, + "´": { + text: "{\\textasciiacute}" + }, + "µ": { + text: "{\\textmu}" + }, + "¶": { + text: "{\\textparagraph}", + textpackages: [ + "textcomp" + ] + }, + "·": { + math: "\\cdot" + }, + "¸": { + text: "{\\c}" + }, + "¹": { + math: "^{1}" + }, + "º": { + text: "{\\textordmasculine}", + textpackages: [ + "textcomp" + ] + }, + "»": { + text: "{\\guillemotright}" + }, + "¼": { + math: "\\frac{1}{4}" + }, + "½": { + math: "\\frac{1}{2}" + }, + "¾": { + math: "\\frac{3}{4}" + }, + "¿": { + text: "{\\textquestiondown}" + }, + "À": { + text: "{\\`A}" + }, + "Á": { + text: "{\\'A}" + }, + "Â": { + text: "{\\^A}" + }, + "Ã": { + text: "{\\~A}" + }, + "Ä": { + text: "{\\\"A}" + }, + "Å": { + text: "{\\AA}" + }, + "Æ": { + text: "{\\AE}" + }, + "Ç": { + text: "{\\c C}" + }, + "È": { + text: "{\\`E}" + }, + "É": { + text: "{\\'E}" + }, + "Ê": { + text: "{\\^E}" + }, + "Ë": { + text: "{\\\"E}" + }, + "Ì": { + text: "{\\`I}" + }, + "Í": { + text: "{\\'I}" + }, + "Î": { + text: "{\\^I}" + }, + "Ï": { + text: "{\\\"I}" + }, + "Ð": { + text: "{\\DH}" + }, + "Ñ": { + text: "{\\~N}" + }, + "Ò": { + text: "{\\`O}" + }, + "Ó": { + text: "{\\'O}" + }, + "Ô": { + text: "{\\^O}" + }, + "Õ": { + text: "{\\~O}" + }, + "Ö": { + text: "{\\\"O}" + }, + "×": { + math: "\\times", + text: "{\\texttimes}" + }, + "Ø": { + text: "{\\O}" + }, + "Ù": { + text: "{\\`U}" + }, + "Ú": { + text: "{\\'U}" + }, + "Û": { + text: "{\\^U}" + }, + "Ü": { + text: "{\\\"U}" + }, + "Ý": { + text: "{\\'Y}" + }, + "Þ": { + text: "{\\TH}" + }, + "ß": { + text: "{\\ss}" + }, + "à": { + text: "{\\`a}" + }, + "á": { + text: "{\\'a}" + }, + "â": { + text: "{\\^a}" + }, + "ã": { + text: "{\\~a}" + }, + "ä": { + text: "{\\\"a}" + }, + "å": { + text: "{\\aa}" + }, + "æ": { + text: "{\\ae}" + }, + "ç": { + text: "{\\c c}" + }, + "è": { + text: "{\\`e}" + }, + "é": { + text: "{\\'e}" + }, + "ê": { + text: "{\\^e}" + }, + "ë": { + text: "{\\\"e}" + }, + "ì": { + text: "{\\`i}" + }, + "í": { + text: "{\\'i}" + }, + "î": { + text: "{\\^i}" + }, + "ï": { + text: "{\\\"i}" + }, + "ð": { + math: "\\eth", + mathpackages: [ + "amssymb", + "arevmath" + ], + text: "{\\dh}" + }, + "ñ": { + text: "{\\~n}" + }, + "ò": { + text: "{\\`o}" + }, + "ó": { + text: "{\\'o}" + }, + "ô": { + text: "{\\^o}" + }, + "õ": { + text: "{\\~o}" + }, + "ö": { + text: "{\\\"o}" + }, + "÷": { + math: "\\div" + }, + "ø": { + text: "{\\o}" + }, + "ù": { + text: "{\\`u}" + }, + "ú": { + text: "{\\'u}" + }, + "û": { + text: "{\\^u}" + }, + "ü": { + text: "{\\\"u}" + }, + "ý": { + text: "{\\'y}" + }, + "þ": { + text: "{\\th}" + }, + "ÿ": { + text: "{\\\"y}" + }, + "Ā": { + text: "{\\=A}" + }, + "ā": { + text: "{\\=a}" + }, + "Ă": { + text: "{\\u A}" + }, + "ă": { + text: "{\\u a}" + }, + "Ą": { + text: "{\\k{A}}" + }, + "ą": { + text: "{\\k{a}}" + }, + "Ć": { + text: "{\\'C}" + }, + "ć": { + text: "{\\'c}" + }, + "Ĉ": { + text: "{\\^C}" + }, + "ĉ": { + text: "{\\^c}" + }, + "Ċ": { + text: "{\\.C}" + }, + "ċ": { + text: "{\\.c}" + }, + "Č": { + text: "{\\v C}" + }, + "č": { + text: "{\\v c}" + }, + "Ď": { + text: "{\\v D}" + }, + "ď": { + text: "{\\v d}" + }, + "Đ": { + text: "{\\DJ}" + }, + "đ": { + text: "{\\dj}" + }, + "Ē": { + text: "{\\=E}" + }, + "ē": { + text: "{\\=e}" + }, + "Ĕ": { + text: "{\\u E}" + }, + "ĕ": { + text: "{\\u e}" + }, + "Ė": { + text: "{\\.E}" + }, + "ė": { + text: "{\\.e}" + }, + "Ę": { + text: "{\\k{E}}" + }, + "ę": { + text: "{\\k{e}}" + }, + "Ě": { + text: "{\\v E}" + }, + "ě": { + text: "{\\v e}" + }, + "Ĝ": { + text: "{\\^G}" + }, + "ĝ": { + text: "{\\^g}" + }, + "Ğ": { + text: "{\\u G}" + }, + "ğ": { + text: "{\\u g}" + }, + "Ġ": { + text: "{\\.G}" + }, + "ġ": { + text: "{\\.g}" + }, + "Ģ": { + text: "{\\c G}" + }, + "ģ": { + text: "{\\c g}" + }, + "Ĥ": { + text: "{\\^H}" + }, + "ĥ": { + text: "{\\^h}" + }, + "Ħ": { + text: "{\\fontencoding{LELA}\\selectfont\\char40}" + }, + "ħ": { + math: "\\Elzxh" + }, + "Ĩ": { + text: "{\\~I}" + }, + "ĩ": { + text: "{\\~i}" + }, + "Ī": { + text: "{\\=I}" + }, + "ī": { + text: "{\\=i}" + }, + "Ĭ": { + text: "{\\u I}" + }, + "ĭ": { + text: "{\\u \\i}" + }, + "Į": { + text: "{\\k{I}}" + }, + "į": { + text: "{\\k{i}}" + }, + "İ": { + text: "{\\.I}" + }, + "ı": { + math: "\\imath", + text: "{\\i}" + }, + "IJ": { + text: "IJ" + }, + "ij": { + text: "ij" + }, + "Ĵ": { + text: "{\\^J}" + }, + "ĵ": { + text: "{\\^\\j}" + }, + "Ķ": { + text: "{\\c K}" + }, + "ķ": { + text: "{\\c k}" + }, + "ĸ": { + text: "{\\fontencoding{LELA}\\selectfont\\char91}" + }, + "Ĺ": { + text: "{\\'L}" + }, + "ĺ": { + text: "{\\'l}" + }, + "Ļ": { + text: "{\\c L}" + }, + "ļ": { + text: "{\\c l}" + }, + "Ľ": { + text: "{\\v L}" + }, + "ľ": { + text: "{\\v l}" + }, + "Ŀ": { + text: "{\\fontencoding{LELA}\\selectfont\\char201}" + }, + "ŀ": { + text: "{\\fontencoding{LELA}\\selectfont\\char202}" + }, + "Ł": { + text: "{\\L}" + }, + "ł": { + text: "{\\l}" + }, + "Ń": { + text: "{\\'N}" + }, + "ń": { + text: "{\\'n}" + }, + "Ņ": { + text: "{\\c N}" + }, + "ņ": { + text: "{\\c n}" + }, + "Ň": { + text: "{\\v N}" + }, + "ň": { + text: "{\\v n}" + }, + "ʼn": { + text: "'n" + }, + "Ŋ": { + text: "{\\NG}" + }, + "ŋ": { + text: "{\\ng}" + }, + "Ō": { + text: "{\\=O}" + }, + "ō": { + text: "{\\=o}" + }, + "Ŏ": { + text: "{\\u O}" + }, + "ŏ": { + text: "{\\u o}" + }, + "Ő": { + text: "{\\H O}" + }, + "ő": { + text: "{\\H o}" + }, + "Œ": { + text: "{\\OE}" + }, + "œ": { + text: "{\\oe}" + }, + "Ŕ": { + text: "{\\'R}" + }, + "ŕ": { + text: "{\\'r}" + }, + "Ŗ": { + text: "{\\c R}" + }, + "ŗ": { + text: "{\\c r}" + }, + "Ř": { + text: "{\\v R}" + }, + "ř": { + text: "{\\v r}" + }, + "Ś": { + text: "{\\'S}" + }, + "ś": { + text: "{\\'s}" + }, + "Ŝ": { + text: "{\\^S}" + }, + "ŝ": { + text: "{\\^s}" + }, + "Ş": { + text: "{\\c S}" + }, + "ş": { + text: "{\\c s}" + }, + "Š": { + text: "{\\v S}" + }, + "š": { + text: "{\\v s}" + }, + "Ţ": { + text: "{\\c T}" + }, + "ţ": { + text: "{\\c t}" + }, + "Ť": { + text: "{\\v T}" + }, + "ť": { + text: "{\\v t}" + }, + "Ŧ": { + text: "{\\fontencoding{LELA}\\selectfont\\char47}" + }, + "ŧ": { + text: "{\\fontencoding{LELA}\\selectfont\\char63}" + }, + "Ũ": { + text: "{\\~U}" + }, + "ũ": { + text: "{\\~u}" + }, + "Ū": { + text: "{\\=U}" + }, + "ū": { + text: "{\\=u}" + }, + "Ŭ": { + text: "{\\u U}" + }, + "ŭ": { + text: "{\\u u}" + }, + "Ů": { + text: "{\\r{U}}" + }, + "ů": { + text: "{\\r{u}}" + }, + "Ű": { + text: "{\\H U}" + }, + "ű": { + text: "{\\H u}" + }, + "Ų": { + text: "{\\k{U}}" + }, + "ų": { + text: "{\\k{u}}" + }, + "Ŵ": { + text: "{\\^W}" + }, + "ŵ": { + text: "{\\^w}" + }, + "Ŷ": { + text: "{\\^Y}" + }, + "ŷ": { + text: "{\\^y}" + }, + "Ÿ": { + text: "{\\\"Y}" + }, + "Ź": { + text: "{\\'Z}" + }, + "ź": { + text: "{\\'z}" + }, + "Ż": { + text: "{\\.Z}" + }, + "ż": { + text: "{\\.z}" + }, + "Ž": { + text: "{\\v Z}" + }, + "ž": { + text: "{\\v z}" + }, + "ſ": { + text: "s" + }, + "ƒ": { + math: "f" + }, + "ƕ": { + text: "{\\texthvlig}" + }, + "ƞ": { + text: "{\\textnrleg}" + }, + "ƪ": { + text: "{\\textesh}" + }, + "Ƶ": { + math: "\\Zbar" + }, + "ƺ": { + text: "{\\fontencoding{LELA}\\selectfont\\char195}" + }, + "ǂ": { + text: "{\\textdoublepipe}" + }, + "Ǎ": { + text: "{\\v A}" + }, + "ǎ": { + text: "{\\v a}" + }, + "Ǐ": { + text: "{\\v I}" + }, + "ǐ": { + text: "{\\v i}" + }, + "Ǒ": { + text: "{\\v O}" + }, + "ǒ": { + text: "{\\v o}" + }, + "Ǔ": { + text: "{\\v U}" + }, + "ǔ": { + text: "{\\v u}" + }, + "Ǧ": { + text: "{\\v G}" + }, + "ǧ": { + text: "{\\v g}" + }, + "Ǩ": { + text: "{\\v K}" + }, + "ǩ": { + text: "{\\v k}" + }, + "Ǫ": { + text: "{\\k{O}}" + }, + "ǫ": { + text: "{\\k{o}}" + }, + "ǰ": { + text: "{\\v j}" + }, + "Ǵ": { + text: "{\\'G}" + }, + "ǵ": { + text: "{\\'g}" + }, + "Ȩ": { + text: "{\\c E}" + }, + "ȩ": { + text: "{\\c e}" + }, + "ȷ": { + math: "\\jmath" + }, + "ɐ": { + math: "\\Elztrna" + }, + "ɒ": { + math: "\\Elztrnsa" + }, + "ɔ": { + math: "\\Elzopeno" + }, + "ɖ": { + math: "\\Elzrtld" + }, + "ɘ": { + text: "{\\fontencoding{LEIP}\\selectfont\\char61}" + }, + "ə": { + math: "\\Elzschwa" + }, + "ɛ": { + math: "\\varepsilon" + }, + "ɡ": { + text: "g" + }, + "ɣ": { + math: "\\Elzpgamma" + }, + "ɤ": { + math: "\\Elzpbgam" + }, + "ɥ": { + math: "\\Elztrnh" + }, + "ɬ": { + math: "\\Elzbtdl" + }, + "ɭ": { + math: "\\Elzrtll" + }, + "ɯ": { + math: "\\Elztrnm" + }, + "ɰ": { + math: "\\Elztrnmlr" + }, + "ɱ": { + math: "\\Elzltlmr" + }, + "ɲ": { + text: "{\\Elzltln}" + }, + "ɳ": { + math: "\\Elzrtln" + }, + "ɷ": { + math: "\\Elzclomeg" + }, + "ɸ": { + text: "{\\textphi}" + }, + "ɹ": { + math: "\\Elztrnr" + }, + "ɺ": { + math: "\\Elztrnrl" + }, + "ɻ": { + math: "\\Elzrttrnr" + }, + "ɼ": { + math: "\\Elzrl" + }, + "ɽ": { + math: "\\Elzrtlr" + }, + "ɾ": { + math: "\\Elzfhr" + }, + "ɿ": { + text: "{\\fontencoding{LEIP}\\selectfont\\char202}" + }, + "ʂ": { + math: "\\Elzrtls" + }, + "ʃ": { + math: "\\Elzesh" + }, + "ʇ": { + math: "\\Elztrnt" + }, + "ʈ": { + math: "\\Elzrtlt" + }, + "ʊ": { + math: "\\Elzpupsil" + }, + "ʋ": { + math: "\\Elzpscrv" + }, + "ʌ": { + math: "\\Elzinvv" + }, + "ʍ": { + math: "\\Elzinvw" + }, + "ʎ": { + math: "\\Elztrny" + }, + "ʐ": { + math: "\\Elzrtlz" + }, + "ʒ": { + math: "\\Elzyogh" + }, + "ʔ": { + math: "\\Elzglst" + }, + "ʕ": { + math: "\\Elzreglst" + }, + "ʖ": { + math: "\\Elzinglst" + }, + "ʞ": { + text: "{\\textturnk}" + }, + "ʤ": { + math: "\\Elzdyogh" + }, + "ʧ": { + math: "\\Elztesh" + }, + "ʰ": { + math: "^{h}", + text: "\\textsuperscript{h}" + }, + "ʲ": { + math: "^{j}", + text: "\\textsuperscript{j}" + }, + "ʳ": { + math: "^{r}", + text: "\\textsuperscript{r}" + }, + "ʷ": { + math: "^{w}", + text: "\\textsuperscript{w}" + }, + "ʸ": { + math: "^{y}", + text: "\\textsuperscript{y}" + }, + "ʹ": { + text: "'" + }, + "ʻ": { + text: "'" + }, + "ʼ": { + text: "'" + }, + "ʽ": { + text: "'" + }, + "ʿ": { + text: "{\\lasp}", + textpackages: [ + "mathscinet" + ] + }, + "ˆ": { + text: "{\\textasciicircum}" + }, + "ˇ": { + text: "{\\textasciicaron}" + }, + "ˈ": { + math: "\\Elzverts" + }, + "ˉ": { + text: "-" + }, + "ˌ": { + math: "\\Elzverti" + }, + "ː": { + math: "\\Elzlmrk" + }, + "ˑ": { + math: "\\Elzhlmrk" + }, + "˒": { + math: "\\Elzsbrhr" + }, + "˓": { + math: "\\Elzsblhr" + }, + "˔": { + math: "\\Elzrais" + }, + "˕": { + math: "\\Elzlow" + }, + "˘": { + text: "{\\textasciibreve}" + }, + "˙": { + text: "{\\textperiodcentered}", + textpackages: [ + "textcomp" + ] + }, + "˚": { + text: "{\\r{}}" + }, + "˛": { + text: "{\\k{}}" + }, + "˜": { + text: "{\\texttildelow}" + }, + "˝": { + text: "{\\H{}}" + }, + "ˡ": { + math: "^{l}", + text: "\\textsuperscript{l}" + }, + "ˢ": { + math: "^{s}", + text: "\\textsuperscript{s}" + }, + "ˣ": { + math: "^{x}", + text: "\\textsuperscript{x}" + }, + "˥": { + text: "\\tone{55}" + }, + "˦": { + text: "\\tone{44}" + }, + "˧": { + text: "\\tone{33}" + }, + "˨": { + text: "\\tone{22}" + }, + "˩": { + text: "\\tone{11}" + }, + "̀": { + math: "\\grave", + combiningdiacritic: true, + text: "\\`" + }, + "̀̄": { + text: "{\\textgravemacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̄̀": { + text: "{\\textgravemacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̀̇": { + text: "{\\textgravedot}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̇̀": { + text: "{\\textgravedot}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "́": { + math: "\\acute", + combiningdiacritic: true, + text: "\\'" + }, + "́̄": { + text: "{\\textacutemacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̄́": { + text: "{\\textacutemacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "́̌": { + text: "{\\textacutewedge}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̌́": { + text: "{\\textacutewedge}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̂": { + math: "\\hat", + combiningdiacritic: true, + text: "\\^" + }, + "̂̇": { + text: "{\\textcircumdot}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̇̂": { + text: "{\\textcircumdot}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̃": { + math: "\\tilde", + combiningdiacritic: true, + text: "\\~" + }, + "̃̇": { + text: "{\\texttildedot}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̇̃": { + text: "{\\texttildedot}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̄": { + math: "\\bar", + combiningdiacritic: true, + text: "\\=" + }, + "̅": { + math: "\\overline", + combiningdiacritic: true + }, + "̆": { + math: "\\breve", + combiningdiacritic: true, + text: "{\\u}" + }, + "̆̄": { + text: "{\\textbrevemacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̄̆": { + text: "{\\textbrevemacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̇": { + math: "\\dot", + combiningdiacritic: true, + text: "\\." + }, + "̇́": { + text: "{\\textdotacute}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "́̇": { + text: "{\\textdotacute}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̇̆": { + text: "{\\textdotbreve}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̆̇": { + text: "{\\textdotbreve}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̈": { + math: "\\ddot", + combiningdiacritic: true, + text: "\\\"" + }, + "̉": { + math: "\\ovhook" + }, + "̊": { + math: "\\mathring", + combiningdiacritic: true, + text: "{\\r}" + }, + "̊̄": { + text: "{\\textringmacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̄̊": { + text: "{\\textringmacron}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̋": { + text: "{\\H}", + combiningdiacritic: true + }, + "̌": { + math: "\\check", + text: "{\\v}", + combiningdiacritic: true + }, + "̍": { + text: "{\\textvbaraccent}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̎": { + text: "{\\textdoublevbaraccent}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̏": { + text: "{\\textdoublegrave}", + combiningdiacritic: true + }, + "̐": { + text: "{\\textdotbreve}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̑": { + text: "{\\fontencoding{LECO}\\selectfont\\char177}" + }, + "̒": { + math: "\\oturnedcomma" + }, + "̕": { + math: "\\ocommatopright" + }, + "̖": { + text: "{\\textsubgrave}", + combiningdiacritic: true + }, + "̘": { + text: "{\\textadvancing}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̙": { + text: "{\\textretracting}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̚": { + math: "\\droang", + text: "{\\textcorner}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̜": { + text: "{\\textsublhalfring}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̝": { + text: "{\\textraising}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̞": { + text: "{\\textlowering}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̟": { + text: "{\\textsubplus}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̡": { + math: "\\Elzpalh" + }, + "̢": { + text: "{\\Elzrh}" + }, + "̣": { + text: "{\\d}", + combiningdiacritic: true + }, + "̤": { + text: "{\\textsubumlaut}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̥": { + text: "{\\textsubring}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̧": { + text: "{\\c}", + combiningdiacritic: true + }, + "̨": { + text: "{\\k}", + combiningdiacritic: true + }, + "̩": { + text: "{\\textsyllabic}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̪": { + math: "\\Elzsbbrg", + text: "{\\textsubbridge}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̫": { + text: "{\\fontencoding{LECO}\\selectfont\\char203}" + }, + "̬": { + text: "{\\textsubwedge}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̯": { + text: "{\\textsubarch}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̰": { + math: "\\utilde", + text: "{\\textsubtilde}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̱": { + math: "\\underbar", + combiningdiacritic: true, + text: "{\\textsubbar}", + textpackages: [ + "tipa" + ] + }, + "̲": { + math: "\\underline" + }, + "̴": { + text: "{\\textsuperimposetilde}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̵": { + text: "{\\Elzxl}" + }, + "̶": { + text: "{\\Elzbar}" + }, + "̷": { + text: "{\\fontencoding{LECO}\\selectfont\\char215}" + }, + "̸": { + math: "\\not" + }, + "̹": { + text: "{\\textsubrhalfring}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̺": { + text: "{\\textinvsubbridge}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̻": { + text: "{\\textsubsquare}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̼": { + text: "{\\textseagull}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "̽": { + text: "{\\textovercross}", + combiningdiacritic: true, + textpackages: [ + "tipa" + ] + }, + "͡": { + text: "{\\fontencoding{LECO}\\selectfont\\char225}" + }, + "ʹ": { + text: "'" + }, + "͵": { + text: "," + }, + ";": { + text: ";" + }, + "Ά": { + text: "{\\'A}" + }, + "Έ": { + text: "{\\'E}" + }, + "Ή": { + text: "{\\'H}" + }, + "Ί": { + text: "{\\'{}I}" + }, + "Ό": { + text: "{\\'{}O}" + }, + "Ύ": { + math: "\\mathrm{'Y}" + }, + "Ώ": { + math: "\\mathrm{'\\Omega}" + }, + "ΐ": { + math: "\\acute{\\ddot{\\iota}}" + }, + "Α": { + math: "A" + }, + "Β": { + math: "B" + }, + "Γ": { + math: "\\Gamma" + }, + "Δ": { + math: "\\Delta" + }, + "Ε": { + math: "E" + }, + "Ζ": { + math: "Z" + }, + "Η": { + math: "H" + }, + "Θ": { + math: "\\Theta" + }, + "Ι": { + math: "I" + }, + "Κ": { + math: "K" + }, + "Λ": { + math: "\\Lambda" + }, + "Μ": { + math: "M" + }, + "Ν": { + math: "N" + }, + "Ξ": { + math: "\\Xi" + }, + "Ο": { + math: "O" + }, + "Π": { + math: "\\Pi" + }, + "Ρ": { + math: "P" + }, + "Σ": { + math: "\\Sigma" + }, + "Τ": { + math: "T" + }, + "Υ": { + math: "\\Upsilon" + }, + "Φ": { + math: "\\Phi" + }, + "Χ": { + math: "X" + }, + "Ψ": { + math: "\\Psi" + }, + "Ω": { + math: "\\Omega" + }, + "Ϊ": { + math: "\\mathrm{\\ddot{I}}" + }, + "Ϋ": { + math: "\\mathrm{\\ddot{Y}}" + }, + "ά": { + text: "{\\'$\\alpha$}" + }, + "έ": { + math: "\\acute{\\epsilon}" + }, + "ή": { + math: "\\acute{\\eta}" + }, + "ί": { + math: "\\acute{\\iota}" + }, + "ΰ": { + math: "\\acute{\\ddot{\\upsilon}}" + }, + "α": { + math: "\\alpha" + }, + "β": { + math: "\\beta" + }, + "γ": { + math: "\\gamma" + }, + "δ": { + math: "\\delta" + }, + "ε": { + math: "\\epsilon" + }, + "ζ": { + math: "\\zeta" + }, + "η": { + math: "\\eta" + }, + "θ": { + math: "\\theta", + text: "{\\texttheta}" + }, + "ι": { + math: "\\iota" + }, + "κ": { + math: "\\kappa" + }, + "λ": { + math: "\\lambda" + }, + "μ": { + math: "\\mu" + }, + "ν": { + math: "\\nu" + }, + "ξ": { + math: "\\xi" + }, + "ο": { + math: "o" + }, + "π": { + math: "\\pi" + }, + "ρ": { + math: "\\rho" + }, + "ς": { + math: "\\varsigma" + }, + "σ": { + math: "\\sigma" + }, + "τ": { + math: "\\tau" + }, + "υ": { + math: "\\upsilon" + }, + "φ": { + math: "\\varphi" + }, + "χ": { + math: "\\chi" + }, + "ψ": { + math: "\\psi" + }, + "ω": { + math: "\\omega" + }, + "ϊ": { + math: "\\ddot{\\iota}" + }, + "ϋ": { + math: "\\ddot{\\upsilon}" + }, + "ό": { + text: "{\\'o}" + }, + "ύ": { + math: "\\acute{\\upsilon}" + }, + "ώ": { + math: "\\acute{\\omega}" + }, + "ϐ": { + math: "\\varbeta", + text: "\\Pisymbol{ppi022}{87}" + }, + "ϑ": { + math: "\\vartheta", + text: "{\\textvartheta}" + }, + "ϒ": { + math: "\\Upsilon" + }, + "ϕ": { + math: "\\phi" + }, + "ϖ": { + math: "\\varpi" + }, + "Ϙ": { + math: "\\Qoppa" + }, + "ϙ": { + math: "\\qoppa" + }, + "Ϛ": { + math: "\\Stigma" + }, + "ϛ": { + math: "\\stigma" + }, + "Ϝ": { + math: "\\Digamma" + }, + "ϝ": { + math: "\\digamma" + }, + "Ϟ": { + math: "\\Koppa" + }, + "ϟ": { + math: "\\koppa" + }, + "Ϡ": { + math: "\\Sampi" + }, + "ϡ": { + math: "\\sampi" + }, + "ϰ": { + math: "\\varkappa" + }, + "ϱ": { + math: "\\varrho" + }, + "ϴ": { + math: "\\upvarTheta", + text: "{\\textTheta}" + }, + "ϵ": { + math: "\\epsilon" + }, + "϶": { + math: "\\backepsilon" + }, + "Ё": { + text: "{\\cyrchar\\CYRYO}" + }, + "Ђ": { + text: "{\\cyrchar\\CYRDJE}" + }, + "Ѓ": { + text: "{\\cyrchar{\\'\\CYRG}}" + }, + "Є": { + text: "{\\cyrchar\\CYRIE}" + }, + "Ѕ": { + text: "{\\cyrchar\\CYRDZE}" + }, + "І": { + text: "{\\cyrchar\\CYRII}" + }, + "Ї": { + text: "{\\cyrchar\\CYRYI}" + }, + "Ј": { + text: "{\\cyrchar\\CYRJE}" + }, + "Љ": { + text: "{\\cyrchar\\CYRLJE}" + }, + "Њ": { + text: "{\\cyrchar\\CYRNJE}" + }, + "Ћ": { + text: "{\\cyrchar\\CYRTSHE}" + }, + "Ќ": { + text: "{\\cyrchar{\\'\\CYRK}}" + }, + "Ў": { + text: "{\\cyrchar\\CYRUSHRT}" + }, + "Џ": { + text: "{\\cyrchar\\CYRDZHE}" + }, + "А": { + text: "{\\cyrchar\\CYRA}" + }, + "Б": { + text: "{\\cyrchar\\CYRB}" + }, + "В": { + text: "{\\cyrchar\\CYRV}" + }, + "Г": { + text: "{\\cyrchar\\CYRG}" + }, + "Д": { + text: "{\\cyrchar\\CYRD}" + }, + "Е": { + text: "{\\cyrchar\\CYRE}" + }, + "Ж": { + text: "{\\cyrchar\\CYRZH}" + }, + "З": { + text: "{\\cyrchar\\CYRZ}" + }, + "И": { + text: "{\\cyrchar\\CYRI}" + }, + "Й": { + text: "{\\cyrchar\\CYRISHRT}" + }, + "К": { + text: "{\\cyrchar\\CYRK}" + }, + "Л": { + text: "{\\cyrchar\\CYRL}" + }, + "М": { + text: "{\\cyrchar\\CYRM}" + }, + "Н": { + text: "{\\cyrchar\\CYRN}" + }, + "О": { + text: "{\\cyrchar\\CYRO}" + }, + "П": { + text: "{\\cyrchar\\CYRP}" + }, + "Р": { + text: "{\\cyrchar\\CYRR}" + }, + "С": { + text: "{\\cyrchar\\CYRS}" + }, + "Т": { + text: "{\\cyrchar\\CYRT}" + }, + "У": { + text: "{\\cyrchar\\CYRU}" + }, + "Ф": { + text: "{\\cyrchar\\CYRF}" + }, + "Х": { + text: "{\\cyrchar\\CYRH}" + }, + "Ц": { + text: "{\\cyrchar\\CYRC}" + }, + "Ч": { + text: "{\\cyrchar\\CYRCH}" + }, + "Ш": { + text: "{\\cyrchar\\CYRSH}" + }, + "Щ": { + text: "{\\cyrchar\\CYRSHCH}" + }, + "Ъ": { + text: "{\\cyrchar\\CYRHRDSN}" + }, + "Ы": { + text: "{\\cyrchar\\CYRERY}" + }, + "Ь": { + text: "{\\cyrchar\\CYRSFTSN}" + }, + "Э": { + text: "{\\cyrchar\\CYREREV}" + }, + "Ю": { + text: "{\\cyrchar\\CYRYU}" + }, + "Я": { + text: "{\\cyrchar\\CYRYA}" + }, + "а": { + text: "{\\cyrchar\\cyra}" + }, + "б": { + text: "{\\cyrchar\\cyrb}" + }, + "в": { + text: "{\\cyrchar\\cyrv}" + }, + "г": { + text: "{\\cyrchar\\cyrg}" + }, + "д": { + text: "{\\cyrchar\\cyrd}" + }, + "е": { + text: "{\\cyrchar\\cyre}" + }, + "ж": { + text: "{\\cyrchar\\cyrzh}" + }, + "з": { + text: "{\\cyrchar\\cyrz}" + }, + "и": { + text: "{\\cyrchar\\cyri}" + }, + "й": { + text: "{\\cyrchar\\cyrishrt}" + }, + "к": { + text: "{\\cyrchar\\cyrk}" + }, + "л": { + text: "{\\cyrchar\\cyrl}" + }, + "м": { + text: "{\\cyrchar\\cyrm}" + }, + "н": { + text: "{\\cyrchar\\cyrn}" + }, + "о": { + text: "{\\cyrchar\\cyro}" + }, + "п": { + text: "{\\cyrchar\\cyrp}" + }, + "р": { + text: "{\\cyrchar\\cyrr}" + }, + "с": { + text: "{\\cyrchar\\cyrs}" + }, + "т": { + text: "{\\cyrchar\\cyrt}" + }, + "у": { + text: "{\\cyrchar\\cyru}" + }, + "ф": { + text: "{\\cyrchar\\cyrf}" + }, + "х": { + text: "{\\cyrchar\\cyrh}" + }, + "ц": { + text: "{\\cyrchar\\cyrc}" + }, + "ч": { + text: "{\\cyrchar\\cyrch}" + }, + "ш": { + text: "{\\cyrchar\\cyrsh}" + }, + "щ": { + text: "{\\cyrchar\\cyrshch}" + }, + "ъ": { + text: "{\\cyrchar\\cyrhrdsn}" + }, + "ы": { + text: "{\\cyrchar\\cyrery}" + }, + "ь": { + text: "{\\cyrchar\\cyrsftsn}" + }, + "э": { + text: "{\\cyrchar\\cyrerev}" + }, + "ю": { + text: "{\\cyrchar\\cyryu}" + }, + "я": { + text: "{\\cyrchar\\cyrya}" + }, + "ё": { + text: "{\\cyrchar\\cyryo}" + }, + "ђ": { + text: "{\\cyrchar\\cyrdje}" + }, + "ѓ": { + text: "{\\cyrchar{\\'\\cyrg}}" + }, + "є": { + text: "{\\cyrchar\\cyrie}" + }, + "ѕ": { + text: "{\\cyrchar\\cyrdze}" + }, + "і": { + text: "{\\cyrchar\\cyrii}" + }, + "ї": { + text: "{\\cyrchar\\cyryi}" + }, + "ј": { + text: "{\\cyrchar\\cyrje}" + }, + "љ": { + text: "{\\cyrchar\\cyrlje}" + }, + "њ": { + text: "{\\cyrchar\\cyrnje}" + }, + "ћ": { + text: "{\\cyrchar\\cyrtshe}" + }, + "ќ": { + text: "{\\cyrchar{\\'\\cyrk}}" + }, + "ў": { + text: "{\\cyrchar\\cyrushrt}" + }, + "џ": { + text: "{\\cyrchar\\cyrdzhe}" + }, + "Ѡ": { + text: "{\\cyrchar\\CYROMEGA}" + }, + "ѡ": { + text: "{\\cyrchar\\cyromega}" + }, + "Ѣ": { + text: "{\\cyrchar\\CYRYAT}" + }, + "Ѥ": { + text: "{\\cyrchar\\CYRIOTE}" + }, + "ѥ": { + text: "{\\cyrchar\\cyriote}" + }, + "Ѧ": { + text: "{\\cyrchar\\CYRLYUS}" + }, + "ѧ": { + text: "{\\cyrchar\\cyrlyus}" + }, + "Ѩ": { + text: "{\\cyrchar\\CYRIOTLYUS}" + }, + "ѩ": { + text: "{\\cyrchar\\cyriotlyus}" + }, + "Ѫ": { + text: "{\\cyrchar\\CYRBYUS}" + }, + "Ѭ": { + text: "{\\cyrchar\\CYRIOTBYUS}" + }, + "ѭ": { + text: "{\\cyrchar\\cyriotbyus}" + }, + "Ѯ": { + text: "{\\cyrchar\\CYRKSI}" + }, + "ѯ": { + text: "{\\cyrchar\\cyrksi}" + }, + "Ѱ": { + text: "{\\cyrchar\\CYRPSI}" + }, + "ѱ": { + text: "{\\cyrchar\\cyrpsi}" + }, + "Ѳ": { + text: "{\\cyrchar\\CYRFITA}" + }, + "Ѵ": { + text: "{\\cyrchar\\CYRIZH}" + }, + "Ѹ": { + text: "{\\cyrchar\\CYRUK}" + }, + "ѹ": { + text: "{\\cyrchar\\cyruk}" + }, + "Ѻ": { + text: "{\\cyrchar\\CYROMEGARND}" + }, + "ѻ": { + text: "{\\cyrchar\\cyromegarnd}" + }, + "Ѽ": { + text: "{\\cyrchar\\CYROMEGATITLO}" + }, + "ѽ": { + text: "{\\cyrchar\\cyromegatitlo}" + }, + "Ѿ": { + text: "{\\cyrchar\\CYROT}" + }, + "ѿ": { + text: "{\\cyrchar\\cyrot}" + }, + "Ҁ": { + text: "{\\cyrchar\\CYRKOPPA}" + }, + "ҁ": { + text: "{\\cyrchar\\cyrkoppa}" + }, + "҂": { + text: "{\\cyrchar\\cyrthousands}" + }, + "҈": { + text: "{\\cyrchar\\cyrhundredthousands}" + }, + "҉": { + text: "{\\cyrchar\\cyrmillions}" + }, + "Ҍ": { + text: "{\\cyrchar\\CYRSEMISFTSN}" + }, + "ҍ": { + text: "{\\cyrchar\\cyrsemisftsn}" + }, + "Ҏ": { + text: "{\\cyrchar\\CYRRTICK}" + }, + "ҏ": { + text: "{\\cyrchar\\cyrrtick}" + }, + "Ґ": { + text: "{\\cyrchar\\CYRGUP}" + }, + "ґ": { + text: "{\\cyrchar\\cyrgup}" + }, + "Ғ": { + text: "{\\cyrchar\\CYRGHCRS}" + }, + "ғ": { + text: "{\\cyrchar\\cyrghcrs}" + }, + "Ҕ": { + text: "{\\cyrchar\\CYRGHK}" + }, + "ҕ": { + text: "{\\cyrchar\\cyrghk}" + }, + "Җ": { + text: "{\\cyrchar\\CYRZHDSC}" + }, + "җ": { + text: "{\\cyrchar\\cyrzhdsc}" + }, + "Ҙ": { + text: "{\\cyrchar\\CYRZDSC}" + }, + "ҙ": { + text: "{\\cyrchar\\cyrzdsc}" + }, + "Қ": { + text: "{\\cyrchar\\CYRKDSC}" + }, + "қ": { + text: "{\\cyrchar\\cyrkdsc}" + }, + "Ҝ": { + text: "{\\cyrchar\\CYRKVCRS}" + }, + "ҝ": { + text: "{\\cyrchar\\cyrkvcrs}" + }, + "Ҟ": { + text: "{\\cyrchar\\CYRKHCRS}" + }, + "ҟ": { + text: "{\\cyrchar\\cyrkhcrs}" + }, + "Ҡ": { + text: "{\\cyrchar\\CYRKBEAK}" + }, + "ҡ": { + text: "{\\cyrchar\\cyrkbeak}" + }, + "Ң": { + text: "{\\cyrchar\\CYRNDSC}" + }, + "ң": { + text: "{\\cyrchar\\cyrndsc}" + }, + "Ҥ": { + text: "{\\cyrchar\\CYRNG}" + }, + "ҥ": { + text: "{\\cyrchar\\cyrng}" + }, + "Ҧ": { + text: "{\\cyrchar\\CYRPHK}" + }, + "ҧ": { + text: "{\\cyrchar\\cyrphk}" + }, + "Ҩ": { + text: "{\\cyrchar\\CYRABHHA}" + }, + "ҩ": { + text: "{\\cyrchar\\cyrabhha}" + }, + "Ҫ": { + text: "{\\cyrchar\\CYRSDSC}" + }, + "ҫ": { + text: "{\\cyrchar\\cyrsdsc}" + }, + "Ҭ": { + text: "{\\cyrchar\\CYRTDSC}" + }, + "ҭ": { + text: "{\\cyrchar\\cyrtdsc}" + }, + "Ү": { + text: "{\\cyrchar\\CYRY}" + }, + "ү": { + text: "{\\cyrchar\\cyry}" + }, + "Ұ": { + text: "{\\cyrchar\\CYRYHCRS}" + }, + "ұ": { + text: "{\\cyrchar\\cyryhcrs}" + }, + "Ҳ": { + text: "{\\cyrchar\\CYRHDSC}" + }, + "ҳ": { + text: "{\\cyrchar\\cyrhdsc}" + }, + "Ҵ": { + text: "{\\cyrchar\\CYRTETSE}" + }, + "ҵ": { + text: "{\\cyrchar\\cyrtetse}" + }, + "Ҷ": { + text: "{\\cyrchar\\CYRCHRDSC}" + }, + "ҷ": { + text: "{\\cyrchar\\cyrchrdsc}" + }, + "Ҹ": { + text: "{\\cyrchar\\CYRCHVCRS}" + }, + "ҹ": { + text: "{\\cyrchar\\cyrchvcrs}" + }, + "Һ": { + text: "{\\cyrchar\\CYRSHHA}" + }, + "һ": { + text: "{\\cyrchar\\cyrshha}" + }, + "Ҽ": { + text: "{\\cyrchar\\CYRABHCH}" + }, + "ҽ": { + text: "{\\cyrchar\\cyrabhch}" + }, + "Ҿ": { + text: "{\\cyrchar\\CYRABHCHDSC}" + }, + "ҿ": { + text: "{\\cyrchar\\cyrabhchdsc}" + }, + "Ӏ": { + text: "{\\cyrchar\\CYRpalochka}" + }, + "Ӄ": { + text: "{\\cyrchar\\CYRKHK}" + }, + "ӄ": { + text: "{\\cyrchar\\cyrkhk}" + }, + "Ӈ": { + text: "{\\cyrchar\\CYRNHK}" + }, + "ӈ": { + text: "{\\cyrchar\\cyrnhk}" + }, + "Ӌ": { + text: "{\\cyrchar\\CYRCHLDSC}" + }, + "ӌ": { + text: "{\\cyrchar\\cyrchldsc}" + }, + "Ӕ": { + text: "{\\cyrchar\\CYRAE}" + }, + "ӕ": { + text: "{\\cyrchar\\cyrae}" + }, + "Ә": { + text: "{\\cyrchar\\CYRSCHWA}" + }, + "ә": { + text: "{\\cyrchar\\cyrschwa}" + }, + "Ӡ": { + text: "{\\cyrchar\\CYRABHDZE}" + }, + "ӡ": { + text: "{\\cyrchar\\cyrabhdze}" + }, + "Ө": { + text: "{\\cyrchar\\CYROTLD}" + }, + "ө": { + text: "{\\cyrchar\\cyrotld}" + }, + "ࡱ": { + math: "\\\\backslash" + }, + "ᵃ": { + math: "^{a}", + text: "\\textsuperscript{a}" + }, + "ᵇ": { + math: "^{b}", + text: "\\textsuperscript{b}" + }, + "ᵈ": { + math: "^{d}", + text: "\\textsuperscript{d}" + }, + "ᵉ": { + math: "^{e}", + text: "\\textsuperscript{e}" + }, + "ᵍ": { + math: "^{g}", + text: "\\textsuperscript{g}" + }, + "ᵏ": { + math: "^{k}", + text: "\\textsuperscript{k}" + }, + "ᵐ": { + math: "^{m}", + text: "\\textsuperscript{m}" + }, + "ᵒ": { + math: "^{o}", + text: "\\textsuperscript{o}" + }, + "ᵖ": { + math: "^{p}", + text: "\\textsuperscript{p}" + }, + "ᵗ": { + math: "^{t}", + text: "\\textsuperscript{t}" + }, + "ᵘ": { + math: "^{u}", + text: "\\textsuperscript{u}" + }, + "ᵛ": { + math: "^{v}", + text: "\\textsuperscript{v}" + }, + "ᶜ": { + math: "^{c}", + text: "\\textsuperscript{c}" + }, + "ᶠ": { + math: "^{f}", + text: "\\textsuperscript{f}" + }, + "ᶻ": { + math: "^{z}", + text: "\\textsuperscript{z}" + }, + "Ḃ": { + text: "{\\.B}" + }, + "ḃ": { + text: "{\\.b}" + }, + "Ḅ": { + text: "{\\d B}" + }, + "ḅ": { + text: "{\\d b}" + }, + "Ḇ": { + text: "{\\b B}" + }, + "ḇ": { + text: "{\\b b}" + }, + "Ḋ": { + text: "{\\.D}" + }, + "ḋ": { + text: "{\\.d}" + }, + "Ḍ": { + text: "{\\d D}" + }, + "ḍ": { + text: "{\\d d}" + }, + "Ḏ": { + text: "{\\b D}" + }, + "ḏ": { + text: "{\\b d}" + }, + "Ḑ": { + text: "{\\c D}" + }, + "ḑ": { + text: "{\\c d}" + }, + "Ḝ": { + text: "{\\c{\\u{E}}}" + }, + "ḝ": { + text: "{\\c{\\u{e}}}" + }, + "Ḟ": { + text: "{\\.F}" + }, + "ḟ": { + text: "{\\.f}" + }, + "Ḡ": { + text: "{\\=G}" + }, + "ḡ": { + text: "{\\=g}" + }, + "Ḣ": { + text: "{\\.H}" + }, + "ḣ": { + text: "{\\.h}" + }, + "Ḥ": { + text: "{\\d H}" + }, + "ḥ": { + text: "{\\d h}" + }, + "Ḧ": { + text: "{\\\"H}" + }, + "ḧ": { + text: "{\\\"h}" + }, + "Ḩ": { + text: "{\\c H}" + }, + "ḩ": { + text: "{\\c h}" + }, + "Ḱ": { + text: "{\\'K}" + }, + "ḱ": { + text: "{\\'k}" + }, + "Ḳ": { + text: "{\\d K}" + }, + "ḳ": { + text: "{\\d k}" + }, + "Ḵ": { + text: "{\\b K}" + }, + "ḵ": { + text: "{\\b k}" + }, + "Ḷ": { + text: "{\\d L}" + }, + "ḷ": { + text: "{\\d l}" + }, + "Ḻ": { + text: "{\\b L}" + }, + "ḻ": { + text: "{\\b l}" + }, + "Ḿ": { + text: "{\\'M}" + }, + "ḿ": { + text: "{\\'m}" + }, + "Ṁ": { + text: "{\\.M}" + }, + "ṁ": { + text: "{\\.m}" + }, + "Ṃ": { + text: "{\\d M}" + }, + "ṃ": { + text: "{\\d m}" + }, + "Ṅ": { + text: "{\\.N}" + }, + "ṅ": { + text: "{\\.n}" + }, + "Ṇ": { + text: "{\\d N}" + }, + "ṇ": { + text: "{\\d n}" + }, + "Ṉ": { + text: "{\\b N}" + }, + "ṉ": { + text: "{\\b n}" + }, + "Ṕ": { + text: "{\\'P}" + }, + "ṕ": { + text: "{\\'p}" + }, + "Ṗ": { + text: "{\\.P}" + }, + "ṗ": { + text: "{\\.p}" + }, + "Ṙ": { + text: "{\\.R}" + }, + "ṙ": { + text: "{\\.r}" + }, + "Ṛ": { + text: "{\\d R}" + }, + "ṛ": { + text: "{\\d r}" + }, + "Ṟ": { + text: "{\\b R}" + }, + "ṟ": { + text: "{\\b r}" + }, + "Ṡ": { + text: "{\\.S}" + }, + "ṡ": { + text: "{\\.s}" + }, + "Ṣ": { + text: "{\\d S}" + }, + "ṣ": { + text: "{\\d s}" + }, + "Ṫ": { + text: "{\\.T}" + }, + "ṫ": { + text: "{\\.t}" + }, + "Ṭ": { + text: "{\\d T}" + }, + "ṭ": { + text: "{\\d t}" + }, + "Ṯ": { + text: "{\\b T}" + }, + "ṯ": { + text: "{\\b t}" + }, + "Ṽ": { + text: "{\\~V}" + }, + "ṽ": { + text: "{\\~v}" + }, + "Ṿ": { + text: "{\\d V}" + }, + "ṿ": { + text: "{\\d v}" + }, + "Ẁ": { + text: "{\\`W}" + }, + "ẁ": { + text: "{\\`w}" + }, + "Ẃ": { + text: "{\\'W}" + }, + "ẃ": { + text: "{\\'w}" + }, + "Ẅ": { + text: "{\\\"W}" + }, + "ẅ": { + text: "{\\\"w}" + }, + "Ẇ": { + text: "{\\.W}" + }, + "ẇ": { + text: "{\\.w}" + }, + "Ẉ": { + text: "{\\d W}" + }, + "ẉ": { + text: "{\\d w}" + }, + "Ẋ": { + text: "{\\.X}" + }, + "ẋ": { + text: "{\\.x}" + }, + "Ẍ": { + text: "{\\\"X}" + }, + "ẍ": { + text: "{\\\"x}" + }, + "Ẏ": { + text: "{\\.Y}" + }, + "ẏ": { + text: "{\\.y}" + }, + "Ẑ": { + text: "{\\^Z}" + }, + "ẑ": { + text: "{\\^z}" + }, + "Ẓ": { + text: "{\\d Z}" + }, + "ẓ": { + text: "{\\d z}" + }, + "Ẕ": { + text: "{\\b Z}" + }, + "ẕ": { + text: "{\\b z}" + }, + "ẖ": { + text: "{\\b h}" + }, + "ẗ": { + text: "{\\\"t}" + }, + "ẘ": { + text: "{\\r{w}}" + }, + "ẙ": { + text: "{\\r{y}}" + }, + "Ạ": { + text: "{\\d A}" + }, + "ạ": { + text: "{\\d a}" + }, + "Ẹ": { + text: "{\\d E}" + }, + "ẹ": { + text: "{\\d e}" + }, + "Ẽ": { + text: "{\\~E}" + }, + "ẽ": { + text: "{\\~e}" + }, + "Ị": { + text: "{\\d I}" + }, + "ị": { + text: "{\\d i}" + }, + "Ọ": { + text: "{\\d O}" + }, + "ọ": { + text: "{\\d o}" + }, + "Ụ": { + text: "{\\d U}" + }, + "ụ": { + text: "{\\d u}" + }, + "Ỳ": { + text: "{\\`Y}" + }, + "ỳ": { + text: "{\\`y}" + }, + "Ỵ": { + text: "{\\d Y}" + }, + "ỵ": { + text: "{\\d y}" + }, + "Ỹ": { + text: "{\\~Y}" + }, + "ỹ": { + text: "{\\~y}" + }, + " ": { + text: " ", + space: true + }, + " ": { + math: "\\quad", + space: true + }, + " ": { + text: "\\hspace{0.6em}", + space: true + }, + " ": { + math: "\\quad", + space: true, + text: "\\hspace{1em}" + }, + " ": { + text: "\\;", + space: true + }, + " ": { + text: "\\hspace{0.25em}", + space: true + }, + " ": { + text: "\\hspace{0.166em}", + space: true + }, + " ": { + text: "\\hphantom{0}", + space: true + }, + " ": { + text: "\\hphantom{,}", + space: true + }, + " ": { + text: "\\,", + space: true + }, + " ": { + math: "\\mkern1mu", + space: true + }, + "​": { + text: "{\\mbox}", + space: true + }, + "‌": { + text: "{\\aftergroup\\ignorespaces}" + }, + "‐": { + text: "-" + }, + "‑": { + text: "-" + }, + "‒": { + text: "-" + }, + "–": { + text: "{\\textendash}" + }, + "—": { + text: "{\\textemdash}" + }, + "―": { + math: "\\horizbar", + text: "\\rule{1em}{1pt}" + }, + "‖": { + math: "\\Vert" + }, + "‗": { + math: "\\twolowline" + }, + "‘": { + text: "`" + }, + "’": { + text: "'" + }, + "‚": { + text: "," + }, + "‛": { + math: "\\Elzreapos" + }, + "“": { + text: "``" + }, + "”": { + text: "''" + }, + "„": { + text: ",," + }, + "‟": { + text: "{\\quotedblbase}" + }, + "†": { + math: "\\dagger", + text: "{\\textdagger}", + textpackages: [ + "textcomp" + ] + }, + "‡": { + math: "\\ddagger", + text: "{\\textdaggerdbl}", + textpackages: [ + "textcomp" + ] + }, + "•": { + math: "\\bullet", + text: "{\\textbullet}", + textpackages: [ + "textcomp" + ] + }, + "‣": { + text: ">" + }, + "․": { + text: "." + }, + "‥": { + math: "\\enleadertwodots", + text: ".." + }, + "…": { + math: "\\ldots", + text: "{\\ldots}" + }, + "‧": { + text: "-" + }, + " ": { + text: " ", + space: true + }, + "‰": { + text: "{\\textperthousand}", + textpackages: [ + "textcomp" + ] + }, + "‱": { + text: "{\\textpertenthousand}", + textpackages: [ + "textcomp" + ] + }, + "′": { + math: "{'}" + }, + "″": { + math: "{''}" + }, + "‴": { + math: "{'''}" + }, + "‵": { + math: "\\backprime" + }, + "‶": { + math: "\\backdprime" + }, + "‷": { + math: "\\backtrprime" + }, + "‸": { + math: "\\caretinsert" + }, + "‹": { + text: "{\\guilsinglleft}" + }, + "›": { + text: "{\\guilsinglright}" + }, + "‼": { + math: "\\Exclam" + }, + "‾": { + text: "-" + }, + "⁃": { + math: "\\hyphenbullet" + }, + "⁄": { + math: "\\fracslash" + }, + "⁇": { + math: "\\Question" + }, + "⁈": { + text: "?!" + }, + "⁉": { + text: "!?" + }, + "⁊": { + text: "7" + }, + "⁐": { + math: "\\closure" + }, + "⁗": { + math: "''''" + }, + " ": { + math: "\\:", + space: true, + text: "\\:" + }, + "⁠": { + text: "{\\nolinebreak}" + }, + "⁰": { + math: "^{0}" + }, + "ⁱ": { + math: "^{i}", + text: "\\textsuperscript{i}" + }, + "⁴": { + math: "^{4}" + }, + "⁵": { + math: "^{5}" + }, + "⁶": { + math: "^{6}" + }, + "⁷": { + math: "^{7}" + }, + "⁸": { + math: "^{8}" + }, + "⁹": { + math: "^{9}" + }, + "⁺": { + math: "^{+}" + }, + "⁻": { + math: "^{-}" + }, + "⁼": { + math: "^{=}" + }, + "⁽": { + math: "^{(}" + }, + "⁾": { + math: "^{)}" + }, + "ⁿ": { + math: "^{n}", + text: "\\textsuperscript{n}" + }, + "₀": { + math: "_{0}" + }, + "₁": { + math: "_{1}" + }, + "₂": { + math: "_{2}" + }, + "₃": { + math: "_{3}" + }, + "₄": { + math: "_{4}" + }, + "₅": { + math: "_{5}" + }, + "₆": { + math: "_{6}" + }, + "₇": { + math: "_{7}" + }, + "₈": { + math: "_{8}" + }, + "₉": { + math: "_{9}" + }, + "₊": { + math: "_{+}" + }, + "₋": { + math: "_{-}" + }, + "₌": { + math: "_{=}" + }, + "₍": { + math: "_{(}" + }, + "₎": { + math: "_{)}" + }, + "ₐ": { + math: "_{a}", + text: "\\textsubscript{a}" + }, + "ₑ": { + math: "_{e}", + text: "\\textsubscript{e}" + }, + "ₒ": { + math: "_{o}", + text: "\\textsubscript{o}" + }, + "ₓ": { + math: "_{x}", + text: "\\textsubscript{x}" + }, + "ₔ": { + text: "\\textsubscript{\\textschwa}", + textpackages: [ + "tipa" + ] + }, + "ₕ": { + math: "_{h}", + text: "\\textsubscript{h}" + }, + "ₖ": { + math: "_{k}", + text: "\\textsubscript{k}" + }, + "ₗ": { + math: "_{l}", + text: "\\textsubscript{l}" + }, + "ₘ": { + math: "_{m}", + text: "\\textsubscript{m}" + }, + "ₙ": { + math: "_{n}", + text: "\\textsubscript{n}" + }, + "ₚ": { + math: "_{p}", + text: "\\textsubscript{p}" + }, + "ₛ": { + math: "_{s}", + text: "\\textsubscript{s}" + }, + "ₜ": { + math: "_{t}", + text: "\\textsubscript{t}" + }, + "₧": { + text: "\\ensuremath{\\Elzpes}" + }, + "€": { + math: "\\euro", + text: "{\\texteuro}" + }, + "⃐": { + math: "\\lvec" + }, + "⃑": { + math: "\\rightharpoonup", + mathpackages: [ + "amsmath", + "amssymb" + ] + }, + "⃒": { + math: "\\vertoverlay" + }, + "⃖": { + math: "\\LVec" + }, + "⃗": { + math: "\\vec" + }, + "⃛": { + math: "\\dddot" + }, + "⃜": { + math: "\\ddddot" + }, + "⃝": { + math: "\\enclosecircle" + }, + "⃞": { + math: "\\enclosesquare" + }, + "⃟": { + math: "\\enclosediamond" + }, + "⃡": { + math: "\\overleftrightarrow" + }, + "⃤": { + math: "\\enclosetriangle" + }, + "⃧": { + math: "\\annuity" + }, + "⃨": { + math: "\\threeunderdot" + }, + "⃩": { + math: "\\widebridgeabove" + }, + "⃬": { + math: "\\underrightharpoondown" + }, + "⃭": { + math: "\\underleftharpoondown" + }, + "⃮": { + math: "\\underleftarrow" + }, + "⃯": { + math: "\\underrightarrow" + }, + "⃰": { + math: "\\asteraccent" + }, + "℀": { + text: "a/c" + }, + "℁": { + text: "a/s" + }, + "ℂ": { + math: "\\mathbb{C}" + }, + "℃": { + text: "{\\textcelsius}" + }, + "℅": { + text: "c/o" + }, + "℆": { + text: "c/u" + }, + "ℇ": { + math: "\\Euler" + }, + "℉": { + text: "F" + }, + "ℊ": { + math: "\\mathscr{g}" + }, + "ℋ": { + math: "\\mathscr{H}" + }, + "ℌ": { + math: "\\mathfrak{H}" + }, + "ℍ": { + math: "\\mathbb{H}" + }, + "ℎ": { + math: "\\Planckconst" + }, + "ℏ": { + math: "\\hslash" + }, + "ℐ": { + math: "\\mathscr{I}" + }, + "ℑ": { + math: "\\mathfrak{I}" + }, + "ℒ": { + math: "\\mathscr{L}" + }, + "ℓ": { + math: "\\mathscr{l}" + }, + "ℕ": { + math: "\\mathbb{N}" + }, + "№": { + text: "{\\cyrchar\\textnumero}" + }, + "℗": { + text: "{\\textcircledP}" + }, + "℘": { + math: "\\wp" + }, + "ℙ": { + math: "\\mathbb{P}" + }, + "ℚ": { + math: "\\mathbb{Q}" + }, + "ℛ": { + math: "\\mathscr{R}" + }, + "ℜ": { + math: "\\mathfrak{R}" + }, + "ℝ": { + math: "\\mathbb{R}" + }, + "℞": { + math: "\\Elzxrat" + }, + "℠": { + text: "{\\textservicemark}" + }, + "℡": { + text: "TEL" + }, + "™": { + text: "{\\texttrademark}", + textpackages: [ + "textcomp" + ] + }, + "ℤ": { + math: "\\mathbb{Z}" + }, + "Ω": { + math: "\\Omega" + }, + "℧": { + math: "\\mho" + }, + "ℨ": { + math: "\\mathfrak{Z}" + }, + "℩": { + text: "{\\textriota}" + }, + "K": { + text: "K" + }, + "Å": { + math: "\\Angstroem", + text: "{\\AA}" + }, + "ℬ": { + math: "\\mathscr{B}" + }, + "ℭ": { + math: "\\mathfrak{C}" + }, + "℮": { + text: "{\\textestimated}" + }, + "ℯ": { + math: "\\mathscr{e}" + }, + "ℰ": { + math: "\\mathscr{E}" + }, + "ℱ": { + math: "\\mathscr{F}" + }, + "Ⅎ": { + math: "\\Finv" + }, + "ℳ": { + math: "\\mathscr{M}" + }, + "ℴ": { + math: "\\mathscr{o}" + }, + "ℵ": { + math: "\\aleph" + }, + "ℶ": { + math: "\\beth" + }, + "ℷ": { + math: "\\gimel" + }, + "ℸ": { + math: "\\daleth" + }, + "ℼ": { + math: "\\mathbb{\\pi}" + }, + "ℽ": { + math: "\\mathbb{\\gamma}" + }, + "ℾ": { + math: "\\mathbb{\\Gamma}" + }, + "ℿ": { + math: "\\mathbb{\\Pi}" + }, + "⅀": { + math: "\\mathbb{\\Sigma}" + }, + "⅁": { + math: "\\Game" + }, + "⅂": { + math: "\\sansLturned" + }, + "⅃": { + math: "\\sansLmirrored" + }, + "⅄": { + math: "\\Yup" + }, + "ⅅ": { + math: "\\CapitalDifferentialD" + }, + "ⅆ": { + math: "\\DifferentialD" + }, + "ⅇ": { + math: "\\ExponetialE" + }, + "ⅈ": { + math: "\\ComplexI" + }, + "ⅉ": { + math: "\\ComplexJ" + }, + "⅊": { + math: "\\PropertyLine" + }, + "⅋": { + math: "\\invamp" + }, + "⅐": { + math: "\\frac{1}{7}" + }, + "⅑": { + math: "\\frac{1}{9}" + }, + "⅒": { + math: "\\frac{1}{10}" + }, + "⅓": { + math: "\\frac{1}{3}" + }, + "⅔": { + math: "\\frac{2}{3}" + }, + "⅕": { + math: "\\frac{1}{5}" + }, + "⅖": { + math: "\\frac{2}{5}" + }, + "⅗": { + math: "\\frac{3}{5}" + }, + "⅘": { + math: "\\frac{4}{5}" + }, + "⅙": { + math: "\\frac{1}{6}" + }, + "⅚": { + math: "\\frac{5}{6}" + }, + "⅛": { + math: "\\frac{1}{8}" + }, + "⅜": { + math: "\\frac{3}{8}" + }, + "⅝": { + math: "\\frac{5}{8}" + }, + "⅞": { + math: "\\frac{7}{8}" + }, + "⅟": { + math: "\\frac{1}" + }, + "Ⅰ": { + text: "I" + }, + "Ⅱ": { + text: "II" + }, + "Ⅲ": { + text: "III" + }, + "Ⅳ": { + text: "IV" + }, + "Ⅴ": { + text: "V" + }, + "Ⅵ": { + text: "VI" + }, + "Ⅶ": { + text: "VII" + }, + "Ⅷ": { + text: "VIII" + }, + "Ⅸ": { + text: "IX" + }, + "Ⅹ": { + text: "X" + }, + "Ⅺ": { + text: "XI" + }, + "Ⅻ": { + text: "XII" + }, + "Ⅼ": { + text: "L" + }, + "Ⅽ": { + text: "C" + }, + "Ⅾ": { + text: "D" + }, + "Ⅿ": { + text: "M" + }, + "ⅰ": { + text: "i" + }, + "ⅱ": { + text: "ii" + }, + "ⅲ": { + text: "iii" + }, + "ⅳ": { + text: "iv" + }, + "ⅴ": { + text: "v" + }, + "ⅵ": { + text: "vi" + }, + "ⅶ": { + text: "vii" + }, + "ⅷ": { + text: "viii" + }, + "ⅸ": { + text: "ix" + }, + "ⅹ": { + text: "x" + }, + "ⅺ": { + text: "xi" + }, + "ⅻ": { + text: "xii" + }, + "ⅼ": { + text: "l" + }, + "ⅽ": { + text: "c" + }, + "ⅾ": { + text: "d" + }, + "ⅿ": { + text: "m" + }, + "↉": { + math: "\\frac{0}{3}" + }, + "←": { + math: "\\leftarrow" + }, + "↑": { + math: "\\uparrow" + }, + "→": { + math: "\\rightarrow", + text: "{\\textrightarrow}", + textpackages: [ + "textcomp" + ] + }, + "↓": { + math: "\\downarrow" + }, + "↔": { + math: "\\leftrightarrow" + }, + "↕": { + math: "\\updownarrow" + }, + "↖": { + math: "\\nwarrow" + }, + "↗": { + math: "\\nearrow" + }, + "↘": { + math: "\\searrow" + }, + "↙": { + math: "\\swarrow" + }, + "↚": { + math: "\\nleftarrow" + }, + "↛": { + math: "\\nrightarrow" + }, + "↜": { + math: "\\arrowwaveleft" + }, + "↝": { + math: "\\arrowwaveright" + }, + "↞": { + math: "\\twoheadleftarrow" + }, + "↟": { + math: "\\twoheaduparrow" + }, + "↠": { + math: "\\twoheadrightarrow" + }, + "↡": { + math: "\\twoheaddownarrow" + }, + "↢": { + math: "\\leftarrowtail" + }, + "↣": { + math: "\\rightarrowtail" + }, + "↤": { + math: "\\mapsfrom" + }, + "↥": { + math: "\\MapsUp" + }, + "↦": { + math: "\\mapsto" + }, + "↧": { + math: "\\MapsDown" + }, + "↨": { + math: "\\updownarrowbar" + }, + "↩": { + math: "\\hookleftarrow" + }, + "↪": { + math: "\\hookrightarrow" + }, + "↫": { + math: "\\looparrowleft" + }, + "↬": { + math: "\\looparrowright" + }, + "↭": { + math: "\\leftrightsquigarrow" + }, + "↮": { + math: "\\nleftrightarrow" + }, + "↯": { + math: "\\lightning" + }, + "↰": { + math: "\\Lsh" + }, + "↱": { + math: "\\Rsh" + }, + "↲": { + math: "\\dlsh" + }, + "↳": { + text: "\\reflectbox{\\carriagereturn}", + textpackages: [ + "graphics", + "unicode-math" + ] + }, + "↴": { + math: "\\linefeed" + }, + "↵": { + math: "\\carriagereturn" + }, + "↶": { + math: "\\curvearrowleft" + }, + "↷": { + math: "\\curvearrowright" + }, + "↸": { + math: "\\barovernorthwestarrow" + }, + "↹": { + math: "\\barleftarrowrightarrowba" + }, + "↺": { + math: "\\circlearrowleft" + }, + "↻": { + math: "\\circlearrowright" + }, + "↼": { + math: "\\leftharpoonup" + }, + "↽": { + math: "\\leftharpoondown" + }, + "↾": { + math: "\\upharpoonright" + }, + "↿": { + math: "\\upharpoonleft" + }, + "⇀": { + math: "\\rightharpoonup", + mathpackages: [ + "amsmath", + "amssymb" + ] + }, + "⇁": { + math: "\\rightharpoondown" + }, + "⇂": { + math: "\\downharpoonright" + }, + "⇃": { + math: "\\downharpoonleft" + }, + "⇄": { + math: "\\rightleftarrows" + }, + "⇅": { + math: "\\dblarrowupdown" + }, + "⇆": { + math: "\\leftrightarrows" + }, + "⇇": { + math: "\\leftleftarrows" + }, + "⇈": { + math: "\\upuparrows" + }, + "⇉": { + math: "\\rightrightarrows" + }, + "⇊": { + math: "\\downdownarrows" + }, + "⇋": { + math: "\\leftrightharpoons" + }, + "⇌": { + math: "\\rightleftharpoons" + }, + "⇍": { + math: "\\nLeftarrow" + }, + "⇎": { + math: "\\nLeftrightarrow" + }, + "⇏": { + math: "\\nRightarrow" + }, + "⇐": { + math: "\\Leftarrow" + }, + "⇑": { + math: "\\Uparrow" + }, + "⇒": { + math: "\\Rightarrow" + }, + "⇓": { + math: "\\Downarrow" + }, + "⇔": { + math: "\\Leftrightarrow" + }, + "⇕": { + math: "\\Updownarrow" + }, + "⇖": { + math: "\\Nwarrow" + }, + "⇗": { + math: "\\Nearrow" + }, + "⇘": { + math: "\\Searrow" + }, + "⇙": { + math: "\\Swarrow" + }, + "⇚": { + math: "\\Lleftarrow" + }, + "⇛": { + math: "\\Rrightarrow" + }, + "⇜": { + math: "\\leftsquigarrow" + }, + "⇝": { + math: "\\rightsquigarrow" + }, + "⇞": { + math: "\\nHuparrow" + }, + "⇟": { + math: "\\nHdownarrow" + }, + "⇠": { + math: "\\dashleftarrow" + }, + "⇡": { + math: "\\updasharrow" + }, + "⇢": { + math: "\\dashrightarrow" + }, + "⇣": { + math: "\\downdasharrow" + }, + "⇤": { + math: "\\LeftArrowBar" + }, + "⇥": { + math: "\\RightArrowBar" + }, + "⇦": { + math: "\\leftwhitearrow" + }, + "⇧": { + math: "\\upwhitearrow" + }, + "⇨": { + math: "\\rightwhitearrow" + }, + "⇩": { + math: "\\downwhitearrow" + }, + "⇪": { + math: "\\whitearrowupfrombar" + }, + "⇴": { + math: "\\circleonrightarrow" + }, + "⇵": { + math: "\\DownArrowUpArrow" + }, + "⇶": { + math: "\\rightthreearrows" + }, + "⇷": { + math: "\\nvleftarrow" + }, + "⇸": { + math: "\\pfun" + }, + "⇹": { + math: "\\nvleftrightarrow" + }, + "⇺": { + math: "\\nVleftarrow" + }, + "⇻": { + math: "\\ffun" + }, + "⇼": { + math: "\\nVleftrightarrow" + }, + "⇽": { + math: "\\leftarrowtriangle" + }, + "⇾": { + math: "\\rightarrowtriangle" + }, + "⇿": { + math: "\\leftrightarrowtriangle" + }, + "∀": { + math: "\\forall" + }, + "∁": { + math: "\\complement" + }, + "∂": { + math: "\\partial" + }, + "∃": { + math: "\\exists" + }, + "∄": { + math: "\\nexists" + }, + "∅": { + math: "\\varnothing" + }, + "∆": { + math: "\\increment" + }, + "∇": { + math: "\\nabla" + }, + "∈": { + math: "\\in" + }, + "∉": { + math: "\\not\\in" + }, + "∊": { + math: "\\smallin" + }, + "∋": { + math: "\\ni" + }, + "∌": { + math: "\\not\\ni" + }, + "∍": { + math: "\\smallni" + }, + "∎": { + math: "\\QED" + }, + "∏": { + math: "\\prod" + }, + "∐": { + math: "\\coprod" + }, + "∑": { + math: "\\sum" + }, + "−": { + math: "-", + text: "-" + }, + "∓": { + math: "\\mp" + }, + "∔": { + math: "\\dotplus" + }, + "∕": { + text: "/" + }, + "∖": { + math: "\\setminus" + }, + "∗": { + math: "{_\\ast}" + }, + "∘": { + math: "\\circ" + }, + "∙": { + math: "\\bullet" + }, + "√": { + math: "\\surd" + }, + "∛": { + math: "\\sqrt[3]" + }, + "∜": { + math: "\\sqrt[4]" + }, + "∝": { + math: "\\propto" + }, + "∞": { + math: "\\infty" + }, + "∟": { + math: "\\rightangle" + }, + "∠": { + math: "\\angle" + }, + "∡": { + math: "\\measuredangle" + }, + "∢": { + math: "\\sphericalangle" + }, + "∣": { + math: "\\mid" + }, + "∤": { + math: "\\nmid" + }, + "∥": { + math: "\\parallel" + }, + "∦": { + math: "\\nparallel" + }, + "∧": { + math: "\\wedge" + }, + "∨": { + math: "\\vee" + }, + "∩": { + math: "\\cap" + }, + "∪": { + math: "\\cup" + }, + "∫": { + math: "\\int" + }, + "∬": { + math: "{\\int\\!\\int}" + }, + "∭": { + math: "{\\int\\!\\int\\!\\int}" + }, + "∮": { + math: "\\oint" + }, + "∯": { + math: "\\surfintegral" + }, + "∰": { + math: "\\volintegral" + }, + "∱": { + math: "\\clwintegral" + }, + "∲": { + math: "\\lcirclerightint", + mathpackages: [ + "MnSymbol" + ] + }, + "∳": { + math: "\\rcirclerightint", + mathpackages: [ + "MnSymbol" + ] + }, + "∴": { + math: "\\therefore" + }, + "∵": { + math: "\\because" + }, + "∶": { + math: ":" + }, + "∷": { + math: "\\Colon" + }, + "∸": { + math: "\\dotdiv", + mathpackages: [ + "mathabx" + ] + }, + "∹": { + math: "\\eqcolon" + }, + "∺": { + math: "\\mathbin{{:}\\!\\!{-}\\!\\!{:}}" + }, + "∻": { + math: "\\homothetic" + }, + "∼": { + math: "\\sim" + }, + "∽": { + math: "\\backsim" + }, + "∾": { + math: "\\lazysinv" + }, + "∿": { + math: "\\AC" + }, + "≀": { + math: "\\wr" + }, + "≁": { + math: "\\not\\sim" + }, + "≂": { + math: "\\texteqsim", + mathpackages: [ + "xecjk" + ] + }, + "≂̸": { + math: "\\NotEqualTilde" + }, + "≃": { + math: "\\simeq" + }, + "≄": { + math: "\\not\\simeq" + }, + "≅": { + math: "\\cong" + }, + "≆": { + math: "\\approxnotequal" + }, + "≇": { + math: "\\not\\cong" + }, + "≈": { + math: "\\approx" + }, + "≉": { + math: "\\not\\approx" + }, + "≊": { + math: "\\approxeq" + }, + "≋": { + math: "\\tildetrpl" + }, + "≋̸": { + math: "\\not\\apid" + }, + "≌": { + math: "\\allequal" + }, + "≍": { + math: "\\asymp" + }, + "≎": { + math: "\\Bumpeq" + }, + "≎̸": { + math: "\\NotHumpDownHump" + }, + "≏": { + math: "\\bumpeq" + }, + "≏̸": { + math: "\\NotHumpEqual" + }, + "≐": { + math: "\\doteq" + }, + "≐̸": { + math: "\\not\\doteq" + }, + "≑": { + math: "\\doteqdot" + }, + "≒": { + math: "\\fallingdotseq" + }, + "≓": { + math: "\\risingdotseq" + }, + "≔": { + math: "\\coloneq", + text: ":=" + }, + "≕": { + math: "=:" + }, + "≖": { + math: "\\eqcirc" + }, + "≗": { + math: "\\circeq" + }, + "≘": { + math: "\\arceq" + }, + "≙": { + math: "\\estimates" + }, + "≛": { + math: "\\starequal" + }, + "≜": { + math: "\\triangleq" + }, + "≝": { + math: "\\eqdef" + }, + "≞": { + math: "\\measeq" + }, + "≠": { + math: "\\neq" + }, + "≡": { + math: "\\equiv" + }, + "≢": { + math: "\\not\\equiv" + }, + "≣": { + math: "\\Equiv" + }, + "≤": { + math: "\\leq" + }, + "≥": { + math: "\\geq" + }, + "≦": { + math: "\\leqq" + }, + "≧": { + math: "\\geqq" + }, + "≨": { + math: "\\lneqq" + }, + "≨︀": { + math: "\\lvertneqq" + }, + "≩": { + math: "\\gneqq" + }, + "≩︀": { + math: "\\gvertneqq" + }, + "≪": { + math: "\\ll" + }, + "≪̸": { + math: "\\NotLessLess" + }, + "≫": { + math: "\\gg" + }, + "≫̸": { + math: "\\NotGreaterGreater" + }, + "≬": { + math: "\\between" + }, + "≭": { + math: "{\\not\\kern-0.3em\\times}" + }, + "≮": { + math: "\\not<" + }, + "≯": { + math: "\\not>" + }, + "≰": { + math: "\\not\\leq" + }, + "≱": { + math: "\\not\\geq" + }, + "≲": { + math: "\\lessequivlnt" + }, + "≳": { + math: "\\greaterequivlnt" + }, + "≶": { + math: "\\lessgtr" + }, + "≷": { + math: "\\gtrless" + }, + "≸": { + math: "\\notlessgreater" + }, + "≹": { + math: "\\notgreaterless" + }, + "≺": { + math: "\\prec" + }, + "≻": { + math: "\\succ" + }, + "≼": { + math: "\\preccurlyeq" + }, + "≽": { + math: "\\succcurlyeq" + }, + "≾": { + math: "\\precapprox" + }, + "≾̸": { + math: "\\NotPrecedesTilde" + }, + "≿": { + math: "\\succapprox" + }, + "≿̸": { + math: "\\NotSucceedsTilde" + }, + "⊀": { + math: "\\not\\prec" + }, + "⊁": { + math: "\\not\\succ" + }, + "⊂": { + math: "\\subset" + }, + "⊃": { + math: "\\supset" + }, + "⊄": { + math: "\\not\\subset" + }, + "⊅": { + math: "\\not\\supset" + }, + "⊆": { + math: "\\subseteq" + }, + "⊇": { + math: "\\supseteq" + }, + "⊈": { + math: "\\not\\subseteq" + }, + "⊉": { + math: "\\not\\supseteq" + }, + "⊊": { + math: "\\subsetneq" + }, + "⊊︀": { + math: "\\varsubsetneqq" + }, + "⊋": { + math: "\\supsetneq" + }, + "⊋︀": { + math: "\\varsupsetneq" + }, + "⊌": { + math: "\\cupleftarrow" + }, + "⊍": { + math: "\\cupdot" + }, + "⊎": { + math: "\\uplus" + }, + "⊏": { + math: "\\sqsubset" + }, + "⊏̸": { + math: "\\NotSquareSubset" + }, + "⊐": { + math: "\\sqsupset" + }, + "⊐̸": { + math: "\\NotSquareSuperset" + }, + "⊑": { + math: "\\sqsubseteq" + }, + "⊒": { + math: "\\sqsupseteq" + }, + "⊓": { + math: "\\sqcap" + }, + "⊔": { + math: "\\sqcup" + }, + "⊕": { + math: "\\oplus" + }, + "⊖": { + math: "\\ominus" + }, + "⊗": { + math: "\\otimes" + }, + "⊘": { + math: "\\oslash" + }, + "⊙": { + math: "\\odot" + }, + "⊚": { + math: "\\circledcirc" + }, + "⊛": { + math: "\\circledast" + }, + "⊜": { + math: "\\circledequal" + }, + "⊝": { + math: "\\circleddash" + }, + "⊞": { + math: "\\boxplus" + }, + "⊟": { + math: "\\boxminus" + }, + "⊠": { + math: "\\boxtimes" + }, + "⊡": { + math: "\\boxdot" + }, + "⊢": { + math: "\\vdash" + }, + "⊣": { + math: "\\dashv" + }, + "⊤": { + math: "\\top" + }, + "⊥": { + math: "\\perp" + }, + "⊦": { + math: "\\assert" + }, + "⊧": { + math: "\\truestate" + }, + "⊨": { + math: "\\forcesextra" + }, + "⊩": { + math: "\\Vdash" + }, + "⊪": { + math: "\\Vvdash" + }, + "⊫": { + math: "\\VDash" + }, + "⊬": { + math: "\\nvdash" + }, + "⊭": { + math: "\\nvDash" + }, + "⊮": { + math: "\\nVdash" + }, + "⊯": { + math: "\\nVDash" + }, + "⊰": { + math: "\\prurel" + }, + "⊱": { + math: "\\scurel" + }, + "⊲": { + math: "\\vartriangleleft" + }, + "⊳": { + math: "\\vartriangleright" + }, + "⊴": { + math: "\\trianglelefteq" + }, + "⊵": { + math: "\\trianglerighteq" + }, + "⊶": { + math: "\\original" + }, + "⊷": { + math: "\\image" + }, + "⊸": { + math: "\\multimap" + }, + "⊹": { + math: "\\hermitconjmatrix" + }, + "⊺": { + math: "\\intercal" + }, + "⊻": { + math: "\\veebar" + }, + "⊼": { + math: "\\barwedge" + }, + "⊽": { + math: "\\barvee" + }, + "⊾": { + math: "\\rightanglearc" + }, + "⊿": { + math: "\\varlrtriangle" + }, + "⋂": { + math: "\\bigcap" + }, + "⋃": { + math: "\\bigcup" + }, + "⋄": { + math: "\\diamond" + }, + "⋅": { + math: "\\cdot" + }, + "⋆": { + math: "\\star" + }, + "⋇": { + math: "\\divideontimes" + }, + "⋈": { + math: "\\bowtie" + }, + "⋉": { + math: "\\ltimes" + }, + "⋊": { + math: "\\rtimes" + }, + "⋋": { + math: "\\leftthreetimes" + }, + "⋌": { + math: "\\rightthreetimes" + }, + "⋍": { + math: "\\backsimeq" + }, + "⋎": { + math: "\\curlyvee" + }, + "⋏": { + math: "\\curlywedge" + }, + "⋐": { + math: "\\Subset" + }, + "⋑": { + math: "\\Supset" + }, + "⋒": { + math: "\\Cap" + }, + "⋓": { + math: "\\Cup" + }, + "⋔": { + math: "\\pitchfork" + }, + "⋕": { + math: "\\hash" + }, + "⋖": { + math: "\\lessdot" + }, + "⋗": { + math: "\\gtrdot" + }, + "⋘": { + math: "\\verymuchless" + }, + "⋙": { + math: "\\verymuchgreater" + }, + "⋚": { + math: "\\lesseqgtr" + }, + "⋛": { + math: "\\gtreqless" + }, + "⋜": { + math: "\\eqless" + }, + "⋝": { + math: "\\eqgtr" + }, + "⋞": { + math: "\\curlyeqprec" + }, + "⋟": { + math: "\\curlyeqsucc" + }, + "⋠": { + math: "\\npreceq" + }, + "⋡": { + math: "\\nsucceq" + }, + "⋢": { + math: "\\not\\sqsubseteq" + }, + "⋣": { + math: "\\not\\sqsupseteq" + }, + "⋤": { + math: "\\sqsubsetneq" + }, + "⋥": { + math: "\\Elzsqspne" + }, + "⋦": { + math: "\\lnsim" + }, + "⋧": { + math: "\\gnsim" + }, + "⋨": { + math: "\\precedesnotsimilar" + }, + "⋩": { + math: "\\succnsim" + }, + "⋪": { + math: "\\ntriangleleft" + }, + "⋫": { + math: "\\ntriangleright" + }, + "⋬": { + math: "\\ntrianglelefteq" + }, + "⋭": { + math: "\\ntrianglerighteq" + }, + "⋮": { + math: "\\vdots" + }, + "⋯": { + math: "\\cdots" + }, + "⋰": { + math: "\\upslopeellipsis" + }, + "⋱": { + math: "\\downslopeellipsis" + }, + "⋲": { + math: "\\disin" + }, + "⋳": { + math: "\\varisins" + }, + "⋴": { + math: "\\isins" + }, + "⋵": { + math: "\\isindot" + }, + "⋶": { + math: "\\barin" + }, + "⋷": { + math: "\\isinobar" + }, + "⋸": { + math: "\\isinvb" + }, + "⋹": { + math: "\\isinE" + }, + "⋺": { + math: "\\nisd" + }, + "⋻": { + math: "\\varnis" + }, + "⋼": { + math: "\\nis" + }, + "⋽": { + math: "\\varniobar" + }, + "⋾": { + math: "\\niobar" + }, + "⋿": { + math: "\\bagmember" + }, + "⌀": { + math: "\\diameter" + }, + "⌂": { + math: "\\house" + }, + "⌅": { + math: "\\varbarwedge", + text: "{\\barwedge}" + }, + "⌆": { + math: "\\perspcorrespond" + }, + "⌈": { + math: "\\lceil" + }, + "⌉": { + math: "\\rceil" + }, + "⌊": { + math: "\\lfloor" + }, + "⌋": { + math: "\\rfloor" + }, + "⌐": { + math: "\\invneg" + }, + "⌑": { + math: "\\wasylozenge" + }, + "⌒": { + math: "\\profline" + }, + "⌓": { + math: "\\profsurf" + }, + "⌕": { + math: "\\recorder" + }, + "⌖": { + math: "{\\mathchar\"2208}" + }, + "⌗": { + math: "\\viewdata" + }, + "⌙": { + math: "\\turnednot" + }, + "⌜": { + math: "\\ulcorner" + }, + "⌝": { + math: "\\urcorner" + }, + "⌞": { + math: "\\llcorner" + }, + "⌟": { + math: "\\lrcorner" + }, + "⌠": { + math: "\\inttop" + }, + "⌡": { + math: "\\intbottom" + }, + "⌢": { + math: "\\frown" + }, + "⌣": { + math: "\\smile" + }, + "〈": { + math: "\\langle" + }, + "〉": { + math: "\\rangle" + }, + "⌬": { + math: "\\varhexagonlrbonds" + }, + "⌲": { + math: "\\conictaper" + }, + "⌶": { + math: "\\topbot" + }, + "⌹": { + math: "\\APLinv" + }, + "⌿": { + math: "\\notslash" + }, + "⍀": { + math: "\\notbackslash" + }, + "⍇": { + math: "\\APLleftarrowbox" + }, + "⍈": { + math: "\\APLrightarrowbox" + }, + "⍉": { + math: "\\invdiameter" + }, + "⍐": { + math: "\\APLuparrowbox" + }, + "⍓": { + math: "\\APLboxupcaret" + }, + "⍗": { + math: "\\APLdownarrowbox" + }, + "⍝": { + math: "\\APLcomment" + }, + "⍞": { + math: "\\APLinput" + }, + "⍟": { + math: "\\APLlog" + }, + "⍰": { + math: "\\APLboxquestion" + }, + "⍼": { + math: "\\rangledownzigzagarrow" + }, + "⎔": { + math: "\\hexagon" + }, + "⎛": { + math: "\\lparenuend" + }, + "⎜": { + math: "\\lparenextender" + }, + "⎝": { + math: "\\lparenlend" + }, + "⎞": { + math: "\\rparenuend" + }, + "⎟": { + math: "\\rparenextender" + }, + "⎠": { + math: "\\rparenlend" + }, + "⎡": { + math: "\\lbrackuend" + }, + "⎢": { + math: "\\lbrackextender" + }, + "⎣": { + math: "\\Elzdlcorn" + }, + "⎤": { + math: "\\rbrackuend" + }, + "⎥": { + math: "\\rbrackextender" + }, + "⎦": { + math: "\\rbracklend" + }, + "⎧": { + math: "\\lbraceuend" + }, + "⎨": { + math: "\\lbracemid" + }, + "⎩": { + math: "\\lbracelend" + }, + "⎪": { + math: "\\vbraceextender" + }, + "⎫": { + math: "\\rbraceuend" + }, + "⎬": { + math: "\\rbracemid" + }, + "⎭": { + math: "\\rbracelend" + }, + "⎮": { + math: "\\intextender" + }, + "⎯": { + math: "\\harrowextender" + }, + "⎰": { + math: "\\lmoustache" + }, + "⎱": { + math: "\\rmoustache" + }, + "⎲": { + math: "\\sumtop" + }, + "⎳": { + math: "\\sumbottom" + }, + "⎴": { + math: "\\overbracket" + }, + "⎵": { + math: "\\underbracket" + }, + "⎶": { + math: "\\bbrktbrk" + }, + "⎷": { + math: "\\sqrtbottom" + }, + "⎸": { + math: "\\lvboxline" + }, + "⎹": { + math: "\\rvboxline" + }, + "⏎": { + math: "\\varcarriagereturn" + }, + "⏜": { + math: "\\overparen" + }, + "⏝": { + math: "\\underparen" + }, + "⏞": { + math: "\\overbrace" + }, + "⏟": { + math: "\\underbrace" + }, + "⏠": { + math: "\\obrbrak" + }, + "⏡": { + math: "\\ubrbrak" + }, + "⏢": { + math: "\\trapezium" + }, + "⏣": { + math: "\\benzenr" + }, + "⏤": { + math: "\\strns" + }, + "⏥": { + math: "\\fltns" + }, + "⏦": { + math: "\\accurrent" + }, + "⏧": { + math: "\\elinters" + }, + "␀": { + text: "NUL" + }, + "␁": { + text: "SOH" + }, + "␂": { + text: "STX" + }, + "␃": { + text: "ETX" + }, + "␄": { + text: "EOT" + }, + "␅": { + text: "ENQ" + }, + "␆": { + text: "ACK" + }, + "␇": { + text: "BEL" + }, + "␈": { + text: "BS" + }, + "␉": { + text: "HT" + }, + "␊": { + text: "LF" + }, + "␋": { + text: "VT" + }, + "␌": { + text: "FF" + }, + "␍": { + text: "CR" + }, + "␎": { + text: "SO" + }, + "␏": { + text: "SI" + }, + "␐": { + text: "DLE" + }, + "␑": { + text: "DC1" + }, + "␒": { + text: "DC2" + }, + "␓": { + text: "DC3" + }, + "␔": { + text: "DC4" + }, + "␕": { + text: "NAK" + }, + "␖": { + text: "SYN" + }, + "␗": { + text: "ETB" + }, + "␘": { + text: "CAN" + }, + "␙": { + text: "EM" + }, + "␚": { + text: "SUB" + }, + "␛": { + text: "ESC" + }, + "␜": { + text: "FS" + }, + "␝": { + text: "GS" + }, + "␞": { + text: "RS" + }, + "␟": { + text: "US" + }, + "␠": { + text: "SP" + }, + "␡": { + text: "DEL" + }, + "␣": { + text: "{\\textvisiblespace}" + }, + "␤": { + text: "NL" + }, + "␥": { + text: "///" + }, + "␦": { + text: "?" + }, + "①": { + text: "\\ding{172}" + }, + "②": { + text: "\\ding{173}" + }, + "③": { + text: "\\ding{174}" + }, + "④": { + text: "\\ding{175}" + }, + "⑤": { + text: "\\ding{176}" + }, + "⑥": { + text: "\\ding{177}" + }, + "⑦": { + text: "\\ding{178}" + }, + "⑧": { + text: "\\ding{179}" + }, + "⑨": { + text: "\\ding{180}" + }, + "⑩": { + text: "\\ding{181}" + }, + "⑪": { + text: "(11)" + }, + "⑫": { + text: "(12)" + }, + "⑬": { + text: "(13)" + }, + "⑭": { + text: "(14)" + }, + "⑮": { + text: "(15)" + }, + "⑯": { + text: "(16)" + }, + "⑰": { + text: "(17)" + }, + "⑱": { + text: "(18)" + }, + "⑲": { + text: "(19)" + }, + "⑳": { + text: "(20)" + }, + "⑴": { + text: "(1)" + }, + "⑵": { + text: "(2)" + }, + "⑶": { + text: "(3)" + }, + "⑷": { + text: "(4)" + }, + "⑸": { + text: "(5)" + }, + "⑹": { + text: "(6)" + }, + "⑺": { + text: "(7)" + }, + "⑻": { + text: "(8)" + }, + "⑼": { + text: "(9)" + }, + "⑽": { + text: "(10)" + }, + "⑾": { + text: "(11)" + }, + "⑿": { + text: "(12)" + }, + "⒀": { + text: "(13)" + }, + "⒁": { + text: "(14)" + }, + "⒂": { + text: "(15)" + }, + "⒃": { + text: "(16)" + }, + "⒄": { + text: "(17)" + }, + "⒅": { + text: "(18)" + }, + "⒆": { + text: "(19)" + }, + "⒇": { + text: "(20)" + }, + "⒈": { + text: "1." + }, + "⒉": { + text: "2." + }, + "⒊": { + text: "3." + }, + "⒋": { + text: "4." + }, + "⒌": { + text: "5." + }, + "⒍": { + text: "6." + }, + "⒎": { + text: "7." + }, + "⒏": { + text: "8." + }, + "⒐": { + text: "9." + }, + "⒑": { + text: "10." + }, + "⒒": { + text: "11." + }, + "⒓": { + text: "12." + }, + "⒔": { + text: "13." + }, + "⒕": { + text: "14." + }, + "⒖": { + text: "15." + }, + "⒗": { + text: "16." + }, + "⒘": { + text: "17." + }, + "⒙": { + text: "18." + }, + "⒚": { + text: "19." + }, + "⒛": { + text: "20." + }, + "⒜": { + text: "(a)" + }, + "⒝": { + text: "(b)" + }, + "⒞": { + text: "(c)" + }, + "⒟": { + text: "(d)" + }, + "⒠": { + text: "(e)" + }, + "⒡": { + text: "(f)" + }, + "⒢": { + text: "(g)" + }, + "⒣": { + text: "(h)" + }, + "⒤": { + text: "(i)" + }, + "⒥": { + text: "(j)" + }, + "⒦": { + text: "(k)" + }, + "⒧": { + text: "(l)" + }, + "⒨": { + text: "(m)" + }, + "⒩": { + text: "(n)" + }, + "⒪": { + text: "(o)" + }, + "⒫": { + text: "(p)" + }, + "⒬": { + text: "(q)" + }, + "⒭": { + text: "(r)" + }, + "⒮": { + text: "(s)" + }, + "⒯": { + text: "(t)" + }, + "⒰": { + text: "(u)" + }, + "⒱": { + text: "(v)" + }, + "⒲": { + text: "(w)" + }, + "⒳": { + text: "(x)" + }, + "⒴": { + text: "(y)" + }, + "⒵": { + text: "(z)" + }, + "Ⓐ": { + text: "(A)" + }, + "Ⓑ": { + text: "(B)" + }, + "Ⓒ": { + text: "(C)" + }, + "Ⓓ": { + text: "(D)" + }, + "Ⓔ": { + text: "(E)" + }, + "Ⓕ": { + text: "(F)" + }, + "Ⓖ": { + text: "(G)" + }, + "Ⓗ": { + text: "(H)" + }, + "Ⓘ": { + text: "(I)" + }, + "Ⓙ": { + text: "(J)" + }, + "Ⓚ": { + text: "(K)" + }, + "Ⓛ": { + text: "(L)" + }, + "Ⓜ": { + text: "(M)" + }, + "Ⓝ": { + text: "(N)" + }, + "Ⓞ": { + text: "(O)" + }, + "Ⓟ": { + text: "(P)" + }, + "Ⓠ": { + text: "(Q)" + }, + "Ⓡ": { + text: "(R)" + }, + "Ⓢ": { + math: "\\circledS" + }, + "Ⓣ": { + text: "(T)" + }, + "Ⓤ": { + text: "(U)" + }, + "Ⓥ": { + text: "(V)" + }, + "Ⓦ": { + text: "(W)" + }, + "Ⓧ": { + text: "(X)" + }, + "Ⓨ": { + text: "(Y)" + }, + "Ⓩ": { + text: "(Z)" + }, + "ⓐ": { + text: "(a)" + }, + "ⓑ": { + text: "(b)" + }, + "ⓒ": { + text: "(c)" + }, + "ⓓ": { + text: "(d)" + }, + "ⓔ": { + text: "(e)" + }, + "ⓕ": { + text: "(f)" + }, + "ⓖ": { + text: "(g)" + }, + "ⓗ": { + text: "(h)" + }, + "ⓘ": { + text: "(i)" + }, + "ⓙ": { + text: "(j)" + }, + "ⓚ": { + text: "(k)" + }, + "ⓛ": { + text: "(l)" + }, + "ⓜ": { + text: "(m)" + }, + "ⓝ": { + text: "(n)" + }, + "ⓞ": { + text: "(o)" + }, + "ⓟ": { + text: "(p)" + }, + "ⓠ": { + text: "(q)" + }, + "ⓡ": { + text: "(r)" + }, + "ⓢ": { + text: "(s)" + }, + "ⓣ": { + text: "(t)" + }, + "ⓤ": { + text: "(u)" + }, + "ⓥ": { + text: "(v)" + }, + "ⓦ": { + text: "(w)" + }, + "ⓧ": { + text: "(x)" + }, + "ⓨ": { + text: "(y)" + }, + "ⓩ": { + text: "(z)" + }, + "⓪": { + text: "(0)" + }, + "─": { + text: "-" + }, + "━": { + text: "=" + }, + "│": { + text: "|" + }, + "┃": { + text: "|" + }, + "┄": { + text: "-" + }, + "┅": { + text: "=" + }, + "┆": { + math: "\\Elzdshfnc" + }, + "┇": { + text: "|" + }, + "┈": { + text: "-" + }, + "┉": { + text: "=" + }, + "┊": { + text: "|" + }, + "┋": { + text: "|" + }, + "┌": { + text: "+" + }, + "┍": { + text: "+" + }, + "┎": { + text: "+" + }, + "┏": { + text: "+" + }, + "┐": { + text: "+" + }, + "┑": { + text: "+" + }, + "┒": { + text: "+" + }, + "┓": { + text: "+" + }, + "└": { + text: "+" + }, + "┕": { + text: "+" + }, + "┖": { + text: "+" + }, + "┗": { + text: "+" + }, + "┘": { + text: "+" + }, + "┙": { + math: "\\Elzsqfnw" + }, + "┚": { + text: "+" + }, + "┛": { + text: "+" + }, + "├": { + text: "+" + }, + "┝": { + text: "+" + }, + "┞": { + text: "+" + }, + "┟": { + text: "+" + }, + "┠": { + text: "+" + }, + "┡": { + text: "+" + }, + "┢": { + text: "+" + }, + "┣": { + text: "+" + }, + "┤": { + text: "+" + }, + "┥": { + text: "+" + }, + "┦": { + text: "+" + }, + "┧": { + text: "+" + }, + "┨": { + text: "+" + }, + "┩": { + text: "+" + }, + "┪": { + text: "+" + }, + "┫": { + text: "+" + }, + "┬": { + text: "+" + }, + "┭": { + text: "+" + }, + "┮": { + text: "+" + }, + "┯": { + text: "+" + }, + "┰": { + text: "+" + }, + "┱": { + text: "+" + }, + "┲": { + text: "+" + }, + "┳": { + text: "+" + }, + "┴": { + text: "+" + }, + "┵": { + text: "+" + }, + "┶": { + text: "+" + }, + "┷": { + text: "+" + }, + "┸": { + text: "+" + }, + "┹": { + text: "+" + }, + "┺": { + text: "+" + }, + "┻": { + text: "+" + }, + "┼": { + text: "+" + }, + "┽": { + text: "+" + }, + "┾": { + text: "+" + }, + "┿": { + text: "+" + }, + "╀": { + text: "+" + }, + "╁": { + text: "+" + }, + "╂": { + text: "+" + }, + "╃": { + text: "+" + }, + "╄": { + text: "+" + }, + "╅": { + text: "+" + }, + "╆": { + text: "+" + }, + "╇": { + text: "+" + }, + "╈": { + text: "+" + }, + "╉": { + text: "+" + }, + "╊": { + text: "+" + }, + "╋": { + text: "+" + }, + "╌": { + text: "-" + }, + "╍": { + text: "=" + }, + "╎": { + text: "|" + }, + "╏": { + text: "|" + }, + "═": { + text: "=" + }, + "║": { + text: "|" + }, + "╒": { + text: "+" + }, + "╓": { + text: "+" + }, + "╔": { + text: "+" + }, + "╕": { + text: "+" + }, + "╖": { + text: "+" + }, + "╗": { + text: "+" + }, + "╘": { + text: "+" + }, + "╙": { + text: "+" + }, + "╚": { + text: "+" + }, + "╛": { + text: "+" + }, + "╜": { + text: "+" + }, + "╝": { + text: "+" + }, + "╞": { + text: "+" + }, + "╟": { + text: "+" + }, + "╠": { + text: "+" + }, + "╡": { + text: "+" + }, + "╢": { + text: "+" + }, + "╣": { + text: "+" + }, + "╤": { + text: "+" + }, + "╥": { + text: "+" + }, + "╦": { + text: "+" + }, + "╧": { + text: "+" + }, + "╨": { + text: "+" + }, + "╩": { + text: "+" + }, + "╪": { + text: "+" + }, + "╫": { + text: "+" + }, + "╬": { + text: "+" + }, + "╭": { + text: "+" + }, + "╮": { + text: "+" + }, + "╯": { + text: "+" + }, + "╰": { + text: "+" + }, + "╱": { + math: "\\diagup" + }, + "╲": { + text: "\\" + }, + "╳": { + text: "X" + }, + "╼": { + text: "-" + }, + "╽": { + text: "|" + }, + "╾": { + text: "-" + }, + "╿": { + text: "|" + }, + "▀": { + math: "\\blockuphalf" + }, + "▄": { + math: "\\blocklowhalf" + }, + "█": { + math: "\\blockfull" + }, + "▌": { + math: "\\blocklefthalf" + }, + "▐": { + math: "\\blockrighthalf" + }, + "░": { + math: "\\blockqtrshaded" + }, + "▒": { + math: "\\blockhalfshaded" + }, + "▓": { + math: "\\blockthreeqtrshaded" + }, + "■": { + math: "\\mdlgblksquare", + text: "\\ding{110}" + }, + "□": { + math: "\\square" + }, + "▢": { + math: "\\squoval" + }, + "▣": { + math: "\\blackinwhitesquare" + }, + "▤": { + math: "\\squarehfill" + }, + "▥": { + math: "\\squarevfill" + }, + "▦": { + math: "\\squarehvfill" + }, + "▧": { + math: "\\squarenwsefill" + }, + "▨": { + math: "\\squareneswfill" + }, + "▩": { + math: "\\squarecrossfill" + }, + "▪": { + math: "\\blacksquare" + }, + "▫": { + math: "\\smwhtsquare" + }, + "▬": { + math: "\\hrectangleblack" + }, + "▭": { + math: "\\fbox{~~}" + }, + "▮": { + math: "\\vrectangleblack" + }, + "▯": { + math: "\\Elzvrecto" + }, + "▰": { + math: "\\parallelogramblack" + }, + "▲": { + math: "\\bigblacktriangleup", + text: "\\ding{115}" + }, + "△": { + math: "\\bigtriangleup" + }, + "▴": { + math: "\\blacktriangle" + }, + "▵": { + math: "\\vartriangle" + }, + "▶": { + math: "\\RHD" + }, + "▷": { + math: "\\rhd" + }, + "▸": { + math: "\\blacktriangleright" + }, + "▹": { + math: "\\triangleright" + }, + "►": { + math: "\\blackpointerright" + }, + "▻": { + math: "\\whitepointerright" + }, + "▼": { + math: "\\bigblacktriangledown", + text: "\\ding{116}" + }, + "▽": { + math: "\\bigtriangledown" + }, + "▾": { + math: "\\blacktriangledown" + }, + "▿": { + math: "\\triangledown" + }, + "◀": { + math: "\\LHD" + }, + "◁": { + math: "\\lhd" + }, + "◂": { + math: "\\blacktriangleleft" + }, + "◃": { + math: "\\triangleleft" + }, + "◄": { + math: "\\blackpointerleft" + }, + "◅": { + math: "\\whitepointerleft" + }, + "◆": { + math: "\\Diamondblack", + text: "\\ding{117}" + }, + "◇": { + math: "\\Diamond" + }, + "◈": { + math: "\\blackinwhitediamond" + }, + "◉": { + math: "\\fisheye" + }, + "◊": { + math: "\\lozenge" + }, + "○": { + math: "\\bigcirc" + }, + "◌": { + math: "\\dottedcircle" + }, + "◍": { + math: "\\circlevertfill" + }, + "◎": { + math: "\\bullseye" + }, + "●": { + math: "\\CIRCLE", + text: "\\ding{108}" + }, + "◐": { + math: "\\Elzcirfl" + }, + "◑": { + math: "\\Elzcirfr" + }, + "◒": { + math: "\\Elzcirfb" + }, + "◓": { + math: "\\circletophalfblack" + }, + "◔": { + math: "\\circleurquadblack" + }, + "◕": { + math: "\\blackcircleulquadwhite" + }, + "◖": { + math: "\\LEFTCIRCLE" + }, + "◗": { + math: "\\RIGHTCIRCLE", + text: "\\ding{119}" + }, + "◘": { + math: "\\Elzrvbull" + }, + "◙": { + math: "\\inversewhitecircle" + }, + "◚": { + math: "\\invwhiteupperhalfcircle" + }, + "◛": { + math: "\\invwhitelowerhalfcircle" + }, + "◜": { + math: "\\ularc" + }, + "◝": { + math: "\\urarc" + }, + "◞": { + math: "\\lrarc" + }, + "◟": { + math: "\\llarc" + }, + "◠": { + math: "\\topsemicircle" + }, + "◡": { + math: "\\botsemicircle" + }, + "◢": { + math: "\\lrblacktriangle" + }, + "◣": { + math: "\\llblacktriangle" + }, + "◤": { + math: "\\ulblacktriangle" + }, + "◥": { + math: "\\urblacktriangle" + }, + "◦": { + math: "\\smwhtcircle" + }, + "◧": { + math: "\\Elzsqfl" + }, + "◨": { + math: "\\Elzsqfr" + }, + "◩": { + math: "\\squareulblack" + }, + "◪": { + math: "\\Elzsqfse" + }, + "◫": { + math: "\\boxbar" + }, + "◬": { + math: "\\trianglecdot" + }, + "◭": { + math: "\\triangleleftblack" + }, + "◮": { + math: "\\trianglerightblack" + }, + "◯": { + math: "\\bigcirc" + }, + "◰": { + math: "\\squareulquad" + }, + "◱": { + math: "\\squarellquad" + }, + "◲": { + math: "\\squarelrquad" + }, + "◳": { + math: "\\squareurquad" + }, + "◴": { + math: "\\circleulquad" + }, + "◵": { + math: "\\circlellquad" + }, + "◶": { + math: "\\circlelrquad" + }, + "◷": { + math: "\\circleurquad" + }, + "◸": { + math: "\\ultriangle" + }, + "◹": { + math: "\\urtriangle" + }, + "◺": { + math: "\\lltriangle" + }, + "◻": { + math: "\\square" + }, + "◼": { + math: "\\blacksquare" + }, + "◽": { + math: "\\mdsmwhtsquare" + }, + "◾": { + math: "\\mdsmblksquare" + }, + "◿": { + math: "\\lrtriangle" + }, + "★": { + math: "\\bigstar", + text: "\\ding{72}" + }, + "☆": { + math: "\\bigwhitestar", + text: "\\ding{73}" + }, + "☉": { + math: "\\Sun" + }, + "☎": { + text: "\\ding{37}" + }, + "☐": { + math: "\\Square" + }, + "☑": { + math: "\\CheckedBox" + }, + "☒": { + math: "\\XBox" + }, + "☓": { + text: "X" + }, + "☕": { + math: "\\steaming" + }, + "☛": { + text: "\\ding{42}" + }, + "☞": { + math: "\\pointright", + text: "\\ding{43}" + }, + "☠": { + math: "\\skull" + }, + "☡": { + math: "\\danger" + }, + "☢": { + math: "\\radiation" + }, + "☣": { + math: "\\biohazard" + }, + "☯": { + math: "\\yinyang" + }, + "☹": { + math: "\\frownie" + }, + "☺": { + math: "\\smiley" + }, + "☻": { + math: "\\blacksmiley" + }, + "☼": { + math: "\\sun" + }, + "☽": { + text: "{\\rightmoon}", + textpackages: [ + "wasysym" + ] + }, + "☾": { + text: "{\\leftmoon}", + textpackages: [ + "wasysym" + ] + }, + "☿": { + math: "\\mercury", + text: "{\\mercury}" + }, + "♀": { + math: "\\female", + text: "{\\venus}" + }, + "♁": { + math: "\\earth" + }, + "♂": { + math: "\\male", + text: "{\\male}" + }, + "♃": { + math: "\\jupiter", + text: "{\\jupiter}" + }, + "♄": { + math: "\\saturn", + text: "{\\saturn}" + }, + "♅": { + math: "\\uranus", + text: "{\\uranus}" + }, + "♆": { + math: "\\neptune", + text: "{\\neptune}" + }, + "♇": { + math: "\\pluto", + text: "{\\pluto}" + }, + "♈": { + math: "\\aries", + text: "{\\aries}" + }, + "♉": { + math: "\\taurus", + text: "{\\taurus}" + }, + "♊": { + math: "\\gemini", + text: "{\\gemini}" + }, + "♋": { + math: "\\cancer", + text: "{\\cancer}" + }, + "♌": { + math: "\\leo", + text: "{\\leo}" + }, + "♍": { + math: "\\virgo", + text: "{\\virgo}" + }, + "♎": { + math: "\\libra", + text: "{\\libra}" + }, + "♏": { + math: "\\scorpio", + text: "{\\scorpio}" + }, + "♐": { + math: "\\sagittarius", + text: "{\\sagittarius}" + }, + "♑": { + math: "\\capricornus", + text: "{\\capricornus}" + }, + "♒": { + math: "\\aquarius", + text: "{\\aquarius}" + }, + "♓": { + math: "\\pisces", + text: "{\\pisces}" + }, + "♠": { + math: "\\spadesuit", + text: "\\ding{171}" + }, + "♡": { + math: "\\heartsuit" + }, + "♢": { + math: "\\diamond" + }, + "♣": { + math: "\\clubsuit", + text: "\\ding{168}" + }, + "♤": { + math: "\\varspadesuit" + }, + "♥": { + math: "\\varheartsuit", + text: "\\ding{170}" + }, + "♦": { + math: "\\vardiamondsuit", + text: "\\ding{169}" + }, + "♧": { + math: "\\varclubsuit" + }, + "♩": { + math: "\\quarternote", + text: "{\\quarternote}" + }, + "♪": { + math: "\\eighthnote", + text: "{\\eighthnote}" + }, + "♫": { + math: "\\twonotes" + }, + "♬": { + math: "\\sixteenthnote" + }, + "♭": { + math: "\\flat" + }, + "♮": { + math: "\\natural" + }, + "♯": { + math: "\\sharp" + }, + "♻": { + math: "\\recycle" + }, + "♾": { + math: "\\acidfree" + }, + "⚀": { + math: "\\dicei" + }, + "⚁": { + math: "\\diceii" + }, + "⚂": { + math: "\\diceiii" + }, + "⚃": { + math: "\\diceiv" + }, + "⚄": { + math: "\\dicev" + }, + "⚅": { + math: "\\dicevi" + }, + "⚆": { + math: "\\circledrightdot" + }, + "⚇": { + math: "\\circledtwodots" + }, + "⚈": { + math: "\\blackcircledrightdot" + }, + "⚉": { + math: "\\blackcircledtwodots" + }, + "⚓": { + math: "\\anchor" + }, + "⚔": { + math: "\\swords" + }, + "⚠": { + math: "\\warning" + }, + "⚥": { + math: "\\Hermaphrodite" + }, + "⚪": { + math: "\\medcirc" + }, + "⚫": { + math: "\\medbullet" + }, + "⚬": { + math: "\\mdsmwhtcircle" + }, + "⚲": { + math: "\\neuter" + }, + "✁": { + text: "\\ding{33}" + }, + "✂": { + text: "\\ding{34}" + }, + "✃": { + text: "\\ding{35}" + }, + "✄": { + text: "\\ding{36}" + }, + "✆": { + text: "\\ding{38}" + }, + "✇": { + text: "\\ding{39}" + }, + "✈": { + text: "\\ding{40}" + }, + "✉": { + text: "\\ding{41}" + }, + "✌": { + text: "\\ding{44}" + }, + "✍": { + text: "\\ding{45}" + }, + "✎": { + math: "\\pencil", + text: "\\ding{46}" + }, + "✏": { + text: "\\ding{47}" + }, + "✐": { + text: "\\ding{48}" + }, + "✑": { + text: "\\ding{49}" + }, + "✒": { + text: "\\ding{50}" + }, + "✓": { + math: "\\checkmark", + text: "\\ding{51}" + }, + "✔": { + text: "\\ding{52}" + }, + "✕": { + text: "\\ding{53}" + }, + "✖": { + text: "\\ding{54}" + }, + "✗": { + math: "\\ballotx", + text: "\\ding{55}" + }, + "✘": { + text: "\\ding{56}" + }, + "✙": { + text: "\\ding{57}" + }, + "✚": { + text: "\\ding{58}" + }, + "✛": { + text: "\\ding{59}" + }, + "✜": { + text: "\\ding{60}" + }, + "✝": { + text: "\\ding{61}" + }, + "✞": { + text: "\\ding{62}" + }, + "✟": { + text: "\\ding{63}" + }, + "✠": { + math: "\\maltese", + text: "\\ding{64}" + }, + "✡": { + text: "\\ding{65}" + }, + "✢": { + text: "\\ding{66}" + }, + "✣": { + text: "\\ding{67}" + }, + "✤": { + text: "\\ding{68}" + }, + "✥": { + text: "\\ding{69}" + }, + "✦": { + text: "\\ding{70}" + }, + "✧": { + text: "\\ding{71}" + }, + "✩": { + text: "\\ding{73}" + }, + "✪": { + math: "\\circledstar", + text: "\\ding{74}" + }, + "✫": { + text: "\\ding{75}" + }, + "✬": { + text: "\\ding{76}" + }, + "✭": { + text: "\\ding{77}" + }, + "✮": { + text: "\\ding{78}" + }, + "✯": { + text: "\\ding{79}" + }, + "✰": { + text: "\\ding{80}" + }, + "✱": { + text: "\\ding{81}" + }, + "✲": { + text: "\\ding{82}" + }, + "✳": { + text: "\\ding{83}" + }, + "✴": { + text: "\\ding{84}" + }, + "✵": { + text: "\\ding{85}" + }, + "✶": { + math: "\\varstar", + text: "\\ding{86}" + }, + "✷": { + text: "\\ding{87}" + }, + "✸": { + text: "\\ding{88}" + }, + "✹": { + text: "\\ding{89}" + }, + "✺": { + text: "\\ding{90}" + }, + "✻": { + text: "\\ding{91}" + }, + "✼": { + text: "\\ding{92}" + }, + "✽": { + math: "\\dingasterisk", + text: "\\ding{93}" + }, + "✾": { + text: "\\ding{94}" + }, + "✿": { + text: "\\ding{95}" + }, + "❀": { + text: "\\ding{96}" + }, + "❁": { + text: "\\ding{97}" + }, + "❂": { + text: "\\ding{98}" + }, + "❃": { + text: "\\ding{99}" + }, + "❄": { + text: "\\ding{100}" + }, + "❅": { + text: "\\ding{101}" + }, + "❆": { + text: "\\ding{102}" + }, + "❇": { + text: "\\ding{103}" + }, + "❈": { + text: "\\ding{104}" + }, + "❉": { + text: "\\ding{105}" + }, + "❊": { + text: "\\ding{106}" + }, + "❋": { + text: "\\ding{107}" + }, + "❍": { + text: "\\ding{109}" + }, + "❏": { + text: "\\ding{111}" + }, + "❐": { + text: "\\ding{112}" + }, + "❑": { + text: "\\ding{113}" + }, + "❒": { + text: "\\ding{114}" + }, + "❖": { + text: "\\ding{118}" + }, + "❘": { + text: "\\ding{120}" + }, + "❙": { + text: "\\ding{121}" + }, + "❚": { + text: "\\ding{122}" + }, + "❛": { + text: "\\ding{123}" + }, + "❜": { + text: "\\ding{124}" + }, + "❝": { + text: "\\ding{125}" + }, + "❞": { + text: "\\ding{126}" + }, + "❡": { + text: "\\ding{161}" + }, + "❢": { + text: "\\ding{162}" + }, + "❣": { + text: "\\ding{163}" + }, + "❤": { + text: "\\ding{164}" + }, + "❥": { + text: "\\ding{165}" + }, + "❦": { + text: "\\ding{166}" + }, + "❧": { + text: "\\ding{167}" + }, + "❲": { + math: "\\lbrbrak" + }, + "❳": { + math: "\\rbrbrak" + }, + "❶": { + text: "\\ding{182}" + }, + "❷": { + text: "\\ding{183}" + }, + "❸": { + text: "\\ding{184}" + }, + "❹": { + text: "\\ding{185}" + }, + "❺": { + text: "\\ding{186}" + }, + "❻": { + text: "\\ding{187}" + }, + "❼": { + text: "\\ding{188}" + }, + "❽": { + text: "\\ding{189}" + }, + "❾": { + text: "\\ding{190}" + }, + "❿": { + text: "\\ding{191}" + }, + "➀": { + text: "\\ding{192}" + }, + "➁": { + text: "\\ding{193}" + }, + "➂": { + text: "\\ding{194}" + }, + "➃": { + text: "\\ding{195}" + }, + "➄": { + text: "\\ding{196}" + }, + "➅": { + text: "\\ding{197}" + }, + "➆": { + text: "\\ding{198}" + }, + "➇": { + text: "\\ding{199}" + }, + "➈": { + text: "\\ding{200}" + }, + "➉": { + text: "\\ding{201}" + }, + "➊": { + text: "\\ding{202}" + }, + "➋": { + text: "\\ding{203}" + }, + "➌": { + text: "\\ding{204}" + }, + "➍": { + text: "\\ding{205}" + }, + "➎": { + text: "\\ding{206}" + }, + "➏": { + text: "\\ding{207}" + }, + "➐": { + text: "\\ding{208}" + }, + "➑": { + text: "\\ding{209}" + }, + "➒": { + text: "\\ding{210}" + }, + "➓": { + text: "\\ding{211}" + }, + "➔": { + text: "\\ding{212}" + }, + "➘": { + text: "\\ding{216}" + }, + "➙": { + text: "\\ding{217}" + }, + "➚": { + text: "\\ding{218}" + }, + "➛": { + math: "\\draftingarrow", + text: "\\ding{219}" + }, + "➜": { + text: "\\ding{220}" + }, + "➝": { + text: "\\ding{221}" + }, + "➞": { + text: "\\ding{222}" + }, + "➟": { + text: "\\ding{223}" + }, + "➠": { + text: "\\ding{224}" + }, + "➡": { + text: "\\ding{225}" + }, + "➢": { + math: "\\arrowbullet", + text: "\\ding{226}" + }, + "➣": { + text: "\\ding{227}" + }, + "➤": { + text: "\\ding{228}" + }, + "➥": { + text: "\\ding{229}" + }, + "➦": { + text: "\\ding{230}" + }, + "➧": { + text: "\\ding{231}" + }, + "➨": { + text: "\\ding{232}" + }, + "➩": { + text: "\\ding{233}" + }, + "➪": { + text: "\\ding{234}" + }, + "➫": { + text: "\\ding{235}" + }, + "➬": { + text: "\\ding{236}" + }, + "➭": { + text: "\\ding{237}" + }, + "➮": { + text: "\\ding{238}" + }, + "➯": { + text: "\\ding{239}" + }, + "➱": { + text: "\\ding{241}" + }, + "➲": { + text: "\\ding{242}" + }, + "➳": { + text: "\\ding{243}" + }, + "➴": { + text: "\\ding{244}" + }, + "➵": { + text: "\\ding{245}" + }, + "➶": { + text: "\\ding{246}" + }, + "➷": { + text: "\\ding{247}" + }, + "➸": { + text: "\\ding{248}" + }, + "➹": { + text: "\\ding{249}" + }, + "➺": { + text: "\\ding{250}" + }, + "➻": { + text: "\\ding{251}" + }, + "➼": { + text: "\\ding{252}" + }, + "➽": { + text: "\\ding{253}" + }, + "➾": { + text: "\\ding{254}" + }, + "⟀": { + math: "\\threedangle" + }, + "⟁": { + math: "\\whiteinwhitetriangle" + }, + "⟂": { + math: "\\perp" + }, + "⟃": { + math: "\\subsetcirc" + }, + "⟄": { + math: "\\supsetcirc" + }, + "⟅": { + math: "\\Lbag" + }, + "⟆": { + math: "\\Rbag" + }, + "⟇": { + math: "\\veedot" + }, + "⟈": { + math: "\\bsolhsub" + }, + "⟉": { + math: "\\suphsol" + }, + "⟌": { + math: "\\longdivision" + }, + "⟐": { + math: "\\Diamonddot" + }, + "⟑": { + math: "\\wedgedot" + }, + "⟒": { + math: "\\upin" + }, + "⟓": { + math: "\\pullback" + }, + "⟔": { + math: "\\pushout" + }, + "⟕": { + math: "\\leftouterjoin" + }, + "⟖": { + math: "\\rightouterjoin" + }, + "⟗": { + math: "\\fullouterjoin" + }, + "⟘": { + math: "\\bigbot" + }, + "⟙": { + math: "\\bigtop" + }, + "⟚": { + math: "\\DashVDash" + }, + "⟛": { + math: "\\dashVdash" + }, + "⟜": { + math: "\\multimapinv" + }, + "⟝": { + math: "\\vlongdash" + }, + "⟞": { + math: "\\longdashv" + }, + "⟟": { + math: "\\cirbot" + }, + "⟠": { + math: "\\lozengeminus" + }, + "⟡": { + math: "\\concavediamond" + }, + "⟢": { + math: "\\concavediamondtickleft" + }, + "⟣": { + math: "\\concavediamondtickright" + }, + "⟤": { + math: "\\whitesquaretickleft" + }, + "⟥": { + math: "\\whitesquaretickright" + }, + "⟦": { + math: "\\llbracket" + }, + "⟧": { + math: "\\rrbracket" + }, + "⟨": { + math: "\\langle" + }, + "⟩": { + math: "\\rangle" + }, + "⟪": { + math: "\\lang" + }, + "⟫": { + math: "\\rang" + }, + "⟬": { + math: "\\Lbrbrak" + }, + "⟭": { + math: "\\Rbrbrak" + }, + "⟮": { + math: "\\lgroup" + }, + "⟯": { + math: "\\rgroup" + }, + "⟰": { + math: "\\UUparrow" + }, + "⟱": { + math: "\\DDownarrow" + }, + "⟲": { + math: "\\acwgapcirclearrow" + }, + "⟳": { + math: "\\cwgapcirclearrow" + }, + "⟴": { + math: "\\rightarrowonoplus" + }, + "⟵": { + math: "\\longleftarrow" + }, + "⟶": { + math: "\\longrightarrow" + }, + "⟷": { + math: "\\longleftrightarrow" + }, + "⟸": { + math: "\\Longleftarrow" + }, + "⟹": { + math: "\\Longrightarrow" + }, + "⟺": { + math: "\\Longleftrightarrow" + }, + "⟻": { + math: "\\longmapsfrom" + }, + "⟼": { + math: "\\longmapsto" + }, + "⟽": { + math: "\\Longmapsfrom" + }, + "⟾": { + math: "\\Longmapsto" + }, + "⟿": { + math: "\\sim\\joinrel\\leadsto" + }, + "⤀": { + math: "\\psur" + }, + "⤁": { + math: "\\nVtwoheadrightarrow" + }, + "⤂": { + math: "\\nvLeftarrow" + }, + "⤃": { + math: "\\nvRightarrow" + }, + "⤄": { + math: "\\nvLeftrightarrow" + }, + "⤆": { + math: "\\Mapsfrom" + }, + "⤇": { + math: "\\Mapsto" + }, + "⤈": { + math: "\\downarrowbarred" + }, + "⤉": { + math: "\\uparrowbarred" + }, + "⤊": { + math: "\\Uuparrow" + }, + "⤋": { + math: "\\Ddownarrow" + }, + "⤌": { + math: "\\leftbkarrow" + }, + "⤍": { + math: "\\rightbkarrow" + }, + "⤎": { + math: "\\leftdbkarrow" + }, + "⤏": { + math: "\\dbkarow" + }, + "⤐": { + math: "\\drbkarow" + }, + "⤑": { + math: "\\rightdotarrow" + }, + "⤒": { + math: "\\UpArrowBar" + }, + "⤓": { + math: "\\DownArrowBar" + }, + "⤔": { + math: "\\pinj" + }, + "⤕": { + math: "\\finj" + }, + "⤖": { + math: "\\bij" + }, + "⤗": { + math: "\\nvtwoheadrightarrowtail" + }, + "⤘": { + math: "\\nVtwoheadrightarrowtail" + }, + "⤙": { + math: "\\lefttail" + }, + "⤚": { + math: "\\righttail" + }, + "⤛": { + math: "\\leftdbltail" + }, + "⤜": { + math: "\\rightdbltail" + }, + "⤝": { + math: "\\diamondleftarrow" + }, + "⤞": { + math: "\\rightarrowdiamond" + }, + "⤟": { + math: "\\diamondleftarrowbar" + }, + "⤠": { + math: "\\barrightarrowdiamond" + }, + "⤡": { + math: "\\nwsearrow" + }, + "⤢": { + math: "\\neswarrow" + }, + "⤫": { + math: "\\rdiagovfdiag" + }, + "⤬": { + math: "\\fdiagovrdiag" + }, + "⤭": { + math: "\\seovnearrow" + }, + "⤮": { + math: "\\neovsearrow" + }, + "⤯": { + math: "\\fdiagovnearrow" + }, + "⤰": { + math: "\\rdiagovsearrow" + }, + "⤱": { + math: "\\neovnwarrow" + }, + "⤲": { + math: "\\nwovnearrow" + }, + "⤴": { + math: "\\uprightcurvearrow" + }, + "⤵": { + math: "\\downrightcurvedarrow" + }, + "⤸": { + math: "\\cwrightarcarrow" + }, + "⤹": { + math: "\\acwleftarcarrow" + }, + "⤺": { + math: "\\acwoverarcarrow" + }, + "⤻": { + math: "\\acwunderarcarrow" + }, + "⤼": { + math: "\\curvearrowrightminus" + }, + "⤽": { + math: "\\curvearrowleftplus" + }, + "⤾": { + math: "\\cwundercurvearrow" + }, + "⤿": { + math: "\\ccwundercurvearrow" + }, + "⥀": { + math: "\\Elolarr" + }, + "⥁": { + math: "\\Elorarr" + }, + "⥂": { + math: "\\ElzRlarr" + }, + "⥃": { + math: "\\leftarrowshortrightarrow" + }, + "⥄": { + math: "\\ElzrLarr" + }, + "⥅": { + math: "\\rightarrowplus" + }, + "⥆": { + math: "\\leftarrowplus" + }, + "⥇": { + math: "\\Elzrarrx" + }, + "⥈": { + math: "\\leftrightarrowcircle" + }, + "⥉": { + math: "\\twoheaduparrowcircle" + }, + "⥊": { + math: "\\leftrightharpoon" + }, + "⥋": { + math: "\\rightleftharpoon" + }, + "⥌": { + math: "\\updownharpoonrightleft" + }, + "⥍": { + math: "\\updownharpoonleftright" + }, + "⥎": { + math: "\\LeftRightVector" + }, + "⥏": { + math: "\\RightUpDownVector" + }, + "⥐": { + math: "\\DownLeftRightVector" + }, + "⥑": { + math: "\\LeftUpDownVector" + }, + "⥒": { + math: "\\LeftVectorBar" + }, + "⥓": { + math: "\\RightVectorBar" + }, + "⥔": { + math: "\\RightUpVectorBar" + }, + "⥕": { + math: "\\RightDownVectorBar" + }, + "⥖": { + math: "\\DownLeftVectorBar" + }, + "⥗": { + math: "\\DownRightVectorBar" + }, + "⥘": { + math: "\\LeftUpVectorBar" + }, + "⥙": { + math: "\\LeftDownVectorBar" + }, + "⥚": { + math: "\\LeftTeeVector" + }, + "⥛": { + math: "\\RightTeeVector" + }, + "⥜": { + math: "\\RightUpTeeVector" + }, + "⥝": { + math: "\\RightDownTeeVector" + }, + "⥞": { + math: "\\DownLeftTeeVector" + }, + "⥟": { + math: "\\DownRightTeeVector" + }, + "⥠": { + math: "\\LeftUpTeeVector" + }, + "⥡": { + math: "\\LeftDownTeeVector" + }, + "⥢": { + math: "\\leftleftharpoons" + }, + "⥣": { + math: "\\upupharpoons" + }, + "⥤": { + math: "\\rightrightharpoons" + }, + "⥥": { + math: "\\downdownharpoons" + }, + "⥦": { + math: "\\leftrightharpoonsup" + }, + "⥧": { + math: "\\leftrightharpoonsdown" + }, + "⥨": { + math: "\\rightleftharpoonsup" + }, + "⥩": { + math: "\\rightleftharpoonsdown" + }, + "⥪": { + math: "\\leftbarharpoon" + }, + "⥫": { + math: "\\barleftharpoon" + }, + "⥬": { + math: "\\rightbarharpoon" + }, + "⥭": { + math: "\\barrightharpoon" + }, + "⥮": { + math: "\\UpEquilibrium" + }, + "⥯": { + math: "\\ReverseUpEquilibrium" + }, + "⥰": { + math: "\\RoundImplies" + }, + "⥱": { + math: "\\equalrightarrow" + }, + "⥲": { + math: "\\similarrightarrow" + }, + "⥳": { + math: "\\leftarrowsimilar" + }, + "⥴": { + math: "\\rightarrowsimilar" + }, + "⥵": { + math: "\\rightarrowapprox" + }, + "⥶": { + math: "\\ltlarr" + }, + "⥷": { + math: "\\leftarrowless" + }, + "⥸": { + math: "\\gtrarr" + }, + "⥹": { + math: "\\subrarr" + }, + "⥺": { + math: "\\leftarrowsubset" + }, + "⥻": { + math: "\\suplarr" + }, + "⥾": { + math: "\\upfishtail" + }, + "⥿": { + math: "\\downfishtail" + }, + "⦀": { + math: "\\Elztfnc" + }, + "⦁": { + math: "\\spot" + }, + "⦂": { + math: "\\typecolon" + }, + "⦃": { + math: "\\lBrace" + }, + "⦄": { + math: "\\rBrace" + }, + "⦆": { + math: "\\Elroang" + }, + "⦇": { + math: "\\limg" + }, + "⦈": { + math: "\\rimg" + }, + "⦉": { + math: "\\lblot" + }, + "⦊": { + math: "\\rblot" + }, + "⦋": { + math: "\\lbrackubar" + }, + "⦌": { + math: "\\rbrackubar" + }, + "⦍": { + math: "\\lbrackultick" + }, + "⦎": { + math: "\\rbracklrtick" + }, + "⦏": { + math: "\\lbracklltick" + }, + "⦐": { + math: "\\rbrackurtick" + }, + "⦑": { + math: "\\langledot" + }, + "⦒": { + math: "\\rangledot" + }, + "⦓": { + math: "<\\kern-0.58em(" + }, + "⦕": { + math: "\\Lparengtr" + }, + "⦖": { + math: "\\Rparenless" + }, + "⦗": { + math: "\\lblkbrbrak" + }, + "⦘": { + math: "\\rblkbrbrak" + }, + "⦙": { + math: "\\Elzddfnc" + }, + "⦚": { + math: "\\vzigzag" + }, + "⦛": { + math: "\\measuredangleleft" + }, + "⦜": { + math: "\\Angle" + }, + "⦝": { + math: "\\rightanglemdot" + }, + "⦞": { + math: "\\angles" + }, + "⦟": { + math: "\\angdnr" + }, + "⦠": { + math: "\\Elzlpargt" + }, + "⦡": { + math: "\\sphericalangleup" + }, + "⦢": { + math: "\\turnangle" + }, + "⦣": { + math: "\\revangle" + }, + "⦤": { + math: "\\angleubar" + }, + "⦥": { + math: "\\revangleubar" + }, + "⦦": { + math: "\\wideangledown" + }, + "⦧": { + math: "\\wideangleup" + }, + "⦨": { + math: "\\measanglerutone" + }, + "⦩": { + math: "\\measanglelutonw" + }, + "⦪": { + math: "\\measanglerdtose" + }, + "⦫": { + math: "\\measangleldtosw" + }, + "⦬": { + math: "\\measangleurtone" + }, + "⦭": { + math: "\\measangleultonw" + }, + "⦮": { + math: "\\measangledrtose" + }, + "⦯": { + math: "\\measangledltosw" + }, + "⦰": { + math: "\\revemptyset" + }, + "⦱": { + math: "\\emptysetobar" + }, + "⦲": { + math: "\\emptysetocirc" + }, + "⦳": { + math: "\\emptysetoarr" + }, + "⦴": { + math: "\\emptysetoarrl" + }, + "⦷": { + math: "\\circledparallel" + }, + "⦸": { + math: "\\circledbslash" + }, + "⦹": { + math: "\\operp" + }, + "⦺": { + math: "\\obot" + }, + "⦻": { + math: "\\olcross" + }, + "⦼": { + math: "\\odotslashdot" + }, + "⦽": { + math: "\\uparrowoncircle" + }, + "⦾": { + math: "\\circledwhitebullet" + }, + "⦿": { + math: "\\circledbullet" + }, + "⧀": { + math: "\\circledless" + }, + "⧁": { + math: "\\circledgtr" + }, + "⧂": { + math: "\\cirscir" + }, + "⧃": { + math: "\\cirE" + }, + "⧄": { + math: "\\boxslash" + }, + "⧅": { + math: "\\boxbslash" + }, + "⧆": { + math: "\\boxast" + }, + "⧇": { + math: "\\boxcircle" + }, + "⧈": { + math: "\\boxbox" + }, + "⧉": { + math: "\\boxonbox" + }, + "⧊": { + math: "\\ElzLap" + }, + "⧋": { + math: "\\Elzdefas" + }, + "⧌": { + math: "\\triangles" + }, + "⧍": { + math: "\\triangleserifs" + }, + "⧎": { + math: "\\rtriltri" + }, + "⧏": { + math: "\\LeftTriangleBar" + }, + "⧏̸": { + math: "\\NotLeftTriangleBar" + }, + "⧐": { + math: "\\RightTriangleBar" + }, + "⧐̸": { + math: "\\NotRightTriangleBar" + }, + "⧑": { + math: "\\lfbowtie" + }, + "⧒": { + math: "\\rfbowtie" + }, + "⧓": { + math: "\\fbowtie" + }, + "⧔": { + math: "\\lftimes" + }, + "⧕": { + math: "\\rftimes" + }, + "⧖": { + math: "\\hourglass" + }, + "⧗": { + math: "\\blackhourglass" + }, + "⧘": { + math: "\\lvzigzag" + }, + "⧙": { + math: "\\rvzigzag" + }, + "⧚": { + math: "\\Lvzigzag" + }, + "⧛": { + math: "\\Rvzigzag" + }, + "⧝": { + math: "\\tieinfty" + }, + "⧞": { + math: "\\nvinfty" + }, + "⧟": { + math: "\\multimapboth" + }, + "⧠": { + math: "\\laplac" + }, + "⧡": { + math: "\\lrtriangleeq" + }, + "⧢": { + math: "\\shuffle" + }, + "⧣": { + math: "\\eparsl" + }, + "⧤": { + math: "\\smeparsl" + }, + "⧥": { + math: "\\eqvparsl" + }, + "⧦": { + math: "\\gleichstark" + }, + "⧧": { + math: "\\thermod" + }, + "⧨": { + math: "\\downtriangleleftblack" + }, + "⧩": { + math: "\\downtrianglerightblack" + }, + "⧪": { + math: "\\blackdiamonddownarrow" + }, + "⧫": { + math: "\\blacklozenge" + }, + "⧬": { + math: "\\circledownarrow" + }, + "⧭": { + math: "\\blackcircledownarrow" + }, + "⧮": { + math: "\\errbarsquare" + }, + "⧯": { + math: "\\errbarblacksquare" + }, + "⧰": { + math: "\\errbardiamond" + }, + "⧱": { + math: "\\errbarblackdiamond" + }, + "⧲": { + math: "\\errbarcircle" + }, + "⧳": { + math: "\\errbarblackcircle" + }, + "⧴": { + math: "\\RuleDelayed" + }, + "⧵": { + math: "\\setminus" + }, + "⧶": { + math: "\\dsol" + }, + "⧷": { + math: "\\rsolbar" + }, + "⧸": { + math: "\\xsol" + }, + "⧹": { + math: "\\zhide" + }, + "⧺": { + math: "\\doubleplus" + }, + "⧻": { + math: "\\tripleplus" + }, + "⧼": { + math: "\\lcurvyangle" + }, + "⧽": { + math: "\\rcurvyangle" + }, + "⧾": { + math: "\\tplus" + }, + "⧿": { + math: "\\tminus" + }, + "⨀": { + math: "\\bigodot" + }, + "⨁": { + math: "\\bigoplus" + }, + "⨂": { + math: "\\bigotimes" + }, + "⨃": { + math: "\\bigcupdot" + }, + "⨄": { + math: "\\Elxuplus" + }, + "⨅": { + math: "\\ElzThr" + }, + "⨆": { + math: "\\Elxsqcup" + }, + "⨇": { + math: "\\ElzInf" + }, + "⨈": { + math: "\\ElzSup" + }, + "⨉": { + math: "\\varprod" + }, + "⨊": { + math: "\\modtwosum" + }, + "⨋": { + math: "\\sumint" + }, + "⨌": { + math: "\\iiiint" + }, + "⨍": { + math: "\\ElzCint" + }, + "⨎": { + math: "\\intBar" + }, + "⨏": { + math: "\\clockoint" + }, + "⨑": { + math: "\\awint" + }, + "⨒": { + math: "\\rppolint" + }, + "⨓": { + math: "\\scpolint" + }, + "⨔": { + math: "\\npolint" + }, + "⨕": { + math: "\\pointint" + }, + "⨖": { + math: "\\sqrint" + }, + "⨗": { + math: "\\intlarhk" + }, + "⨘": { + math: "\\intx" + }, + "⨙": { + math: "\\intcap" + }, + "⨚": { + math: "\\intcup" + }, + "⨛": { + math: "\\upint" + }, + "⨜": { + math: "\\lowint" + }, + "⨝": { + math: "\\Join" + }, + "⨞": { + math: "\\bigtriangleleft" + }, + "⨟": { + math: "\\zcmp" + }, + "⨠": { + math: "\\zpipe" + }, + "⨡": { + math: "\\zproject" + }, + "⨢": { + math: "\\ringplus" + }, + "⨣": { + math: "\\plushat" + }, + "⨤": { + math: "\\simplus" + }, + "⨦": { + math: "\\plussim" + }, + "⨧": { + math: "\\plussubtwo" + }, + "⨨": { + math: "\\plustrif" + }, + "⨩": { + math: "\\commaminus" + }, + "⨫": { + math: "\\minusfdots" + }, + "⨬": { + math: "\\minusrdots" + }, + "⨯": { + math: "\\ElzTimes" + }, + "⨰": { + math: "\\dottimes" + }, + "⨱": { + math: "\\timesbar" + }, + "⨲": { + math: "\\btimes" + }, + "⨳": { + math: "\\smashtimes" + }, + "⨶": { + math: "\\otimeshat" + }, + "⨷": { + math: "\\Otimes" + }, + "⨸": { + math: "\\odiv" + }, + "⨹": { + math: "\\triangleplus" + }, + "⨺": { + math: "\\triangleminus" + }, + "⨻": { + math: "\\triangletimes" + }, + "⨽": { + math: "\\intprodr" + }, + "⨾": { + math: "\\fcmp" + }, + "⨿": { + math: "\\amalg" + }, + "⩀": { + math: "\\capdot" + }, + "⩁": { + math: "\\uminus" + }, + "⩂": { + math: "\\barcup" + }, + "⩃": { + math: "\\barcap" + }, + "⩄": { + math: "\\capwedge" + }, + "⩅": { + math: "\\cupvee" + }, + "⩆": { + math: "\\cupovercap" + }, + "⩇": { + math: "\\capovercup" + }, + "⩈": { + math: "\\cupbarcap" + }, + "⩉": { + math: "\\capbarcup" + }, + "⩊": { + math: "\\twocups" + }, + "⩋": { + math: "\\twocaps" + }, + "⩌": { + math: "\\closedvarcup" + }, + "⩍": { + math: "\\closedvarcap" + }, + "⩎": { + math: "\\Sqcap" + }, + "⩏": { + math: "\\Sqcup" + }, + "⩐": { + math: "\\closedvarcupsmashprod" + }, + "⩑": { + math: "\\wedgeodot" + }, + "⩒": { + math: "\\veeodot" + }, + "⩓": { + math: "\\ElzAnd" + }, + "⩔": { + math: "\\ElzOr" + }, + "⩖": { + math: "\\ElOr" + }, + "⩗": { + math: "\\bigslopedvee" + }, + "⩘": { + math: "\\bigslopedwedge" + }, + "⩙": { + math: "\\veeonwedge" + }, + "⩚": { + math: "\\wedgemidvert" + }, + "⩛": { + math: "\\veemidvert" + }, + "⩜": { + math: "\\midbarwedge" + }, + "⩝": { + math: "\\midbarvee" + }, + "⩞": { + math: "\\perspcorrespond" + }, + "⩟": { + math: "\\Elzminhat" + }, + "⩠": { + math: "\\wedgedoublebar" + }, + "⩡": { + math: "\\varveebar" + }, + "⩢": { + math: "\\doublebarvee" + }, + "⩤": { + math: "\\dsub" + }, + "⩥": { + math: "\\rsub" + }, + "⩦": { + math: "\\eqdot" + }, + "⩧": { + math: "\\dotequiv" + }, + "⩨": { + math: "\\equivVert" + }, + "⩩": { + math: "\\equivVvert" + }, + "⩪": { + math: "\\dotsim" + }, + "⩫": { + math: "\\simrdots" + }, + "⩬": { + math: "\\simminussim" + }, + "⩭": { + math: "\\congdot" + }, + "⩮": { + math: "\\stackrel{*}{=}" + }, + "⩯": { + math: "\\hatapprox" + }, + "⩰": { + math: "\\approxeqq" + }, + "⩱": { + math: "\\eqqplus" + }, + "⩲": { + math: "\\pluseqq" + }, + "⩳": { + math: "\\eqqsim" + }, + "⩴": { + math: "\\Coloneqq" + }, + "⩵": { + math: "\\Equal" + }, + "⩶": { + math: "\\Same" + }, + "⩷": { + math: "\\ddotseq" + }, + "⩸": { + math: "\\equivDD" + }, + "⩹": { + math: "\\ltcir" + }, + "⩺": { + math: "\\gtcir" + }, + "⩻": { + math: "\\ltquest" + }, + "⩼": { + math: "\\gtquest" + }, + "⩽": { + math: "\\leqslant", + mathpackages: [ + "amssymb" + ] + }, + "⩽̸": { + math: "\\nleqslant", + mathpackages: [ + "amssymb" + ] + }, + "⩾": { + math: "\\geqslant", + mathpackages: [ + "amssymb" + ] + }, + "⩾̸": { + math: "\\ngeqslant", + mathpackages: [ + "amssymb" + ] + }, + "⩿": { + math: "\\lesdot" + }, + "⪀": { + math: "\\gesdot" + }, + "⪁": { + math: "\\lesdoto" + }, + "⪂": { + math: "\\gesdoto" + }, + "⪃": { + math: "\\lesdotor" + }, + "⪄": { + math: "\\gesdotol" + }, + "⪅": { + math: "\\lessapprox" + }, + "⪆": { + math: "\\gtrapprox" + }, + "⪇": { + math: "\\lneq" + }, + "⪈": { + math: "\\gneq" + }, + "⪉": { + math: "\\lnapprox" + }, + "⪊": { + math: "\\gnapprox" + }, + "⪋": { + math: "\\lesseqqgtr" + }, + "⪌": { + math: "\\gtreqqless" + }, + "⪍": { + math: "\\lsime" + }, + "⪎": { + math: "\\gsime" + }, + "⪏": { + math: "\\lsimg" + }, + "⪐": { + math: "\\gsiml" + }, + "⪑": { + math: "\\lgE" + }, + "⪒": { + math: "\\glE" + }, + "⪓": { + math: "\\lesges" + }, + "⪔": { + math: "\\gesles" + }, + "⪕": { + math: "\\eqslantless" + }, + "⪖": { + math: "\\eqslantgtr" + }, + "⪗": { + math: "\\elsdot" + }, + "⪘": { + math: "\\egsdot" + }, + "⪙": { + math: "\\eqqless" + }, + "⪚": { + math: "\\eqqgtr" + }, + "⪛": { + math: "\\eqqslantless" + }, + "⪜": { + math: "\\eqqslantgtr" + }, + "⪝": { + math: "\\Pisymbol{ppi020}{117}" + }, + "⪞": { + math: "\\Pisymbol{ppi020}{105}" + }, + "⪟": { + math: "\\simlE" + }, + "⪠": { + math: "\\simgE" + }, + "⪡": { + math: "\\NestedLessLess" + }, + "⪡̸": { + math: "\\NotNestedLessLess" + }, + "⪢": { + math: "\\NestedGreaterGreater" + }, + "⪢̸": { + math: "\\NotNestedGreaterGreater" + }, + "⪣": { + math: "\\partialmeetcontraction" + }, + "⪤": { + math: "\\glj" + }, + "⪥": { + math: "\\gla" + }, + "⪦": { + math: "\\leftslice" + }, + "⪧": { + math: "\\rightslice" + }, + "⪨": { + math: "\\lescc" + }, + "⪩": { + math: "\\gescc" + }, + "⪪": { + math: "\\smt" + }, + "⪫": { + math: "\\lat" + }, + "⪬": { + math: "\\smte" + }, + "⪭": { + math: "\\late" + }, + "⪮": { + math: "\\bumpeqq" + }, + "⪯": { + math: "\\preceq" + }, + "⪯̸": { + math: "\\not\\preceq" + }, + "⪰": { + math: "\\succeq" + }, + "⪰̸": { + math: "\\not\\succeq" + }, + "⪱": { + math: "\\precneq" + }, + "⪲": { + math: "\\succneq" + }, + "⪳": { + math: "\\preceqq" + }, + "⪴": { + math: "\\succeqq" + }, + "⪵": { + math: "\\precneqq" + }, + "⪶": { + math: "\\succneqq" + }, + "⪷": { + math: "\\precapprox" + }, + "⪸": { + math: "\\succapprox" + }, + "⪹": { + math: "\\precnapprox" + }, + "⪺": { + math: "\\succnapprox" + }, + "⪻": { + math: "\\llcurly" + }, + "⪼": { + math: "\\ggcurly" + }, + "⪽": { + math: "\\subsetdot" + }, + "⪾": { + math: "\\supsetdot" + }, + "⪿": { + math: "\\subsetplus" + }, + "⫀": { + math: "\\supsetplus" + }, + "⫁": { + math: "\\submult" + }, + "⫂": { + math: "\\supmult" + }, + "⫃": { + math: "\\subedot" + }, + "⫄": { + math: "\\supedot" + }, + "⫅": { + math: "\\subseteqq" + }, + "⫅̸": { + math: "\\nsubseteqq" + }, + "⫆": { + math: "\\supseteqq" + }, + "⫆̸": { + math: "\\nsupseteqq" + }, + "⫇": { + math: "\\subsim" + }, + "⫈": { + math: "\\supsim" + }, + "⫉": { + math: "\\subsetapprox" + }, + "⫊": { + math: "\\supsetapprox" + }, + "⫋": { + math: "\\subsetneqq" + }, + "⫌": { + math: "\\supsetneqq" + }, + "⫍": { + math: "\\lsqhook" + }, + "⫎": { + math: "\\rsqhook" + }, + "⫏": { + math: "\\csub" + }, + "⫐": { + math: "\\csup" + }, + "⫑": { + math: "\\csube" + }, + "⫒": { + math: "\\csupe" + }, + "⫓": { + math: "\\subsup" + }, + "⫔": { + math: "\\supsub" + }, + "⫕": { + math: "\\subsub" + }, + "⫖": { + math: "\\supsup" + }, + "⫗": { + math: "\\suphsub" + }, + "⫘": { + math: "\\supdsub" + }, + "⫙": { + math: "\\forkv" + }, + "⫚": { + math: "\\topfork" + }, + "⫛": { + math: "\\mlcp" + }, + "⫝̸": { + math: "\\forks" + }, + "⫝": { + math: "\\forksnot" + }, + "⫝̸": { + math: "\\forks" + }, + "⫞": { + math: "\\shortlefttack" + }, + "⫟": { + math: "\\shortdowntack" + }, + "⫠": { + math: "\\shortuptack" + }, + "⫡": { + math: "\\perps" + }, + "⫢": { + math: "\\vDdash" + }, + "⫣": { + math: "\\dashV" + }, + "⫤": { + math: "\\Dashv" + }, + "⫥": { + math: "\\DashV" + }, + "⫦": { + math: "\\varVdash" + }, + "⫧": { + math: "\\Barv" + }, + "⫨": { + math: "\\vBar" + }, + "⫩": { + math: "\\vBarv" + }, + "⫪": { + math: "\\Top" + }, + "⫬": { + math: "\\Not" + }, + "⫭": { + math: "\\bNot" + }, + "⫮": { + math: "\\revnmid" + }, + "⫯": { + math: "\\cirmid" + }, + "⫰": { + math: "\\midcir" + }, + "⫱": { + math: "\\topcir" + }, + "⫲": { + math: "\\nhpar" + }, + "⫳": { + math: "\\parsim" + }, + "⫴": { + math: "\\interleave" + }, + "⫵": { + math: "\\nhVvert" + }, + "⫶": { + math: "\\Elztdcol" + }, + "⫷": { + math: "\\lllnest" + }, + "⫸": { + math: "\\gggnest" + }, + "⫹": { + math: "\\leqqslant" + }, + "⫺": { + math: "\\geqqslant" + }, + "⫻": { + math: "\\trslash" + }, + "⫼": { + math: "\\biginterleave" + }, + "⫽": { + math: "{{/}\\!\\!{/}}" + }, + "⫽⃥": { + math: "{\\rlap{\\textbackslash}{{/}\\!\\!{/}}}" + }, + "⫾": { + math: "\\talloblong" + }, + "⫿": { + math: "\\bigtalloblong" + }, + "⬒": { + math: "\\squaretopblack" + }, + "⬓": { + math: "\\squarebotblack" + }, + "⬔": { + math: "\\squareurblack" + }, + "⬕": { + math: "\\squarellblack" + }, + "⬖": { + math: "\\diamondleftblack" + }, + "⬗": { + math: "\\diamondrightblack" + }, + "⬘": { + math: "\\diamondtopblack" + }, + "⬙": { + math: "\\diamondbotblack" + }, + "⬚": { + math: "\\dottedsquare" + }, + "⬛": { + math: "\\blacksquare" + }, + "⬜": { + math: "\\square" + }, + "⬝": { + math: "\\vysmblksquare" + }, + "⬞": { + math: "\\vysmwhtsquare" + }, + "⬟": { + math: "\\pentagonblack" + }, + "⬠": { + math: "\\pentagon" + }, + "⬡": { + math: "\\varhexagon" + }, + "⬢": { + math: "\\varhexagonblack" + }, + "⬣": { + math: "\\hexagonblack" + }, + "⬤": { + math: "\\lgblkcircle" + }, + "⬥": { + math: "\\mdblkdiamond" + }, + "⬦": { + math: "\\mdwhtdiamond" + }, + "⬧": { + math: "\\mdblklozenge" + }, + "⬨": { + math: "\\mdwhtlozenge" + }, + "⬩": { + math: "\\smblkdiamond" + }, + "⬪": { + math: "\\smblklozenge" + }, + "⬫": { + math: "\\smwhtlozenge" + }, + "⬬": { + math: "\\blkhorzoval" + }, + "⬭": { + math: "\\whthorzoval" + }, + "⬮": { + math: "\\blkvertoval" + }, + "⬯": { + math: "\\whtvertoval" + }, + "⬰": { + math: "\\circleonleftarrow" + }, + "⬱": { + math: "\\leftthreearrows" + }, + "⬲": { + math: "\\leftarrowonoplus" + }, + "⬳": { + math: "\\longleftsquigarrow" + }, + "⬴": { + math: "\\nvtwoheadleftarrow" + }, + "⬵": { + math: "\\nVtwoheadleftarrow" + }, + "⬶": { + math: "\\twoheadmapsfrom" + }, + "⬷": { + math: "\\twoheadleftdbkarrow" + }, + "⬸": { + math: "\\leftdotarrow" + }, + "⬹": { + math: "\\nvleftarrowtail" + }, + "⬺": { + math: "\\nVleftarrowtail" + }, + "⬻": { + math: "\\twoheadleftarrowtail" + }, + "⬼": { + math: "\\nvtwoheadleftarrowtail" + }, + "⬽": { + math: "\\nVtwoheadleftarrowtail" + }, + "⬾": { + math: "\\leftarrowx" + }, + "⬿": { + math: "\\leftcurvedarrow" + }, + "⭀": { + math: "\\equalleftarrow" + }, + "⭁": { + math: "\\bsimilarleftarrow" + }, + "⭂": { + math: "\\leftarrowbackapprox" + }, + "⭃": { + math: "\\rightarrowgtr" + }, + "⭄": { + math: "\\rightarrowsupset" + }, + "⭅": { + math: "\\LLeftarrow" + }, + "⭆": { + math: "\\RRightarrow" + }, + "⭇": { + math: "\\bsimilarrightarrow" + }, + "⭈": { + math: "\\rightarrowbackapprox" + }, + "⭉": { + math: "\\similarleftarrow" + }, + "⭊": { + math: "\\leftarrowapprox" + }, + "⭋": { + math: "\\leftarrowbsimilar" + }, + "⭌": { + math: "\\rightarrowbsimilar" + }, + "⭐": { + math: "\\medwhitestar" + }, + "⭑": { + math: "\\medblackstar" + }, + "⭒": { + math: "\\smwhitestar" + }, + "⭓": { + math: "\\rightpentagonblack" + }, + "⭔": { + math: "\\rightpentagon" + }, + "〈": { + math: "\\langle" + }, + "〉": { + math: "\\rangle" + }, + "〒": { + math: "\\postalmark" + }, + "〔": { + math: "\\lbrbrak" + }, + "〕": { + math: "\\rbrbrak" + }, + "〚": { + math: "\\openbracketleft" + }, + "〛": { + math: "\\openbracketright" + }, + "〰": { + math: "\\hzigzag" + }, + "ff": { + text: "ff" + }, + "fi": { + text: "fi" + }, + "fl": { + text: "fl" + }, + "ffi": { + text: "ffi" + }, + "ffl": { + text: "ffl" + }, + "ſt": { + text: "st" + }, + "st": { + text: "st" + }, + "�": { + text: "{\\dbend}" + }, + "𝐀": { + math: "\\mathbf{A}" + }, + "𝐁": { + math: "\\mathbf{B}" + }, + "𝐂": { + math: "\\mathbf{C}" + }, + "𝐃": { + math: "\\mathbf{D}" + }, + "𝐄": { + math: "\\mathbf{E}" + }, + "𝐅": { + math: "\\mathbf{F}" + }, + "𝐆": { + math: "\\mathbf{G}" + }, + "𝐇": { + math: "\\mathbf{H}" + }, + "𝐈": { + math: "\\mathbf{I}" + }, + "𝐉": { + math: "\\mathbf{J}" + }, + "𝐊": { + math: "\\mathbf{K}" + }, + "𝐋": { + math: "\\mathbf{L}" + }, + "𝐌": { + math: "\\mathbf{M}" + }, + "𝐍": { + math: "\\mathbf{N}" + }, + "𝐎": { + math: "\\mathbf{O}" + }, + "𝐏": { + math: "\\mathbf{P}" + }, + "𝐐": { + math: "\\mathbf{Q}" + }, + "𝐑": { + math: "\\mathbf{R}" + }, + "𝐒": { + math: "\\mathbf{S}" + }, + "𝐓": { + math: "\\mathbf{T}" + }, + "𝐔": { + math: "\\mathbf{U}" + }, + "𝐕": { + math: "\\mathbf{V}" + }, + "𝐖": { + math: "\\mathbf{W}" + }, + "𝐗": { + math: "\\mathbf{X}" + }, + "𝐘": { + math: "\\mathbf{Y}" + }, + "𝐙": { + math: "\\mathbf{Z}" + }, + "𝐚": { + math: "\\mathbf{a}" + }, + "𝐛": { + math: "\\mathbf{b}" + }, + "𝐜": { + math: "\\mathbf{c}" + }, + "𝐝": { + math: "\\mathbf{d}" + }, + "𝐞": { + math: "\\mathbf{e}" + }, + "𝐟": { + math: "\\mathbf{f}" + }, + "𝐠": { + math: "\\mathbf{g}" + }, + "𝐡": { + math: "\\mathbf{h}" + }, + "𝐢": { + math: "\\mathbf{i}" + }, + "𝐣": { + math: "\\mathbf{j}" + }, + "𝐤": { + math: "\\mathbf{k}" + }, + "𝐥": { + math: "\\mathbf{l}" + }, + "𝐦": { + math: "\\mathbf{m}" + }, + "𝐧": { + math: "\\mathbf{n}" + }, + "𝐨": { + math: "\\mathbf{o}" + }, + "𝐩": { + math: "\\mathbf{p}" + }, + "𝐪": { + math: "\\mathbf{q}" + }, + "𝐫": { + math: "\\mathbf{r}" + }, + "𝐬": { + math: "\\mathbf{s}" + }, + "𝐭": { + math: "\\mathbf{t}" + }, + "𝐮": { + math: "\\mathbf{u}" + }, + "𝐯": { + math: "\\mathbf{v}" + }, + "𝐰": { + math: "\\mathbf{w}" + }, + "𝐱": { + math: "\\mathbf{x}" + }, + "𝐲": { + math: "\\mathbf{y}" + }, + "𝐳": { + math: "\\mathbf{z}" + }, + "𝐴": { + math: "\\mathsl{A}" + }, + "𝐵": { + math: "\\mathsl{B}" + }, + "𝐶": { + math: "\\mathsl{C}" + }, + "𝐷": { + math: "\\mathsl{D}" + }, + "𝐸": { + math: "\\mathsl{E}" + }, + "𝐹": { + math: "\\mathsl{F}" + }, + "𝐺": { + math: "\\mathsl{G}" + }, + "𝐻": { + math: "\\mathsl{H}" + }, + "𝐼": { + math: "\\mathsl{I}" + }, + "𝐽": { + math: "\\mathsl{J}" + }, + "𝐾": { + math: "\\mathsl{K}" + }, + "𝐿": { + math: "\\mathsl{L}" + }, + "𝑀": { + math: "\\mathsl{M}" + }, + "𝑁": { + math: "\\mathsl{N}" + }, + "𝑂": { + math: "\\mathsl{O}" + }, + "𝑃": { + math: "\\mathsl{P}" + }, + "𝑄": { + math: "\\mathsl{Q}" + }, + "𝑅": { + math: "\\mathsl{R}" + }, + "𝑆": { + math: "\\mathsl{S}" + }, + "𝑇": { + math: "\\mathsl{T}" + }, + "𝑈": { + math: "\\mathsl{U}" + }, + "𝑉": { + math: "\\mathsl{V}" + }, + "𝑊": { + math: "\\mathsl{W}" + }, + "𝑋": { + math: "\\mathsl{X}" + }, + "𝑌": { + math: "\\mathsl{Y}" + }, + "𝑍": { + math: "\\mathsl{Z}" + }, + "𝑎": { + math: "\\mathsl{a}" + }, + "𝑏": { + math: "\\mathsl{b}" + }, + "𝑐": { + math: "\\mathsl{c}" + }, + "𝑑": { + math: "\\mathsl{d}" + }, + "𝑒": { + math: "\\mathsl{e}" + }, + "𝑓": { + math: "\\mathsl{f}" + }, + "𝑔": { + math: "\\mathsl{g}" + }, + "𝑖": { + math: "\\mathsl{i}" + }, + "𝑗": { + math: "\\mathsl{j}" + }, + "𝑘": { + math: "\\mathsl{k}" + }, + "𝑙": { + math: "\\mathsl{l}" + }, + "𝑚": { + math: "\\mathsl{m}" + }, + "𝑛": { + math: "\\mathsl{n}" + }, + "𝑜": { + math: "\\mathsl{o}" + }, + "𝑝": { + math: "\\mathsl{p}" + }, + "𝑞": { + math: "\\mathsl{q}" + }, + "𝑟": { + math: "\\mathsl{r}" + }, + "𝑠": { + math: "\\mathsl{s}" + }, + "𝑡": { + math: "\\mathsl{t}" + }, + "𝑢": { + math: "\\mathsl{u}" + }, + "𝑣": { + math: "\\mathsl{v}" + }, + "𝑤": { + math: "\\mathsl{w}" + }, + "𝑥": { + math: "\\mathsl{x}" + }, + "𝑦": { + math: "\\mathsl{y}" + }, + "𝑧": { + math: "\\mathsl{z}" + }, + "𝑨": { + math: "\\mathbit{A}" + }, + "𝑩": { + math: "\\mathbit{B}" + }, + "𝑪": { + math: "\\mathbit{C}" + }, + "𝑫": { + math: "\\mathbit{D}" + }, + "𝑬": { + math: "\\mathbit{E}" + }, + "𝑭": { + math: "\\mathbit{F}" + }, + "𝑮": { + math: "\\mathbit{G}" + }, + "𝑯": { + math: "\\mathbit{H}" + }, + "𝑰": { + math: "\\mathbit{I}" + }, + "𝑱": { + math: "\\mathbit{J}" + }, + "𝑲": { + math: "\\mathbit{K}" + }, + "𝑳": { + math: "\\mathbit{L}" + }, + "𝑴": { + math: "\\mathbit{M}" + }, + "𝑵": { + math: "\\mathbit{N}" + }, + "𝑶": { + math: "\\mathbit{O}" + }, + "𝑷": { + math: "\\mathbit{P}" + }, + "𝑸": { + math: "\\mathbit{Q}" + }, + "𝑹": { + math: "\\mathbit{R}" + }, + "𝑺": { + math: "\\mathbit{S}" + }, + "𝑻": { + math: "\\mathbit{T}" + }, + "𝑼": { + math: "\\mathbit{U}" + }, + "𝑽": { + math: "\\mathbit{V}" + }, + "𝑾": { + math: "\\mathbit{W}" + }, + "𝑿": { + math: "\\mathbit{X}" + }, + "𝒀": { + math: "\\mathbit{Y}" + }, + "𝒁": { + math: "\\mathbit{Z}" + }, + "𝒂": { + math: "\\mathbit{a}" + }, + "𝒃": { + math: "\\mathbit{b}" + }, + "𝒄": { + math: "\\mathbit{c}" + }, + "𝒅": { + math: "\\mathbit{d}" + }, + "𝒆": { + math: "\\mathbit{e}" + }, + "𝒇": { + math: "\\mathbit{f}" + }, + "𝒈": { + math: "\\mathbit{g}" + }, + "𝒉": { + math: "\\mathbit{h}" + }, + "𝒊": { + math: "\\mathbit{i}" + }, + "𝒋": { + math: "\\mathbit{j}" + }, + "𝒌": { + math: "\\mathbit{k}" + }, + "𝒍": { + math: "\\mathbit{l}" + }, + "𝒎": { + math: "\\mathbit{m}" + }, + "𝒏": { + math: "\\mathbit{n}" + }, + "𝒐": { + math: "\\mathbit{o}" + }, + "𝒑": { + math: "\\mathbit{p}" + }, + "𝒒": { + math: "\\mathbit{q}" + }, + "𝒓": { + math: "\\mathbit{r}" + }, + "𝒔": { + math: "\\mathbit{s}" + }, + "𝒕": { + math: "\\mathbit{t}" + }, + "𝒖": { + math: "\\mathbit{u}" + }, + "𝒗": { + math: "\\mathbit{v}" + }, + "𝒘": { + math: "\\mathbit{w}" + }, + "𝒙": { + math: "\\mathbit{x}" + }, + "𝒚": { + math: "\\mathbit{y}" + }, + "𝒛": { + math: "\\mathbit{z}" + }, + "𝒜": { + math: "\\mathscr{A}" + }, + "𝒞": { + math: "\\mathscr{C}" + }, + "𝒟": { + math: "\\mathscr{D}" + }, + "𝒢": { + math: "\\mathscr{G}" + }, + "𝒥": { + math: "\\mathscr{J}" + }, + "𝒦": { + math: "\\mathscr{K}" + }, + "𝒩": { + math: "\\mathscr{N}" + }, + "𝒪": { + math: "\\mathscr{O}" + }, + "𝒫": { + math: "\\mathscr{P}" + }, + "𝒬": { + math: "\\mathscr{Q}" + }, + "𝒮": { + math: "\\mathscr{S}" + }, + "𝒯": { + math: "\\mathscr{T}" + }, + "𝒰": { + math: "\\mathscr{U}" + }, + "𝒱": { + math: "\\mathscr{V}" + }, + "𝒲": { + math: "\\mathscr{W}" + }, + "𝒳": { + math: "\\mathscr{X}" + }, + "𝒴": { + math: "\\mathscr{Y}" + }, + "𝒵": { + math: "\\mathscr{Z}" + }, + "𝒶": { + math: "\\mathscr{a}" + }, + "𝒷": { + math: "\\mathscr{b}" + }, + "𝒸": { + math: "\\mathscr{c}" + }, + "𝒹": { + math: "\\mathscr{d}" + }, + "𝒻": { + math: "\\mathscr{f}" + }, + "𝒽": { + math: "\\mathscr{h}" + }, + "𝒾": { + math: "\\mathscr{i}" + }, + "𝒿": { + math: "\\mathscr{j}" + }, + "𝓀": { + math: "\\mathscr{k}" + }, + "𝓁": { + math: "\\mathscr{l}" + }, + "𝓂": { + math: "\\mathscr{m}" + }, + "𝓃": { + math: "\\mathscr{n}" + }, + "𝓅": { + math: "\\mathscr{p}" + }, + "𝓆": { + math: "\\mathscr{q}" + }, + "𝓇": { + math: "\\mathscr{r}" + }, + "𝓈": { + math: "\\mathscr{s}" + }, + "𝓉": { + math: "\\mathscr{t}" + }, + "𝓊": { + math: "\\mathscr{u}" + }, + "𝓋": { + math: "\\mathscr{v}" + }, + "𝓌": { + math: "\\mathscr{w}" + }, + "𝓍": { + math: "\\mathscr{x}" + }, + "𝓎": { + math: "\\mathscr{y}" + }, + "𝓏": { + math: "\\mathscr{z}" + }, + "𝓐": { + math: "\\mathmit{A}" + }, + "𝓑": { + math: "\\mathmit{B}" + }, + "𝓒": { + math: "\\mathmit{C}" + }, + "𝓓": { + math: "\\mathmit{D}" + }, + "𝓔": { + math: "\\mathmit{E}" + }, + "𝓕": { + math: "\\mathmit{F}" + }, + "𝓖": { + math: "\\mathmit{G}" + }, + "𝓗": { + math: "\\mathmit{H}" + }, + "𝓘": { + math: "\\mathmit{I}" + }, + "𝓙": { + math: "\\mathmit{J}" + }, + "𝓚": { + math: "\\mathmit{K}" + }, + "𝓛": { + math: "\\mathmit{L}" + }, + "𝓜": { + math: "\\mathmit{M}" + }, + "𝓝": { + math: "\\mathmit{N}" + }, + "𝓞": { + math: "\\mathmit{O}" + }, + "𝓟": { + math: "\\mathmit{P}" + }, + "𝓠": { + math: "\\mathmit{Q}" + }, + "𝓡": { + math: "\\mathmit{R}" + }, + "𝓢": { + math: "\\mathmit{S}" + }, + "𝓣": { + math: "\\mathmit{T}" + }, + "𝓤": { + math: "\\mathmit{U}" + }, + "𝓥": { + math: "\\mathmit{V}" + }, + "𝓦": { + math: "\\mathmit{W}" + }, + "𝓧": { + math: "\\mathmit{X}" + }, + "𝓨": { + math: "\\mathmit{Y}" + }, + "𝓩": { + math: "\\mathmit{Z}" + }, + "𝓪": { + math: "\\mathmit{a}" + }, + "𝓫": { + math: "\\mathmit{b}" + }, + "𝓬": { + math: "\\mathmit{c}" + }, + "𝓭": { + math: "\\mathmit{d}" + }, + "𝓮": { + math: "\\mathmit{e}" + }, + "𝓯": { + math: "\\mathmit{f}" + }, + "𝓰": { + math: "\\mathmit{g}" + }, + "𝓱": { + math: "\\mathmit{h}" + }, + "𝓲": { + math: "\\mathmit{i}" + }, + "𝓳": { + math: "\\mathmit{j}" + }, + "𝓴": { + math: "\\mathmit{k}" + }, + "𝓵": { + math: "\\mathmit{l}" + }, + "𝓶": { + math: "\\mathmit{m}" + }, + "𝓷": { + math: "\\mathmit{n}" + }, + "𝓸": { + math: "\\mathmit{o}" + }, + "𝓹": { + math: "\\mathmit{p}" + }, + "𝓺": { + math: "\\mathmit{q}" + }, + "𝓻": { + math: "\\mathmit{r}" + }, + "𝓼": { + math: "\\mathmit{s}" + }, + "𝓽": { + math: "\\mathmit{t}" + }, + "𝓾": { + math: "\\mathmit{u}" + }, + "𝓿": { + math: "\\mathmit{v}" + }, + "𝔀": { + math: "\\mathmit{w}" + }, + "𝔁": { + math: "\\mathmit{x}" + }, + "𝔂": { + math: "\\mathmit{y}" + }, + "𝔃": { + math: "\\mathmit{z}" + }, + "𝔄": { + math: "\\mathfrak{A}" + }, + "𝔅": { + math: "\\mathfrak{B}" + }, + "𝔇": { + math: "\\mathfrak{D}" + }, + "𝔈": { + math: "\\mathfrak{E}" + }, + "𝔉": { + math: "\\mathfrak{F}" + }, + "𝔊": { + math: "\\mathfrak{G}" + }, + "𝔍": { + math: "\\mathfrak{J}" + }, + "𝔎": { + math: "\\mathfrak{K}" + }, + "𝔏": { + math: "\\mathfrak{L}" + }, + "𝔐": { + math: "\\mathfrak{M}" + }, + "𝔑": { + math: "\\mathfrak{N}" + }, + "𝔒": { + math: "\\mathfrak{O}" + }, + "𝔓": { + math: "\\mathfrak{P}" + }, + "𝔔": { + math: "\\mathfrak{Q}" + }, + "𝔖": { + math: "\\mathfrak{S}" + }, + "𝔗": { + math: "\\mathfrak{T}" + }, + "𝔘": { + math: "\\mathfrak{U}" + }, + "𝔙": { + math: "\\mathfrak{V}" + }, + "𝔚": { + math: "\\mathfrak{W}" + }, + "𝔛": { + math: "\\mathfrak{X}" + }, + "𝔜": { + math: "\\mathfrak{Y}" + }, + "𝔞": { + math: "\\mathfrak{a}" + }, + "𝔟": { + math: "\\mathfrak{b}" + }, + "𝔠": { + math: "\\mathfrak{c}" + }, + "𝔡": { + math: "\\mathfrak{d}" + }, + "𝔢": { + math: "\\mathfrak{e}" + }, + "𝔣": { + math: "\\mathfrak{f}" + }, + "𝔤": { + math: "\\mathfrak{g}" + }, + "𝔥": { + math: "\\mathfrak{h}" + }, + "𝔦": { + math: "\\mathfrak{i}" + }, + "𝔧": { + math: "\\mathfrak{j}" + }, + "𝔨": { + math: "\\mathfrak{k}" + }, + "𝔩": { + math: "\\mathfrak{l}" + }, + "𝔪": { + math: "\\mathfrak{m}" + }, + "𝔫": { + math: "\\mathfrak{n}" + }, + "𝔬": { + math: "\\mathfrak{o}" + }, + "𝔭": { + math: "\\mathfrak{p}" + }, + "𝔮": { + math: "\\mathfrak{q}" + }, + "𝔯": { + math: "\\mathfrak{r}" + }, + "𝔰": { + math: "\\mathfrak{s}" + }, + "𝔱": { + math: "\\mathfrak{t}" + }, + "𝔲": { + math: "\\mathfrak{u}" + }, + "𝔳": { + math: "\\mathfrak{v}" + }, + "𝔴": { + math: "\\mathfrak{w}" + }, + "𝔵": { + math: "\\mathfrak{x}" + }, + "𝔶": { + math: "\\mathfrak{y}" + }, + "𝔷": { + math: "\\mathfrak{z}" + }, + "𝔸": { + math: "\\mathbb{A}" + }, + "𝔹": { + math: "\\mathbb{B}" + }, + "𝔻": { + math: "\\mathbb{D}" + }, + "𝔼": { + math: "\\mathbb{E}" + }, + "𝔽": { + math: "\\mathbb{F}" + }, + "𝔾": { + math: "\\mathbb{G}" + }, + "𝕀": { + math: "\\mathbb{I}" + }, + "𝕁": { + math: "\\mathbb{J}" + }, + "𝕂": { + math: "\\mathbb{K}" + }, + "𝕃": { + math: "\\mathbb{L}" + }, + "𝕄": { + math: "\\mathbb{M}" + }, + "𝕆": { + math: "\\mathbb{O}" + }, + "𝕊": { + math: "\\mathbb{S}" + }, + "𝕋": { + math: "\\mathbb{T}" + }, + "𝕌": { + math: "\\mathbb{U}" + }, + "𝕍": { + math: "\\mathbb{V}" + }, + "𝕎": { + math: "\\mathbb{W}" + }, + "𝕏": { + math: "\\mathbb{X}" + }, + "𝕐": { + math: "\\mathbb{Y}" + }, + "𝕒": { + math: "\\mathbb{a}" + }, + "𝕓": { + math: "\\mathbb{b}" + }, + "𝕔": { + math: "\\mathbb{c}" + }, + "𝕕": { + math: "\\mathbb{d}" + }, + "𝕖": { + math: "\\mathbb{e}" + }, + "𝕗": { + math: "\\mathbb{f}" + }, + "𝕘": { + math: "\\mathbb{g}" + }, + "𝕙": { + math: "\\mathbb{h}" + }, + "𝕚": { + math: "\\mathbb{i}" + }, + "𝕛": { + math: "\\mathbb{j}" + }, + "𝕜": { + math: "\\mathbb{k}" + }, + "𝕝": { + math: "\\mathbb{l}" + }, + "𝕞": { + math: "\\mathbb{m}" + }, + "𝕟": { + math: "\\mathbb{n}" + }, + "𝕠": { + math: "\\mathbb{o}" + }, + "𝕡": { + math: "\\mathbb{p}" + }, + "𝕢": { + math: "\\mathbb{q}" + }, + "𝕣": { + math: "\\mathbb{r}" + }, + "𝕤": { + math: "\\mathbb{s}" + }, + "𝕥": { + math: "\\mathbb{t}" + }, + "𝕦": { + math: "\\mathbb{u}" + }, + "𝕧": { + math: "\\mathbb{v}" + }, + "𝕨": { + math: "\\mathbb{w}" + }, + "𝕩": { + math: "\\mathbb{x}" + }, + "𝕪": { + math: "\\mathbb{y}" + }, + "𝕫": { + math: "\\mathbb{z}" + }, + "𝕬": { + math: "\\mathslbb{A}" + }, + "𝕭": { + math: "\\mathslbb{B}" + }, + "𝕮": { + math: "\\mathslbb{C}" + }, + "𝕯": { + math: "\\mathslbb{D}" + }, + "𝕰": { + math: "\\mathslbb{E}" + }, + "𝕱": { + math: "\\mathslbb{F}" + }, + "𝕲": { + math: "\\mathslbb{G}" + }, + "𝕳": { + math: "\\mathslbb{H}" + }, + "𝕴": { + math: "\\mathslbb{I}" + }, + "𝕵": { + math: "\\mathslbb{J}" + }, + "𝕶": { + math: "\\mathslbb{K}" + }, + "𝕷": { + math: "\\mathslbb{L}" + }, + "𝕸": { + math: "\\mathslbb{M}" + }, + "𝕹": { + math: "\\mathslbb{N}" + }, + "𝕺": { + math: "\\mathslbb{O}" + }, + "𝕻": { + math: "\\mathslbb{P}" + }, + "𝕼": { + math: "\\mathslbb{Q}" + }, + "𝕽": { + math: "\\mathslbb{R}" + }, + "𝕾": { + math: "\\mathslbb{S}" + }, + "𝕿": { + math: "\\mathslbb{T}" + }, + "𝖀": { + math: "\\mathslbb{U}" + }, + "𝖁": { + math: "\\mathslbb{V}" + }, + "𝖂": { + math: "\\mathslbb{W}" + }, + "𝖃": { + math: "\\mathslbb{X}" + }, + "𝖄": { + math: "\\mathslbb{Y}" + }, + "𝖅": { + math: "\\mathslbb{Z}" + }, + "𝖆": { + math: "\\mathslbb{a}" + }, + "𝖇": { + math: "\\mathslbb{b}" + }, + "𝖈": { + math: "\\mathslbb{c}" + }, + "𝖉": { + math: "\\mathslbb{d}" + }, + "𝖊": { + math: "\\mathslbb{e}" + }, + "𝖋": { + math: "\\mathslbb{f}" + }, + "𝖌": { + math: "\\mathslbb{g}" + }, + "𝖍": { + math: "\\mathslbb{h}" + }, + "𝖎": { + math: "\\mathslbb{i}" + }, + "𝖏": { + math: "\\mathslbb{j}" + }, + "𝖐": { + math: "\\mathslbb{k}" + }, + "𝖑": { + math: "\\mathslbb{l}" + }, + "𝖒": { + math: "\\mathslbb{m}" + }, + "𝖓": { + math: "\\mathslbb{n}" + }, + "𝖔": { + math: "\\mathslbb{o}" + }, + "𝖕": { + math: "\\mathslbb{p}" + }, + "𝖖": { + math: "\\mathslbb{q}" + }, + "𝖗": { + math: "\\mathslbb{r}" + }, + "𝖘": { + math: "\\mathslbb{s}" + }, + "𝖙": { + math: "\\mathslbb{t}" + }, + "𝖚": { + math: "\\mathslbb{u}" + }, + "𝖛": { + math: "\\mathslbb{v}" + }, + "𝖜": { + math: "\\mathslbb{w}" + }, + "𝖝": { + math: "\\mathslbb{x}" + }, + "𝖞": { + math: "\\mathslbb{y}" + }, + "𝖟": { + math: "\\mathslbb{z}" + }, + "𝖠": { + math: "\\mathsf{A}" + }, + "𝖡": { + math: "\\mathsf{B}" + }, + "𝖢": { + math: "\\mathsf{C}" + }, + "𝖣": { + math: "\\mathsf{D}" + }, + "𝖤": { + math: "\\mathsf{E}" + }, + "𝖥": { + math: "\\mathsf{F}" + }, + "𝖦": { + math: "\\mathsf{G}" + }, + "𝖧": { + math: "\\mathsf{H}" + }, + "𝖨": { + math: "\\mathsf{I}" + }, + "𝖩": { + math: "\\mathsf{J}" + }, + "𝖪": { + math: "\\mathsf{K}" + }, + "𝖫": { + math: "\\mathsf{L}" + }, + "𝖬": { + math: "\\mathsf{M}" + }, + "𝖭": { + math: "\\mathsf{N}" + }, + "𝖮": { + math: "\\mathsf{O}" + }, + "𝖯": { + math: "\\mathsf{P}" + }, + "𝖰": { + math: "\\mathsf{Q}" + }, + "𝖱": { + math: "\\mathsf{R}" + }, + "𝖲": { + math: "\\mathsf{S}" + }, + "𝖳": { + math: "\\mathsf{T}" + }, + "𝖴": { + math: "\\mathsf{U}" + }, + "𝖵": { + math: "\\mathsf{V}" + }, + "𝖶": { + math: "\\mathsf{W}" + }, + "𝖷": { + math: "\\mathsf{X}" + }, + "𝖸": { + math: "\\mathsf{Y}" + }, + "𝖹": { + math: "\\mathsf{Z}" + }, + "𝖺": { + math: "\\mathsf{a}" + }, + "𝖻": { + math: "\\mathsf{b}" + }, + "𝖼": { + math: "\\mathsf{c}" + }, + "𝖽": { + math: "\\mathsf{d}" + }, + "𝖾": { + math: "\\mathsf{e}" + }, + "𝖿": { + math: "\\mathsf{f}" + }, + "𝗀": { + math: "\\mathsf{g}" + }, + "𝗁": { + math: "\\mathsf{h}" + }, + "𝗂": { + math: "\\mathsf{i}" + }, + "𝗃": { + math: "\\mathsf{j}" + }, + "𝗄": { + math: "\\mathsf{k}" + }, + "𝗅": { + math: "\\mathsf{l}" + }, + "𝗆": { + math: "\\mathsf{m}" + }, + "𝗇": { + math: "\\mathsf{n}" + }, + "𝗈": { + math: "\\mathsf{o}" + }, + "𝗉": { + math: "\\mathsf{p}" + }, + "𝗊": { + math: "\\mathsf{q}" + }, + "𝗋": { + math: "\\mathsf{r}" + }, + "𝗌": { + math: "\\mathsf{s}" + }, + "𝗍": { + math: "\\mathsf{t}" + }, + "𝗎": { + math: "\\mathsf{u}" + }, + "𝗏": { + math: "\\mathsf{v}" + }, + "𝗐": { + math: "\\mathsf{w}" + }, + "𝗑": { + math: "\\mathsf{x}" + }, + "𝗒": { + math: "\\mathsf{y}" + }, + "𝗓": { + math: "\\mathsf{z}" + }, + "𝗔": { + math: "\\mathsfbf{A}" + }, + "𝗕": { + math: "\\mathsfbf{B}" + }, + "𝗖": { + math: "\\mathsfbf{C}" + }, + "𝗗": { + math: "\\mathsfbf{D}" + }, + "𝗘": { + math: "\\mathsfbf{E}" + }, + "𝗙": { + math: "\\mathsfbf{F}" + }, + "𝗚": { + math: "\\mathsfbf{G}" + }, + "𝗛": { + math: "\\mathsfbf{H}" + }, + "𝗜": { + math: "\\mathsfbf{I}" + }, + "𝗝": { + math: "\\mathsfbf{J}" + }, + "𝗞": { + math: "\\mathsfbf{K}" + }, + "𝗟": { + math: "\\mathsfbf{L}" + }, + "𝗠": { + math: "\\mathsfbf{M}" + }, + "𝗡": { + math: "\\mathsfbf{N}" + }, + "𝗢": { + math: "\\mathsfbf{O}" + }, + "𝗣": { + math: "\\mathsfbf{P}" + }, + "𝗤": { + math: "\\mathsfbf{Q}" + }, + "𝗥": { + math: "\\mathsfbf{R}" + }, + "𝗦": { + math: "\\mathsfbf{S}" + }, + "𝗧": { + math: "\\mathsfbf{T}" + }, + "𝗨": { + math: "\\mathsfbf{U}" + }, + "𝗩": { + math: "\\mathsfbf{V}" + }, + "𝗪": { + math: "\\mathsfbf{W}" + }, + "𝗫": { + math: "\\mathsfbf{X}" + }, + "𝗬": { + math: "\\mathsfbf{Y}" + }, + "𝗭": { + math: "\\mathsfbf{Z}" + }, + "𝗮": { + math: "\\mathsfbf{a}" + }, + "𝗯": { + math: "\\mathsfbf{b}" + }, + "𝗰": { + math: "\\mathsfbf{c}" + }, + "𝗱": { + math: "\\mathsfbf{d}" + }, + "𝗲": { + math: "\\mathsfbf{e}" + }, + "𝗳": { + math: "\\mathsfbf{f}" + }, + "𝗴": { + math: "\\mathsfbf{g}" + }, + "𝗵": { + math: "\\mathsfbf{h}" + }, + "𝗶": { + math: "\\mathsfbf{i}" + }, + "𝗷": { + math: "\\mathsfbf{j}" + }, + "𝗸": { + math: "\\mathsfbf{k}" + }, + "𝗹": { + math: "\\mathsfbf{l}" + }, + "𝗺": { + math: "\\mathsfbf{m}" + }, + "𝗻": { + math: "\\mathsfbf{n}" + }, + "𝗼": { + math: "\\mathsfbf{o}" + }, + "𝗽": { + math: "\\mathsfbf{p}" + }, + "𝗾": { + math: "\\mathsfbf{q}" + }, + "𝗿": { + math: "\\mathsfbf{r}" + }, + "𝘀": { + math: "\\mathsfbf{s}" + }, + "𝘁": { + math: "\\mathsfbf{t}" + }, + "𝘂": { + math: "\\mathsfbf{u}" + }, + "𝘃": { + math: "\\mathsfbf{v}" + }, + "𝘄": { + math: "\\mathsfbf{w}" + }, + "𝘅": { + math: "\\mathsfbf{x}" + }, + "𝘆": { + math: "\\mathsfbf{y}" + }, + "𝘇": { + math: "\\mathsfbf{z}" + }, + "𝘈": { + math: "\\mathsfsl{A}" + }, + "𝘉": { + math: "\\mathsfsl{B}" + }, + "𝘊": { + math: "\\mathsfsl{C}" + }, + "𝘋": { + math: "\\mathsfsl{D}" + }, + "𝘌": { + math: "\\mathsfsl{E}" + }, + "𝘍": { + math: "\\mathsfsl{F}" + }, + "𝘎": { + math: "\\mathsfsl{G}" + }, + "𝘏": { + math: "\\mathsfsl{H}" + }, + "𝘐": { + math: "\\mathsfsl{I}" + }, + "𝘑": { + math: "\\mathsfsl{J}" + }, + "𝘒": { + math: "\\mathsfsl{K}" + }, + "𝘓": { + math: "\\mathsfsl{L}" + }, + "𝘔": { + math: "\\mathsfsl{M}" + }, + "𝘕": { + math: "\\mathsfsl{N}" + }, + "𝘖": { + math: "\\mathsfsl{O}" + }, + "𝘗": { + math: "\\mathsfsl{P}" + }, + "𝘘": { + math: "\\mathsfsl{Q}" + }, + "𝘙": { + math: "\\mathsfsl{R}" + }, + "𝘚": { + math: "\\mathsfsl{S}" + }, + "𝘛": { + math: "\\mathsfsl{T}" + }, + "𝘜": { + math: "\\mathsfsl{U}" + }, + "𝘝": { + math: "\\mathsfsl{V}" + }, + "𝘞": { + math: "\\mathsfsl{W}" + }, + "𝘟": { + math: "\\mathsfsl{X}" + }, + "𝘠": { + math: "\\mathsfsl{Y}" + }, + "𝘡": { + math: "\\mathsfsl{Z}" + }, + "𝘢": { + math: "\\mathsfsl{a}" + }, + "𝘣": { + math: "\\mathsfsl{b}" + }, + "𝘤": { + math: "\\mathsfsl{c}" + }, + "𝘥": { + math: "\\mathsfsl{d}" + }, + "𝘦": { + math: "\\mathsfsl{e}" + }, + "𝘧": { + math: "\\mathsfsl{f}" + }, + "𝘨": { + math: "\\mathsfsl{g}" + }, + "𝘩": { + math: "\\mathsfsl{h}" + }, + "𝘪": { + math: "\\mathsfsl{i}" + }, + "𝘫": { + math: "\\mathsfsl{j}" + }, + "𝘬": { + math: "\\mathsfsl{k}" + }, + "𝘭": { + math: "\\mathsfsl{l}" + }, + "𝘮": { + math: "\\mathsfsl{m}" + }, + "𝘯": { + math: "\\mathsfsl{n}" + }, + "𝘰": { + math: "\\mathsfsl{o}" + }, + "𝘱": { + math: "\\mathsfsl{p}" + }, + "𝘲": { + math: "\\mathsfsl{q}" + }, + "𝘳": { + math: "\\mathsfsl{r}" + }, + "𝘴": { + math: "\\mathsfsl{s}" + }, + "𝘵": { + math: "\\mathsfsl{t}" + }, + "𝘶": { + math: "\\mathsfsl{u}" + }, + "𝘷": { + math: "\\mathsfsl{v}" + }, + "𝘸": { + math: "\\mathsfsl{w}" + }, + "𝘹": { + math: "\\mathsfsl{x}" + }, + "𝘺": { + math: "\\mathsfsl{y}" + }, + "𝘻": { + math: "\\mathsfsl{z}" + }, + "𝘼": { + math: "\\mathsfbfsl{A}" + }, + "𝘽": { + math: "\\mathsfbfsl{B}" + }, + "𝘾": { + math: "\\mathsfbfsl{C}" + }, + "𝘿": { + math: "\\mathsfbfsl{D}" + }, + "𝙀": { + math: "\\mathsfbfsl{E}" + }, + "𝙁": { + math: "\\mathsfbfsl{F}" + }, + "𝙂": { + math: "\\mathsfbfsl{G}" + }, + "𝙃": { + math: "\\mathsfbfsl{H}" + }, + "𝙄": { + math: "\\mathsfbfsl{I}" + }, + "𝙅": { + math: "\\mathsfbfsl{J}" + }, + "𝙆": { + math: "\\mathsfbfsl{K}" + }, + "𝙇": { + math: "\\mathsfbfsl{L}" + }, + "𝙈": { + math: "\\mathsfbfsl{M}" + }, + "𝙉": { + math: "\\mathsfbfsl{N}" + }, + "𝙊": { + math: "\\mathsfbfsl{O}" + }, + "𝙋": { + math: "\\mathsfbfsl{P}" + }, + "𝙌": { + math: "\\mathsfbfsl{Q}" + }, + "𝙍": { + math: "\\mathsfbfsl{R}" + }, + "𝙎": { + math: "\\mathsfbfsl{S}" + }, + "𝙏": { + math: "\\mathsfbfsl{T}" + }, + "𝙐": { + math: "\\mathsfbfsl{U}" + }, + "𝙑": { + math: "\\mathsfbfsl{V}" + }, + "𝙒": { + math: "\\mathsfbfsl{W}" + }, + "𝙓": { + math: "\\mathsfbfsl{X}" + }, + "𝙔": { + math: "\\mathsfbfsl{Y}" + }, + "𝙕": { + math: "\\mathsfbfsl{Z}" + }, + "𝙖": { + math: "\\mathsfbfsl{a}" + }, + "𝙗": { + math: "\\mathsfbfsl{b}" + }, + "𝙘": { + math: "\\mathsfbfsl{c}" + }, + "𝙙": { + math: "\\mathsfbfsl{d}" + }, + "𝙚": { + math: "\\mathsfbfsl{e}" + }, + "𝙛": { + math: "\\mathsfbfsl{f}" + }, + "𝙜": { + math: "\\mathsfbfsl{g}" + }, + "𝙝": { + math: "\\mathsfbfsl{h}" + }, + "𝙞": { + math: "\\mathsfbfsl{i}" + }, + "𝙟": { + math: "\\mathsfbfsl{j}" + }, + "𝙠": { + math: "\\mathsfbfsl{k}" + }, + "𝙡": { + math: "\\mathsfbfsl{l}" + }, + "𝙢": { + math: "\\mathsfbfsl{m}" + }, + "𝙣": { + math: "\\mathsfbfsl{n}" + }, + "𝙤": { + math: "\\mathsfbfsl{o}" + }, + "𝙥": { + math: "\\mathsfbfsl{p}" + }, + "𝙦": { + math: "\\mathsfbfsl{q}" + }, + "𝙧": { + math: "\\mathsfbfsl{r}" + }, + "𝙨": { + math: "\\mathsfbfsl{s}" + }, + "𝙩": { + math: "\\mathsfbfsl{t}" + }, + "𝙪": { + math: "\\mathsfbfsl{u}" + }, + "𝙫": { + math: "\\mathsfbfsl{v}" + }, + "𝙬": { + math: "\\mathsfbfsl{w}" + }, + "𝙭": { + math: "\\mathsfbfsl{x}" + }, + "𝙮": { + math: "\\mathsfbfsl{y}" + }, + "𝙯": { + math: "\\mathsfbfsl{z}" + }, + "𝙰": { + math: "\\mathtt{A}" + }, + "𝙱": { + math: "\\mathtt{B}" + }, + "𝙲": { + math: "\\mathtt{C}" + }, + "𝙳": { + math: "\\mathtt{D}" + }, + "𝙴": { + math: "\\mathtt{E}" + }, + "𝙵": { + math: "\\mathtt{F}" + }, + "𝙶": { + math: "\\mathtt{G}" + }, + "𝙷": { + math: "\\mathtt{H}" + }, + "𝙸": { + math: "\\mathtt{I}" + }, + "𝙹": { + math: "\\mathtt{J}" + }, + "𝙺": { + math: "\\mathtt{K}" + }, + "𝙻": { + math: "\\mathtt{L}" + }, + "𝙼": { + math: "\\mathtt{M}" + }, + "𝙽": { + math: "\\mathtt{N}" + }, + "𝙾": { + math: "\\mathtt{O}" + }, + "𝙿": { + math: "\\mathtt{P}" + }, + "𝚀": { + math: "\\mathtt{Q}" + }, + "𝚁": { + math: "\\mathtt{R}" + }, + "𝚂": { + math: "\\mathtt{S}" + }, + "𝚃": { + math: "\\mathtt{T}" + }, + "𝚄": { + math: "\\mathtt{U}" + }, + "𝚅": { + math: "\\mathtt{V}" + }, + "𝚆": { + math: "\\mathtt{W}" + }, + "𝚇": { + math: "\\mathtt{X}" + }, + "𝚈": { + math: "\\mathtt{Y}" + }, + "𝚉": { + math: "\\mathtt{Z}" + }, + "𝚊": { + math: "\\mathtt{a}" + }, + "𝚋": { + math: "\\mathtt{b}" + }, + "𝚌": { + math: "\\mathtt{c}" + }, + "𝚍": { + math: "\\mathtt{d}" + }, + "𝚎": { + math: "\\mathtt{e}" + }, + "𝚏": { + math: "\\mathtt{f}" + }, + "𝚐": { + math: "\\mathtt{g}" + }, + "𝚑": { + math: "\\mathtt{h}" + }, + "𝚒": { + math: "\\mathtt{i}" + }, + "𝚓": { + math: "\\mathtt{j}" + }, + "𝚔": { + math: "\\mathtt{k}" + }, + "𝚕": { + math: "\\mathtt{l}" + }, + "𝚖": { + math: "\\mathtt{m}" + }, + "𝚗": { + math: "\\mathtt{n}" + }, + "𝚘": { + math: "\\mathtt{o}" + }, + "𝚙": { + math: "\\mathtt{p}" + }, + "𝚚": { + math: "\\mathtt{q}" + }, + "𝚛": { + math: "\\mathtt{r}" + }, + "𝚜": { + math: "\\mathtt{s}" + }, + "𝚝": { + math: "\\mathtt{t}" + }, + "𝚞": { + math: "\\mathtt{u}" + }, + "𝚟": { + math: "\\mathtt{v}" + }, + "𝚠": { + math: "\\mathtt{w}" + }, + "𝚡": { + math: "\\mathtt{x}" + }, + "𝚢": { + math: "\\mathtt{y}" + }, + "𝚣": { + math: "\\mathtt{z}" + }, + "𝚤": { + math: "\\imath" + }, + "𝚥": { + math: "\\jmath" + }, + "𝚨": { + math: "\\mathbf{A}" + }, + "𝚩": { + math: "\\mathbf{B}" + }, + "𝚪": { + math: "\\mathbf{\\Gamma}" + }, + "𝚫": { + math: "\\mathbf{\\Delta}" + }, + "𝚬": { + math: "\\mathbf{E}" + }, + "𝚭": { + math: "\\mathbf{Z}" + }, + "𝚮": { + math: "\\mathbf{H}" + }, + "𝚯": { + math: "\\mathbf{\\Theta}" + }, + "𝚰": { + math: "\\mathbf{I}" + }, + "𝚱": { + math: "\\mathbf{K}" + }, + "𝚲": { + math: "\\mathbf{\\Lambda}" + }, + "𝚳": { + math: "M" + }, + "𝚴": { + math: "N" + }, + "𝚵": { + math: "\\mathbf{\\Xi}" + }, + "𝚶": { + math: "O" + }, + "𝚷": { + math: "\\mathbf{\\Pi}" + }, + "𝚸": { + math: "\\mathbf{P}" + }, + "𝚹": { + math: "\\mathbf{\\vartheta}" + }, + "𝚺": { + math: "\\mathbf{\\Sigma}" + }, + "𝚻": { + math: "\\mathbf{T}" + }, + "𝚼": { + math: "\\mathbf{\\Upsilon}" + }, + "𝚽": { + math: "\\mathbf{\\Phi}" + }, + "𝚾": { + math: "\\mathbf{X}" + }, + "𝚿": { + math: "\\mathbf{\\Psi}" + }, + "𝛀": { + math: "\\mathbf{\\Omega}" + }, + "𝛁": { + math: "\\mathbf{\\nabla}" + }, + "𝛂": { + math: "\\mathbf{\\alpha}" + }, + "𝛃": { + math: "\\mathbf{\\beta}" + }, + "𝛄": { + math: "\\mathbf{\\gamma}" + }, + "𝛅": { + math: "\\mathbf{\\delta}" + }, + "𝛆": { + math: "\\mathbf{\\epsilon}" + }, + "𝛇": { + math: "\\mathbf{\\zeta}" + }, + "𝛈": { + math: "\\mathbf{\\eta}" + }, + "𝛉": { + math: "\\mathbf{\\theta}" + }, + "𝛊": { + math: "\\mathbf{I}" + }, + "𝛋": { + math: "\\mathbf{K}" + }, + "𝛌": { + math: "\\mathbf{\\lambda}" + }, + "𝛍": { + math: "M" + }, + "𝛎": { + math: "N" + }, + "𝛏": { + math: "\\mathbf{\\xi}" + }, + "𝛐": { + math: "O" + }, + "𝛑": { + math: "\\mathbf{\\pi}" + }, + "𝛒": { + math: "\\mathbf{P}" + }, + "𝛓": { + math: "\\mathbf{\\varsigma}" + }, + "𝛔": { + math: "\\mathbf{\\sigma}" + }, + "𝛕": { + math: "\\mathbf{T}" + }, + "𝛖": { + math: "\\mathbf{\\upsilon}" + }, + "𝛗": { + math: "\\mathbf{\\phi}" + }, + "𝛘": { + math: "\\mathbf{X}" + }, + "𝛙": { + math: "\\mathbf{\\psi}" + }, + "𝛚": { + math: "\\mathbf{\\omega}" + }, + "𝛛": { + math: "\\partial" + }, + "𝛜": { + math: "\\in" + }, + "𝛝": { + math: "\\mathbf{\\vartheta}" + }, + "𝛞": { + math: "\\mathbf{\\varkappa}" + }, + "𝛟": { + math: "\\mathbf{\\phi}" + }, + "𝛠": { + math: "\\mathbf{\\varrho}" + }, + "𝛡": { + math: "\\mathbf{\\varpi}" + }, + "𝛢": { + math: "\\mathsl{A}" + }, + "𝛣": { + math: "\\mathsl{B}" + }, + "𝛤": { + math: "\\mathsl{\\Gamma}" + }, + "𝛥": { + math: "\\mathsl{\\Delta}" + }, + "𝛦": { + math: "\\mathsl{E}" + }, + "𝛧": { + math: "\\mathsl{Z}" + }, + "𝛨": { + math: "\\mathsl{H}" + }, + "𝛩": { + math: "\\mathsl{\\Theta}" + }, + "𝛪": { + math: "\\mathsl{I}" + }, + "𝛫": { + math: "\\mathsl{K}" + }, + "𝛬": { + math: "\\mathsl{\\Lambda}" + }, + "𝛭": { + math: "M" + }, + "𝛮": { + math: "N" + }, + "𝛯": { + math: "\\mathsl{\\Xi}" + }, + "𝛰": { + math: "O" + }, + "𝛱": { + math: "\\mathsl{\\Pi}" + }, + "𝛲": { + math: "\\mathsl{P}" + }, + "𝛳": { + math: "\\mathsl{\\Theta}" + }, + "𝛴": { + math: "\\mathsl{\\Sigma}" + }, + "𝛵": { + math: "\\mathsl{T}" + }, + "𝛶": { + math: "\\mathsl{\\Upsilon}" + }, + "𝛷": { + math: "\\mathsl{\\Phi}" + }, + "𝛸": { + math: "\\mathsl{X}" + }, + "𝛹": { + math: "\\mathsl{\\Psi}" + }, + "𝛺": { + math: "\\mathsl{\\Omega}" + }, + "𝛻": { + math: "\\mathsl{\\nabla}" + }, + "𝛼": { + math: "\\mathsl{A}" + }, + "𝛽": { + math: "\\mathsl{B}" + }, + "𝛾": { + math: "\\mathsl{\\gamma}" + }, + "𝛿": { + math: "\\mathsl{\\delta}" + }, + "𝜀": { + math: "\\mathsl{E}" + }, + "𝜁": { + math: "\\mathsl{Z}" + }, + "𝜂": { + math: "\\mathsl{H}" + }, + "𝜃": { + math: "\\mathsl{\\theta}" + }, + "𝜄": { + math: "\\mathsl{I}" + }, + "𝜅": { + math: "\\mathsl{K}" + }, + "𝜆": { + math: "\\mathsl{\\lambda}" + }, + "𝜇": { + math: "\\mu" + }, + "𝜈": { + math: "\\nu" + }, + "𝜉": { + math: "\\mathsl{\\xi}" + }, + "𝜊": { + math: "o" + }, + "𝜋": { + math: "\\mathsl{\\pi}" + }, + "𝜌": { + math: "\\mathsl{P}" + }, + "𝜍": { + math: "\\mathsl{\\varsigma}" + }, + "𝜎": { + math: "\\mathsl{\\sigma}" + }, + "𝜏": { + math: "\\mathsl{T}" + }, + "𝜐": { + math: "\\mathsl{\\upsilon}" + }, + "𝜑": { + math: "\\mathsl{\\varphi}" + }, + "𝜒": { + math: "\\mathsl{X}" + }, + "𝜓": { + math: "\\mathsl{\\psi}" + }, + "𝜔": { + math: "\\mathsl{\\omega}" + }, + "𝜕": { + math: "\\partial" + }, + "𝜖": { + math: "\\in" + }, + "𝜗": { + math: "\\mathsl{\\vartheta}" + }, + "𝜘": { + math: "\\mathsl{\\varkappa}" + }, + "𝜙": { + math: "\\mathsl{\\phi}" + }, + "𝜚": { + math: "\\mathsl{\\varrho}" + }, + "𝜛": { + math: "\\mathsl{\\varpi}" + }, + "𝜜": { + math: "\\mathbit{A}" + }, + "𝜝": { + math: "\\mathbit{B}" + }, + "𝜞": { + math: "\\mathbit{\\Gamma}" + }, + "𝜟": { + math: "\\mathbit{\\Delta}" + }, + "𝜠": { + math: "\\mathbit{E}" + }, + "𝜡": { + math: "\\mathbit{Z}" + }, + "𝜢": { + math: "\\mathbit{H}" + }, + "𝜣": { + math: "\\mathbit{\\Theta}" + }, + "𝜤": { + math: "\\mathbit{I}" + }, + "𝜥": { + math: "\\mathbit{K}" + }, + "𝜦": { + math: "\\mathbit{\\Lambda}" + }, + "𝜧": { + math: "M" + }, + "𝜨": { + math: "N" + }, + "𝜩": { + math: "\\mathbit{\\Xi}" + }, + "𝜪": { + math: "O" + }, + "𝜫": { + math: "\\mathbit{\\Pi}" + }, + "𝜬": { + math: "\\mathbit{P}" + }, + "𝜭": { + math: "\\mathbit{O}" + }, + "𝜮": { + math: "\\mathbit{\\Sigma}" + }, + "𝜯": { + math: "\\mathbit{T}" + }, + "𝜰": { + math: "\\mathbit{\\Upsilon}" + }, + "𝜱": { + math: "\\mathbit{\\Phi}" + }, + "𝜲": { + math: "\\mathbit{X}" + }, + "𝜳": { + math: "\\mathbit{\\Psi}" + }, + "𝜴": { + math: "\\mathbit{\\Omega}" + }, + "𝜵": { + math: "\\mathbit{\\nabla}" + }, + "𝜶": { + math: "\\mathbit{\\alpha}" + }, + "𝜷": { + math: "\\mathbit{\\beta}" + }, + "𝜸": { + math: "\\mathbit{\\gamma}" + }, + "𝜹": { + math: "\\mathbit{\\delta}" + }, + "𝜺": { + math: "\\mathbit{\\epsilon}" + }, + "𝜻": { + math: "\\mathbit{\\zeta}" + }, + "𝜼": { + math: "\\mathbit{\\eta}" + }, + "𝜽": { + math: "\\mathbit{\\theta}" + }, + "𝜾": { + math: "\\mathbit{\\imath}" + }, + "𝜿": { + math: "\\mathbit{\\kappa}" + }, + "𝝀": { + math: "\\mathbit{\\lambda}" + }, + "𝝁": { + math: "\\mu" + }, + "𝝂": { + math: "N" + }, + "𝝃": { + math: "\\mathbit{\\xi}" + }, + "𝝄": { + math: "O" + }, + "𝝅": { + math: "\\mathbit{\\pi}" + }, + "𝝆": { + math: "\\mathbit{\\rho}" + }, + "𝝇": { + math: "\\mathbit{\\varsigma}" + }, + "𝝈": { + math: "\\mathbit{\\sigma}" + }, + "𝝉": { + math: "\\mathbit{\\tau}" + }, + "𝝊": { + math: "\\mathbit{\\upsilon}" + }, + "𝝋": { + math: "\\mathbit{\\varphi}" + }, + "𝝌": { + math: "\\mathbit{\\chi}" + }, + "𝝍": { + math: "\\mathbit{\\psi}" + }, + "𝝎": { + math: "\\mathbit{\\omega}" + }, + "𝝏": { + math: "\\partial" + }, + "𝝐": { + math: "\\in" + }, + "𝝑": { + math: "\\mathbit{\\vartheta}" + }, + "𝝒": { + math: "\\mathbit{\\varkappa}" + }, + "𝝓": { + math: "\\mathbit{\\phi}" + }, + "𝝔": { + math: "\\mathbit{\\varrho}" + }, + "𝝕": { + math: "\\mathbit{\\varpi}" + }, + "𝝖": { + math: "\\mathsfbf{A}" + }, + "𝝗": { + math: "\\mathsfbf{B}" + }, + "𝝘": { + math: "\\mathsfbf{\\Gamma}" + }, + "𝝙": { + math: "\\mathsfbf{\\Delta}" + }, + "𝝚": { + math: "\\mathsfbf{E}" + }, + "𝝛": { + math: "\\mathsfbf{Z}" + }, + "𝝜": { + math: "\\mathsfbf{H}" + }, + "𝝝": { + math: "\\mathsfbf{\\Theta}" + }, + "𝝞": { + math: "\\mathsfbf{I}" + }, + "𝝟": { + math: "\\mathsfbf{K}" + }, + "𝝠": { + math: "\\mathsfbf{\\Lambda}" + }, + "𝝡": { + math: "M" + }, + "𝝢": { + math: "N" + }, + "𝝣": { + math: "\\mathsfbf{\\Xi}" + }, + "𝝤": { + math: "O" + }, + "𝝥": { + math: "\\mathsfbf{\\Pi}" + }, + "𝝦": { + math: "\\mathsfbf{P}" + }, + "𝝧": { + math: "\\mathsfbf{\\Theta}" + }, + "𝝨": { + math: "\\mathsfbf{\\Sigma}" + }, + "𝝩": { + math: "\\mathsfbf{T}" + }, + "𝝪": { + math: "\\mathsfbf{\\Upsilon}" + }, + "𝝫": { + math: "\\mathsfbf{\\Phi}" + }, + "𝝬": { + math: "\\mathsfbf{X}" + }, + "𝝭": { + math: "\\mathsfbf{\\Psi}" + }, + "𝝮": { + math: "\\mathsfbf{\\Omega}" + }, + "𝝯": { + math: "\\mathsfbf{\\nabla}" + }, + "𝝰": { + math: "\\mathsfbf{\\alpha}" + }, + "𝝱": { + math: "\\mathsfbf{\\beta}" + }, + "𝝲": { + math: "\\mathsfbf{\\gamma}" + }, + "𝝳": { + math: "\\mathsfbf{\\delta}" + }, + "𝝴": { + math: "\\mathsfbf{\\varepsilon}" + }, + "𝝵": { + math: "\\mathsfbf{\\zeta}" + }, + "𝝶": { + math: "\\mathsfbf{\\eta}" + }, + "𝝷": { + math: "\\mathsfbf{\\theta}" + }, + "𝝸": { + math: "\\mathsfbf{\\imath}" + }, + "𝝹": { + math: "\\mathsfbf{\\kappa}" + }, + "𝝺": { + math: "\\mathsfbf{\\lambda}" + }, + "𝝻": { + math: "\\mu" + }, + "𝝼": { + math: "\\nu" + }, + "𝝽": { + math: "\\mathsfbf{\\xi}" + }, + "𝝾": { + math: "o" + }, + "𝝿": { + math: "\\mathsfbf{\\pi}" + }, + "𝞀": { + math: "\\mathsfbf{\\rho}" + }, + "𝞁": { + math: "\\mathsfbf{\\varsigma}" + }, + "𝞂": { + math: "\\mathsfbf{\\sigma}" + }, + "𝞃": { + math: "\\mathsfbf{\\tau}" + }, + "𝞄": { + math: "\\mathsfbf{\\upsilon}" + }, + "𝞅": { + math: "\\mathsfbf{\\varphi}" + }, + "𝞆": { + math: "\\mathsfbf{\\chi}" + }, + "𝞇": { + math: "\\mathsfbf{\\psi}" + }, + "𝞈": { + math: "\\mathsfbf{\\omega}" + }, + "𝞉": { + math: "\\partial" + }, + "𝞊": { + math: "\\in" + }, + "𝞋": { + math: "\\mathsfbf{\\vartheta}" + }, + "𝞌": { + math: "\\mathsfbf{\\varkappa}" + }, + "𝞍": { + math: "\\mathsfbf{\\phi}" + }, + "𝞎": { + math: "\\mathsfbf{\\varrho}" + }, + "𝞏": { + math: "\\mathsfbf{\\varpi}" + }, + "𝞐": { + math: "\\mathsfbfsl{A}" + }, + "𝞑": { + math: "\\mathsfbfsl{B}" + }, + "𝞒": { + math: "\\mathsfbfsl{\\Gamma}" + }, + "𝞓": { + math: "\\mathsfbfsl{\\Delta}" + }, + "𝞔": { + math: "\\mathsfbfsl{E}" + }, + "𝞕": { + math: "\\mathsfbfsl{Z}" + }, + "𝞖": { + math: "\\mathsfbfsl{H}" + }, + "𝞗": { + math: "\\mathsfbfsl{\\Theta}" + }, + "𝞘": { + math: "\\mathsfbfsl{I}" + }, + "𝞙": { + math: "\\mathsfbfsl{K}" + }, + "𝞚": { + math: "\\mathsfbfsl{\\Lambda}" + }, + "𝞛": { + math: "\\mathsfbfsl{M}" + }, + "𝞜": { + math: "\\mathsfbfsl{N}" + }, + "𝞝": { + math: "\\mathsfbfsl{\\Xi}" + }, + "𝞞": { + math: "\\mathsfbfsl{O}" + }, + "𝞟": { + math: "\\mathsfbfsl{\\Pi}" + }, + "𝞠": { + math: "\\mathsfbfsl{P}" + }, + "𝞡": { + math: "\\mathsfbfsl{\\Theta}" + }, + "𝞢": { + math: "\\mathsfbfsl{\\Sigma}" + }, + "𝞣": { + math: "\\mathsfbfsl{T}" + }, + "𝞤": { + math: "\\mathsfbfsl{\\Upsilon}" + }, + "𝞥": { + math: "\\mathsfbfsl{\\Phi}" + }, + "𝞦": { + math: "\\mathsfbfsl{X}" + }, + "𝞧": { + math: "\\mathsfbfsl{\\Psi}" + }, + "𝞨": { + math: "\\mathsfbfsl{\\Omega}" + }, + "𝞩": { + math: "\\mathsfbfsl{\\nabla}" + }, + "𝞪": { + math: "\\mathsfbfsl{\\alpha}" + }, + "𝞫": { + math: "\\mathsfbfsl{\\beta}" + }, + "𝞬": { + math: "\\mathsfbfsl{\\gamma}" + }, + "𝞭": { + math: "\\mathsfbfsl{\\delta}" + }, + "𝞮": { + math: "\\mathsfbfsl{\\varepsilon}" + }, + "𝞯": { + math: "\\mathsfbfsl{\\zeta}" + }, + "𝞰": { + math: "\\mathsfbfsl{\\eta}" + }, + "𝞱": { + math: "\\mathsfbfsl{\\theta}" + }, + "𝞲": { + math: "\\mathsfbfsl{\\imath}" + }, + "𝞳": { + math: "\\mathsfbfsl{\\kappa}" + }, + "𝞴": { + math: "\\mathsfbfsl{\\lambda}" + }, + "𝞵": { + math: "\\mu" + }, + "𝞶": { + math: "\\nu" + }, + "𝞷": { + math: "\\mathsfbfsl{\\xi}" + }, + "𝞸": { + math: "o" + }, + "𝞹": { + math: "\\mathsfbfsl{\\pi}" + }, + "𝞺": { + math: "\\mathsfbfsl{\\rho}" + }, + "𝞻": { + math: "\\mathsfbfsl{\\varsigma}" + }, + "𝞼": { + math: "\\mathsfbfsl{\\sigma}" + }, + "𝞽": { + math: "\\mathsfbfsl{\\tau}" + }, + "𝞾": { + math: "\\mathsfbfsl{\\upsilon}" + }, + "𝞿": { + math: "\\mathsfbfsl{\\varphi}" + }, + "𝟀": { + math: "\\mathsfbfsl{\\chi}" + }, + "𝟁": { + math: "\\mathsfbfsl{\\psi}" + }, + "𝟂": { + math: "\\mathsfbfsl{\\omega}" + }, + "𝟃": { + math: "\\partial" + }, + "𝟄": { + math: "\\in" + }, + "𝟅": { + math: "\\mathsfbfsl{\\vartheta}" + }, + "𝟆": { + math: "\\mathsfbfsl{\\varkappa}" + }, + "𝟇": { + math: "\\mathsfbfsl{\\phi}" + }, + "𝟈": { + math: "\\mathsfbfsl{\\varrho}" + }, + "𝟉": { + math: "\\mathsfbfsl{\\varpi}" + }, + "𝟊": { + math: "\\mbfDigamma" + }, + "𝟋": { + math: "\\mbfdigamma" + }, + "𝟎": { + math: "\\mathbf{0}" + }, + "𝟏": { + math: "\\mathbf{1}" + }, + "𝟐": { + math: "\\mathbf{2}" + }, + "𝟑": { + math: "\\mathbf{3}" + }, + "𝟒": { + math: "\\mathbf{4}" + }, + "𝟓": { + math: "\\mathbf{5}" + }, + "𝟔": { + math: "\\mathbf{6}" + }, + "𝟕": { + math: "\\mathbf{7}" + }, + "𝟖": { + math: "\\mathbf{8}" + }, + "𝟗": { + math: "\\mathbf{9}" + }, + "𝟘": { + math: "\\mathbb{0}" + }, + "𝟙": { + math: "\\mathbb{1}" + }, + "𝟚": { + math: "\\mathbb{2}" + }, + "𝟛": { + math: "\\mathbb{3}" + }, + "𝟜": { + math: "\\mathbb{4}" + }, + "𝟝": { + math: "\\mathbb{5}" + }, + "𝟞": { + math: "\\mathbb{6}" + }, + "𝟟": { + math: "\\mathbb{7}" + }, + "𝟠": { + math: "\\mathbb{8}" + }, + "𝟡": { + math: "\\mathbb{9}" + }, + "𝟢": { + math: "\\mathsf{0}" + }, + "𝟣": { + math: "\\mathsf{1}" + }, + "𝟤": { + math: "\\mathsf{2}" + }, + "𝟥": { + math: "\\mathsf{3}" + }, + "𝟦": { + math: "\\mathsf{4}" + }, + "𝟧": { + math: "\\mathsf{5}" + }, + "𝟨": { + math: "\\mathsf{6}" + }, + "𝟩": { + math: "\\mathsf{7}" + }, + "𝟪": { + math: "\\mathsf{8}" + }, + "𝟫": { + math: "\\mathsf{9}" + }, + "𝟬": { + math: "\\mathsfbf{0}" + }, + "𝟭": { + math: "\\mathsfbf{1}" + }, + "𝟮": { + math: "\\mathsfbf{2}" + }, + "𝟯": { + math: "\\mathsfbf{3}" + }, + "𝟰": { + math: "\\mathsfbf{4}" + }, + "𝟱": { + math: "\\mathsfbf{5}" + }, + "𝟲": { + math: "\\mathsfbf{6}" + }, + "𝟳": { + math: "\\mathsfbf{7}" + }, + "𝟴": { + math: "\\mathsfbf{8}" + }, + "𝟵": { + math: "\\mathsfbf{9}" + }, + "𝟶": { + math: "\\mathtt{0}" + }, + "𝟷": { + math: "\\mathtt{1}" + }, + "𝟸": { + math: "\\mathtt{2}" + }, + "𝟹": { + math: "\\mathtt{3}" + }, + "𝟺": { + math: "\\mathtt{4}" + }, + "𝟻": { + math: "\\mathtt{5}" + }, + "𝟼": { + math: "\\mathtt{6}" + }, + "𝟽": { + math: "\\mathtt{7}" + }, + "𝟾": { + math: "\\mathtt{8}" + }, + "𝟿": { + math: "\\mathtt{9}" + } + }; + + var $$2 = { + math: "\\$", + text: "\\$" + }; + var _$2 = { + math: "\\_", + text: "\\_" + }; + var require$$2 = { + "#": { + math: "\\#", + text: "\\#" + }, + $: $$2, + "%": { + math: "\\%", + text: "\\%" + }, + "&": { + math: "\\&", + text: "\\&" + }, + "/​": { + text: "\\slash", + commandspacer: true + }, + "<": { + math: "<" + }, + ">": { + math: ">" + }, + "\\": { + math: "\\backslash", + text: "\\textbackslash", + commandspacer: true + }, + "^": { + math: "\\sphat", + text: "\\^" + }, + _: _$2, + "{": { + math: "\\lbrace", + text: "\\{" + }, + "}": { + math: "\\rbrace", + text: "\\}" + }, + "~": { + math: "\\sptilde", + text: "\\textasciitilde", + commandspacer: true + }, + " ": { + math: "~", + space: true, + text: "~" + }, + " ": { + text: " ", + space: true + }, + " ": { + math: "\\quad", + space: true + }, + " ": { + text: "\\hspace{0.6em}", + space: true + }, + " ": { + math: "\\quad", + space: true, + text: "\\hspace{1em}" + }, + " ": { + text: "\\;", + space: true + }, + " ": { + text: "\\hspace{0.25em}", + space: true + }, + " ": { + text: "\\hspace{0.166em}", + space: true + }, + " ": { + text: "\\hphantom{0}", + space: true + }, + " ": { + text: "\\hphantom{,}", + space: true + }, + " ": { + text: "\\,", + space: true + }, + " ": { + math: "\\mkern1mu", + space: true + }, + "​": { + text: "\\mbox", + commandspacer: true, + space: true + }, + " ": { + text: " ", + space: true + }, + " ": { + math: "\\:", + space: true, + text: "\\:" + } + }; + + var require$$3 = { + "\\#": "#", + "\\$": "$", + "\\%": "%", + "\\&": "&", + "\\slash": "/​", + "\\textless": "<", + "\\textgreater": ">", + "\\LaTeX": "LaTeX", + "\\textbackslash": "\\", + "\\backslash": "\\", + "\\": "\\", + "\\^": "^", + "\\sphat": "^", + "\\_": "_", + "\\t{ia}": "i︠a︡", + "{\\~ w}": "w̃", + "\\{": "{", + "\\lbrace": "{", + "\\textbar": "|", + "\\}": "}", + "\\rbrace": "}", + "\\textasciitilde": "~", + "\\sptilde": "~", + "\\textexclamdown": "¡", + "\\textcent": "¢", + "\\cent": "¢", + "\\textsterling": "£", + "\\pounds": "£", + "\\textcurrency": "¤", + "\\textyen": "¥", + "\\yen": "¥", + "\\textbrokenbar": "¦", + "\\textsection": "§", + "\\textasciidieresis": "¨", + "\\spddot": "¨", + "\\textcopyright": "©", + "\\textordfeminine": "ª", + "\\guillemotleft": "«", + "\\lnot": "¬", + "\\neg": "¬", + "\\-": "­", + "\\textregistered": "®", + "\\circledR": "®", + "\\textasciimacron": "¯", + "\\textdegree": "°", + "^\\circ": "°", + "\\pm": "±", + "^{2}": "²", + "^{3}": "³", + "\\textasciiacute": "´", + "\\textmu": "µ", + "\\textparagraph": "¶", + "^{1}": "¹", + "\\textordmasculine": "º", + "\\guillemotright": "»", + "\\frac{1}{4}": "¼", + "\\textonequarter": "¼", + "\\frac{1}{2}": "½", + "\\textonehalf": "½", + "\\frac{3}{4}": "¾", + "\\textthreequarters": "¾", + "\\textquestiondown": "¿", + "\\`A": "À", + "\\'A": "Á", + "\\^A": "Â", + "\\~A": "Ã", + "\\\"A": "Ä", + "\\AA": "Å", + "\\r{A}": "Å", + "{\\r A}": "Å", + "\\AE": "Æ", + "\\c{C}": "Ç", + "\\`E": "È", + "\\'E": "É", + "\\^E": "Ê", + "\\\"E": "Ë", + "\\`I": "Ì", + "\\'I": "Í", + "\\^I": "Î", + "\\\"I": "Ï", + "\\DH": "Ð", + "\\~N": "Ñ", + "\\`O": "Ò", + "\\'O": "Ó", + "\\^O": "Ô", + "\\~O": "Õ", + "\\\"O": "Ö", + "\\texttimes": "×", + "\\times": "×", + "\\O": "Ø", + "\\`U": "Ù", + "\\'U": "Ú", + "\\^U": "Û", + "\\\"U": "Ü", + "\\'Y": "Ý", + "\\TH": "Þ", + "\\ss": "ß", + "\\`a": "à", + "\\'a": "á", + "\\^a": "â", + "\\~a": "ã", + "\\\"a": "ä", + "\\aa": "å", + "\\r{a}": "å", + "{\\r a}": "å", + "\\ae": "æ", + "\\c{c}": "ç", + "\\`e": "è", + "\\'e": "é", + "\\^e": "ê", + "\\\"e": "ë", + "\\`i": "ì", + "\\`\\i": "ì", + "\\'i": "í", + "\\'\\i": "í", + "\\^i": "î", + "\\^\\i": "î", + "\\\"i": "ï", + "\\\"\\i": "ï", + "\\dh": "ð", + "\\eth": "ð", + "\\~n": "ñ", + "\\`o": "ò", + "\\'o": "ó", + "\\^o": "ô", + "\\~o": "õ", + "\\\"o": "ö", + "\\div": "÷", + "\\o": "ø", + "\\`u": "ù", + "\\'u": "ú", + "\\^u": "û", + "\\\"u": "ü", + "\\'y": "ý", + "\\th": "þ", + "\\\"y": "ÿ", + "\\=A": "Ā", + "\\=a": "ā", + "\\u{A}": "Ă", + "\\u{a}": "ă", + "\\k{A}": "Ą", + "\\k{a}": "ą", + "\\'C": "Ć", + "\\'c": "ć", + "\\^C": "Ĉ", + "\\^c": "ĉ", + "\\.C": "Ċ", + "\\.c": "ċ", + "\\v{C}": "Č", + "\\v{c}": "č", + "\\v{D}": "Ď", + "\\v{d}": "ď", + "\\DJ": "Đ", + "\\dj": "đ", + "\\=E": "Ē", + "\\=e": "ē", + "\\u{E}": "Ĕ", + "\\u{e}": "ĕ", + "\\.E": "Ė", + "\\.e": "ė", + "\\k{E}": "Ę", + "\\k{e}": "ę", + "\\v{E}": "Ě", + "\\v{e}": "ě", + "\\^G": "Ĝ", + "\\^g": "ĝ", + "\\u{G}": "Ğ", + "\\u{g}": "ğ", + "\\.G": "Ġ", + "\\.g": "ġ", + "\\c{G}": "Ģ", + "\\c{g}": "ģ", + "\\^H": "Ĥ", + "\\^h": "ĥ", + "{\\fontencoding{LELA}\\selectfont\\char40}": "Ħ", + "\\Elzxh": "ħ", + "\\~I": "Ĩ", + "\\~i": "ĩ", + "\\=I": "Ī", + "\\=i": "ī", + "\\u{I}": "Ĭ", + "{\\u \\i}": "ĭ", + "\\k{I}": "Į", + "\\k{i}": "į", + "\\.I": "İ", + "\\i": "ı", + "\\imath": "ı", + "\\^J": "Ĵ", + "\\^\\j": "ĵ", + "\\c{K}": "Ķ", + "\\c{k}": "ķ", + "{\\fontencoding{LELA}\\selectfont\\char91}": "ĸ", + "\\'L": "Ĺ", + "\\'l": "ĺ", + "\\c{L}": "Ļ", + "\\c{l}": "ļ", + "\\v{L}": "Ľ", + "\\v{l}": "ľ", + "{\\fontencoding{LELA}\\selectfont\\char201}": "Ŀ", + "{\\fontencoding{LELA}\\selectfont\\char202}": "ŀ", + "\\L": "Ł", + "\\l": "ł", + "\\'N": "Ń", + "\\'n": "ń", + "\\c{N}": "Ņ", + "\\c{n}": "ņ", + "\\v{N}": "Ň", + "\\v{n}": "ň", + "\\NG": "Ŋ", + "\\ng": "ŋ", + "\\=O": "Ō", + "\\=o": "ō", + "\\u{O}": "Ŏ", + "\\u{o}": "ŏ", + "\\H{O}": "Ő", + "\\H{o}": "ő", + "\\OE": "Œ", + "\\oe": "œ", + "\\'R": "Ŕ", + "\\'r": "ŕ", + "\\c{R}": "Ŗ", + "\\c{r}": "ŗ", + "\\v{R}": "Ř", + "\\v{r}": "ř", + "\\'S": "Ś", + "\\'s": "ś", + "\\^S": "Ŝ", + "\\^s": "ŝ", + "\\c{S}": "Ş", + "\\c{s}": "ş", + "\\v{S}": "Š", + "\\v{s}": "š", + "\\c{T}": "Ţ", + "\\c{t}": "ţ", + "\\v{T}": "Ť", + "\\v{t}": "ť", + "{\\fontencoding{LELA}\\selectfont\\char47}": "Ŧ", + "{\\fontencoding{LELA}\\selectfont\\char63}": "ŧ", + "\\~U": "Ũ", + "\\~u": "ũ", + "\\=U": "Ū", + "\\=u": "ū", + "\\u{U}": "Ŭ", + "\\u{u}": "ŭ", + "\\r{U}": "Ů", + "{\\r U}": "Ů", + "\\r{u}": "ů", + "\\ocirc{u}": "ů", + "{\\r u}": "ů", + "\\H{U}": "Ű", + "\\H{u}": "ű", + "\\k{U}": "Ų", + "\\k{u}": "ų", + "\\^W": "Ŵ", + "\\^w": "ŵ", + "\\^Y": "Ŷ", + "\\^y": "ŷ", + "\\\"Y": "Ÿ", + "\\'Z": "Ź", + "\\'z": "ź", + "\\.Z": "Ż", + "\\.z": "ż", + "\\v{Z}": "Ž", + "\\v{z}": "ž", + "\\texthvlig": "ƕ", + "\\textnrleg": "ƞ", + "\\textesh": "ƪ", + "\\Zbar": "Ƶ", + "{\\fontencoding{LELA}\\selectfont\\char195}": "ƺ", + "\\textdoublepipe": "ǂ", + "\\v{A}": "Ǎ", + "\\v{a}": "ǎ", + "\\v{I}": "Ǐ", + "\\v{i}": "ǐ", + "\\v{O}": "Ǒ", + "\\v{o}": "ǒ", + "\\v{U}": "Ǔ", + "\\v{u}": "ǔ", + "\\v{G}": "Ǧ", + "\\v{g}": "ǧ", + "\\v{K}": "Ǩ", + "\\v{k}": "ǩ", + "\\k{O}": "Ǫ", + "\\k{o}": "ǫ", + "\\v{j}": "ǰ", + "\\'G": "Ǵ", + "\\'g": "ǵ", + "\\c{E}": "Ȩ", + "\\c{e}": "ȩ", + "\\jmath": "ȷ", + "\\Elztrna": "ɐ", + "\\Elztrnsa": "ɒ", + "\\Elzopeno": "ɔ", + "\\Elzrtld": "ɖ", + "{\\fontencoding{LEIP}\\selectfont\\char61}": "ɘ", + "\\Elzschwa": "ə", + "\\varepsilon": "ɛ", + "\\Elzpgamma": "ɣ", + "\\Elzpbgam": "ɤ", + "\\Elztrnh": "ɥ", + "\\Elzbtdl": "ɬ", + "\\Elzrtll": "ɭ", + "\\Elztrnm": "ɯ", + "\\Elztrnmlr": "ɰ", + "\\Elzltlmr": "ɱ", + "\\Elzltln": "ɲ", + "\\Elzrtln": "ɳ", + "\\Elzclomeg": "ɷ", + "\\textphi": "ɸ", + "\\Elztrnr": "ɹ", + "\\Elztrnrl": "ɺ", + "\\Elzrttrnr": "ɻ", + "\\Elzrl": "ɼ", + "\\Elzrtlr": "ɽ", + "\\Elzfhr": "ɾ", + "{\\fontencoding{LEIP}\\selectfont\\char202}": "ɿ", + "\\Elzrtls": "ʂ", + "\\Elzesh": "ʃ", + "\\Elztrnt": "ʇ", + "\\Elzrtlt": "ʈ", + "\\Elzpupsil": "ʊ", + "\\Elzpscrv": "ʋ", + "\\Elzinvv": "ʌ", + "\\Elzinvw": "ʍ", + "\\Elztrny": "ʎ", + "\\Elzrtlz": "ʐ", + "\\Elzyogh": "ʒ", + "\\Elzglst": "ʔ", + "\\Elzreglst": "ʕ", + "\\Elzinglst": "ʖ", + "\\textturnk": "ʞ", + "\\Elzdyogh": "ʤ", + "\\Elztesh": "ʧ", + "\\textsuperscript{h}": "ʰ", + "^{h}": "ʰ", + "\\textsuperscript{j}": "ʲ", + "^{j}": "ʲ", + "\\textsuperscript{r}": "ʳ", + "^{r}": "ʳ", + "\\textsuperscript{w}": "ʷ", + "^{w}": "ʷ", + "\\textsuperscript{y}": "ʸ", + "^{y}": "ʸ", + "\\lasp": "ʿ", + "\\textasciicircum": "ˆ", + "\\textasciicaron": "ˇ", + "\\Elzverts": "ˈ", + "\\Elzverti": "ˌ", + "\\Elzlmrk": "ː", + "\\Elzhlmrk": "ˑ", + "\\Elzsbrhr": "˒", + "\\Elzsblhr": "˓", + "\\Elzrais": "˔", + "\\Elzlow": "˕", + "\\textasciibreve": "˘", + "\\textperiodcentered": "˙", + "\\texttildelow": "˜", + "\\textsuperscript{l}": "ˡ", + "^{l}": "ˡ", + "\\textsuperscript{s}": "ˢ", + "^{s}": "ˢ", + "\\textsuperscript{x}": "ˣ", + "^{x}": "ˣ", + "\\tone{55}": "˥", + "\\tone{44}": "˦", + "\\tone{33}": "˧", + "\\tone{22}": "˨", + "\\tone{11}": "˩", + "\\`": "̀", + "\\grave": "̀", + "\\textgravemacron": "̀̄", + "\\textgravedot": "̀̇", + "\\'": "́", + "\\acute": "́", + "\\textacutemacron": "́̄", + "\\textacutewedge": "́̌", + "\\hat": "̂", + "\\textcircumdot": "̂̇", + "\\~": "̃", + "\\tilde": "̃", + "\\texttildedot": "̃̇", + "\\=": "̄", + "\\bar": "̄", + "\\overline": "̅", + "\\u": "̆", + "\\breve": "̆", + "\\textbrevemacron": "̆̄", + "\\.": "̇", + "\\dot": "̇", + "\\textdotacute": "̇́", + "\\\"": "̈", + "\\ddot": "̈", + "\\ovhook": "̉", + "\\r": "̊", + "\\mathring": "̊", + "\\textringmacron": "̊̄", + "\\H": "̋", + "\\check": "̌", + "\\v": "̌", + "\\textvbaraccent": "̍", + "\\textdoublevbaraccent": "̎", + "\\textdoublegrave": "̏", + "\\textdotbreve": "̐", + "{\\fontencoding{LECO}\\selectfont\\char177}": "̑", + "\\oturnedcomma": "̒", + "\\ocommatopright": "̕", + "\\textsubgrave": "̖", + "\\textadvancing": "̘", + "\\textretracting": "̙", + "\\droang": "̚", + "\\textcorner": "̚", + "\\textsublhalfring": "̜", + "\\textraising": "̝", + "\\textlowering": "̞", + "\\textsubplus": "̟", + "\\Elzpalh": "̡", + "\\Elzrh": "̢", + "\\d": "̣", + "\\textsubumlaut": "̤", + "\\textsubring": "̥", + "\\c": "̧", + "\\k": "̨", + "\\textsyllabic": "̩", + "\\Elzsbbrg": "̪", + "\\textsubbridge": "̪", + "{\\fontencoding{LECO}\\selectfont\\char203}": "̫", + "\\textsubwedge": "̬", + "\\textsubarch": "̯", + "\\utilde": "̰", + "\\textsubtilde": "̰", + "\\textsubbar": "̱", + "\\underbar": "̱", + "\\underline": "̲", + "\\textsuperimposetilde": "̴", + "\\Elzxl": "̵", + "\\Elzbar": "̶", + "{\\fontencoding{LECO}\\selectfont\\char215}": "̷", + "\\not": "̸", + "\\textsubrhalfring": "̹", + "\\textinvsubbridge": "̺", + "\\textsubsquare": "̻", + "\\textseagull": "̼", + "\\textovercross": "̽", + "{\\fontencoding{LECO}\\selectfont\\char225}": "͡", + "\\'H": "Ή", + "{\\'{}I}": "Ί", + "{\\'{}O}": "Ό", + "\\mathrm{'Y}": "Ύ", + "\\mathrm{'\\Omega}": "Ώ", + "\\acute{\\ddot{\\iota}}": "ΐ", + "\\Gamma": "Γ", + "\\varGamma": "Γ", + "\\Delta": "Δ", + "\\Theta": "Θ", + "\\Lambda": "Λ", + "\\Xi": "Ξ", + "\\Pi": "Π", + "\\Sigma": "Σ", + "\\Upsilon": "Υ", + "\\Phi": "Φ", + "\\Psi": "Ψ", + "\\Omega": "Ω", + "\\mathrm{\\ddot{I}}": "Ϊ", + "\\mathrm{\\ddot{Y}}": "Ϋ", + "{\\'$\\alpha$}": "ά", + "\\acute{\\epsilon}": "έ", + "\\acute{\\eta}": "ή", + "\\acute{\\iota}": "ί", + "\\acute{\\ddot{\\upsilon}}": "ΰ", + "\\alpha": "α", + "\\beta": "β", + "\\gamma": "γ", + "\\delta": "δ", + "\\zeta": "ζ", + "\\eta": "η", + "\\texttheta": "θ", + "\\theta": "θ", + "\\iota": "ι", + "\\kappa": "κ", + "\\lambda": "λ", + "\\nu": "ν", + "\\xi": "ξ", + "\\pi": "π", + "\\rho": "ρ", + "\\varsigma": "ς", + "\\sigma": "σ", + "\\tau": "τ", + "\\upsilon": "υ", + "\\varphi": "φ", + "\\chi": "χ", + "\\psi": "ψ", + "\\omega": "ω", + "\\ddot{\\iota}": "ϊ", + "\\ddot{\\upsilon}": "ϋ", + "\\acute{\\upsilon}": "ύ", + "\\acute{\\omega}": "ώ", + "\\Pisymbol{ppi022}{87}": "ϐ", + "\\varbeta": "ϐ", + "\\textvartheta": "ϑ", + "\\vartheta": "ϑ", + "\\phi": "ϕ", + "\\varpi": "ϖ", + "\\Qoppa": "Ϙ", + "\\qoppa": "ϙ", + "\\Stigma": "Ϛ", + "\\stigma": "ϛ", + "\\Digamma": "Ϝ", + "\\digamma": "ϝ", + "\\Koppa": "Ϟ", + "\\koppa": "ϟ", + "\\Sampi": "Ϡ", + "\\sampi": "ϡ", + "\\varkappa": "ϰ", + "\\varrho": "ϱ", + "\\textTheta": "ϴ", + "\\upvarTheta": "ϴ", + "\\epsilon": "ϵ", + "\\backepsilon": "϶", + "\\cyrchar\\CYRYO": "Ё", + "\\cyrchar\\CYRDJE": "Ђ", + "\\cyrchar{\\'\\CYRG}": "Ѓ", + "\\cyrchar\\CYRIE": "Є", + "\\cyrchar\\CYRDZE": "Ѕ", + "\\cyrchar\\CYRII": "І", + "\\cyrchar\\CYRYI": "Ї", + "\\cyrchar\\CYRJE": "Ј", + "\\cyrchar\\CYRLJE": "Љ", + "\\cyrchar\\CYRNJE": "Њ", + "\\cyrchar\\CYRTSHE": "Ћ", + "\\cyrchar{\\'\\CYRK}": "Ќ", + "\\cyrchar\\CYRUSHRT": "Ў", + "\\cyrchar\\CYRDZHE": "Џ", + "\\cyrchar\\CYRA": "А", + "\\cyrchar\\CYRB": "Б", + "\\cyrchar\\CYRV": "В", + "\\cyrchar\\CYRG": "Г", + "\\cyrchar\\CYRD": "Д", + "\\cyrchar\\CYRE": "Е", + "\\cyrchar\\CYRZH": "Ж", + "\\cyrchar\\CYRZ": "З", + "\\cyrchar\\CYRI": "И", + "\\cyrchar\\CYRISHRT": "Й", + "\\cyrchar\\CYRK": "К", + "\\cyrchar\\CYRL": "Л", + "\\cyrchar\\CYRM": "М", + "\\cyrchar\\CYRN": "Н", + "\\cyrchar\\CYRO": "О", + "\\cyrchar\\CYRP": "П", + "\\cyrchar\\CYRR": "Р", + "\\cyrchar\\CYRS": "С", + "\\cyrchar\\CYRT": "Т", + "\\cyrchar\\CYRU": "У", + "\\cyrchar\\CYRF": "Ф", + "\\cyrchar\\CYRH": "Х", + "\\cyrchar\\CYRC": "Ц", + "\\cyrchar\\CYRCH": "Ч", + "\\cyrchar\\CYRSH": "Ш", + "\\cyrchar\\CYRSHCH": "Щ", + "\\cyrchar\\CYRHRDSN": "Ъ", + "\\bud": "Ъ", + "\\cdprime": "Ъ", + "\\cyrchar\\CYRERY": "Ы", + "\\cyrchar\\CYRSFTSN": "Ь", + "\\cprime": "Ь", + "\\cyrchar\\CYREREV": "Э", + "\\cyrchar\\CYRYU": "Ю", + "\\cyrchar\\CYRYA": "Я", + "\\cyrchar\\cyra": "а", + "\\cyrchar\\cyrb": "б", + "\\cyrchar\\cyrv": "в", + "\\cyrchar\\cyrg": "г", + "\\cyrchar\\cyrd": "д", + "\\cyrchar\\cyre": "е", + "\\cyrchar\\cyrzh": "ж", + "\\cyrchar\\cyrz": "з", + "\\cyrchar\\cyri": "и", + "\\cyrchar\\cyrishrt": "й", + "\\cyrchar\\cyrk": "к", + "\\cyrchar\\cyrl": "л", + "\\cyrchar\\cyrm": "м", + "\\cyrchar\\cyrn": "н", + "\\cyrchar\\cyro": "о", + "\\cyrchar\\cyrp": "п", + "\\cyrchar\\cyrr": "р", + "\\cyrchar\\cyrs": "с", + "\\cyrchar\\cyrt": "т", + "\\cyrchar\\cyru": "у", + "\\cyrchar\\cyrf": "ф", + "\\cyrchar\\cyrh": "х", + "\\cyrchar\\cyrc": "ц", + "\\cyrchar\\cyrch": "ч", + "\\cyrchar\\cyrsh": "ш", + "\\cyrchar\\cyrshch": "щ", + "\\cyrchar\\cyrhrdsn": "ъ", + "\\cyrchar\\cyrery": "ы", + "\\cyrchar\\cyrsftsn": "ь", + "\\cyrchar\\cyrerev": "э", + "\\cyrchar\\cyryu": "ю", + "\\cyrchar\\cyrya": "я", + "\\cyrchar\\cyryo": "ё", + "\\cyrchar\\cyrdje": "ђ", + "\\cyrchar{\\'\\cyrg}": "ѓ", + "\\cyrchar\\cyrie": "є", + "\\cyrchar\\cyrdze": "ѕ", + "\\cyrchar\\cyrii": "і", + "\\cyrchar\\cyryi": "ї", + "\\cyrchar\\cyrje": "ј", + "\\cyrchar\\cyrlje": "љ", + "\\cyrchar\\cyrnje": "њ", + "\\cyrchar\\cyrtshe": "ћ", + "\\cyrchar{\\'\\cyrk}": "ќ", + "\\cyrchar\\cyrushrt": "ў", + "\\cyrchar\\cyrdzhe": "џ", + "\\cyrchar\\CYROMEGA": "Ѡ", + "\\cyrchar\\cyromega": "ѡ", + "\\cyrchar\\CYRYAT": "Ѣ", + "\\cyrchar\\CYRIOTE": "Ѥ", + "\\cyrchar\\cyriote": "ѥ", + "\\cyrchar\\CYRLYUS": "Ѧ", + "\\cyrchar\\cyrlyus": "ѧ", + "\\cyrchar\\CYRIOTLYUS": "Ѩ", + "\\cyrchar\\cyriotlyus": "ѩ", + "\\cyrchar\\CYRBYUS": "Ѫ", + "\\cyrchar\\CYRIOTBYUS": "Ѭ", + "\\cyrchar\\cyriotbyus": "ѭ", + "\\cyrchar\\CYRKSI": "Ѯ", + "\\cyrchar\\cyrksi": "ѯ", + "\\cyrchar\\CYRPSI": "Ѱ", + "\\cyrchar\\cyrpsi": "ѱ", + "\\cyrchar\\CYRFITA": "Ѳ", + "\\cyrchar\\CYRIZH": "Ѵ", + "\\cyrchar\\CYRUK": "Ѹ", + "\\cyrchar\\cyruk": "ѹ", + "\\cyrchar\\CYROMEGARND": "Ѻ", + "\\cyrchar\\cyromegarnd": "ѻ", + "\\cyrchar\\CYROMEGATITLO": "Ѽ", + "\\cyrchar\\cyromegatitlo": "ѽ", + "\\cyrchar\\CYROT": "Ѿ", + "\\cyrchar\\cyrot": "ѿ", + "\\cyrchar\\CYRKOPPA": "Ҁ", + "\\cyrchar\\cyrkoppa": "ҁ", + "\\cyrchar\\cyrthousands": "҂", + "\\cyrchar\\cyrhundredthousands": "҈", + "\\cyrchar\\cyrmillions": "҉", + "\\cyrchar\\CYRSEMISFTSN": "Ҍ", + "\\cyrchar\\cyrsemisftsn": "ҍ", + "\\cyrchar\\CYRRTICK": "Ҏ", + "\\cyrchar\\cyrrtick": "ҏ", + "\\cyrchar\\CYRGUP": "Ґ", + "\\cyrchar\\cyrgup": "ґ", + "\\cyrchar\\CYRGHCRS": "Ғ", + "\\cyrchar\\cyrghcrs": "ғ", + "\\cyrchar\\CYRGHK": "Ҕ", + "\\cyrchar\\cyrghk": "ҕ", + "\\cyrchar\\CYRZHDSC": "Җ", + "\\cyrchar\\cyrzhdsc": "җ", + "\\cyrchar\\CYRZDSC": "Ҙ", + "\\cyrchar\\cyrzdsc": "ҙ", + "\\cyrchar\\CYRKDSC": "Қ", + "\\cyrchar\\cyrkdsc": "қ", + "\\cyrchar\\CYRKVCRS": "Ҝ", + "\\cyrchar\\cyrkvcrs": "ҝ", + "\\cyrchar\\CYRKHCRS": "Ҟ", + "\\cyrchar\\cyrkhcrs": "ҟ", + "\\cyrchar\\CYRKBEAK": "Ҡ", + "\\cyrchar\\cyrkbeak": "ҡ", + "\\cyrchar\\CYRNDSC": "Ң", + "\\cyrchar\\cyrndsc": "ң", + "\\cyrchar\\CYRNG": "Ҥ", + "\\cyrchar\\cyrng": "ҥ", + "\\cyrchar\\CYRPHK": "Ҧ", + "\\cyrchar\\cyrphk": "ҧ", + "\\cyrchar\\CYRABHHA": "Ҩ", + "\\cyrchar\\cyrabhha": "ҩ", + "\\cyrchar\\CYRSDSC": "Ҫ", + "\\cyrchar\\cyrsdsc": "ҫ", + "\\cyrchar\\CYRTDSC": "Ҭ", + "\\cyrchar\\cyrtdsc": "ҭ", + "\\cyrchar\\CYRY": "Ү", + "\\cyrchar\\cyry": "ү", + "\\cyrchar\\CYRYHCRS": "Ұ", + "\\cyrchar\\cyryhcrs": "ұ", + "\\cyrchar\\CYRHDSC": "Ҳ", + "\\cyrchar\\cyrhdsc": "ҳ", + "\\cyrchar\\CYRTETSE": "Ҵ", + "\\cyrchar\\cyrtetse": "ҵ", + "\\cyrchar\\CYRCHRDSC": "Ҷ", + "\\cyrchar\\cyrchrdsc": "ҷ", + "\\cyrchar\\CYRCHVCRS": "Ҹ", + "\\cyrchar\\cyrchvcrs": "ҹ", + "\\cyrchar\\CYRSHHA": "Һ", + "\\cyrchar\\cyrshha": "һ", + "\\cyrchar\\CYRABHCH": "Ҽ", + "\\cyrchar\\cyrabhch": "ҽ", + "\\cyrchar\\CYRABHCHDSC": "Ҿ", + "\\cyrchar\\cyrabhchdsc": "ҿ", + "\\cyrchar\\CYRpalochka": "Ӏ", + "\\cyrchar\\CYRKHK": "Ӄ", + "\\cyrchar\\cyrkhk": "ӄ", + "\\cyrchar\\CYRNHK": "Ӈ", + "\\cyrchar\\cyrnhk": "ӈ", + "\\cyrchar\\CYRCHLDSC": "Ӌ", + "\\cyrchar\\cyrchldsc": "ӌ", + "\\cyrchar\\CYRAE": "Ӕ", + "\\cyrchar\\cyrae": "ӕ", + "\\cyrchar\\CYRSCHWA": "Ә", + "\\cyrchar\\cyrschwa": "ә", + "\\cyrchar\\CYRABHDZE": "Ӡ", + "\\cyrchar\\cyrabhdze": "ӡ", + "\\cyrchar\\CYROTLD": "Ө", + "\\cyrchar\\cyrotld": "ө", + "\\\\backslash": "ࡱ", + "\\textsuperscript{a}": "ᵃ", + "^{a}": "ᵃ", + "\\textsuperscript{b}": "ᵇ", + "^{b}": "ᵇ", + "\\textsuperscript{d}": "ᵈ", + "^{d}": "ᵈ", + "\\textsuperscript{e}": "ᵉ", + "^{e}": "ᵉ", + "\\textsuperscript{g}": "ᵍ", + "^{g}": "ᵍ", + "\\textsuperscript{k}": "ᵏ", + "^{k}": "ᵏ", + "\\textsuperscript{m}": "ᵐ", + "^{m}": "ᵐ", + "\\textsuperscript{o}": "ᵒ", + "^{o}": "ᵒ", + "\\textsuperscript{p}": "ᵖ", + "^{p}": "ᵖ", + "\\textsuperscript{t}": "ᵗ", + "^{t}": "ᵗ", + "\\textsuperscript{u}": "ᵘ", + "^{u}": "ᵘ", + "\\textsuperscript{v}": "ᵛ", + "^{v}": "ᵛ", + "\\textsuperscript{c}": "ᶜ", + "^{c}": "ᶜ", + "\\textsuperscript{f}": "ᶠ", + "^{f}": "ᶠ", + "\\textsuperscript{z}": "ᶻ", + "^{z}": "ᶻ", + "\\.B": "Ḃ", + "\\.b": "ḃ", + "\\d{B}": "Ḅ", + "\\d{b}": "ḅ", + "\\b{B}": "Ḇ", + "\\b{b}": "ḇ", + "\\.D": "Ḋ", + "\\.d": "ḋ", + "\\d{D}": "Ḍ", + "\\d{d}": "ḍ", + "\\b{D}": "Ḏ", + "\\b{d}": "ḏ", + "\\c{D}": "Ḑ", + "\\c{d}": "ḑ", + "\\c{\\u{E}}": "Ḝ", + "\\c{\\u{e}}": "ḝ", + "\\.F": "Ḟ", + "\\.f": "ḟ", + "\\=G": "Ḡ", + "\\=g": "ḡ", + "\\.H": "Ḣ", + "\\.h": "ḣ", + "\\d{H}": "Ḥ", + "\\d{h}": "ḥ", + "\\\"H": "Ḧ", + "\\\"h": "ḧ", + "\\c{H}": "Ḩ", + "\\c{h}": "ḩ", + "\\'K": "Ḱ", + "\\'k": "ḱ", + "\\d{K}": "Ḳ", + "\\d{k}": "ḳ", + "\\b{K}": "Ḵ", + "\\b{k}": "ḵ", + "\\d{L}": "Ḷ", + "\\d{l}": "ḷ", + "\\b{L}": "Ḻ", + "\\b{l}": "ḻ", + "\\'M": "Ḿ", + "\\'m": "ḿ", + "\\.M": "Ṁ", + "\\.m": "ṁ", + "\\d{M}": "Ṃ", + "\\d{m}": "ṃ", + "\\.N": "Ṅ", + "\\.n": "ṅ", + "\\d{N}": "Ṇ", + "\\d{n}": "ṇ", + "\\b{N}": "Ṉ", + "\\b{n}": "ṉ", + "\\'P": "Ṕ", + "\\'p": "ṕ", + "\\.P": "Ṗ", + "\\.p": "ṗ", + "\\.R": "Ṙ", + "\\.r": "ṙ", + "\\d{R}": "Ṛ", + "\\d{r}": "ṛ", + "\\b{R}": "Ṟ", + "\\b{r}": "ṟ", + "\\.S": "Ṡ", + "\\.s": "ṡ", + "\\d{S}": "Ṣ", + "\\d{s}": "ṣ", + "\\.T": "Ṫ", + "\\.t": "ṫ", + "\\d{T}": "Ṭ", + "\\d{t}": "ṭ", + "\\b{T}": "Ṯ", + "\\b{t}": "ṯ", + "\\~V": "Ṽ", + "\\~v": "ṽ", + "\\d{V}": "Ṿ", + "\\d{v}": "ṿ", + "\\`W": "Ẁ", + "\\`w": "ẁ", + "\\'W": "Ẃ", + "\\'w": "ẃ", + "\\\"W": "Ẅ", + "\\\"w": "ẅ", + "\\.W": "Ẇ", + "\\.w": "ẇ", + "\\d{W}": "Ẉ", + "\\d{w}": "ẉ", + "\\.X": "Ẋ", + "\\.x": "ẋ", + "\\\"X": "Ẍ", + "\\\"x": "ẍ", + "\\.Y": "Ẏ", + "\\.y": "ẏ", + "\\^Z": "Ẑ", + "\\^z": "ẑ", + "\\d{Z}": "Ẓ", + "\\d{z}": "ẓ", + "\\b{Z}": "Ẕ", + "\\b{z}": "ẕ", + "\\b{h}": "ẖ", + "\\\"t": "ẗ", + "\\r{w}": "ẘ", + "\\r{y}": "ẙ", + "\\d{A}": "Ạ", + "\\d{a}": "ạ", + "\\d{E}": "Ẹ", + "\\d{e}": "ẹ", + "\\~E": "Ẽ", + "\\~e": "ẽ", + "\\d{I}": "Ị", + "\\d{i}": "ị", + "\\d{O}": "Ọ", + "\\d{o}": "ọ", + "\\d{U}": "Ụ", + "\\d{u}": "ụ", + "\\`Y": "Ỳ", + "\\`y": "ỳ", + "\\d{Y}": "Ỵ", + "\\d{y}": "ỵ", + "\\~Y": "Ỹ", + "\\~y": "ỹ", + "\\hspace{0.6em}": " ", + "\\hspace{1em}": " ", + "\\quad": " ", + "\\;": " ", + "\\hspace{0.25em}": " ", + "\\hspace{0.166em}": " ", + "\\hphantom{0}": " ", + "\\hphantom{,}": " ", + "\\,": " ", + "\\mkern1mu": " ", + "\\mbox": "​", + "{\\aftergroup\\ignorespaces}": "‌", + "\\textendash": "–", + "\\textemdash": "—", + "\\rule{1em}{1pt}": "―", + "\\horizbar": "―", + "\\Vert": "‖", + "\\twolowline": "‗", + "\\textquoteleft": "‘", + "\\textquoteright": "’", + "\\Elzreapos": "‛", + "\\textquotedblleft": "“", + "\\textquotedblright": "”", + "\\quotedblbase": "‟", + "\\textdagger": "†", + "\\dagger": "†", + "\\textdaggerdbl": "‡", + "\\ddagger": "‡", + "\\textbullet": "•", + "\\enleadertwodots": "‥", + "\\ldots": "…", + "\\textperthousand": "‰", + "\\textpertenthousand": "‱", + "{'}": "′", + "{''}": "″", + "{'''}": "‴", + "\\backprime": "‵", + "\\backdprime": "‶", + "\\backtrprime": "‷", + "\\caretinsert": "‸", + "\\guilsinglleft": "‹", + "\\guilsinglright": "›", + "\\Exclam": "‼", + "\\hyphenbullet": "⁃", + "\\fracslash": "⁄", + "\\Question": "⁇", + "\\closure": "⁐", + "\\:": " ", + "\\nolinebreak": "⁠", + "^{0}": "⁰", + "\\textsuperscript{i}": "ⁱ", + "^{i}": "ⁱ", + "^{4}": "⁴", + "^{5}": "⁵", + "^{6}": "⁶", + "^{7}": "⁷", + "^{8}": "⁸", + "^{9}": "⁹", + "^{+}": "⁺", + "^{-}": "⁻", + "^{=}": "⁼", + "^{(}": "⁽", + "^{)}": "⁾", + "\\textsuperscript{n}": "ⁿ", + "^{n}": "ⁿ", + "_{0}": "₀", + "_{1}": "₁", + "_{2}": "₂", + "_{3}": "₃", + "_{4}": "₄", + "_{5}": "₅", + "_{6}": "₆", + "_{7}": "₇", + "_{8}": "₈", + "_{9}": "₉", + "_{+}": "₊", + "_{-}": "₋", + "_{=}": "₌", + "_{(}": "₍", + "_{)}": "₎", + "\\textsubscript{a}": "ₐ", + "_{a}": "ₐ", + "\\textsubscript{e}": "ₑ", + "_{e}": "ₑ", + "\\textsubscript{o}": "ₒ", + "_{o}": "ₒ", + "\\textsubscript{x}": "ₓ", + "_{x}": "ₓ", + "\\textsubscript{\\textschwa}": "ₔ", + "\\textsubscript{h}": "ₕ", + "_{h}": "ₕ", + "\\textsubscript{k}": "ₖ", + "_{k}": "ₖ", + "\\textsubscript{l}": "ₗ", + "_{l}": "ₗ", + "\\textsubscript{m}": "ₘ", + "_{m}": "ₘ", + "\\textsubscript{n}": "ₙ", + "_{n}": "ₙ", + "\\textsubscript{p}": "ₚ", + "_{p}": "ₚ", + "\\textsubscript{s}": "ₛ", + "_{s}": "ₛ", + "\\textsubscript{t}": "ₜ", + "_{t}": "ₜ", + "\\ensuremath{\\Elzpes}": "₧", + "\\texteuro": "€", + "\\euro": "€", + "\\lvec": "⃐", + "\\vertoverlay": "⃒", + "\\LVec": "⃖", + "\\vec": "⃗", + "\\dddot": "⃛", + "\\ddddot": "⃜", + "\\enclosecircle": "⃝", + "\\enclosesquare": "⃞", + "\\enclosediamond": "⃟", + "\\overleftrightarrow": "⃡", + "\\enclosetriangle": "⃤", + "\\annuity": "⃧", + "\\threeunderdot": "⃨", + "\\widebridgeabove": "⃩", + "\\underrightharpoondown": "⃬", + "\\underleftharpoondown": "⃭", + "\\underleftarrow": "⃮", + "\\underrightarrow": "⃯", + "\\asteraccent": "⃰", + "\\mathbb{C}": "ℂ", + "\\textcelsius": "℃", + "\\Euler": "ℇ", + "\\mathscr{g}": "ℊ", + "\\mathscr{H}": "ℋ", + "\\mathfrak{H}": "ℌ", + "\\mathbb{H}": "ℍ", + "\\Planckconst": "ℎ", + "\\hslash": "ℏ", + "\\mathscr{I}": "ℐ", + "\\mathfrak{I}": "ℑ", + "\\mathscr{L}": "ℒ", + "\\mathscr{l}": "ℓ", + "\\mathbb{N}": "ℕ", + "\\cyrchar\\textnumero": "№", + "\\textcircledP": "℗", + "\\wp": "℘", + "\\mathbb{P}": "ℙ", + "\\mathbb{Q}": "ℚ", + "\\mathscr{R}": "ℛ", + "\\mathfrak{R}": "ℜ", + "\\mathbb{R}": "ℝ", + "\\Elzxrat": "℞", + "\\textservicemark": "℠", + "\\texttrademark": "™", + "\\mathbb{Z}": "ℤ", + "\\mho": "℧", + "\\mathfrak{Z}": "ℨ", + "\\textriota": "℩", + "\\Angstroem": "Å", + "\\mathscr{B}": "ℬ", + "\\mathfrak{C}": "ℭ", + "\\textestimated": "℮", + "\\mathscr{e}": "ℯ", + "\\mathscr{E}": "ℰ", + "\\mathscr{F}": "ℱ", + "\\Finv": "Ⅎ", + "\\mathscr{M}": "ℳ", + "\\mathscr{o}": "ℴ", + "\\aleph": "ℵ", + "\\beth": "ℶ", + "\\gimel": "ℷ", + "\\daleth": "ℸ", + "\\mathbb{\\pi}": "ℼ", + "\\mathbb{\\gamma}": "ℽ", + "\\mathbb{\\Gamma}": "ℾ", + "\\mathbb{\\Pi}": "ℿ", + "\\mathbb{\\Sigma}": "⅀", + "\\Game": "⅁", + "\\sansLturned": "⅂", + "\\sansLmirrored": "⅃", + "\\Yup": "⅄", + "\\CapitalDifferentialD": "ⅅ", + "\\DifferentialD": "ⅆ", + "\\ExponetialE": "ⅇ", + "\\ComplexI": "ⅈ", + "\\ComplexJ": "ⅉ", + "\\PropertyLine": "⅊", + "\\invamp": "⅋", + "\\frac{1}{7}": "⅐", + "\\textfrac{1}{7}": "⅐", + "\\frac{1}{9}": "⅑", + "\\textfrac{1}{9}": "⅑", + "\\frac{1}{10}": "⅒", + "\\textfrac{1}{10}": "⅒", + "\\frac{1}{3}": "⅓", + "\\textfrac{1}{3}": "⅓", + "\\frac{2}{3}": "⅔", + "\\textfrac{2}{3}": "⅔", + "\\frac{1}{5}": "⅕", + "\\textfrac{1}{5}": "⅕", + "\\frac{2}{5}": "⅖", + "\\textfrac{2}{5}": "⅖", + "\\frac{3}{5}": "⅗", + "\\textfrac{3}{5}": "⅗", + "\\frac{4}{5}": "⅘", + "\\textfrac{4}{5}": "⅘", + "\\frac{1}{6}": "⅙", + "\\textfrac{1}{6}": "⅙", + "\\frac{5}{6}": "⅚", + "\\textfrac{5}{6}": "⅚", + "\\frac{1}{8}": "⅛", + "\\textfrac{1}{8}": "⅛", + "\\frac{3}{8}": "⅜", + "\\textfrac{3}{8}": "⅜", + "\\frac{5}{8}": "⅝", + "\\textfrac{5}{8}": "⅝", + "\\frac{7}{8}": "⅞", + "\\textfrac{7}{8}": "⅞", + "\\frac{1}": "⅟", + "\\textfrac{1}": "⅟", + "\\frac{0}{3}": "↉", + "\\textfrac{0}{3}": "↉", + "\\leftarrow": "←", + "\\uparrow": "↑", + "\\textrightarrow": "→", + "\\rightarrow": "→", + "\\to": "→", + "\\downarrow": "↓", + "\\leftrightarrow": "↔", + "\\updownarrow": "↕", + "\\nwarrow": "↖", + "\\nearrow": "↗", + "\\searrow": "↘", + "\\swarrow": "↙", + "\\nleftarrow": "↚", + "\\nrightarrow": "↛", + "\\arrowwaveleft": "↜", + "\\arrowwaveright": "↝", + "\\twoheadleftarrow": "↞", + "\\twoheaduparrow": "↟", + "\\twoheadrightarrow": "↠", + "\\twoheaddownarrow": "↡", + "\\leftarrowtail": "↢", + "\\rightarrowtail": "↣", + "\\mapsfrom": "↤", + "\\MapsUp": "↥", + "\\mapsto": "↦", + "\\MapsDown": "↧", + "\\updownarrowbar": "↨", + "\\hookleftarrow": "↩", + "\\hookrightarrow": "↪", + "\\looparrowleft": "↫", + "\\looparrowright": "↬", + "\\leftrightsquigarrow": "↭", + "\\nleftrightarrow": "↮", + "\\lightning": "↯", + "\\Lsh": "↰", + "\\Rsh": "↱", + "\\dlsh": "↲", + "\\reflectbox{\\carriagereturn}": "↳", + "\\linefeed": "↴", + "\\carriagereturn": "↵", + "\\curvearrowleft": "↶", + "\\curvearrowright": "↷", + "\\barovernorthwestarrow": "↸", + "\\barleftarrowrightarrowba": "↹", + "\\circlearrowleft": "↺", + "\\circlearrowright": "↻", + "\\leftharpoonup": "↼", + "\\leftharpoondown": "↽", + "\\upharpoonright": "↾", + "\\upharpoonleft": "↿", + "\\rightharpoonup": "⇀", + "\\rightharpoondown": "⇁", + "\\downharpoonright": "⇂", + "\\downharpoonleft": "⇃", + "\\rightleftarrows": "⇄", + "\\dblarrowupdown": "⇅", + "\\leftrightarrows": "⇆", + "\\leftleftarrows": "⇇", + "\\upuparrows": "⇈", + "\\rightrightarrows": "⇉", + "\\downdownarrows": "⇊", + "\\leftrightharpoons": "⇋", + "\\rightleftharpoons": "⇌", + "\\nLeftarrow": "⇍", + "\\nLeftrightarrow": "⇎", + "\\nRightarrow": "⇏", + "\\Leftarrow": "⇐", + "\\Uparrow": "⇑", + "\\Rightarrow": "⇒", + "\\Downarrow": "⇓", + "\\Leftrightarrow": "⇔", + "\\Updownarrow": "⇕", + "\\Nwarrow": "⇖", + "\\Nearrow": "⇗", + "\\Searrow": "⇘", + "\\Swarrow": "⇙", + "\\Lleftarrow": "⇚", + "\\Rrightarrow": "⇛", + "\\leftsquigarrow": "⇜", + "\\rightsquigarrow": "⇝", + "\\nHuparrow": "⇞", + "\\nHdownarrow": "⇟", + "\\dashleftarrow": "⇠", + "\\updasharrow": "⇡", + "\\dashrightarrow": "⇢", + "\\downdasharrow": "⇣", + "\\LeftArrowBar": "⇤", + "\\RightArrowBar": "⇥", + "\\leftwhitearrow": "⇦", + "\\upwhitearrow": "⇧", + "\\rightwhitearrow": "⇨", + "\\downwhitearrow": "⇩", + "\\whitearrowupfrombar": "⇪", + "\\circleonrightarrow": "⇴", + "\\DownArrowUpArrow": "⇵", + "\\rightthreearrows": "⇶", + "\\nvleftarrow": "⇷", + "\\pfun": "⇸", + "\\nvleftrightarrow": "⇹", + "\\nVleftarrow": "⇺", + "\\ffun": "⇻", + "\\nVleftrightarrow": "⇼", + "\\leftarrowtriangle": "⇽", + "\\rightarrowtriangle": "⇾", + "\\leftrightarrowtriangle": "⇿", + "\\forall": "∀", + "\\complement": "∁", + "\\partial": "∂", + "\\exists": "∃", + "\\nexists": "∄", + "\\varnothing": "∅", + "\\increment": "∆", + "\\nabla": "∇", + "\\in": "∈", + "\\not\\in": "∉", + "\\smallin": "∊", + "\\ni": "∋", + "\\not\\ni": "∌", + "\\smallni": "∍", + "\\QED": "∎", + "\\prod": "∏", + "\\coprod": "∐", + "\\sum": "∑", + "\\mp": "∓", + "\\dotplus": "∔", + "\\setminus": "∖", + "{_\\ast}": "∗", + "\\circ": "∘", + "\\bullet": "∙", + "\\surd": "√", + "\\sqrt[3]": "∛", + "\\sqrt[4]": "∜", + "\\propto": "∝", + "\\infty": "∞", + "\\rightangle": "∟", + "\\angle": "∠", + "\\measuredangle": "∡", + "\\sphericalangle": "∢", + "\\mid": "∣", + "\\nmid": "∤", + "\\parallel": "∥", + "\\nparallel": "∦", + "\\wedge": "∧", + "\\vee": "∨", + "\\cap": "∩", + "\\cup": "∪", + "\\int": "∫", + "{\\int\\!\\int}": "∬", + "{\\int\\!\\int\\!\\int}": "∭", + "\\oint": "∮", + "\\surfintegral": "∯", + "\\volintegral": "∰", + "\\clwintegral": "∱", + "\\lcirclerightint": "∲", + "\\rcirclerightint": "∳", + "\\therefore": "∴", + "\\because": "∵", + "\\Colon": "∷", + "\\dotdiv": "∸", + "\\eqcolon": "∹", + "\\mathbin{{:}\\!\\!{-}\\!\\!{:}}": "∺", + "\\homothetic": "∻", + "\\sim": "∼", + "\\backsim": "∽", + "\\lazysinv": "∾", + "\\AC": "∿", + "\\wr": "≀", + "\\not\\sim": "≁", + "\\texteqsim": "≂", + "\\NotEqualTilde": "≂̸", + "\\simeq": "≃", + "\\not\\simeq": "≄", + "\\cong": "≅", + "\\approxnotequal": "≆", + "\\not\\cong": "≇", + "\\approx": "≈", + "\\not\\approx": "≉", + "\\approxeq": "≊", + "\\tildetrpl": "≋", + "\\not\\apid": "≋̸", + "\\allequal": "≌", + "\\asymp": "≍", + "\\Bumpeq": "≎", + "\\NotHumpDownHump": "≎̸", + "\\bumpeq": "≏", + "\\NotHumpEqual": "≏̸", + "\\doteq": "≐", + "\\not\\doteq": "≐̸", + "\\doteqdot": "≑", + "\\fallingdotseq": "≒", + "\\risingdotseq": "≓", + "\\coloneq": "≔", + "\\eqcirc": "≖", + "\\circeq": "≗", + "\\arceq": "≘", + "\\estimates": "≙", + "\\starequal": "≛", + "\\triangleq": "≜", + "\\eqdef": "≝", + "\\measeq": "≞", + "\\neq": "≠", + "\\equiv": "≡", + "\\not\\equiv": "≢", + "\\Equiv": "≣", + "\\leq": "≤", + "\\le": "≤", + "\\geq": "≥", + "\\leqq": "≦", + "\\geqq": "≧", + "\\lneqq": "≨", + "\\lvertneqq": "≨︀", + "\\gneqq": "≩", + "\\gvertneqq": "≩︀", + "\\ll": "≪", + "\\NotLessLess": "≪̸", + "\\gg": "≫", + "\\NotGreaterGreater": "≫̸", + "\\between": "≬", + "{\\not\\kern-0.3em\\times}": "≭", + "\\not<": "≮", + "\\not>": "≯", + "\\not\\leq": "≰", + "\\not\\geq": "≱", + "\\lessequivlnt": "≲", + "\\greaterequivlnt": "≳", + "\\lessgtr": "≶", + "\\gtrless": "≷", + "\\notlessgreater": "≸", + "\\notgreaterless": "≹", + "\\prec": "≺", + "\\succ": "≻", + "\\preccurlyeq": "≼", + "\\succcurlyeq": "≽", + "\\NotPrecedesTilde": "≾̸", + "\\NotSucceedsTilde": "≿̸", + "\\not\\prec": "⊀", + "\\not\\succ": "⊁", + "\\subset": "⊂", + "\\supset": "⊃", + "\\not\\subset": "⊄", + "\\not\\supset": "⊅", + "\\subseteq": "⊆", + "\\supseteq": "⊇", + "\\not\\subseteq": "⊈", + "\\not\\supseteq": "⊉", + "\\subsetneq": "⊊", + "\\varsubsetneqq": "⊊︀", + "\\supsetneq": "⊋", + "\\varsupsetneq": "⊋︀", + "\\cupleftarrow": "⊌", + "\\cupdot": "⊍", + "\\uplus": "⊎", + "\\sqsubset": "⊏", + "\\NotSquareSubset": "⊏̸", + "\\sqsupset": "⊐", + "\\NotSquareSuperset": "⊐̸", + "\\sqsubseteq": "⊑", + "\\sqsupseteq": "⊒", + "\\sqcap": "⊓", + "\\sqcup": "⊔", + "\\oplus": "⊕", + "\\ominus": "⊖", + "\\otimes": "⊗", + "\\oslash": "⊘", + "\\odot": "⊙", + "\\circledcirc": "⊚", + "\\circledast": "⊛", + "\\circledequal": "⊜", + "\\circleddash": "⊝", + "\\boxplus": "⊞", + "\\boxminus": "⊟", + "\\boxtimes": "⊠", + "\\boxdot": "⊡", + "\\vdash": "⊢", + "\\dashv": "⊣", + "\\top": "⊤", + "\\assert": "⊦", + "\\truestate": "⊧", + "\\forcesextra": "⊨", + "\\Vdash": "⊩", + "\\Vvdash": "⊪", + "\\VDash": "⊫", + "\\nvdash": "⊬", + "\\nvDash": "⊭", + "\\nVdash": "⊮", + "\\nVDash": "⊯", + "\\prurel": "⊰", + "\\scurel": "⊱", + "\\vartriangleleft": "⊲", + "\\vartriangleright": "⊳", + "\\trianglelefteq": "⊴", + "\\trianglerighteq": "⊵", + "\\original": "⊶", + "\\image": "⊷", + "\\multimap": "⊸", + "\\hermitconjmatrix": "⊹", + "\\intercal": "⊺", + "\\veebar": "⊻", + "\\barvee": "⊽", + "\\rightanglearc": "⊾", + "\\varlrtriangle": "⊿", + "\\bigcap": "⋂", + "\\bigcup": "⋃", + "\\diamond": "⋄", + "\\cdot": "⋅", + "\\star": "⋆", + "\\divideontimes": "⋇", + "\\bowtie": "⋈", + "\\ltimes": "⋉", + "\\rtimes": "⋊", + "\\leftthreetimes": "⋋", + "\\rightthreetimes": "⋌", + "\\backsimeq": "⋍", + "\\curlyvee": "⋎", + "\\curlywedge": "⋏", + "\\Subset": "⋐", + "\\Supset": "⋑", + "\\Cap": "⋒", + "\\Cup": "⋓", + "\\pitchfork": "⋔", + "\\hash": "⋕", + "\\lessdot": "⋖", + "\\gtrdot": "⋗", + "\\verymuchless": "⋘", + "\\verymuchgreater": "⋙", + "\\lesseqgtr": "⋚", + "\\gtreqless": "⋛", + "\\eqless": "⋜", + "\\eqgtr": "⋝", + "\\curlyeqprec": "⋞", + "\\curlyeqsucc": "⋟", + "\\npreceq": "⋠", + "\\nsucceq": "⋡", + "\\not\\sqsubseteq": "⋢", + "\\not\\sqsupseteq": "⋣", + "\\sqsubsetneq": "⋤", + "\\Elzsqspne": "⋥", + "\\lnsim": "⋦", + "\\gnsim": "⋧", + "\\precedesnotsimilar": "⋨", + "\\succnsim": "⋩", + "\\ntriangleleft": "⋪", + "\\ntriangleright": "⋫", + "\\ntrianglelefteq": "⋬", + "\\ntrianglerighteq": "⋭", + "\\vdots": "⋮", + "\\cdots": "⋯", + "\\upslopeellipsis": "⋰", + "\\downslopeellipsis": "⋱", + "\\disin": "⋲", + "\\varisins": "⋳", + "\\isins": "⋴", + "\\isindot": "⋵", + "\\barin": "⋶", + "\\isinobar": "⋷", + "\\isinvb": "⋸", + "\\isinE": "⋹", + "\\nisd": "⋺", + "\\varnis": "⋻", + "\\nis": "⋼", + "\\varniobar": "⋽", + "\\niobar": "⋾", + "\\bagmember": "⋿", + "\\diameter": "⌀", + "\\house": "⌂", + "\\barwedge": "⌅", + "\\varbarwedge": "⌅", + "\\perspcorrespond": "⌆", + "\\lceil": "⌈", + "\\rceil": "⌉", + "\\lfloor": "⌊", + "\\rfloor": "⌋", + "\\invneg": "⌐", + "\\wasylozenge": "⌑", + "\\profline": "⌒", + "\\profsurf": "⌓", + "\\recorder": "⌕", + "{\\mathchar\"2208}": "⌖", + "\\viewdata": "⌗", + "\\turnednot": "⌙", + "\\ulcorner": "⌜", + "\\urcorner": "⌝", + "\\llcorner": "⌞", + "\\lrcorner": "⌟", + "\\inttop": "⌠", + "\\intbottom": "⌡", + "\\frown": "⌢", + "\\smile": "⌣", + "\\varhexagonlrbonds": "⌬", + "\\conictaper": "⌲", + "\\topbot": "⌶", + "\\APLinv": "⌹", + "\\notslash": "⌿", + "\\notbackslash": "⍀", + "\\APLleftarrowbox": "⍇", + "\\APLrightarrowbox": "⍈", + "\\invdiameter": "⍉", + "\\APLuparrowbox": "⍐", + "\\APLboxupcaret": "⍓", + "\\APLdownarrowbox": "⍗", + "\\APLcomment": "⍝", + "\\APLinput": "⍞", + "\\APLlog": "⍟", + "\\APLboxquestion": "⍰", + "\\rangledownzigzagarrow": "⍼", + "\\hexagon": "⎔", + "\\lparenuend": "⎛", + "\\lparenextender": "⎜", + "\\lparenlend": "⎝", + "\\rparenuend": "⎞", + "\\rparenextender": "⎟", + "\\rparenlend": "⎠", + "\\lbrackuend": "⎡", + "\\lbrackextender": "⎢", + "\\Elzdlcorn": "⎣", + "\\rbrackuend": "⎤", + "\\rbrackextender": "⎥", + "\\rbracklend": "⎦", + "\\lbraceuend": "⎧", + "\\lbracemid": "⎨", + "\\lbracelend": "⎩", + "\\vbraceextender": "⎪", + "\\rbraceuend": "⎫", + "\\rbracemid": "⎬", + "\\rbracelend": "⎭", + "\\intextender": "⎮", + "\\harrowextender": "⎯", + "\\lmoustache": "⎰", + "\\rmoustache": "⎱", + "\\sumtop": "⎲", + "\\sumbottom": "⎳", + "\\overbracket": "⎴", + "\\underbracket": "⎵", + "\\bbrktbrk": "⎶", + "\\sqrtbottom": "⎷", + "\\lvboxline": "⎸", + "\\rvboxline": "⎹", + "\\varcarriagereturn": "⏎", + "\\overparen": "⏜", + "\\underparen": "⏝", + "\\overbrace": "⏞", + "\\underbrace": "⏟", + "\\obrbrak": "⏠", + "\\ubrbrak": "⏡", + "\\trapezium": "⏢", + "\\benzenr": "⏣", + "\\strns": "⏤", + "\\fltns": "⏥", + "\\accurrent": "⏦", + "\\elinters": "⏧", + "\\textvisiblespace": "␣", + "\\ding{172}": "①", + "\\ding{173}": "②", + "\\ding{174}": "③", + "\\ding{175}": "④", + "\\ding{176}": "⑤", + "\\ding{177}": "⑥", + "\\ding{178}": "⑦", + "\\ding{179}": "⑧", + "\\ding{180}": "⑨", + "\\ding{181}": "⑩", + "\\circledS": "Ⓢ", + "\\Elzdshfnc": "┆", + "\\Elzsqfnw": "┙", + "\\diagup": "╱", + "\\blockuphalf": "▀", + "\\blocklowhalf": "▄", + "\\blockfull": "█", + "\\blocklefthalf": "▌", + "\\blockrighthalf": "▐", + "\\blockqtrshaded": "░", + "\\blockhalfshaded": "▒", + "\\blockthreeqtrshaded": "▓", + "\\ding{110}": "■", + "\\mdlgblksquare": "■", + "\\square": "□", + "\\Box": "□", + "\\squoval": "▢", + "\\blackinwhitesquare": "▣", + "\\squarehfill": "▤", + "\\squarevfill": "▥", + "\\squarehvfill": "▦", + "\\squarenwsefill": "▧", + "\\squareneswfill": "▨", + "\\squarecrossfill": "▩", + "\\smwhtsquare": "▫", + "\\hrectangleblack": "▬", + "\\fbox{~~}": "▭", + "\\vrectangleblack": "▮", + "\\Elzvrecto": "▯", + "\\parallelogramblack": "▰", + "\\ding{115}": "▲", + "\\bigblacktriangleup": "▲", + "\\bigtriangleup": "△", + "\\blacktriangle": "▴", + "\\vartriangle": "▵", + "\\RHD": "▶", + "\\rhd": "▷", + "\\blacktriangleright": "▸", + "\\triangleright": "▹", + "\\blackpointerright": "►", + "\\whitepointerright": "▻", + "\\ding{116}": "▼", + "\\bigblacktriangledown": "▼", + "\\bigtriangledown": "▽", + "\\blacktriangledown": "▾", + "\\triangledown": "▿", + "\\LHD": "◀", + "\\lhd": "◁", + "\\blacktriangleleft": "◂", + "\\triangleleft": "◃", + "\\blackpointerleft": "◄", + "\\whitepointerleft": "◅", + "\\ding{117}": "◆", + "\\Diamondblack": "◆", + "\\Diamond": "◇", + "\\blackinwhitediamond": "◈", + "\\fisheye": "◉", + "\\lozenge": "◊", + "\\dottedcircle": "◌", + "\\circlevertfill": "◍", + "\\bullseye": "◎", + "\\ding{108}": "●", + "\\CIRCLE": "●", + "\\Elzcirfl": "◐", + "\\Elzcirfr": "◑", + "\\Elzcirfb": "◒", + "\\circletophalfblack": "◓", + "\\circleurquadblack": "◔", + "\\blackcircleulquadwhite": "◕", + "\\LEFTCIRCLE": "◖", + "\\ding{119}": "◗", + "\\RIGHTCIRCLE": "◗", + "\\Elzrvbull": "◘", + "\\inversewhitecircle": "◙", + "\\invwhiteupperhalfcircle": "◚", + "\\invwhitelowerhalfcircle": "◛", + "\\ularc": "◜", + "\\urarc": "◝", + "\\lrarc": "◞", + "\\llarc": "◟", + "\\topsemicircle": "◠", + "\\botsemicircle": "◡", + "\\lrblacktriangle": "◢", + "\\llblacktriangle": "◣", + "\\ulblacktriangle": "◤", + "\\urblacktriangle": "◥", + "\\smwhtcircle": "◦", + "\\Elzsqfl": "◧", + "\\Elzsqfr": "◨", + "\\squareulblack": "◩", + "\\Elzsqfse": "◪", + "\\boxbar": "◫", + "\\trianglecdot": "◬", + "\\triangleleftblack": "◭", + "\\trianglerightblack": "◮", + "\\bigcirc": "◯", + "\\squareulquad": "◰", + "\\squarellquad": "◱", + "\\squarelrquad": "◲", + "\\squareurquad": "◳", + "\\circleulquad": "◴", + "\\circlellquad": "◵", + "\\circlelrquad": "◶", + "\\circleurquad": "◷", + "\\ultriangle": "◸", + "\\urtriangle": "◹", + "\\lltriangle": "◺", + "\\mdsmwhtsquare": "◽", + "\\mdsmblksquare": "◾", + "\\lrtriangle": "◿", + "\\ding{72}": "★", + "\\bigstar": "★", + "\\ding{73}": "☆", + "\\bigwhitestar": "☆", + "\\Sun": "☉", + "\\ding{37}": "☎", + "\\Square": "☐", + "\\CheckedBox": "☑", + "\\XBox": "☒", + "\\steaming": "☕", + "\\ding{42}": "☛", + "\\ding{43}": "☞", + "\\pointright": "☞", + "\\skull": "☠", + "\\danger": "☡", + "\\radiation": "☢", + "\\biohazard": "☣", + "\\yinyang": "☯", + "\\frownie": "☹", + "\\smiley": "☺", + "\\blacksmiley": "☻", + "\\sun": "☼", + "\\rightmoon": "☽", + "\\leftmoon": "☾", + "\\mercury": "☿", + "\\venus": "♀", + "\\female": "♀", + "\\earth": "♁", + "\\male": "♂", + "\\jupiter": "♃", + "\\saturn": "♄", + "\\uranus": "♅", + "\\neptune": "♆", + "\\pluto": "♇", + "\\aries": "♈", + "\\taurus": "♉", + "\\gemini": "♊", + "\\cancer": "♋", + "\\leo": "♌", + "\\virgo": "♍", + "\\libra": "♎", + "\\scorpio": "♏", + "\\sagittarius": "♐", + "\\capricornus": "♑", + "\\aquarius": "♒", + "\\pisces": "♓", + "\\ding{171}": "♠", + "\\spadesuit": "♠", + "\\heartsuit": "♡", + "\\ding{168}": "♣", + "\\clubsuit": "♣", + "\\varspadesuit": "♤", + "\\ding{170}": "♥", + "\\varheartsuit": "♥", + "\\ding{169}": "♦", + "\\vardiamondsuit": "♦", + "\\varclubsuit": "♧", + "\\quarternote": "♩", + "\\eighthnote": "♪", + "\\twonotes": "♫", + "\\sixteenthnote": "♬", + "\\flat": "♭", + "\\natural": "♮", + "\\sharp": "♯", + "\\recycle": "♻", + "\\acidfree": "♾", + "\\dicei": "⚀", + "\\diceii": "⚁", + "\\diceiii": "⚂", + "\\diceiv": "⚃", + "\\dicev": "⚄", + "\\dicevi": "⚅", + "\\circledrightdot": "⚆", + "\\circledtwodots": "⚇", + "\\blackcircledrightdot": "⚈", + "\\blackcircledtwodots": "⚉", + "\\anchor": "⚓", + "\\swords": "⚔", + "\\warning": "⚠", + "\\Hermaphrodite": "⚥", + "\\medcirc": "⚪", + "\\medbullet": "⚫", + "\\mdsmwhtcircle": "⚬", + "\\neuter": "⚲", + "\\ding{33}": "✁", + "\\ding{34}": "✂", + "\\ding{35}": "✃", + "\\ding{36}": "✄", + "\\ding{38}": "✆", + "\\ding{39}": "✇", + "\\ding{40}": "✈", + "\\ding{41}": "✉", + "\\ding{44}": "✌", + "\\ding{45}": "✍", + "\\ding{46}": "✎", + "\\pencil": "✎", + "\\ding{47}": "✏", + "\\ding{48}": "✐", + "\\ding{49}": "✑", + "\\ding{50}": "✒", + "\\ding{51}": "✓", + "\\checkmark": "✓", + "\\ding{52}": "✔", + "\\ding{53}": "✕", + "\\ding{54}": "✖", + "\\ding{55}": "✗", + "\\ballotx": "✗", + "\\ding{56}": "✘", + "\\ding{57}": "✙", + "\\ding{58}": "✚", + "\\ding{59}": "✛", + "\\ding{60}": "✜", + "\\ding{61}": "✝", + "\\ding{62}": "✞", + "\\ding{63}": "✟", + "\\ding{64}": "✠", + "\\maltese": "✠", + "\\ding{65}": "✡", + "\\ding{66}": "✢", + "\\ding{67}": "✣", + "\\ding{68}": "✤", + "\\ding{69}": "✥", + "\\ding{70}": "✦", + "\\ding{71}": "✧", + "\\ding{74}": "✪", + "\\circledstar": "✪", + "\\ding{75}": "✫", + "\\ding{76}": "✬", + "\\ding{77}": "✭", + "\\ding{78}": "✮", + "\\ding{79}": "✯", + "\\ding{80}": "✰", + "\\ding{81}": "✱", + "\\ding{82}": "✲", + "\\ding{83}": "✳", + "\\ding{84}": "✴", + "\\ding{85}": "✵", + "\\ding{86}": "✶", + "\\varstar": "✶", + "\\ding{87}": "✷", + "\\ding{88}": "✸", + "\\ding{89}": "✹", + "\\ding{90}": "✺", + "\\ding{91}": "✻", + "\\ding{92}": "✼", + "\\ding{93}": "✽", + "\\dingasterisk": "✽", + "\\ding{94}": "✾", + "\\ding{95}": "✿", + "\\ding{96}": "❀", + "\\ding{97}": "❁", + "\\ding{98}": "❂", + "\\ding{99}": "❃", + "\\ding{100}": "❄", + "\\ding{101}": "❅", + "\\ding{102}": "❆", + "\\ding{103}": "❇", + "\\ding{104}": "❈", + "\\ding{105}": "❉", + "\\ding{106}": "❊", + "\\ding{107}": "❋", + "\\ding{109}": "❍", + "\\ding{111}": "❏", + "\\ding{112}": "❐", + "\\ding{113}": "❑", + "\\ding{114}": "❒", + "\\ding{118}": "❖", + "\\ding{120}": "❘", + "\\ding{121}": "❙", + "\\ding{122}": "❚", + "\\ding{123}": "❛", + "\\ding{124}": "❜", + "\\ding{125}": "❝", + "\\ding{126}": "❞", + "\\ding{161}": "❡", + "\\ding{162}": "❢", + "\\ding{163}": "❣", + "\\ding{164}": "❤", + "\\ding{165}": "❥", + "\\ding{166}": "❦", + "\\ding{167}": "❧", + "\\ding{182}": "❶", + "\\ding{183}": "❷", + "\\ding{184}": "❸", + "\\ding{185}": "❹", + "\\ding{186}": "❺", + "\\ding{187}": "❻", + "\\ding{188}": "❼", + "\\ding{189}": "❽", + "\\ding{190}": "❾", + "\\ding{191}": "❿", + "\\ding{192}": "➀", + "\\ding{193}": "➁", + "\\ding{194}": "➂", + "\\ding{195}": "➃", + "\\ding{196}": "➄", + "\\ding{197}": "➅", + "\\ding{198}": "➆", + "\\ding{199}": "➇", + "\\ding{200}": "➈", + "\\ding{201}": "➉", + "\\ding{202}": "➊", + "\\ding{203}": "➋", + "\\ding{204}": "➌", + "\\ding{205}": "➍", + "\\ding{206}": "➎", + "\\ding{207}": "➏", + "\\ding{208}": "➐", + "\\ding{209}": "➑", + "\\ding{210}": "➒", + "\\ding{211}": "➓", + "\\ding{212}": "➔", + "\\ding{216}": "➘", + "\\ding{217}": "➙", + "\\ding{218}": "➚", + "\\ding{219}": "➛", + "\\draftingarrow": "➛", + "\\ding{220}": "➜", + "\\ding{221}": "➝", + "\\ding{222}": "➞", + "\\ding{223}": "➟", + "\\ding{224}": "➠", + "\\ding{225}": "➡", + "\\ding{226}": "➢", + "\\arrowbullet": "➢", + "\\ding{227}": "➣", + "\\ding{228}": "➤", + "\\ding{229}": "➥", + "\\ding{230}": "➦", + "\\ding{231}": "➧", + "\\ding{232}": "➨", + "\\ding{233}": "➩", + "\\ding{234}": "➪", + "\\ding{235}": "➫", + "\\ding{236}": "➬", + "\\ding{237}": "➭", + "\\ding{238}": "➮", + "\\ding{239}": "➯", + "\\ding{241}": "➱", + "\\ding{242}": "➲", + "\\ding{243}": "➳", + "\\ding{244}": "➴", + "\\ding{245}": "➵", + "\\ding{246}": "➶", + "\\ding{247}": "➷", + "\\ding{248}": "➸", + "\\ding{249}": "➹", + "\\ding{250}": "➺", + "\\ding{251}": "➻", + "\\ding{252}": "➼", + "\\ding{253}": "➽", + "\\ding{254}": "➾", + "\\threedangle": "⟀", + "\\whiteinwhitetriangle": "⟁", + "\\perp": "⟂", + "\\subsetcirc": "⟃", + "\\supsetcirc": "⟄", + "\\Lbag": "⟅", + "\\Rbag": "⟆", + "\\veedot": "⟇", + "\\bsolhsub": "⟈", + "\\suphsol": "⟉", + "\\longdivision": "⟌", + "\\Diamonddot": "⟐", + "\\wedgedot": "⟑", + "\\upin": "⟒", + "\\pullback": "⟓", + "\\pushout": "⟔", + "\\leftouterjoin": "⟕", + "\\rightouterjoin": "⟖", + "\\fullouterjoin": "⟗", + "\\bigbot": "⟘", + "\\bigtop": "⟙", + "\\DashVDash": "⟚", + "\\dashVdash": "⟛", + "\\multimapinv": "⟜", + "\\vlongdash": "⟝", + "\\longdashv": "⟞", + "\\cirbot": "⟟", + "\\lozengeminus": "⟠", + "\\concavediamond": "⟡", + "\\concavediamondtickleft": "⟢", + "\\concavediamondtickright": "⟣", + "\\whitesquaretickleft": "⟤", + "\\whitesquaretickright": "⟥", + "\\llbracket": "⟦", + "\\rrbracket": "⟧", + "\\langle": "⟨", + "\\rangle": "⟩", + "\\lang": "⟪", + "\\rang": "⟫", + "\\Lbrbrak": "⟬", + "\\Rbrbrak": "⟭", + "\\lgroup": "⟮", + "\\rgroup": "⟯", + "\\UUparrow": "⟰", + "\\DDownarrow": "⟱", + "\\acwgapcirclearrow": "⟲", + "\\cwgapcirclearrow": "⟳", + "\\rightarrowonoplus": "⟴", + "\\longleftarrow": "⟵", + "\\longrightarrow": "⟶", + "\\longleftrightarrow": "⟷", + "\\Longleftarrow": "⟸", + "\\Longrightarrow": "⟹", + "\\Longleftrightarrow": "⟺", + "\\longmapsfrom": "⟻", + "\\longmapsto": "⟼", + "\\Longmapsfrom": "⟽", + "\\Longmapsto": "⟾", + "\\sim\\joinrel\\leadsto": "⟿", + "\\psur": "⤀", + "\\nVtwoheadrightarrow": "⤁", + "\\nvLeftarrow": "⤂", + "\\nvRightarrow": "⤃", + "\\nvLeftrightarrow": "⤄", + "\\Mapsfrom": "⤆", + "\\Mapsto": "⤇", + "\\downarrowbarred": "⤈", + "\\uparrowbarred": "⤉", + "\\Uuparrow": "⤊", + "\\Ddownarrow": "⤋", + "\\leftbkarrow": "⤌", + "\\rightbkarrow": "⤍", + "\\leftdbkarrow": "⤎", + "\\dbkarow": "⤏", + "\\drbkarow": "⤐", + "\\rightdotarrow": "⤑", + "\\UpArrowBar": "⤒", + "\\DownArrowBar": "⤓", + "\\pinj": "⤔", + "\\finj": "⤕", + "\\bij": "⤖", + "\\nvtwoheadrightarrowtail": "⤗", + "\\nVtwoheadrightarrowtail": "⤘", + "\\lefttail": "⤙", + "\\righttail": "⤚", + "\\leftdbltail": "⤛", + "\\rightdbltail": "⤜", + "\\diamondleftarrow": "⤝", + "\\rightarrowdiamond": "⤞", + "\\diamondleftarrowbar": "⤟", + "\\barrightarrowdiamond": "⤠", + "\\nwsearrow": "⤡", + "\\neswarrow": "⤢", + "\\rdiagovfdiag": "⤫", + "\\fdiagovrdiag": "⤬", + "\\seovnearrow": "⤭", + "\\neovsearrow": "⤮", + "\\fdiagovnearrow": "⤯", + "\\rdiagovsearrow": "⤰", + "\\neovnwarrow": "⤱", + "\\nwovnearrow": "⤲", + "\\uprightcurvearrow": "⤴", + "\\downrightcurvedarrow": "⤵", + "\\cwrightarcarrow": "⤸", + "\\acwleftarcarrow": "⤹", + "\\acwoverarcarrow": "⤺", + "\\acwunderarcarrow": "⤻", + "\\curvearrowrightminus": "⤼", + "\\curvearrowleftplus": "⤽", + "\\cwundercurvearrow": "⤾", + "\\ccwundercurvearrow": "⤿", + "\\Elolarr": "⥀", + "\\Elorarr": "⥁", + "\\ElzRlarr": "⥂", + "\\leftarrowshortrightarrow": "⥃", + "\\ElzrLarr": "⥄", + "\\rightarrowplus": "⥅", + "\\leftarrowplus": "⥆", + "\\Elzrarrx": "⥇", + "\\leftrightarrowcircle": "⥈", + "\\twoheaduparrowcircle": "⥉", + "\\leftrightharpoon": "⥊", + "\\rightleftharpoon": "⥋", + "\\updownharpoonrightleft": "⥌", + "\\updownharpoonleftright": "⥍", + "\\LeftRightVector": "⥎", + "\\RightUpDownVector": "⥏", + "\\DownLeftRightVector": "⥐", + "\\LeftUpDownVector": "⥑", + "\\LeftVectorBar": "⥒", + "\\RightVectorBar": "⥓", + "\\RightUpVectorBar": "⥔", + "\\RightDownVectorBar": "⥕", + "\\DownLeftVectorBar": "⥖", + "\\DownRightVectorBar": "⥗", + "\\LeftUpVectorBar": "⥘", + "\\LeftDownVectorBar": "⥙", + "\\LeftTeeVector": "⥚", + "\\RightTeeVector": "⥛", + "\\RightUpTeeVector": "⥜", + "\\RightDownTeeVector": "⥝", + "\\DownLeftTeeVector": "⥞", + "\\DownRightTeeVector": "⥟", + "\\LeftUpTeeVector": "⥠", + "\\LeftDownTeeVector": "⥡", + "\\leftleftharpoons": "⥢", + "\\upupharpoons": "⥣", + "\\rightrightharpoons": "⥤", + "\\downdownharpoons": "⥥", + "\\leftrightharpoonsup": "⥦", + "\\leftrightharpoonsdown": "⥧", + "\\rightleftharpoonsup": "⥨", + "\\rightleftharpoonsdown": "⥩", + "\\leftbarharpoon": "⥪", + "\\barleftharpoon": "⥫", + "\\rightbarharpoon": "⥬", + "\\barrightharpoon": "⥭", + "\\UpEquilibrium": "⥮", + "\\ReverseUpEquilibrium": "⥯", + "\\RoundImplies": "⥰", + "\\equalrightarrow": "⥱", + "\\similarrightarrow": "⥲", + "\\leftarrowsimilar": "⥳", + "\\rightarrowsimilar": "⥴", + "\\rightarrowapprox": "⥵", + "\\ltlarr": "⥶", + "\\leftarrowless": "⥷", + "\\gtrarr": "⥸", + "\\subrarr": "⥹", + "\\leftarrowsubset": "⥺", + "\\suplarr": "⥻", + "\\upfishtail": "⥾", + "\\downfishtail": "⥿", + "\\Elztfnc": "⦀", + "\\spot": "⦁", + "\\typecolon": "⦂", + "\\lBrace": "⦃", + "\\rBrace": "⦄", + "\\Elroang": "⦆", + "\\limg": "⦇", + "\\rimg": "⦈", + "\\lblot": "⦉", + "\\rblot": "⦊", + "\\lbrackubar": "⦋", + "\\rbrackubar": "⦌", + "\\lbrackultick": "⦍", + "\\rbracklrtick": "⦎", + "\\lbracklltick": "⦏", + "\\rbrackurtick": "⦐", + "\\langledot": "⦑", + "\\rangledot": "⦒", + "<\\kern-0.58em(": "⦓", + "\\Lparengtr": "⦕", + "\\Rparenless": "⦖", + "\\lblkbrbrak": "⦗", + "\\rblkbrbrak": "⦘", + "\\Elzddfnc": "⦙", + "\\vzigzag": "⦚", + "\\measuredangleleft": "⦛", + "\\Angle": "⦜", + "\\rightanglemdot": "⦝", + "\\angles": "⦞", + "\\angdnr": "⦟", + "\\Elzlpargt": "⦠", + "\\sphericalangleup": "⦡", + "\\turnangle": "⦢", + "\\revangle": "⦣", + "\\angleubar": "⦤", + "\\revangleubar": "⦥", + "\\wideangledown": "⦦", + "\\wideangleup": "⦧", + "\\measanglerutone": "⦨", + "\\measanglelutonw": "⦩", + "\\measanglerdtose": "⦪", + "\\measangleldtosw": "⦫", + "\\measangleurtone": "⦬", + "\\measangleultonw": "⦭", + "\\measangledrtose": "⦮", + "\\measangledltosw": "⦯", + "\\revemptyset": "⦰", + "\\emptysetobar": "⦱", + "\\emptysetocirc": "⦲", + "\\emptysetoarr": "⦳", + "\\emptysetoarrl": "⦴", + "\\circledparallel": "⦷", + "\\circledbslash": "⦸", + "\\operp": "⦹", + "\\obot": "⦺", + "\\olcross": "⦻", + "\\odotslashdot": "⦼", + "\\uparrowoncircle": "⦽", + "\\circledwhitebullet": "⦾", + "\\circledbullet": "⦿", + "\\circledless": "⧀", + "\\circledgtr": "⧁", + "\\cirscir": "⧂", + "\\cirE": "⧃", + "\\boxslash": "⧄", + "\\boxbslash": "⧅", + "\\boxast": "⧆", + "\\boxcircle": "⧇", + "\\boxbox": "⧈", + "\\boxonbox": "⧉", + "\\ElzLap": "⧊", + "\\Elzdefas": "⧋", + "\\triangles": "⧌", + "\\triangleserifs": "⧍", + "\\rtriltri": "⧎", + "\\LeftTriangleBar": "⧏", + "\\NotLeftTriangleBar": "⧏̸", + "\\RightTriangleBar": "⧐", + "\\NotRightTriangleBar": "⧐̸", + "\\lfbowtie": "⧑", + "\\rfbowtie": "⧒", + "\\fbowtie": "⧓", + "\\lftimes": "⧔", + "\\rftimes": "⧕", + "\\hourglass": "⧖", + "\\blackhourglass": "⧗", + "\\lvzigzag": "⧘", + "\\rvzigzag": "⧙", + "\\Lvzigzag": "⧚", + "\\Rvzigzag": "⧛", + "\\tieinfty": "⧝", + "\\nvinfty": "⧞", + "\\multimapboth": "⧟", + "\\laplac": "⧠", + "\\lrtriangleeq": "⧡", + "\\shuffle": "⧢", + "\\eparsl": "⧣", + "\\smeparsl": "⧤", + "\\eqvparsl": "⧥", + "\\gleichstark": "⧦", + "\\thermod": "⧧", + "\\downtriangleleftblack": "⧨", + "\\downtrianglerightblack": "⧩", + "\\blackdiamonddownarrow": "⧪", + "\\blacklozenge": "⧫", + "\\circledownarrow": "⧬", + "\\blackcircledownarrow": "⧭", + "\\errbarsquare": "⧮", + "\\errbarblacksquare": "⧯", + "\\errbardiamond": "⧰", + "\\errbarblackdiamond": "⧱", + "\\errbarcircle": "⧲", + "\\errbarblackcircle": "⧳", + "\\RuleDelayed": "⧴", + "\\dsol": "⧶", + "\\rsolbar": "⧷", + "\\xsol": "⧸", + "\\zhide": "⧹", + "\\doubleplus": "⧺", + "\\tripleplus": "⧻", + "\\lcurvyangle": "⧼", + "\\rcurvyangle": "⧽", + "\\tplus": "⧾", + "\\tminus": "⧿", + "\\bigodot": "⨀", + "\\bigoplus": "⨁", + "\\bigotimes": "⨂", + "\\bigcupdot": "⨃", + "\\Elxuplus": "⨄", + "\\ElzThr": "⨅", + "\\Elxsqcup": "⨆", + "\\ElzInf": "⨇", + "\\ElzSup": "⨈", + "\\varprod": "⨉", + "\\modtwosum": "⨊", + "\\sumint": "⨋", + "\\iiiint": "⨌", + "\\ElzCint": "⨍", + "\\intBar": "⨎", + "\\clockoint": "⨏", + "\\awint": "⨑", + "\\rppolint": "⨒", + "\\scpolint": "⨓", + "\\npolint": "⨔", + "\\pointint": "⨕", + "\\sqrint": "⨖", + "\\intlarhk": "⨗", + "\\intx": "⨘", + "\\intcap": "⨙", + "\\intcup": "⨚", + "\\upint": "⨛", + "\\lowint": "⨜", + "\\Join": "⨝", + "\\bigtriangleleft": "⨞", + "\\zcmp": "⨟", + "\\zpipe": "⨠", + "\\zproject": "⨡", + "\\ringplus": "⨢", + "\\plushat": "⨣", + "\\simplus": "⨤", + "\\plussim": "⨦", + "\\plussubtwo": "⨧", + "\\plustrif": "⨨", + "\\commaminus": "⨩", + "\\minusfdots": "⨫", + "\\minusrdots": "⨬", + "\\ElzTimes": "⨯", + "\\dottimes": "⨰", + "\\timesbar": "⨱", + "\\btimes": "⨲", + "\\smashtimes": "⨳", + "\\otimeshat": "⨶", + "\\Otimes": "⨷", + "\\odiv": "⨸", + "\\triangleplus": "⨹", + "\\triangleminus": "⨺", + "\\triangletimes": "⨻", + "\\intprodr": "⨽", + "\\fcmp": "⨾", + "\\amalg": "⨿", + "\\capdot": "⩀", + "\\uminus": "⩁", + "\\barcup": "⩂", + "\\barcap": "⩃", + "\\capwedge": "⩄", + "\\cupvee": "⩅", + "\\cupovercap": "⩆", + "\\capovercup": "⩇", + "\\cupbarcap": "⩈", + "\\capbarcup": "⩉", + "\\twocups": "⩊", + "\\twocaps": "⩋", + "\\closedvarcup": "⩌", + "\\closedvarcap": "⩍", + "\\Sqcap": "⩎", + "\\Sqcup": "⩏", + "\\closedvarcupsmashprod": "⩐", + "\\wedgeodot": "⩑", + "\\veeodot": "⩒", + "\\ElzAnd": "⩓", + "\\ElzOr": "⩔", + "\\ElOr": "⩖", + "\\bigslopedvee": "⩗", + "\\bigslopedwedge": "⩘", + "\\veeonwedge": "⩙", + "\\wedgemidvert": "⩚", + "\\veemidvert": "⩛", + "\\midbarwedge": "⩜", + "\\midbarvee": "⩝", + "\\Elzminhat": "⩟", + "\\wedgedoublebar": "⩠", + "\\varveebar": "⩡", + "\\doublebarvee": "⩢", + "\\dsub": "⩤", + "\\rsub": "⩥", + "\\eqdot": "⩦", + "\\dotequiv": "⩧", + "\\equivVert": "⩨", + "\\equivVvert": "⩩", + "\\dotsim": "⩪", + "\\simrdots": "⩫", + "\\simminussim": "⩬", + "\\congdot": "⩭", + "\\stackrel{*}{=}": "⩮", + "\\hatapprox": "⩯", + "\\approxeqq": "⩰", + "\\eqqplus": "⩱", + "\\pluseqq": "⩲", + "\\eqqsim": "⩳", + "\\Coloneqq": "⩴", + "\\Equal": "⩵", + "\\Same": "⩶", + "\\ddotseq": "⩷", + "\\equivDD": "⩸", + "\\ltcir": "⩹", + "\\gtcir": "⩺", + "\\ltquest": "⩻", + "\\gtquest": "⩼", + "\\leqslant": "⩽", + "\\nleqslant": "⩽̸", + "\\geqslant": "⩾", + "\\ngeqslant": "⩾̸", + "\\lesdot": "⩿", + "\\gesdot": "⪀", + "\\lesdoto": "⪁", + "\\gesdoto": "⪂", + "\\lesdotor": "⪃", + "\\gesdotol": "⪄", + "\\lessapprox": "⪅", + "\\gtrapprox": "⪆", + "\\lneq": "⪇", + "\\gneq": "⪈", + "\\lnapprox": "⪉", + "\\gnapprox": "⪊", + "\\lesseqqgtr": "⪋", + "\\gtreqqless": "⪌", + "\\lsime": "⪍", + "\\gsime": "⪎", + "\\lsimg": "⪏", + "\\gsiml": "⪐", + "\\lgE": "⪑", + "\\glE": "⪒", + "\\lesges": "⪓", + "\\gesles": "⪔", + "\\eqslantless": "⪕", + "\\eqslantgtr": "⪖", + "\\elsdot": "⪗", + "\\egsdot": "⪘", + "\\eqqless": "⪙", + "\\eqqgtr": "⪚", + "\\eqqslantless": "⪛", + "\\eqqslantgtr": "⪜", + "\\Pisymbol{ppi020}{117}": "⪝", + "\\Pisymbol{ppi020}{105}": "⪞", + "\\simlE": "⪟", + "\\simgE": "⪠", + "\\NestedLessLess": "⪡", + "\\NotNestedLessLess": "⪡̸", + "\\NestedGreaterGreater": "⪢", + "\\NotNestedGreaterGreater": "⪢̸", + "\\partialmeetcontraction": "⪣", + "\\glj": "⪤", + "\\gla": "⪥", + "\\leftslice": "⪦", + "\\rightslice": "⪧", + "\\lescc": "⪨", + "\\gescc": "⪩", + "\\smt": "⪪", + "\\lat": "⪫", + "\\smte": "⪬", + "\\late": "⪭", + "\\bumpeqq": "⪮", + "\\preceq": "⪯", + "\\not\\preceq": "⪯̸", + "\\succeq": "⪰", + "\\not\\succeq": "⪰̸", + "\\precneq": "⪱", + "\\succneq": "⪲", + "\\preceqq": "⪳", + "\\succeqq": "⪴", + "\\precneqq": "⪵", + "\\succneqq": "⪶", + "\\precapprox": "⪷", + "\\succapprox": "⪸", + "\\precnapprox": "⪹", + "\\succnapprox": "⪺", + "\\llcurly": "⪻", + "\\ggcurly": "⪼", + "\\subsetdot": "⪽", + "\\supsetdot": "⪾", + "\\subsetplus": "⪿", + "\\supsetplus": "⫀", + "\\submult": "⫁", + "\\supmult": "⫂", + "\\subedot": "⫃", + "\\supedot": "⫄", + "\\subseteqq": "⫅", + "\\nsubseteqq": "⫅̸", + "\\supseteqq": "⫆", + "\\nsupseteqq": "⫆̸", + "\\subsim": "⫇", + "\\supsim": "⫈", + "\\subsetapprox": "⫉", + "\\supsetapprox": "⫊", + "\\subsetneqq": "⫋", + "\\supsetneqq": "⫌", + "\\lsqhook": "⫍", + "\\rsqhook": "⫎", + "\\csub": "⫏", + "\\csup": "⫐", + "\\csube": "⫑", + "\\csupe": "⫒", + "\\subsup": "⫓", + "\\supsub": "⫔", + "\\subsub": "⫕", + "\\supsup": "⫖", + "\\suphsub": "⫗", + "\\supdsub": "⫘", + "\\forkv": "⫙", + "\\topfork": "⫚", + "\\mlcp": "⫛", + "\\forks": "⫝̸", + "\\forksnot": "⫝", + "\\shortlefttack": "⫞", + "\\shortdowntack": "⫟", + "\\shortuptack": "⫠", + "\\perps": "⫡", + "\\vDdash": "⫢", + "\\dashV": "⫣", + "\\Dashv": "⫤", + "\\DashV": "⫥", + "\\varVdash": "⫦", + "\\Barv": "⫧", + "\\vBar": "⫨", + "\\vBarv": "⫩", + "\\Top": "⫪", + "\\Not": "⫬", + "\\bNot": "⫭", + "\\revnmid": "⫮", + "\\cirmid": "⫯", + "\\midcir": "⫰", + "\\topcir": "⫱", + "\\nhpar": "⫲", + "\\parsim": "⫳", + "\\interleave": "⫴", + "\\nhVvert": "⫵", + "\\Elztdcol": "⫶", + "\\lllnest": "⫷", + "\\gggnest": "⫸", + "\\leqqslant": "⫹", + "\\geqqslant": "⫺", + "\\trslash": "⫻", + "\\biginterleave": "⫼", + "{{/}\\!\\!{/}}": "⫽", + "{\\rlap{\\textbackslash}{{/}\\!\\!{/}}}": "⫽⃥", + "\\talloblong": "⫾", + "\\bigtalloblong": "⫿", + "\\squaretopblack": "⬒", + "\\squarebotblack": "⬓", + "\\squareurblack": "⬔", + "\\squarellblack": "⬕", + "\\diamondleftblack": "⬖", + "\\diamondrightblack": "⬗", + "\\diamondtopblack": "⬘", + "\\diamondbotblack": "⬙", + "\\dottedsquare": "⬚", + "\\blacksquare": "⬛", + "\\vysmblksquare": "⬝", + "\\vysmwhtsquare": "⬞", + "\\pentagonblack": "⬟", + "\\pentagon": "⬠", + "\\varhexagon": "⬡", + "\\varhexagonblack": "⬢", + "\\hexagonblack": "⬣", + "\\lgblkcircle": "⬤", + "\\mdblkdiamond": "⬥", + "\\mdwhtdiamond": "⬦", + "\\mdblklozenge": "⬧", + "\\mdwhtlozenge": "⬨", + "\\smblkdiamond": "⬩", + "\\smblklozenge": "⬪", + "\\smwhtlozenge": "⬫", + "\\blkhorzoval": "⬬", + "\\whthorzoval": "⬭", + "\\blkvertoval": "⬮", + "\\whtvertoval": "⬯", + "\\circleonleftarrow": "⬰", + "\\leftthreearrows": "⬱", + "\\leftarrowonoplus": "⬲", + "\\longleftsquigarrow": "⬳", + "\\nvtwoheadleftarrow": "⬴", + "\\nVtwoheadleftarrow": "⬵", + "\\twoheadmapsfrom": "⬶", + "\\twoheadleftdbkarrow": "⬷", + "\\leftdotarrow": "⬸", + "\\nvleftarrowtail": "⬹", + "\\nVleftarrowtail": "⬺", + "\\twoheadleftarrowtail": "⬻", + "\\nvtwoheadleftarrowtail": "⬼", + "\\nVtwoheadleftarrowtail": "⬽", + "\\leftarrowx": "⬾", + "\\leftcurvedarrow": "⬿", + "\\equalleftarrow": "⭀", + "\\bsimilarleftarrow": "⭁", + "\\leftarrowbackapprox": "⭂", + "\\rightarrowgtr": "⭃", + "\\rightarrowsupset": "⭄", + "\\LLeftarrow": "⭅", + "\\RRightarrow": "⭆", + "\\bsimilarrightarrow": "⭇", + "\\rightarrowbackapprox": "⭈", + "\\similarleftarrow": "⭉", + "\\leftarrowapprox": "⭊", + "\\leftarrowbsimilar": "⭋", + "\\rightarrowbsimilar": "⭌", + "\\medwhitestar": "⭐", + "\\medblackstar": "⭑", + "\\smwhitestar": "⭒", + "\\rightpentagonblack": "⭓", + "\\rightpentagon": "⭔", + "\\postalmark": "〒", + "\\lbrbrak": "〔", + "\\rbrbrak": "〕", + "\\openbracketleft": "〚", + "\\openbracketright": "〛", + "\\hzigzag": "〰", + "\\dbend": "�", + "\\mathbf{A}": "𝐀", + "\\mathbf{B}": "𝐁", + "\\mathbf{C}": "𝐂", + "\\mathbf{D}": "𝐃", + "\\mathbf{E}": "𝐄", + "\\mathbf{F}": "𝐅", + "\\mathbf{G}": "𝐆", + "\\mathbf{H}": "𝐇", + "\\mathbf{I}": "𝐈", + "\\mathbf{J}": "𝐉", + "\\mathbf{K}": "𝐊", + "\\mathbf{L}": "𝐋", + "\\mathbf{M}": "𝐌", + "\\mathbf{N}": "𝐍", + "\\mathbf{O}": "𝐎", + "\\mathbf{P}": "𝐏", + "\\mathbf{Q}": "𝐐", + "\\mathbf{R}": "𝐑", + "\\mathbf{S}": "𝐒", + "\\mathbf{T}": "𝐓", + "\\mathbf{U}": "𝐔", + "\\mathbf{V}": "𝐕", + "\\mathbf{W}": "𝐖", + "\\mathbf{X}": "𝐗", + "\\mathbf{Y}": "𝐘", + "\\mathbf{Z}": "𝐙", + "\\mathbf{a}": "𝐚", + "\\mathbf{b}": "𝐛", + "\\mathbf{c}": "𝐜", + "\\mathbf{d}": "𝐝", + "\\mathbf{e}": "𝐞", + "\\mathbf{f}": "𝐟", + "\\mathbf{g}": "𝐠", + "\\mathbf{h}": "𝐡", + "\\mathbf{i}": "𝐢", + "\\mathbf{j}": "𝐣", + "\\mathbf{k}": "𝐤", + "\\mathbf{l}": "𝐥", + "\\mathbf{m}": "𝐦", + "\\mathbf{n}": "𝐧", + "\\mathbf{o}": "𝐨", + "\\mathbf{p}": "𝐩", + "\\mathbf{q}": "𝐪", + "\\mathbf{r}": "𝐫", + "\\mathbf{s}": "𝐬", + "\\mathbf{t}": "𝐭", + "\\mathbf{u}": "𝐮", + "\\mathbf{v}": "𝐯", + "\\mathbf{w}": "𝐰", + "\\mathbf{x}": "𝐱", + "\\mathbf{y}": "𝐲", + "\\mathbf{z}": "𝐳", + "\\mathsl{A}": "𝐴", + "\\mathsl{B}": "𝐵", + "\\mathsl{C}": "𝐶", + "\\mathsl{D}": "𝐷", + "\\mathsl{E}": "𝐸", + "\\mathsl{F}": "𝐹", + "\\mathsl{G}": "𝐺", + "\\mathsl{H}": "𝐻", + "\\mathsl{I}": "𝐼", + "\\mathsl{J}": "𝐽", + "\\mathsl{K}": "𝐾", + "\\mathsl{L}": "𝐿", + "\\mathsl{M}": "𝑀", + "\\mathsl{N}": "𝑁", + "\\mathsl{O}": "𝑂", + "\\mathsl{P}": "𝑃", + "\\mathsl{Q}": "𝑄", + "\\mathsl{R}": "𝑅", + "\\mathsl{S}": "𝑆", + "\\mathsl{T}": "𝑇", + "\\mathsl{U}": "𝑈", + "\\mathsl{V}": "𝑉", + "\\mathsl{W}": "𝑊", + "\\mathsl{X}": "𝑋", + "\\mathsl{Y}": "𝑌", + "\\mathsl{Z}": "𝑍", + "\\mathsl{a}": "𝑎", + "\\mathsl{b}": "𝑏", + "\\mathsl{c}": "𝑐", + "\\mathsl{d}": "𝑑", + "\\mathsl{e}": "𝑒", + "\\mathsl{f}": "𝑓", + "\\mathsl{g}": "𝑔", + "\\mathsl{i}": "𝑖", + "\\mathsl{j}": "𝑗", + "\\mathsl{k}": "𝑘", + "\\mathsl{l}": "𝑙", + "\\mathsl{m}": "𝑚", + "\\mathsl{n}": "𝑛", + "\\mathsl{o}": "𝑜", + "\\mathsl{p}": "𝑝", + "\\mathsl{q}": "𝑞", + "\\mathsl{r}": "𝑟", + "\\mathsl{s}": "𝑠", + "\\mathsl{t}": "𝑡", + "\\mathsl{u}": "𝑢", + "\\mathsl{v}": "𝑣", + "\\mathsl{w}": "𝑤", + "\\mathsl{x}": "𝑥", + "\\mathsl{y}": "𝑦", + "\\mathsl{z}": "𝑧", + "\\mathbit{A}": "𝑨", + "\\mathbit{B}": "𝑩", + "\\mathbit{C}": "𝑪", + "\\mathbit{D}": "𝑫", + "\\mathbit{E}": "𝑬", + "\\mathbit{F}": "𝑭", + "\\mathbit{G}": "𝑮", + "\\mathbit{H}": "𝑯", + "\\mathbit{I}": "𝑰", + "\\mathbit{J}": "𝑱", + "\\mathbit{K}": "𝑲", + "\\mathbit{L}": "𝑳", + "\\mathbit{M}": "𝑴", + "\\mathbit{N}": "𝑵", + "\\mathbit{O}": "𝑶", + "\\mathbit{P}": "𝑷", + "\\mathbit{Q}": "𝑸", + "\\mathbit{R}": "𝑹", + "\\mathbit{S}": "𝑺", + "\\mathbit{T}": "𝑻", + "\\mathbit{U}": "𝑼", + "\\mathbit{V}": "𝑽", + "\\mathbit{W}": "𝑾", + "\\mathbit{X}": "𝑿", + "\\mathbit{Y}": "𝒀", + "\\mathbit{Z}": "𝒁", + "\\mathbit{a}": "𝒂", + "\\mathbit{b}": "𝒃", + "\\mathbit{c}": "𝒄", + "\\mathbit{d}": "𝒅", + "\\mathbit{e}": "𝒆", + "\\mathbit{f}": "𝒇", + "\\mathbit{g}": "𝒈", + "\\mathbit{h}": "𝒉", + "\\mathbit{i}": "𝒊", + "\\mathbit{j}": "𝒋", + "\\mathbit{k}": "𝒌", + "\\mathbit{l}": "𝒍", + "\\mathbit{m}": "𝒎", + "\\mathbit{n}": "𝒏", + "\\mathbit{o}": "𝒐", + "\\mathbit{p}": "𝒑", + "\\mathbit{q}": "𝒒", + "\\mathbit{r}": "𝒓", + "\\mathbit{s}": "𝒔", + "\\mathbit{t}": "𝒕", + "\\mathbit{u}": "𝒖", + "\\mathbit{v}": "𝒗", + "\\mathbit{w}": "𝒘", + "\\mathbit{x}": "𝒙", + "\\mathbit{y}": "𝒚", + "\\mathbit{z}": "𝒛", + "\\mathscr{A}": "𝒜", + "\\mathscr{C}": "𝒞", + "\\mathscr{D}": "𝒟", + "\\mathscr{G}": "𝒢", + "\\mathscr{J}": "𝒥", + "\\mathscr{K}": "𝒦", + "\\mathscr{N}": "𝒩", + "\\mathscr{O}": "𝒪", + "\\mathscr{P}": "𝒫", + "\\mathscr{Q}": "𝒬", + "\\mathscr{S}": "𝒮", + "\\mathscr{T}": "𝒯", + "\\mathscr{U}": "𝒰", + "\\mathscr{V}": "𝒱", + "\\mathscr{W}": "𝒲", + "\\mathscr{X}": "𝒳", + "\\mathscr{Y}": "𝒴", + "\\mathscr{Z}": "𝒵", + "\\mathscr{a}": "𝒶", + "\\mathscr{b}": "𝒷", + "\\mathscr{c}": "𝒸", + "\\mathscr{d}": "𝒹", + "\\mathscr{f}": "𝒻", + "\\mathscr{h}": "𝒽", + "\\mathscr{i}": "𝒾", + "\\mathscr{j}": "𝒿", + "\\mathscr{k}": "𝓀", + "\\mathscr{m}": "𝓂", + "\\mathscr{n}": "𝓃", + "\\mathscr{p}": "𝓅", + "\\mathscr{q}": "𝓆", + "\\mathscr{r}": "𝓇", + "\\mathscr{s}": "𝓈", + "\\mathscr{t}": "𝓉", + "\\mathscr{u}": "𝓊", + "\\mathscr{v}": "𝓋", + "\\mathscr{w}": "𝓌", + "\\mathscr{x}": "𝓍", + "\\mathscr{y}": "𝓎", + "\\mathscr{z}": "𝓏", + "\\mathmit{A}": "𝓐", + "\\mathmit{B}": "𝓑", + "\\mathmit{C}": "𝓒", + "\\mathmit{D}": "𝓓", + "\\mathmit{E}": "𝓔", + "\\mathmit{F}": "𝓕", + "\\mathmit{G}": "𝓖", + "\\mathmit{H}": "𝓗", + "\\mathmit{I}": "𝓘", + "\\mathmit{J}": "𝓙", + "\\mathmit{K}": "𝓚", + "\\mathmit{L}": "𝓛", + "\\mathmit{M}": "𝓜", + "\\mathmit{N}": "𝓝", + "\\mathmit{O}": "𝓞", + "\\mathmit{P}": "𝓟", + "\\mathmit{Q}": "𝓠", + "\\mathmit{R}": "𝓡", + "\\mathmit{S}": "𝓢", + "\\mathmit{T}": "𝓣", + "\\mathmit{U}": "𝓤", + "\\mathmit{V}": "𝓥", + "\\mathmit{W}": "𝓦", + "\\mathmit{X}": "𝓧", + "\\mathmit{Y}": "𝓨", + "\\mathmit{Z}": "𝓩", + "\\mathmit{a}": "𝓪", + "\\mathmit{b}": "𝓫", + "\\mathmit{c}": "𝓬", + "\\mathmit{d}": "𝓭", + "\\mathmit{e}": "𝓮", + "\\mathmit{f}": "𝓯", + "\\mathmit{g}": "𝓰", + "\\mathmit{h}": "𝓱", + "\\mathmit{i}": "𝓲", + "\\mathmit{j}": "𝓳", + "\\mathmit{k}": "𝓴", + "\\mathmit{l}": "𝓵", + "\\mathmit{m}": "𝓶", + "\\mathmit{n}": "𝓷", + "\\mathmit{o}": "𝓸", + "\\mathmit{p}": "𝓹", + "\\mathmit{q}": "𝓺", + "\\mathmit{r}": "𝓻", + "\\mathmit{s}": "𝓼", + "\\mathmit{t}": "𝓽", + "\\mathmit{u}": "𝓾", + "\\mathmit{v}": "𝓿", + "\\mathmit{w}": "𝔀", + "\\mathmit{x}": "𝔁", + "\\mathmit{y}": "𝔂", + "\\mathmit{z}": "𝔃", + "\\mathfrak{A}": "𝔄", + "\\mathfrak{B}": "𝔅", + "\\mathfrak{D}": "𝔇", + "\\mathfrak{E}": "𝔈", + "\\mathfrak{F}": "𝔉", + "\\mathfrak{G}": "𝔊", + "\\mathfrak{J}": "𝔍", + "\\mathfrak{K}": "𝔎", + "\\mathfrak{L}": "𝔏", + "\\mathfrak{M}": "𝔐", + "\\mathfrak{N}": "𝔑", + "\\mathfrak{O}": "𝔒", + "\\mathfrak{P}": "𝔓", + "\\mathfrak{Q}": "𝔔", + "\\mathfrak{S}": "𝔖", + "\\mathfrak{T}": "𝔗", + "\\mathfrak{U}": "𝔘", + "\\mathfrak{V}": "𝔙", + "\\mathfrak{W}": "𝔚", + "\\mathfrak{X}": "𝔛", + "\\mathfrak{Y}": "𝔜", + "\\mathfrak{a}": "𝔞", + "\\mathfrak{b}": "𝔟", + "\\mathfrak{c}": "𝔠", + "\\mathfrak{d}": "𝔡", + "\\mathfrak{e}": "𝔢", + "\\mathfrak{f}": "𝔣", + "\\mathfrak{g}": "𝔤", + "\\mathfrak{h}": "𝔥", + "\\mathfrak{i}": "𝔦", + "\\mathfrak{j}": "𝔧", + "\\mathfrak{k}": "𝔨", + "\\mathfrak{l}": "𝔩", + "\\mathfrak{m}": "𝔪", + "\\mathfrak{n}": "𝔫", + "\\mathfrak{o}": "𝔬", + "\\mathfrak{p}": "𝔭", + "\\mathfrak{q}": "𝔮", + "\\mathfrak{r}": "𝔯", + "\\mathfrak{s}": "𝔰", + "\\mathfrak{t}": "𝔱", + "\\mathfrak{u}": "𝔲", + "\\mathfrak{v}": "𝔳", + "\\mathfrak{w}": "𝔴", + "\\mathfrak{x}": "𝔵", + "\\mathfrak{y}": "𝔶", + "\\mathfrak{z}": "𝔷", + "\\mathbb{A}": "𝔸", + "\\mathbb{B}": "𝔹", + "\\mathbb{D}": "𝔻", + "\\mathbb{E}": "𝔼", + "\\mathbb{F}": "𝔽", + "\\mathbb{G}": "𝔾", + "\\mathbb{I}": "𝕀", + "\\mathbb{J}": "𝕁", + "\\mathbb{K}": "𝕂", + "\\mathbb{L}": "𝕃", + "\\mathbb{M}": "𝕄", + "\\mathbb{O}": "𝕆", + "\\mathbb{S}": "𝕊", + "\\mathbb{T}": "𝕋", + "\\mathbb{U}": "𝕌", + "\\mathbb{V}": "𝕍", + "\\mathbb{W}": "𝕎", + "\\mathbb{X}": "𝕏", + "\\mathbb{Y}": "𝕐", + "\\mathbb{a}": "𝕒", + "\\mathbb{b}": "𝕓", + "\\mathbb{c}": "𝕔", + "\\mathbb{d}": "𝕕", + "\\mathbb{e}": "𝕖", + "\\mathbb{f}": "𝕗", + "\\mathbb{g}": "𝕘", + "\\mathbb{h}": "𝕙", + "\\mathbb{i}": "𝕚", + "\\mathbb{j}": "𝕛", + "\\mathbb{k}": "𝕜", + "\\mathbb{l}": "𝕝", + "\\mathbb{m}": "𝕞", + "\\mathbb{n}": "𝕟", + "\\mathbb{o}": "𝕠", + "\\mathbb{p}": "𝕡", + "\\mathbb{q}": "𝕢", + "\\mathbb{r}": "𝕣", + "\\mathbb{s}": "𝕤", + "\\mathbb{t}": "𝕥", + "\\mathbb{u}": "𝕦", + "\\mathbb{v}": "𝕧", + "\\mathbb{w}": "𝕨", + "\\mathbb{x}": "𝕩", + "\\mathbb{y}": "𝕪", + "\\mathbb{z}": "𝕫", + "\\mathslbb{A}": "𝕬", + "\\mathslbb{B}": "𝕭", + "\\mathslbb{C}": "𝕮", + "\\mathslbb{D}": "𝕯", + "\\mathslbb{E}": "𝕰", + "\\mathslbb{F}": "𝕱", + "\\mathslbb{G}": "𝕲", + "\\mathslbb{H}": "𝕳", + "\\mathslbb{I}": "𝕴", + "\\mathslbb{J}": "𝕵", + "\\mathslbb{K}": "𝕶", + "\\mathslbb{L}": "𝕷", + "\\mathslbb{M}": "𝕸", + "\\mathslbb{N}": "𝕹", + "\\mathslbb{O}": "𝕺", + "\\mathslbb{P}": "𝕻", + "\\mathslbb{Q}": "𝕼", + "\\mathslbb{R}": "𝕽", + "\\mathslbb{S}": "𝕾", + "\\mathslbb{T}": "𝕿", + "\\mathslbb{U}": "𝖀", + "\\mathslbb{V}": "𝖁", + "\\mathslbb{W}": "𝖂", + "\\mathslbb{X}": "𝖃", + "\\mathslbb{Y}": "𝖄", + "\\mathslbb{Z}": "𝖅", + "\\mathslbb{a}": "𝖆", + "\\mathslbb{b}": "𝖇", + "\\mathslbb{c}": "𝖈", + "\\mathslbb{d}": "𝖉", + "\\mathslbb{e}": "𝖊", + "\\mathslbb{f}": "𝖋", + "\\mathslbb{g}": "𝖌", + "\\mathslbb{h}": "𝖍", + "\\mathslbb{i}": "𝖎", + "\\mathslbb{j}": "𝖏", + "\\mathslbb{k}": "𝖐", + "\\mathslbb{l}": "𝖑", + "\\mathslbb{m}": "𝖒", + "\\mathslbb{n}": "𝖓", + "\\mathslbb{o}": "𝖔", + "\\mathslbb{p}": "𝖕", + "\\mathslbb{q}": "𝖖", + "\\mathslbb{r}": "𝖗", + "\\mathslbb{s}": "𝖘", + "\\mathslbb{t}": "𝖙", + "\\mathslbb{u}": "𝖚", + "\\mathslbb{v}": "𝖛", + "\\mathslbb{w}": "𝖜", + "\\mathslbb{x}": "𝖝", + "\\mathslbb{y}": "𝖞", + "\\mathslbb{z}": "𝖟", + "\\mathsf{A}": "𝖠", + "\\mathsf{B}": "𝖡", + "\\mathsf{C}": "𝖢", + "\\mathsf{D}": "𝖣", + "\\mathsf{E}": "𝖤", + "\\mathsf{F}": "𝖥", + "\\mathsf{G}": "𝖦", + "\\mathsf{H}": "𝖧", + "\\mathsf{I}": "𝖨", + "\\mathsf{J}": "𝖩", + "\\mathsf{K}": "𝖪", + "\\mathsf{L}": "𝖫", + "\\mathsf{M}": "𝖬", + "\\mathsf{N}": "𝖭", + "\\mathsf{O}": "𝖮", + "\\mathsf{P}": "𝖯", + "\\mathsf{Q}": "𝖰", + "\\mathsf{R}": "𝖱", + "\\mathsf{S}": "𝖲", + "\\mathsf{T}": "𝖳", + "\\mathsf{U}": "𝖴", + "\\mathsf{V}": "𝖵", + "\\mathsf{W}": "𝖶", + "\\mathsf{X}": "𝖷", + "\\mathsf{Y}": "𝖸", + "\\mathsf{Z}": "𝖹", + "\\mathsf{a}": "𝖺", + "\\mathsf{b}": "𝖻", + "\\mathsf{c}": "𝖼", + "\\mathsf{d}": "𝖽", + "\\mathsf{e}": "𝖾", + "\\mathsf{f}": "𝖿", + "\\mathsf{g}": "𝗀", + "\\mathsf{h}": "𝗁", + "\\mathsf{i}": "𝗂", + "\\mathsf{j}": "𝗃", + "\\mathsf{k}": "𝗄", + "\\mathsf{l}": "𝗅", + "\\mathsf{m}": "𝗆", + "\\mathsf{n}": "𝗇", + "\\mathsf{o}": "𝗈", + "\\mathsf{p}": "𝗉", + "\\mathsf{q}": "𝗊", + "\\mathsf{r}": "𝗋", + "\\mathsf{s}": "𝗌", + "\\mathsf{t}": "𝗍", + "\\mathsf{u}": "𝗎", + "\\mathsf{v}": "𝗏", + "\\mathsf{w}": "𝗐", + "\\mathsf{x}": "𝗑", + "\\mathsf{y}": "𝗒", + "\\mathsf{z}": "𝗓", + "\\mathsfbf{A}": "𝗔", + "\\mathsfbf{B}": "𝗕", + "\\mathsfbf{C}": "𝗖", + "\\mathsfbf{D}": "𝗗", + "\\mathsfbf{E}": "𝗘", + "\\mathsfbf{F}": "𝗙", + "\\mathsfbf{G}": "𝗚", + "\\mathsfbf{H}": "𝗛", + "\\mathsfbf{I}": "𝗜", + "\\mathsfbf{J}": "𝗝", + "\\mathsfbf{K}": "𝗞", + "\\mathsfbf{L}": "𝗟", + "\\mathsfbf{M}": "𝗠", + "\\mathsfbf{N}": "𝗡", + "\\mathsfbf{O}": "𝗢", + "\\mathsfbf{P}": "𝗣", + "\\mathsfbf{Q}": "𝗤", + "\\mathsfbf{R}": "𝗥", + "\\mathsfbf{S}": "𝗦", + "\\mathsfbf{T}": "𝗧", + "\\mathsfbf{U}": "𝗨", + "\\mathsfbf{V}": "𝗩", + "\\mathsfbf{W}": "𝗪", + "\\mathsfbf{X}": "𝗫", + "\\mathsfbf{Y}": "𝗬", + "\\mathsfbf{Z}": "𝗭", + "\\mathsfbf{a}": "𝗮", + "\\mathsfbf{b}": "𝗯", + "\\mathsfbf{c}": "𝗰", + "\\mathsfbf{d}": "𝗱", + "\\mathsfbf{e}": "𝗲", + "\\mathsfbf{f}": "𝗳", + "\\mathsfbf{g}": "𝗴", + "\\mathsfbf{h}": "𝗵", + "\\mathsfbf{i}": "𝗶", + "\\mathsfbf{j}": "𝗷", + "\\mathsfbf{k}": "𝗸", + "\\mathsfbf{l}": "𝗹", + "\\mathsfbf{m}": "𝗺", + "\\mathsfbf{n}": "𝗻", + "\\mathsfbf{o}": "𝗼", + "\\mathsfbf{p}": "𝗽", + "\\mathsfbf{q}": "𝗾", + "\\mathsfbf{r}": "𝗿", + "\\mathsfbf{s}": "𝘀", + "\\mathsfbf{t}": "𝘁", + "\\mathsfbf{u}": "𝘂", + "\\mathsfbf{v}": "𝘃", + "\\mathsfbf{w}": "𝘄", + "\\mathsfbf{x}": "𝘅", + "\\mathsfbf{y}": "𝘆", + "\\mathsfbf{z}": "𝘇", + "\\mathsfsl{A}": "𝘈", + "\\mathsfsl{B}": "𝘉", + "\\mathsfsl{C}": "𝘊", + "\\mathsfsl{D}": "𝘋", + "\\mathsfsl{E}": "𝘌", + "\\mathsfsl{F}": "𝘍", + "\\mathsfsl{G}": "𝘎", + "\\mathsfsl{H}": "𝘏", + "\\mathsfsl{I}": "𝘐", + "\\mathsfsl{J}": "𝘑", + "\\mathsfsl{K}": "𝘒", + "\\mathsfsl{L}": "𝘓", + "\\mathsfsl{M}": "𝘔", + "\\mathsfsl{N}": "𝘕", + "\\mathsfsl{O}": "𝘖", + "\\mathsfsl{P}": "𝘗", + "\\mathsfsl{Q}": "𝘘", + "\\mathsfsl{R}": "𝘙", + "\\mathsfsl{S}": "𝘚", + "\\mathsfsl{T}": "𝘛", + "\\mathsfsl{U}": "𝘜", + "\\mathsfsl{V}": "𝘝", + "\\mathsfsl{W}": "𝘞", + "\\mathsfsl{X}": "𝘟", + "\\mathsfsl{Y}": "𝘠", + "\\mathsfsl{Z}": "𝘡", + "\\mathsfsl{a}": "𝘢", + "\\mathsfsl{b}": "𝘣", + "\\mathsfsl{c}": "𝘤", + "\\mathsfsl{d}": "𝘥", + "\\mathsfsl{e}": "𝘦", + "\\mathsfsl{f}": "𝘧", + "\\mathsfsl{g}": "𝘨", + "\\mathsfsl{h}": "𝘩", + "\\mathsfsl{i}": "𝘪", + "\\mathsfsl{j}": "𝘫", + "\\mathsfsl{k}": "𝘬", + "\\mathsfsl{l}": "𝘭", + "\\mathsfsl{m}": "𝘮", + "\\mathsfsl{n}": "𝘯", + "\\mathsfsl{o}": "𝘰", + "\\mathsfsl{p}": "𝘱", + "\\mathsfsl{q}": "𝘲", + "\\mathsfsl{r}": "𝘳", + "\\mathsfsl{s}": "𝘴", + "\\mathsfsl{t}": "𝘵", + "\\mathsfsl{u}": "𝘶", + "\\mathsfsl{v}": "𝘷", + "\\mathsfsl{w}": "𝘸", + "\\mathsfsl{x}": "𝘹", + "\\mathsfsl{y}": "𝘺", + "\\mathsfsl{z}": "𝘻", + "\\mathsfbfsl{A}": "𝘼", + "\\mathsfbfsl{B}": "𝘽", + "\\mathsfbfsl{C}": "𝘾", + "\\mathsfbfsl{D}": "𝘿", + "\\mathsfbfsl{E}": "𝙀", + "\\mathsfbfsl{F}": "𝙁", + "\\mathsfbfsl{G}": "𝙂", + "\\mathsfbfsl{H}": "𝙃", + "\\mathsfbfsl{I}": "𝙄", + "\\mathsfbfsl{J}": "𝙅", + "\\mathsfbfsl{K}": "𝙆", + "\\mathsfbfsl{L}": "𝙇", + "\\mathsfbfsl{M}": "𝙈", + "\\mathsfbfsl{N}": "𝙉", + "\\mathsfbfsl{O}": "𝙊", + "\\mathsfbfsl{P}": "𝙋", + "\\mathsfbfsl{Q}": "𝙌", + "\\mathsfbfsl{R}": "𝙍", + "\\mathsfbfsl{S}": "𝙎", + "\\mathsfbfsl{T}": "𝙏", + "\\mathsfbfsl{U}": "𝙐", + "\\mathsfbfsl{V}": "𝙑", + "\\mathsfbfsl{W}": "𝙒", + "\\mathsfbfsl{X}": "𝙓", + "\\mathsfbfsl{Y}": "𝙔", + "\\mathsfbfsl{Z}": "𝙕", + "\\mathsfbfsl{a}": "𝙖", + "\\mathsfbfsl{b}": "𝙗", + "\\mathsfbfsl{c}": "𝙘", + "\\mathsfbfsl{d}": "𝙙", + "\\mathsfbfsl{e}": "𝙚", + "\\mathsfbfsl{f}": "𝙛", + "\\mathsfbfsl{g}": "𝙜", + "\\mathsfbfsl{h}": "𝙝", + "\\mathsfbfsl{i}": "𝙞", + "\\mathsfbfsl{j}": "𝙟", + "\\mathsfbfsl{k}": "𝙠", + "\\mathsfbfsl{l}": "𝙡", + "\\mathsfbfsl{m}": "𝙢", + "\\mathsfbfsl{n}": "𝙣", + "\\mathsfbfsl{o}": "𝙤", + "\\mathsfbfsl{p}": "𝙥", + "\\mathsfbfsl{q}": "𝙦", + "\\mathsfbfsl{r}": "𝙧", + "\\mathsfbfsl{s}": "𝙨", + "\\mathsfbfsl{t}": "𝙩", + "\\mathsfbfsl{u}": "𝙪", + "\\mathsfbfsl{v}": "𝙫", + "\\mathsfbfsl{w}": "𝙬", + "\\mathsfbfsl{x}": "𝙭", + "\\mathsfbfsl{y}": "𝙮", + "\\mathsfbfsl{z}": "𝙯", + "\\mathtt{A}": "𝙰", + "\\mathtt{B}": "𝙱", + "\\mathtt{C}": "𝙲", + "\\mathtt{D}": "𝙳", + "\\mathtt{E}": "𝙴", + "\\mathtt{F}": "𝙵", + "\\mathtt{G}": "𝙶", + "\\mathtt{H}": "𝙷", + "\\mathtt{I}": "𝙸", + "\\mathtt{J}": "𝙹", + "\\mathtt{K}": "𝙺", + "\\mathtt{L}": "𝙻", + "\\mathtt{M}": "𝙼", + "\\mathtt{N}": "𝙽", + "\\mathtt{O}": "𝙾", + "\\mathtt{P}": "𝙿", + "\\mathtt{Q}": "𝚀", + "\\mathtt{R}": "𝚁", + "\\mathtt{S}": "𝚂", + "\\mathtt{T}": "𝚃", + "\\mathtt{U}": "𝚄", + "\\mathtt{V}": "𝚅", + "\\mathtt{W}": "𝚆", + "\\mathtt{X}": "𝚇", + "\\mathtt{Y}": "𝚈", + "\\mathtt{Z}": "𝚉", + "\\mathtt{a}": "𝚊", + "\\mathtt{b}": "𝚋", + "\\mathtt{c}": "𝚌", + "\\mathtt{d}": "𝚍", + "\\mathtt{e}": "𝚎", + "\\mathtt{f}": "𝚏", + "\\mathtt{g}": "𝚐", + "\\mathtt{h}": "𝚑", + "\\mathtt{i}": "𝚒", + "\\mathtt{j}": "𝚓", + "\\mathtt{k}": "𝚔", + "\\mathtt{l}": "𝚕", + "\\mathtt{m}": "𝚖", + "\\mathtt{n}": "𝚗", + "\\mathtt{o}": "𝚘", + "\\mathtt{p}": "𝚙", + "\\mathtt{q}": "𝚚", + "\\mathtt{r}": "𝚛", + "\\mathtt{s}": "𝚜", + "\\mathtt{t}": "𝚝", + "\\mathtt{u}": "𝚞", + "\\mathtt{v}": "𝚟", + "\\mathtt{w}": "𝚠", + "\\mathtt{x}": "𝚡", + "\\mathtt{y}": "𝚢", + "\\mathtt{z}": "𝚣", + "\\mathbf{\\Gamma}": "𝚪", + "\\mathbf{\\Delta}": "𝚫", + "\\mathbf{\\Theta}": "𝚯", + "\\mathbf{\\Lambda}": "𝚲", + "\\mathbf{\\Xi}": "𝚵", + "\\mathbf{\\Pi}": "𝚷", + "\\mathbf{\\vartheta}": "𝚹", + "\\mathbf{\\Sigma}": "𝚺", + "\\mathbf{\\Upsilon}": "𝚼", + "\\mathbf{\\Phi}": "𝚽", + "\\mathbf{\\Psi}": "𝚿", + "\\mathbf{\\Omega}": "𝛀", + "\\mathbf{\\nabla}": "𝛁", + "\\mathbf{\\alpha}": "𝛂", + "\\mathbf{\\beta}": "𝛃", + "\\mathbf{\\gamma}": "𝛄", + "\\mathbf{\\delta}": "𝛅", + "\\mathbf{\\epsilon}": "𝛆", + "\\mathbf{\\zeta}": "𝛇", + "\\mathbf{\\eta}": "𝛈", + "\\mathbf{\\theta}": "𝛉", + "\\mathbf{\\lambda}": "𝛌", + "\\mathbf{\\xi}": "𝛏", + "\\mathbf{\\pi}": "𝛑", + "\\mathbf{\\varsigma}": "𝛓", + "\\mathbf{\\sigma}": "𝛔", + "\\mathbf{\\upsilon}": "𝛖", + "\\mathbf{\\phi}": "𝛗", + "\\mathbf{\\psi}": "𝛙", + "\\mathbf{\\omega}": "𝛚", + "\\mathbf{\\varkappa}": "𝛞", + "\\mathbf{\\varrho}": "𝛠", + "\\mathbf{\\varpi}": "𝛡", + "\\mathsl{\\Gamma}": "𝛤", + "\\mathsl{\\Delta}": "𝛥", + "\\mathsl{\\Lambda}": "𝛬", + "\\mathsl{\\Xi}": "𝛯", + "\\mathsl{\\Pi}": "𝛱", + "\\mathsl{\\Theta}": "𝛳", + "\\mathsl{\\Sigma}": "𝛴", + "\\mathsl{\\Upsilon}": "𝛶", + "\\mathsl{\\Phi}": "𝛷", + "\\mathsl{\\Psi}": "𝛹", + "\\mathsl{\\Omega}": "𝛺", + "\\mathsl{\\nabla}": "𝛻", + "\\mathsl{\\gamma}": "𝛾", + "\\mathsl{\\delta}": "𝛿", + "\\mathsl{\\theta}": "𝜃", + "\\mathsl{\\lambda}": "𝜆", + "\\mu": "𝜇", + "\\mathsl{\\xi}": "𝜉", + "\\mathsl{\\pi}": "𝜋", + "\\mathsl{\\varsigma}": "𝜍", + "\\mathsl{\\sigma}": "𝜎", + "\\mathsl{\\upsilon}": "𝜐", + "\\mathsl{\\varphi}": "𝜑", + "\\mathsl{\\psi}": "𝜓", + "\\mathsl{\\omega}": "𝜔", + "\\mathsl{\\vartheta}": "𝜗", + "\\mathsl{\\varkappa}": "𝜘", + "\\mathsl{\\phi}": "𝜙", + "\\mathsl{\\varrho}": "𝜚", + "\\mathsl{\\varpi}": "𝜛", + "\\mathbit{\\Gamma}": "𝜞", + "\\mathbit{\\Delta}": "𝜟", + "\\mathbit{\\Theta}": "𝜣", + "\\mathbit{\\Lambda}": "𝜦", + "\\mathbit{\\Xi}": "𝜩", + "\\mathbit{\\Pi}": "𝜫", + "\\mathbit{\\Sigma}": "𝜮", + "\\mathbit{\\Upsilon}": "𝜰", + "\\mathbit{\\Phi}": "𝜱", + "\\mathbit{\\Psi}": "𝜳", + "\\mathbit{\\Omega}": "𝜴", + "\\mathbit{\\nabla}": "𝜵", + "\\mathbit{\\alpha}": "𝜶", + "\\mathbit{\\beta}": "𝜷", + "\\mathbit{\\gamma}": "𝜸", + "\\mathbit{\\delta}": "𝜹", + "\\mathbit{\\epsilon}": "𝜺", + "\\mathbit{\\zeta}": "𝜻", + "\\mathbit{\\eta}": "𝜼", + "\\mathbit{\\theta}": "𝜽", + "\\mathbit{\\imath}": "𝜾", + "\\mathbit{\\kappa}": "𝜿", + "\\mathbit{\\lambda}": "𝝀", + "\\mathbit{\\xi}": "𝝃", + "\\mathbit{\\pi}": "𝝅", + "\\mathbit{\\rho}": "𝝆", + "\\mathbit{\\varsigma}": "𝝇", + "\\mathbit{\\sigma}": "𝝈", + "\\mathbit{\\tau}": "𝝉", + "\\mathbit{\\upsilon}": "𝝊", + "\\mathbit{\\varphi}": "𝝋", + "\\mathbit{\\chi}": "𝝌", + "\\mathbit{\\psi}": "𝝍", + "\\mathbit{\\omega}": "𝝎", + "\\mathbit{\\vartheta}": "𝝑", + "\\mathbit{\\varkappa}": "𝝒", + "\\mathbit{\\phi}": "𝝓", + "\\mathbit{\\varrho}": "𝝔", + "\\mathbit{\\varpi}": "𝝕", + "\\mathsfbf{\\Gamma}": "𝝘", + "\\mathsfbf{\\Delta}": "𝝙", + "\\mathsfbf{\\Theta}": "𝝝", + "\\mathsfbf{\\Lambda}": "𝝠", + "\\mathsfbf{\\Xi}": "𝝣", + "\\mathsfbf{\\Pi}": "𝝥", + "\\mathsfbf{\\Sigma}": "𝝨", + "\\mathsfbf{\\Upsilon}": "𝝪", + "\\mathsfbf{\\Phi}": "𝝫", + "\\mathsfbf{\\Psi}": "𝝭", + "\\mathsfbf{\\Omega}": "𝝮", + "\\mathsfbf{\\nabla}": "𝝯", + "\\mathsfbf{\\alpha}": "𝝰", + "\\mathsfbf{\\beta}": "𝝱", + "\\mathsfbf{\\gamma}": "𝝲", + "\\mathsfbf{\\delta}": "𝝳", + "\\mathsfbf{\\varepsilon}": "𝝴", + "\\mathsfbf{\\zeta}": "𝝵", + "\\mathsfbf{\\eta}": "𝝶", + "\\mathsfbf{\\theta}": "𝝷", + "\\mathsfbf{\\imath}": "𝝸", + "\\mathsfbf{\\kappa}": "𝝹", + "\\mathsfbf{\\lambda}": "𝝺", + "\\mathsfbf{\\xi}": "𝝽", + "\\mathsfbf{\\pi}": "𝝿", + "\\mathsfbf{\\rho}": "𝞀", + "\\mathsfbf{\\varsigma}": "𝞁", + "\\mathsfbf{\\sigma}": "𝞂", + "\\mathsfbf{\\tau}": "𝞃", + "\\mathsfbf{\\upsilon}": "𝞄", + "\\mathsfbf{\\varphi}": "𝞅", + "\\mathsfbf{\\chi}": "𝞆", + "\\mathsfbf{\\psi}": "𝞇", + "\\mathsfbf{\\omega}": "𝞈", + "\\mathsfbf{\\vartheta}": "𝞋", + "\\mathsfbf{\\varkappa}": "𝞌", + "\\mathsfbf{\\phi}": "𝞍", + "\\mathsfbf{\\varrho}": "𝞎", + "\\mathsfbf{\\varpi}": "𝞏", + "\\mathsfbfsl{\\Gamma}": "𝞒", + "\\mathsfbfsl{\\Delta}": "𝞓", + "\\mathsfbfsl{\\Theta}": "𝞗", + "\\mathsfbfsl{\\Lambda}": "𝞚", + "\\mathsfbfsl{\\Xi}": "𝞝", + "\\mathsfbfsl{\\Pi}": "𝞟", + "\\mathsfbfsl{\\Sigma}": "𝞢", + "\\mathsfbfsl{\\Upsilon}": "𝞤", + "\\mathsfbfsl{\\Phi}": "𝞥", + "\\mathsfbfsl{\\Psi}": "𝞧", + "\\mathsfbfsl{\\Omega}": "𝞨", + "\\mathsfbfsl{\\nabla}": "𝞩", + "\\mathsfbfsl{\\alpha}": "𝞪", + "\\mathsfbfsl{\\beta}": "𝞫", + "\\mathsfbfsl{\\gamma}": "𝞬", + "\\mathsfbfsl{\\delta}": "𝞭", + "\\mathsfbfsl{\\varepsilon}": "𝞮", + "\\mathsfbfsl{\\zeta}": "𝞯", + "\\mathsfbfsl{\\eta}": "𝞰", + "\\mathsfbfsl{\\theta}": "𝞱", + "\\mathsfbfsl{\\imath}": "𝞲", + "\\mathsfbfsl{\\kappa}": "𝞳", + "\\mathsfbfsl{\\lambda}": "𝞴", + "\\mathsfbfsl{\\xi}": "𝞷", + "\\mathsfbfsl{\\pi}": "𝞹", + "\\mathsfbfsl{\\rho}": "𝞺", + "\\mathsfbfsl{\\varsigma}": "𝞻", + "\\mathsfbfsl{\\sigma}": "𝞼", + "\\mathsfbfsl{\\tau}": "𝞽", + "\\mathsfbfsl{\\upsilon}": "𝞾", + "\\mathsfbfsl{\\varphi}": "𝞿", + "\\mathsfbfsl{\\chi}": "𝟀", + "\\mathsfbfsl{\\psi}": "𝟁", + "\\mathsfbfsl{\\omega}": "𝟂", + "\\mathsfbfsl{\\vartheta}": "𝟅", + "\\mathsfbfsl{\\varkappa}": "𝟆", + "\\mathsfbfsl{\\phi}": "𝟇", + "\\mathsfbfsl{\\varrho}": "𝟈", + "\\mathsfbfsl{\\varpi}": "𝟉", + "\\mbfDigamma": "𝟊", + "\\mbfdigamma": "𝟋", + "\\mathbf{0}": "𝟎", + "\\mathbf{1}": "𝟏", + "\\mathbf{2}": "𝟐", + "\\mathbf{3}": "𝟑", + "\\mathbf{4}": "𝟒", + "\\mathbf{5}": "𝟓", + "\\mathbf{6}": "𝟔", + "\\mathbf{7}": "𝟕", + "\\mathbf{8}": "𝟖", + "\\mathbf{9}": "𝟗", + "\\mathbb{0}": "𝟘", + "\\mathbb{1}": "𝟙", + "\\mathbb{2}": "𝟚", + "\\mathbb{3}": "𝟛", + "\\mathbb{4}": "𝟜", + "\\mathbb{5}": "𝟝", + "\\mathbb{6}": "𝟞", + "\\mathbb{7}": "𝟟", + "\\mathbb{8}": "𝟠", + "\\mathbb{9}": "𝟡", + "\\mathsf{0}": "𝟢", + "\\mathsf{1}": "𝟣", + "\\mathsf{2}": "𝟤", + "\\mathsf{3}": "𝟥", + "\\mathsf{4}": "𝟦", + "\\mathsf{5}": "𝟧", + "\\mathsf{6}": "𝟨", + "\\mathsf{7}": "𝟩", + "\\mathsf{8}": "𝟪", + "\\mathsf{9}": "𝟫", + "\\mathsfbf{0}": "𝟬", + "\\mathsfbf{1}": "𝟭", + "\\mathsfbf{2}": "𝟮", + "\\mathsfbf{3}": "𝟯", + "\\mathsfbf{4}": "𝟰", + "\\mathsfbf{5}": "𝟱", + "\\mathsfbf{6}": "𝟲", + "\\mathsfbf{7}": "𝟳", + "\\mathsfbf{8}": "𝟴", + "\\mathsfbf{9}": "𝟵", + "\\mathtt{0}": "𝟶", + "\\mathtt{1}": "𝟷", + "\\mathtt{2}": "𝟸", + "\\mathtt{3}": "𝟹", + "\\mathtt{4}": "𝟺", + "\\mathtt{5}": "𝟻", + "\\mathtt{6}": "𝟼", + "\\mathtt{7}": "𝟽", + "\\mathtt{8}": "𝟾", + "\\mathtt{9}": "𝟿" + }; + + var commands = [ + "acute", + "bar", + "breve", + "c", + "d", + "ddot", + "dot", + "grave", + "hat", + "k", + "mathring", + "overline", + "r", + "textacutemacron", + "textacutewedge", + "textadvancing", + "textbrevemacron", + "textcircumdot", + "textcorner", + "textdotacute", + "textdotbreve", + "textdoublegrave", + "textdoublevbaraccent", + "textgravedot", + "textgravemacron", + "textinvsubbridge", + "textlowering", + "textovercross", + "textraising", + "textretracting", + "textringmacron", + "textseagull", + "textsubarch", + "textsubbar", + "textsubbridge", + "textsubgrave", + "textsublhalfring", + "textsubplus", + "textsubrhalfring", + "textsubring", + "textsubsquare", + "textsubtilde", + "textsubumlaut", + "textsubwedge", + "textsuperimposetilde", + "textsyllabic", + "texttildedot", + "textvbaraccent", + "tilde", + "u", + "underbar", + "v" + ]; + var tolatex = { + "̀": { + command: "`", + mode: "text" + }, + "̀̄": { + command: "textgravemacron", + mode: "text" + }, + "̀̇": { + command: "textgravedot", + mode: "text" + }, + "́": { + command: "'", + mode: "text" + }, + "́̄": { + command: "textacutemacron", + mode: "text" + }, + "́̇": { + command: "textdotacute", + mode: "text" + }, + "́̌": { + command: "textacutewedge", + mode: "text" + }, + "̂": { + command: "^", + mode: "text" + }, + "̂̇": { + command: "textcircumdot", + mode: "text" + }, + "̃": { + command: "~", + mode: "text" + }, + "̃̇": { + command: "texttildedot", + mode: "text" + }, + "̄": { + command: "=", + mode: "text" + }, + "̄̀": { + command: "textgravemacron", + mode: "text" + }, + "̄́": { + command: "textacutemacron", + mode: "text" + }, + "̄̆": { + command: "textbrevemacron", + mode: "text" + }, + "̄̊": { + command: "textringmacron", + mode: "text" + }, + "̅": { + command: "overline", + mode: "math" + }, + "̆": { + command: "u", + mode: "text" + }, + "̆̄": { + command: "textbrevemacron", + mode: "text" + }, + "̆̇": { + command: "textdotbreve", + mode: "text" + }, + "̇": { + command: ".", + mode: "text" + }, + "̇̀": { + command: "textgravedot", + mode: "text" + }, + "̇́": { + command: "textdotacute", + mode: "text" + }, + "̇̂": { + command: "textcircumdot", + mode: "text" + }, + "̇̃": { + command: "texttildedot", + mode: "text" + }, + "̇̆": { + command: "textdotbreve", + mode: "text" + }, + "̈": { + command: "\"", + mode: "text" + }, + "̊": { + command: "r", + mode: "text" + }, + "̊̄": { + command: "textringmacron", + mode: "text" + }, + "̋": { + command: "H", + mode: "text" + }, + "̌": { + command: "v", + mode: "text" + }, + "̌́": { + command: "textacutewedge", + mode: "text" + }, + "̍": { + command: "textvbaraccent", + mode: "text" + }, + "̎": { + command: "textdoublevbaraccent", + mode: "text" + }, + "̏": { + command: "textdoublegrave", + mode: "text" + }, + "̐": { + command: "textdotbreve", + mode: "text" + }, + "̖": { + command: "textsubgrave", + mode: "text" + }, + "̘": { + command: "textadvancing", + mode: "text" + }, + "̙": { + command: "textretracting", + mode: "text" + }, + "̚": { + command: "textcorner", + mode: "text" + }, + "̜": { + command: "textsublhalfring", + mode: "text" + }, + "̝": { + command: "textraising", + mode: "text" + }, + "̞": { + command: "textlowering", + mode: "text" + }, + "̟": { + command: "textsubplus", + mode: "text" + }, + "̣": { + command: "d", + mode: "text" + }, + "̤": { + command: "textsubumlaut", + mode: "text" + }, + "̥": { + command: "textsubring", + mode: "text" + }, + "̧": { + command: "c", + mode: "text" + }, + "̨": { + command: "k", + mode: "text" + }, + "̩": { + command: "textsyllabic", + mode: "text" + }, + "̪": { + command: "textsubbridge", + mode: "text" + }, + "̬": { + command: "textsubwedge", + mode: "text" + }, + "̯": { + command: "textsubarch", + mode: "text" + }, + "̰": { + command: "textsubtilde", + mode: "text" + }, + "̱": { + command: "textsubbar", + mode: "text" + }, + "̴": { + command: "textsuperimposetilde", + mode: "text" + }, + "̹": { + command: "textsubrhalfring", + mode: "text" + }, + "̺": { + command: "textinvsubbridge", + mode: "text" + }, + "̻": { + command: "textsubsquare", + mode: "text" + }, + "̼": { + command: "textseagull", + mode: "text" + }, + "̽": { + command: "textovercross", + mode: "text" + } + }; + var tounicode = { + "\"": "̈", + "'": "́", + ".": "̇", + "=": "̄", + H: "̋", + "^": "̂", + "`": "̀", + acute: "́", + bar: "̄", + breve: "̆", + c: "̧", + d: "̣", + ddot: "̈", + dot: "̇", + grave: "̀", + hat: "̂", + k: "̨", + mathring: "̊", + overline: "̅", + r: "̊", + textacutemacron: "̄́", + textacutewedge: "̌́", + textadvancing: "̘", + textbrevemacron: "̄̆", + textcircumdot: "̇̂", + textcorner: "̚", + textdotacute: "́̇", + textdotbreve: "̐", + textdoublegrave: "̏", + textdoublevbaraccent: "̎", + textgravedot: "̇̀", + textgravemacron: "̀̄", + textinvsubbridge: "̺", + textlowering: "̞", + textovercross: "̽", + textraising: "̝", + textretracting: "̙", + textringmacron: "̄̊", + textseagull: "̼", + textsubarch: "̯", + textsubbar: "̱", + textsubbridge: "̪", + textsubgrave: "̖", + textsublhalfring: "̜", + textsubplus: "̟", + textsubrhalfring: "̹", + textsubring: "̥", + textsubsquare: "̻", + textsubtilde: "̰", + textsubumlaut: "̤", + textsubwedge: "̬", + textsuperimposetilde: "̴", + textsyllabic: "̩", + texttildedot: "̇̃", + textvbaraccent: "̍", + tilde: "̃", + u: "̆", + underbar: "̱", + v: "̌", + "~": "̃" + }; + var require$$4 = { + commands: commands, + tolatex: tolatex, + tounicode: tounicode + }; + + var unicode2latex = { + ascii: require$$0, + ascii_bibtex_creator: require$$1, + unicode: require$$2, + latex: require$$3, + diacritics: require$$4, + }; + + var categories = [ + { + 'name': 'C', + 'alias': 'Other', + 'isBmpLast': true, + 'bmp': '\0-\x1F\x7F-\x9F\xAD\u0378\u0379\u0380-\u0383\u038B\u038D\u03A2\u0530\u0557\u0558\u058B\u058C\u0590\u05C8-\u05CF\u05EB-\u05EE\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB\u07FC\u082E\u082F\u083F\u085C\u085D\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A77-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C76\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE\u13FF\u169D-\u169F\u16F9-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C89-\u1C8F\u1CBB\u1CBC\u1CC8-\u1CCF\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20C0-\u20CF\u20F1-\u20FF\u218C-\u218F\u2427-\u243F\u244B-\u245F\u2B74\u2B75\u2B96\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E53-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u3130\u318F\u31E4-\u31EF\u321F\u9FFD-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA6F8-\uA6FF\uA7C0\uA7C1\uA7CB-\uA7F4\uA82D-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C6-\uA8CD\uA8DA-\uA8DF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB6C-\uAB6F\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF', + 'astral': '\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDCFF\uDD03-\uDD06\uDD34-\uDD36\uDD8F\uDD9D-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDFC4-\uDFC7\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6E\uDD70-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1E\uDD3A-\uDD3E\uDD40-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE4F\uDE59-\uDE5F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF7-\uDEFF\uDF36-\uDF38\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDF98\uDF9D-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F\uDEAA\uDEAE\uDEAF\uDEB2-\uDEFF\uDF28-\uDF2F\uDF5A-\uDFAF\uDFCC-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC4E-\uDC51\uDC70-\uDC7E\uDCBD\uDCC2-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD48-\uDD4F\uDD77-\uDD7F\uDDE0\uDDF5-\uDDFF\uDE12\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEAA-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC5C\uDC62-\uDC7F\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDDE-\uDDFF\uDE45-\uDE4F\uDE5A-\uDE5F\uDE6D-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF40-\uDFFF]|\uD806[\uDC3C-\uDC9F\uDCF3-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD47-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE5-\uDDFF\uDE48-\uDE4F\uDEA3-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC46-\uDC4F\uDC6D-\uDC6F\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF9-\uDFAF\uDFB1-\uDFBF\uDFF2-\uDFFE]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F\uDC75-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6D\uDE70-\uDECF\uDEEE\uDEEF\uDEF6-\uDEFF\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE9B-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDCA0-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDD73-\uDD7A\uDDE9-\uDDFF\uDE46-\uDEDF\uDEF4-\uDEFF\uDF57-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE8C-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD50-\uDEBF\uDEFA-\uDEFE\uDF00-\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDD5D\uDD60-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCB5-\uDD00\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDDAE-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDE5F\uDE66-\uDEFF]|\uD83D[\uDED8-\uDEDF\uDEED-\uDEEF\uDEFD-\uDEFF\uDF74-\uDF7F\uDFD9-\uDFDF\uDFEC-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE\uDCAF\uDCB2-\uDCFF\uDD79\uDDCC\uDE54-\uDE5F\uDE6E\uDE6F\uDE75-\uDE77\uDE7B-\uDE7F\uDE87-\uDE8F\uDEA9-\uDEAF\uDEB7-\uDEBF\uDEC3-\uDECF\uDED7-\uDEFF\uDF93\uDFCB-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]' + }, + { + 'name': 'Cc', + 'alias': 'Control', + 'bmp': '\0-\x1F\x7F-\x9F' + }, + { + 'name': 'Cf', + 'alias': 'Format', + 'bmp': '\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB', + 'astral': '\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC38]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]' + }, + { + 'name': 'Cn', + 'alias': 'Unassigned', + 'bmp': '\u0378\u0379\u0380-\u0383\u038B\u038D\u03A2\u0530\u0557\u0558\u058B\u058C\u0590\u05C8-\u05CF\u05EB-\u05EE\u05F5-\u05FF\u061D\u070E\u074B\u074C\u07B2-\u07BF\u07FB\u07FC\u082E\u082F\u083F\u085C\u085D\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A77-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C76\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE\u13FF\u169D-\u169F\u16F9-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C89-\u1C8F\u1CBB\u1CBC\u1CC8-\u1CCF\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u2065\u2072\u2073\u208F\u209D-\u209F\u20C0-\u20CF\u20F1-\u20FF\u218C-\u218F\u2427-\u243F\u244B-\u245F\u2B74\u2B75\u2B96\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E53-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u3130\u318F\u31E4-\u31EF\u321F\u9FFD-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA6F8-\uA6FF\uA7C0\uA7C1\uA7CB-\uA7F4\uA82D-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C6-\uA8CD\uA8DA-\uA8DF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB6C-\uAB6F\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD\uFEFE\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFF8\uFFFE\uFFFF', + 'astral': '\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDCFF\uDD03-\uDD06\uDD34-\uDD36\uDD8F\uDD9D-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDFC4-\uDFC7\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6E\uDD70-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1E\uDD3A-\uDD3E\uDD40-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE4F\uDE59-\uDE5F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF7-\uDEFF\uDF36-\uDF38\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDF98\uDF9D-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F\uDEAA\uDEAE\uDEAF\uDEB2-\uDEFF\uDF28-\uDF2F\uDF5A-\uDFAF\uDFCC-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC4E-\uDC51\uDC70-\uDC7E\uDCC2-\uDCCC\uDCCE\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD48-\uDD4F\uDD77-\uDD7F\uDDE0\uDDF5-\uDDFF\uDE12\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEAA-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC5C\uDC62-\uDC7F\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDDE-\uDDFF\uDE45-\uDE4F\uDE5A-\uDE5F\uDE6D-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF40-\uDFFF]|\uD806[\uDC3C-\uDC9F\uDCF3-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD47-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE5-\uDDFF\uDE48-\uDE4F\uDEA3-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC46-\uDC4F\uDC6D-\uDC6F\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF9-\uDFAF\uDFB1-\uDFBF\uDFF2-\uDFFE]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F\uDC75-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDB7F][\uDC00-\uDFFF]|\uD80D[\uDC2F\uDC39-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6D\uDE70-\uDECF\uDEEE\uDEEF\uDEF6-\uDEFF\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE9B-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDCA4-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDDE9-\uDDFF\uDE46-\uDEDF\uDEF4-\uDEFF\uDF57-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE8C-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD50-\uDEBF\uDEFA-\uDEFE\uDF00-\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDD5D\uDD60-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCB5-\uDD00\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDDAE-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDE5F\uDE66-\uDEFF]|\uD83D[\uDED8-\uDEDF\uDEED-\uDEEF\uDEFD-\uDEFF\uDF74-\uDF7F\uDFD9-\uDFDF\uDFEC-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE\uDCAF\uDCB2-\uDCFF\uDD79\uDDCC\uDE54-\uDE5F\uDE6E\uDE6F\uDE75-\uDE77\uDE7B-\uDE7F\uDE87-\uDE8F\uDEA9-\uDEAF\uDEB7-\uDEBF\uDEC3-\uDECF\uDED7-\uDEFF\uDF93\uDFCB-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00\uDC02-\uDC1F\uDC80-\uDCFF\uDDF0-\uDFFF]|[\uDBBF\uDBFF][\uDFFE\uDFFF]' + }, + { + 'name': 'Co', + 'alias': 'Private_Use', + 'bmp': '\uE000-\uF8FF', + 'astral': '[\uDB80-\uDBBE\uDBC0-\uDBFE][\uDC00-\uDFFF]|[\uDBBF\uDBFF][\uDC00-\uDFFD]' + }, + { + 'name': 'Cs', + 'alias': 'Surrogate', + 'bmp': '\uD800-\uDFFF' + }, + { + 'name': 'L', + 'alias': 'Letter', + 'bmp': 'A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7CA\uA7F5-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC', + 'astral': '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]' + }, + { + 'name': 'LC', + 'alias': 'Cased_Letter', + 'bmp': 'A-Za-z\xB5\xC0-\xD6\xD8-\xF6\xF8-\u01BA\u01BC-\u01BF\u01C4-\u0293\u0295-\u02AF\u0370-\u0373\u0376\u0377\u037B-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0560-\u0588\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FD-\u10FF\u13A0-\u13F5\u13F8-\u13FD\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2134\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2C7B\u2C7E-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA640-\uA66D\uA680-\uA69B\uA722-\uA76F\uA771-\uA787\uA78B-\uA78E\uA790-\uA7BF\uA7C2-\uA7CA\uA7F5\uA7F6\uA7FA\uAB30-\uAB5A\uAB60-\uAB68\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF21-\uFF3A\uFF41-\uFF5A', + 'astral': '\uD801[\uDC00-\uDC4F\uDCB0-\uDCD3\uDCD8-\uDCFB]|\uD803[\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD806[\uDCA0-\uDCDF]|\uD81B[\uDE40-\uDE7F]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDD00-\uDD43]' + }, + { + 'name': 'Ll', + 'alias': 'Lowercase_Letter', + 'bmp': 'a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7BB\uA7BD\uA7BF\uA7C3\uA7C8\uA7CA\uA7F6\uA7FA\uAB30-\uAB5A\uAB60-\uAB68\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A', + 'astral': '\uD801[\uDC28-\uDC4F\uDCD8-\uDCFB]|\uD803[\uDCC0-\uDCF2]|\uD806[\uDCC0-\uDCDF]|\uD81B[\uDE60-\uDE7F]|\uD835[\uDC1A-\uDC33\uDC4E-\uDC54\uDC56-\uDC67\uDC82-\uDC9B\uDCB6-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDCEA-\uDD03\uDD1E-\uDD37\uDD52-\uDD6B\uDD86-\uDD9F\uDDBA-\uDDD3\uDDEE-\uDE07\uDE22-\uDE3B\uDE56-\uDE6F\uDE8A-\uDEA5\uDEC2-\uDEDA\uDEDC-\uDEE1\uDEFC-\uDF14\uDF16-\uDF1B\uDF36-\uDF4E\uDF50-\uDF55\uDF70-\uDF88\uDF8A-\uDF8F\uDFAA-\uDFC2\uDFC4-\uDFC9\uDFCB]|\uD83A[\uDD22-\uDD43]' + }, + { + 'name': 'Lm', + 'alias': 'Modifier_Letter', + 'bmp': '\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C\uA69D\uA717-\uA71F\uA770\uA788\uA7F8\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3\uAAF4\uAB5C-\uAB5F\uAB69\uFF70\uFF9E\uFF9F', + 'astral': '\uD81A[\uDF40-\uDF43]|\uD81B[\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD838[\uDD37-\uDD3D]|\uD83A\uDD4B' + }, + { + 'name': 'Lo', + 'alias': 'Other_Letter', + 'bmp': '\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05EF-\u05F2\u0620-\u063F\u0641-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E45\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1100-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC', + 'astral': '\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC50-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF4A\uDF50]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD838[\uDD00-\uDD2C\uDD4E\uDEC0-\uDEEB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]' + }, + { + 'name': 'Lt', + 'alias': 'Titlecase_Letter', + 'bmp': '\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC' + }, + { + 'name': 'Lu', + 'alias': 'Uppercase_Letter', + 'bmp': 'A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uA7BA\uA7BC\uA7BE\uA7C2\uA7C4-\uA7C7\uA7C9\uA7F5\uFF21-\uFF3A', + 'astral': '\uD801[\uDC00-\uDC27\uDCB0-\uDCD3]|\uD803[\uDC80-\uDCB2]|\uD806[\uDCA0-\uDCBF]|\uD81B[\uDE40-\uDE5F]|\uD835[\uDC00-\uDC19\uDC34-\uDC4D\uDC68-\uDC81\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB5\uDCD0-\uDCE9\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD38\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD6C-\uDD85\uDDA0-\uDDB9\uDDD4-\uDDED\uDE08-\uDE21\uDE3C-\uDE55\uDE70-\uDE89\uDEA8-\uDEC0\uDEE2-\uDEFA\uDF1C-\uDF34\uDF56-\uDF6E\uDF90-\uDFA8\uDFCA]|\uD83A[\uDD00-\uDD21]' + }, + { + 'name': 'M', + 'alias': 'Mark', + 'bmp': '\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1AC0\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F', + 'astral': '\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDF46-\uDF50]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDCE\uDDCF\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC5E\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDEAB-\uDEB7\uDF1D-\uDF2B]|\uD806[\uDC2C-\uDC3A\uDD30-\uDD35\uDD37\uDD38\uDD3B-\uDD3E\uDD40\uDD42\uDD43\uDDD1-\uDDD7\uDDDA-\uDDE0\uDDE4\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDEF3-\uDEF6]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF51-\uDF87\uDF8F-\uDF92\uDFE4\uDFF0\uDFF1]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD30-\uDD36\uDEEC-\uDEEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]' + }, + { + 'name': 'Mc', + 'alias': 'Spacing_Mark', + 'bmp': '\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E\u094F\u0982\u0983\u09BE-\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062-\u1064\u1067-\u106D\u1083\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7\u17C8\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1A19\u1A1A\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1C24-\u1C2B\u1C34\u1C35\u1CE1\u1CF7\u302E\u302F\uA823\uA824\uA827\uA880\uA881\uA8B4-\uA8C3\uA952\uA953\uA983\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9C0\uAA2F\uAA30\uAA33\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE\uAAEF\uAAF5\uABE3\uABE4\uABE6\uABE7\uABE9\uABEA\uABEC', + 'astral': '\uD804[\uDC00\uDC02\uDC82\uDCB0-\uDCB2\uDCB7\uDCB8\uDD2C\uDD45\uDD46\uDD82\uDDB3-\uDDB5\uDDBF\uDDC0\uDDCE\uDE2C-\uDE2E\uDE32\uDE33\uDE35\uDEE0-\uDEE2\uDF02\uDF03\uDF3E\uDF3F\uDF41-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63]|\uD805[\uDC35-\uDC37\uDC40\uDC41\uDC45\uDCB0-\uDCB2\uDCB9\uDCBB-\uDCBE\uDCC1\uDDAF-\uDDB1\uDDB8-\uDDBB\uDDBE\uDE30-\uDE32\uDE3B\uDE3C\uDE3E\uDEAC\uDEAE\uDEAF\uDEB6\uDF20\uDF21\uDF26]|\uD806[\uDC2C-\uDC2E\uDC38\uDD30-\uDD35\uDD37\uDD38\uDD3D\uDD40\uDD42\uDDD1-\uDDD3\uDDDC-\uDDDF\uDDE4\uDE39\uDE57\uDE58\uDE97]|\uD807[\uDC2F\uDC3E\uDCA9\uDCB1\uDCB4\uDD8A-\uDD8E\uDD93\uDD94\uDD96\uDEF5\uDEF6]|\uD81B[\uDF51-\uDF87\uDFF0\uDFF1]|\uD834[\uDD65\uDD66\uDD6D-\uDD72]' + }, + { + 'name': 'Me', + 'alias': 'Enclosing_Mark', + 'bmp': '\u0488\u0489\u1ABE\u20DD-\u20E0\u20E2-\u20E4\uA670-\uA672' + }, + { + 'name': 'Mn', + 'alias': 'Nonspacing_Mark', + 'bmp': '\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B55\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D81\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1ABF\u1AC0\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F', + 'astral': '\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDF46-\uDF50]|\uD804[\uDC01\uDC38-\uDC46\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDDCF\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF40\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB3-\uDCB8\uDCBA\uDCBF\uDCC0\uDCC2\uDCC3\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDD3B\uDD3C\uDD3E\uDD43\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92\uDFE4]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD67-\uDD69\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD30-\uDD36\uDEEC-\uDEEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]' + }, + { + 'name': 'N', + 'alias': 'Number', + 'bmp': '0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19', + 'astral': '\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]' + }, + { + 'name': 'Nd', + 'alias': 'Decimal_Number', + 'bmp': '0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19', + 'astral': '\uD801[\uDCA0-\uDCA9]|\uD803[\uDD30-\uDD39]|\uD804[\uDC66-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF39]|\uD806[\uDCE0-\uDCE9\uDD50-\uDD59]|\uD807[\uDC50-\uDC59\uDD50-\uDD59\uDDA0-\uDDA9]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDD50-\uDD59]|\uD83E[\uDFF0-\uDFF9]' + }, + { + 'name': 'Nl', + 'alias': 'Letter_Number', + 'bmp': '\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF', + 'astral': '\uD800[\uDD40-\uDD74\uDF41\uDF4A\uDFD1-\uDFD5]|\uD809[\uDC00-\uDC6E]' + }, + { + 'name': 'No', + 'alias': 'Other_Number', + 'bmp': '\xB2\xB3\xB9\xBC-\xBE\u09F4-\u09F9\u0B72-\u0B77\u0BF0-\u0BF2\u0C78-\u0C7E\u0D58-\u0D5E\u0D70-\u0D78\u0F2A-\u0F33\u1369-\u137C\u17F0-\u17F9\u19DA\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215F\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA830-\uA835', + 'astral': '\uD800[\uDD07-\uDD33\uDD75-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC65\uDDE1-\uDDF4]|\uD805[\uDF3A\uDF3B]|\uD806[\uDCEA-\uDCF2]|\uD807[\uDC5A-\uDC6C\uDFC0-\uDFD4]|\uD81A[\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD83A[\uDCC7-\uDCCF]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]' + }, + { + 'name': 'P', + 'alias': 'Punctuation', + 'bmp': '!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65', + 'astral': '\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]' + }, + { + 'name': 'Pc', + 'alias': 'Connector_Punctuation', + 'bmp': '_\u203F\u2040\u2054\uFE33\uFE34\uFE4D-\uFE4F\uFF3F' + }, + { + 'name': 'Pd', + 'alias': 'Dash_Punctuation', + 'bmp': '\\-\u058A\u05BE\u1400\u1806\u2010-\u2015\u2E17\u2E1A\u2E3A\u2E3B\u2E40\u301C\u3030\u30A0\uFE31\uFE32\uFE58\uFE63\uFF0D', + 'astral': '\uD803\uDEAD' + }, + { + 'name': 'Pe', + 'alias': 'Close_Punctuation', + 'bmp': '\\)\\]\\}\u0F3B\u0F3D\u169C\u2046\u207E\u208E\u2309\u230B\u232A\u2769\u276B\u276D\u276F\u2771\u2773\u2775\u27C6\u27E7\u27E9\u27EB\u27ED\u27EF\u2984\u2986\u2988\u298A\u298C\u298E\u2990\u2992\u2994\u2996\u2998\u29D9\u29DB\u29FD\u2E23\u2E25\u2E27\u2E29\u3009\u300B\u300D\u300F\u3011\u3015\u3017\u3019\u301B\u301E\u301F\uFD3E\uFE18\uFE36\uFE38\uFE3A\uFE3C\uFE3E\uFE40\uFE42\uFE44\uFE48\uFE5A\uFE5C\uFE5E\uFF09\uFF3D\uFF5D\uFF60\uFF63' + }, + { + 'name': 'Pf', + 'alias': 'Final_Punctuation', + 'bmp': '\xBB\u2019\u201D\u203A\u2E03\u2E05\u2E0A\u2E0D\u2E1D\u2E21' + }, + { + 'name': 'Pi', + 'alias': 'Initial_Punctuation', + 'bmp': '\xAB\u2018\u201B\u201C\u201F\u2039\u2E02\u2E04\u2E09\u2E0C\u2E1C\u2E20' + }, + { + 'name': 'Po', + 'alias': 'Other_Punctuation', + 'bmp': '!-#%-\'\\*,\\.\\/:;\\?@\\\xA1\xA7\xB6\xB7\xBF\u037E\u0387\u055A-\u055F\u0589\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u166E\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u1805\u1807-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2016\u2017\u2020-\u2027\u2030-\u2038\u203B-\u203E\u2041-\u2043\u2047-\u2051\u2053\u2055-\u205E\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00\u2E01\u2E06-\u2E08\u2E0B\u2E0E-\u2E16\u2E18\u2E19\u2E1B\u2E1E\u2E1F\u2E2A-\u2E2E\u2E30-\u2E39\u2E3C-\u2E3F\u2E41\u2E43-\u2E4F\u2E52\u3001-\u3003\u303D\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFE10-\uFE16\uFE19\uFE30\uFE45\uFE46\uFE49-\uFE4C\uFE50-\uFE52\uFE54-\uFE57\uFE5F-\uFE61\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF07\uFF0A\uFF0C\uFF0E\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3C\uFF61\uFF64\uFF65', + 'astral': '\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]' + }, + { + 'name': 'Ps', + 'alias': 'Open_Punctuation', + 'bmp': '\\(\\[\\{\u0F3A\u0F3C\u169B\u201A\u201E\u2045\u207D\u208D\u2308\u230A\u2329\u2768\u276A\u276C\u276E\u2770\u2772\u2774\u27C5\u27E6\u27E8\u27EA\u27EC\u27EE\u2983\u2985\u2987\u2989\u298B\u298D\u298F\u2991\u2993\u2995\u2997\u29D8\u29DA\u29FC\u2E22\u2E24\u2E26\u2E28\u2E42\u3008\u300A\u300C\u300E\u3010\u3014\u3016\u3018\u301A\u301D\uFD3F\uFE17\uFE35\uFE37\uFE39\uFE3B\uFE3D\uFE3F\uFE41\uFE43\uFE47\uFE59\uFE5B\uFE5D\uFF08\uFF3B\uFF5B\uFF5F\uFF62' + }, + { + 'name': 'S', + 'alias': 'Symbol', + 'bmp': '\\$\\+<->\\^`\\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD', + 'astral': '\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]' + }, + { + 'name': 'Sc', + 'alias': 'Currency_Symbol', + 'bmp': '\\$\xA2-\xA5\u058F\u060B\u07FE\u07FF\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BF\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6', + 'astral': '\uD807[\uDFDD-\uDFE0]|\uD838\uDEFF|\uD83B\uDCB0' + }, + { + 'name': 'Sk', + 'alias': 'Modifier_Symbol', + 'bmp': '\\^`\xA8\xAF\xB4\xB8\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u309B\u309C\uA700-\uA716\uA720\uA721\uA789\uA78A\uAB5B\uAB6A\uAB6B\uFBB2-\uFBC1\uFF3E\uFF40\uFFE3', + 'astral': '\uD83C[\uDFFB-\uDFFF]' + }, + { + 'name': 'Sm', + 'alias': 'Math_Symbol', + 'bmp': '\\+<->\\|~\xAC\xB1\xD7\xF7\u03F6\u0606-\u0608\u2044\u2052\u207A-\u207C\u208A-\u208C\u2118\u2140-\u2144\u214B\u2190-\u2194\u219A\u219B\u21A0\u21A3\u21A6\u21AE\u21CE\u21CF\u21D2\u21D4\u21F4-\u22FF\u2320\u2321\u237C\u239B-\u23B3\u23DC-\u23E1\u25B7\u25C1\u25F8-\u25FF\u266F\u27C0-\u27C4\u27C7-\u27E5\u27F0-\u27FF\u2900-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2AFF\u2B30-\u2B44\u2B47-\u2B4C\uFB29\uFE62\uFE64-\uFE66\uFF0B\uFF1C-\uFF1E\uFF5C\uFF5E\uFFE2\uFFE9-\uFFEC', + 'astral': '\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD83B[\uDEF0\uDEF1]' + }, + { + 'name': 'So', + 'alias': 'Other_Symbol', + 'bmp': '\xA6\xA9\xAE\xB0\u0482\u058D\u058E\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u09FA\u0B70\u0BF3-\u0BF8\u0BFA\u0C7F\u0D4F\u0D79\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u214A\u214C\u214D\u214F\u218A\u218B\u2195-\u2199\u219C-\u219F\u21A1\u21A2\u21A4\u21A5\u21A7-\u21AD\u21AF-\u21CD\u21D0\u21D1\u21D3\u21D5-\u21F3\u2300-\u2307\u230C-\u231F\u2322-\u2328\u232B-\u237B\u237D-\u239A\u23B4-\u23DB\u23E2-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u25B6\u25B8-\u25C0\u25C2-\u25F7\u2600-\u266E\u2670-\u2767\u2794-\u27BF\u2800-\u28FF\u2B00-\u2B2F\u2B45\u2B46\u2B4D-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA828-\uA82B\uA836\uA837\uA839\uAA77-\uAA79\uFDFD\uFFE4\uFFE8\uFFED\uFFEE\uFFFC\uFFFD', + 'astral': '\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFDC\uDFE1-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838\uDD4F|\uD83B[\uDCAC\uDD2E]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFA]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]' + }, + { + 'name': 'Z', + 'alias': 'Separator', + 'bmp': ' \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000' + }, + { + 'name': 'Zl', + 'alias': 'Line_Separator', + 'bmp': '\u2028' + }, + { + 'name': 'Zp', + 'alias': 'Paragraph_Separator', + 'bmp': '\u2029' + }, + { + 'name': 'Zs', + 'alias': 'Space_Separator', + 'bmp': ' \xA0\u1680\u2000-\u200A\u202F\u205F\u3000' + } + ]; + + var jabref = createCommonjsModule(function (module, exports) { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.parse = void 0; + function decode(s, sep = ';') { + s = s.replace(/\n/g, ''); + let pos = 0; + const records = ['']; + while (pos < s.length) { + switch (s[pos]) { + case '\\': + pos++; + records[0] += s[pos]; + break; + case sep: + records.unshift(''); + break; + default: + records[0] += s[pos]; + } + pos++; + } + return records.reverse().filter(record => record); + } + const prefixes = { + fileDirectory: 'jabref-meta: fileDirectory:', + groupsversion: 'jabref-meta: groupsversion:', + groupstree: 'jabref-meta: groupstree:', + grouping: 'jabref-meta: grouping:', + }; + /** + * Import the JabRef groups from the `@string` comments in which they were stored. You would typically pass the comments parsed by [[bibtex.parse]] in here. + * + * JabRef knows several group types, and this parser parses most, but not all of them: + * + * * independent group: the keys listed in the group are the entries that are considered to belong to it + * * intersection: the keys listed in the group are considered to belong to the group if they're also in the parent group + * * union: the keys listed in the group are considered to belong to the group, and also the keys that are in the parent group + * * query: not supported by this parser + */ + function parse(comments) { + const result = { + root: [], + groups: {}, + fileDirectory: '', + version: '', + }; + const levels = []; + const decoded = { + fileDirectory: null, + groupsversion: null, + groupstree: null, + grouping: null, + }; + for (const comment of comments) { + for (const [meta, prefix] of Object.entries(prefixes)) { + if (comment.startsWith(prefix)) { + decoded[meta] = decode(comment.substring(prefix.length)); + } + } + } + result.version = decoded.groupsversion && decoded.groupsversion[0]; + result.fileDirectory = decoded.fileDirectory && decoded.fileDirectory[0]; + for (const tree of ['groupstree', 'grouping']) { + if (!decoded[tree]) + continue; + for (const encoded of decoded[tree]) { + const fields = decode(encoded); + const level_type_name = decode(fields.shift(), ':'); + const m = /^([0-9]+) (.+)/.exec(level_type_name[0]); + if (!m) + break; + const level = parseInt(m[1]); + const type = m[2]; // test for StaticGroup? + if (type === 'AllEntriesGroup') + continue; // root + const name = level_type_name[1]; + const intersection = decode(fields.shift())[0]; + const keys = tree === 'grouping' ? [] : fields.map(field => decode(field)[0]); + const group = { + name, + entries: keys, + groups: [], + }; + result.groups[name] = result.groups[name] || group; + if (levels.length < level) { + levels.push(group); + } + else { + levels[level - 1] = group; + } + if (level === 1) { + result.root.push(group); + } + else { + const parent = levels[level - 2]; + switch (intersection) { + case '0': // independent + break; + case '1': // intersect + group.entries = group.entries.filter(key => parent.entries.includes(key)); + break; + case '2': // union + group.entries = group.entries.concat(parent.entries.filter(key => !group.entries.includes(key))); + break; + } + levels[level - 2].groups.push(group); + } + } + } + return result; + } + exports.parse = parse; + + }); + + var bibtexParser = createCommonjsModule(function (module, exports) { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.jabref = exports.chunker = exports.ast = exports.parse = void 0; + + + + class ParserError extends Error { + constructor(message, node) { + super(message); // 'Error' breaks prototype chain here + Object.setPrototypeOf(this, new.target.prototype); // restore prototype chain + this.name = this.constructor.name; + this.node = node; + } + } + class TeXError extends Error { + constructor(message, node, text) { + super(message); // 'Error' breaks prototype chain here + Object.setPrototypeOf(this, new.target.prototype); // restore prototype chain + this.name = this.constructor.name; + this.node = node; + this.text = text; + } + } + + const charClass = { + Lu: categories.filter(cat => ['Uppercase_Letter', 'Titlecase_Letter'].includes(cat.alias)).map(cat => cat.bmp).join(''), + Ll: categories.find(cat => cat.alias === 'Lowercase_Letter').bmp, + LnotLu: categories.filter(cat => ['Lowercase_Letter', 'Modifier_Letter', 'Other_Letter', 'Nonspacing_Mark', 'Spacing_Mark', 'Decimal_Number', 'Letter_Number'].includes(cat.alias)).map(cat => cat.bmp).join(''), + P: categories.find(cat => cat.alias === 'Punctuation').bmp, + L: categories.find(cat => cat.alias === 'Letter').bmp, + N: categories.filter(cat => ['Decimal_Number', 'Letter_Number'].includes(cat.alias)).map(cat => cat.bmp).join(''), + AlphaNum: categories.filter(cat => ['Letter', 'Decimal_Number', 'Letter_Number'].includes(cat.alias)).map(cat => cat.bmp).join(''), + LC: categories.find(cat => cat.alias === 'Cased_Letter').bmp, + }; + const marker = { + and: '\u0001', + comma: '\u0002', + space: '\u0003', + literal: '\u0004', + markup: '\u0005', + re: { + and: /./, + comma: /./, + space: /./, + literal: /./, + literalName: /./, + }, + clean(s) { + return s.replace(marker.re.space, ' ').replace(marker.re.comma, ', ').replace(marker.re.literal, ''); + }, + }; + marker.re = { + and: new RegExp(marker.and, 'g'), + comma: new RegExp(marker.comma, 'g'), + space: new RegExp(marker.space, 'g'), + literal: new RegExp(marker.literal, 'g'), + literalName: new RegExp(`^${marker.literal}([^${marker.literal}]*)${marker.literal}$`), + }; + const preserveCase = { + leadingCap: new RegExp(`^[${charClass.Lu}][${charClass.LnotLu}]+[${charClass.P}]?$`), + allCaps: new RegExp(`^[${charClass.Lu}${charClass.N}]{2,}$`), + allLower: new RegExp(`^[${charClass.Ll}${charClass.N}]{2,}$`), + joined: new RegExp(`^[${charClass.Lu}][${charClass.LnotLu}]*([-+][${charClass.L}${charClass.N}]+)*[${charClass.P}]*$`), + hasUpper: new RegExp(`[${charClass.Lu}]`), + hasLower: new RegExp(`[${charClass.Ll}]`), + isNumber: /^[0-9]+$/, + hasAlpha: new RegExp(`[${charClass.L}]`), + hasAlphaNum: new RegExp(`[${charClass.AlphaNum}]`), + notAlphaNum: new RegExp(`[^${charClass.AlphaNum}]`, 'g'), + sentenceStart: new RegExp(`(^|([\u2014:?!.]\\s+))[${charClass.Lu}]`, 'g'), + markup: /<\/?span[^>]*>/g, + acronym: new RegExp(`.*\\.${marker.markup}*[${charClass.Lu}]${marker.markup}*\\.$`), + notCaseSensitive: new RegExp(`[^${charClass.LC}]`), + isCaseSensitive: new RegExp(`[${charClass.LC}]`), + quoted: /("[^"]+")|(“[^“]+“)/g, + }; + const fields = { + creator: [ + 'author', + 'bookauthor', + 'collaborator', + 'commentator', + 'director', + 'editor', + 'editora', + 'editorb', + 'editors', + 'holder', + 'scriptwriter', + 'translator', + ], + title: [ + 'title', + 'series', + 'shorttitle', + 'booktitle', + 'type', + 'origtitle', + 'maintitle', + 'eventtitle', + ], + unnest: [ + 'publisher', + 'location', + ], + verbatim: [ + 'url', + 'doi', + 'file', + 'files', + 'eprint', + 'verba', + 'verbb', + 'verbc', + 'groups', + ], + html: [ + 'annotation', + 'comment', + 'annote', + 'review', + 'notes', + 'note', + ], + unabbrev: [ + 'journal', + 'journaltitle', + 'journal-full', + ], + }; + const english = [ + 'american', + 'british', + 'canadian', + 'english', + 'australian', + 'newzealand', + 'usenglish', + 'ukenglish', + 'en', + 'eng', + 'en-au', + 'en-bz', + 'en-ca', + 'en-cb', + 'en-gb', + 'en-ie', + 'en-jm', + 'en-nz', + 'en-ph', + 'en-tt', + 'en-us', + 'en-za', + 'en-zw', + 'anglais', + ]; + class Parser { + constructor(options = {}) { + this.in_preamble = false; + this.preamble = []; + this.log = function (str) { }; // tslint:disable-line variable-name only-arrow-functions no-empty + for (const [option, value] of Object.entries(options)) { + if (typeof value === 'undefined') + delete options[option]; + } + if (options.errorHandler === false) { + // tslint:disable-next-line only-arrow-functions no-empty + options.errorHandler = function (err) { }; + } + else if (options.errorHandler === undefined) { + // tslint:disable-next-line only-arrow-functions + options.errorHandler = function (err) { throw err; }; + } + if (typeof options.sentenceCase === 'boolean') { + options.sentenceCase = options.sentenceCase ? english : []; + } + else { + options.sentenceCase = options.sentenceCase || english; + } + if (!options.strings) + options.strings = {}; + if (!options.unabbreviate) + options.unabbreviate = {}; + if (options.raw) { + options.sentenceCase = false; + options.caseProtection = false; + } + this.options = Object.assign({ caseProtection: 'as-needed', verbatimFields: [/^citeulike-linkout-[0-9]+$/, ...fields.verbatim], verbatimCommands: ['url', 'href'], unnestFields: [...fields.title, ...fields.unnest, ...fields.verbatim], unnestMode: 'unwrap', htmlFields: fields.html, guessAlreadySentenceCased: true, markup: {} }, options); + const markup_defaults = { + enquote: { open: '\u201c', close: '\u201d' }, + sub: { open: '', close: '' }, + sup: { open: '', close: '' }, + bold: { open: '', close: '' }, + italics: { open: '', close: '' }, + smallCaps: { open: '', close: '' }, + caseProtect: { open: '', close: '' }, + roman: { open: '', close: '' }, + fixedWidth: { open: '', close: '' }, + }; + // patch in because the options will likely not have enquote and case-protect + for (const [markup, { open, close }] of Object.entries(markup_defaults)) { + this.options.markup[markup] = this.options.markup[markup] || { open, close }; + } + for (const i of [1, 2, 3, 4]) { // tslint:disable-line:no-magic-numbers + this.options.markup[`h${i}`] = this.options.markup[`h${i}`] || { open: ``, close: `` }; + } + this.unresolvedStrings = {}; + this.errors = []; + this.comments = []; + this.entries = []; + this.strings = {}; + this.newcommands = {}; + this.default_strings = { + JAN: [this.text('01')], + FEB: [this.text('02')], + MAR: [this.text('03')], + APR: [this.text('04')], + MAY: [this.text('05')], + JUN: [this.text('06')], + JUL: [this.text('07')], + AUG: [this.text('08')], + SEP: [this.text('09')], + OCT: [this.text('10')], + NOV: [this.text('11')], + DEC: [this.text('12')], + ACMCS: [this.text('ACM Computing Surveys')], + ACTA: [this.text('Acta Informatica')], + CACM: [this.text('Communications of the ACM')], + IBMJRD: [this.text('IBM Journal of Research and Development')], + IBMSJ: [this.text('IBM Systems Journal')], + IEEESE: [this.text('IEEE Transactions on Software Engineering')], + IEEETC: [this.text('IEEE Transactions on Computers')], + IEEETCAD: [this.text('IEEE Transactions on Computer-Aided Design of Integrated Circuits')], + IPL: [this.text('Information Processing Letters')], + JACM: [this.text('Journal of the ACM')], + JCSS: [this.text('Journal of Computer and System Sciences')], + SCP: [this.text('Science of Computer Programming')], + SICOMP: [this.text('SIAM Journal on Computing')], + TOCS: [this.text('ACM Transactions on Computer Systems')], + TODS: [this.text('ACM Transactions on Database Systems')], + TOG: [this.text('ACM Transactions on Graphics')], + TOMS: [this.text('ACM Transactions on Mathematical Software')], + TOOIS: [this.text('ACM Transactions on Office Information Systems')], + TOPLAS: [this.text('ACM Transactions on Programming Languages and Systems')], + TCS: [this.text('Theoretical Computer Science')], + }; + } + ast(input, clean = true) { + const _ast = []; + for (const chunk of chunker.parse(input)) { + let chunk_ast = grammar.parse(chunk.text, Object.assign(Object.assign({}, this.options), { combiningDiacritics: unicode2latex.diacritics.commands })); + if (clean) + chunk_ast = this.clean(chunk_ast); + _ast.push(chunk_ast); + } + return _ast; + } + parse(input) { + return this.options.async ? this.parseAsync(input) : this.parseSync(input); + } + parseSync(input) { + for (const chunk of chunker.parse(input)) { + this.parseChunk(chunk); + } + return this.parsed(); + } + async parseAsync(input) { + for (const chunk of await chunker.parse(input, { async: true })) { + this.parseChunk(chunk); + } + return this.parsed(); + } + parsed() { + this.field = null; + const strings = {}; + this.cleaning = { type: 'other' }; + for (const [key, value] of Object.entries(this.strings)) { + this.field = { + name: '@string', + text: '', + level: 0, + preserveRanges: null, + words: { + upper: 0, + lower: 0, + other: 0, + }, + }; + this.convert(this.clean(value)); + strings[key] = this.field.text; + } + return { + errors: this.errors, + entries: this.entries, + comments: this.comments, + strings, + preamble: this.preamble, + }; + } + preserve(start, end, reason) { + if (!this.field.preserveRanges) + return; + if (!end) { + this.field.preserveRanges = null; + return; + } + /* + this.field.preserveRanges = this.field.preserveRanges.filter(range => range.start < start || range.end > end) + if (this.field.preserveRanges.find(range => range.start <= start && range.end >= end)) return + */ + /* + if (this.field.preserveRanges && this.field.preserveRanges.length) { + const last = this.field.preserveRanges[this.field.preserveRanges.length - 1] + if (start < last.start) throw new Error(JSON.stringify({...last, new: { start, end, reason }, text: this.field.text})) + } + */ + this.field.preserveRanges.push({ start, end, reason }); + } + parseChunk(chunk) { + this.chunk = chunk.text; + try { + let bib = grammar.parse(chunk.text, Object.assign(Object.assign({}, this.options), { combiningDiacritics: unicode2latex.diacritics.commands })); + if (bib.kind !== 'Bibliography') + throw new Error(this.show(bib)); + bib = this.clean(bib); + for (const entity of bib.children) { + switch (entity.kind) { + case 'Entry': + case 'BracedComment': + case 'LineComment': + case 'PreambleExpression': + this.convert(entity); + break; + case 'StringDeclaration': + case 'NonEntryText': + break; + } + } + return bib; + } + catch (err) { + if (!err.location) + throw err; + this.errors.push({ + message: err.message, + line: err.location.start.line + chunk.offset.line, + column: err.location.start.column, + source: this.chunk, + }); + return null; + } + } + show(o) { + // tslint:disable-next-line prefer-template + let text = JSON.stringify(o); + if (this.chunk) + text += '\n' + this.chunk.trim(); + return text; + } + text(value = '') { + return { kind: 'Text', value, mode: 'text' }; + } + error(err, returnvalue) { + if (typeof this.options.errorHandler === 'function') + this.options.errorHandler(err); + return returnvalue; + } + condense(node) { + // apply cleaning to resulting children + node.value = node.value.map(child => this.clean(child)); + // unpack redundant blocks + node.value = node.value.reduce((acc, child, i) => { + if (child.kind === 'Block' && !child.case && Object.keys(child.markup).length === 0) { + acc = acc.concat(child.value); + } + else { + acc.push(child); + } + return acc; + }, []); + // condense text nodes to make whole words for sentence casing + node.value = node.value.reduce((acc, child, i) => { + if (acc.length === 0) { + acc.push(child); + return acc; + } + const last = acc[acc.length - 1]; + const next = node.value[i + 1]; + if (this.options.caseProtection === 'strict' && this.onlyCaseProtected(last) && child.kind === 'Text' && !child.value.match(preserveCase.isCaseSensitive) && this.onlyCaseProtected(next)) { + last.value.push(child); + delete last.source; + return acc; + } + if (last.kind === 'Block' && child.kind === 'Block' && Object.keys(last.markup).sort().join('/') === Object.keys(child.markup).sort().join('/')) { + last.value = last.value.concat(child.value); + delete last.source; + return acc; + } + if (last.kind === 'Text' && child.kind === 'Text' && last.mode === child.mode) { + last.value += child.value; + delete last.source; + return acc; + } + acc.push(child); + return acc; + }, []); + } + onlyCaseProtected(node) { + return (node === null || node === void 0 ? void 0 : node.kind) === 'Block' && node.case === 'protect' && Object.keys(node.markup).join('/') === ''; + } + argument(node, kind) { + if (!node.arguments || !node.arguments.required.length) + return (kind === 'none'); + // expect 'n' text arguments + if (typeof kind === 'number') { + if (node.arguments.required.length !== kind) + return false; + return node.arguments.required; + } + // return first argument if it's the only one + if (node.arguments.required.length !== 1) + return false; + // loose checking for text + if (kind === 'text') { + const first = node.arguments.required[0]; + if (first.kind === 'Block' && first.value.length === 1) { + if (first.value[0].kind === 'Text') + return first.value[0].value; + } + // fall back to strict kind check + kind = 'Text'; + } + // return first argument if it's the only one and is of the specified kind + if (node.arguments.required.length !== 1 || node.arguments.required[0].kind !== kind) + return false; + switch (kind) { + case 'Text': + return node.arguments.required[0].value; + case 'RegularCommand': + case 'Block': + return node.arguments.required[0]; + } + return false; + } + clean(node) { + if (Array.isArray(node)) + return node.map(child => this.clean(child)); + delete node.loc; + switch (node.kind) { + case 'InlineMath': + case 'DisplayMath': + return this.clean_block(node); + case 'Environment': + return this.clean_environment(node); + case 'Block': + return this.clean_block(node); + case 'Bibliography': + return this.clean_bib(node); + case 'RegularCommand': + return this.clean_command(node); + case 'DiacriticCommand': + return this.clean_diacritic(node); + case 'Entry': + return this.clean_entry(node); + case 'Field': + return this.options.raw ? node : this.clean_field(node); + case 'StringDeclaration': + return this.clean_stringdecl(node); + case 'StringReference': + return this.clean_stringref(node); + case 'SubscriptCommand': + case 'SuperscriptCommand': + return this.clean_script(node); + case 'SymbolCommand': + return this.clean_symbol(node); + case 'PreambleExpression': + return this.clean_preamble(node); + case 'Number': + case 'Text': + case 'BracedComment': + case 'LineComment': + return node; + default: + return this.error(new ParserError(`no cleanup method for ${this.show(node)}`, node), this.text()); + } + } + clean_preamble(node) { + this.in_preamble = true; + const clean = this.clean(node.value); + this.in_preamble = false; + return clean; + } + clean_bib(node) { + node.children = node.children.filter(child => child.kind !== 'NonEntryText').map(child => this.clean(child)); + return node; + } + clean_stringdecl(node) { + this.strings[node.name.toUpperCase()] = node.value; + return node; + } + clean_stringref(node) { + var _a; + const name = node.name.toUpperCase(); + const _string = this.strings[name] + || this.options.strings[name] + || this.default_strings[name] + || (fields.unabbrev.includes(this.cleaning.name) && ((_a = this.options.unabbreviate[name]) === null || _a === void 0 ? void 0 : _a.text) && [this.text(this.options.unabbreviate[name].text)]); + if (!_string) { + if (!this.unresolvedStrings[name]) + this.errors.push({ message: `Unresolved @string reference ${JSON.stringify(node.name)}` }); + this.unresolvedStrings[name] = true; + } + return this.clean({ + kind: 'Block', + // if the string isn't found, add it as-is but exempt it from sentence casing + case: _string ? undefined : 'preserve', + markup: {}, + value: _string ? JSON.parse(JSON.stringify(_string)) : [this.text(node.name)], + }); + } + clean_entry(node) { + const shortjournals = []; + for (const field of node.fields) { + if (fields.unabbrev.includes(field.name) && Array.isArray(field.value)) { + const abbr = field.value.map(v => v.source).join(''); + const journal = this.options.unabbreviate[abbr]; + if (journal) { + shortjournals.push(Object.assign(Object.assign({}, JSON.parse(JSON.stringify(field))), { name: 'shortjournal' })); + field.value = JSON.parse(JSON.stringify(journal.ast)); + } + } + } + node.fields = node.fields.concat(shortjournals).map(child => this.clean(child)); + return node; + } + startCleaning(name) { + name = name.toLowerCase(); + if (fields.title.includes(name)) { + this.cleaning = { type: 'title', name }; + } + else if (fields.creator.includes(name.replace(/s$/, ''))) { + this.cleaning = { type: 'creator', name: name.replace(/s$/, '') }; + } + else { + this.cleaning = { type: 'other', name }; + } + } + stripNoCase(node, strip, preserve) { + switch (node.kind) { + case 'RegularCommand': + // a bit cheaty to assume these to be nocased, but it's just more likely to be what people want + if (['chsf', 'bibstring', 'cite'].includes(node.command)) + strip = true; + node.arguments.required.map(arg => this.stripNoCase(arg, strip, preserve)); + break; + case 'Block': + case 'InlineMath': + case 'DisplayMath': + if (strip && node.case === 'protect') { + if (preserve) { + node.case = 'preserve'; + } + else { + delete node.case; + } + } + node.value.map(v => this.stripNoCase(v, strip || node.case === 'protect', preserve)); + break; + case 'Field': + if (Array.isArray(node.value)) + node.value.map(v => this.stripNoCase(v, strip, preserve)); + break; + } + } + isVerbatimField(name) { + return !!this.options.verbatimFields.find(p => (typeof p === 'string') ? name === p : name.match(p)); + } + clean_field(node) { + this.startCleaning(node.name); + this.stripNoCase(node, !this.options.caseProtection || this.isVerbatimField(node.name), this.options.sentenceCase.length === 0); + if (Array.isArray(node.value)) + this.condense(node); + return node; + } + clean_script(node) { + let m, value, singlechar; + // recognize combined forms like \^\circ + if (singlechar = unicode2latex.latex[node.source]) + return this.text(singlechar); + if ((m = node.source.match(/^([\^_])([^{}]+)$/)) && ((singlechar = unicode2latex.latex[`${m[1]}${m[2]}`]) || (singlechar = unicode2latex.latex[`${m[1]}{${m[2]}}`]))) + return this.text(singlechar); + if ((m = node.source.match(/^([\^_])\{([^{}]+)\}$/)) && ((singlechar = unicode2latex.latex[`${m[1]}${m[2]}`]) || (singlechar = unicode2latex.latex[`${m[1]}{${m[2]}}`]))) + return this.text(singlechar); + const cmd = node.kind === 'SuperscriptCommand' ? '^' : '_'; + if (typeof node.value === 'string' && (singlechar = unicode2latex.latex[`${cmd}${node.value}`] || unicode2latex.latex[`${cmd}{${node.value}}`])) { + return this.text(singlechar); + } + if (typeof node.value === 'string') { + value = [this.text(node.value)]; + } + else if (!Array.isArray(node.value)) { + value = [node.value]; + } + else { + value = node.value; + } + const mode = node.kind === 'SuperscriptCommand' ? 'sup' : 'sub'; + return this.clean({ + kind: 'Block', + markup: { [mode]: true }, + value, + }); + } + clean_environment(node) { + this.condense(node); + return node; + } + needsProtection(word) { + return !word.match(preserveCase.hasUpper) && word.match(preserveCase.hasLower); + } + clean_block(node) { + var _a; + this.condense(node); + if (this.options.caseProtection !== 'strict' && ((_a = this.cleaning) === null || _a === void 0 ? void 0 : _a.type) === 'title' && node.case === 'protect') { + // test whether we can get away with skipping case protection because it contains all words that will be preserved anyway when converting back to Title Case + let preserve = true; + for (const child of node.value) { + if (child.kind === 'Text') { + const value = child.value.trim(); + preserve = !value.match(preserveCase.isCaseSensitive) || !value.split(/\s+/).find(word => this.needsProtection(word)); + } + else { + preserve = false; + } + if (!preserve) + break; + } + if (preserve) + node.case = 'preserve'; + } + if (node.kind === 'Block') { + for (const [markup, on] of Object.entries(node.markup)) { + if (!on) + delete node.markup[markup]; + } + } + return node; + } + clean_diacritic(node) { + const char = node.dotless ? `\\${node.character}` : node.character; + let unicode = unicode2latex.latex[`\\${node.mark}{${char}}`] + || unicode2latex.latex[`\\${node.mark}${char}`] + || unicode2latex.latex[`{\\${node.mark} ${char}}`] + || unicode2latex.latex[`{\\${node.mark}${char}}`] + || unicode2latex.latex[`\\${node.mark} ${char}`]; + if (!unicode && !node.dotless && node.character.length === 1 && unicode2latex.diacritics.tounicode[node.mark]) + unicode = node.character + unicode2latex.diacritics.tounicode[node.mark]; + if (!unicode && !this.in_preamble) + return this.error(new TeXError(`Unhandled \\${node.mark}{${char}}`, node, this.chunk), this.text()); + return this.text(unicode); + } + clean_symbol(node) { + if (node.command === '\\') + return this.text('\n'); + return this.text(unicode2latex.latex[`\\${node.command}`] || node.command); + } + first_text_block(node) { + if (!node) + return null; + if (node.kind === 'Block') { + for (const child of node.value) { + switch (child.kind) { + case 'Text': + return child.value ? node : null; + case 'Block': + const candidate = this.first_text_block(child); + if (candidate) + return candidate; + break; + default: + return null; + } + } + } + else { + return null; + } + } + clean_command(node) { + var _a; + let arg, unicode; + if (unicode = unicode2latex.latex[node.source]) + return this.text(unicode); + switch (node.command) { + case 'newcommand': + if (((_a = node.arguments) === null || _a === void 0 ? void 0 : _a.required.length) === 2 + && node.arguments.required[0].kind === 'Block' + && node.arguments.required[0].value.length === 1 + && node.arguments.required[0].value[0].kind === 'RegularCommand' + && node.arguments.required[1].kind === 'Block') { + this.newcommands[node.arguments.required[0].value[0].command] = node.arguments.required[1].value; + return this.text(); + } + // console.log('newcommand?', JSON.stringify(node, null, 2)) + break; + case 'item': + return { kind: 'Markup', value: '
  • ', source: node.source }; + case 'frac': + if (arg = this.argument(node, 2)) { + if (arg[0].kind === 'Text' && arg[1].kind === 'Text' && (unicode = unicode2latex.latex[`\\frac{${arg[0].value}}{${arg[1].value}}`])) + return this.text(unicode); + return this.clean({ + kind: 'Block', + case: 'protect', + markup: {}, + value: [ + { kind: 'Block', markup: { sup: true }, value: [arg[0]] }, + this.text('\u2044'), + { kind: 'Block', markup: { sub: true }, value: [arg[1]] }, + ], + }); + } + break; + // ignore + case 'vspace': + case 'vphantom': + case 'path': + case 'aftergroup': + case 'ignorespaces': + case 'relax': + case 'noopsort': + case 'ifdefined': + case 'DeclarePrefChars': + case 'else': + case 'fi': + case 'makeatletter': + return this.text(); + case 'ElsevierGlyph': + if (arg = this.argument(node, 'Text')) { + if (unicode = unicode2latex.latex[`\\${node.command}{${arg}}`]) + return this.text(unicode); + return this.text(String.fromCharCode(parseInt(arg, 16))); + } + break; + case 'chsf': + if (this.argument(node, 'none')) + return this.text(); + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'bibstring': + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'cite': + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'textsuperscript': + case 'sp': + if ((arg = this.argument(node, 'Text')) && (unicode = unicode2latex.latex[`^{${arg}}`])) + return this.text(unicode); + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'textsubscript': + case 'sb': + if ((arg = this.argument(node, 'Text')) && (unicode = unicode2latex.latex[`_{${arg}}`])) + return this.text(unicode); + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'textsc': + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'enquote': + case 'mkbibquote': + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'textbf': + case 'mkbibbold': + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'section': + case 'subsection': + case 'subsubsection': + case 'subsubsubsection': + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'mkbibitalic': + case 'mkbibemph': + case 'textit': + case 'emph': + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + if (arg = this.argument(node, 'Text')) + return this.clean({ kind: 'Block', markup: { italics: true }, value: [this.text(arg)] }); + break; + case 'bibcyr': + if (this.argument(node, 'none')) + return this.text(); + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'hspace': + case 'mathrm': + case 'textrm': + case 'ocirc': + case 'mbox': + if (arg = this.argument(node, 'text')) { + unicode = unicode2latex.latex[`\\${node.command}{${arg}}`]; + return this.text(unicode || (node.command === 'hspace' ? ' ' : arg)); + } + else if (!node.arguments.required.length) { + return this.text(); + } + else if (arg = this.argument(node, 'Block')) { + return this.clean(arg); + } + break; + // just take the URL? Not the label? + case 'href': + if (arg = this.argument(node, 2)) + return this.clean(arg[0]); + break; + case 'url': + if (arg = this.argument(node, 'Text')) + return this.text(arg); + if (arg = this.argument(node, 'Block')) + return this.clean(arg); + break; + case 'sl': + case 'em': + case 'it': + case 'itshape': + case 'bf': + case 'bfseries': + case 'sc': + case 'scshape': + case 'tt': + case 'rm': + case 'sf': + case 'verb': + // handled in the grammar + return this.text(); + // wouldn't know what to do with these + case 'left': + case 'right': + return this.text(); + case 'par': + return this.text('\n\n'); + case 'cyr': + if (this.argument(node, 'none')) + return this.text(); + break; + case 'polhk': + if (unicode = this.argument(node, 'text')) { + if (unicode.length === 1) + return this.text(unicode + '\u0328'); + } + if (this.argument(node, 'none')) + return this.text('\u0328'); + break; + default: + if (node.kind === 'RegularCommand' && this.newcommands[node.command]) { + return this.clean({ + kind: 'Block', + markup: {}, + value: JSON.parse(JSON.stringify(this.newcommands[node.command])), + }); + } + if (unicode2latex.diacritics.tounicode[node.command]) { + node.arguments.required = this.clean(node.arguments.required); + let block; + if (node.arguments.required.length === 1 && node.arguments.required[0].kind === 'Text') { + // no idea why I can't just straight return this but typescript just won't shut up + block = { + kind: 'Block', + markup: {}, + value: [{ + kind: 'DiacriticCommand', + mark: node.command, + character: node.arguments.required[0].value, + dotless: false, + loc: node.arguments.required[0].loc, + source: node.arguments.required[0].source, + }], + }; + return this.clean(block); + } + else if (block = this.first_text_block(node.arguments.required[0])) { + let fixed = false; + block.value = block.value.reduce((value, child) => { + if (!fixed && child.kind === 'Text') { + fixed = true; + value.push({ kind: 'DiacriticCommand', mark: node.command, character: child.value[0] }); + value.push(Object.assign(Object.assign({}, child), { value: child.value.substring(1) })); + } + else { + value.push(child); + } + return value; + }, []); + return this.clean({ + kind: 'Block', + markup: {}, + value: node.arguments.required, + }); + } + else { + // overline without arguments doesn't seem to render in LaTeX + if (node.command === 'overline') + return this.text(' '); + return this.clean({ + kind: 'Block', + markup: {}, + value: [this.text(' ' + unicode2latex.diacritics.tounicode[node.command])].concat(node.arguments.required), + }); + } + } + if (unicode = unicode2latex.latex[node.source] || unicode2latex.latex[`${node.source}{}`]) + return this.text(unicode); + if ((unicode = unicode2latex.latex[`\\${node.command}`] || unicode2latex.latex[`\\${node.command}{}`]) && this.argument(node, 'none')) + return this.text(unicode); + if ((arg = this.argument(node, 'Text')) && (unicode = unicode2latex.latex[`\\${node.command}{${arg}}`])) + return this.text(unicode); + break; + } + if (this.in_preamble) + return this.text(node.source); + return this.error(new TeXError(`Unhandled command: ${node.command}` + this.show(node), node, this.chunk), this.text()); + } + preserveCase(word) { + // word = word.replace(new RegExp(`"[${this.markup.enquote.open}${this.markup.enquote.close}:()]`, 'g'), '') + var _a, _b; + if (!word.trim()) + return false; + if (!word.match(preserveCase.hasAlphaNum)) + return true; + word = word.replace(/[\/’'”:()]/g, ''); + if (word === 'I') + return true; + if (word.length === 1) + return false; + if (word.replace(preserveCase.notCaseSensitive) === '') + return false; + // word = word.replace(preserveCase.notAlphaNum, '') + // simple cap at start of field + if (word.match(preserveCase.leadingCap) && ((_b = (_a = this.field) === null || _a === void 0 ? void 0 : _a.text) === null || _b === void 0 ? void 0 : _b.length) === 0) + return false; + if (word.match(preserveCase.allCaps)) + return true; + if (word.length > 1 && word.match(preserveCase.joined)) + return false; + if (word.match(preserveCase.hasUpper)) + return true; + if (word.match(preserveCase.isNumber)) + return true; + return false; + } + convert(node) { + if (Array.isArray(node)) + return node.map(child => this.convert(child)); + if (this.options.raw && this.field) + node = this.text(node.source); + switch (node.kind) { + case 'Markup': + if (this.field) + this.field.text += node.value; + break; + case 'BracedComment': + case 'LineComment': + this.comments.push(node.value); + break; + case 'Entry': + this.convert_entry(node); + break; + case 'Number': + this.convert_number(node); + break; + case 'Text': + this.convert_text(node); + break; + case 'Block': + case 'InlineMath': + case 'DisplayMath': + const start = this.field ? this.field.text.length : null; + const preserve = typeof start === 'number' && this.field.preserveRanges; + this.convert_block(node); + if (preserve && (node.case || node.kind.endsWith('Math'))) + this.preserve(start, this.field.text.length); // , `convert-block: case=${node.case}, math=${node.kind.endsWith('Math')}`) + break; + case 'Environment': + this.convert_environment(node); + break; + case 'PreambleExpression': + this.preamble.push(node.value.map(preamble => preamble.source).join('\n\n')); + break; + case 'DisplayMath': + case 'InlineMath': + case 'StringDeclaration': + break; + default: + return this.error(new ParserError(`no converter for ${node.kind}: ${this.show(node)}`, node), undefined); + } + } + splitOnce(s, sep, fromEnd = false) { + const split = fromEnd ? s.lastIndexOf(sep) : s.indexOf(sep); + return (split < 0) ? [s, ''] : [s.substr(0, split), s.substr(split + 1)]; + } + parseName(name) { + let parsed = null; + const parts = name.split(marker.comma); + if (parts.length && !parts.find(p => !p.match(/^[a-z]+(-i)?=/i))) { // extended name format + for (const part of parts) { + parsed = parsed || {}; + const [attr, value] = this.splitOnce(part.replace(marker.re.space, ''), '=').map(v => v.trim()); + if (!value) { + parsed = null; + break; + } + switch (attr.toLowerCase()) { + case 'family': + parsed.lastName = value; + break; + case 'given-i': + parsed.initial = value; + break; + case 'given': + parsed.firstName = value; + break; + case 'prefix': + parsed.prefix = value; + break; + case 'suffix': + parsed.suffix = value; + break; + case 'useprefix': + parsed.useprefix = value.toLowerCase() === 'true'; + break; + case 'juniorcomma': + parsed.useprefix = value.toLowerCase() === 'true'; + break; + default: + parsed[attr.toLowerCase()] = value; + break; + } + } + } + const prefix = /(.+?)\s+(vere|von|van den|van der|van|de|del|della|der|di|da|pietro|vanden|du|st.|st|la|lo|ter|bin|ibn|te|ten|op|ben|al)\s+(.+)/; + let m; + switch (parsed ? 0 : parts.length) { + case 0: + // already parsed + break; + case 1: // name without commas + // literal + if (marker.re.literalName.test(parts[0])) { + parsed = { literal: parts[0] }; + } + else if (m = parts[0].replace(marker.re.space, ' ').match(prefix)) { // split on prefix + parsed = { + firstName: m[1], + prefix: m[2], + lastName: m[3], + }; + } + else { + // top-level "firstname lastname" + const [firstName, lastName] = this.splitOnce(parts[0], marker.space, true); + if (lastName) { + parsed = { firstName, lastName }; + } + else { + parsed = { lastName: firstName }; + } + } + break; + case 2: // lastname, firstname + parsed = { + lastName: parts[0], + firstName: parts[1], + }; + break; + default: // lastname, suffix, firstname + parsed = { + lastName: parts[0], + suffix: parts[1], + firstName: parts.slice(2).join(marker.comma), + }; + } + for (const [k, v] of Object.entries(parsed)) { + if (typeof v !== 'string') + continue; + parsed[k] = marker.clean(v).trim(); + } + return parsed; + } + convert_entry(node) { + var _a; + this.entry = { + key: node.id, + type: node.type, + fields: {}, + creators: {}, + }; + this.entries.push(this.entry); + // order these first for language-dependent sentence casing + const order = ['langid', 'hyphenation', 'language']; + node.fields.sort((a, b) => { + const ia = order.indexOf(a.name); + const ib = order.indexOf(b.name); + if (ia === -1 && ib === -1) + return a.name.localeCompare(b.name); // doesn't matter really + if (ia === -1) + return 1; + if (ib === -1) + return -1; + return ia - ib; + }); + let sentenceCase = !!this.options.sentenceCase.length; // if sentenceCase is empty, no sentence casing + for (const field of node.fields) { + if (field.kind !== 'Field') + return this.error(new ParserError(`Expected Field, got ${field.kind}`, node), undefined); + this.startCleaning(field.name); + /* + if (this.options.raw && this.fieldType !== 'creator') { + this.entry.fields[field.name] = [ field.value.map(v => v.source).join('') ] + continue + } + */ + this.field = { + name: field.name, + text: '', + level: 0, + words: { + upper: 0, + lower: 0, + other: 0, + }, + preserveRanges: (sentenceCase && fields.title.includes(field.name)) ? [] : null, + html: this.options.htmlFields.includes(field.name), + }; + this.entry.fields[this.field.name] = this.entry.fields[this.field.name] || []; + // special case for 'title = 2020' + if (field.value.kind === 'Number') { + this.entry.fields[this.field.name].push(field.value.value); + this.field = null; + continue; + } + this.convert(field.value); + this.field.text = this.field.text.trim(); + this.field.text = this.field.text.replace(/<\/([a-z])><\1>/g, ''); + this.field.text = this.field.text.replace(/<([a-z])>(\s*)<\/\1>/g, '$1'); + if (!this.field.text) + continue; + // disable sentenceCasing if not an english + switch (this.field.name) { + case 'langid': + case 'hyphenation': + sentenceCase = sentenceCase && this.options.sentenceCase.includes(this.field.text.toLowerCase()); + break; + case 'language': + sentenceCase = sentenceCase && !!(this.field.text.toLowerCase().trim().split(/\s*,\s*/).find(lang => this.options.sentenceCase.includes(lang))); + break; + } + // "groups" is a jabref 3.8+ monstrosity + if (this.field.name.match(/^(keywords?|groups)$/)) { + for (let text of this.field.text.split(marker.comma)) { + text = text.trim(); + if (text) + this.entry.fields[this.field.name].push(text); + } + } + else if (this.cleaning.type === 'creator') { + if (!this.entry.creators[this.field.name]) + this.entry.creators[this.field.name] = []; + // {M. Halle, J. Bresnan, and G. Miller} + if (this.field.text.includes(`${marker.comma}${marker.and}`)) { // + this.field.text = this.field.text.replace(new RegExp(`${marker.comma}${marker.and}`, 'g'), marker.and).replace(new RegExp(marker.comma), marker.and); + } + for (const creator of this.field.text.split(marker.and)) { + this.entry.fields[this.field.name].push(marker.clean(creator)); + this.entry.creators[this.field.name].push(this.parseName(creator)); + } + } + else if (fields.unabbrev.includes(field.name)) { // doesn't get sentence casing anyhow TODO: booktitle does! + this.entry.fields[this.field.name].push((((_a = this.options.unabbreviate[this.field.text]) === null || _a === void 0 ? void 0 : _a.text) || this.field.text).normalize('NFC')); + } + else { + if (this.field.preserveRanges) { + if (this.options.guessAlreadySentenceCased && Math.max(this.field.words.upper, this.field.words.lower) > (this.field.words.other + Math.min(this.field.words.upper, this.field.words.lower))) { + this.preserve(null, null); // , 'mostly sentence cased already') + } + else { + const txt = this.field.text.replace(preserveCase.markup, markup => marker.markup.repeat(markup.length)); + let match; + preserveCase.sentenceStart.lastIndex = 0; + while ((match = preserveCase.sentenceStart.exec(txt))) { + // exclude stuff like "U.S. Taxes" + if (match.index > 2 && txt.substr(0, match.index + 1).match(preserveCase.acronym)) + continue; + this.preserve(match.index, match.index + match[0].length); // , `sentenceStart: ${match[0]} at ${match.index}..${match.index + match[0].length}`) + } + preserveCase.quoted.lastIndex = 0; + while ((match = preserveCase.quoted.exec(this.field.text))) { + this.preserve(match.index, match.index + match[0].length); // , 'quoted') + } + } + } + this.entry.fields[this.field.name].push(this.convertToSentenceCase(this.field.text).normalize('NFC')); + } + } + this.field = null; + } + convertToSentenceCase(text) { + if (!this.field.preserveRanges) + return text; + // always keep the leading char, but skip markup + const lead = text.match(/^(<[^>]+>)*./); + if (lead) { + this.preserve(lead[0].length - 1, lead[0].length); + } + else { + this.preserve(0, 1); + } + let sentenceCased = text.toLowerCase().replace(/(([\?!]\s*|^)([\'\"¡¿“‘„«\s]+)?[^\s])/g, x => x.toUpperCase()); + for (const { start, end } of this.field.preserveRanges) { + sentenceCased = sentenceCased.substring(0, start) + text.substring(start, end) + sentenceCased.substring(end); + } + if (text !== sentenceCased) + this.entry.sentenceCased = true; + return sentenceCased; + } + convert_number(node) { + this.field.text += `${node.value}`; + } + convert_text(node) { + if (node.mode === 'verbatim') { + this.field.text += node.value.trim(); + return; + } + // heuristic to detect pre-sentencecased text + for (const word of node.value.split(/\b/)) { + if (word.match(preserveCase.allLower)) { + this.field.words.lower++; + } + else if (word.match(preserveCase.allCaps)) { + this.field.words.upper++; + } + else if (word.match(preserveCase.hasAlpha)) { + this.field.words.other++; + } + } + if (this.field.level === 0 && this.cleaning.type === 'creator') { + this.field.text += node.value.replace(/\s+and\s+/ig, marker.and).replace(/\s*,\s*/g, marker.comma).replace(/\s+/g, marker.space); + return; + } + if (this.field.level === 0 && this.field.name.match(/^(keywords?|groups)$/)) { + this.field.text += node.value.replace(/\s*[;,]\s*/g, marker.comma); + return; + } + if (this.field.html) { + this.field.text += node.value.replace(/&/g, '&').replace(//g, '>'); + } + else if (this.field.preserveRanges) { + const words = node.value.split(/(\s+)/); + for (const word of words) { + const start = this.field.text.length; + this.field.text += word; + if (this.preserveCase(word)) + this.preserve(start, this.field.text.length); // , `word: ${JSON.stringify(word)}`) + } + } + else { + this.field.text += node.value; + } + } + convert_environment(node) { + this.field.text += { enumerate: '
      ', itemize: '
        ' }[node.env]; + this.convert_block(Object.assign(Object.assign({}, node), { kind: 'Block', markup: {} })); + this.field.text += { enumerate: '
    ', itemize: '' }[node.env]; + } + convert_block(node) { + const start = this.field.text.length; + let prefix = ''; + let postfix = ''; + if (this.options.caseProtection !== 'strict' && this.cleaning.type === 'other') + delete node.case; + if (this.cleaning.type === 'creator' && node.case === 'protect') { + prefix += marker.literal; + postfix = marker.literal + postfix; + delete node.case; + } + if (node.case === 'protect') { + prefix += this.options.markup.caseProtect.open; + postfix = this.options.markup.caseProtect.close + postfix; + } + if (node.kind === 'Block') { + for (const markup of Object.keys(node.markup)) { + if (!this.options.markup[markup]) + return this.error(new ParserError(`markup: ${markup}`, node), undefined); + prefix += this.options.markup[markup].open; + postfix = this.options.markup[markup].close + postfix; + } + } + const end = { + withoutPrefix: this.field.text.length, + withPrefix: this.field.text.length + prefix.length, + }; + this.field.text += prefix; + this.field.level++; + this.convert(node.value); + this.field.level--; + const added = this.field.text.substring(end.withPrefix); + const added_text = added.replace(/<\/?[^>]+>/g, ''); + const needsProtection = added_text && ((this.options.caseProtection === 'strict' && added_text.match(preserveCase.isCaseSensitive)) + || + (this.options.caseProtection === 'as-needed' && added_text.split(/\s+/).find(word => this.needsProtection(word)))); + if (!added) { // nothing was added, so remove prefix + this.field.text = this.field.text.substring(0, end.withoutPrefix); + } + else if (this.field.preserveRanges && prefix === this.options.markup.caseProtect.open && !needsProtection) { + // something was added that didn't actually need case protection + this.field.text = this.field.text.substring(0, end.withoutPrefix) + added; + this.field.preserveRanges = this.field.preserveRanges.filter(range => range.start < end.withoutPrefix); + } + else { + this.field.text += postfix; + } + this.field.text = this.field.text.replace(/<(sup|sub)>([^<>]+)<\/\1>$/i, (m, mode, chars) => { + const cmd = mode === 'sup' ? '^' : '_'; + let script = ''; + for (const char of chars) { + const unicode = unicode2latex.latex[`${cmd}${char}`] || unicode2latex.latex[`${cmd}{${char}}`]; + script += unicode ? unicode : `<${mode}>${char}`; + } + script = script.replace(new RegExp(`<${mode}>`, 'g'), ''); + return script.length < m.length ? script : m; + }); + if (node.case && this.field.preserveRanges) + this.preserve(start, this.field.text.length); // , 'in convert-block ' + node.source || '') + } + } + /** + * parse bibtex. This will try to convert TeX commands into unicode equivalents, and apply `@string` expansion + */ + function parse(input, options = {}) { + const parser = new Parser(options); + return parser.parse(input); + } + exports.parse = parse; + function ast(input, options = {}, clean = true) { + const parser = new Parser(options); + return parser.ast(input, clean); + } + exports.ast = ast; + var chunker_2 = chunker; + Object.defineProperty(exports, "chunker", { enumerable: true, get: function () { return chunker_2.parse; } }); + + Object.defineProperty(exports, "jabref", { enumerable: true, get: function () { return jabref.parse; } }); + + }); + + var Library = /** @class */ (function () { + function Library(entries) { + this.entries = entries; + } + Object.defineProperty(Library.prototype, "size", { + get: function () { + return Object.keys(this.entries).length; + }, + enumerable: false, + configurable: true + }); + /** + * For the given citekey, find the corresponding `Entry` and return a + * collection of template variable assignments. + */ + Library.prototype.getTemplateVariablesForCitekey = function (citekey) { + var _a; + var entry = this.entries[citekey]; + var shortcuts = { + citekey: citekey, + abstract: entry.abstract, + authorString: entry.authorString, + containerTitle: entry.containerTitle, + DOI: entry.DOI, + eprint: entry.eprint, + eprinttype: entry.eprinttype, + eventPlace: entry.eventPlace, + note: entry.note, + page: entry.page, + publisher: entry.publisher, + publisherPlace: entry.publisherPlace, + title: entry.title, + titleShort: entry.titleShort, + URL: entry.URL, + year: (_a = entry.year) === null || _a === void 0 ? void 0 : _a.toString(), + zoteroSelectURI: entry.zoteroSelectURI, + }; + return __assign({ entry: entry.toJSON() }, shortcuts); + }; + return Library; + }()); + /** + * Load reference entries from the given raw database data. + * + * Returns a list of `EntryData`, which should be wrapped with the relevant + * adapter and used to instantiate a `Library`. + */ + function loadEntries(databaseRaw, databaseType) { + var libraryArray; + if (databaseType == 'csl-json') { + libraryArray = JSON.parse(databaseRaw); + } + else if (databaseType == 'biblatex') { + var options = { + errorHandler: function (err) { + console.warn('Citation plugin: non-fatal error loading BibLaTeX entry:', err); + }, + }; + var parsed = bibtexParser.parse(databaseRaw, options); + parsed.errors.forEach(function (error) { + console.error("Citation plugin: fatal error loading BibLaTeX entry" + + (" (line " + error.line + ", column " + error.column + "):"), error.message); + }); + libraryArray = parsed.entries; + } + return libraryArray; + } + /** + * An `Entry` represents a single reference in a reference database. + * Each entry has a unique identifier, known in most reference managers as its + * "citekey." + */ + var Entry = /** @class */ (function () { + function Entry() { + } + Object.defineProperty(Entry.prototype, "year", { + get: function () { + var _a; + return this._year + ? parseInt(this._year) + : (_a = this.issuedDate) === null || _a === void 0 ? void 0 : _a.getUTCFullYear(); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Entry.prototype, "note", { + get: function () { + var _a; + return (_a = this._note) === null || _a === void 0 ? void 0 : _a.map(function (el) { return el.replace(/(zotero:\/\/.+)/g, '[Link]($1)'); }).join('\n\n'); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Entry.prototype, "zoteroSelectURI", { + /** + * A URI which will open the relevant entry in the Zotero client. + */ + get: function () { + return "zotero://select/items/@" + this.id; + }, + enumerable: false, + configurable: true + }); + Entry.prototype.toJSON = function () { + var _this = this; + var jsonObj = Object.assign({}, this); + // add getter values + var proto = Object.getPrototypeOf(this); + Object.entries(Object.getOwnPropertyDescriptors(proto)) + .filter(function (_a) { + var descriptor = _a[1]; + return typeof descriptor.get == 'function'; + }) + .forEach(function (_a) { + var key = _a[0], descriptor = _a[1]; + if (descriptor && key[0] !== '_') { + try { + var val = _this[key]; + jsonObj[key] = val; + } + catch (error) { + return; + } + } + }); + return jsonObj; + }; + return Entry; + }()); + var EntryCSLAdapter = /** @class */ (function (_super) { + __extends(EntryCSLAdapter, _super); + function EntryCSLAdapter(data) { + var _this = _super.call(this) || this; + _this.data = data; + _this.eprint = null; + _this.eprinttype = null; + _this.files = null; + return _this; + } + Object.defineProperty(EntryCSLAdapter.prototype, "id", { + get: function () { + return this.data.id; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "type", { + get: function () { + return this.data.type; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "abstract", { + get: function () { + return this.data.abstract; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "author", { + get: function () { + return this.data.author; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "authorString", { + get: function () { + return this.data.author + ? this.data.author.map(function (a) { return a.given + " " + a.family; }).join(', ') + : null; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "containerTitle", { + get: function () { + return this.data['container-title']; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "DOI", { + get: function () { + return this.data.DOI; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "eventPlace", { + get: function () { + return this.data['event-place']; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "issuedDate", { + get: function () { + if (!(this.data.issued && + this.data.issued['date-parts'] && + this.data.issued['date-parts'][0].length > 0)) + return null; + var _a = this.data.issued['date-parts'][0], year = _a[0], month = _a[1], day = _a[2]; + return new Date(Date.UTC(year, (month || 1) - 1, day || 1)); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "page", { + get: function () { + return this.data.page; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "publisher", { + get: function () { + return this.data.publisher; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "publisherPlace", { + get: function () { + return this.data['publisher-place']; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "title", { + get: function () { + return this.data.title; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "titleShort", { + get: function () { + return this.data['title-short']; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryCSLAdapter.prototype, "URL", { + get: function () { + return this.data.URL; + }, + enumerable: false, + configurable: true + }); + return EntryCSLAdapter; + }(Entry)); + var BIBLATEX_PROPERTY_MAPPING = { + abstract: 'abstract', + booktitle: '_containerTitle', + date: 'issued', + doi: 'DOI', + eprint: 'eprint', + eprinttype: 'eprinttype', + eventtitle: 'event', + journal: '_containerTitle', + journaltitle: '_containerTitle', + location: 'publisherPlace', + pages: 'page', + shortjournal: 'containerTitleShort', + title: 'title', + shorttitle: 'titleShort', + url: 'URL', + venue: 'eventPlace', + year: '_year', + publisher: 'publisher', + note: '_note', + }; + // BibLaTeX parser returns arrays of property values (allowing for repeated + // property entries). For the following fields, just blindly take the first. + var BIBLATEX_PROPERTY_TAKE_FIRST = [ + 'abstract', + 'booktitle', + '_containerTitle', + 'date', + 'doi', + 'eprint', + 'eprinttype', + 'eventtitle', + 'journaltitle', + 'location', + 'pages', + 'shortjournal', + 'title', + 'shorttitle', + 'url', + 'venue', + '_year', + 'publisher', + ]; + var EntryBibLaTeXAdapter = /** @class */ (function (_super) { + __extends(EntryBibLaTeXAdapter, _super); + function EntryBibLaTeXAdapter(data) { + var _this = _super.call(this) || this; + _this.data = data; + Object.entries(BIBLATEX_PROPERTY_MAPPING).forEach(function (map) { + var src = map[0], tgt = map[1]; + if (src in _this.data.fields) { + var val = _this.data.fields[src]; + if (BIBLATEX_PROPERTY_TAKE_FIRST.includes(src)) { + val = val[0]; + } + _this[tgt] = val; + } + }); + return _this; + } + Object.defineProperty(EntryBibLaTeXAdapter.prototype, "id", { + get: function () { + return this.data.key; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryBibLaTeXAdapter.prototype, "type", { + get: function () { + return this.data.type; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryBibLaTeXAdapter.prototype, "files", { + get: function () { + // For some reason the bibtex parser doesn't reliably parse file list to + // array ; so we'll do it manually / redundantly + var ret = []; + if (this.data.fields.file) { + ret = ret.concat(this.data.fields.file.flatMap(function (x) { return x.split(';'); })); + } + if (this.data.fields.files) { + ret = ret.concat(this.data.fields.files.flatMap(function (x) { return x.split(';'); })); + } + return ret; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryBibLaTeXAdapter.prototype, "authorString", { + get: function () { + var _a; + if (this.data.creators.author) { + var names = this.data.creators.author.map(function (name) { + if (name.literal) + return name.literal; + var parts = [name.firstName, name.prefix, name.lastName, name.suffix]; + // Drop any null parts and join + return parts.filter(function (x) { return x; }).join(' '); + }); + return names.join(', '); + } + else { + return (_a = this.data.fields.author) === null || _a === void 0 ? void 0 : _a.join(', '); + } + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryBibLaTeXAdapter.prototype, "containerTitle", { + get: function () { + if (this._containerTitle) { + return this._containerTitle; + } + else if (this.data.fields.eprint) { + var prefix = this.data.fields.eprinttype + ? this.data.fields.eprinttype + ":" + : ''; + var suffix = this.data.fields.primaryclass + ? " [" + this.data.fields.primaryclass + "]" + : ''; + return "" + prefix + this.data.fields.eprint + suffix; + } + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryBibLaTeXAdapter.prototype, "issuedDate", { + get: function () { + return this.issued ? new Date(this.issued) : null; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(EntryBibLaTeXAdapter.prototype, "author", { + get: function () { + var _a; + return (_a = this.data.creators.author) === null || _a === void 0 ? void 0 : _a.map(function (a) { return ({ + given: a.firstName, + family: a.lastName, + }); }); + }, + enumerable: false, + configurable: true + }); + return EntryBibLaTeXAdapter; + }(Entry)); + + register(function (msg) { + return loadEntries(msg.databaseRaw, msg.databaseType); + }); + +}()); +}, 'data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlcyI6WyJ3b3JrZXI6Ly93ZWItd29ya2VyL25vZGVfbW9kdWxlcy9wcm9taXNlLXdvcmtlci9yZWdpc3Rlci5qcyIsIndvcmtlcjovL3dlYi13b3JrZXIvbm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIndvcmtlcjovL3dlYi13b3JrZXIvbm9kZV9tb2R1bGVzL0ByZXRvcnF1ZXJlL2JpYnRleC1wYXJzZXIvZ3JhbW1hci5qcyIsIndvcmtlcjovL3dlYi13b3JrZXIvbm9kZV9tb2R1bGVzL0ByZXRvcnF1ZXJlL2JpYnRleC1wYXJzZXIvY2h1bmtlci5qcyIsIndvcmtlcjovL3dlYi13b3JrZXIvbm9kZV9tb2R1bGVzL3VuaWNvZGUybGF0ZXgvaW5kZXguanMiLCJ3b3JrZXI6Ly93ZWItd29ya2VyL25vZGVfbW9kdWxlcy94cmVnZXhwL3Rvb2xzL291dHB1dC9jYXRlZ29yaWVzLmpzIiwid29ya2VyOi8vd2ViLXdvcmtlci9ub2RlX21vZHVsZXMvQHJldG9ycXVlcmUvYmlidGV4LXBhcnNlci9qYWJyZWYuanMiLCJ3b3JrZXI6Ly93ZWItd29ya2VyL25vZGVfbW9kdWxlcy9AcmV0b3JxdWVyZS9iaWJ0ZXgtcGFyc2VyL2luZGV4LmpzIiwic3JjL3R5cGVzLnRzIiwic3JjL3dvcmtlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxuZnVuY3Rpb24gaXNQcm9taXNlIChvYmopIHtcbiAgLy8gdmlhIGh0dHBzOi8vdW5wa2cuY29tL2lzLXByb21pc2VAMi4xLjAvaW5kZXguanNcbiAgcmV0dXJuICEhb2JqICYmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyB8fCB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nKSAmJiB0eXBlb2Ygb2JqLnRoZW4gPT09ICdmdW5jdGlvbidcbn1cblxuZnVuY3Rpb24gcmVnaXN0ZXJQcm9taXNlV29ya2VyIChjYWxsYmFjaykge1xuICBmdW5jdGlvbiBwb3N0T3V0Z29pbmdNZXNzYWdlIChlLCBtZXNzYWdlSWQsIGVycm9yLCByZXN1bHQpIHtcbiAgICBmdW5jdGlvbiBwb3N0TWVzc2FnZSAobXNnKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmICh0eXBlb2Ygc2VsZi5wb3N0TWVzc2FnZSAhPT0gJ2Z1bmN0aW9uJykgeyAvLyBzZXJ2aWNlIHdvcmtlclxuICAgICAgICBlLnBvcnRzWzBdLnBvc3RNZXNzYWdlKG1zZylcbiAgICAgIH0gZWxzZSB7IC8vIHdlYiB3b3JrZXJcbiAgICAgICAgc2VsZi5wb3N0TWVzc2FnZShtc2cpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChlcnJvcikge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgJ2Vycm9yJyBpbiBjb25zb2xlKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgdG8gbWFrZSBlcnJvcnMgZWFzaWVyIHRvIGRlYnVnLiBJIHRoaW5rIGl0J3MgaW1wb3J0YW50XG4gICAgICAgIC8vIGVub3VnaCB0byBqdXN0IGxlYXZlIGhlcmUgd2l0aG91dCBnaXZpbmcgdGhlIHVzZXIgYW4gb3B0aW9uXG4gICAgICAgIC8vIHRvIHNpbGVuY2UgaXQuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dvcmtlciBjYXVnaHQgYW4gZXJyb3I6JywgZXJyb3IpXG4gICAgICB9XG4gICAgICBwb3N0TWVzc2FnZShbbWVzc2FnZUlkLCB7XG4gICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2VcbiAgICAgIH1dKVxuICAgIH0gZWxzZSB7XG4gICAgICBwb3N0TWVzc2FnZShbbWVzc2FnZUlkLCBudWxsLCByZXN1bHRdKVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHRyeUNhdGNoRnVuYyAoY2FsbGJhY2ssIG1lc3NhZ2UpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHsgcmVzOiBjYWxsYmFjayhtZXNzYWdlKSB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHsgZXJyOiBlIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVJbmNvbWluZ01lc3NhZ2UgKGUsIGNhbGxiYWNrLCBtZXNzYWdlSWQsIG1lc3NhZ2UpIHtcbiAgICB2YXIgcmVzdWx0ID0gdHJ5Q2F0Y2hGdW5jKGNhbGxiYWNrLCBtZXNzYWdlKVxuXG4gICAgaWYgKHJlc3VsdC5lcnIpIHtcbiAgICAgIHBvc3RPdXRnb2luZ01lc3NhZ2UoZSwgbWVzc2FnZUlkLCByZXN1bHQuZXJyKVxuICAgIH0gZWxzZSBpZiAoIWlzUHJvbWlzZShyZXN1bHQucmVzKSkge1xuICAgICAgcG9zdE91dGdvaW5nTWVzc2FnZShlLCBtZXNzYWdlSWQsIG51bGwsIHJlc3VsdC5yZXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdC5yZXMudGhlbihmdW5jdGlvbiAoZmluYWxSZXN1bHQpIHtcbiAgICAgICAgcG9zdE91dGdvaW5nTWVzc2FnZShlLCBtZXNzYWdlSWQsIG51bGwsIGZpbmFsUmVzdWx0KVxuICAgICAgfSwgZnVuY3Rpb24gKGZpbmFsRXJyb3IpIHtcbiAgICAgICAgcG9zdE91dGdvaW5nTWVzc2FnZShlLCBtZXNzYWdlSWQsIGZpbmFsRXJyb3IpXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIG9uSW5jb21pbmdNZXNzYWdlIChlKSB7XG4gICAgdmFyIHBheWxvYWQgPSBlLmRhdGFcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocGF5bG9hZCkgfHwgcGF5bG9hZC5sZW5ndGggIT09IDIpIHtcbiAgICAgIC8vIG1lc3NhZ2UgZG9lbnMndCBtYXRjaCBjb21tdW5pY2F0aW9uIGZvcm1hdDsgaWdub3JlXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdmFyIG1lc3NhZ2VJZCA9IHBheWxvYWRbMF1cbiAgICB2YXIgbWVzc2FnZSA9IHBheWxvYWRbMV1cblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHBvc3RPdXRnb2luZ01lc3NhZ2UoZSwgbWVzc2FnZUlkLCBuZXcgRXJyb3IoXG4gICAgICAgICdQbGVhc2UgcGFzcyBhIGZ1bmN0aW9uIGludG8gcmVnaXN0ZXIoKS4nKSlcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlSW5jb21pbmdNZXNzYWdlKGUsIGNhbGxiYWNrLCBtZXNzYWdlSWQsIG1lc3NhZ2UpXG4gICAgfVxuICB9XG5cbiAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25JbmNvbWluZ01lc3NhZ2UpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gcmVnaXN0ZXJQcm9taXNlV29ya2VyXG4iLCIvKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxucHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG5SRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4vKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSAqL1xyXG5cclxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XHJcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XHJcbiAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4dGVuZHMoZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxuICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxyXG4gICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fYXNzaWduID0gZnVuY3Rpb24oKSB7XHJcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gX19hc3NpZ24odCkge1xyXG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xyXG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpIHRbcF0gPSBzW3BdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdDtcclxuICAgIH1cclxuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZXN0KHMsIGUpIHtcclxuICAgIHZhciB0ID0ge307XHJcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcclxuICAgICAgICB0W3BdID0gc1twXTtcclxuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcclxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcclxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xyXG4gICAgICAgIH1cclxuICAgIHJldHVybiB0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xyXG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XHJcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xyXG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcGFyYW0ocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7IGRlY29yYXRvcih0YXJnZXQsIGtleSwgcGFyYW1JbmRleCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xyXG4gICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZztcclxuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XHJcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xyXG4gICAgICAgIHdoaWxlIChfKSB0cnkge1xyXG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XHJcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcclxuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XHJcbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19jcmVhdGVCaW5kaW5nID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9KTtcclxufSkgOiAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBvW2syXSA9IG1ba107XHJcbn0pO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXhwb3J0U3RhcihtLCBvKSB7XHJcbiAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSBcImRlZmF1bHRcIiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIHApKSBfX2NyZWF0ZUJpbmRpbmcobywgbSwgcCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3ZhbHVlcyhvKSB7XHJcbiAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwO1xyXG4gICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7XHJcbiAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09IFwibnVtYmVyXCIpIHJldHVybiB7XHJcbiAgICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwO1xyXG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbyAmJiBvW2krK10sIGRvbmU6ICFvIH07XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/IFwiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIiA6IFwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVhZChvLCBuKSB7XHJcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XHJcbiAgICBpZiAoIW0pIHJldHVybiBvO1xyXG4gICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XHJcbiAgICBmaW5hbGx5IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7IGlmIChlKSB0aHJvdyBlLmVycm9yOyB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZCgpIHtcclxuICAgIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGFyID0gYXIuY29uY2F0KF9fcmVhZChhcmd1bWVudHNbaV0pKTtcclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xyXG4gICAgZm9yICh2YXIgcyA9IDAsIGkgPSAwLCBpbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBpbDsgaSsrKSBzICs9IGFyZ3VtZW50c1tpXS5sZW5ndGg7XHJcbiAgICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXHJcbiAgICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXHJcbiAgICAgICAgICAgIHJba10gPSBhW2pdO1xyXG4gICAgcmV0dXJuIHI7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XHJcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyBpZiAoZ1tuXSkgaVtuXSA9IGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAoYSwgYikgeyBxLnB1c2goW24sIHYsIGEsIGJdKSA+IDEgfHwgcmVzdW1lKG4sIHYpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gcmVzdW1lKG4sIHYpIHsgdHJ5IHsgc3RlcChnW25dKHYpKTsgfSBjYXRjaCAoZSkgeyBzZXR0bGUocVswXVszXSwgZSk7IH0gfVxyXG4gICAgZnVuY3Rpb24gc3RlcChyKSB7IHIudmFsdWUgaW5zdGFuY2VvZiBfX2F3YWl0ID8gUHJvbWlzZS5yZXNvbHZlKHIudmFsdWUudikudGhlbihmdWxmaWxsLCByZWplY3QpIDogc2V0dGxlKHFbMF1bMl0sIHIpOyB9XHJcbiAgICBmdW5jdGlvbiBmdWxmaWxsKHZhbHVlKSB7IHJlc3VtZShcIm5leHRcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiByZWplY3QodmFsdWUpIHsgcmVzdW1lKFwidGhyb3dcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUoZiwgdikgeyBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jRGVsZWdhdG9yKG8pIHtcclxuICAgIHZhciBpLCBwO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiLCBmdW5jdGlvbiAoZSkgeyB0aHJvdyBlOyB9KSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpW25dID0gb1tuXSA/IGZ1bmN0aW9uICh2KSB7IHJldHVybiAocCA9ICFwKSA/IHsgdmFsdWU6IF9fYXdhaXQob1tuXSh2KSksIGRvbmU6IG4gPT09IFwicmV0dXJuXCIgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7IFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGZ1bmN0aW9uKHYpIHsgcmVzb2x2ZSh7IHZhbHVlOiB2LCBkb25lOiBkIH0pOyB9LCByZWplY3QpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ha2VUZW1wbGF0ZU9iamVjdChjb29rZWQsIHJhdykge1xyXG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cclxuICAgIHJldHVybiBjb29rZWQ7XHJcbn07XHJcblxyXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XHJcbn0pIDogZnVuY3Rpb24obywgdikge1xyXG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcclxuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XHJcbiAgICB2YXIgcmVzdWx0ID0ge307XHJcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XHJcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0RGVmYXVsdChtb2QpIHtcclxuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgZGVmYXVsdDogbW9kIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHJlY2VpdmVyLCBwcml2YXRlTWFwKSB7XHJcbiAgICBpZiAoIXByaXZhdGVNYXAuaGFzKHJlY2VpdmVyKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhdHRlbXB0ZWQgdG8gZ2V0IHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlXCIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHByaXZhdGVNYXAuZ2V0KHJlY2VpdmVyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRTZXQocmVjZWl2ZXIsIHByaXZhdGVNYXAsIHZhbHVlKSB7XHJcbiAgICBpZiAoIXByaXZhdGVNYXAuaGFzKHJlY2VpdmVyKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJhdHRlbXB0ZWQgdG8gc2V0IHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlXCIpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZU1hcC5zZXQocmVjZWl2ZXIsIHZhbHVlKTtcclxuICAgIHJldHVybiB2YWx1ZTtcclxufVxyXG4iLCIvKlxuICogR2VuZXJhdGVkIGJ5IFBFRy5qcyAwLjEwLjAuXG4gKlxuICogaHR0cDovL3BlZ2pzLm9yZy9cbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gcGVnJHN1YmNsYXNzKGNoaWxkLCBwYXJlbnQpIHtcbiAgZnVuY3Rpb24gY3RvcigpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGNoaWxkOyB9XG4gIGN0b3IucHJvdG90eXBlID0gcGFyZW50LnByb3RvdHlwZTtcbiAgY2hpbGQucHJvdG90eXBlID0gbmV3IGN0b3IoKTtcbn1cblxuZnVuY3Rpb24gcGVnJFN5bnRheEVycm9yKG1lc3NhZ2UsIGV4cGVjdGVkLCBmb3VuZCwgbG9jYXRpb24pIHtcbiAgdGhpcy5tZXNzYWdlICA9IG1lc3NhZ2U7XG4gIHRoaXMuZXhwZWN0ZWQgPSBleHBlY3RlZDtcbiAgdGhpcy5mb3VuZCAgICA9IGZvdW5kO1xuICB0aGlzLmxvY2F0aW9uID0gbG9jYXRpb247XG4gIHRoaXMubmFtZSAgICAgPSBcIlN5bnRheEVycm9yXCI7XG5cbiAgaWYgKHR5cGVvZiBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgcGVnJFN5bnRheEVycm9yKTtcbiAgfVxufVxuXG5wZWckc3ViY2xhc3MocGVnJFN5bnRheEVycm9yLCBFcnJvcik7XG5cbnBlZyRTeW50YXhFcnJvci5idWlsZE1lc3NhZ2UgPSBmdW5jdGlvbihleHBlY3RlZCwgZm91bmQpIHtcbiAgdmFyIERFU0NSSUJFX0VYUEVDVEFUSU9OX0ZOUyA9IHtcbiAgICAgICAgbGl0ZXJhbDogZnVuY3Rpb24oZXhwZWN0YXRpb24pIHtcbiAgICAgICAgICByZXR1cm4gXCJcXFwiXCIgKyBsaXRlcmFsRXNjYXBlKGV4cGVjdGF0aW9uLnRleHQpICsgXCJcXFwiXCI7XG4gICAgICAgIH0sXG5cbiAgICAgICAgXCJjbGFzc1wiOiBmdW5jdGlvbihleHBlY3RhdGlvbikge1xuICAgICAgICAgIHZhciBlc2NhcGVkUGFydHMgPSBcIlwiLFxuICAgICAgICAgICAgICBpO1xuXG4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IGV4cGVjdGF0aW9uLnBhcnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBlc2NhcGVkUGFydHMgKz0gZXhwZWN0YXRpb24ucGFydHNbaV0gaW5zdGFuY2VvZiBBcnJheVxuICAgICAgICAgICAgICA/IGNsYXNzRXNjYXBlKGV4cGVjdGF0aW9uLnBhcnRzW2ldWzBdKSArIFwiLVwiICsgY2xhc3NFc2NhcGUoZXhwZWN0YXRpb24ucGFydHNbaV1bMV0pXG4gICAgICAgICAgICAgIDogY2xhc3NFc2NhcGUoZXhwZWN0YXRpb24ucGFydHNbaV0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBcIltcIiArIChleHBlY3RhdGlvbi5pbnZlcnRlZCA/IFwiXlwiIDogXCJcIikgKyBlc2NhcGVkUGFydHMgKyBcIl1cIjtcbiAgICAgICAgfSxcblxuICAgICAgICBhbnk6IGZ1bmN0aW9uKGV4cGVjdGF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIFwiYW55IGNoYXJhY3RlclwiO1xuICAgICAgICB9LFxuXG4gICAgICAgIGVuZDogZnVuY3Rpb24oZXhwZWN0YXRpb24pIHtcbiAgICAgICAgICByZXR1cm4gXCJlbmQgb2YgaW5wdXRcIjtcbiAgICAgICAgfSxcblxuICAgICAgICBvdGhlcjogZnVuY3Rpb24oZXhwZWN0YXRpb24pIHtcbiAgICAgICAgICByZXR1cm4gZXhwZWN0YXRpb24uZGVzY3JpcHRpb247XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgZnVuY3Rpb24gaGV4KGNoKSB7XG4gICAgcmV0dXJuIGNoLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7XG4gIH1cblxuICBmdW5jdGlvbiBsaXRlcmFsRXNjYXBlKHMpIHtcbiAgICByZXR1cm4gc1xuICAgICAgLnJlcGxhY2UoL1xcXFwvZywgJ1xcXFxcXFxcJylcbiAgICAgIC5yZXBsYWNlKC9cIi9nLCAgJ1xcXFxcIicpXG4gICAgICAucmVwbGFjZSgvXFwwL2csICdcXFxcMCcpXG4gICAgICAucmVwbGFjZSgvXFx0L2csICdcXFxcdCcpXG4gICAgICAucmVwbGFjZSgvXFxuL2csICdcXFxcbicpXG4gICAgICAucmVwbGFjZSgvXFxyL2csICdcXFxccicpXG4gICAgICAucmVwbGFjZSgvW1xceDAwLVxceDBGXS9nLCAgICAgICAgICBmdW5jdGlvbihjaCkgeyByZXR1cm4gJ1xcXFx4MCcgKyBoZXgoY2gpOyB9KVxuICAgICAgLnJlcGxhY2UoL1tcXHgxMC1cXHgxRlxceDdGLVxceDlGXS9nLCBmdW5jdGlvbihjaCkgeyByZXR1cm4gJ1xcXFx4JyAgKyBoZXgoY2gpOyB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNsYXNzRXNjYXBlKHMpIHtcbiAgICByZXR1cm4gc1xuICAgICAgLnJlcGxhY2UoL1xcXFwvZywgJ1xcXFxcXFxcJylcbiAgICAgIC5yZXBsYWNlKC9cXF0vZywgJ1xcXFxdJylcbiAgICAgIC5yZXBsYWNlKC9cXF4vZywgJ1xcXFxeJylcbiAgICAgIC5yZXBsYWNlKC8tL2csICAnXFxcXC0nKVxuICAgICAgLnJlcGxhY2UoL1xcMC9nLCAnXFxcXDAnKVxuICAgICAgLnJlcGxhY2UoL1xcdC9nLCAnXFxcXHQnKVxuICAgICAgLnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKVxuICAgICAgLnJlcGxhY2UoL1xcci9nLCAnXFxcXHInKVxuICAgICAgLnJlcGxhY2UoL1tcXHgwMC1cXHgwRl0vZywgICAgICAgICAgZnVuY3Rpb24oY2gpIHsgcmV0dXJuICdcXFxceDAnICsgaGV4KGNoKTsgfSlcbiAgICAgIC5yZXBsYWNlKC9bXFx4MTAtXFx4MUZcXHg3Ri1cXHg5Rl0vZywgZnVuY3Rpb24oY2gpIHsgcmV0dXJuICdcXFxceCcgICsgaGV4KGNoKTsgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBkZXNjcmliZUV4cGVjdGF0aW9uKGV4cGVjdGF0aW9uKSB7XG4gICAgcmV0dXJuIERFU0NSSUJFX0VYUEVDVEFUSU9OX0ZOU1tleHBlY3RhdGlvbi50eXBlXShleHBlY3RhdGlvbik7XG4gIH1cblxuICBmdW5jdGlvbiBkZXNjcmliZUV4cGVjdGVkKGV4cGVjdGVkKSB7XG4gICAgdmFyIGRlc2NyaXB0aW9ucyA9IG5ldyBBcnJheShleHBlY3RlZC5sZW5ndGgpLFxuICAgICAgICBpLCBqO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICBkZXNjcmlwdGlvbnNbaV0gPSBkZXNjcmliZUV4cGVjdGF0aW9uKGV4cGVjdGVkW2ldKTtcbiAgICB9XG5cbiAgICBkZXNjcmlwdGlvbnMuc29ydCgpO1xuXG4gICAgaWYgKGRlc2NyaXB0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGkgPSAxLCBqID0gMTsgaSA8IGRlc2NyaXB0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoZGVzY3JpcHRpb25zW2kgLSAxXSAhPT0gZGVzY3JpcHRpb25zW2ldKSB7XG4gICAgICAgICAgZGVzY3JpcHRpb25zW2pdID0gZGVzY3JpcHRpb25zW2ldO1xuICAgICAgICAgIGorKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZGVzY3JpcHRpb25zLmxlbmd0aCA9IGo7XG4gICAgfVxuXG4gICAgc3dpdGNoIChkZXNjcmlwdGlvbnMubGVuZ3RoKSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHJldHVybiBkZXNjcmlwdGlvbnNbMF07XG5cbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uc1swXSArIFwiIG9yIFwiICsgZGVzY3JpcHRpb25zWzFdO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZGVzY3JpcHRpb25zLnNsaWNlKDAsIC0xKS5qb2luKFwiLCBcIilcbiAgICAgICAgICArIFwiLCBvciBcIlxuICAgICAgICAgICsgZGVzY3JpcHRpb25zW2Rlc2NyaXB0aW9ucy5sZW5ndGggLSAxXTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBkZXNjcmliZUZvdW5kKGZvdW5kKSB7XG4gICAgcmV0dXJuIGZvdW5kID8gXCJcXFwiXCIgKyBsaXRlcmFsRXNjYXBlKGZvdW5kKSArIFwiXFxcIlwiIDogXCJlbmQgb2YgaW5wdXRcIjtcbiAgfVxuXG4gIHJldHVybiBcIkV4cGVjdGVkIFwiICsgZGVzY3JpYmVFeHBlY3RlZChleHBlY3RlZCkgKyBcIiBidXQgXCIgKyBkZXNjcmliZUZvdW5kKGZvdW5kKSArIFwiIGZvdW5kLlwiO1xufTtcblxuZnVuY3Rpb24gcGVnJHBhcnNlKGlucHV0LCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zICE9PSB2b2lkIDAgPyBvcHRpb25zIDoge307XG5cbiAgdmFyIHBlZyRGQUlMRUQgPSB7fSxcblxuICAgICAgcGVnJHN0YXJ0UnVsZUZ1bmN0aW9ucyA9IHsgQmlibGlvZ3JhcGh5OiBwZWckcGFyc2VCaWJsaW9ncmFwaHkgfSxcbiAgICAgIHBlZyRzdGFydFJ1bGVGdW5jdGlvbiAgPSBwZWckcGFyc2VCaWJsaW9ncmFwaHksXG5cbiAgICAgIHBlZyRjMCA9IGZ1bmN0aW9uKHIpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ0JpYmxpb2dyYXBoeScsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiByLFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjMSA9IFwiQFwiLFxuICAgICAgcGVnJGMyID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIkBcIiwgZmFsc2UpLFxuICAgICAgcGVnJGMzID0gXCJjb21tZW50XCIsXG4gICAgICBwZWckYzQgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiY29tbWVudFwiLCB0cnVlKSxcbiAgICAgIHBlZyRjNSA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ0JyYWNlZENvbW1lbnQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICB2YWx1ZTogdi5zbGljZSgxLCAtMSksXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgcGVnJGM2ID0gL15bXlxcblxccl0vLFxuICAgICAgcGVnJGM3ID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1wiXFxuXCIsIFwiXFxyXCJdLCB0cnVlLCBmYWxzZSksXG4gICAgICBwZWckYzggPSAvXltcXG5cXHJdLyxcbiAgICAgIHBlZyRjOSA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIlxcblwiLCBcIlxcclwiXSwgZmFsc2UsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTAgPSBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdMaW5lQ29tbWVudCcsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIHZhbHVlOiBub3JtYWxpemVXaGl0ZXNwYWNlKHYpLFxuICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgcGVnJGMxMSA9IC9eW15AXS8sXG4gICAgICBwZWckYzEyID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1wiQFwiXSwgdHJ1ZSwgZmFsc2UpLFxuICAgICAgcGVnJGMxMyA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ05vbkVudHJ5VGV4dCcsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIHZhbHVlOiBub3JtYWxpemVXaGl0ZXNwYWNlKHYpLFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjMTQgPSBmdW5jdGlvbihuKSB7IHJldHVybiBuOyB9LFxuICAgICAgcGVnJGMxNSA9IFwie1wiLFxuICAgICAgcGVnJGMxNiA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJ7XCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTcgPSAvXltee31dLyxcbiAgICAgIHBlZyRjMTggPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCJ7XCIsIFwifVwiXSwgdHJ1ZSwgZmFsc2UpLFxuICAgICAgcGVnJGMxOSA9IFwifVwiLFxuICAgICAgcGVnJGMyMCA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJ9XCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjMjEgPSBmdW5jdGlvbihjb21tZW50KSB7IHJldHVybiAneycgKyBjb21tZW50LmpvaW4oJycpICsgJ30nIH0sXG4gICAgICBwZWckYzIyID0gL15bQS1aYS16XS8sXG4gICAgICBwZWckYzIzID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1tcIkFcIiwgXCJaXCJdLCBbXCJhXCIsIFwielwiXV0sIGZhbHNlLCBmYWxzZSksXG4gICAgICBwZWckYzI0ID0gL15bKHtdLyxcbiAgICAgIHBlZyRjMjUgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCIoXCIsIFwie1wiXSwgZmFsc2UsIGZhbHNlKSxcbiAgICAgIHBlZyRjMjYgPSAvXlt9KV0vLFxuICAgICAgcGVnJGMyNyA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIn1cIiwgXCIpXCJdLCBmYWxzZSwgZmFsc2UpLFxuICAgICAgcGVnJGMyOCA9IGZ1bmN0aW9uKHR5cGUsIGlkLCBmaWVsZHMpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ0VudHJ5JyxcbiAgICAgICAgICAgIGlkOiBpZCB8fCAnJyxcbiAgICAgICAgICAgIHR5cGU6IHR5cGUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgZmllbGRzOiBmaWVsZHMsXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgcGVnJGMyOSA9IFwicHJlYW1ibGVcIixcbiAgICAgIHBlZyRjMzAgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwicHJlYW1ibGVcIiwgdHJ1ZSksXG4gICAgICBwZWckYzMxID0gZnVuY3Rpb24ob3BlbmVyLCB2LCBjbG9zZXIpIHtcbiAgICAgICAgICBzd2l0Y2ggKG9wZW5lciArIGNsb3Nlcikge1xuICAgICAgICAgICAgY2FzZSAne30nOlxuICAgICAgICAgICAgY2FzZSAnKCknOlxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmJhbGFuY2VkIG9wZW5lci1jbG9zZXIgZm9yIHByZWFtYmxlOiAke29wZW5lcn0uLi4ke2Nsb3Nlcn1gKVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ1ByZWFtYmxlRXhwcmVzc2lvbicsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIHZhbHVlOiB2LnJlZHVjZSgoYSwgYikgPT4gYS5jb25jYXQoYiksIFtdKSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICBwZWckYzMyID0gXCJzdHJpbmdcIixcbiAgICAgIHBlZyRjMzMgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwic3RyaW5nXCIsIHRydWUpLFxuICAgICAgcGVnJGMzNCA9IGZ1bmN0aW9uKGssIHYpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ1N0cmluZ0RlY2xhcmF0aW9uJyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgbmFtZTogayxcbiAgICAgICAgICAgIHZhbHVlOiB2LnJlZHVjZSgoYSwgYikgPT4gYS5jb25jYXQoYiksIFtdKSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICBwZWckYzM1ID0gL15bXiBcXHRcXHJcXG4sXS8sXG4gICAgICBwZWckYzM2ID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1wiIFwiLCBcIlxcdFwiLCBcIlxcclwiLCBcIlxcblwiLCBcIixcIl0sIHRydWUsIGZhbHNlKSxcbiAgICAgIHBlZyRjMzcgPSBcIixcIixcbiAgICAgIHBlZyRjMzggPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiLFwiLCBmYWxzZSksXG4gICAgICBwZWckYzM5ID0gZnVuY3Rpb24oaWQpIHsgcmV0dXJuIGlkOyB9LFxuICAgICAgcGVnJGM0MCA9IGZ1bmN0aW9uKG5hbWUpIHsgcmV0dXJuIGlzVmVyYmF0aW1GaWVsZChuYW1lKSAmJiB1bm5lc3RGaWVsZHMuaW5jbHVkZXMobmFtZSkgfSxcbiAgICAgIHBlZyRjNDEgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICAgICAgICAgIC8vIGJlY2F1c2UgdGhpcyB3YXMgYWJ1c2VkIHNvIG11Y2gsIG1hbnkgcHJvY2Vzc29ycyB0cmVhdCBkb3VibGUtb3V0ZXItYnJhY2VzIGFzIHNpbmdsZVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBraW5kOiAnRmllbGQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgdmFsdWU6IFsgcHJvdGVjdCh2YWx1ZSkgXVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjNDIgPSBmdW5jdGlvbihuYW1lKSB7IHJldHVybiBpc1ZlcmJhdGltRmllbGQobmFtZSkgfSxcbiAgICAgIHBlZyRjNDMgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBraW5kOiAnRmllbGQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgdmFsdWU6IFsgcHJvdGVjdCh2YWx1ZSkgXVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjNDQgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICAgICAgICAgIC8vIGJlY2F1c2UgdGhpcyB3YXMgYWJ1c2VkIHNvIG11Y2gsIG1hbnkgcHJvY2Vzc29ycyB0cmVhdCBkb3VibGUtb3V0ZXItYnJhY2VzIGFzIHNpbmdsZVxuICAgICAgICAgIGlmICh1bm5lc3RGaWVsZHMuaW5jbHVkZXMobmFtZSkgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAxICYmIHZhbHVlWzBdLmtpbmQgPT09ICdCbG9jaycpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnVubmVzdE1vZGUgPT09ICdwcmVzZXJ2ZScpIHtcbiAgICAgICAgICAgICAgdmFsdWVbMF0uY2FzZSA9ICdwcmVzZXJ2ZSdcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHZhbHVlID0gdmFsdWVbMF0udmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gaGFuZGxlX21hcmt1cF9zd2l0Y2hlcyh7XG4gICAgICAgICAgICBraW5kOiAnRmllbGQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICBwZWckYzQ1ID0gL15bXzphLXpBLVowLTlcXC1dLyxcbiAgICAgIHBlZyRjNDYgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCJfXCIsIFwiOlwiLCBbXCJhXCIsIFwielwiXSwgW1wiQVwiLCBcIlpcIl0sIFtcIjBcIiwgXCI5XCJdLCBcIi1cIl0sIGZhbHNlLCBmYWxzZSksXG4gICAgICBwZWckYzQ3ID0gZnVuY3Rpb24obmFtZSkgeyByZXR1cm4gbmFtZS50b0xvd2VyQ2FzZSgpIH0sXG4gICAgICBwZWckYzQ4ID0gXCJcXFwiXCIsXG4gICAgICBwZWckYzQ5ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIlxcXCJcIiwgZmFsc2UpLFxuICAgICAgcGVnJGM1MCA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICB2ID0gdiB8fCB7XG4gICAgICAgICAgICBraW5kOiAnVGV4dCcsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICB9XG4gICAgICAgICAgdi5tb2RlID0gJ3ZlcmJhdGltJ1xuICAgICAgICAgIHJldHVybiBiYXNpY1RleHRDb252ZXJzaW9ucyh2KVxuICAgICAgICB9LFxuICAgICAgcGVnJGM1MSA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICByZXR1cm4gYmFzaWNUZXh0Q29udmVyc2lvbnMoe1xuICAgICAgICAgICAga2luZDogJ1RleHQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICB2YWx1ZTogdi5qb2luKCcnKS50cmltKCksXG4gICAgICAgICAgICBtb2RlOiAndmVyYmF0aW0nLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICBwZWckYzUyID0gZnVuY3Rpb24odikgeyByZXR1cm4gdiB9LFxuICAgICAgcGVnJGM1MyA9IGZ1bmN0aW9uKHYpIHsgcmV0dXJuICd7JyArIHYuam9pbignJykgKyAnfScgfSxcbiAgICAgIHBlZyRjNTQgPSBmdW5jdGlvbigpIHsgcmV0dXJuIG1hdGguc2V0KGZhbHNlKSB9LFxuICAgICAgcGVnJGM1NSA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICByZXR1cm4gdi5yZWR1Y2UoKGEsIGIpID0+IGEuY29uY2F0KGIpLCBbXSk7XG4gICAgICAgIH0sXG4gICAgICBwZWckYzU2ID0gZnVuY3Rpb24odikgeyByZXR1cm4gdjsgfSxcbiAgICAgIHBlZyRjNTcgPSBcIntcXFxcdmVyYlwiLFxuICAgICAgcGVnJGM1OCA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJ7XFxcXHZlcmJcIiwgZmFsc2UpLFxuICAgICAgcGVnJGM1OSA9IC9eW2EtekEtWl0vLFxuICAgICAgcGVnJGM2MCA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtbXCJhXCIsIFwielwiXSwgW1wiQVwiLCBcIlpcIl1dLCBmYWxzZSwgZmFsc2UpLFxuICAgICAgcGVnJGM2MSA9IC9eW15cXF5fJHt9XFxcXF0vLFxuICAgICAgcGVnJGM2MiA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIl5cIiwgXCJfXCIsIFwiJFwiLCBcIntcIiwgXCJ9XCIsIFwiXFxcXFwiXSwgdHJ1ZSwgZmFsc2UpLFxuICAgICAgcGVnJGM2MyA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICByZXR1cm4gYmFzaWNUZXh0Q29udmVyc2lvbnMoe1xuICAgICAgICAgICAga2luZDogJ1RleHQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICB2YWx1ZTogbm9ybWFsaXplV2hpdGVzcGFjZSh2KSxcbiAgICAgICAgICAgIG1vZGU6IG1hdGgub24gPyAnbWF0aCcgOiAndGV4dCcsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgIHBlZyRjNjQgPSAvXlteXFxeXyR7fVwiXFxcXF0vLFxuICAgICAgcGVnJGM2NSA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIl5cIiwgXCJfXCIsIFwiJFwiLCBcIntcIiwgXCJ9XCIsIFwiXFxcIlwiLCBcIlxcXFxcIl0sIHRydWUsIGZhbHNlKSxcbiAgICAgIHBlZyRjNjYgPSAvXlswLTldLyxcbiAgICAgIHBlZyRjNjcgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbW1wiMFwiLCBcIjlcIl1dLCBmYWxzZSwgZmFsc2UpLFxuICAgICAgcGVnJGM2OCA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ051bWJlcicsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIHZhbHVlOiBwYXJzZUludCh2LCAxMCksXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgcGVnJGM2OSA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ1N0cmluZ1JlZmVyZW5jZScsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIG5hbWU6IHYsXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgcGVnJGM3MCA9IFwiXFxcXGJlZ2lue1wiLFxuICAgICAgcGVnJGM3MSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJcXFxcYmVnaW57XCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjNzIgPSAvXlthLXpBLVowLTldLyxcbiAgICAgIHBlZyRjNzMgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbW1wiYVwiLCBcInpcIl0sIFtcIkFcIiwgXCJaXCJdLCBbXCIwXCIsIFwiOVwiXV0sIGZhbHNlLCBmYWxzZSksXG4gICAgICBwZWckYzc0ID0gXCJcXFxcZW5ke1wiLFxuICAgICAgcGVnJGM3NSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJcXFxcZW5ke1wiLCBmYWxzZSksXG4gICAgICBwZWckYzc2ID0gZnVuY3Rpb24oZW52LCB2LCBjZW52KSB7IHJldHVybiBlbnYgPT09IGNlbnYgfSxcbiAgICAgIHBlZyRjNzcgPSBmdW5jdGlvbihlbnYsIHYsIGNlbnYpIHtcbiAgICAgICAgICBpZiAobWFya3VwW2Vudl0pIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGtpbmQ6ICdCbG9jaycsXG4gICAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgICAgICBtYXJrdXA6IHsgW21hcmt1cFtlbnZdXTogdHJ1ZSB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBraW5kOiAnRW52aXJvbm1lbnQnLFxuICAgICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgICB2YWx1ZTogdixcbiAgICAgICAgICAgICAgZW52OiBlbnYsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgcGVnJGM3OCA9IFwie1xcXFxcIixcbiAgICAgIHBlZyRjNzkgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwie1xcXFxcIiwgZmFsc2UpLFxuICAgICAgcGVnJGM4MCA9IFwiXFxcXFwiLFxuICAgICAgcGVnJGM4MSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJcXFxcXCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjODIgPSAvXltpal0vLFxuICAgICAgcGVnJGM4MyA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcImlcIiwgXCJqXCJdLCBmYWxzZSwgZmFsc2UpLFxuICAgICAgcGVnJGM4NCA9IGZ1bmN0aW9uKG1hcmssIGNoYXIpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ0RpYWNyaXRpY0NvbW1hbmQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICBtYXJrOiBtYXJrLFxuICAgICAgICAgICAgZG90bGVzczogISFjaGFyWzFdLFxuICAgICAgICAgICAgY2hhcmFjdGVyOiBjaGFyWzFdIHx8IGNoYXJbMF0sXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgcGVnJGM4NSA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNpY1RleHRDb252ZXJzaW9ucyh7XG4gICAgICAgICAgICAgIGtpbmQ6ICdUZXh0JyxcbiAgICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgICAgdmFsdWU6IHYuam9pbignJykudHJpbSgpLFxuICAgICAgICAgICAgICBtb2RlOiAndmVyYmF0aW0nLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgIHBlZyRjODYgPSBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgY29uc3QgYmxvY2sgPSB7XG4gICAgICAgICAgICBraW5kOiAnQmxvY2snLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICB2YWx1ZTogdixcbiAgICAgICAgICAgIG1hcmt1cDoge30sXG4gICAgICAgICAgICBjYXNlOiAncHJvdGVjdCcsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGV0IGxlYWRpbmdjbWQgPSBibG9jay52YWx1ZS5sZW5ndGggJiYgKGJsb2NrLnZhbHVlWzBdLmtpbmQuZW5kc1dpdGgoJ0NvbW1hbmQnKSB8fCBibG9jay52YWx1ZVswXS5raW5kID09PSAnRW52aXJvbm1lbnQnKSA/IGJsb2NrLnZhbHVlWzBdIDogbnVsbFxuICAgICAgICAgIGxldCBsZWFkaW5nY21kYmxvY2thcmcgPSBsZWFkaW5nY21kXG4gICAgICAgICAgICAmJiBsZWFkaW5nY21kLmtpbmQgPT09ICdSZWd1bGFyQ29tbWFuZCdcbiAgICAgICAgICAgICYmIGxlYWRpbmdjbWQuYXJndW1lbnRzLnJlcXVpcmVkLmxlbmd0aFxuICAgICAgICAgICAgJiYgbGVhZGluZ2NtZC5hcmd1bWVudHMucmVxdWlyZWRbMF0ua2luZCA9PT0gJ0Jsb2NrJ1xuICAgICAgICAgICAgJiYgbGVhZGluZ2NtZC5hcmd1bWVudHMucmVxdWlyZWRbMF1cblxuICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZXRvcnF1ZXJlL3pvdGVyby1iZXR0ZXItYmlidGV4L2lzc3Vlcy81NDEjaXNzdWVjb21tZW50LTI0MDE1NjI3NFxuICAgICAgICAgIGlmIChsZWFkaW5nY21kKSB7XG4gICAgICAgICAgICBkZWxldGUgYmxvY2suY2FzZVxuXG4gICAgICAgICAgICAvLyBjb21tYW5kIHdpdGggYSBibG9jayBjYW5jZWxzIG91dCBjYXNlIHByb3RlY3Rpb24gd2l0aCBjb250YWluaW5nIGJsb2NrXG4gICAgICAgICAgICAvLyBpZiBhIHNtYWxsY2FwcyBibG9jayBoYXMgc2V0IGNhc2UgdG8gJ3ByZXNlcnZlJyB3ZSB3YW50IHRvIGtlZXAgdGhpc1xuICAgICAgICAgICAgaWYgKGxlYWRpbmdjbWRibG9ja2FyZyAmJiBsZWFkaW5nY21kYmxvY2thcmcuY2FzZSA9PT0gJ3Byb3RlY3QnKSBkZWxldGUgbGVhZGluZ2NtZGJsb2NrYXJnLmNhc2VcblxuICAgICAgICAgICAgLy8gXFxzbCwgXFxpdCBldGNcbiAgICAgICAgICAgIGlmIChtYXJrdXBbbGVhZGluZ2NtZC5jb21tYW5kXSkge1xuICAgICAgICAgICAgICBibG9jay5tYXJrdXBbbWFya3VwW2xlYWRpbmdjbWQuY29tbWFuZF1dID0gdHJ1ZVxuICAgICAgICAgICAgICBibG9jay52YWx1ZS5zaGlmdCgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGhhbmRsZV9tYXJrdXBfc3dpdGNoZXMoYmxvY2spXG4gICAgICAgIH0sXG4gICAgICBwZWckYzg3ID0gZnVuY3Rpb24oKSB7IHJldHVybiAhbWF0aC5vbiB9LFxuICAgICAgcGVnJGM4OCA9IFwiJFwiLFxuICAgICAgcGVnJGM4OSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCIkXCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjOTAgPSBcIiQkXCIsXG4gICAgICBwZWckYzkxID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIiQkXCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjOTIgPSBmdW5jdGlvbihtb2RlKSB7IHJldHVybiBtYXRoLnNldCh0cnVlKSB9LFxuICAgICAgcGVnJGM5MyA9IGZ1bmN0aW9uKG1vZGUsIHYpIHsgcmV0dXJuIG1hdGguc2V0KGZhbHNlKSB9LFxuICAgICAgcGVnJGM5NCA9IGZ1bmN0aW9uKG1vZGUsIHYpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogbW9kZSA9PSAnJCQnID8gJ0Rpc3BsYXlNYXRoJyA6ICdJbmxpbmVNYXRoJyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgICAgICBjYXNlOiAncHJvdGVjdCcsXG4gICAgICAgICAgICBtYXJrdXA6IHt9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjOTUgPSBcIiVcIixcbiAgICAgIHBlZyRjOTYgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiJVwiLCBmYWxzZSksXG4gICAgICBwZWckYzk3ID0gL15bXlxcclxcbl0vLFxuICAgICAgcGVnJGM5OCA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIlxcclwiLCBcIlxcblwiXSwgdHJ1ZSwgZmFsc2UpLFxuICAgICAgcGVnJGM5OSA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ0xpbmVDb21tZW50JyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgcGVnJGMxMDAgPSAvXltfXFxeXS8sXG4gICAgICBwZWckYzEwMSA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIl9cIiwgXCJeXCJdLCBmYWxzZSwgZmFsc2UpLFxuICAgICAgcGVnJGMxMDIgPSBmdW5jdGlvbihtb2RlLCB2KSB7XG4gICAgICAgICAgaWYgKHYua2luZCA9PT0gJ0Jsb2NrJykgdiA9IHYudmFsdWVcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBraW5kOiBtb2RlID09PSAnXycgPyAnU3Vic2NyaXB0Q29tbWFuZCcgOiAnU3VwZXJzY3JpcHRDb21tYW5kJyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgcGVnJGMxMDMgPSBmdW5jdGlvbihtYXJrLCB2KSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdSZWd1bGFyQ29tbWFuZCcsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIGNvbW1hbmQ6IG1hcmssXG4gICAgICAgICAgICBhcmd1bWVudHM6IHtcbiAgICAgICAgICAgICAgb3B0aW9uYWw6IFtdLFxuICAgICAgICAgICAgICByZXF1aXJlZDogWyBwcm90ZWN0KHYpIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjMTA0ID0gL15bXkEtWmEtejAtOVxcdFxcclxcbl0vLFxuICAgICAgcGVnJGMxMDUgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbW1wiQVwiLCBcIlpcIl0sIFtcImFcIiwgXCJ6XCJdLCBbXCIwXCIsIFwiOVwiXSwgXCJcXHRcIiwgXCJcXHJcIiwgXCJcXG5cIl0sIHRydWUsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTA2ID0gZnVuY3Rpb24odikge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBraW5kOiAnU3ltYm9sQ29tbWFuZCcsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIGNvbW1hbmQ6IHYsXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgcGVnJGMxMDcgPSBcIm5ld2NvbW1hbmRcIixcbiAgICAgIHBlZyRjMTA4ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIm5ld2NvbW1hbmRcIiwgZmFsc2UpLFxuICAgICAgcGVnJGMxMDkgPSBmdW5jdGlvbihjbWQsIG5hbWUpIHsgcmV0dXJuIG5hbWUudmFsdWUubGVuZ3RoID09IDEgJiYgbmFtZS52YWx1ZVswXS5raW5kID09PSAnUmVndWxhckNvbW1hbmQnIH0sXG4gICAgICBwZWckYzExMCA9IGZ1bmN0aW9uKGNtZCwgbmFtZSwgb3B0aW9uYWwsIGRlZikge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBraW5kOiAnUmVndWxhckNvbW1hbmQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICBjb21tYW5kOiBjbWQsXG4gICAgICAgICAgICBhcmd1bWVudHM6IHtcbiAgICAgICAgICAgICAgb3B0aW9uYWw6IFtdLFxuICAgICAgICAgICAgICByZXF1aXJlZDogW25hbWUsIGRlZl0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjMTExID0gXCJiZWdpblwiLFxuICAgICAgcGVnJGMxMTIgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiYmVnaW5cIiwgZmFsc2UpLFxuICAgICAgcGVnJGMxMTMgPSBcImVuZFwiLFxuICAgICAgcGVnJGMxMTQgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiZW5kXCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTE1ID0gZnVuY3Rpb24oY21kKSB7IHJldHVybiB2ZXJiYXRpbUNvbW1hbmRzLmluY2x1ZGVzKGNtZCkgJiYgKGhhc19hcmd1bWVudHNbY21kXSA9PT0gMikgfSxcbiAgICAgIHBlZyRjMTE2ID0gZnVuY3Rpb24oY21kLCBvcHRpb25hbCwgcmVxMSwgcmVxMikge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBraW5kOiAnUmVndWxhckNvbW1hbmQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICBjb21tYW5kOiBjbWQsXG4gICAgICAgICAgICBhcmd1bWVudHM6IHtcbiAgICAgICAgICAgICAgb3B0aW9uYWw6IG9wdGlvbmFsLFxuICAgICAgICAgICAgICByZXF1aXJlZDogW3Byb3RlY3QocmVxMSksIHByb3RlY3QocmVxMildLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICBwZWckYzExNyA9IGZ1bmN0aW9uKGNtZCkgeyByZXR1cm4gdmVyYmF0aW1Db21tYW5kcy5pbmNsdWRlcyhjbWQpICYmIChoYXNfYXJndW1lbnRzW2NtZF0gPT09IDEpIH0sXG4gICAgICBwZWckYzExOCA9IGZ1bmN0aW9uKGNtZCwgb3B0aW9uYWwsIHJlcSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBraW5kOiAnUmVndWxhckNvbW1hbmQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICBjb21tYW5kOiBjbWQsXG4gICAgICAgICAgICBhcmd1bWVudHM6IHtcbiAgICAgICAgICAgICAgb3B0aW9uYWw6IG9wdGlvbmFsLFxuICAgICAgICAgICAgICByZXF1aXJlZDogW3Byb3RlY3QocmVxKV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjMTE5ID0gZnVuY3Rpb24oY21kKSB7IHJldHVybiAoaGFzX2FyZ3VtZW50c1tjbWRdID09PSAyKSB9LFxuICAgICAgcGVnJGMxMjAgPSBmdW5jdGlvbihjbWQsIG9wdGlvbmFsLCByZXExLCByZXEyKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdSZWd1bGFyQ29tbWFuZCcsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIGNvbW1hbmQ6IGNtZCxcbiAgICAgICAgICAgIGFyZ3VtZW50czoge1xuICAgICAgICAgICAgICBvcHRpb25hbDogb3B0aW9uYWwsXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiBbcmVxMSwgcmVxMl0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjMTIxID0gZnVuY3Rpb24oY21kKSB7IHJldHVybiAoaGFzX2FyZ3VtZW50c1tjbWRdID09PSAxKSB9LFxuICAgICAgcGVnJGMxMjIgPSBmdW5jdGlvbihjbWQsIG9wdGlvbmFsLCByZXEpIHtcbiAgICAgICAgICBsZXQgbVxuICAgICAgICAgIGlmIChyZXEua2luZCA9PT0gJ0Jsb2NrJykge1xuICAgICAgICAgICAgc3dpdGNoIChjbWQpIHtcbiAgICAgICAgICAgICAgY2FzZSAndGV4dHN1cGVyc2NyaXB0JzpcbiAgICAgICAgICAgICAgY2FzZSAnc3AnOlxuICAgICAgICAgICAgICAgIHJlcS5tYXJrdXAuc3VwID0gdHJ1ZVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIGNhc2UgJ3RleHRzdWJzY3JpcHQnOlxuICAgICAgICAgICAgICBjYXNlICdzYic6XG4gICAgICAgICAgICAgICAgcmVxLm1hcmt1cC5zdWIgPSB0cnVlXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgY2FzZSAndGV4dHNjJzpcbiAgICAgICAgICAgICAgICByZXEubWFya3VwLnNtYWxsQ2FwcyA9IHRydWVcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICBjYXNlICdlbnF1b3RlJzpcbiAgICAgICAgICAgICAgY2FzZSAnbWtiaWJxdW90ZSc6XG4gICAgICAgICAgICAgICAgcmVxLm1hcmt1cC5lbnF1b3RlID0gdHJ1ZVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIGNhc2UgJ3RleHRiZic6XG4gICAgICAgICAgICAgIGNhc2UgJ21rYmliYm9sZCc6XG4gICAgICAgICAgICAgICAgcmVxLm1hcmt1cC5ib2xkID0gdHJ1ZVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIGNhc2UgJ2VtcGgnOlxuICAgICAgICAgICAgICBjYXNlICd0ZXh0aXQnOlxuICAgICAgICAgICAgICBjYXNlICdta2JpYml0YWxpYyc6XG4gICAgICAgICAgICAgIGNhc2UgJ21rYmliZW1waCc6XG4gICAgICAgICAgICAgICAgcmVxLm1hcmt1cC5pdGFsaWNzID0gdHJ1ZVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaWYgKG0gPSBjbWQubWF0Y2goL14oKHN1YikqKXNlY3Rpb24kLykpIHtcbiAgICAgICAgICAgICAgICAgIHJlcS5tYXJrdXBbYGgkeyhtWzFdLmxlbmd0aCAvIDMpICsgMX1gXSA9IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gaWdub3JlIGNhc2Ugc3R1ZmYgb24gYmliY3lyXG4gICAgICAgICAgaWYgKGNtZCA9PT0gJ2JpYmN5cicpIGRlbGV0ZSByZXEuY2FzZVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdSZWd1bGFyQ29tbWFuZCcsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIGNvbW1hbmQ6IGNtZCxcbiAgICAgICAgICAgIGFyZ3VtZW50czoge1xuICAgICAgICAgICAgICBvcHRpb25hbDogb3B0aW9uYWwsXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiBbcmVxXSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICBwZWckYzEyMyA9IGZ1bmN0aW9uKGNtZCwgb3B0aW9uYWwpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ1JlZ3VsYXJDb21tYW5kJyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgY29tbWFuZDogY21kLFxuICAgICAgICAgICAgYXJndW1lbnRzOiB7XG4gICAgICAgICAgICAgIG9wdGlvbmFsOiBvcHRpb25hbCxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IFtdLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjMTI0ID0gXCJbXCIsXG4gICAgICBwZWckYzEyNSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJbXCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTI2ID0gL15bXlxcXV0vLFxuICAgICAgcGVnJGMxMjcgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCJdXCJdLCB0cnVlLCBmYWxzZSksXG4gICAgICBwZWckYzEyOCA9IFwiXVwiLFxuICAgICAgcGVnJGMxMjkgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiXVwiLCBmYWxzZSksXG4gICAgICBwZWckYzEzMCA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICByZXR1cm4gYmFzaWNUZXh0Q29udmVyc2lvbnMoe1xuICAgICAgICAgICAga2luZDogJ1RleHQnLCAvLyB0aGlzIGlzbid0IHJlYWxseSBjb3JyZWN0IGJ1dCBJIGRvbid0IG5lZWQgdGhlc2UgcmlnaHQgbm93XG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgICAgbW9kZTogbWF0aC5vbiA/ICdtYXRoJyA6ICd0ZXh0JyxcbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgcGVnJGMxMzEgPSAvXlteIFxcdFxcXl8ke31cXFxcXS8sXG4gICAgICBwZWckYzEzMiA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIiBcIiwgXCJcXHRcIiwgXCJeXCIsIFwiX1wiLCBcIiRcIiwgXCJ7XCIsIFwifVwiLCBcIlxcXFxcIl0sIHRydWUsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTMzID0gZnVuY3Rpb24odikge1xuICAgICAgICAgIHJldHVybiBiYXNpY1RleHRDb252ZXJzaW9ucyh7XG4gICAgICAgICAgICBraW5kOiAnVGV4dCcsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIHZhbHVlOiBub3JtYWxpemVXaGl0ZXNwYWNlKFt2XSksXG4gICAgICAgICAgICBtb2RlOiBtYXRoLm9uID8gJ21hdGgnIDogJ3RleHQnLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICBwZWckYzEzNCA9IC9eW2EtekEtWlxcLV9dLyxcbiAgICAgIHBlZyRjMTM1ID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1tcImFcIiwgXCJ6XCJdLCBbXCJBXCIsIFwiWlwiXSwgXCItXCIsIFwiX1wiXSwgZmFsc2UsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTM2ID0gL15bYS16QS1aMC05XFwtJl86XS8sXG4gICAgICBwZWckYzEzNyA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtbXCJhXCIsIFwielwiXSwgW1wiQVwiLCBcIlpcIl0sIFtcIjBcIiwgXCI5XCJdLCBcIi1cIiwgXCImXCIsIFwiX1wiLCBcIjpcIl0sIGZhbHNlLCBmYWxzZSksXG4gICAgICBwZWckYzEzOCA9IC9eWydgXCI9flxcXi5dLyxcbiAgICAgIHBlZyRjMTM5ID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1wiJ1wiLCBcImBcIiwgXCJcXFwiXCIsIFwiPVwiLCBcIn5cIiwgXCJeXCIsIFwiLlwiXSwgZmFsc2UsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTQwID0gL15bJ2BcIj1+XFxeLmNidXZkckhrXS8sXG4gICAgICBwZWckYzE0MSA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIidcIiwgXCJgXCIsIFwiXFxcIlwiLCBcIj1cIiwgXCJ+XCIsIFwiXlwiLCBcIi5cIiwgXCJjXCIsIFwiYlwiLCBcInVcIiwgXCJ2XCIsIFwiZFwiLCBcInJcIiwgXCJIXCIsIFwia1wiXSwgZmFsc2UsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTQyID0gXCI9XCIsXG4gICAgICBwZWckYzE0MyA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCI9XCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTQ0ID0gXCIjXCIsXG4gICAgICBwZWckYzE0NSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCIjXCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTQ2ID0gL15bXFxyXFxuXS8sXG4gICAgICBwZWckYzE0NyA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIlxcclwiLCBcIlxcblwiXSwgZmFsc2UsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTQ4ID0gcGVnJG90aGVyRXhwZWN0YXRpb24oXCJNYW5kYXRvcnkgSG9yaXpvbnRhbCBXaGl0ZXNwYWNlXCIpLFxuICAgICAgcGVnJGMxNDkgPSAvXlsgXFx0XS8sXG4gICAgICBwZWckYzE1MCA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIiBcIiwgXCJcXHRcIl0sIGZhbHNlLCBmYWxzZSksXG4gICAgICBwZWckYzE1MSA9IHBlZyRvdGhlckV4cGVjdGF0aW9uKFwiT3B0aW9uYWwgSG9yaXpvbnRhbCBXaGl0ZXNwYWNlXCIpLFxuICAgICAgcGVnJGMxNTIgPSBwZWckb3RoZXJFeHBlY3RhdGlvbihcIk1hbmRhdG9yeSBWZXJ0aWNhbCBXaGl0ZXNwYWNlXCIpLFxuICAgICAgcGVnJGMxNTMgPSBwZWckb3RoZXJFeHBlY3RhdGlvbihcIk9wdGlvbmFsIFZlcnRpY2FsIFdoaXRlc3BhY2VcIiksXG4gICAgICBwZWckYzE1NCA9IHBlZyRvdGhlckV4cGVjdGF0aW9uKFwiTWFuZGF0b3J5IFdoaXRlc3BhY2VcIiksXG4gICAgICBwZWckYzE1NSA9IC9eWyBcXHRcXG5cXHJdLyxcbiAgICAgIHBlZyRjMTU2ID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1wiIFwiLCBcIlxcdFwiLCBcIlxcblwiLCBcIlxcclwiXSwgZmFsc2UsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTU3ID0gcGVnJG90aGVyRXhwZWN0YXRpb24oXCJPcHRpb25hbCBXaGl0ZXNwYWNlXCIpLFxuXG4gICAgICBwZWckY3VyclBvcyAgICAgICAgICA9IDAsXG4gICAgICBwZWckc2F2ZWRQb3MgICAgICAgICA9IDAsXG4gICAgICBwZWckcG9zRGV0YWlsc0NhY2hlICA9IFt7IGxpbmU6IDEsIGNvbHVtbjogMSB9XSxcbiAgICAgIHBlZyRtYXhGYWlsUG9zICAgICAgID0gMCxcbiAgICAgIHBlZyRtYXhGYWlsRXhwZWN0ZWQgID0gW10sXG4gICAgICBwZWckc2lsZW50RmFpbHMgICAgICA9IDAsXG5cbiAgICAgIHBlZyRyZXN1bHQ7XG5cbiAgaWYgKFwic3RhcnRSdWxlXCIgaW4gb3B0aW9ucykge1xuICAgIGlmICghKG9wdGlvbnMuc3RhcnRSdWxlIGluIHBlZyRzdGFydFJ1bGVGdW5jdGlvbnMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBzdGFydCBwYXJzaW5nIGZyb20gcnVsZSBcXFwiXCIgKyBvcHRpb25zLnN0YXJ0UnVsZSArIFwiXFxcIi5cIik7XG4gICAgfVxuXG4gICAgcGVnJHN0YXJ0UnVsZUZ1bmN0aW9uID0gcGVnJHN0YXJ0UnVsZUZ1bmN0aW9uc1tvcHRpb25zLnN0YXJ0UnVsZV07XG4gIH1cblxuICBmdW5jdGlvbiB0ZXh0KCkge1xuICAgIHJldHVybiBpbnB1dC5zdWJzdHJpbmcocGVnJHNhdmVkUG9zLCBwZWckY3VyclBvcyk7XG4gIH1cblxuICBmdW5jdGlvbiBsb2NhdGlvbigpIHtcbiAgICByZXR1cm4gcGVnJGNvbXB1dGVMb2NhdGlvbihwZWckc2F2ZWRQb3MsIHBlZyRjdXJyUG9zKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGV4cGVjdGVkKGRlc2NyaXB0aW9uLCBsb2NhdGlvbikge1xuICAgIGxvY2F0aW9uID0gbG9jYXRpb24gIT09IHZvaWQgMCA/IGxvY2F0aW9uIDogcGVnJGNvbXB1dGVMb2NhdGlvbihwZWckc2F2ZWRQb3MsIHBlZyRjdXJyUG9zKVxuXG4gICAgdGhyb3cgcGVnJGJ1aWxkU3RydWN0dXJlZEVycm9yKFxuICAgICAgW3BlZyRvdGhlckV4cGVjdGF0aW9uKGRlc2NyaXB0aW9uKV0sXG4gICAgICBpbnB1dC5zdWJzdHJpbmcocGVnJHNhdmVkUG9zLCBwZWckY3VyclBvcyksXG4gICAgICBsb2NhdGlvblxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiBlcnJvcihtZXNzYWdlLCBsb2NhdGlvbikge1xuICAgIGxvY2F0aW9uID0gbG9jYXRpb24gIT09IHZvaWQgMCA/IGxvY2F0aW9uIDogcGVnJGNvbXB1dGVMb2NhdGlvbihwZWckc2F2ZWRQb3MsIHBlZyRjdXJyUG9zKVxuXG4gICAgdGhyb3cgcGVnJGJ1aWxkU2ltcGxlRXJyb3IobWVzc2FnZSwgbG9jYXRpb24pO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbih0ZXh0LCBpZ25vcmVDYXNlKSB7XG4gICAgcmV0dXJuIHsgdHlwZTogXCJsaXRlcmFsXCIsIHRleHQ6IHRleHQsIGlnbm9yZUNhc2U6IGlnbm9yZUNhc2UgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRjbGFzc0V4cGVjdGF0aW9uKHBhcnRzLCBpbnZlcnRlZCwgaWdub3JlQ2FzZSkge1xuICAgIHJldHVybiB7IHR5cGU6IFwiY2xhc3NcIiwgcGFydHM6IHBhcnRzLCBpbnZlcnRlZDogaW52ZXJ0ZWQsIGlnbm9yZUNhc2U6IGlnbm9yZUNhc2UgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRhbnlFeHBlY3RhdGlvbigpIHtcbiAgICByZXR1cm4geyB0eXBlOiBcImFueVwiIH07XG4gIH1cblxuICBmdW5jdGlvbiBwZWckZW5kRXhwZWN0YXRpb24oKSB7XG4gICAgcmV0dXJuIHsgdHlwZTogXCJlbmRcIiB9O1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJG90aGVyRXhwZWN0YXRpb24oZGVzY3JpcHRpb24pIHtcbiAgICByZXR1cm4geyB0eXBlOiBcIm90aGVyXCIsIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiB9O1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJGNvbXB1dGVQb3NEZXRhaWxzKHBvcykge1xuICAgIHZhciBkZXRhaWxzID0gcGVnJHBvc0RldGFpbHNDYWNoZVtwb3NdLCBwO1xuXG4gICAgaWYgKGRldGFpbHMpIHtcbiAgICAgIHJldHVybiBkZXRhaWxzO1xuICAgIH0gZWxzZSB7XG4gICAgICBwID0gcG9zIC0gMTtcbiAgICAgIHdoaWxlICghcGVnJHBvc0RldGFpbHNDYWNoZVtwXSkge1xuICAgICAgICBwLS07XG4gICAgICB9XG5cbiAgICAgIGRldGFpbHMgPSBwZWckcG9zRGV0YWlsc0NhY2hlW3BdO1xuICAgICAgZGV0YWlscyA9IHtcbiAgICAgICAgbGluZTogICBkZXRhaWxzLmxpbmUsXG4gICAgICAgIGNvbHVtbjogZGV0YWlscy5jb2x1bW5cbiAgICAgIH07XG5cbiAgICAgIHdoaWxlIChwIDwgcG9zKSB7XG4gICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHApID09PSAxMCkge1xuICAgICAgICAgIGRldGFpbHMubGluZSsrO1xuICAgICAgICAgIGRldGFpbHMuY29sdW1uID0gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZXRhaWxzLmNvbHVtbisrO1xuICAgICAgICB9XG5cbiAgICAgICAgcCsrO1xuICAgICAgfVxuXG4gICAgICBwZWckcG9zRGV0YWlsc0NhY2hlW3Bvc10gPSBkZXRhaWxzO1xuICAgICAgcmV0dXJuIGRldGFpbHM7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcGVnJGNvbXB1dGVMb2NhdGlvbihzdGFydFBvcywgZW5kUG9zKSB7XG4gICAgdmFyIHN0YXJ0UG9zRGV0YWlscyA9IHBlZyRjb21wdXRlUG9zRGV0YWlscyhzdGFydFBvcyksXG4gICAgICAgIGVuZFBvc0RldGFpbHMgICA9IHBlZyRjb21wdXRlUG9zRGV0YWlscyhlbmRQb3MpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiB7XG4gICAgICAgIG9mZnNldDogc3RhcnRQb3MsXG4gICAgICAgIGxpbmU6ICAgc3RhcnRQb3NEZXRhaWxzLmxpbmUsXG4gICAgICAgIGNvbHVtbjogc3RhcnRQb3NEZXRhaWxzLmNvbHVtblxuICAgICAgfSxcbiAgICAgIGVuZDoge1xuICAgICAgICBvZmZzZXQ6IGVuZFBvcyxcbiAgICAgICAgbGluZTogICBlbmRQb3NEZXRhaWxzLmxpbmUsXG4gICAgICAgIGNvbHVtbjogZW5kUG9zRGV0YWlscy5jb2x1bW5cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJGZhaWwoZXhwZWN0ZWQpIHtcbiAgICBpZiAocGVnJGN1cnJQb3MgPCBwZWckbWF4RmFpbFBvcykgeyByZXR1cm47IH1cblxuICAgIGlmIChwZWckY3VyclBvcyA+IHBlZyRtYXhGYWlsUG9zKSB7XG4gICAgICBwZWckbWF4RmFpbFBvcyA9IHBlZyRjdXJyUG9zO1xuICAgICAgcGVnJG1heEZhaWxFeHBlY3RlZCA9IFtdO1xuICAgIH1cblxuICAgIHBlZyRtYXhGYWlsRXhwZWN0ZWQucHVzaChleHBlY3RlZCk7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckYnVpbGRTaW1wbGVFcnJvcihtZXNzYWdlLCBsb2NhdGlvbikge1xuICAgIHJldHVybiBuZXcgcGVnJFN5bnRheEVycm9yKG1lc3NhZ2UsIG51bGwsIG51bGwsIGxvY2F0aW9uKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRidWlsZFN0cnVjdHVyZWRFcnJvcihleHBlY3RlZCwgZm91bmQsIGxvY2F0aW9uKSB7XG4gICAgcmV0dXJuIG5ldyBwZWckU3ludGF4RXJyb3IoXG4gICAgICBwZWckU3ludGF4RXJyb3IuYnVpbGRNZXNzYWdlKGV4cGVjdGVkLCBmb3VuZCksXG4gICAgICBleHBlY3RlZCxcbiAgICAgIGZvdW5kLFxuICAgICAgbG9jYXRpb25cbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlQmlibGlvZ3JhcGh5KCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMztcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckcGFyc2VfXygpO1xuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBbXTtcbiAgICAgIHMzID0gcGVnJHBhcnNlTm9kZSgpO1xuICAgICAgd2hpbGUgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyLnB1c2goczMpO1xuICAgICAgICBzMyA9IHBlZyRwYXJzZU5vZGUoKTtcbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMyA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgIHMxID0gcGVnJGMwKHMyKTtcbiAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlQ29tbWVudCgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczMsIHM0LCBzNSwgczYsIHM3O1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDY0KSB7XG4gICAgICBzMSA9IHBlZyRjMTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyKTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMyID0gcGVnJHBhcnNlX18oKTtcbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA3KS50b0xvd2VyQ2FzZSgpID09PSBwZWckYzMpIHtcbiAgICAgICAgICBzMyA9IGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgKz0gNztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzQpOyB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczQgPSBwZWckcGFyc2VfX2goKTtcbiAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlQnJhY2VkQ29tbWVudCgpO1xuICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMSA9IHBlZyRjNShzNSk7XG4gICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gNjQpIHtcbiAgICAgICAgczEgPSBwZWckYzE7XG4gICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyKTsgfVxuICAgICAgfVxuICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyID0gcGVnJHBhcnNlX18oKTtcbiAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNykudG9Mb3dlckNhc2UoKSA9PT0gcGVnJGMzKSB7XG4gICAgICAgICAgICBzMyA9IGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNyk7XG4gICAgICAgICAgICBwZWckY3VyclBvcyArPSA3O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNCk7IH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNCA9IHBlZyRwYXJzZV9faCgpO1xuICAgICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM1ID0gW107XG4gICAgICAgICAgICAgIGlmIChwZWckYzYudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICAgIHM2ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHM2ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNyk7IH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB3aGlsZSAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzNS5wdXNoKHM2KTtcbiAgICAgICAgICAgICAgICBpZiAocGVnJGM2LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgICAgIHM2ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHM2ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM3KTsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzNiA9IFtdO1xuICAgICAgICAgICAgICAgIGlmIChwZWckYzgudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICAgICAgczcgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgczcgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzkpOyB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdoaWxlIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczYucHVzaChzNyk7XG4gICAgICAgICAgICAgICAgICBpZiAocGVnJGM4LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgczcgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgczcgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjOSk7IH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgIHMxID0gcGVnJGMxMChzNSk7XG4gICAgICAgICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHMxID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIGlmIChwZWckYzExLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICBzMiA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzEyKTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMzID0gW107XG4gICAgICAgICAgaWYgKHBlZyRjNi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICBzNCA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNyk7IH1cbiAgICAgICAgICB9XG4gICAgICAgICAgd2hpbGUgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMy5wdXNoKHM0KTtcbiAgICAgICAgICAgIGlmIChwZWckYzYudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICBzNCA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM3KTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHMyID0gW3MyLCBzM107XG4gICAgICAgICAgICBzMSA9IHMyO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMxO1xuICAgICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMxO1xuICAgICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMiA9IFtdO1xuICAgICAgICAgIGlmIChwZWckYzgudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgczMgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzkpOyB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHdoaWxlIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczIucHVzaChzMyk7XG4gICAgICAgICAgICBpZiAocGVnJGM4LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgczMgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjOSk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgIHMxID0gcGVnJGMxMyhzMSk7XG4gICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZU5vZGUoKSB7XG4gICAgdmFyIHMwLCBzMTtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckcGFyc2VDb21tZW50KCk7XG4gICAgaWYgKHMxID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMSA9IHBlZyRwYXJzZVByZWFtYmxlRXhwcmVzc2lvbigpO1xuICAgICAgaWYgKHMxID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMxID0gcGVnJHBhcnNlU3RyaW5nRGVjbGFyYXRpb24oKTtcbiAgICAgICAgaWYgKHMxID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczEgPSBwZWckcGFyc2VFbnRyeSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICBzMSA9IHBlZyRjMTQoczEpO1xuICAgIH1cbiAgICBzMCA9IHMxO1xuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlQnJhY2VkQ29tbWVudCgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczM7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTIzKSB7XG4gICAgICBzMSA9IHBlZyRjMTU7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTYpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBbXTtcbiAgICAgIGlmIChwZWckYzE3LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgczMgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTgpOyB9XG4gICAgICB9XG4gICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczMgPSBwZWckcGFyc2VCcmFjZWRDb21tZW50KCk7XG4gICAgICB9XG4gICAgICB3aGlsZSAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIucHVzaChzMyk7XG4gICAgICAgIGlmIChwZWckYzE3LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICBzMyA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE4KTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMzID0gcGVnJHBhcnNlQnJhY2VkQ29tbWVudCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjUpIHtcbiAgICAgICAgICBzMyA9IHBlZyRjMTk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIwKTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgIHMxID0gcGVnJGMyMShzMik7XG4gICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUVudHJ5KCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMywgczQsIHM1LCBzNiwgczcsIHM4LCBzOSwgczEwLCBzMTEsIHMxMjtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA2NCkge1xuICAgICAgczEgPSBwZWckYzE7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMik7IH1cbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczMgPSBwZWckY3VyclBvcztcbiAgICAgICAgczQgPSBbXTtcbiAgICAgICAgaWYgKHBlZyRjMjIudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgIHM1ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjMpOyB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgd2hpbGUgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNC5wdXNoKHM1KTtcbiAgICAgICAgICAgIGlmIChwZWckYzIyLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgczUgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjMpOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMyA9IGlucHV0LnN1YnN0cmluZyhzMywgcGVnJGN1cnJQb3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMzID0gczQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczQgPSBwZWckcGFyc2VfXygpO1xuICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgaWYgKHBlZyRjMjQudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICBzNSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyNSk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNiA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM3ID0gcGVnJHBhcnNlRW50cnlJZCgpO1xuICAgICAgICAgICAgICAgIGlmIChzNyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczcgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJHBhcnNlX18oKTtcbiAgICAgICAgICAgICAgICAgIGlmIChzOCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICBzOSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBzMTAgPSBwZWckcGFyc2VGaWVsZCgpO1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoczEwICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgczkucHVzaChzMTApO1xuICAgICAgICAgICAgICAgICAgICAgIHMxMCA9IHBlZyRwYXJzZUZpZWxkKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHM5ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgczEwID0gcGVnJHBhcnNlX18oKTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoczEwICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGVnJGMyNi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMxMSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzMTEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjcpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoczExICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMxMiA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzMTIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMSA9IHBlZyRjMjgoczMsIHM3LCBzOSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZVByZWFtYmxlRXhwcmVzc2lvbigpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczMsIHM0LCBzNSwgczYsIHM3LCBzOCwgczksIHMxMDtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA2NCkge1xuICAgICAgczEgPSBwZWckYzE7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMik7IH1cbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgOCkudG9Mb3dlckNhc2UoKSA9PT0gcGVnJGMyOSkge1xuICAgICAgICAgIHMzID0gaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA4KTtcbiAgICAgICAgICBwZWckY3VyclBvcyArPSA4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMzApOyB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczQgPSBwZWckcGFyc2VfXygpO1xuICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgaWYgKHBlZyRjMjQudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICBzNSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyNSk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNiA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM3ID0gW107XG4gICAgICAgICAgICAgICAgczggPSBwZWckcGFyc2VFbnZpcm9ubWVudCgpO1xuICAgICAgICAgICAgICAgIGlmIChzOCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczggPSBwZWckcGFyc2VCbG9jaygpO1xuICAgICAgICAgICAgICAgICAgaWYgKHM4ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJHBhcnNlTWF0aCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoczggPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzOCA9IHBlZyRwYXJzZUNvbW1hbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoczggPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJHBhcnNlVGV4dCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3aGlsZSAoczggIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM3LnB1c2goczgpO1xuICAgICAgICAgICAgICAgICAgczggPSBwZWckcGFyc2VFbnZpcm9ubWVudCgpO1xuICAgICAgICAgICAgICAgICAgaWYgKHM4ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJHBhcnNlQmxvY2soKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHM4ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgczggPSBwZWckcGFyc2VNYXRoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHM4ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzOCA9IHBlZyRwYXJzZUNvbW1hbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzOCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzOCA9IHBlZyRwYXJzZVRleHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHM3ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBzOCA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgICAgICAgICAgICBpZiAoczggIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBlZyRjMjYudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICAgICAgICAgIHM5ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHM5ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjcpOyB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHM5ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgczEwID0gcGVnJHBhcnNlX18oKTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoczEwICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHMxID0gcGVnJGMzMShzNSwgczcsIHM5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlU3RyaW5nRGVjbGFyYXRpb24oKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzLCBzNCwgczUsIHM2LCBzNywgczgsIHM5LCBzMTAsIHMxMSwgczEyO1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDY0KSB7XG4gICAgICBzMSA9IHBlZyRjMTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyKTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMyID0gcGVnJHBhcnNlX18oKTtcbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA2KS50b0xvd2VyQ2FzZSgpID09PSBwZWckYzMyKSB7XG4gICAgICAgICAgczMgPSBpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDYpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDY7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMzMyk7IH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzNCA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBpZiAocGVnJGMyNC50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgIHM1ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzI1KTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM2ID0gcGVnJHBhcnNlX18oKTtcbiAgICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczcgPSBwZWckcGFyc2VWYXJpYWJsZU5hbWUoKTtcbiAgICAgICAgICAgICAgICBpZiAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJHBhcnNlRmllbGRTZXBhcmF0b3IoKTtcbiAgICAgICAgICAgICAgICAgIGlmIChzOCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICBzOSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBzMTAgPSBwZWckcGFyc2VSZWd1bGFyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHMxMCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzMTAgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHM5LnB1c2goczEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHMxMCA9IHBlZyRwYXJzZVJlZ3VsYXJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBzOSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHM5ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgczEwID0gcGVnJHBhcnNlX18oKTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoczEwICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGVnJGMyNi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMxMSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzMTEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjcpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoczExICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMxMiA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzMTIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMSA9IHBlZyRjMzQoczcsIHM5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlRW50cnlJZCgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczMsIHM0O1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBzMSA9IHBlZyRwYXJzZV9fKCk7XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IHBlZyRjdXJyUG9zO1xuICAgICAgczMgPSBbXTtcbiAgICAgIGlmIChwZWckYzM1LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgczQgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMzYpOyB9XG4gICAgICB9XG4gICAgICB3aGlsZSAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczMucHVzaChzNCk7XG4gICAgICAgIGlmIChwZWckYzM1LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICBzNCA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzM2KTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIgPSBpbnB1dC5zdWJzdHJpbmcoczIsIHBlZyRjdXJyUG9zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMyID0gczM7XG4gICAgICB9XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczMgPSBwZWckcGFyc2VfXygpO1xuICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDQ0KSB7XG4gICAgICAgICAgICBzNCA9IHBlZyRjMzc7XG4gICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMzgpOyB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICBzMSA9IHBlZyRjMzkoczIpO1xuICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VGaWVsZCgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczMsIHM0LCBzNSwgczYsIHM3LCBzODtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckcGFyc2VGaWVsZE5hbWUoKTtcbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHBlZyRjdXJyUG9zO1xuICAgICAgczIgPSBwZWckYzQwKHMxKTtcbiAgICAgIGlmIChzMikge1xuICAgICAgICBzMiA9IHZvaWQgMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMyA9IHBlZyRwYXJzZUZpZWxkU2VwYXJhdG9yKCk7XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTIzKSB7XG4gICAgICAgICAgICBzNCA9IHBlZyRjMTU7XG4gICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTYpOyB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczUgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjMpIHtcbiAgICAgICAgICAgICAgczYgPSBwZWckYzE1O1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczYgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTYpOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwZWckc2lsZW50RmFpbHMtLTtcbiAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHM1O1xuICAgICAgICAgICAgICBzNSA9IHZvaWQgMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNiA9IHBlZyRwYXJzZVZlcmJhdGltRmllbGRWYWx1ZSgpO1xuICAgICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyNSkge1xuICAgICAgICAgICAgICAgICAgczcgPSBwZWckYzE5O1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgczcgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIwKTsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJHBhcnNlRmllbGRUZXJtaW5hdG9yKCk7XG4gICAgICAgICAgICAgICAgICBpZiAoczggIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgIHMxID0gcGVnJGM0MShzMSwgczYpO1xuICAgICAgICAgICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cbiAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICBzMSA9IHBlZyRwYXJzZUZpZWxkTmFtZSgpO1xuICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHBlZyRzYXZlZFBvcyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICBzMiA9IHBlZyRjNDIoczEpO1xuICAgICAgICBpZiAoczIpIHtcbiAgICAgICAgICBzMiA9IHZvaWQgMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczMgPSBwZWckcGFyc2VGaWVsZFNlcGFyYXRvcigpO1xuICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczQgPSBwZWckcGFyc2VWZXJiYXRpbUZpZWxkVmFsdWUoKTtcbiAgICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRwYXJzZUZpZWxkVGVybWluYXRvcigpO1xuICAgICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMSA9IHBlZyRjNDMoczEsIHM0KTtcbiAgICAgICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgICAgczEgPSBwZWckcGFyc2VGaWVsZE5hbWUoKTtcbiAgICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczIgPSBwZWckcGFyc2VGaWVsZFNlcGFyYXRvcigpO1xuICAgICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczMgPSBwZWckcGFyc2VGaWVsZFZhbHVlKCk7XG4gICAgICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczQgPSBwZWckcGFyc2VGaWVsZFRlcm1pbmF0b3IoKTtcbiAgICAgICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczEgPSBwZWckYzQ0KHMxLCBzMyk7XG4gICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUZpZWxkTmFtZSgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczMsIHM0O1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBzMSA9IHBlZyRwYXJzZV9fKCk7XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IHBlZyRjdXJyUG9zO1xuICAgICAgczMgPSBbXTtcbiAgICAgIGlmIChwZWckYzQ1LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgczQgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNDYpOyB9XG4gICAgICB9XG4gICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgd2hpbGUgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczMucHVzaChzNCk7XG4gICAgICAgICAgaWYgKHBlZyRjNDUudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgczQgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzQ2KTsgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyID0gaW5wdXQuc3Vic3RyaW5nKHMyLCBwZWckY3VyclBvcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMiA9IHMzO1xuICAgICAgfVxuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICBzMSA9IHBlZyRjNDcoczIpO1xuICAgICAgICBzMCA9IHMxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZVZlcmJhdGltRmllbGRWYWx1ZSgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczM7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMzQpIHtcbiAgICAgIHMxID0gcGVnJGM0ODtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM0OSk7IH1cbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IHBlZyRwYXJzZVRleHROb1F1b3RlcygpO1xuICAgICAgaWYgKHMyID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDM0KSB7XG4gICAgICAgICAgczMgPSBwZWckYzQ4O1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM0OSk7IH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICBzMSA9IHBlZyRjNTAoczIpO1xuICAgICAgICAgIHMwID0gczE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjMpIHtcbiAgICAgICAgczEgPSBwZWckYzE1O1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTYpOyB9XG4gICAgICB9XG4gICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIgPSBbXTtcbiAgICAgICAgczMgPSBwZWckcGFyc2VWZXJiYXRpbVRleHQoKTtcbiAgICAgICAgd2hpbGUgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczIucHVzaChzMyk7XG4gICAgICAgICAgczMgPSBwZWckcGFyc2VWZXJiYXRpbVRleHQoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyNSkge1xuICAgICAgICAgICAgczMgPSBwZWckYzE5O1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIwKTsgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgczEgPSBwZWckYzUxKHMyKTtcbiAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlVmVyYmF0aW1UZXh0KCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMztcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckY3VyclBvcztcbiAgICBzMiA9IFtdO1xuICAgIGlmIChwZWckYzE3LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgIHMzID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxOCk7IH1cbiAgICB9XG4gICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICB3aGlsZSAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIucHVzaChzMyk7XG4gICAgICAgIGlmIChwZWckYzE3LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICBzMyA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE4KTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMSA9IGlucHV0LnN1YnN0cmluZyhzMSwgcGVnJGN1cnJQb3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHMyO1xuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgczEgPSBwZWckYzUyKHMxKTtcbiAgICB9XG4gICAgczAgPSBzMTtcbiAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyMykge1xuICAgICAgICBzMSA9IHBlZyRjMTU7XG4gICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNik7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMiA9IFtdO1xuICAgICAgICBzMyA9IHBlZyRwYXJzZVZlcmJhdGltVGV4dCgpO1xuICAgICAgICB3aGlsZSAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMi5wdXNoKHMzKTtcbiAgICAgICAgICBzMyA9IHBlZyRwYXJzZVZlcmJhdGltVGV4dCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTI1KSB7XG4gICAgICAgICAgICBzMyA9IHBlZyRjMTk7XG4gICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjApOyB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICBzMSA9IHBlZyRjNTMoczIpO1xuICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VGaWVsZFZhbHVlKCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMztcblxuICAgIHMwID0gcGVnJHBhcnNlTnVtYmVyKCk7XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgcGVnJHNhdmVkUG9zID0gcGVnJGN1cnJQb3M7XG4gICAgICBzMSA9IHBlZyRjNTQoKTtcbiAgICAgIGlmIChzMSkge1xuICAgICAgICBzMSA9IHZvaWQgMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMiA9IFtdO1xuICAgICAgICBzMyA9IHBlZyRwYXJzZVJlZ3VsYXJWYWx1ZSgpO1xuICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMyA9IHBlZyRwYXJzZVN0cmluZ1ZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczIucHVzaChzMyk7XG4gICAgICAgICAgczMgPSBwZWckcGFyc2VSZWd1bGFyVmFsdWUoKTtcbiAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlU3RyaW5nVmFsdWUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgczEgPSBwZWckYzU1KHMyKTtcbiAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlUmVndWxhclZhbHVlKCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMywgczQsIHM1O1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDM0KSB7XG4gICAgICBzMSA9IHBlZyRjNDg7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNDkpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBbXTtcbiAgICAgIHMzID0gcGVnJHBhcnNlRW52aXJvbm1lbnQoKTtcbiAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMyA9IHBlZyRwYXJzZUJsb2NrKCk7XG4gICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMzID0gcGVnJHBhcnNlTWF0aCgpO1xuICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczMgPSBwZWckcGFyc2VDb21tYW5kKCk7XG4gICAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczMgPSBwZWckcGFyc2VUZXh0Tm9RdW90ZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHdoaWxlIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMi5wdXNoKHMzKTtcbiAgICAgICAgczMgPSBwZWckcGFyc2VFbnZpcm9ubWVudCgpO1xuICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMyA9IHBlZyRwYXJzZUJsb2NrKCk7XG4gICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMyA9IHBlZyRwYXJzZU1hdGgoKTtcbiAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzMyA9IHBlZyRwYXJzZUNvbW1hbmQoKTtcbiAgICAgICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczMgPSBwZWckcGFyc2VUZXh0Tm9RdW90ZXMoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMzQpIHtcbiAgICAgICAgICBzMyA9IHBlZyRjNDg7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzQ5KTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHM0ID0gcGVnJHBhcnNlQ29uY2F0KCk7XG4gICAgICAgICAgaWYgKHM0ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNCA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICBzMSA9IHBlZyRjNTYoczIpO1xuICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNikgPT09IHBlZyRjNTcpIHtcbiAgICAgICAgczEgPSBwZWckYzU3O1xuICAgICAgICBwZWckY3VyclBvcyArPSA2O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNTgpOyB9XG4gICAgICB9XG4gICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIgPSBwZWckY3VyclBvcztcbiAgICAgICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgICAgIGlmIChwZWckYzU5LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICBzMyA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzYwKTsgfVxuICAgICAgICB9XG4gICAgICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMiA9IHZvaWQgMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMyO1xuICAgICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMyA9IFtdO1xuICAgICAgICAgIHM0ID0gcGVnJHBhcnNlVmVyYmF0aW1UZXh0KCk7XG4gICAgICAgICAgd2hpbGUgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMy5wdXNoKHM0KTtcbiAgICAgICAgICAgIHM0ID0gcGVnJHBhcnNlVmVyYmF0aW1UZXh0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjUpIHtcbiAgICAgICAgICAgICAgczQgPSBwZWckYzE5O1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjApOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczUgPSBwZWckcGFyc2VDb25jYXQoKTtcbiAgICAgICAgICAgICAgaWYgKHM1ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczUgPSBudWxsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMxID0gcGVnJGM1MShzMyk7XG4gICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTIzKSB7XG4gICAgICAgICAgczEgPSBwZWckYzE1O1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNik7IH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMiA9IFtdO1xuICAgICAgICAgIHMzID0gcGVnJHBhcnNlRW52aXJvbm1lbnQoKTtcbiAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlQmxvY2soKTtcbiAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzMyA9IHBlZyRwYXJzZU1hdGgoKTtcbiAgICAgICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczMgPSBwZWckcGFyc2VDb21tYW5kKCk7XG4gICAgICAgICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBzMyA9IHBlZyRwYXJzZVRleHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgd2hpbGUgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMi5wdXNoKHMzKTtcbiAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlRW52aXJvbm1lbnQoKTtcbiAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzMyA9IHBlZyRwYXJzZUJsb2NrKCk7XG4gICAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlTWF0aCgpO1xuICAgICAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczMgPSBwZWckcGFyc2VDb21tYW5kKCk7XG4gICAgICAgICAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgczMgPSBwZWckcGFyc2VUZXh0KCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjUpIHtcbiAgICAgICAgICAgICAgczMgPSBwZWckYzE5O1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjApOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczQgPSBwZWckcGFyc2VDb25jYXQoKTtcbiAgICAgICAgICAgICAgaWYgKHM0ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczQgPSBudWxsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMxID0gcGVnJGM1NihzMik7XG4gICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgIHMxID0gcGVnJHBhcnNlU3RyaW5nUmVmZXJlbmNlKCk7XG4gICAgICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMiA9IHBlZyRwYXJzZUNvbmNhdCgpO1xuICAgICAgICAgICAgaWYgKHMyID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHMyID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczEgPSBwZWckYzU2KHMxKTtcbiAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VTdHJpbmdWYWx1ZSgpIHtcbiAgICB2YXIgczAsIHMxLCBzMjtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckcGFyc2VTdHJpbmdSZWZlcmVuY2UoKTtcbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMyID0gcGVnJHBhcnNlQ29uY2F0KCk7XG4gICAgICBpZiAoczIgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIgPSBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICBzMSA9IHBlZyRjNTYoczEpO1xuICAgICAgICBzMCA9IHMxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZVRleHQoKSB7XG4gICAgdmFyIHMwLCBzMSwgczI7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gW107XG4gICAgaWYgKHBlZyRjNjEudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgczIgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzYyKTsgfVxuICAgIH1cbiAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHdoaWxlIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMS5wdXNoKHMyKTtcbiAgICAgICAgaWYgKHBlZyRjNjEudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgIHMyID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNjIpOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgczEgPSBwZWckYzYzKHMxKTtcbiAgICB9XG4gICAgczAgPSBzMTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZVRleHROb1F1b3RlcygpIHtcbiAgICB2YXIgczAsIHMxLCBzMjtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBbXTtcbiAgICBpZiAocGVnJGM2NC50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICBzMiA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNjUpOyB9XG4gICAgfVxuICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgd2hpbGUgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMxLnB1c2goczIpO1xuICAgICAgICBpZiAocGVnJGM2NC50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgczIgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM2NSk7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICBzMSA9IHBlZyRjNjMoczEpO1xuICAgIH1cbiAgICBzMCA9IHMxO1xuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlTnVtYmVyKCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMztcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckY3VyclBvcztcbiAgICBzMiA9IFtdO1xuICAgIGlmIChwZWckYzY2LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgIHMzID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM2Nyk7IH1cbiAgICB9XG4gICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICB3aGlsZSAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIucHVzaChzMyk7XG4gICAgICAgIGlmIChwZWckYzY2LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICBzMyA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzY3KTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMSA9IGlucHV0LnN1YnN0cmluZyhzMSwgcGVnJGN1cnJQb3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHMyO1xuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgczEgPSBwZWckYzY4KHMxKTtcbiAgICB9XG4gICAgczAgPSBzMTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZVN0cmluZ1JlZmVyZW5jZSgpIHtcbiAgICB2YXIgczAsIHMxO1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBzMSA9IHBlZyRwYXJzZVZhcmlhYmxlTmFtZSgpO1xuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICBzMSA9IHBlZyRjNjkoczEpO1xuICAgIH1cbiAgICBzMCA9IHMxO1xuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlRW52aXJvbm1lbnQoKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzLCBzNCwgczUsIHM2LCBzNywgczg7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDcpID09PSBwZWckYzcwKSB7XG4gICAgICBzMSA9IHBlZyRjNzA7XG4gICAgICBwZWckY3VyclBvcyArPSA3O1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNzEpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBwZWckY3VyclBvcztcbiAgICAgIHMzID0gW107XG4gICAgICBpZiAocGVnJGM3Mi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgIHM0ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzczKTsgfVxuICAgICAgfVxuICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHdoaWxlIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMzLnB1c2goczQpO1xuICAgICAgICAgIGlmIChwZWckYzcyLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgIHM0ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM3Myk7IH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMiA9IGlucHV0LnN1YnN0cmluZyhzMiwgcGVnJGN1cnJQb3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczIgPSBzMztcbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyNSkge1xuICAgICAgICAgIHMzID0gcGVnJGMxOTtcbiAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjApOyB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczQgPSBbXTtcbiAgICAgICAgICBzNSA9IHBlZyRwYXJzZUVudmlyb25tZW50KCk7XG4gICAgICAgICAgaWYgKHM1ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNSA9IHBlZyRwYXJzZUJsb2NrKCk7XG4gICAgICAgICAgICBpZiAoczUgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczUgPSBwZWckcGFyc2VDb21tYW5kKCk7XG4gICAgICAgICAgICAgIGlmIChzNSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlTWF0aCgpO1xuICAgICAgICAgICAgICAgIGlmIChzNSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczUgPSBwZWckcGFyc2VUZXh0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHdoaWxlIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczQucHVzaChzNSk7XG4gICAgICAgICAgICBzNSA9IHBlZyRwYXJzZUVudmlyb25tZW50KCk7XG4gICAgICAgICAgICBpZiAoczUgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczUgPSBwZWckcGFyc2VCbG9jaygpO1xuICAgICAgICAgICAgICBpZiAoczUgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzNSA9IHBlZyRwYXJzZUNvbW1hbmQoKTtcbiAgICAgICAgICAgICAgICBpZiAoczUgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlTWF0aCgpO1xuICAgICAgICAgICAgICAgICAgaWYgKHM1ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlVGV4dCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDUpID09PSBwZWckYzc0KSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJGM3NDtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgKz0gNTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzc1KTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM2ID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICAgIHM3ID0gW107XG4gICAgICAgICAgICAgIGlmIChwZWckYzcyLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgICBzOCA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzOCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzczKTsgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzOCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHdoaWxlIChzOCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczcucHVzaChzOCk7XG4gICAgICAgICAgICAgICAgICBpZiAocGVnJGM3Mi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHM4ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzczKTsgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzNyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHM3ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczYgPSBpbnB1dC5zdWJzdHJpbmcoczYsIHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzNiA9IHM3O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTI1KSB7XG4gICAgICAgICAgICAgICAgICBzNyA9IHBlZyRjMTk7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBzNyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjApOyB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICAgICAgICBzOCA9IHBlZyRjNzYoczIsIHM0LCBzNik7XG4gICAgICAgICAgICAgICAgICBpZiAoczgpIHtcbiAgICAgICAgICAgICAgICAgICAgczggPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzOCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpZiAoczggIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgIHMxID0gcGVnJGM3NyhzMiwgczQsIHM2KTtcbiAgICAgICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VCbG9jaygpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczMsIHM0LCBzNSwgczY7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDIpID09PSBwZWckYzc4KSB7XG4gICAgICBzMSA9IHBlZyRjNzg7XG4gICAgICBwZWckY3VyclBvcyArPSAyO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNzkpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBwZWckcGFyc2VFeHRlbmRlZERpYWNyaXRpYygpO1xuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMzID0gcGVnJHBhcnNlX18oKTtcbiAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgaWYgKHBlZyRjNzIudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgczQgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzczKTsgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczQgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHM0ID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDkyKSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJGM4MDtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzgxKTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIGlmIChwZWckYzgyLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgICBzNiA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzNiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzgzKTsgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM1ID0gW3M1LCBzNl07XG4gICAgICAgICAgICAgICAgczQgPSBzNTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHM0O1xuICAgICAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzNDtcbiAgICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTI1KSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJGMxOTtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIwKTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMSA9IHBlZyRjODQoczIsIHM0KTtcbiAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNikgPT09IHBlZyRjNTcpIHtcbiAgICAgICAgczEgPSBwZWckYzU3O1xuICAgICAgICBwZWckY3VyclBvcyArPSA2O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNTgpOyB9XG4gICAgICB9XG4gICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIgPSBwZWckY3VyclBvcztcbiAgICAgICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgICAgIGlmIChwZWckYzU5LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICBzMyA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzYwKTsgfVxuICAgICAgICB9XG4gICAgICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMiA9IHZvaWQgMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMyO1xuICAgICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMyA9IFtdO1xuICAgICAgICAgIHM0ID0gcGVnJHBhcnNlVmVyYmF0aW1UZXh0KCk7XG4gICAgICAgICAgd2hpbGUgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMy5wdXNoKHM0KTtcbiAgICAgICAgICAgIHM0ID0gcGVnJHBhcnNlVmVyYmF0aW1UZXh0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjUpIHtcbiAgICAgICAgICAgICAgczQgPSBwZWckYzE5O1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjApOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgIHMxID0gcGVnJGM4NShzMyk7XG4gICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjMpIHtcbiAgICAgICAgICBzMSA9IHBlZyRjMTU7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE2KTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMyID0gW107XG4gICAgICAgICAgczMgPSBwZWckcGFyc2VFbnZpcm9ubWVudCgpO1xuICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczMgPSBwZWckcGFyc2VCbG9jaygpO1xuICAgICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlQ29tbWFuZCgpO1xuICAgICAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzMyA9IHBlZyRwYXJzZU1hdGgoKTtcbiAgICAgICAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlVGV4dCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB3aGlsZSAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHMyLnB1c2goczMpO1xuICAgICAgICAgICAgczMgPSBwZWckcGFyc2VFbnZpcm9ubWVudCgpO1xuICAgICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlQmxvY2soKTtcbiAgICAgICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczMgPSBwZWckcGFyc2VDb21tYW5kKCk7XG4gICAgICAgICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBzMyA9IHBlZyRwYXJzZU1hdGgoKTtcbiAgICAgICAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICBzMyA9IHBlZyRwYXJzZVRleHQoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyNSkge1xuICAgICAgICAgICAgICBzMyA9IHBlZyRjMTk7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyMCk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczEgPSBwZWckYzg2KHMyKTtcbiAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VNYXRoKCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMywgczQsIHM1LCBzNjtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgcGVnJHNhdmVkUG9zID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckYzg3KCk7XG4gICAgaWYgKHMxKSB7XG4gICAgICBzMSA9IHZvaWQgMDtcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMzYpIHtcbiAgICAgICAgczIgPSBwZWckYzg4O1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjODkpOyB9XG4gICAgICB9XG4gICAgICBpZiAoczIgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMikgPT09IHBlZyRjOTApIHtcbiAgICAgICAgICBzMiA9IHBlZyRjOTA7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgKz0gMjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzkxKTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgcGVnJHNhdmVkUG9zID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHMzID0gcGVnJGM5MihzMik7XG4gICAgICAgIGlmIChzMykge1xuICAgICAgICAgIHMzID0gdm9pZCAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzNCA9IFtdO1xuICAgICAgICAgIHM1ID0gcGVnJHBhcnNlQmxvY2soKTtcbiAgICAgICAgICBpZiAoczUgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlQ29tbWFuZCgpO1xuICAgICAgICAgICAgaWYgKHM1ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlVGV4dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB3aGlsZSAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHM0LnB1c2goczUpO1xuICAgICAgICAgICAgczUgPSBwZWckcGFyc2VCbG9jaygpO1xuICAgICAgICAgICAgaWYgKHM1ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlQ29tbWFuZCgpO1xuICAgICAgICAgICAgICBpZiAoczUgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzNSA9IHBlZyRwYXJzZVRleHQoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMzYpIHtcbiAgICAgICAgICAgICAgczUgPSBwZWckYzg4O1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjODkpOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczUgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMikgPT09IHBlZyRjOTApIHtcbiAgICAgICAgICAgICAgICBzNSA9IHBlZyRjOTA7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgKz0gMjtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzkxKTsgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICAgIHM2ID0gcGVnJGM5MyhzMiwgczQpO1xuICAgICAgICAgICAgICBpZiAoczYpIHtcbiAgICAgICAgICAgICAgICBzNiA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzNiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczEgPSBwZWckYzk0KHMyLCBzNCk7XG4gICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUxpbmVDb21tZW50KCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMywgczQsIHM1O1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDM3KSB7XG4gICAgICBzMSA9IHBlZyRjOTU7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjOTYpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBwZWckcGFyc2VfX2goKTtcbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICBzNCA9IFtdO1xuICAgICAgICBpZiAocGVnJGM5Ny50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgczUgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM5OCk7IH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICB3aGlsZSAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHM0LnB1c2goczUpO1xuICAgICAgICAgICAgaWYgKHBlZyRjOTcudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICBzNSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM5OCk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMzID0gaW5wdXQuc3Vic3RyaW5nKHMzLCBwZWckY3VyclBvcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczMgPSBzNDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzNCA9IFtdO1xuICAgICAgICAgIHM1ID0gcGVnJHBhcnNlRU9MKCk7XG4gICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICB3aGlsZSAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczQucHVzaChzNSk7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlRU9MKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgIHMxID0gcGVnJGM5OShzMyk7XG4gICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUNvbW1hbmQoKSB7XG4gICAgdmFyIHMwO1xuXG4gICAgczAgPSBwZWckcGFyc2VTY3JpcHRDb21tYW5kKCk7XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRwYXJzZURpYWNyaXRpY0NvbW1hbmQoKTtcbiAgICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMCA9IHBlZyRwYXJzZVJlZ3VsYXJDb21tYW5kKCk7XG4gICAgICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMwID0gcGVnJHBhcnNlU3ltYm9sQ29tbWFuZCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlU2NyaXB0Q29tbWFuZCgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczM7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIGlmIChwZWckYzEwMC50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICBzMSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTAxKTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMyID0gcGVnJHBhcnNlX19oKCk7XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczMgPSBwZWckcGFyc2VSZXF1aXJlZEFyZ3VtZW50KCk7XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgIHMxID0gcGVnJGMxMDIoczEsIHMzKTtcbiAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlRGlhY3JpdGljQ29tbWFuZCgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczMsIHM0LCBzNSwgczY7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gOTIpIHtcbiAgICAgIHMxID0gcGVnJGM4MDtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4MSk7IH1cbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IHBlZyRwYXJzZVNpbXBsZURpYWNyaXRpYygpO1xuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMzID0gcGVnJHBhcnNlX18oKTtcbiAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgaWYgKHBlZyRjNzIudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgczQgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzczKTsgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczQgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHM0ID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDkyKSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJGM4MDtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzgxKTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIGlmIChwZWckYzgyLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgICBzNiA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzNiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzgzKTsgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM1ID0gW3M1LCBzNl07XG4gICAgICAgICAgICAgICAgczQgPSBzNTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHM0O1xuICAgICAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzNDtcbiAgICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgczEgPSBwZWckYzg0KHMyLCBzNCk7XG4gICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cbiAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDkyKSB7XG4gICAgICAgIHMxID0gcGVnJGM4MDtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzgxKTsgfVxuICAgICAgfVxuICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyID0gcGVnJHBhcnNlRXh0ZW5kZWREaWFjcml0aWMoKTtcbiAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjMpIHtcbiAgICAgICAgICAgIHMzID0gcGVnJGMxNTtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNik7IH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBpZiAocGVnJGM3Mi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgIHM0ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzczKTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHM0ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gOTIpIHtcbiAgICAgICAgICAgICAgICBzNSA9IHBlZyRjODA7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzgxKTsgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIGlmIChwZWckYzgyLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgICAgIHM2ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHM2ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4Myk7IH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBzNSA9IFtzNSwgczZdO1xuICAgICAgICAgICAgICAgICAgczQgPSBzNTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzNDtcbiAgICAgICAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzNDtcbiAgICAgICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyNSkge1xuICAgICAgICAgICAgICAgIHM1ID0gcGVnJGMxOTtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjApOyB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczEgPSBwZWckYzg0KHMyLCBzNCk7XG4gICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gOTIpIHtcbiAgICAgICAgICBzMSA9IHBlZyRjODA7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzgxKTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMyID0gcGVnJHBhcnNlRXh0ZW5kZWREaWFjcml0aWMoKTtcbiAgICAgICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICBwZWckc2lsZW50RmFpbHMrKztcbiAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTIzKSB7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJGMxNTtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE2KTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICAgICAgczMgPSB2b2lkIDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczQgPSBwZWckcGFyc2VSZWd1bGFyVmFsdWUoKTtcbiAgICAgICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczEgPSBwZWckYzEwMyhzMiwgczQpO1xuICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VTeW1ib2xDb21tYW5kKCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMztcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA5Mikge1xuICAgICAgczEgPSBwZWckYzgwO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzgxKTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMyID0gcGVnJGN1cnJQb3M7XG4gICAgICBpZiAocGVnJGMxMDQudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICBzMyA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMDUpOyB9XG4gICAgICB9XG4gICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIgPSBpbnB1dC5zdWJzdHJpbmcoczIsIHBlZyRjdXJyUG9zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMyID0gczM7XG4gICAgICB9XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgIHMxID0gcGVnJGMxMDYoczIpO1xuICAgICAgICBzMCA9IHMxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZVJlZ3VsYXJDb21tYW5kKCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMywgczQsIHM1LCBzNiwgczcsIHM4LCBzOSwgczEwO1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDkyKSB7XG4gICAgICBzMSA9IHBlZyRjODA7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjODEpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMTApID09PSBwZWckYzEwNykge1xuICAgICAgICBzMiA9IHBlZyRjMTA3O1xuICAgICAgICBwZWckY3VyclBvcyArPSAxMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzEwOCk7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMyA9IHBlZyRwYXJzZUJsb2NrKCk7XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgIHM0ID0gcGVnJGMxMDkoczIsIHMzKTtcbiAgICAgICAgICBpZiAoczQpIHtcbiAgICAgICAgICAgIHM0ID0gdm9pZCAwO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczUgPSBbXTtcbiAgICAgICAgICAgIHM2ID0gcGVnJHBhcnNlT3B0aW9uYWxBcmd1bWVudCgpO1xuICAgICAgICAgICAgd2hpbGUgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM1LnB1c2goczYpO1xuICAgICAgICAgICAgICBzNiA9IHBlZyRwYXJzZU9wdGlvbmFsQXJndW1lbnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNiA9IHBlZyRwYXJzZVJlcXVpcmVkQXJndW1lbnQoKTtcbiAgICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczEgPSBwZWckYzExMChzMiwgczMsIHM1LCBzNik7XG4gICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cbiAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDkyKSB7XG4gICAgICAgIHMxID0gcGVnJGM4MDtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzgxKTsgfVxuICAgICAgfVxuICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA1KSA9PT0gcGVnJGMxMTEpIHtcbiAgICAgICAgICBzMyA9IHBlZyRjMTExO1xuICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMTIpOyB9XG4gICAgICAgIH1cbiAgICAgICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMyID0gdm9pZCAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczI7XG4gICAgICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMykgPT09IHBlZyRjMTEzKSB7XG4gICAgICAgICAgICBzNCA9IHBlZyRjMTEzO1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgKz0gMztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzExNCk7IH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgICAgICAgaWYgKHM0ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMyA9IHZvaWQgMDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgczUgPSBbXTtcbiAgICAgICAgICAgIGlmIChwZWckYzIyLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgczYgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczYgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjMpOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgd2hpbGUgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczUucHVzaChzNik7XG4gICAgICAgICAgICAgICAgaWYgKHBlZyRjMjIudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICAgICAgczYgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgczYgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIzKTsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM0ID0gaW5wdXQuc3Vic3RyaW5nKHM0LCBwZWckY3VyclBvcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNCA9IHM1O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICBzNSA9IHBlZyRjMTE1KHM0KTtcbiAgICAgICAgICAgICAgaWYgKHM1KSB7XG4gICAgICAgICAgICAgICAgczUgPSB2b2lkIDA7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM2ID0gW107XG4gICAgICAgICAgICAgICAgczcgPSBwZWckcGFyc2VPcHRpb25hbEFyZ3VtZW50KCk7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHM3ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBzNi5wdXNoKHM3KTtcbiAgICAgICAgICAgICAgICAgIHM3ID0gcGVnJHBhcnNlT3B0aW9uYWxBcmd1bWVudCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM3ID0gcGVnJHBhcnNlX19oKCk7XG4gICAgICAgICAgICAgICAgICBpZiAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgczggPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgICAgICAgICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTIzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgczkgPSBwZWckYzE1O1xuICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgczkgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNik7IH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwZWckc2lsZW50RmFpbHMtLTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHM5ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzODtcbiAgICAgICAgICAgICAgICAgICAgICBzOCA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBzOCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHM4ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgczkgPSBwZWckcGFyc2VWZXJiYXRpbUZpZWxkVmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoczkgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHMxMCA9IHBlZyRwYXJzZVZlcmJhdGltRmllbGRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMxMCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczEgPSBwZWckYzExNihzNCwgczYsIHM5LCBzMTApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gOTIpIHtcbiAgICAgICAgICBzMSA9IHBlZyRjODA7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzgxKTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMyID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNSkgPT09IHBlZyRjMTExKSB7XG4gICAgICAgICAgICBzMyA9IHBlZyRjMTExO1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgKz0gNTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzExMik7IH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMiA9IHZvaWQgMDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMjtcbiAgICAgICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCAzKSA9PT0gcGVnJGMxMTMpIHtcbiAgICAgICAgICAgICAgczQgPSBwZWckYzExMztcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgKz0gMztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzExNCk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgICAgICAgICAgaWYgKHM0ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHMzID0gdm9pZCAwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMztcbiAgICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICAgIHM1ID0gW107XG4gICAgICAgICAgICAgIGlmIChwZWckYzIyLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgICBzNiA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzNiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIzKTsgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHdoaWxlIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczUucHVzaChzNik7XG4gICAgICAgICAgICAgICAgICBpZiAocGVnJGMyMi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHM2ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHM2ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIzKTsgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczQgPSBpbnB1dC5zdWJzdHJpbmcoczQsIHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzNCA9IHM1O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICAgIHM1ID0gcGVnJGMxMTcoczQpO1xuICAgICAgICAgICAgICAgIGlmIChzNSkge1xuICAgICAgICAgICAgICAgICAgczUgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBzNiA9IFtdO1xuICAgICAgICAgICAgICAgICAgczcgPSBwZWckcGFyc2VPcHRpb25hbEFyZ3VtZW50KCk7XG4gICAgICAgICAgICAgICAgICB3aGlsZSAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgczYucHVzaChzNyk7XG4gICAgICAgICAgICAgICAgICAgIHM3ID0gcGVnJHBhcnNlT3B0aW9uYWxBcmd1bWVudCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIHM3ID0gcGVnJHBhcnNlX19oKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICAgICAgICAgICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHM5ID0gcGVnJGMxNTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHM5ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNik7IH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHM5ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgczggPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHM4ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzOSA9IHBlZyRwYXJzZVZlcmJhdGltRmllbGRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHM5ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzMSA9IHBlZyRjMTE4KHM0LCBzNiwgczkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gOTIpIHtcbiAgICAgICAgICAgIHMxID0gcGVnJGM4MDtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4MSk7IH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMiA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA1KSA9PT0gcGVnJGMxMTEpIHtcbiAgICAgICAgICAgICAgczMgPSBwZWckYzExMTtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgKz0gNTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzExMik7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHMyID0gdm9pZCAwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMjtcbiAgICAgICAgICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCAzKSA9PT0gcGVnJGMxMTMpIHtcbiAgICAgICAgICAgICAgICBzNCA9IHBlZyRjMTEzO1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDM7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMTQpOyB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgICAgICAgICAgIGlmIChzNCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHMzID0gdm9pZCAwO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM0ID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICAgICAgczUgPSBbXTtcbiAgICAgICAgICAgICAgICBpZiAocGVnJGMyMi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgICBzNiA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBzNiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjMpOyB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgd2hpbGUgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIHM1LnB1c2goczYpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocGVnJGMyMi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgczYgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgczYgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyMyk7IH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczQgPSBpbnB1dC5zdWJzdHJpbmcoczQsIHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgczQgPSBzNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgICAgICAgIHM1ID0gcGVnJGMxMTkoczQpO1xuICAgICAgICAgICAgICAgICAgaWYgKHM1KSB7XG4gICAgICAgICAgICAgICAgICAgIHM1ID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIHM2ID0gW107XG4gICAgICAgICAgICAgICAgICAgIHM3ID0gcGVnJHBhcnNlT3B0aW9uYWxBcmd1bWVudCgpO1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzNi5wdXNoKHM3KTtcbiAgICAgICAgICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZU9wdGlvbmFsQXJndW1lbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZV9faCgpO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgczggPSBwZWckcGFyc2VSZXF1aXJlZEFyZ3VtZW50KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoczggIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczkgPSBwZWckcGFyc2VSZXF1aXJlZEFyZ3VtZW50KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzOSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMxID0gcGVnJGMxMjAoczQsIHM2LCBzOCwgczkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA5Mikge1xuICAgICAgICAgICAgICBzMSA9IHBlZyRjODA7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4MSk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzMiA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICBwZWckc2lsZW50RmFpbHMrKztcbiAgICAgICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNSkgPT09IHBlZyRjMTExKSB7XG4gICAgICAgICAgICAgICAgczMgPSBwZWckYzExMTtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyArPSA1O1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTEyKTsgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgICAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzMiA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMyO1xuICAgICAgICAgICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzMyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDMpID09PSBwZWckYzExMykge1xuICAgICAgICAgICAgICAgICAgczQgPSBwZWckYzExMztcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDM7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMTQpOyB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgICAgICAgICAgICAgIGlmIChzNCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczMgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczQgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgICAgICAgIHM1ID0gW107XG4gICAgICAgICAgICAgICAgICBpZiAocGVnJGMyMi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHM2ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHM2ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIzKTsgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgIHM1LnB1c2goczYpO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChwZWckYzIyLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHM2ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHM2ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyMyk7IH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICBzNCA9IGlucHV0LnN1YnN0cmluZyhzNCwgcGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgczQgPSBzNTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgICAgICAgICAgczUgPSBwZWckYzEyMShzNCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzNSkge1xuICAgICAgICAgICAgICAgICAgICAgIHM1ID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzNiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgIHM3ID0gcGVnJHBhcnNlT3B0aW9uYWxBcmd1bWVudCgpO1xuICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgczYucHVzaChzNyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZU9wdGlvbmFsQXJndW1lbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZV9faCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHM3ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJHBhcnNlUmVxdWlyZWRBcmd1bWVudCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoczggIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMSA9IHBlZyRjMTIyKHM0LCBzNiwgczgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDkyKSB7XG4gICAgICAgICAgICAgICAgczEgPSBwZWckYzgwO1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4MSk7IH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzMiA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDUpID09PSBwZWckYzExMSkge1xuICAgICAgICAgICAgICAgICAgczMgPSBwZWckYzExMTtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMTIpOyB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgICAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczIgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczI7XG4gICAgICAgICAgICAgICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczMgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgICAgICAgICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMykgPT09IHBlZyRjMTEzKSB7XG4gICAgICAgICAgICAgICAgICAgIHM0ID0gcGVnJGMxMTM7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDM7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMTQpOyB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBwZWckc2lsZW50RmFpbHMtLTtcbiAgICAgICAgICAgICAgICAgIGlmIChzNCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICBzMyA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICBzNCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICAgICAgICBzNSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBpZiAocGVnJGMyMi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgczYgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgczYgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyMyk7IH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHM1LnB1c2goczYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBlZyRjMjIudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzNiA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzNiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyMyk7IH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgIHM0ID0gaW5wdXQuc3Vic3RyaW5nKHM0LCBwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgczQgPSBzNTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzNSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgIHM2ID0gcGVnJHBhcnNlT3B0aW9uYWxBcmd1bWVudCgpO1xuICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgczUucHVzaChzNik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzNiA9IHBlZyRwYXJzZU9wdGlvbmFsQXJndW1lbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzNiA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMxID0gcGVnJGMxMjMoczQsIHM1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VPcHRpb25hbEFyZ3VtZW50KCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMywgczQsIHM1O1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDkxKSB7XG4gICAgICBzMSA9IHBlZyRjMTI0O1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzEyNSk7IH1cbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IHBlZyRwYXJzZV9faCgpO1xuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHM0ID0gW107XG4gICAgICAgIGlmIChwZWckYzEyNi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgczUgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMjcpOyB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgd2hpbGUgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNC5wdXNoKHM1KTtcbiAgICAgICAgICAgIGlmIChwZWckYzEyNi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgIHM1ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzEyNyk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMzID0gaW5wdXQuc3Vic3RyaW5nKHMzLCBwZWckY3VyclBvcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczMgPSBzNDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzNCA9IHBlZyRwYXJzZV9faCgpO1xuICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA5Mykge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRjMTI4O1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTI5KTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMSA9IHBlZyRjMTMwKHMzKTtcbiAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VSZXF1aXJlZEFyZ3VtZW50KCkge1xuICAgIHZhciBzMCwgczEsIHMyO1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBzMSA9IHBlZyRwYXJzZV9faCgpO1xuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgaWYgKHBlZyRjMTMxLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgczIgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTMyKTsgfVxuICAgICAgfVxuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICBzMSA9IHBlZyRjMTMzKHMyKTtcbiAgICAgICAgczAgPSBzMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgczEgPSBwZWckcGFyc2VCbG9jaygpO1xuICAgICAgaWYgKHMxID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMxID0gcGVnJHBhcnNlQ29tbWFuZCgpO1xuICAgICAgfVxuICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICBzMSA9IHBlZyRjNTIoczEpO1xuICAgICAgfVxuICAgICAgczAgPSBzMTtcbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VWYXJpYWJsZU5hbWUoKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzLCBzNDtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckY3VyclBvcztcbiAgICBpZiAocGVnJGMxMzQudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgczIgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzEzNSk7IH1cbiAgICB9XG4gICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMyA9IFtdO1xuICAgICAgaWYgKHBlZyRjMTM2LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgczQgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTM3KTsgfVxuICAgICAgfVxuICAgICAgd2hpbGUgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMzLnB1c2goczQpO1xuICAgICAgICBpZiAocGVnJGMxMzYudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgIHM0ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTM3KTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIgPSBbczIsIHMzXTtcbiAgICAgICAgczEgPSBzMjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczE7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMTtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IGlucHV0LnN1YnN0cmluZyhzMCwgcGVnJGN1cnJQb3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMCA9IHMxO1xuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZVNpbXBsZURpYWNyaXRpYygpIHtcbiAgICB2YXIgczA7XG5cbiAgICBpZiAocGVnJGMxMzgudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgczAgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzEzOSk7IH1cbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VFeHRlbmRlZERpYWNyaXRpYygpIHtcbiAgICB2YXIgczA7XG5cbiAgICBpZiAocGVnJGMxNDAudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgczAgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE0MSk7IH1cbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VGaWVsZFNlcGFyYXRvcigpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczM7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gcGVnJHBhcnNlX18oKTtcbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gNjEpIHtcbiAgICAgICAgczIgPSBwZWckYzE0MjtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE0Myk7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMyA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMxID0gW3MxLCBzMiwgczNdO1xuICAgICAgICAgIHMwID0gczE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VGaWVsZFRlcm1pbmF0b3IoKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzLCBzNCwgczU7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gcGVnJHBhcnNlX18oKTtcbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gNDQpIHtcbiAgICAgICAgczIgPSBwZWckYzM3O1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMzgpOyB9XG4gICAgICB9XG4gICAgICBpZiAoczIgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIgPSBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMzID0gcGVnJHBhcnNlX19oKCk7XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHM0ID0gW107XG4gICAgICAgICAgczUgPSBwZWckcGFyc2VMaW5lQ29tbWVudCgpO1xuICAgICAgICAgIGlmIChzNSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczUgPSBwZWckcGFyc2VFT0woKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgd2hpbGUgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNC5wdXNoKHM1KTtcbiAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlTGluZUNvbW1lbnQoKTtcbiAgICAgICAgICAgIGlmIChzNSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRwYXJzZUVPTCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHMxID0gW3MxLCBzMiwgczMsIHM0XTtcbiAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlQ29uY2F0KCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMztcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckcGFyc2VfXygpO1xuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAzNSkge1xuICAgICAgICBzMiA9IHBlZyRjMTQ0O1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTQ1KTsgfVxuICAgICAgfVxuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMzID0gcGVnJHBhcnNlX18oKTtcbiAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczEgPSBbczEsIHMyLCBzM107XG4gICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUVPTCgpIHtcbiAgICB2YXIgczA7XG5cbiAgICBpZiAocGVnJGMxNDYudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgczAgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE0Nyk7IH1cbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VfaCgpIHtcbiAgICB2YXIgczAsIHMxO1xuXG4gICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgczAgPSBbXTtcbiAgICBpZiAocGVnJGMxNDkudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgczEgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE1MCk7IH1cbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICB3aGlsZSAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczAucHVzaChzMSk7XG4gICAgICAgIGlmIChwZWckYzE0OS50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgczEgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNTApOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cbiAgICBwZWckc2lsZW50RmFpbHMtLTtcbiAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNDgpOyB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlX19oKCkge1xuICAgIHZhciBzMCwgczE7XG5cbiAgICBwZWckc2lsZW50RmFpbHMrKztcbiAgICBzMCA9IFtdO1xuICAgIGlmIChwZWckYzE0OS50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICBzMSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTUwKTsgfVxuICAgIH1cbiAgICB3aGlsZSAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMwLnB1c2goczEpO1xuICAgICAgaWYgKHBlZyRjMTQ5LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgczEgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTUwKTsgfVxuICAgICAgfVxuICAgIH1cbiAgICBwZWckc2lsZW50RmFpbHMtLTtcbiAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNTEpOyB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlX3YoKSB7XG4gICAgdmFyIHMwLCBzMTtcblxuICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgIHMwID0gW107XG4gICAgaWYgKHBlZyRjMTQ2LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNDcpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgd2hpbGUgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwLnB1c2goczEpO1xuICAgICAgICBpZiAocGVnJGMxNDYudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTQ3KTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTUyKTsgfVxuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZV9fdigpIHtcbiAgICB2YXIgczAsIHMxO1xuXG4gICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgczAgPSBbXTtcbiAgICBpZiAocGVnJGMxNDYudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgczEgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE0Nyk7IH1cbiAgICB9XG4gICAgd2hpbGUgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMC5wdXNoKHMxKTtcbiAgICAgIGlmIChwZWckYzE0Ni50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE0Nyk7IH1cbiAgICAgIH1cbiAgICB9XG4gICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTUzKTsgfVxuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZV8oKSB7XG4gICAgdmFyIHMwLCBzMTtcblxuICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgIHMwID0gW107XG4gICAgaWYgKHBlZyRjMTU1LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNTYpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgd2hpbGUgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwLnB1c2goczEpO1xuICAgICAgICBpZiAocGVnJGMxNTUudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTU2KTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTU0KTsgfVxuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZV9fKCkge1xuICAgIHZhciBzMCwgczE7XG5cbiAgICBwZWckc2lsZW50RmFpbHMrKztcbiAgICBzMCA9IFtdO1xuICAgIGlmIChwZWckYzE1NS50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICBzMSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTU2KTsgfVxuICAgIH1cbiAgICB3aGlsZSAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMwLnB1c2goczEpO1xuICAgICAgaWYgKHBlZyRjMTU1LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgczEgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTU2KTsgfVxuICAgICAgfVxuICAgIH1cbiAgICBwZWckc2lsZW50RmFpbHMtLTtcbiAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNTcpOyB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cblxuICAgIC8qXG4gICAgICBNSVQgTGljZW5zZVxuXG4gICAgICBDb3B5cmlnaHQgKGMpIDIwMTcgRGVyZWsgUCBTaWZmb3JkLCBwYXJ0cyBjb3B5cmlnaHQgKGMpIDIwMTkgYnkgRW1pbGlhbm8gSGV5bnNcblxuICAgICAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICAgICAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICAgICAgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICAgICAgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICAgICAgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gICAgICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG4gICAgICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAgICAgIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG5cbiAgICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAgICAgIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICAgICAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gICAgICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gICAgICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICAgICAgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAgICAgIFNPRlRXQVJFLlxuICAgICovXG5cbiAgICBjb25zdCBtYXJrdXAgPSB7XG4gICAgICBzbDogJ2l0YWxpY3MnLFxuICAgICAgZW06ICdpdGFsaWNzJyxcbiAgICAgIGl0OiAnaXRhbGljcycsXG4gICAgICBpdHNoYXBlOiAnaXRhbGljcycsXG5cbiAgICAgIGJmOiAnYm9sZCcsXG4gICAgICBiZnNlcmllczogJ2JvbGQnLFxuXG4gICAgICBzYzogJ3NtYWxsQ2FwcycsXG4gICAgICBzY3NoYXBlOiAnc21hbGxDYXBzJyxcblxuICAgICAgdHQ6ICdmaXhlZFdpZHRoJyxcbiAgICAgIHJtOiAncm9tYW4nLFxuICAgICAgc2Y6ICdzYW5zU2VyaWYnLFxuICAgICAgdmVyYjogJ3ZlcmJhdGltJyxcbiAgICB9XG5cbiAgICBjb25zdCB1bm5lc3RGaWVsZHMgPSAob3B0aW9ucy51bm5lc3RGaWVsZHMgfHwgW10pLm1hcChmaWVsZCA9PiBmaWVsZC50b0xvd2VyQ2FzZSgpKVxuICAgIGNvbnN0IHZlcmJhdGltRmllbGRzID0gKG9wdGlvbnMudmVyYmF0aW1GaWVsZHMgfHwgWyAndXJscmF3JywgJ3VybCcsICdkb2knLCAnZmlsZScsICdmaWxlcycsICdlcHJpbnQnLCAndmVyYmEnLCAndmVyYmInLCAndmVyYmMnIF0pLm1hcChmaWVsZCA9PiB0eXBlb2YgZmllbGQgPT09ICdzdHJpbmcnID8gZmllbGQudG9Mb3dlckNhc2UoKSA6IGZpZWxkKVxuICAgIGNvbnN0IHZlcmJhdGltQ29tbWFuZHMgPSAob3B0aW9ucy52ZXJiYXRpbUNvbW1hbmRzIHx8IFsndGV4dHR0JywgJ3VybCcsICdocmVmJ10pXG5cbiAgICBmdW5jdGlvbiBpc1ZlcmJhdGltRmllbGQobmFtZSkge1xuICAgICAgcmV0dXJuIHZlcmJhdGltRmllbGRzLmZpbmQocCA9PiAodHlwZW9mIHAgPT09ICdzdHJpbmcnKSA/IG5hbWUgPT09IHAgOiBuYW1lLm1hdGNoKHApKVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVdoaXRlc3BhY2UodGV4dEFycikge1xuICAgICAgcmV0dXJuIHRleHRBcnIucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgIGlmICgvXFxzLy50ZXN0KGN1cnIpKSB7XG4gICAgICAgICAgaWYgKC9cXHMvLnRlc3QocHJldltwcmV2Lmxlbmd0aCAtIDFdKSkge1xuICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBwcmV2ICsgJyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJldiArIGN1cnI7XG4gICAgICB9LCAnJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzX2FyZ3VtZW50cyA9IHtcbiAgICAgIEVsc2V2aWVyR2x5cGg6IDEsXG4gICAgICBlbmQ6IDEsXG4gICAgICBiZWdpbjogMSxcbiAgICAgIGJpYmN5cjogMSxcbiAgICAgIGJpYnN0cmluZzogMSxcbiAgICAgIGNoc2Y6IDEsXG4gICAgICBjaXRlOiAxLFxuICAgICAgY3lyY2hhcjogMSxcbiAgICAgIGRpbmc6IDEsXG4gICAgICBlbXBoOiAxLFxuICAgICAgZW5xdW90ZTogMSxcbiAgICAgIGZyYWM6IDIsXG4gICAgICBocmVmOiAyLFxuICAgICAgaHNwYWNlOiAxLFxuICAgICAgbWF0aHJtOiAxLFxuICAgICAgbWJveDogMSxcbiAgICAgIG1rYmliYm9sZDogMSxcbiAgICAgIG1rYmliZW1waDogMSxcbiAgICAgIG1rYmliaXRhbGljOiAxLFxuICAgICAgbWtiaWJxdW90ZTogMSxcbiAgICAgIG5ld2NvbW1hbmQ6IDIsXG4gICAgICBub29wc29ydDogMSxcbiAgICAgIG9jaXJjOiAxLFxuICAgICAgc2VjdGlvbjogMSxcbiAgICAgIHNiOiAxLFxuICAgICAgc3A6IDEsXG4gICAgICBzdWJzZWN0aW9uOiAxLFxuICAgICAgc3Vic3Vic2VjdGlvbjogMSxcbiAgICAgIHN1YnN1YnN1YnNlY3Rpb246IDEsXG4gICAgICB0OiAxLFxuICAgICAgdGV4dGJmOiAxLFxuICAgICAgdGV4dGl0OiAxLFxuICAgICAgdGV4dHJtOiAxLFxuICAgICAgdGV4dHNjOiAxLFxuICAgICAgdGV4dHN1YnNjcmlwdDogMSxcbiAgICAgIHRleHRzdXBlcnNjcmlwdDogMSxcbiAgICAgIHRleHR0dDogMSxcbiAgICAgIHVybDogMSxcbiAgICAgIHZwaGFudG9tOiAxLFxuICAgICAgdnNwYWNlOiAxLFxuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmNvbWJpbmluZ0RpYWNyaXRpY3MpIHtcbiAgICAgIGZvciAoY29uc3QgY21kIG9mIG9wdGlvbnMuY29tYmluaW5nRGlhY3JpdGljcykge1xuICAgICAgICBoYXNfYXJndW1lbnRzW2NtZF0gPSAxXG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2F5KCkge1xuICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoQXJyYXkuZnJvbShhcmd1bWVudHMpLCBudWxsLCAyKSlcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGVlayhuKSB7XG4gICAgICByZXR1cm4gaW5wdXQuc3Vic3RyKHBlZyRzYXZlZFBvcywgbilcbiAgICB9XG5cbiAgICBjb25zdCBtYXRoID0ge1xuICAgICAgb246IGZhbHNlLFxuXG4gICAgICBzZXQ6IGZ1bmN0aW9uKHN0YXRlKSB7XG4gICAgICAgIHRoaXMub24gPSBzdGF0ZVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGJhc2ljVGV4dENvbnZlcnNpb25zKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLmtpbmQgIT09ICdUZXh0JykgdGhyb3cgbmV3IEVycm9yKG5vZGUua2luZCArICcgaXMgbm90IGEgVGV4dCBub2RlJylcblxuICAgICAgc3dpdGNoIChub2RlLm1vZGUpIHtcbiAgICAgICAgY2FzZSAndmVyYmF0aW0nOlxuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnbWF0aCc6XG4gICAgICAgICAgbm9kZS52YWx1ZSA9IG5vZGUudmFsdWUucmVwbGFjZSgvfi9nLCAnXFx1MDBBMCcpXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICBub2RlLnZhbHVlID0gbm9kZS52YWx1ZVxuICAgICAgICAgICAgLnJlcGxhY2UoLy0tLS9nLCAnXFx1MjAxNCcpXG4gICAgICAgICAgICAucmVwbGFjZSgvLS0vZywgJ1xcdTIwMTMnKVxuICAgICAgICAgICAgLnJlcGxhY2UoLzwvZywgJ1xcdTAwQTEnKVxuICAgICAgICAgICAgLnJlcGxhY2UoLz4vZywgJ1xcdTAwQkYnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL34vZywgJ1xcdTAwQTAnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL2BgL2csIG9wdGlvbnMubWFya3VwLmVucXVvdGUub3BlbilcbiAgICAgICAgICAgIC5yZXBsYWNlKC8nJy9nLCBvcHRpb25zLm1hcmt1cC5lbnF1b3RlLmNsb3NlKVxuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdGV4dCBtb2RlICR7bm9kZS5tb2RlfWApXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBub2RlXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJvdGVjdCh2KSB7XG4gICAgICBsZXQgc291cmNlXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2KSkge1xuICAgICAgICBzb3VyY2UgPSB2Lm1hcChlID0+IGUuc291cmNlKS5qb2luKCcnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdiA9IFsgdiBdXG4gICAgICAgIHNvdXJjZSA9IHYuc291cmNlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGtpbmQ6ICdCbG9jaycsXG4gICAgICAgIHZhbHVlOiB2LFxuICAgICAgICBtYXJrdXA6IHt9LFxuICAgICAgICBjYXNlOiAncHJvdGVjdCcsXG4gICAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGhhbmRsZV9tYXJrdXBfc3dpdGNoZXMoYmxvY2spIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gYmxvY2sudmFsdWVcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiBibG9ja1xuXG4gICAgICBibG9jay52YWx1ZSA9IFtdXG5cbiAgICAgIGNvbnN0IHBzZXVkbyA9IHtcbiAgICAgICAgYmxvY2s6IG51bGwsXG4gICAgICAgIG1hcmt1cDoge30sXG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBwc2V1ZG9fYmxvY2soKSB7XG4gICAgICAgIHBzZXVkby5ibG9jayA9IHtcbiAgICAgICAgICBraW5kOiAnQmxvY2snLFxuICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICBzb3VyY2U6ICcnLFxuICAgICAgICAgIHZhbHVlOiBbXSxcbiAgICAgICAgICBtYXJrdXA6IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocHNldWRvLm1hcmt1cCkpLFxuICAgICAgICAgIHBzZXVkbzogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgICBibG9jay52YWx1ZS5wdXNoKHBzZXVkby5ibG9jaylcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiB2YWx1ZSkge1xuICAgICAgICBpZiAobm9kZS5raW5kID09PSAnRW52aXJvbm1lbnQnIHx8IG5vZGUua2luZCA9PT0gJ0Jsb2NrJykge1xuICAgICAgICAgIGJsb2NrLnZhbHVlLnB1c2gobm9kZSlcblxuICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhwc2V1ZG8ubWFya3VwKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHBzZXVkb19ibG9jaygpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBzZXVkby5ibG9jayA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub2RlLmtpbmQgPT09ICdSZWd1bGFyQ29tbWFuZCcgJiYgbWFya3VwW25vZGUuY29tbWFuZF0pIHtcbiAgICAgICAgICBpZiAocHNldWRvLm1hcmt1cC5pdGFsaWNzKSB7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jaXRhdGlvbi1qcy9iaWJ0ZXgtcGFyc2VyLWV4cGVyaW1lbnRzL2NvbW1pdC9jYWU0NzVmMDc1YTA1ZDFjMDc0NDg1YTA2MWIwOGVkMjQ1MTcwYzdlXG4gICAgICAgICAgICBkZWxldGUgcHNldWRvLm1hcmt1cC5pdGFsaWNzXG4gICAgICAgICAgICBpZiAobWFya3VwW25vZGUuY29tbWFuZF0gIT09ICdpdGFsaWNzJykgcHNldWRvLm1hcmt1cFttYXJrdXBbbm9kZS5jb21tYW5kXV0gPSB0cnVlXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBzZXVkby5tYXJrdXBbbWFya3VwW25vZGUuY29tbWFuZF1dID0gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhwc2V1ZG8ubWFya3VwKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHBzZXVkb19ibG9jaygpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICBwc2V1ZG8uYmxvY2sgPSBudWxsXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBzZXVkby5ibG9jaykge1xuICAgICAgICAgIHBzZXVkby5ibG9jay5zb3VyY2UgKz0gbm9kZS5zb3VyY2VcbiAgICAgICAgICBwc2V1ZG8uYmxvY2sudmFsdWUucHVzaChub2RlKVxuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmxvY2sudmFsdWUucHVzaChub2RlKVxuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYmxvY2sudmFsdWUgPSBibG9jay52YWx1ZS5maWx0ZXIobm9kZSA9PiAhKG5vZGUucHNldWRvICYmIG5vZGUudmFsdWUubGVuZ3RoID09PSAwKSlcblxuICAgICAgcmV0dXJuIGJsb2NrXG4gICAgfVxuXG5cbiAgcGVnJHJlc3VsdCA9IHBlZyRzdGFydFJ1bGVGdW5jdGlvbigpO1xuXG4gIGlmIChwZWckcmVzdWx0ICE9PSBwZWckRkFJTEVEICYmIHBlZyRjdXJyUG9zID09PSBpbnB1dC5sZW5ndGgpIHtcbiAgICByZXR1cm4gcGVnJHJlc3VsdDtcbiAgfSBlbHNlIHtcbiAgICBpZiAocGVnJHJlc3VsdCAhPT0gcGVnJEZBSUxFRCAmJiBwZWckY3VyclBvcyA8IGlucHV0Lmxlbmd0aCkge1xuICAgICAgcGVnJGZhaWwocGVnJGVuZEV4cGVjdGF0aW9uKCkpO1xuICAgIH1cblxuICAgIHRocm93IHBlZyRidWlsZFN0cnVjdHVyZWRFcnJvcihcbiAgICAgIHBlZyRtYXhGYWlsRXhwZWN0ZWQsXG4gICAgICBwZWckbWF4RmFpbFBvcyA8IGlucHV0Lmxlbmd0aCA/IGlucHV0LmNoYXJBdChwZWckbWF4RmFpbFBvcykgOiBudWxsLFxuICAgICAgcGVnJG1heEZhaWxQb3MgPCBpbnB1dC5sZW5ndGhcbiAgICAgICAgPyBwZWckY29tcHV0ZUxvY2F0aW9uKHBlZyRtYXhGYWlsUG9zLCBwZWckbWF4RmFpbFBvcyArIDEpXG4gICAgICAgIDogcGVnJGNvbXB1dGVMb2NhdGlvbihwZWckbWF4RmFpbFBvcywgcGVnJG1heEZhaWxQb3MpXG4gICAgKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgU3ludGF4RXJyb3I6IHBlZyRTeW50YXhFcnJvcixcbiAgcGFyc2U6ICAgICAgIHBlZyRwYXJzZVxufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuLy8gT3JpZ2luYWwgd29yayBieSBIZW5yaWsgTXVlaGUgKGMpIDIwMTBcbi8vXG4vLyBDb21tb25KUyBwb3J0IGJ5IE1pa29sYSBMeXNlbmtvIDIwMTNcbi8vXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLnBhcnNlID0gdm9pZCAwO1xuY2xhc3MgUGFyc2VFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBwYXJzZXIpIHtcbiAgICAgICAgbWVzc2FnZSArPSBgIEAgJHtwYXJzZXIucG9zfWA7XG4gICAgICAgIGlmIChwYXJzZXIucGFyc2luZylcbiAgICAgICAgICAgIG1lc3NhZ2UgKz0gYCBpbiAke0pTT04uc3RyaW5naWZ5KHBhcnNlci5wYXJzaW5nKX1gO1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5uYW1lID0gJ1BhcnNlRXJyb3InO1xuICAgIH1cbn1cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBwcmVmZXItdGVtcGxhdGVcbmNvbnN0IGxldHRlciA9IG5ldyBSZWdFeHAoJ1snICsgW1xuICAgIC8vIExldHRlciwgVXBwZXJjYXNlXG4gICAgL1xcdTAwNDEtXFx1MDA1QVxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBERVxcdTAxMDBcXHUwMTAyXFx1MDEwNFxcdTAxMDZcXHUwMTA4XFx1MDEwQVxcdTAxMENcXHUwMTBFXFx1MDExMFxcdTAxMTJcXHUwMTE0XFx1MDExNlxcdTAxMThcXHUwMTFBXFx1MDExQ1xcdTAxMUVcXHUwMTIwXFx1MDEyMlxcdTAxMjRcXHUwMTI2XFx1MDEyOFxcdTAxMkFcXHUwMTJDXFx1MDEyRVxcdTAxMzBcXHUwMTMyXFx1MDEzNFxcdTAxMzZcXHUwMTM5XFx1MDEzQlxcdTAxM0RcXHUwMTNGXFx1MDE0MVxcdTAxNDNcXHUwMTQ1XFx1MDE0N1xcdTAxNEFcXHUwMTRDXFx1MDE0RVxcdTAxNTBcXHUwMTUyXFx1MDE1NFxcdTAxNTZcXHUwMTU4XFx1MDE1QVxcdTAxNUNcXHUwMTVFXFx1MDE2MFxcdTAxNjJcXHUwMTY0XFx1MDE2NlxcdTAxNjhcXHUwMTZBXFx1MDE2Q1xcdTAxNkVcXHUwMTcwXFx1MDE3MlxcdTAxNzRcXHUwMTc2XFx1MDE3OC1cXHUwMTc5XFx1MDE3QlxcdTAxN0RcXHUwMTgxLVxcdTAxODJcXHUwMTg0XFx1MDE4Ni1cXHUwMTg3XFx1MDE4OS1cXHUwMThCXFx1MDE4RS1cXHUwMTkxXFx1MDE5My1cXHUwMTk0XFx1MDE5Ni1cXHUwMTk4XFx1MDE5Qy1cXHUwMTlEXFx1MDE5Ri1cXHUwMUEwXFx1MDFBMlxcdTAxQTRcXHUwMUE2LVxcdTAxQTdcXHUwMUE5XFx1MDFBQ1xcdTAxQUUtXFx1MDFBRlxcdTAxQjEtXFx1MDFCM1xcdTAxQjVcXHUwMUI3LVxcdTAxQjhcXHUwMUJDXFx1MDFDNFxcdTAxQzdcXHUwMUNBXFx1MDFDRFxcdTAxQ0ZcXHUwMUQxXFx1MDFEM1xcdTAxRDVcXHUwMUQ3XFx1MDFEOVxcdTAxREJcXHUwMURFXFx1MDFFMFxcdTAxRTJcXHUwMUU0XFx1MDFFNlxcdTAxRThcXHUwMUVBXFx1MDFFQ1xcdTAxRUVcXHUwMUYxXFx1MDFGNFxcdTAxRjYtXFx1MDFGOFxcdTAxRkFcXHUwMUZDXFx1MDFGRVxcdTAyMDBcXHUwMjAyXFx1MDIwNFxcdTAyMDZcXHUwMjA4XFx1MDIwQVxcdTAyMENcXHUwMjBFXFx1MDIxMFxcdTAyMTJcXHUwMjE0XFx1MDIxNlxcdTAyMThcXHUwMjFBXFx1MDIxQ1xcdTAyMUVcXHUwMjIwXFx1MDIyMlxcdTAyMjRcXHUwMjI2XFx1MDIyOFxcdTAyMkFcXHUwMjJDXFx1MDIyRVxcdTAyMzBcXHUwMjMyXFx1MDIzQS1cXHUwMjNCXFx1MDIzRC1cXHUwMjNFXFx1MDI0MVxcdTAyNDMtXFx1MDI0NlxcdTAyNDhcXHUwMjRBXFx1MDI0Q1xcdTAyNEVcXHUwMzcwXFx1MDM3MlxcdTAzNzZcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzOEZcXHUwMzkxLVxcdTAzQTFcXHUwM0EzLVxcdTAzQUJcXHUwM0NGXFx1MDNEMi1cXHUwM0Q0XFx1MDNEOFxcdTAzREFcXHUwM0RDXFx1MDNERVxcdTAzRTBcXHUwM0UyXFx1MDNFNFxcdTAzRTZcXHUwM0U4XFx1MDNFQVxcdTAzRUNcXHUwM0VFXFx1MDNGNFxcdTAzRjdcXHUwM0Y5LVxcdTAzRkFcXHUwM0ZELVxcdTA0MkZcXHUwNDYwXFx1MDQ2MlxcdTA0NjRcXHUwNDY2XFx1MDQ2OFxcdTA0NkFcXHUwNDZDXFx1MDQ2RVxcdTA0NzBcXHUwNDcyXFx1MDQ3NFxcdTA0NzZcXHUwNDc4XFx1MDQ3QVxcdTA0N0NcXHUwNDdFXFx1MDQ4MFxcdTA0OEFcXHUwNDhDXFx1MDQ4RVxcdTA0OTBcXHUwNDkyXFx1MDQ5NFxcdTA0OTZcXHUwNDk4XFx1MDQ5QVxcdTA0OUNcXHUwNDlFXFx1MDRBMFxcdTA0QTJcXHUwNEE0XFx1MDRBNlxcdTA0QThcXHUwNEFBXFx1MDRBQ1xcdTA0QUVcXHUwNEIwXFx1MDRCMlxcdTA0QjRcXHUwNEI2XFx1MDRCOFxcdTA0QkFcXHUwNEJDXFx1MDRCRVxcdTA0QzAtXFx1MDRDMVxcdTA0QzNcXHUwNEM1XFx1MDRDN1xcdTA0QzlcXHUwNENCXFx1MDRDRFxcdTA0RDBcXHUwNEQyXFx1MDRENFxcdTA0RDZcXHUwNEQ4XFx1MDREQVxcdTA0RENcXHUwNERFXFx1MDRFMFxcdTA0RTJcXHUwNEU0XFx1MDRFNlxcdTA0RThcXHUwNEVBXFx1MDRFQ1xcdTA0RUVcXHUwNEYwXFx1MDRGMlxcdTA0RjRcXHUwNEY2XFx1MDRGOFxcdTA0RkFcXHUwNEZDXFx1MDRGRVxcdTA1MDBcXHUwNTAyXFx1MDUwNFxcdTA1MDZcXHUwNTA4XFx1MDUwQVxcdTA1MENcXHUwNTBFXFx1MDUxMFxcdTA1MTJcXHUwNTE0XFx1MDUxNlxcdTA1MThcXHUwNTFBXFx1MDUxQ1xcdTA1MUVcXHUwNTIwXFx1MDUyMlxcdTA1MjRcXHUwNTI2XFx1MDUyOFxcdTA1MkFcXHUwNTJDXFx1MDUyRVxcdTA1MzEtXFx1MDU1NlxcdTEwQTAtXFx1MTBDNVxcdTEwQzdcXHUxMENEXFx1MTNBMC1cXHUxM0Y1XFx1MUUwMFxcdTFFMDJcXHUxRTA0XFx1MUUwNlxcdTFFMDhcXHUxRTBBXFx1MUUwQ1xcdTFFMEVcXHUxRTEwXFx1MUUxMlxcdTFFMTRcXHUxRTE2XFx1MUUxOFxcdTFFMUFcXHUxRTFDXFx1MUUxRVxcdTFFMjBcXHUxRTIyXFx1MUUyNFxcdTFFMjZcXHUxRTI4XFx1MUUyQVxcdTFFMkNcXHUxRTJFXFx1MUUzMFxcdTFFMzJcXHUxRTM0XFx1MUUzNlxcdTFFMzhcXHUxRTNBXFx1MUUzQ1xcdTFFM0VcXHUxRTQwXFx1MUU0MlxcdTFFNDRcXHUxRTQ2XFx1MUU0OFxcdTFFNEFcXHUxRTRDXFx1MUU0RVxcdTFFNTBcXHUxRTUyXFx1MUU1NFxcdTFFNTZcXHUxRTU4XFx1MUU1QVxcdTFFNUNcXHUxRTVFXFx1MUU2MFxcdTFFNjJcXHUxRTY0XFx1MUU2NlxcdTFFNjhcXHUxRTZBXFx1MUU2Q1xcdTFFNkVcXHUxRTcwXFx1MUU3MlxcdTFFNzRcXHUxRTc2XFx1MUU3OFxcdTFFN0FcXHUxRTdDXFx1MUU3RVxcdTFFODBcXHUxRTgyXFx1MUU4NFxcdTFFODZcXHUxRTg4XFx1MUU4QVxcdTFFOENcXHUxRThFXFx1MUU5MFxcdTFFOTJcXHUxRTk0XFx1MUU5RVxcdTFFQTBcXHUxRUEyXFx1MUVBNFxcdTFFQTZcXHUxRUE4XFx1MUVBQVxcdTFFQUNcXHUxRUFFXFx1MUVCMFxcdTFFQjJcXHUxRUI0XFx1MUVCNlxcdTFFQjhcXHUxRUJBXFx1MUVCQ1xcdTFFQkVcXHUxRUMwXFx1MUVDMlxcdTFFQzRcXHUxRUM2XFx1MUVDOFxcdTFFQ0FcXHUxRUNDXFx1MUVDRVxcdTFFRDBcXHUxRUQyXFx1MUVENFxcdTFFRDZcXHUxRUQ4XFx1MUVEQVxcdTFFRENcXHUxRURFXFx1MUVFMFxcdTFFRTJcXHUxRUU0XFx1MUVFNlxcdTFFRThcXHUxRUVBXFx1MUVFQ1xcdTFFRUVcXHUxRUYwXFx1MUVGMlxcdTFFRjRcXHUxRUY2XFx1MUVGOFxcdTFFRkFcXHUxRUZDXFx1MUVGRVxcdTFGMDgtXFx1MUYwRlxcdTFGMTgtXFx1MUYxRFxcdTFGMjgtXFx1MUYyRlxcdTFGMzgtXFx1MUYzRlxcdTFGNDgtXFx1MUY0RFxcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUZcXHUxRjY4LVxcdTFGNkZcXHUxRkI4LVxcdTFGQkJcXHUxRkM4LVxcdTFGQ0JcXHUxRkQ4LVxcdTFGREJcXHUxRkU4LVxcdTFGRUNcXHUxRkY4LVxcdTFGRkJcXHUyMTAyXFx1MjEwN1xcdTIxMEItXFx1MjEwRFxcdTIxMTAtXFx1MjExMlxcdTIxMTVcXHUyMTE5LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTMwLVxcdTIxMzNcXHUyMTNFLVxcdTIxM0ZcXHUyMTQ1XFx1MjE4M1xcdTJDMDAtXFx1MkMyRVxcdTJDNjBcXHUyQzYyLVxcdTJDNjRcXHUyQzY3XFx1MkM2OVxcdTJDNkJcXHUyQzZELVxcdTJDNzBcXHUyQzcyXFx1MkM3NVxcdTJDN0UtXFx1MkM4MFxcdTJDODJcXHUyQzg0XFx1MkM4NlxcdTJDODhcXHUyQzhBXFx1MkM4Q1xcdTJDOEVcXHUyQzkwXFx1MkM5MlxcdTJDOTRcXHUyQzk2XFx1MkM5OFxcdTJDOUFcXHUyQzlDXFx1MkM5RVxcdTJDQTBcXHUyQ0EyXFx1MkNBNFxcdTJDQTZcXHUyQ0E4XFx1MkNBQVxcdTJDQUNcXHUyQ0FFXFx1MkNCMFxcdTJDQjJcXHUyQ0I0XFx1MkNCNlxcdTJDQjhcXHUyQ0JBXFx1MkNCQ1xcdTJDQkVcXHUyQ0MwXFx1MkNDMlxcdTJDQzRcXHUyQ0M2XFx1MkNDOFxcdTJDQ0FcXHUyQ0NDXFx1MkNDRVxcdTJDRDBcXHUyQ0QyXFx1MkNENFxcdTJDRDZcXHUyQ0Q4XFx1MkNEQVxcdTJDRENcXHUyQ0RFXFx1MkNFMFxcdTJDRTJcXHUyQ0VCXFx1MkNFRFxcdTJDRjJcXHVBNjQwXFx1QTY0MlxcdUE2NDRcXHVBNjQ2XFx1QTY0OFxcdUE2NEFcXHVBNjRDXFx1QTY0RVxcdUE2NTBcXHVBNjUyXFx1QTY1NFxcdUE2NTZcXHVBNjU4XFx1QTY1QVxcdUE2NUNcXHVBNjVFXFx1QTY2MFxcdUE2NjJcXHVBNjY0XFx1QTY2NlxcdUE2NjhcXHVBNjZBXFx1QTY2Q1xcdUE2ODBcXHVBNjgyXFx1QTY4NFxcdUE2ODZcXHVBNjg4XFx1QTY4QVxcdUE2OENcXHVBNjhFXFx1QTY5MFxcdUE2OTJcXHVBNjk0XFx1QTY5NlxcdUE2OThcXHVBNjlBXFx1QTcyMlxcdUE3MjRcXHVBNzI2XFx1QTcyOFxcdUE3MkFcXHVBNzJDXFx1QTcyRVxcdUE3MzJcXHVBNzM0XFx1QTczNlxcdUE3MzhcXHVBNzNBXFx1QTczQ1xcdUE3M0VcXHVBNzQwXFx1QTc0MlxcdUE3NDRcXHVBNzQ2XFx1QTc0OFxcdUE3NEFcXHVBNzRDXFx1QTc0RVxcdUE3NTBcXHVBNzUyXFx1QTc1NFxcdUE3NTZcXHVBNzU4XFx1QTc1QVxcdUE3NUNcXHVBNzVFXFx1QTc2MFxcdUE3NjJcXHVBNzY0XFx1QTc2NlxcdUE3NjhcXHVBNzZBXFx1QTc2Q1xcdUE3NkVcXHVBNzc5XFx1QTc3QlxcdUE3N0QtXFx1QTc3RVxcdUE3ODBcXHVBNzgyXFx1QTc4NFxcdUE3ODZcXHVBNzhCXFx1QTc4RFxcdUE3OTBcXHVBNzkyXFx1QTc5NlxcdUE3OThcXHVBNzlBXFx1QTc5Q1xcdUE3OUVcXHVBN0EwXFx1QTdBMlxcdUE3QTRcXHVBN0E2XFx1QTdBOFxcdUE3QUEtXFx1QTdBRFxcdUE3QjAtXFx1QTdCNFxcdUE3QjZcXHVGRjIxLVxcdUZGM0EvLnNvdXJjZSxcbiAgICAvLyBMZXR0ZXIsIFRpdGxlY2FzZVxuICAgIC9cXHUwMUM1XFx1MDFDOFxcdTAxQ0JcXHUwMUYyXFx1MUY4OC1cXHUxRjhGXFx1MUY5OC1cXHUxRjlGXFx1MUZBOC1cXHUxRkFGXFx1MUZCQ1xcdTFGQ0NcXHUxRkZDLy5zb3VyY2UsXG4gICAgLy8gTGV0dGVyLCBMb3dlcmNhc2VcbiAgICAvXFx1MDA2MS1cXHUwMDdBXFx1MDBCNVxcdTAwREYtXFx1MDBGNlxcdTAwRjgtXFx1MDBGRlxcdTAxMDFcXHUwMTAzXFx1MDEwNVxcdTAxMDdcXHUwMTA5XFx1MDEwQlxcdTAxMERcXHUwMTBGXFx1MDExMVxcdTAxMTNcXHUwMTE1XFx1MDExN1xcdTAxMTlcXHUwMTFCXFx1MDExRFxcdTAxMUZcXHUwMTIxXFx1MDEyM1xcdTAxMjVcXHUwMTI3XFx1MDEyOVxcdTAxMkJcXHUwMTJEXFx1MDEyRlxcdTAxMzFcXHUwMTMzXFx1MDEzNVxcdTAxMzctXFx1MDEzOFxcdTAxM0FcXHUwMTNDXFx1MDEzRVxcdTAxNDBcXHUwMTQyXFx1MDE0NFxcdTAxNDZcXHUwMTQ4LVxcdTAxNDlcXHUwMTRCXFx1MDE0RFxcdTAxNEZcXHUwMTUxXFx1MDE1M1xcdTAxNTVcXHUwMTU3XFx1MDE1OVxcdTAxNUJcXHUwMTVEXFx1MDE1RlxcdTAxNjFcXHUwMTYzXFx1MDE2NVxcdTAxNjdcXHUwMTY5XFx1MDE2QlxcdTAxNkRcXHUwMTZGXFx1MDE3MVxcdTAxNzNcXHUwMTc1XFx1MDE3N1xcdTAxN0FcXHUwMTdDXFx1MDE3RS1cXHUwMTgwXFx1MDE4M1xcdTAxODVcXHUwMTg4XFx1MDE4Qy1cXHUwMThEXFx1MDE5MlxcdTAxOTVcXHUwMTk5LVxcdTAxOUJcXHUwMTlFXFx1MDFBMVxcdTAxQTNcXHUwMUE1XFx1MDFBOFxcdTAxQUEtXFx1MDFBQlxcdTAxQURcXHUwMUIwXFx1MDFCNFxcdTAxQjZcXHUwMUI5LVxcdTAxQkFcXHUwMUJELVxcdTAxQkZcXHUwMUM2XFx1MDFDOVxcdTAxQ0NcXHUwMUNFXFx1MDFEMFxcdTAxRDJcXHUwMUQ0XFx1MDFENlxcdTAxRDhcXHUwMURBXFx1MDFEQy1cXHUwMUREXFx1MDFERlxcdTAxRTFcXHUwMUUzXFx1MDFFNVxcdTAxRTdcXHUwMUU5XFx1MDFFQlxcdTAxRURcXHUwMUVGLVxcdTAxRjBcXHUwMUYzXFx1MDFGNVxcdTAxRjlcXHUwMUZCXFx1MDFGRFxcdTAxRkZcXHUwMjAxXFx1MDIwM1xcdTAyMDVcXHUwMjA3XFx1MDIwOVxcdTAyMEJcXHUwMjBEXFx1MDIwRlxcdTAyMTFcXHUwMjEzXFx1MDIxNVxcdTAyMTdcXHUwMjE5XFx1MDIxQlxcdTAyMURcXHUwMjFGXFx1MDIyMVxcdTAyMjNcXHUwMjI1XFx1MDIyN1xcdTAyMjlcXHUwMjJCXFx1MDIyRFxcdTAyMkZcXHUwMjMxXFx1MDIzMy1cXHUwMjM5XFx1MDIzQ1xcdTAyM0YtXFx1MDI0MFxcdTAyNDJcXHUwMjQ3XFx1MDI0OVxcdTAyNEJcXHUwMjREXFx1MDI0Ri1cXHUwMjkzXFx1MDI5NS1cXHUwMkFGXFx1MDM3MVxcdTAzNzNcXHUwMzc3XFx1MDM3Qi1cXHUwMzdEXFx1MDM5MFxcdTAzQUMtXFx1MDNDRVxcdTAzRDAtXFx1MDNEMVxcdTAzRDUtXFx1MDNEN1xcdTAzRDlcXHUwM0RCXFx1MDNERFxcdTAzREZcXHUwM0UxXFx1MDNFM1xcdTAzRTVcXHUwM0U3XFx1MDNFOVxcdTAzRUJcXHUwM0VEXFx1MDNFRi1cXHUwM0YzXFx1MDNGNVxcdTAzRjhcXHUwM0ZCLVxcdTAzRkNcXHUwNDMwLVxcdTA0NUZcXHUwNDYxXFx1MDQ2M1xcdTA0NjVcXHUwNDY3XFx1MDQ2OVxcdTA0NkJcXHUwNDZEXFx1MDQ2RlxcdTA0NzFcXHUwNDczXFx1MDQ3NVxcdTA0NzdcXHUwNDc5XFx1MDQ3QlxcdTA0N0RcXHUwNDdGXFx1MDQ4MVxcdTA0OEJcXHUwNDhEXFx1MDQ4RlxcdTA0OTFcXHUwNDkzXFx1MDQ5NVxcdTA0OTdcXHUwNDk5XFx1MDQ5QlxcdTA0OURcXHUwNDlGXFx1MDRBMVxcdTA0QTNcXHUwNEE1XFx1MDRBN1xcdTA0QTlcXHUwNEFCXFx1MDRBRFxcdTA0QUZcXHUwNEIxXFx1MDRCM1xcdTA0QjVcXHUwNEI3XFx1MDRCOVxcdTA0QkJcXHUwNEJEXFx1MDRCRlxcdTA0QzJcXHUwNEM0XFx1MDRDNlxcdTA0QzhcXHUwNENBXFx1MDRDQ1xcdTA0Q0UtXFx1MDRDRlxcdTA0RDFcXHUwNEQzXFx1MDRENVxcdTA0RDdcXHUwNEQ5XFx1MDREQlxcdTA0RERcXHUwNERGXFx1MDRFMVxcdTA0RTNcXHUwNEU1XFx1MDRFN1xcdTA0RTlcXHUwNEVCXFx1MDRFRFxcdTA0RUZcXHUwNEYxXFx1MDRGM1xcdTA0RjVcXHUwNEY3XFx1MDRGOVxcdTA0RkJcXHUwNEZEXFx1MDRGRlxcdTA1MDFcXHUwNTAzXFx1MDUwNVxcdTA1MDdcXHUwNTA5XFx1MDUwQlxcdTA1MERcXHUwNTBGXFx1MDUxMVxcdTA1MTNcXHUwNTE1XFx1MDUxN1xcdTA1MTlcXHUwNTFCXFx1MDUxRFxcdTA1MUZcXHUwNTIxXFx1MDUyM1xcdTA1MjVcXHUwNTI3XFx1MDUyOVxcdTA1MkJcXHUwNTJEXFx1MDUyRlxcdTA1NjEtXFx1MDU4N1xcdTEzRjgtXFx1MTNGRFxcdTFEMDAtXFx1MUQyQlxcdTFENkItXFx1MUQ3N1xcdTFENzktXFx1MUQ5QVxcdTFFMDFcXHUxRTAzXFx1MUUwNVxcdTFFMDdcXHUxRTA5XFx1MUUwQlxcdTFFMERcXHUxRTBGXFx1MUUxMVxcdTFFMTNcXHUxRTE1XFx1MUUxN1xcdTFFMTlcXHUxRTFCXFx1MUUxRFxcdTFFMUZcXHUxRTIxXFx1MUUyM1xcdTFFMjVcXHUxRTI3XFx1MUUyOVxcdTFFMkJcXHUxRTJEXFx1MUUyRlxcdTFFMzFcXHUxRTMzXFx1MUUzNVxcdTFFMzdcXHUxRTM5XFx1MUUzQlxcdTFFM0RcXHUxRTNGXFx1MUU0MVxcdTFFNDNcXHUxRTQ1XFx1MUU0N1xcdTFFNDlcXHUxRTRCXFx1MUU0RFxcdTFFNEZcXHUxRTUxXFx1MUU1M1xcdTFFNTVcXHUxRTU3XFx1MUU1OVxcdTFFNUJcXHUxRTVEXFx1MUU1RlxcdTFFNjFcXHUxRTYzXFx1MUU2NVxcdTFFNjdcXHUxRTY5XFx1MUU2QlxcdTFFNkRcXHUxRTZGXFx1MUU3MVxcdTFFNzNcXHUxRTc1XFx1MUU3N1xcdTFFNzlcXHUxRTdCXFx1MUU3RFxcdTFFN0ZcXHUxRTgxXFx1MUU4M1xcdTFFODVcXHUxRTg3XFx1MUU4OVxcdTFFOEJcXHUxRThEXFx1MUU4RlxcdTFFOTFcXHUxRTkzXFx1MUU5NS1cXHUxRTlEXFx1MUU5RlxcdTFFQTFcXHUxRUEzXFx1MUVBNVxcdTFFQTdcXHUxRUE5XFx1MUVBQlxcdTFFQURcXHUxRUFGXFx1MUVCMVxcdTFFQjNcXHUxRUI1XFx1MUVCN1xcdTFFQjlcXHUxRUJCXFx1MUVCRFxcdTFFQkZcXHUxRUMxXFx1MUVDM1xcdTFFQzVcXHUxRUM3XFx1MUVDOVxcdTFFQ0JcXHUxRUNEXFx1MUVDRlxcdTFFRDFcXHUxRUQzXFx1MUVENVxcdTFFRDdcXHUxRUQ5XFx1MUVEQlxcdTFFRERcXHUxRURGXFx1MUVFMVxcdTFFRTNcXHUxRUU1XFx1MUVFN1xcdTFFRTlcXHUxRUVCXFx1MUVFRFxcdTFFRUZcXHUxRUYxXFx1MUVGM1xcdTFFRjVcXHUxRUY3XFx1MUVGOVxcdTFFRkJcXHUxRUZEXFx1MUVGRi1cXHUxRjA3XFx1MUYxMC1cXHUxRjE1XFx1MUYyMC1cXHUxRjI3XFx1MUYzMC1cXHUxRjM3XFx1MUY0MC1cXHUxRjQ1XFx1MUY1MC1cXHUxRjU3XFx1MUY2MC1cXHUxRjY3XFx1MUY3MC1cXHUxRjdEXFx1MUY4MC1cXHUxRjg3XFx1MUY5MC1cXHUxRjk3XFx1MUZBMC1cXHUxRkE3XFx1MUZCMC1cXHUxRkI0XFx1MUZCNi1cXHUxRkI3XFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDN1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEN1xcdTFGRTAtXFx1MUZFN1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGN1xcdTIxMEFcXHUyMTBFLVxcdTIxMEZcXHUyMTEzXFx1MjEyRlxcdTIxMzRcXHUyMTM5XFx1MjEzQy1cXHUyMTNEXFx1MjE0Ni1cXHUyMTQ5XFx1MjE0RVxcdTIxODRcXHUyQzMwLVxcdTJDNUVcXHUyQzYxXFx1MkM2NS1cXHUyQzY2XFx1MkM2OFxcdTJDNkFcXHUyQzZDXFx1MkM3MVxcdTJDNzMtXFx1MkM3NFxcdTJDNzYtXFx1MkM3QlxcdTJDODFcXHUyQzgzXFx1MkM4NVxcdTJDODdcXHUyQzg5XFx1MkM4QlxcdTJDOERcXHUyQzhGXFx1MkM5MVxcdTJDOTNcXHUyQzk1XFx1MkM5N1xcdTJDOTlcXHUyQzlCXFx1MkM5RFxcdTJDOUZcXHUyQ0ExXFx1MkNBM1xcdTJDQTVcXHUyQ0E3XFx1MkNBOVxcdTJDQUJcXHUyQ0FEXFx1MkNBRlxcdTJDQjFcXHUyQ0IzXFx1MkNCNVxcdTJDQjdcXHUyQ0I5XFx1MkNCQlxcdTJDQkRcXHUyQ0JGXFx1MkNDMVxcdTJDQzNcXHUyQ0M1XFx1MkNDN1xcdTJDQzlcXHUyQ0NCXFx1MkNDRFxcdTJDQ0ZcXHUyQ0QxXFx1MkNEM1xcdTJDRDVcXHUyQ0Q3XFx1MkNEOVxcdTJDREJcXHUyQ0REXFx1MkNERlxcdTJDRTFcXHUyQ0UzLVxcdTJDRTRcXHUyQ0VDXFx1MkNFRVxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdUE2NDFcXHVBNjQzXFx1QTY0NVxcdUE2NDdcXHVBNjQ5XFx1QTY0QlxcdUE2NERcXHVBNjRGXFx1QTY1MVxcdUE2NTNcXHVBNjU1XFx1QTY1N1xcdUE2NTlcXHVBNjVCXFx1QTY1RFxcdUE2NUZcXHVBNjYxXFx1QTY2M1xcdUE2NjVcXHVBNjY3XFx1QTY2OVxcdUE2NkJcXHVBNjZEXFx1QTY4MVxcdUE2ODNcXHVBNjg1XFx1QTY4N1xcdUE2ODlcXHVBNjhCXFx1QTY4RFxcdUE2OEZcXHVBNjkxXFx1QTY5M1xcdUE2OTVcXHVBNjk3XFx1QTY5OVxcdUE2OUJcXHVBNzIzXFx1QTcyNVxcdUE3MjdcXHVBNzI5XFx1QTcyQlxcdUE3MkRcXHVBNzJGLVxcdUE3MzFcXHVBNzMzXFx1QTczNVxcdUE3MzdcXHVBNzM5XFx1QTczQlxcdUE3M0RcXHVBNzNGXFx1QTc0MVxcdUE3NDNcXHVBNzQ1XFx1QTc0N1xcdUE3NDlcXHVBNzRCXFx1QTc0RFxcdUE3NEZcXHVBNzUxXFx1QTc1M1xcdUE3NTVcXHVBNzU3XFx1QTc1OVxcdUE3NUJcXHVBNzVEXFx1QTc1RlxcdUE3NjFcXHVBNzYzXFx1QTc2NVxcdUE3NjdcXHVBNzY5XFx1QTc2QlxcdUE3NkRcXHVBNzZGXFx1QTc3MS1cXHVBNzc4XFx1QTc3QVxcdUE3N0NcXHVBNzdGXFx1QTc4MVxcdUE3ODNcXHVBNzg1XFx1QTc4N1xcdUE3OENcXHVBNzhFXFx1QTc5MVxcdUE3OTMtXFx1QTc5NVxcdUE3OTdcXHVBNzk5XFx1QTc5QlxcdUE3OURcXHVBNzlGXFx1QTdBMVxcdUE3QTNcXHVBN0E1XFx1QTdBN1xcdUE3QTlcXHVBN0I1XFx1QTdCN1xcdUE3RkFcXHVBQjMwLVxcdUFCNUFcXHVBQjYwLVxcdUFCNjVcXHVBQjcwLVxcdUFCQkZcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGRjQxLVxcdUZGNUEvLnNvdXJjZSxcbiAgICAvLyBMZXR0ZXIsIE1vZGlmaWVyXG4gICAgL1xcdTAyQjAtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDM3NFxcdTAzN0FcXHUwNTU5XFx1MDY0MFxcdTA2RTUtXFx1MDZFNlxcdTA3RjQtXFx1MDdGNVxcdTA3RkFcXHUwODFBXFx1MDgyNFxcdTA4MjhcXHUwOTcxXFx1MEU0NlxcdTBFQzZcXHUxMEZDXFx1MTdEN1xcdTE4NDNcXHUxQUE3XFx1MUM3OC1cXHUxQzdEXFx1MUQyQy1cXHUxRDZBXFx1MUQ3OFxcdTFEOUItXFx1MURCRlxcdTIwNzFcXHUyMDdGXFx1MjA5MC1cXHUyMDlDXFx1MkM3Qy1cXHUyQzdEXFx1MkQ2RlxcdTJFMkZcXHUzMDA1XFx1MzAzMS1cXHUzMDM1XFx1MzAzQlxcdTMwOUQtXFx1MzA5RVxcdTMwRkMtXFx1MzBGRVxcdUEwMTVcXHVBNEY4LVxcdUE0RkRcXHVBNjBDXFx1QTY3RlxcdUE2OUMtXFx1QTY5RFxcdUE3MTctXFx1QTcxRlxcdUE3NzBcXHVBNzg4XFx1QTdGOC1cXHVBN0Y5XFx1QTlDRlxcdUE5RTZcXHVBQTcwXFx1QUFERFxcdUFBRjMtXFx1QUFGNFxcdUFCNUMtXFx1QUI1RlxcdUZGNzBcXHVGRjlFLVxcdUZGOUYvLnNvdXJjZSxcbiAgICAvLyBMZXR0ZXIsIE90aGVyXG4gICAgL1xcdTAwQUFcXHUwMEJBXFx1MDFCQlxcdTAxQzAtXFx1MDFDM1xcdTAyOTRcXHUwNUQwLVxcdTA1RUFcXHUwNUYwLVxcdTA1RjJcXHUwNjIwLVxcdTA2M0ZcXHUwNjQxLVxcdTA2NEFcXHUwNjZFLVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFRS1cXHUwNkVGXFx1MDZGQS1cXHUwNkZDXFx1MDZGRlxcdTA3MTBcXHUwNzEyLVxcdTA3MkZcXHUwNzRELVxcdTA3QTVcXHUwN0IxXFx1MDdDQS1cXHUwN0VBXFx1MDgwMC1cXHUwODE1XFx1MDg0MC1cXHUwODU4XFx1MDhBMC1cXHUwOEI0XFx1MDkwNC1cXHUwOTM5XFx1MDkzRFxcdTA5NTBcXHUwOTU4LVxcdTA5NjFcXHUwOTcyLVxcdTA5ODBcXHUwOTg1LVxcdTA5OENcXHUwOThGLVxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCRFxcdTA5Q0VcXHUwOURDLVxcdTA5RERcXHUwOURGLVxcdTA5RTFcXHUwOUYwLVxcdTA5RjFcXHUwQTA1LVxcdTBBMEFcXHUwQTBGLVxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyLVxcdTBBMzNcXHUwQTM1LVxcdTBBMzZcXHUwQTM4LVxcdTBBMzlcXHUwQTU5LVxcdTBBNUNcXHUwQTVFXFx1MEE3Mi1cXHUwQTc0XFx1MEE4NS1cXHUwQThEXFx1MEE4Ri1cXHUwQTkxXFx1MEE5My1cXHUwQUE4XFx1MEFBQS1cXHUwQUIwXFx1MEFCMi1cXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCRFxcdTBBRDBcXHUwQUUwLVxcdTBBRTFcXHUwQUY5XFx1MEIwNS1cXHUwQjBDXFx1MEIwRi1cXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMi1cXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzRFxcdTBCNUMtXFx1MEI1RFxcdTBCNUYtXFx1MEI2MVxcdTBCNzFcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OS1cXHUwQjlBXFx1MEI5Q1xcdTBCOUUtXFx1MEI5RlxcdTBCQTMtXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCRDBcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNEXFx1MEM1OC1cXHUwQzVBXFx1MEM2MC1cXHUwQzYxXFx1MEM4NS1cXHUwQzhDXFx1MEM4RS1cXHUwQzkwXFx1MEM5Mi1cXHUwQ0E4XFx1MENBQS1cXHUwQ0IzXFx1MENCNS1cXHUwQ0I5XFx1MENCRFxcdTBDREVcXHUwQ0UwLVxcdTBDRTFcXHUwQ0YxLVxcdTBDRjJcXHUwRDA1LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENUYtXFx1MEQ2MVxcdTBEN0EtXFx1MEQ3RlxcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRTAxLVxcdTBFMzBcXHUwRTMyLVxcdTBFMzNcXHUwRTQwLVxcdTBFNDVcXHUwRTgxLVxcdTBFODJcXHUwRTg0XFx1MEU4Ny1cXHUwRTg4XFx1MEU4QVxcdTBFOERcXHUwRTk0LVxcdTBFOTdcXHUwRTk5LVxcdTBFOUZcXHUwRUExLVxcdTBFQTNcXHUwRUE1XFx1MEVBN1xcdTBFQUEtXFx1MEVBQlxcdTBFQUQtXFx1MEVCMFxcdTBFQjItXFx1MEVCM1xcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEY0MC1cXHUwRjQ3XFx1MEY0OS1cXHUwRjZDXFx1MEY4OC1cXHUwRjhDXFx1MTAwMC1cXHUxMDJBXFx1MTAzRlxcdTEwNTAtXFx1MTA1NVxcdTEwNUEtXFx1MTA1RFxcdTEwNjFcXHUxMDY1LVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFcXHUxMDhFXFx1MTBEMC1cXHUxMEZBXFx1MTBGRC1cXHUxMjQ4XFx1MTI0QS1cXHUxMjREXFx1MTI1MC1cXHUxMjU2XFx1MTI1OFxcdTEyNUEtXFx1MTI1RFxcdTEyNjAtXFx1MTI4OFxcdTEyOEEtXFx1MTI4RFxcdTEyOTAtXFx1MTJCMFxcdTEyQjItXFx1MTJCNVxcdTEyQjgtXFx1MTJCRVxcdTEyQzBcXHUxMkMyLVxcdTEyQzVcXHUxMkM4LVxcdTEyRDZcXHUxMkQ4LVxcdTEzMTBcXHUxMzEyLVxcdTEzMTVcXHUxMzE4LVxcdTEzNUFcXHUxMzgwLVxcdTEzOEZcXHUxNDAxLVxcdTE2NkNcXHUxNjZGLVxcdTE2N0ZcXHUxNjgxLVxcdTE2OUFcXHUxNkEwLVxcdTE2RUFcXHUxNkYxLVxcdTE2RjhcXHUxNzAwLVxcdTE3MENcXHUxNzBFLVxcdTE3MTFcXHUxNzIwLVxcdTE3MzFcXHUxNzQwLVxcdTE3NTFcXHUxNzYwLVxcdTE3NkNcXHUxNzZFLVxcdTE3NzBcXHUxNzgwLVxcdTE3QjNcXHUxN0RDXFx1MTgyMC1cXHUxODQyXFx1MTg0NC1cXHUxODc3XFx1MTg4MC1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTFBMDAtXFx1MUExNlxcdTFBMjAtXFx1MUE1NFxcdTFCMDUtXFx1MUIzM1xcdTFCNDUtXFx1MUI0QlxcdTFCODMtXFx1MUJBMFxcdTFCQUUtXFx1MUJBRlxcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3N1xcdTFDRTktXFx1MUNFQ1xcdTFDRUUtXFx1MUNGMVxcdTFDRjUtXFx1MUNGNlxcdTIxMzUtXFx1MjEzOFxcdTJEMzAtXFx1MkQ2N1xcdTJEODAtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTMwMDZcXHUzMDNDXFx1MzA0MS1cXHUzMDk2XFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkZcXHUzMTA1LVxcdTMxMkRcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkFcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQjVcXHU0RTAwLVxcdTlGRDVcXHVBMDAwLVxcdUEwMTRcXHVBMDE2LVxcdUE0OENcXHVBNEQwLVxcdUE0RjdcXHVBNTAwLVxcdUE2MEJcXHVBNjEwLVxcdUE2MUZcXHVBNjJBLVxcdUE2MkJcXHVBNjZFXFx1QTZBMC1cXHVBNkU1XFx1QTc4RlxcdUE3RjdcXHVBN0ZCLVxcdUE4MDFcXHVBODAzLVxcdUE4MDVcXHVBODA3LVxcdUE4MEFcXHVBODBDLVxcdUE4MjJcXHVBODQwLVxcdUE4NzNcXHVBODgyLVxcdUE4QjNcXHVBOEYyLVxcdUE4RjdcXHVBOEZCXFx1QThGRFxcdUE5MEEtXFx1QTkyNVxcdUE5MzAtXFx1QTk0NlxcdUE5NjAtXFx1QTk3Q1xcdUE5ODQtXFx1QTlCMlxcdUE5RTAtXFx1QTlFNFxcdUE5RTctXFx1QTlFRlxcdUE5RkEtXFx1QTlGRVxcdUFBMDAtXFx1QUEyOFxcdUFBNDAtXFx1QUE0MlxcdUFBNDQtXFx1QUE0QlxcdUFBNjAtXFx1QUE2RlxcdUFBNzEtXFx1QUE3NlxcdUFBN0FcXHVBQTdFLVxcdUFBQUZcXHVBQUIxXFx1QUFCNS1cXHVBQUI2XFx1QUFCOS1cXHVBQUJEXFx1QUFDMFxcdUFBQzJcXHVBQURCLVxcdUFBRENcXHVBQUUwLVxcdUFBRUFcXHVBQUYyXFx1QUIwMS1cXHVBQjA2XFx1QUIwOS1cXHVBQjBFXFx1QUIxMS1cXHVBQjE2XFx1QUIyMC1cXHVBQjI2XFx1QUIyOC1cXHVBQjJFXFx1QUJDMC1cXHVBQkUyXFx1QUMwMC1cXHVEN0EzXFx1RDdCMC1cXHVEN0M2XFx1RDdDQi1cXHVEN0ZCXFx1RjkwMC1cXHVGQTZEXFx1RkE3MC1cXHVGQUQ5XFx1RkIxRFxcdUZCMUYtXFx1RkIyOFxcdUZCMkEtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0VcXHVGQjQwLVxcdUZCNDFcXHVGQjQzLVxcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjY2LVxcdUZGNkZcXHVGRjcxLVxcdUZGOURcXHVGRkEwLVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGREMvLnNvdXJjZSxcbl0uam9pbignJykgKyAnXScpO1xuY2xhc3MgQmlidGV4UGFyc2VyIHtcbiAgICBwYXJzZShpbnB1dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIC8vIHRoaXMuX3Byb2dyZXNzID0gMFxuICAgICAgICB0aGlzLnBvcyA9IDA7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5tYXhfZW50cmllcyA9IG9wdGlvbnMubWF4X2VudHJpZXMgfHwgMDtcbiAgICAgICAgdGhpcy5lbnRyaWVzID0gMDtcbiAgICAgICAgdGhpcy5wYXJzaW5nID0gbnVsbDtcbiAgICAgICAgdGhpcy5jaHVua3MgPSBbXTtcbiAgICAgICAgaWYgKG9wdGlvbnMuYXN5bmMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmJpYnRleEFzeW5jKCkudGhlbigoKSA9PiB0aGlzLmNodW5rcyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJpYnRleCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2h1bmtzO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlzV2hpdGVzcGFjZShzLCBob3Jpem9udGFsT25seSA9IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiAocyA9PT0gJyAnIHx8IHMgPT09ICdcXHQnIHx8ICghaG9yaXpvbnRhbE9ubHkgJiYgKHMgPT09ICdcXHInIHx8IHMgPT09ICdcXG4nKSkpO1xuICAgIH1cbiAgICBtYXRjaChzKSB7XG4gICAgICAgIHRoaXMuc2tpcFdoaXRlc3BhY2UoKTtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXQuc3Vic3RyKHRoaXMucG9zLCBzLmxlbmd0aCkgIT09IHMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKGBUb2tlbiBtaXNtYXRjaCwgZXhwZWN0ZWQgJHtKU09OLnN0cmluZ2lmeShzKX0sIGZvdW5kICR7SlNPTi5zdHJpbmdpZnkodGhpcy5pbnB1dC5zdWJzdHIodGhpcy5wb3MsIDIwKSl9Li4uYCwgdGhpcyk7IC8vIHRzbGludDpkaXNhYmxlLWxpbmUgbm8tbWFnaWMtbnVtYmVyc1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucG9zICs9IHMubGVuZ3RoO1xuICAgICAgICB0aGlzLnNraXBXaGl0ZXNwYWNlKCk7XG4gICAgfVxuICAgIHRyeU1hdGNoKHMpIHtcbiAgICAgICAgdGhpcy5za2lwV2hpdGVzcGFjZSgpO1xuICAgICAgICByZXR1cm4gKHRoaXMuaW5wdXQuc3Vic3RyKHRoaXMucG9zLCBzLmxlbmd0aCkgPT09IHMpO1xuICAgICAgICAvLyB0aGlzLnNraXBXaGl0ZXNwYWNlKClcbiAgICB9XG4gICAgc2tpcFdoaXRlc3BhY2UoKSB7XG4gICAgICAgIHdoaWxlICh0aGlzLnBvcyA8IHRoaXMuaW5wdXQubGVuZ3RoICYmIHRoaXMuaXNXaGl0ZXNwYWNlKHRoaXMuaW5wdXRbdGhpcy5wb3NdKSlcbiAgICAgICAgICAgIHRoaXMucG9zKys7XG4gICAgICAgIC8vIHNoYWR5XG4gICAgICAgIGlmICh0aGlzLmlucHV0W3RoaXMucG9zXSA9PT0gJyUnKSB7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5wb3MgPCB0aGlzLmlucHV0Lmxlbmd0aCAmJiB0aGlzLmlucHV0W3RoaXMucG9zXSAhPT0gJ1xcbicpXG4gICAgICAgICAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLnBvcyA8IHRoaXMuaW5wdXQubGVuZ3RoICYmIHRoaXMuaXNXaGl0ZXNwYWNlKHRoaXMuaW5wdXRbdGhpcy5wb3NdKSlcbiAgICAgICAgICAgICAgICB0aGlzLnBvcysrO1xuICAgICAgICB9XG4gICAgfVxuICAgIHZhbHVlX2JyYWNlcygpIHtcbiAgICAgICAgbGV0IGJyYWNlY291bnQgPSAwO1xuICAgICAgICB0aGlzLm1hdGNoKCd7Jyk7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5wb3M7XG4gICAgICAgIGxldCBtYXRoID0gZmFsc2U7XG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuaW5wdXRbdGhpcy5wb3NdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnXFxcXCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9zICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3snOlxuICAgICAgICAgICAgICAgICAgICBicmFjZWNvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ30nOlxuICAgICAgICAgICAgICAgICAgICBpZiAoYnJhY2Vjb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoJ1VuY2xvc2VkIG1hdGggc2VjdGlvbicsIHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0LnN1YnN0cmluZyhzdGFydCwgdGhpcy5wb3MgLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmFjZWNvdW50LS07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJyQnOlxuICAgICAgICAgICAgICAgICAgICBtYXRoID0gIW1hdGg7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgICAgIGlmICh0aGlzLnBvcyA+PSB0aGlzLmlucHV0Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKGBVbnRlcm1pbmF0ZWQgYnJhY2UtdmFsdWUgJHtKU09OLnN0cmluZ2lmeSh0aGlzLmlucHV0LnN1YnN0cihzdGFydCwgMjApKX1gLCB0aGlzKTsgLy8gdHNsaW50OmRpc2FibGUtbGluZSBuby1tYWdpYy1udW1iZXJzXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdmFsdWVfcXVvdGVzKCkge1xuICAgICAgICB0aGlzLm1hdGNoKCdcIicpO1xuICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMucG9zO1xuICAgICAgICBsZXQgYnJhY2Vjb3VudCA9IDA7XG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuaW5wdXRbdGhpcy5wb3NdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnXFxcXCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9zICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3snOlxuICAgICAgICAgICAgICAgICAgICBicmFjZWNvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ30nOlxuICAgICAgICAgICAgICAgICAgICBicmFjZWNvdW50LS07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ1wiJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJyYWNlY291bnQgPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0LnN1YnN0cmluZyhzdGFydCwgdGhpcy5wb3MgLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgICAgIGlmICh0aGlzLnBvcyA+PSB0aGlzLmlucHV0Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKGBVbnRlcm1pbmF0ZWQgcXVvdGUtdmFsdWUgJHtKU09OLnN0cmluZ2lmeSh0aGlzLmlucHV0LnN1YnN0cihzdGFydCwgMjApKX1gLCB0aGlzKTsgLy8gdHNsaW50OmRpc2FibGUtbGluZSBuby1tYWdpYy1udW1iZXJzXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2luZ2xlX3ZhbHVlKCkge1xuICAgICAgICBpZiAodGhpcy50cnlNYXRjaCgneycpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZV9icmFjZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLnRyeU1hdGNoKCdcIicpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZV9xdW90ZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmtleSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHZhbHVlKCkge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBbXTtcbiAgICAgICAgdmFsdWVzLnB1c2godGhpcy5zaW5nbGVfdmFsdWUoKSk7XG4gICAgICAgIHdoaWxlICh0aGlzLnRyeU1hdGNoKCcjJykpIHtcbiAgICAgICAgICAgIHRoaXMubWF0Y2goJyMnKTtcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKHRoaXMuc2luZ2xlX3ZhbHVlKCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZXMuam9pbignJyk7XG4gICAgfVxuICAgIGtleShhbGxvd1VuaWNvZGUgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMucG9zO1xuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucG9zID09PSB0aGlzLmlucHV0Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKCdSdW5hd2F5IGtleScsIHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRbdGhpcy5wb3NdLm1hdGNoKC9bJ2EtekEtWjAtOSY7XzpcXFxcLi8tXS8pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGFsbG93VW5pY29kZSAmJiB0aGlzLmlucHV0W3RoaXMucG9zXS5tYXRjaChsZXR0ZXIpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0LnN1YnN0cmluZyhzdGFydCwgdGhpcy5wb3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGtleV9lcXVhbHNfdmFsdWUoKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IHRoaXMua2V5KCk7XG4gICAgICAgIGlmICghdGhpcy50cnlNYXRjaCgnPScpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihgLi4uID0gdmFsdWUgZXhwZWN0ZWQsIGVxdWFscyBzaWduIG1pc3Npbmc6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5pbnB1dC5zdWJzdHIodGhpcy5wb3MsIDIwKSl9Li4uYCwgdGhpcyk7IC8vIHRzbGludDpkaXNhYmxlLWxpbmUgbm8tbWFnaWMtbnVtYmVyc1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWF0Y2goJz0nKTtcbiAgICAgICAgY29uc3QgdmFsID0gdGhpcy52YWx1ZSgpO1xuICAgICAgICByZXR1cm4gW2tleSwgdmFsXTtcbiAgICB9XG4gICAga2V5X3ZhbHVlX2xpc3QoKSB7XG4gICAgICAgIHRoaXMua2V5X2VxdWFsc192YWx1ZSgpO1xuICAgICAgICB3aGlsZSAodGhpcy50cnlNYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICB0aGlzLm1hdGNoKCcsJyk7XG4gICAgICAgICAgICAvLyBmaXhlcyBwcm9ibGVtcyB3aXRoIGNvbW1hcyBhdCB0aGUgZW5kIG9mIGEgbGlzdFxuICAgICAgICAgICAgaWYgKHRoaXMudHJ5TWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5rZXlfZXF1YWxzX3ZhbHVlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZW50cnkoZCkge1xuICAgICAgICB0aGlzLnBhcnNpbmcgPSB0aGlzLmtleSh0cnVlKTtcbiAgICAgICAgdGhpcy5tYXRjaCgnLCcpO1xuICAgICAgICB0aGlzLmtleV92YWx1ZV9saXN0KCk7XG4gICAgfVxuICAgIGRpcmVjdGl2ZSgpIHtcbiAgICAgICAgdGhpcy5tYXRjaCgnQCcpO1xuICAgICAgICByZXR1cm4gYEAke3RoaXMua2V5KCl9YC50b0xvd2VyQ2FzZSgpO1xuICAgIH1cbiAgICBzdHJpbmcoKSB7XG4gICAgICAgIHRoaXMua2V5X2VxdWFsc192YWx1ZSgpO1xuICAgIH1cbiAgICBwcmVhbWJsZSgpIHtcbiAgICAgICAgdGhpcy52YWx1ZSgpO1xuICAgIH1cbiAgICBjb21tZW50KCkge1xuICAgICAgICB3aGlsZSAodGhpcy5pc1doaXRlc3BhY2UodGhpcy5pbnB1dFt0aGlzLnBvc10sIHRydWUpKVxuICAgICAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRbdGhpcy5wb3NdID09PSAneycpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVfYnJhY2VzKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKHRoaXMuaW5wdXRbdGhpcy5wb3NdICE9PSAnXFxuJyAmJiB0aGlzLnBvcyA8IHRoaXMuaW5wdXQubGVuZ3RoKVxuICAgICAgICAgICAgdGhpcy5wb3MrKztcbiAgICB9XG4gICAgLypcbiAgICBwcml2YXRlIHByb2dyZXNzKCkge1xuICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBNYXRoLnJvdW5kKCh0aGlzLnBvcyAvIHRoaXMuaW5wdXQubGVuZ3RoICogMTAwKSAvIDUpICogNSAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lIG5vLW1hZ2ljLW51bWJlcnNcbiAgICAgIGlmICh0aGlzLl9wcm9ncmVzcyAhPT0gcHJvZ3Jlc3MpIHtcbiAgICAgICAgdGhpcy5fcHJvZ3Jlc3MgPSBwcm9ncmVzc1xuICAgICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgICgke3RoaXMuX3Byb2dyZXNzfSUpIGApXG4gICAgICB9XG4gICAgfVxuICAgICovXG4gICAgaGFzTW9yZSgpIHtcbiAgICAgICAgaWYgKHRoaXMubWF4X2VudHJpZXMgJiYgdGhpcy5lbnRyaWVzID49IHRoaXMubWF4X2VudHJpZXMpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiAodGhpcy5wb3MgPCB0aGlzLmlucHV0Lmxlbmd0aCk7XG4gICAgfVxuICAgIGJpYnRleCgpIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuaGFzTW9yZSgpKSB7XG4gICAgICAgICAgICB0aGlzLnBhcnNlTmV4dCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGJpYnRleEFzeW5jKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNNb3JlKCkgPyAobmV3IFByb21pc2UocmVzb2x2ZSA9PiByZXNvbHZlKHRoaXMucGFyc2VOZXh0KCkpKSkudGhlbigoKSA9PiB0aGlzLmJpYnRleEFzeW5jKCkpIDogUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIH1cbiAgICBwYXJzZU5leHQoKSB7XG4gICAgICAgIC8vIHRoaXMucHJvZ3Jlc3MoKVxuICAgICAgICBjb25zdCBjaHVuayA9IHtcbiAgICAgICAgICAgIG9mZnNldDoge1xuICAgICAgICAgICAgICAgIHBvczogdGhpcy5wb3MsXG4gICAgICAgICAgICAgICAgbGluZTogdGhpcy5pbnB1dC5zdWJzdHJpbmcoMCwgdGhpcy5wb3MpLnNwbGl0KCdcXG4nKS5sZW5ndGggLSAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogbnVsbCxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5za2lwV2hpdGVzcGFjZSgpO1xuICAgICAgICBpZiAodGhpcy5wb3MgPj0gdGhpcy5pbnB1dC5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGxldCBndWFyZCA9ICcnO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZCA9IHRoaXMuZGlyZWN0aXZlKCk7XG4gICAgICAgICAgICBzd2l0Y2ggKGQpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdAc3RyaW5nJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRjaCgneycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdGNoKCd9Jyk7XG4gICAgICAgICAgICAgICAgICAgIGNodW5rLnN0cmluZ0RlY2xhcmF0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnQHByZWFtYmxlJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRjaCgneycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZWFtYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWF0Y2goJ30nKTtcbiAgICAgICAgICAgICAgICAgICAgY2h1bmsucHJlYW1ibGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdAY29tbWVudCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tbWVudCgpO1xuICAgICAgICAgICAgICAgICAgICBjaHVuay5jb21tZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudHJ5TWF0Y2goJ3snKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3VhcmQgPSAne30nO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMudHJ5TWF0Y2goJygnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3VhcmQgPSAnKCknO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoYFRva2VuIG1pc21hdGNoLCBleHBlY3RlZCAneycgb3IgJygnLCBmb3VuZCAke0pTT04uc3RyaW5naWZ5KHRoaXMuaW5wdXQuc3Vic3RyKHRoaXMucG9zLCAyMCkpfS4uLmAsIHRoaXMpOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lIG5vLW1hZ2ljLW51bWJlcnNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdGNoKGd1YXJkWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRyeShkKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRjaChndWFyZFsxXSk7XG4gICAgICAgICAgICAgICAgICAgIGNodW5rLmVudHJ5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRyaWVzKys7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGlmIChlcnIubmFtZSAhPT0gJ1BhcnNlRXJyb3InKVxuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIGNodW5rLmVycm9yID0gZXJyLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgLy8gc2tpcCBhaGVhZCB0byB0aGUgbmV4dCBAIGFuZCB0cnkgYWdhaW5cbiAgICAgICAgICAgICAgICB0aGlzLnBvcyA9IGNodW5rLm9mZnNldC5wb3MgKyAxO1xuICAgICAgICAgICAgd2hpbGUgKHRoaXMucG9zIDwgdGhpcy5pbnB1dC5sZW5ndGggJiYgdGhpcy5pbnB1dFt0aGlzLnBvc10gIT09ICdAJylcbiAgICAgICAgICAgICAgICB0aGlzLnBvcysrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRleHQgPSB0aGlzLmlucHV0LnN1YnN0cmluZyhjaHVuay5vZmZzZXQucG9zLCB0aGlzLnBvcyk7XG4gICAgICAgIGNvbnN0IGxhc3QgPSB0aGlzLmNodW5rcy5sZW5ndGggLSAxO1xuICAgICAgICBpZiAoY2h1bmsuZXJyb3IgJiYgdGhpcy5jaHVua3MubGVuZ3RoICYmIHRoaXMuY2h1bmtzW2xhc3RdLmVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLmNodW5rc1tsYXN0XS50ZXh0ICs9IHRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjaHVuay50ZXh0ID0gdGV4dDtcbiAgICAgICAgICAgIHRoaXMuY2h1bmtzLnB1c2goY2h1bmspO1xuICAgICAgICB9XG4gICAgfVxufVxuLyoqXG4gKiBSZWFkcyB0aGUgYmlidGV4IGlucHV0IGFuZCBzcGxpdHMgaXQgaW50byBzZXBhcmF0ZSBjaHVua3Mgb2YgYEBzdHJpbmdgcywgYEBjb21tZW50YHMsIGFuZCBiaWJ0ZXggZW50cmllcy4gVXNlZnVsIGZvciBkZXRlY3RpbmcgaWYgYSBmaWxlIGlzIGJpYnRleCBmaWxlIGFuZCBmb3IgZmlsdGVyaW5nIG91dCBiYXNpYyBlcnJvcnMgdGhhdCB3b3VsZFxuICogbWFrZSB0aGUgbW9yZSBzb3BoaXN0aWNhdGVkIFtbYmlidGV4LnBhcnNlXV0gcmVqZWN0IHRoZSB3aG9sZSBmaWxlXG4gKlxuICogQHJldHVybnMgYXJyYXkgb2YgY2h1bmtzLCB3aXRoIG1hcmtlcnMgZm9yIHR5cGUgYW5kIGVycm9ycyAoaWYgYW55KSBmb3VuZC5cbiAqL1xuZnVuY3Rpb24gcGFyc2UoaW5wdXQsIG9wdGlvbnMgPSB7fSkge1xuICAgIHJldHVybiAobmV3IEJpYnRleFBhcnNlcikucGFyc2UoaW5wdXQsIG9wdGlvbnMpO1xufVxuZXhwb3J0cy5wYXJzZSA9IHBhcnNlO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2h1bmtlci5qcy5tYXAiLCJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgYXNjaWk6IHJlcXVpcmUoJy4vdGFibGVzL2FzY2lpLmpzb24nKSxcbiAgYXNjaWlfYmlidGV4X2NyZWF0b3I6IHJlcXVpcmUoJy4vdGFibGVzL2FzY2lpLWJpYnRleC1jcmVhdG9yLmpzb24nKSxcbiAgdW5pY29kZTogcmVxdWlyZSgnLi90YWJsZXMvdW5pY29kZS5qc29uJyksXG4gIGxhdGV4OiByZXF1aXJlKCcuL3RhYmxlcy9sYXRleC5qc29uJyksXG4gIGRpYWNyaXRpY3M6IHJlcXVpcmUoJy4vdGFibGVzL2RpYWNyaXRpY3MuanNvbicpLFxufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gW1xuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnQycsXG4gICAgICAgICdhbGlhcyc6ICdPdGhlcicsXG4gICAgICAgICdpc0JtcExhc3QnOiB0cnVlLFxuICAgICAgICAnYm1wJzogJ1xcMC1cXHgxRlxceDdGLVxceDlGXFx4QURcXHUwMzc4XFx1MDM3OVxcdTAzODAtXFx1MDM4M1xcdTAzOEJcXHUwMzhEXFx1MDNBMlxcdTA1MzBcXHUwNTU3XFx1MDU1OFxcdTA1OEJcXHUwNThDXFx1MDU5MFxcdTA1QzgtXFx1MDVDRlxcdTA1RUItXFx1MDVFRVxcdTA1RjUtXFx1MDYwNVxcdTA2MUNcXHUwNjFEXFx1MDZERFxcdTA3MEVcXHUwNzBGXFx1MDc0QlxcdTA3NENcXHUwN0IyLVxcdTA3QkZcXHUwN0ZCXFx1MDdGQ1xcdTA4MkVcXHUwODJGXFx1MDgzRlxcdTA4NUNcXHUwODVEXFx1MDg1RlxcdTA4NkItXFx1MDg5RlxcdTA4QjVcXHUwOEM4LVxcdTA4RDJcXHUwOEUyXFx1MDk4NFxcdTA5OERcXHUwOThFXFx1MDk5MVxcdTA5OTJcXHUwOUE5XFx1MDlCMVxcdTA5QjMtXFx1MDlCNVxcdTA5QkFcXHUwOUJCXFx1MDlDNVxcdTA5QzZcXHUwOUM5XFx1MDlDQVxcdTA5Q0YtXFx1MDlENlxcdTA5RDgtXFx1MDlEQlxcdTA5REVcXHUwOUU0XFx1MDlFNVxcdTA5RkZcXHUwQTAwXFx1MEEwNFxcdTBBMEItXFx1MEEwRVxcdTBBMTFcXHUwQTEyXFx1MEEyOVxcdTBBMzFcXHUwQTM0XFx1MEEzN1xcdTBBM0FcXHUwQTNCXFx1MEEzRFxcdTBBNDMtXFx1MEE0NlxcdTBBNDlcXHUwQTRBXFx1MEE0RS1cXHUwQTUwXFx1MEE1Mi1cXHUwQTU4XFx1MEE1RFxcdTBBNUYtXFx1MEE2NVxcdTBBNzctXFx1MEE4MFxcdTBBODRcXHUwQThFXFx1MEE5MlxcdTBBQTlcXHUwQUIxXFx1MEFCNFxcdTBBQkFcXHUwQUJCXFx1MEFDNlxcdTBBQ0FcXHUwQUNFXFx1MEFDRlxcdTBBRDEtXFx1MEFERlxcdTBBRTRcXHUwQUU1XFx1MEFGMi1cXHUwQUY4XFx1MEIwMFxcdTBCMDRcXHUwQjBEXFx1MEIwRVxcdTBCMTFcXHUwQjEyXFx1MEIyOVxcdTBCMzFcXHUwQjM0XFx1MEIzQVxcdTBCM0JcXHUwQjQ1XFx1MEI0NlxcdTBCNDlcXHUwQjRBXFx1MEI0RS1cXHUwQjU0XFx1MEI1OC1cXHUwQjVCXFx1MEI1RVxcdTBCNjRcXHUwQjY1XFx1MEI3OC1cXHUwQjgxXFx1MEI4NFxcdTBCOEItXFx1MEI4RFxcdTBCOTFcXHUwQjk2LVxcdTBCOThcXHUwQjlCXFx1MEI5RFxcdTBCQTAtXFx1MEJBMlxcdTBCQTUtXFx1MEJBN1xcdTBCQUItXFx1MEJBRFxcdTBCQkEtXFx1MEJCRFxcdTBCQzMtXFx1MEJDNVxcdTBCQzlcXHUwQkNFXFx1MEJDRlxcdTBCRDEtXFx1MEJENlxcdTBCRDgtXFx1MEJFNVxcdTBCRkItXFx1MEJGRlxcdTBDMERcXHUwQzExXFx1MEMyOVxcdTBDM0EtXFx1MEMzQ1xcdTBDNDVcXHUwQzQ5XFx1MEM0RS1cXHUwQzU0XFx1MEM1N1xcdTBDNUItXFx1MEM1RlxcdTBDNjRcXHUwQzY1XFx1MEM3MC1cXHUwQzc2XFx1MEM4RFxcdTBDOTFcXHUwQ0E5XFx1MENCNFxcdTBDQkFcXHUwQ0JCXFx1MENDNVxcdTBDQzlcXHUwQ0NFLVxcdTBDRDRcXHUwQ0Q3LVxcdTBDRERcXHUwQ0RGXFx1MENFNFxcdTBDRTVcXHUwQ0YwXFx1MENGMy1cXHUwQ0ZGXFx1MEQwRFxcdTBEMTFcXHUwRDQ1XFx1MEQ0OVxcdTBENTAtXFx1MEQ1M1xcdTBENjRcXHUwRDY1XFx1MEQ4MFxcdTBEODRcXHUwRDk3LVxcdTBEOTlcXHUwREIyXFx1MERCQ1xcdTBEQkVcXHUwREJGXFx1MERDNy1cXHUwREM5XFx1MERDQi1cXHUwRENFXFx1MERENVxcdTBERDdcXHUwREUwLVxcdTBERTVcXHUwREYwXFx1MERGMVxcdTBERjUtXFx1MEUwMFxcdTBFM0ItXFx1MEUzRVxcdTBFNUMtXFx1MEU4MFxcdTBFODNcXHUwRTg1XFx1MEU4QlxcdTBFQTRcXHUwRUE2XFx1MEVCRVxcdTBFQkZcXHUwRUM1XFx1MEVDN1xcdTBFQ0VcXHUwRUNGXFx1MEVEQVxcdTBFREJcXHUwRUUwLVxcdTBFRkZcXHUwRjQ4XFx1MEY2RC1cXHUwRjcwXFx1MEY5OFxcdTBGQkRcXHUwRkNEXFx1MEZEQi1cXHUwRkZGXFx1MTBDNlxcdTEwQzgtXFx1MTBDQ1xcdTEwQ0VcXHUxMENGXFx1MTI0OVxcdTEyNEVcXHUxMjRGXFx1MTI1N1xcdTEyNTlcXHUxMjVFXFx1MTI1RlxcdTEyODlcXHUxMjhFXFx1MTI4RlxcdTEyQjFcXHUxMkI2XFx1MTJCN1xcdTEyQkZcXHUxMkMxXFx1MTJDNlxcdTEyQzdcXHUxMkQ3XFx1MTMxMVxcdTEzMTZcXHUxMzE3XFx1MTM1QlxcdTEzNUNcXHUxMzdELVxcdTEzN0ZcXHUxMzlBLVxcdTEzOUZcXHUxM0Y2XFx1MTNGN1xcdTEzRkVcXHUxM0ZGXFx1MTY5RC1cXHUxNjlGXFx1MTZGOS1cXHUxNkZGXFx1MTcwRFxcdTE3MTUtXFx1MTcxRlxcdTE3MzctXFx1MTczRlxcdTE3NTQtXFx1MTc1RlxcdTE3NkRcXHUxNzcxXFx1MTc3NC1cXHUxNzdGXFx1MTdERVxcdTE3REZcXHUxN0VBLVxcdTE3RUZcXHUxN0ZBLVxcdTE3RkZcXHUxODBFXFx1MTgwRlxcdTE4MUEtXFx1MTgxRlxcdTE4NzktXFx1MTg3RlxcdTE4QUItXFx1MThBRlxcdTE4RjYtXFx1MThGRlxcdTE5MUZcXHUxOTJDLVxcdTE5MkZcXHUxOTNDLVxcdTE5M0ZcXHUxOTQxLVxcdTE5NDNcXHUxOTZFXFx1MTk2RlxcdTE5NzUtXFx1MTk3RlxcdTE5QUMtXFx1MTlBRlxcdTE5Q0EtXFx1MTlDRlxcdTE5REItXFx1MTlERFxcdTFBMUNcXHUxQTFEXFx1MUE1RlxcdTFBN0RcXHUxQTdFXFx1MUE4QS1cXHUxQThGXFx1MUE5QS1cXHUxQTlGXFx1MUFBRVxcdTFBQUZcXHUxQUMxLVxcdTFBRkZcXHUxQjRDLVxcdTFCNEZcXHUxQjdELVxcdTFCN0ZcXHUxQkY0LVxcdTFCRkJcXHUxQzM4LVxcdTFDM0FcXHUxQzRBLVxcdTFDNENcXHUxQzg5LVxcdTFDOEZcXHUxQ0JCXFx1MUNCQ1xcdTFDQzgtXFx1MUNDRlxcdTFDRkItXFx1MUNGRlxcdTFERkFcXHUxRjE2XFx1MUYxN1xcdTFGMUVcXHUxRjFGXFx1MUY0NlxcdTFGNDdcXHUxRjRFXFx1MUY0RlxcdTFGNThcXHUxRjVBXFx1MUY1Q1xcdTFGNUVcXHUxRjdFXFx1MUY3RlxcdTFGQjVcXHUxRkM1XFx1MUZENFxcdTFGRDVcXHUxRkRDXFx1MUZGMFxcdTFGRjFcXHUxRkY1XFx1MUZGRlxcdTIwMEItXFx1MjAwRlxcdTIwMkEtXFx1MjAyRVxcdTIwNjAtXFx1MjA2RlxcdTIwNzJcXHUyMDczXFx1MjA4RlxcdTIwOUQtXFx1MjA5RlxcdTIwQzAtXFx1MjBDRlxcdTIwRjEtXFx1MjBGRlxcdTIxOEMtXFx1MjE4RlxcdTI0MjctXFx1MjQzRlxcdTI0NEItXFx1MjQ1RlxcdTJCNzRcXHUyQjc1XFx1MkI5NlxcdTJDMkZcXHUyQzVGXFx1MkNGNC1cXHUyQ0Y4XFx1MkQyNlxcdTJEMjgtXFx1MkQyQ1xcdTJEMkVcXHUyRDJGXFx1MkQ2OC1cXHUyRDZFXFx1MkQ3MS1cXHUyRDdFXFx1MkQ5Ny1cXHUyRDlGXFx1MkRBN1xcdTJEQUZcXHUyREI3XFx1MkRCRlxcdTJEQzdcXHUyRENGXFx1MkREN1xcdTJEREZcXHUyRTUzLVxcdTJFN0ZcXHUyRTlBXFx1MkVGNC1cXHUyRUZGXFx1MkZENi1cXHUyRkVGXFx1MkZGQy1cXHUyRkZGXFx1MzA0MFxcdTMwOTdcXHUzMDk4XFx1MzEwMC1cXHUzMTA0XFx1MzEzMFxcdTMxOEZcXHUzMUU0LVxcdTMxRUZcXHUzMjFGXFx1OUZGRC1cXHU5RkZGXFx1QTQ4RC1cXHVBNDhGXFx1QTRDNy1cXHVBNENGXFx1QTYyQy1cXHVBNjNGXFx1QTZGOC1cXHVBNkZGXFx1QTdDMFxcdUE3QzFcXHVBN0NCLVxcdUE3RjRcXHVBODJELVxcdUE4MkZcXHVBODNBLVxcdUE4M0ZcXHVBODc4LVxcdUE4N0ZcXHVBOEM2LVxcdUE4Q0RcXHVBOERBLVxcdUE4REZcXHVBOTU0LVxcdUE5NUVcXHVBOTdELVxcdUE5N0ZcXHVBOUNFXFx1QTlEQS1cXHVBOUREXFx1QTlGRlxcdUFBMzctXFx1QUEzRlxcdUFBNEVcXHVBQTRGXFx1QUE1QVxcdUFBNUJcXHVBQUMzLVxcdUFBREFcXHVBQUY3LVxcdUFCMDBcXHVBQjA3XFx1QUIwOFxcdUFCMEZcXHVBQjEwXFx1QUIxNy1cXHVBQjFGXFx1QUIyN1xcdUFCMkZcXHVBQjZDLVxcdUFCNkZcXHVBQkVFXFx1QUJFRlxcdUFCRkEtXFx1QUJGRlxcdUQ3QTQtXFx1RDdBRlxcdUQ3QzctXFx1RDdDQVxcdUQ3RkMtXFx1RjhGRlxcdUZBNkVcXHVGQTZGXFx1RkFEQS1cXHVGQUZGXFx1RkIwNy1cXHVGQjEyXFx1RkIxOC1cXHVGQjFDXFx1RkIzN1xcdUZCM0RcXHVGQjNGXFx1RkI0MlxcdUZCNDVcXHVGQkMyLVxcdUZCRDJcXHVGRDQwLVxcdUZENEZcXHVGRDkwXFx1RkQ5MVxcdUZEQzgtXFx1RkRFRlxcdUZERkVcXHVGREZGXFx1RkUxQS1cXHVGRTFGXFx1RkU1M1xcdUZFNjdcXHVGRTZDLVxcdUZFNkZcXHVGRTc1XFx1RkVGRC1cXHVGRjAwXFx1RkZCRi1cXHVGRkMxXFx1RkZDOFxcdUZGQzlcXHVGRkQwXFx1RkZEMVxcdUZGRDhcXHVGRkQ5XFx1RkZERC1cXHVGRkRGXFx1RkZFN1xcdUZGRUYtXFx1RkZGQlxcdUZGRkVcXHVGRkZGJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODAwW1xcdURDMENcXHVEQzI3XFx1REMzQlxcdURDM0VcXHVEQzRFXFx1REM0RlxcdURDNUUtXFx1REM3RlxcdURDRkItXFx1RENGRlxcdUREMDMtXFx1REQwNlxcdUREMzQtXFx1REQzNlxcdUREOEZcXHVERDlELVxcdUREOUZcXHVEREExLVxcdUREQ0ZcXHVEREZFLVxcdURFN0ZcXHVERTlELVxcdURFOUZcXHVERUQxLVxcdURFREZcXHVERUZDLVxcdURFRkZcXHVERjI0LVxcdURGMkNcXHVERjRCLVxcdURGNEZcXHVERjdCLVxcdURGN0ZcXHVERjlFXFx1REZDNC1cXHVERkM3XFx1REZENi1cXHVERkZGXXxcXHVEODAxW1xcdURDOUVcXHVEQzlGXFx1RENBQS1cXHVEQ0FGXFx1RENENC1cXHVEQ0Q3XFx1RENGQy1cXHVEQ0ZGXFx1REQyOC1cXHVERDJGXFx1REQ2NC1cXHVERDZFXFx1REQ3MC1cXHVEREZGXFx1REYzNy1cXHVERjNGXFx1REY1Ni1cXHVERjVGXFx1REY2OC1cXHVERkZGXXxcXHVEODAyW1xcdURDMDZcXHVEQzA3XFx1REMwOVxcdURDMzZcXHVEQzM5LVxcdURDM0JcXHVEQzNEXFx1REMzRVxcdURDNTZcXHVEQzlGLVxcdURDQTZcXHVEQ0IwLVxcdURDREZcXHVEQ0YzXFx1RENGNi1cXHVEQ0ZBXFx1REQxQy1cXHVERDFFXFx1REQzQS1cXHVERDNFXFx1REQ0MC1cXHVERDdGXFx1RERCOC1cXHVEREJCXFx1REREMFxcdURERDFcXHVERTA0XFx1REUwNy1cXHVERTBCXFx1REUxNFxcdURFMThcXHVERTM2XFx1REUzN1xcdURFM0ItXFx1REUzRVxcdURFNDktXFx1REU0RlxcdURFNTktXFx1REU1RlxcdURFQTAtXFx1REVCRlxcdURFRTctXFx1REVFQVxcdURFRjctXFx1REVGRlxcdURGMzYtXFx1REYzOFxcdURGNTZcXHVERjU3XFx1REY3My1cXHVERjc3XFx1REY5Mi1cXHVERjk4XFx1REY5RC1cXHVERkE4XFx1REZCMC1cXHVERkZGXXxcXHVEODAzW1xcdURDNDktXFx1REM3RlxcdURDQjMtXFx1RENCRlxcdURDRjMtXFx1RENGOVxcdUREMjgtXFx1REQyRlxcdUREM0EtXFx1REU1RlxcdURFN0ZcXHVERUFBXFx1REVBRVxcdURFQUZcXHVERUIyLVxcdURFRkZcXHVERjI4LVxcdURGMkZcXHVERjVBLVxcdURGQUZcXHVERkNDLVxcdURGREZcXHVERkY3LVxcdURGRkZdfFxcdUQ4MDRbXFx1REM0RS1cXHVEQzUxXFx1REM3MC1cXHVEQzdFXFx1RENCRFxcdURDQzItXFx1RENDRlxcdURDRTktXFx1RENFRlxcdURDRkEtXFx1RENGRlxcdUREMzVcXHVERDQ4LVxcdURENEZcXHVERDc3LVxcdUREN0ZcXHVEREUwXFx1RERGNS1cXHVEREZGXFx1REUxMlxcdURFM0YtXFx1REU3RlxcdURFODdcXHVERTg5XFx1REU4RVxcdURFOUVcXHVERUFBLVxcdURFQUZcXHVERUVCLVxcdURFRUZcXHVERUZBLVxcdURFRkZcXHVERjA0XFx1REYwRFxcdURGMEVcXHVERjExXFx1REYxMlxcdURGMjlcXHVERjMxXFx1REYzNFxcdURGM0FcXHVERjQ1XFx1REY0NlxcdURGNDlcXHVERjRBXFx1REY0RVxcdURGNEZcXHVERjUxLVxcdURGNTZcXHVERjU4LVxcdURGNUNcXHVERjY0XFx1REY2NVxcdURGNkQtXFx1REY2RlxcdURGNzUtXFx1REZGRl18XFx1RDgwNVtcXHVEQzVDXFx1REM2Mi1cXHVEQzdGXFx1RENDOC1cXHVEQ0NGXFx1RENEQS1cXHVERDdGXFx1RERCNlxcdUREQjdcXHVERERFLVxcdURERkZcXHVERTQ1LVxcdURFNEZcXHVERTVBLVxcdURFNUZcXHVERTZELVxcdURFN0ZcXHVERUI5LVxcdURFQkZcXHVERUNBLVxcdURFRkZcXHVERjFCXFx1REYxQ1xcdURGMkMtXFx1REYyRlxcdURGNDAtXFx1REZGRl18XFx1RDgwNltcXHVEQzNDLVxcdURDOUZcXHVEQ0YzLVxcdURDRkVcXHVERDA3XFx1REQwOFxcdUREMEFcXHVERDBCXFx1REQxNFxcdUREMTdcXHVERDM2XFx1REQzOVxcdUREM0FcXHVERDQ3LVxcdURENEZcXHVERDVBLVxcdUREOUZcXHVEREE4XFx1RERBOVxcdURERDhcXHVEREQ5XFx1RERFNS1cXHVEREZGXFx1REU0OC1cXHVERTRGXFx1REVBMy1cXHVERUJGXFx1REVGOS1cXHVERkZGXXxcXHVEODA3W1xcdURDMDlcXHVEQzM3XFx1REM0Ni1cXHVEQzRGXFx1REM2RC1cXHVEQzZGXFx1REM5MFxcdURDOTFcXHVEQ0E4XFx1RENCNy1cXHVEQ0ZGXFx1REQwN1xcdUREMEFcXHVERDM3LVxcdUREMzlcXHVERDNCXFx1REQzRVxcdURENDgtXFx1REQ0RlxcdURENUEtXFx1REQ1RlxcdURENjZcXHVERDY5XFx1REQ4RlxcdUREOTJcXHVERDk5LVxcdUREOUZcXHVEREFBLVxcdURFREZcXHVERUY5LVxcdURGQUZcXHVERkIxLVxcdURGQkZcXHVERkYyLVxcdURGRkVdfFxcdUQ4MDhbXFx1REY5QS1cXHVERkZGXXxcXHVEODA5W1xcdURDNkZcXHVEQzc1LVxcdURDN0ZcXHVERDQ0LVxcdURGRkZdfFtcXHVEODBBXFx1RDgwQlxcdUQ4MEUtXFx1RDgxMFxcdUQ4MTItXFx1RDgxOVxcdUQ4MjQtXFx1RDgyQlxcdUQ4MkRcXHVEODJFXFx1RDgzMC1cXHVEODMzXFx1RDgzN1xcdUQ4MzlcXHVEODNGXFx1RDg3Qi1cXHVEODdEXFx1RDg3RlxcdUQ4ODUtXFx1REIzRlxcdURCNDEtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxcXHVEODBEW1xcdURDMkYtXFx1REZGRl18XFx1RDgxMVtcXHVERTQ3LVxcdURGRkZdfFxcdUQ4MUFbXFx1REUzOS1cXHVERTNGXFx1REU1RlxcdURFNkEtXFx1REU2RFxcdURFNzAtXFx1REVDRlxcdURFRUVcXHVERUVGXFx1REVGNi1cXHVERUZGXFx1REY0Ni1cXHVERjRGXFx1REY1QVxcdURGNjJcXHVERjc4LVxcdURGN0NcXHVERjkwLVxcdURGRkZdfFxcdUQ4MUJbXFx1REMwMC1cXHVERTNGXFx1REU5Qi1cXHVERUZGXFx1REY0Qi1cXHVERjRFXFx1REY4OC1cXHVERjhFXFx1REZBMC1cXHVERkRGXFx1REZFNS1cXHVERkVGXFx1REZGMi1cXHVERkZGXXxcXHVEODIxW1xcdURGRjgtXFx1REZGRl18XFx1RDgyM1tcXHVEQ0Q2LVxcdURDRkZcXHVERDA5LVxcdURGRkZdfFxcdUQ4MkNbXFx1REQxRi1cXHVERDRGXFx1REQ1My1cXHVERDYzXFx1REQ2OC1cXHVERDZGXFx1REVGQy1cXHVERkZGXXxcXHVEODJGW1xcdURDNkItXFx1REM2RlxcdURDN0QtXFx1REM3RlxcdURDODktXFx1REM4RlxcdURDOUFcXHVEQzlCXFx1RENBMC1cXHVERkZGXXxcXHVEODM0W1xcdURDRjYtXFx1RENGRlxcdUREMjdcXHVERDI4XFx1REQ3My1cXHVERDdBXFx1RERFOS1cXHVEREZGXFx1REU0Ni1cXHVERURGXFx1REVGNC1cXHVERUZGXFx1REY1Ny1cXHVERjVGXFx1REY3OS1cXHVERkZGXXxcXHVEODM1W1xcdURDNTVcXHVEQzlEXFx1RENBMFxcdURDQTFcXHVEQ0EzXFx1RENBNFxcdURDQTdcXHVEQ0E4XFx1RENBRFxcdURDQkFcXHVEQ0JDXFx1RENDNFxcdUREMDZcXHVERDBCXFx1REQwQ1xcdUREMTVcXHVERDFEXFx1REQzQVxcdUREM0ZcXHVERDQ1XFx1REQ0Ny1cXHVERDQ5XFx1REQ1MVxcdURFQTZcXHVERUE3XFx1REZDQ1xcdURGQ0RdfFxcdUQ4MzZbXFx1REU4Qy1cXHVERTlBXFx1REVBMFxcdURFQjAtXFx1REZGRl18XFx1RDgzOFtcXHVEQzA3XFx1REMxOVxcdURDMUFcXHVEQzIyXFx1REMyNVxcdURDMkItXFx1RENGRlxcdUREMkQtXFx1REQyRlxcdUREM0VcXHVERDNGXFx1REQ0QS1cXHVERDREXFx1REQ1MC1cXHVERUJGXFx1REVGQS1cXHVERUZFXFx1REYwMC1cXHVERkZGXXxcXHVEODNBW1xcdURDQzVcXHVEQ0M2XFx1RENENy1cXHVEQ0ZGXFx1REQ0Qy1cXHVERDRGXFx1REQ1QS1cXHVERDVEXFx1REQ2MC1cXHVERkZGXXxcXHVEODNCW1xcdURDMDAtXFx1REM3MFxcdURDQjUtXFx1REQwMFxcdUREM0UtXFx1RERGRlxcdURFMDRcXHVERTIwXFx1REUyM1xcdURFMjVcXHVERTI2XFx1REUyOFxcdURFMzNcXHVERTM4XFx1REUzQVxcdURFM0MtXFx1REU0MVxcdURFNDMtXFx1REU0NlxcdURFNDhcXHVERTRBXFx1REU0Q1xcdURFNTBcXHVERTUzXFx1REU1NVxcdURFNTZcXHVERTU4XFx1REU1QVxcdURFNUNcXHVERTVFXFx1REU2MFxcdURFNjNcXHVERTY1XFx1REU2NlxcdURFNkJcXHVERTczXFx1REU3OFxcdURFN0RcXHVERTdGXFx1REU4QVxcdURFOUMtXFx1REVBMFxcdURFQTRcXHVERUFBXFx1REVCQy1cXHVERUVGXFx1REVGMi1cXHVERkZGXXxcXHVEODNDW1xcdURDMkMtXFx1REMyRlxcdURDOTQtXFx1REM5RlxcdURDQUZcXHVEQ0IwXFx1RENDMFxcdURDRDBcXHVEQ0Y2LVxcdURDRkZcXHVEREFFLVxcdURERTVcXHVERTAzLVxcdURFMEZcXHVERTNDLVxcdURFM0ZcXHVERTQ5LVxcdURFNEZcXHVERTUyLVxcdURFNUZcXHVERTY2LVxcdURFRkZdfFxcdUQ4M0RbXFx1REVEOC1cXHVERURGXFx1REVFRC1cXHVERUVGXFx1REVGRC1cXHVERUZGXFx1REY3NC1cXHVERjdGXFx1REZEOS1cXHVERkRGXFx1REZFQy1cXHVERkZGXXxcXHVEODNFW1xcdURDMEMtXFx1REMwRlxcdURDNDgtXFx1REM0RlxcdURDNUEtXFx1REM1RlxcdURDODgtXFx1REM4RlxcdURDQUVcXHVEQ0FGXFx1RENCMi1cXHVEQ0ZGXFx1REQ3OVxcdUREQ0NcXHVERTU0LVxcdURFNUZcXHVERTZFXFx1REU2RlxcdURFNzUtXFx1REU3N1xcdURFN0ItXFx1REU3RlxcdURFODctXFx1REU4RlxcdURFQTktXFx1REVBRlxcdURFQjctXFx1REVCRlxcdURFQzMtXFx1REVDRlxcdURFRDctXFx1REVGRlxcdURGOTNcXHVERkNCLVxcdURGRUZcXHVERkZBLVxcdURGRkZdfFxcdUQ4NjlbXFx1REVERS1cXHVERUZGXXxcXHVEODZEW1xcdURGMzUtXFx1REYzRl18XFx1RDg2RVtcXHVEQzFFXFx1REMxRl18XFx1RDg3M1tcXHVERUEyLVxcdURFQUZdfFxcdUQ4N0FbXFx1REZFMS1cXHVERkZGXXxcXHVEODdFW1xcdURFMUUtXFx1REZGRl18XFx1RDg4NFtcXHVERjRCLVxcdURGRkZdfFxcdURCNDBbXFx1REMwMC1cXHVEQ0ZGXFx1RERGMC1cXHVERkZGXSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnQ2MnLFxuICAgICAgICAnYWxpYXMnOiAnQ29udHJvbCcsXG4gICAgICAgICdibXAnOiAnXFwwLVxceDFGXFx4N0YtXFx4OUYnXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ0NmJyxcbiAgICAgICAgJ2FsaWFzJzogJ0Zvcm1hdCcsXG4gICAgICAgICdibXAnOiAnXFx4QURcXHUwNjAwLVxcdTA2MDVcXHUwNjFDXFx1MDZERFxcdTA3MEZcXHUwOEUyXFx1MTgwRVxcdTIwMEItXFx1MjAwRlxcdTIwMkEtXFx1MjAyRVxcdTIwNjAtXFx1MjA2NFxcdTIwNjYtXFx1MjA2RlxcdUZFRkZcXHVGRkY5LVxcdUZGRkInLFxuICAgICAgICAnYXN0cmFsJzogJ1xcdUQ4MDRbXFx1RENCRFxcdURDQ0RdfFxcdUQ4MERbXFx1REMzMC1cXHVEQzM4XXxcXHVEODJGW1xcdURDQTAtXFx1RENBM118XFx1RDgzNFtcXHVERDczLVxcdUREN0FdfFxcdURCNDBbXFx1REMwMVxcdURDMjAtXFx1REM3Rl0nXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ0NuJyxcbiAgICAgICAgJ2FsaWFzJzogJ1VuYXNzaWduZWQnLFxuICAgICAgICAnYm1wJzogJ1xcdTAzNzhcXHUwMzc5XFx1MDM4MC1cXHUwMzgzXFx1MDM4QlxcdTAzOERcXHUwM0EyXFx1MDUzMFxcdTA1NTdcXHUwNTU4XFx1MDU4QlxcdTA1OENcXHUwNTkwXFx1MDVDOC1cXHUwNUNGXFx1MDVFQi1cXHUwNUVFXFx1MDVGNS1cXHUwNUZGXFx1MDYxRFxcdTA3MEVcXHUwNzRCXFx1MDc0Q1xcdTA3QjItXFx1MDdCRlxcdTA3RkJcXHUwN0ZDXFx1MDgyRVxcdTA4MkZcXHUwODNGXFx1MDg1Q1xcdTA4NURcXHUwODVGXFx1MDg2Qi1cXHUwODlGXFx1MDhCNVxcdTA4QzgtXFx1MDhEMlxcdTA5ODRcXHUwOThEXFx1MDk4RVxcdTA5OTFcXHUwOTkyXFx1MDlBOVxcdTA5QjFcXHUwOUIzLVxcdTA5QjVcXHUwOUJBXFx1MDlCQlxcdTA5QzVcXHUwOUM2XFx1MDlDOVxcdTA5Q0FcXHUwOUNGLVxcdTA5RDZcXHUwOUQ4LVxcdTA5REJcXHUwOURFXFx1MDlFNFxcdTA5RTVcXHUwOUZGXFx1MEEwMFxcdTBBMDRcXHUwQTBCLVxcdTBBMEVcXHUwQTExXFx1MEExMlxcdTBBMjlcXHUwQTMxXFx1MEEzNFxcdTBBMzdcXHUwQTNBXFx1MEEzQlxcdTBBM0RcXHUwQTQzLVxcdTBBNDZcXHUwQTQ5XFx1MEE0QVxcdTBBNEUtXFx1MEE1MFxcdTBBNTItXFx1MEE1OFxcdTBBNURcXHUwQTVGLVxcdTBBNjVcXHUwQTc3LVxcdTBBODBcXHUwQTg0XFx1MEE4RVxcdTBBOTJcXHUwQUE5XFx1MEFCMVxcdTBBQjRcXHUwQUJBXFx1MEFCQlxcdTBBQzZcXHUwQUNBXFx1MEFDRVxcdTBBQ0ZcXHUwQUQxLVxcdTBBREZcXHUwQUU0XFx1MEFFNVxcdTBBRjItXFx1MEFGOFxcdTBCMDBcXHUwQjA0XFx1MEIwRFxcdTBCMEVcXHUwQjExXFx1MEIxMlxcdTBCMjlcXHUwQjMxXFx1MEIzNFxcdTBCM0FcXHUwQjNCXFx1MEI0NVxcdTBCNDZcXHUwQjQ5XFx1MEI0QVxcdTBCNEUtXFx1MEI1NFxcdTBCNTgtXFx1MEI1QlxcdTBCNUVcXHUwQjY0XFx1MEI2NVxcdTBCNzgtXFx1MEI4MVxcdTBCODRcXHUwQjhCLVxcdTBCOERcXHUwQjkxXFx1MEI5Ni1cXHUwQjk4XFx1MEI5QlxcdTBCOURcXHUwQkEwLVxcdTBCQTJcXHUwQkE1LVxcdTBCQTdcXHUwQkFCLVxcdTBCQURcXHUwQkJBLVxcdTBCQkRcXHUwQkMzLVxcdTBCQzVcXHUwQkM5XFx1MEJDRVxcdTBCQ0ZcXHUwQkQxLVxcdTBCRDZcXHUwQkQ4LVxcdTBCRTVcXHUwQkZCLVxcdTBCRkZcXHUwQzBEXFx1MEMxMVxcdTBDMjlcXHUwQzNBLVxcdTBDM0NcXHUwQzQ1XFx1MEM0OVxcdTBDNEUtXFx1MEM1NFxcdTBDNTdcXHUwQzVCLVxcdTBDNUZcXHUwQzY0XFx1MEM2NVxcdTBDNzAtXFx1MEM3NlxcdTBDOERcXHUwQzkxXFx1MENBOVxcdTBDQjRcXHUwQ0JBXFx1MENCQlxcdTBDQzVcXHUwQ0M5XFx1MENDRS1cXHUwQ0Q0XFx1MENENy1cXHUwQ0REXFx1MENERlxcdTBDRTRcXHUwQ0U1XFx1MENGMFxcdTBDRjMtXFx1MENGRlxcdTBEMERcXHUwRDExXFx1MEQ0NVxcdTBENDlcXHUwRDUwLVxcdTBENTNcXHUwRDY0XFx1MEQ2NVxcdTBEODBcXHUwRDg0XFx1MEQ5Ny1cXHUwRDk5XFx1MERCMlxcdTBEQkNcXHUwREJFXFx1MERCRlxcdTBEQzctXFx1MERDOVxcdTBEQ0ItXFx1MERDRVxcdTBERDVcXHUwREQ3XFx1MERFMC1cXHUwREU1XFx1MERGMFxcdTBERjFcXHUwREY1LVxcdTBFMDBcXHUwRTNCLVxcdTBFM0VcXHUwRTVDLVxcdTBFODBcXHUwRTgzXFx1MEU4NVxcdTBFOEJcXHUwRUE0XFx1MEVBNlxcdTBFQkVcXHUwRUJGXFx1MEVDNVxcdTBFQzdcXHUwRUNFXFx1MEVDRlxcdTBFREFcXHUwRURCXFx1MEVFMC1cXHUwRUZGXFx1MEY0OFxcdTBGNkQtXFx1MEY3MFxcdTBGOThcXHUwRkJEXFx1MEZDRFxcdTBGREItXFx1MEZGRlxcdTEwQzZcXHUxMEM4LVxcdTEwQ0NcXHUxMENFXFx1MTBDRlxcdTEyNDlcXHUxMjRFXFx1MTI0RlxcdTEyNTdcXHUxMjU5XFx1MTI1RVxcdTEyNUZcXHUxMjg5XFx1MTI4RVxcdTEyOEZcXHUxMkIxXFx1MTJCNlxcdTEyQjdcXHUxMkJGXFx1MTJDMVxcdTEyQzZcXHUxMkM3XFx1MTJEN1xcdTEzMTFcXHUxMzE2XFx1MTMxN1xcdTEzNUJcXHUxMzVDXFx1MTM3RC1cXHUxMzdGXFx1MTM5QS1cXHUxMzlGXFx1MTNGNlxcdTEzRjdcXHUxM0ZFXFx1MTNGRlxcdTE2OUQtXFx1MTY5RlxcdTE2RjktXFx1MTZGRlxcdTE3MERcXHUxNzE1LVxcdTE3MUZcXHUxNzM3LVxcdTE3M0ZcXHUxNzU0LVxcdTE3NUZcXHUxNzZEXFx1MTc3MVxcdTE3NzQtXFx1MTc3RlxcdTE3REVcXHUxN0RGXFx1MTdFQS1cXHUxN0VGXFx1MTdGQS1cXHUxN0ZGXFx1MTgwRlxcdTE4MUEtXFx1MTgxRlxcdTE4NzktXFx1MTg3RlxcdTE4QUItXFx1MThBRlxcdTE4RjYtXFx1MThGRlxcdTE5MUZcXHUxOTJDLVxcdTE5MkZcXHUxOTNDLVxcdTE5M0ZcXHUxOTQxLVxcdTE5NDNcXHUxOTZFXFx1MTk2RlxcdTE5NzUtXFx1MTk3RlxcdTE5QUMtXFx1MTlBRlxcdTE5Q0EtXFx1MTlDRlxcdTE5REItXFx1MTlERFxcdTFBMUNcXHUxQTFEXFx1MUE1RlxcdTFBN0RcXHUxQTdFXFx1MUE4QS1cXHUxQThGXFx1MUE5QS1cXHUxQTlGXFx1MUFBRVxcdTFBQUZcXHUxQUMxLVxcdTFBRkZcXHUxQjRDLVxcdTFCNEZcXHUxQjdELVxcdTFCN0ZcXHUxQkY0LVxcdTFCRkJcXHUxQzM4LVxcdTFDM0FcXHUxQzRBLVxcdTFDNENcXHUxQzg5LVxcdTFDOEZcXHUxQ0JCXFx1MUNCQ1xcdTFDQzgtXFx1MUNDRlxcdTFDRkItXFx1MUNGRlxcdTFERkFcXHUxRjE2XFx1MUYxN1xcdTFGMUVcXHUxRjFGXFx1MUY0NlxcdTFGNDdcXHUxRjRFXFx1MUY0RlxcdTFGNThcXHUxRjVBXFx1MUY1Q1xcdTFGNUVcXHUxRjdFXFx1MUY3RlxcdTFGQjVcXHUxRkM1XFx1MUZENFxcdTFGRDVcXHUxRkRDXFx1MUZGMFxcdTFGRjFcXHUxRkY1XFx1MUZGRlxcdTIwNjVcXHUyMDcyXFx1MjA3M1xcdTIwOEZcXHUyMDlELVxcdTIwOUZcXHUyMEMwLVxcdTIwQ0ZcXHUyMEYxLVxcdTIwRkZcXHUyMThDLVxcdTIxOEZcXHUyNDI3LVxcdTI0M0ZcXHUyNDRCLVxcdTI0NUZcXHUyQjc0XFx1MkI3NVxcdTJCOTZcXHUyQzJGXFx1MkM1RlxcdTJDRjQtXFx1MkNGOFxcdTJEMjZcXHUyRDI4LVxcdTJEMkNcXHUyRDJFXFx1MkQyRlxcdTJENjgtXFx1MkQ2RVxcdTJENzEtXFx1MkQ3RVxcdTJEOTctXFx1MkQ5RlxcdTJEQTdcXHUyREFGXFx1MkRCN1xcdTJEQkZcXHUyREM3XFx1MkRDRlxcdTJERDdcXHUyRERGXFx1MkU1My1cXHUyRTdGXFx1MkU5QVxcdTJFRjQtXFx1MkVGRlxcdTJGRDYtXFx1MkZFRlxcdTJGRkMtXFx1MkZGRlxcdTMwNDBcXHUzMDk3XFx1MzA5OFxcdTMxMDAtXFx1MzEwNFxcdTMxMzBcXHUzMThGXFx1MzFFNC1cXHUzMUVGXFx1MzIxRlxcdTlGRkQtXFx1OUZGRlxcdUE0OEQtXFx1QTQ4RlxcdUE0QzctXFx1QTRDRlxcdUE2MkMtXFx1QTYzRlxcdUE2RjgtXFx1QTZGRlxcdUE3QzBcXHVBN0MxXFx1QTdDQi1cXHVBN0Y0XFx1QTgyRC1cXHVBODJGXFx1QTgzQS1cXHVBODNGXFx1QTg3OC1cXHVBODdGXFx1QThDNi1cXHVBOENEXFx1QThEQS1cXHVBOERGXFx1QTk1NC1cXHVBOTVFXFx1QTk3RC1cXHVBOTdGXFx1QTlDRVxcdUE5REEtXFx1QTlERFxcdUE5RkZcXHVBQTM3LVxcdUFBM0ZcXHVBQTRFXFx1QUE0RlxcdUFBNUFcXHVBQTVCXFx1QUFDMy1cXHVBQURBXFx1QUFGNy1cXHVBQjAwXFx1QUIwN1xcdUFCMDhcXHVBQjBGXFx1QUIxMFxcdUFCMTctXFx1QUIxRlxcdUFCMjdcXHVBQjJGXFx1QUI2Qy1cXHVBQjZGXFx1QUJFRVxcdUFCRUZcXHVBQkZBLVxcdUFCRkZcXHVEN0E0LVxcdUQ3QUZcXHVEN0M3LVxcdUQ3Q0FcXHVEN0ZDLVxcdUQ3RkZcXHVGQTZFXFx1RkE2RlxcdUZBREEtXFx1RkFGRlxcdUZCMDctXFx1RkIxMlxcdUZCMTgtXFx1RkIxQ1xcdUZCMzdcXHVGQjNEXFx1RkIzRlxcdUZCNDJcXHVGQjQ1XFx1RkJDMi1cXHVGQkQyXFx1RkQ0MC1cXHVGRDRGXFx1RkQ5MFxcdUZEOTFcXHVGREM4LVxcdUZERUZcXHVGREZFXFx1RkRGRlxcdUZFMUEtXFx1RkUxRlxcdUZFNTNcXHVGRTY3XFx1RkU2Qy1cXHVGRTZGXFx1RkU3NVxcdUZFRkRcXHVGRUZFXFx1RkYwMFxcdUZGQkYtXFx1RkZDMVxcdUZGQzhcXHVGRkM5XFx1RkZEMFxcdUZGRDFcXHVGRkQ4XFx1RkZEOVxcdUZGREQtXFx1RkZERlxcdUZGRTdcXHVGRkVGLVxcdUZGRjhcXHVGRkZFXFx1RkZGRicsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgwMFtcXHVEQzBDXFx1REMyN1xcdURDM0JcXHVEQzNFXFx1REM0RVxcdURDNEZcXHVEQzVFLVxcdURDN0ZcXHVEQ0ZCLVxcdURDRkZcXHVERDAzLVxcdUREMDZcXHVERDM0LVxcdUREMzZcXHVERDhGXFx1REQ5RC1cXHVERDlGXFx1RERBMS1cXHVERENGXFx1RERGRS1cXHVERTdGXFx1REU5RC1cXHVERTlGXFx1REVEMS1cXHVERURGXFx1REVGQy1cXHVERUZGXFx1REYyNC1cXHVERjJDXFx1REY0Qi1cXHVERjRGXFx1REY3Qi1cXHVERjdGXFx1REY5RVxcdURGQzQtXFx1REZDN1xcdURGRDYtXFx1REZGRl18XFx1RDgwMVtcXHVEQzlFXFx1REM5RlxcdURDQUEtXFx1RENBRlxcdURDRDQtXFx1RENEN1xcdURDRkMtXFx1RENGRlxcdUREMjgtXFx1REQyRlxcdURENjQtXFx1REQ2RVxcdURENzAtXFx1RERGRlxcdURGMzctXFx1REYzRlxcdURGNTYtXFx1REY1RlxcdURGNjgtXFx1REZGRl18XFx1RDgwMltcXHVEQzA2XFx1REMwN1xcdURDMDlcXHVEQzM2XFx1REMzOS1cXHVEQzNCXFx1REMzRFxcdURDM0VcXHVEQzU2XFx1REM5Ri1cXHVEQ0E2XFx1RENCMC1cXHVEQ0RGXFx1RENGM1xcdURDRjYtXFx1RENGQVxcdUREMUMtXFx1REQxRVxcdUREM0EtXFx1REQzRVxcdURENDAtXFx1REQ3RlxcdUREQjgtXFx1RERCQlxcdURERDBcXHVEREQxXFx1REUwNFxcdURFMDctXFx1REUwQlxcdURFMTRcXHVERTE4XFx1REUzNlxcdURFMzdcXHVERTNCLVxcdURFM0VcXHVERTQ5LVxcdURFNEZcXHVERTU5LVxcdURFNUZcXHVERUEwLVxcdURFQkZcXHVERUU3LVxcdURFRUFcXHVERUY3LVxcdURFRkZcXHVERjM2LVxcdURGMzhcXHVERjU2XFx1REY1N1xcdURGNzMtXFx1REY3N1xcdURGOTItXFx1REY5OFxcdURGOUQtXFx1REZBOFxcdURGQjAtXFx1REZGRl18XFx1RDgwM1tcXHVEQzQ5LVxcdURDN0ZcXHVEQ0IzLVxcdURDQkZcXHVEQ0YzLVxcdURDRjlcXHVERDI4LVxcdUREMkZcXHVERDNBLVxcdURFNUZcXHVERTdGXFx1REVBQVxcdURFQUVcXHVERUFGXFx1REVCMi1cXHVERUZGXFx1REYyOC1cXHVERjJGXFx1REY1QS1cXHVERkFGXFx1REZDQy1cXHVERkRGXFx1REZGNy1cXHVERkZGXXxcXHVEODA0W1xcdURDNEUtXFx1REM1MVxcdURDNzAtXFx1REM3RVxcdURDQzItXFx1RENDQ1xcdURDQ0VcXHVEQ0NGXFx1RENFOS1cXHVEQ0VGXFx1RENGQS1cXHVEQ0ZGXFx1REQzNVxcdURENDgtXFx1REQ0RlxcdURENzctXFx1REQ3RlxcdURERTBcXHVEREY1LVxcdURERkZcXHVERTEyXFx1REUzRi1cXHVERTdGXFx1REU4N1xcdURFODlcXHVERThFXFx1REU5RVxcdURFQUEtXFx1REVBRlxcdURFRUItXFx1REVFRlxcdURFRkEtXFx1REVGRlxcdURGMDRcXHVERjBEXFx1REYwRVxcdURGMTFcXHVERjEyXFx1REYyOVxcdURGMzFcXHVERjM0XFx1REYzQVxcdURGNDVcXHVERjQ2XFx1REY0OVxcdURGNEFcXHVERjRFXFx1REY0RlxcdURGNTEtXFx1REY1NlxcdURGNTgtXFx1REY1Q1xcdURGNjRcXHVERjY1XFx1REY2RC1cXHVERjZGXFx1REY3NS1cXHVERkZGXXxcXHVEODA1W1xcdURDNUNcXHVEQzYyLVxcdURDN0ZcXHVEQ0M4LVxcdURDQ0ZcXHVEQ0RBLVxcdUREN0ZcXHVEREI2XFx1RERCN1xcdUREREUtXFx1RERGRlxcdURFNDUtXFx1REU0RlxcdURFNUEtXFx1REU1RlxcdURFNkQtXFx1REU3RlxcdURFQjktXFx1REVCRlxcdURFQ0EtXFx1REVGRlxcdURGMUJcXHVERjFDXFx1REYyQy1cXHVERjJGXFx1REY0MC1cXHVERkZGXXxcXHVEODA2W1xcdURDM0MtXFx1REM5RlxcdURDRjMtXFx1RENGRVxcdUREMDdcXHVERDA4XFx1REQwQVxcdUREMEJcXHVERDE0XFx1REQxN1xcdUREMzZcXHVERDM5XFx1REQzQVxcdURENDctXFx1REQ0RlxcdURENUEtXFx1REQ5RlxcdUREQThcXHVEREE5XFx1REREOFxcdURERDlcXHVEREU1LVxcdURERkZcXHVERTQ4LVxcdURFNEZcXHVERUEzLVxcdURFQkZcXHVERUY5LVxcdURGRkZdfFxcdUQ4MDdbXFx1REMwOVxcdURDMzdcXHVEQzQ2LVxcdURDNEZcXHVEQzZELVxcdURDNkZcXHVEQzkwXFx1REM5MVxcdURDQThcXHVEQ0I3LVxcdURDRkZcXHVERDA3XFx1REQwQVxcdUREMzctXFx1REQzOVxcdUREM0JcXHVERDNFXFx1REQ0OC1cXHVERDRGXFx1REQ1QS1cXHVERDVGXFx1REQ2NlxcdURENjlcXHVERDhGXFx1REQ5MlxcdUREOTktXFx1REQ5RlxcdUREQUEtXFx1REVERlxcdURFRjktXFx1REZBRlxcdURGQjEtXFx1REZCRlxcdURGRjItXFx1REZGRV18XFx1RDgwOFtcXHVERjlBLVxcdURGRkZdfFxcdUQ4MDlbXFx1REM2RlxcdURDNzUtXFx1REM3RlxcdURENDQtXFx1REZGRl18W1xcdUQ4MEFcXHVEODBCXFx1RDgwRS1cXHVEODEwXFx1RDgxMi1cXHVEODE5XFx1RDgyNC1cXHVEODJCXFx1RDgyRFxcdUQ4MkVcXHVEODMwLVxcdUQ4MzNcXHVEODM3XFx1RDgzOVxcdUQ4M0ZcXHVEODdCLVxcdUQ4N0RcXHVEODdGXFx1RDg4NS1cXHVEQjNGXFx1REI0MS1cXHVEQjdGXVtcXHVEQzAwLVxcdURGRkZdfFxcdUQ4MERbXFx1REMyRlxcdURDMzktXFx1REZGRl18XFx1RDgxMVtcXHVERTQ3LVxcdURGRkZdfFxcdUQ4MUFbXFx1REUzOS1cXHVERTNGXFx1REU1RlxcdURFNkEtXFx1REU2RFxcdURFNzAtXFx1REVDRlxcdURFRUVcXHVERUVGXFx1REVGNi1cXHVERUZGXFx1REY0Ni1cXHVERjRGXFx1REY1QVxcdURGNjJcXHVERjc4LVxcdURGN0NcXHVERjkwLVxcdURGRkZdfFxcdUQ4MUJbXFx1REMwMC1cXHVERTNGXFx1REU5Qi1cXHVERUZGXFx1REY0Qi1cXHVERjRFXFx1REY4OC1cXHVERjhFXFx1REZBMC1cXHVERkRGXFx1REZFNS1cXHVERkVGXFx1REZGMi1cXHVERkZGXXxcXHVEODIxW1xcdURGRjgtXFx1REZGRl18XFx1RDgyM1tcXHVEQ0Q2LVxcdURDRkZcXHVERDA5LVxcdURGRkZdfFxcdUQ4MkNbXFx1REQxRi1cXHVERDRGXFx1REQ1My1cXHVERDYzXFx1REQ2OC1cXHVERDZGXFx1REVGQy1cXHVERkZGXXxcXHVEODJGW1xcdURDNkItXFx1REM2RlxcdURDN0QtXFx1REM3RlxcdURDODktXFx1REM4RlxcdURDOUFcXHVEQzlCXFx1RENBNC1cXHVERkZGXXxcXHVEODM0W1xcdURDRjYtXFx1RENGRlxcdUREMjdcXHVERDI4XFx1RERFOS1cXHVEREZGXFx1REU0Ni1cXHVERURGXFx1REVGNC1cXHVERUZGXFx1REY1Ny1cXHVERjVGXFx1REY3OS1cXHVERkZGXXxcXHVEODM1W1xcdURDNTVcXHVEQzlEXFx1RENBMFxcdURDQTFcXHVEQ0EzXFx1RENBNFxcdURDQTdcXHVEQ0E4XFx1RENBRFxcdURDQkFcXHVEQ0JDXFx1RENDNFxcdUREMDZcXHVERDBCXFx1REQwQ1xcdUREMTVcXHVERDFEXFx1REQzQVxcdUREM0ZcXHVERDQ1XFx1REQ0Ny1cXHVERDQ5XFx1REQ1MVxcdURFQTZcXHVERUE3XFx1REZDQ1xcdURGQ0RdfFxcdUQ4MzZbXFx1REU4Qy1cXHVERTlBXFx1REVBMFxcdURFQjAtXFx1REZGRl18XFx1RDgzOFtcXHVEQzA3XFx1REMxOVxcdURDMUFcXHVEQzIyXFx1REMyNVxcdURDMkItXFx1RENGRlxcdUREMkQtXFx1REQyRlxcdUREM0VcXHVERDNGXFx1REQ0QS1cXHVERDREXFx1REQ1MC1cXHVERUJGXFx1REVGQS1cXHVERUZFXFx1REYwMC1cXHVERkZGXXxcXHVEODNBW1xcdURDQzVcXHVEQ0M2XFx1RENENy1cXHVEQ0ZGXFx1REQ0Qy1cXHVERDRGXFx1REQ1QS1cXHVERDVEXFx1REQ2MC1cXHVERkZGXXxcXHVEODNCW1xcdURDMDAtXFx1REM3MFxcdURDQjUtXFx1REQwMFxcdUREM0UtXFx1RERGRlxcdURFMDRcXHVERTIwXFx1REUyM1xcdURFMjVcXHVERTI2XFx1REUyOFxcdURFMzNcXHVERTM4XFx1REUzQVxcdURFM0MtXFx1REU0MVxcdURFNDMtXFx1REU0NlxcdURFNDhcXHVERTRBXFx1REU0Q1xcdURFNTBcXHVERTUzXFx1REU1NVxcdURFNTZcXHVERTU4XFx1REU1QVxcdURFNUNcXHVERTVFXFx1REU2MFxcdURFNjNcXHVERTY1XFx1REU2NlxcdURFNkJcXHVERTczXFx1REU3OFxcdURFN0RcXHVERTdGXFx1REU4QVxcdURFOUMtXFx1REVBMFxcdURFQTRcXHVERUFBXFx1REVCQy1cXHVERUVGXFx1REVGMi1cXHVERkZGXXxcXHVEODNDW1xcdURDMkMtXFx1REMyRlxcdURDOTQtXFx1REM5RlxcdURDQUZcXHVEQ0IwXFx1RENDMFxcdURDRDBcXHVEQ0Y2LVxcdURDRkZcXHVEREFFLVxcdURERTVcXHVERTAzLVxcdURFMEZcXHVERTNDLVxcdURFM0ZcXHVERTQ5LVxcdURFNEZcXHVERTUyLVxcdURFNUZcXHVERTY2LVxcdURFRkZdfFxcdUQ4M0RbXFx1REVEOC1cXHVERURGXFx1REVFRC1cXHVERUVGXFx1REVGRC1cXHVERUZGXFx1REY3NC1cXHVERjdGXFx1REZEOS1cXHVERkRGXFx1REZFQy1cXHVERkZGXXxcXHVEODNFW1xcdURDMEMtXFx1REMwRlxcdURDNDgtXFx1REM0RlxcdURDNUEtXFx1REM1RlxcdURDODgtXFx1REM4RlxcdURDQUVcXHVEQ0FGXFx1RENCMi1cXHVEQ0ZGXFx1REQ3OVxcdUREQ0NcXHVERTU0LVxcdURFNUZcXHVERTZFXFx1REU2RlxcdURFNzUtXFx1REU3N1xcdURFN0ItXFx1REU3RlxcdURFODctXFx1REU4RlxcdURFQTktXFx1REVBRlxcdURFQjctXFx1REVCRlxcdURFQzMtXFx1REVDRlxcdURFRDctXFx1REVGRlxcdURGOTNcXHVERkNCLVxcdURGRUZcXHVERkZBLVxcdURGRkZdfFxcdUQ4NjlbXFx1REVERS1cXHVERUZGXXxcXHVEODZEW1xcdURGMzUtXFx1REYzRl18XFx1RDg2RVtcXHVEQzFFXFx1REMxRl18XFx1RDg3M1tcXHVERUEyLVxcdURFQUZdfFxcdUQ4N0FbXFx1REZFMS1cXHVERkZGXXxcXHVEODdFW1xcdURFMUUtXFx1REZGRl18XFx1RDg4NFtcXHVERjRCLVxcdURGRkZdfFxcdURCNDBbXFx1REMwMFxcdURDMDItXFx1REMxRlxcdURDODAtXFx1RENGRlxcdURERjAtXFx1REZGRl18W1xcdURCQkZcXHVEQkZGXVtcXHVERkZFXFx1REZGRl0nXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ0NvJyxcbiAgICAgICAgJ2FsaWFzJzogJ1ByaXZhdGVfVXNlJyxcbiAgICAgICAgJ2JtcCc6ICdcXHVFMDAwLVxcdUY4RkYnLFxuICAgICAgICAnYXN0cmFsJzogJ1tcXHVEQjgwLVxcdURCQkVcXHVEQkMwLVxcdURCRkVdW1xcdURDMDAtXFx1REZGRl18W1xcdURCQkZcXHVEQkZGXVtcXHVEQzAwLVxcdURGRkRdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdDcycsXG4gICAgICAgICdhbGlhcyc6ICdTdXJyb2dhdGUnLFxuICAgICAgICAnYm1wJzogJ1xcdUQ4MDAtXFx1REZGRidcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnTCcsXG4gICAgICAgICdhbGlhcyc6ICdMZXR0ZXInLFxuICAgICAgICAnYm1wJzogJ0EtWmEtelxceEFBXFx4QjVcXHhCQVxceEMwLVxceEQ2XFx4RDgtXFx4RjZcXHhGOC1cXHUwMkMxXFx1MDJDNi1cXHUwMkQxXFx1MDJFMC1cXHUwMkU0XFx1MDJFQ1xcdTAyRUVcXHUwMzcwLVxcdTAzNzRcXHUwMzc2XFx1MDM3N1xcdTAzN0EtXFx1MDM3RFxcdTAzN0ZcXHUwMzg2XFx1MDM4OC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDNBMVxcdTAzQTMtXFx1MDNGNVxcdTAzRjctXFx1MDQ4MVxcdTA0OEEtXFx1MDUyRlxcdTA1MzEtXFx1MDU1NlxcdTA1NTlcXHUwNTYwLVxcdTA1ODhcXHUwNUQwLVxcdTA1RUFcXHUwNUVGLVxcdTA1RjJcXHUwNjIwLVxcdTA2NEFcXHUwNjZFXFx1MDY2RlxcdTA2NzEtXFx1MDZEM1xcdTA2RDVcXHUwNkU1XFx1MDZFNlxcdTA2RUVcXHUwNkVGXFx1MDZGQS1cXHUwNkZDXFx1MDZGRlxcdTA3MTBcXHUwNzEyLVxcdTA3MkZcXHUwNzRELVxcdTA3QTVcXHUwN0IxXFx1MDdDQS1cXHUwN0VBXFx1MDdGNFxcdTA3RjVcXHUwN0ZBXFx1MDgwMC1cXHUwODE1XFx1MDgxQVxcdTA4MjRcXHUwODI4XFx1MDg0MC1cXHUwODU4XFx1MDg2MC1cXHUwODZBXFx1MDhBMC1cXHUwOEI0XFx1MDhCNi1cXHUwOEM3XFx1MDkwNC1cXHUwOTM5XFx1MDkzRFxcdTA5NTBcXHUwOTU4LVxcdTA5NjFcXHUwOTcxLVxcdTA5ODBcXHUwOTg1LVxcdTA5OENcXHUwOThGXFx1MDk5MFxcdTA5OTMtXFx1MDlBOFxcdTA5QUEtXFx1MDlCMFxcdTA5QjJcXHUwOUI2LVxcdTA5QjlcXHUwOUJEXFx1MDlDRVxcdTA5RENcXHUwOUREXFx1MDlERi1cXHUwOUUxXFx1MDlGMFxcdTA5RjFcXHUwOUZDXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTU5LVxcdTBBNUNcXHUwQTVFXFx1MEE3Mi1cXHUwQTc0XFx1MEE4NS1cXHUwQThEXFx1MEE4Ri1cXHUwQTkxXFx1MEE5My1cXHUwQUE4XFx1MEFBQS1cXHUwQUIwXFx1MEFCMlxcdTBBQjNcXHUwQUI1LVxcdTBBQjlcXHUwQUJEXFx1MEFEMFxcdTBBRTBcXHUwQUUxXFx1MEFGOVxcdTBCMDUtXFx1MEIwQ1xcdTBCMEZcXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM1LVxcdTBCMzlcXHUwQjNEXFx1MEI1Q1xcdTBCNURcXHUwQjVGLVxcdTBCNjFcXHUwQjcxXFx1MEI4M1xcdTBCODUtXFx1MEI4QVxcdTBCOEUtXFx1MEI5MFxcdTBCOTItXFx1MEI5NVxcdTBCOTlcXHUwQjlBXFx1MEI5Q1xcdTBCOUVcXHUwQjlGXFx1MEJBM1xcdTBCQTRcXHUwQkE4LVxcdTBCQUFcXHUwQkFFLVxcdTBCQjlcXHUwQkQwXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRFxcdTBDNTgtXFx1MEM1QVxcdTBDNjBcXHUwQzYxXFx1MEM4MFxcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkRcXHUwQ0RFXFx1MENFMFxcdTBDRTFcXHUwQ0YxXFx1MENGMlxcdTBEMDQtXFx1MEQwQ1xcdTBEMEUtXFx1MEQxMFxcdTBEMTItXFx1MEQzQVxcdTBEM0RcXHUwRDRFXFx1MEQ1NC1cXHUwRDU2XFx1MEQ1Ri1cXHUwRDYxXFx1MEQ3QS1cXHUwRDdGXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBFMDEtXFx1MEUzMFxcdTBFMzJcXHUwRTMzXFx1MEU0MC1cXHUwRTQ2XFx1MEU4MVxcdTBFODJcXHUwRTg0XFx1MEU4Ni1cXHUwRThBXFx1MEU4Qy1cXHUwRUEzXFx1MEVBNVxcdTBFQTctXFx1MEVCMFxcdTBFQjJcXHUwRUIzXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFQzZcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEY0MC1cXHUwRjQ3XFx1MEY0OS1cXHUwRjZDXFx1MEY4OC1cXHUwRjhDXFx1MTAwMC1cXHUxMDJBXFx1MTAzRlxcdTEwNTAtXFx1MTA1NVxcdTEwNUEtXFx1MTA1RFxcdTEwNjFcXHUxMDY1XFx1MTA2NlxcdTEwNkUtXFx1MTA3MFxcdTEwNzUtXFx1MTA4MVxcdTEwOEVcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEwRDAtXFx1MTBGQVxcdTEwRkMtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM4MC1cXHUxMzhGXFx1MTNBMC1cXHUxM0Y1XFx1MTNGOC1cXHUxM0ZEXFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZGMS1cXHUxNkY4XFx1MTcwMC1cXHUxNzBDXFx1MTcwRS1cXHUxNzExXFx1MTcyMC1cXHUxNzMxXFx1MTc0MC1cXHUxNzUxXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc4MC1cXHUxN0IzXFx1MTdEN1xcdTE3RENcXHUxODIwLVxcdTE4NzhcXHUxODgwLVxcdTE4ODRcXHUxODg3LVxcdTE4QThcXHUxOEFBXFx1MThCMC1cXHUxOEY1XFx1MTkwMC1cXHUxOTFFXFx1MTk1MC1cXHUxOTZEXFx1MTk3MC1cXHUxOTc0XFx1MTk4MC1cXHUxOUFCXFx1MTlCMC1cXHUxOUM5XFx1MUEwMC1cXHUxQTE2XFx1MUEyMC1cXHUxQTU0XFx1MUFBN1xcdTFCMDUtXFx1MUIzM1xcdTFCNDUtXFx1MUI0QlxcdTFCODMtXFx1MUJBMFxcdTFCQUVcXHUxQkFGXFx1MUJCQS1cXHUxQkU1XFx1MUMwMC1cXHUxQzIzXFx1MUM0RC1cXHUxQzRGXFx1MUM1QS1cXHUxQzdEXFx1MUM4MC1cXHUxQzg4XFx1MUM5MC1cXHUxQ0JBXFx1MUNCRC1cXHUxQ0JGXFx1MUNFOS1cXHUxQ0VDXFx1MUNFRS1cXHUxQ0YzXFx1MUNGNVxcdTFDRjZcXHUxQ0ZBXFx1MUQwMC1cXHUxREJGXFx1MUUwMC1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwNzFcXHUyMDdGXFx1MjA5MC1cXHUyMDlDXFx1MjEwMlxcdTIxMDdcXHUyMTBBLVxcdTIxMTNcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxODNcXHUyMTg0XFx1MkMwMC1cXHUyQzJFXFx1MkMzMC1cXHUyQzVFXFx1MkM2MC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0VFXFx1MkNGMlxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDgwLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUyRTJGXFx1MzAwNVxcdTMwMDZcXHUzMDMxLVxcdTMwMzVcXHUzMDNCXFx1MzAzQ1xcdTMwNDEtXFx1MzA5NlxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRlxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCRlxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCRlxcdTRFMDAtXFx1OUZGQ1xcdUEwMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYxRlxcdUE2MkFcXHVBNjJCXFx1QTY0MC1cXHVBNjZFXFx1QTY3Ri1cXHVBNjlEXFx1QTZBMC1cXHVBNkU1XFx1QTcxNy1cXHVBNzFGXFx1QTcyMi1cXHVBNzg4XFx1QTc4Qi1cXHVBN0JGXFx1QTdDMi1cXHVBN0NBXFx1QTdGNS1cXHVBODAxXFx1QTgwMy1cXHVBODA1XFx1QTgwNy1cXHVBODBBXFx1QTgwQy1cXHVBODIyXFx1QTg0MC1cXHVBODczXFx1QTg4Mi1cXHVBOEIzXFx1QThGMi1cXHVBOEY3XFx1QThGQlxcdUE4RkRcXHVBOEZFXFx1QTkwQS1cXHVBOTI1XFx1QTkzMC1cXHVBOTQ2XFx1QTk2MC1cXHVBOTdDXFx1QTk4NC1cXHVBOUIyXFx1QTlDRlxcdUE5RTAtXFx1QTlFNFxcdUE5RTYtXFx1QTlFRlxcdUE5RkEtXFx1QTlGRVxcdUFBMDAtXFx1QUEyOFxcdUFBNDAtXFx1QUE0MlxcdUFBNDQtXFx1QUE0QlxcdUFBNjAtXFx1QUE3NlxcdUFBN0FcXHVBQTdFLVxcdUFBQUZcXHVBQUIxXFx1QUFCNVxcdUFBQjZcXHVBQUI5LVxcdUFBQkRcXHVBQUMwXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFQVxcdUFBRjItXFx1QUFGNFxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2OVxcdUFCNzAtXFx1QUJFMlxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMURcXHVGQjFGLVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMjEtXFx1RkYzQVxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQycsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgwMFtcXHVEQzAwLVxcdURDMEJcXHVEQzBELVxcdURDMjZcXHVEQzI4LVxcdURDM0FcXHVEQzNDXFx1REMzRFxcdURDM0YtXFx1REM0RFxcdURDNTAtXFx1REM1RFxcdURDODAtXFx1RENGQVxcdURFODAtXFx1REU5Q1xcdURFQTAtXFx1REVEMFxcdURGMDAtXFx1REYxRlxcdURGMkQtXFx1REY0MFxcdURGNDItXFx1REY0OVxcdURGNTAtXFx1REY3NVxcdURGODAtXFx1REY5RFxcdURGQTAtXFx1REZDM1xcdURGQzgtXFx1REZDRl18XFx1RDgwMVtcXHVEQzAwLVxcdURDOURcXHVEQ0IwLVxcdURDRDNcXHVEQ0Q4LVxcdURDRkJcXHVERDAwLVxcdUREMjdcXHVERDMwLVxcdURENjNcXHVERTAwLVxcdURGMzZcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNjddfFxcdUQ4MDJbXFx1REMwMC1cXHVEQzA1XFx1REMwOFxcdURDMEEtXFx1REMzNVxcdURDMzdcXHVEQzM4XFx1REMzQ1xcdURDM0YtXFx1REM1NVxcdURDNjAtXFx1REM3NlxcdURDODAtXFx1REM5RVxcdURDRTAtXFx1RENGMlxcdURDRjRcXHVEQ0Y1XFx1REQwMC1cXHVERDE1XFx1REQyMC1cXHVERDM5XFx1REQ4MC1cXHVEREI3XFx1RERCRVxcdUREQkZcXHVERTAwXFx1REUxMC1cXHVERTEzXFx1REUxNS1cXHVERTE3XFx1REUxOS1cXHVERTM1XFx1REU2MC1cXHVERTdDXFx1REU4MC1cXHVERTlDXFx1REVDMC1cXHVERUM3XFx1REVDOS1cXHVERUU0XFx1REYwMC1cXHVERjM1XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjcyXFx1REY4MC1cXHVERjkxXXxcXHVEODAzW1xcdURDMDAtXFx1REM0OFxcdURDODAtXFx1RENCMlxcdURDQzAtXFx1RENGMlxcdUREMDAtXFx1REQyM1xcdURFODAtXFx1REVBOVxcdURFQjBcXHVERUIxXFx1REYwMC1cXHVERjFDXFx1REYyN1xcdURGMzAtXFx1REY0NVxcdURGQjAtXFx1REZDNFxcdURGRTAtXFx1REZGNl18XFx1RDgwNFtcXHVEQzAzLVxcdURDMzdcXHVEQzgzLVxcdURDQUZcXHVEQ0QwLVxcdURDRThcXHVERDAzLVxcdUREMjZcXHVERDQ0XFx1REQ0N1xcdURENTAtXFx1REQ3MlxcdURENzZcXHVERDgzLVxcdUREQjJcXHVEREMxLVxcdUREQzRcXHVERERBXFx1REREQ1xcdURFMDAtXFx1REUxMVxcdURFMTMtXFx1REUyQlxcdURFODAtXFx1REU4NlxcdURFODhcXHVERThBLVxcdURFOERcXHVERThGLVxcdURFOURcXHVERTlGLVxcdURFQThcXHVERUIwLVxcdURFREVcXHVERjA1LVxcdURGMENcXHVERjBGXFx1REYxMFxcdURGMTMtXFx1REYyOFxcdURGMkEtXFx1REYzMFxcdURGMzJcXHVERjMzXFx1REYzNS1cXHVERjM5XFx1REYzRFxcdURGNTBcXHVERjVELVxcdURGNjFdfFxcdUQ4MDVbXFx1REMwMC1cXHVEQzM0XFx1REM0Ny1cXHVEQzRBXFx1REM1Ri1cXHVEQzYxXFx1REM4MC1cXHVEQ0FGXFx1RENDNFxcdURDQzVcXHVEQ0M3XFx1REQ4MC1cXHVEREFFXFx1REREOC1cXHVERERCXFx1REUwMC1cXHVERTJGXFx1REU0NFxcdURFODAtXFx1REVBQVxcdURFQjhcXHVERjAwLVxcdURGMUFdfFxcdUQ4MDZbXFx1REMwMC1cXHVEQzJCXFx1RENBMC1cXHVEQ0RGXFx1RENGRi1cXHVERDA2XFx1REQwOVxcdUREMEMtXFx1REQxM1xcdUREMTVcXHVERDE2XFx1REQxOC1cXHVERDJGXFx1REQzRlxcdURENDFcXHVEREEwLVxcdUREQTdcXHVEREFBLVxcdURERDBcXHVEREUxXFx1RERFM1xcdURFMDBcXHVERTBCLVxcdURFMzJcXHVERTNBXFx1REU1MFxcdURFNUMtXFx1REU4OVxcdURFOURcXHVERUMwLVxcdURFRjhdfFxcdUQ4MDdbXFx1REMwMC1cXHVEQzA4XFx1REMwQS1cXHVEQzJFXFx1REM0MFxcdURDNzItXFx1REM4RlxcdUREMDAtXFx1REQwNlxcdUREMDhcXHVERDA5XFx1REQwQi1cXHVERDMwXFx1REQ0NlxcdURENjAtXFx1REQ2NVxcdURENjdcXHVERDY4XFx1REQ2QS1cXHVERDg5XFx1REQ5OFxcdURFRTAtXFx1REVGMlxcdURGQjBdfFxcdUQ4MDhbXFx1REMwMC1cXHVERjk5XXxcXHVEODA5W1xcdURDODAtXFx1REQ0M118W1xcdUQ4MENcXHVEODFDLVxcdUQ4MjBcXHVEODIyXFx1RDg0MC1cXHVEODY4XFx1RDg2QS1cXHVEODZDXFx1RDg2Ri1cXHVEODcyXFx1RDg3NC1cXHVEODc5XFx1RDg4MC1cXHVEODgzXVtcXHVEQzAwLVxcdURGRkZdfFxcdUQ4MERbXFx1REMwMC1cXHVEQzJFXXxcXHVEODExW1xcdURDMDAtXFx1REU0Nl18XFx1RDgxQVtcXHVEQzAwLVxcdURFMzhcXHVERTQwLVxcdURFNUVcXHVERUQwLVxcdURFRURcXHVERjAwLVxcdURGMkZcXHVERjQwLVxcdURGNDNcXHVERjYzLVxcdURGNzdcXHVERjdELVxcdURGOEZdfFxcdUQ4MUJbXFx1REU0MC1cXHVERTdGXFx1REYwMC1cXHVERjRBXFx1REY1MFxcdURGOTMtXFx1REY5RlxcdURGRTBcXHVERkUxXFx1REZFM118XFx1RDgyMVtcXHVEQzAwLVxcdURGRjddfFxcdUQ4MjNbXFx1REMwMC1cXHVEQ0Q1XFx1REQwMC1cXHVERDA4XXxcXHVEODJDW1xcdURDMDAtXFx1REQxRVxcdURENTAtXFx1REQ1MlxcdURENjQtXFx1REQ2N1xcdURENzAtXFx1REVGQl18XFx1RDgyRltcXHVEQzAwLVxcdURDNkFcXHVEQzcwLVxcdURDN0NcXHVEQzgwLVxcdURDODhcXHVEQzkwLVxcdURDOTldfFxcdUQ4MzVbXFx1REMwMC1cXHVEQzU0XFx1REM1Ni1cXHVEQzlDXFx1REM5RVxcdURDOUZcXHVEQ0EyXFx1RENBNVxcdURDQTZcXHVEQ0E5LVxcdURDQUNcXHVEQ0FFLVxcdURDQjlcXHVEQ0JCXFx1RENCRC1cXHVEQ0MzXFx1RENDNS1cXHVERDA1XFx1REQwNy1cXHVERDBBXFx1REQwRC1cXHVERDE0XFx1REQxNi1cXHVERDFDXFx1REQxRS1cXHVERDM5XFx1REQzQi1cXHVERDNFXFx1REQ0MC1cXHVERDQ0XFx1REQ0NlxcdURENEEtXFx1REQ1MFxcdURENTItXFx1REVBNVxcdURFQTgtXFx1REVDMFxcdURFQzItXFx1REVEQVxcdURFREMtXFx1REVGQVxcdURFRkMtXFx1REYxNFxcdURGMTYtXFx1REYzNFxcdURGMzYtXFx1REY0RVxcdURGNTAtXFx1REY2RVxcdURGNzAtXFx1REY4OFxcdURGOEEtXFx1REZBOFxcdURGQUEtXFx1REZDMlxcdURGQzQtXFx1REZDQl18XFx1RDgzOFtcXHVERDAwLVxcdUREMkNcXHVERDM3LVxcdUREM0RcXHVERDRFXFx1REVDMC1cXHVERUVCXXxcXHVEODNBW1xcdURDMDAtXFx1RENDNFxcdUREMDAtXFx1REQ0M1xcdURENEJdfFxcdUQ4M0JbXFx1REUwMC1cXHVERTAzXFx1REUwNS1cXHVERTFGXFx1REUyMVxcdURFMjJcXHVERTI0XFx1REUyN1xcdURFMjktXFx1REUzMlxcdURFMzQtXFx1REUzN1xcdURFMzlcXHVERTNCXFx1REU0MlxcdURFNDdcXHVERTQ5XFx1REU0QlxcdURFNEQtXFx1REU0RlxcdURFNTFcXHVERTUyXFx1REU1NFxcdURFNTdcXHVERTU5XFx1REU1QlxcdURFNURcXHVERTVGXFx1REU2MVxcdURFNjJcXHVERTY0XFx1REU2Ny1cXHVERTZBXFx1REU2Qy1cXHVERTcyXFx1REU3NC1cXHVERTc3XFx1REU3OS1cXHVERTdDXFx1REU3RVxcdURFODAtXFx1REU4OVxcdURFOEItXFx1REU5QlxcdURFQTEtXFx1REVBM1xcdURFQTUtXFx1REVBOVxcdURFQUItXFx1REVCQl18XFx1RDg2OVtcXHVEQzAwLVxcdURFRERcXHVERjAwLVxcdURGRkZdfFxcdUQ4NkRbXFx1REMwMC1cXHVERjM0XFx1REY0MC1cXHVERkZGXXxcXHVEODZFW1xcdURDMDAtXFx1REMxRFxcdURDMjAtXFx1REZGRl18XFx1RDg3M1tcXHVEQzAwLVxcdURFQTFcXHVERUIwLVxcdURGRkZdfFxcdUQ4N0FbXFx1REMwMC1cXHVERkUwXXxcXHVEODdFW1xcdURDMDAtXFx1REUxRF18XFx1RDg4NFtcXHVEQzAwLVxcdURGNEFdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdMQycsXG4gICAgICAgICdhbGlhcyc6ICdDYXNlZF9MZXR0ZXInLFxuICAgICAgICAnYm1wJzogJ0EtWmEtelxceEI1XFx4QzAtXFx4RDZcXHhEOC1cXHhGNlxceEY4LVxcdTAxQkFcXHUwMUJDLVxcdTAxQkZcXHUwMUM0LVxcdTAyOTNcXHUwMjk1LVxcdTAyQUZcXHUwMzcwLVxcdTAzNzNcXHUwMzc2XFx1MDM3N1xcdTAzN0ItXFx1MDM3RFxcdTAzN0ZcXHUwMzg2XFx1MDM4OC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDNBMVxcdTAzQTMtXFx1MDNGNVxcdTAzRjctXFx1MDQ4MVxcdTA0OEEtXFx1MDUyRlxcdTA1MzEtXFx1MDU1NlxcdTA1NjAtXFx1MDU4OFxcdTEwQTAtXFx1MTBDNVxcdTEwQzdcXHUxMENEXFx1MTBEMC1cXHUxMEZBXFx1MTBGRC1cXHUxMEZGXFx1MTNBMC1cXHUxM0Y1XFx1MTNGOC1cXHUxM0ZEXFx1MUM4MC1cXHUxQzg4XFx1MUM5MC1cXHUxQ0JBXFx1MUNCRC1cXHUxQ0JGXFx1MUQwMC1cXHUxRDJCXFx1MUQ2Qi1cXHUxRDc3XFx1MUQ3OS1cXHUxRDlBXFx1MUUwMC1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzNFxcdTIxMzlcXHUyMTNDLVxcdTIxM0ZcXHUyMTQ1LVxcdTIxNDlcXHUyMTRFXFx1MjE4M1xcdTIxODRcXHUyQzAwLVxcdTJDMkVcXHUyQzMwLVxcdTJDNUVcXHUyQzYwLVxcdTJDN0JcXHUyQzdFLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRUVcXHUyQ0YyXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1QTY0MC1cXHVBNjZEXFx1QTY4MC1cXHVBNjlCXFx1QTcyMi1cXHVBNzZGXFx1QTc3MS1cXHVBNzg3XFx1QTc4Qi1cXHVBNzhFXFx1QTc5MC1cXHVBN0JGXFx1QTdDMi1cXHVBN0NBXFx1QTdGNVxcdUE3RjZcXHVBN0ZBXFx1QUIzMC1cXHVBQjVBXFx1QUI2MC1cXHVBQjY4XFx1QUI3MC1cXHVBQkJGXFx1RkIwMC1cXHVGQjA2XFx1RkIxMy1cXHVGQjE3XFx1RkYyMS1cXHVGRjNBXFx1RkY0MS1cXHVGRjVBJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODAxW1xcdURDMDAtXFx1REM0RlxcdURDQjAtXFx1RENEM1xcdURDRDgtXFx1RENGQl18XFx1RDgwM1tcXHVEQzgwLVxcdURDQjJcXHVEQ0MwLVxcdURDRjJdfFxcdUQ4MDZbXFx1RENBMC1cXHVEQ0RGXXxcXHVEODFCW1xcdURFNDAtXFx1REU3Rl18XFx1RDgzNVtcXHVEQzAwLVxcdURDNTRcXHVEQzU2LVxcdURDOUNcXHVEQzlFXFx1REM5RlxcdURDQTJcXHVEQ0E1XFx1RENBNlxcdURDQTktXFx1RENBQ1xcdURDQUUtXFx1RENCOVxcdURDQkJcXHVEQ0JELVxcdURDQzNcXHVEQ0M1LVxcdUREMDVcXHVERDA3LVxcdUREMEFcXHVERDBELVxcdUREMTRcXHVERDE2LVxcdUREMUNcXHVERDFFLVxcdUREMzlcXHVERDNCLVxcdUREM0VcXHVERDQwLVxcdURENDRcXHVERDQ2XFx1REQ0QS1cXHVERDUwXFx1REQ1Mi1cXHVERUE1XFx1REVBOC1cXHVERUMwXFx1REVDMi1cXHVERURBXFx1REVEQy1cXHVERUZBXFx1REVGQy1cXHVERjE0XFx1REYxNi1cXHVERjM0XFx1REYzNi1cXHVERjRFXFx1REY1MC1cXHVERjZFXFx1REY3MC1cXHVERjg4XFx1REY4QS1cXHVERkE4XFx1REZBQS1cXHVERkMyXFx1REZDNC1cXHVERkNCXXxcXHVEODNBW1xcdUREMDAtXFx1REQ0M10nXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ0xsJyxcbiAgICAgICAgJ2FsaWFzJzogJ0xvd2VyY2FzZV9MZXR0ZXInLFxuICAgICAgICAnYm1wJzogJ2EtelxceEI1XFx4REYtXFx4RjZcXHhGOC1cXHhGRlxcdTAxMDFcXHUwMTAzXFx1MDEwNVxcdTAxMDdcXHUwMTA5XFx1MDEwQlxcdTAxMERcXHUwMTBGXFx1MDExMVxcdTAxMTNcXHUwMTE1XFx1MDExN1xcdTAxMTlcXHUwMTFCXFx1MDExRFxcdTAxMUZcXHUwMTIxXFx1MDEyM1xcdTAxMjVcXHUwMTI3XFx1MDEyOVxcdTAxMkJcXHUwMTJEXFx1MDEyRlxcdTAxMzFcXHUwMTMzXFx1MDEzNVxcdTAxMzdcXHUwMTM4XFx1MDEzQVxcdTAxM0NcXHUwMTNFXFx1MDE0MFxcdTAxNDJcXHUwMTQ0XFx1MDE0NlxcdTAxNDhcXHUwMTQ5XFx1MDE0QlxcdTAxNERcXHUwMTRGXFx1MDE1MVxcdTAxNTNcXHUwMTU1XFx1MDE1N1xcdTAxNTlcXHUwMTVCXFx1MDE1RFxcdTAxNUZcXHUwMTYxXFx1MDE2M1xcdTAxNjVcXHUwMTY3XFx1MDE2OVxcdTAxNkJcXHUwMTZEXFx1MDE2RlxcdTAxNzFcXHUwMTczXFx1MDE3NVxcdTAxNzdcXHUwMTdBXFx1MDE3Q1xcdTAxN0UtXFx1MDE4MFxcdTAxODNcXHUwMTg1XFx1MDE4OFxcdTAxOENcXHUwMThEXFx1MDE5MlxcdTAxOTVcXHUwMTk5LVxcdTAxOUJcXHUwMTlFXFx1MDFBMVxcdTAxQTNcXHUwMUE1XFx1MDFBOFxcdTAxQUFcXHUwMUFCXFx1MDFBRFxcdTAxQjBcXHUwMUI0XFx1MDFCNlxcdTAxQjlcXHUwMUJBXFx1MDFCRC1cXHUwMUJGXFx1MDFDNlxcdTAxQzlcXHUwMUNDXFx1MDFDRVxcdTAxRDBcXHUwMUQyXFx1MDFENFxcdTAxRDZcXHUwMUQ4XFx1MDFEQVxcdTAxRENcXHUwMUREXFx1MDFERlxcdTAxRTFcXHUwMUUzXFx1MDFFNVxcdTAxRTdcXHUwMUU5XFx1MDFFQlxcdTAxRURcXHUwMUVGXFx1MDFGMFxcdTAxRjNcXHUwMUY1XFx1MDFGOVxcdTAxRkJcXHUwMUZEXFx1MDFGRlxcdTAyMDFcXHUwMjAzXFx1MDIwNVxcdTAyMDdcXHUwMjA5XFx1MDIwQlxcdTAyMERcXHUwMjBGXFx1MDIxMVxcdTAyMTNcXHUwMjE1XFx1MDIxN1xcdTAyMTlcXHUwMjFCXFx1MDIxRFxcdTAyMUZcXHUwMjIxXFx1MDIyM1xcdTAyMjVcXHUwMjI3XFx1MDIyOVxcdTAyMkJcXHUwMjJEXFx1MDIyRlxcdTAyMzFcXHUwMjMzLVxcdTAyMzlcXHUwMjNDXFx1MDIzRlxcdTAyNDBcXHUwMjQyXFx1MDI0N1xcdTAyNDlcXHUwMjRCXFx1MDI0RFxcdTAyNEYtXFx1MDI5M1xcdTAyOTUtXFx1MDJBRlxcdTAzNzFcXHUwMzczXFx1MDM3N1xcdTAzN0ItXFx1MDM3RFxcdTAzOTBcXHUwM0FDLVxcdTAzQ0VcXHUwM0QwXFx1MDNEMVxcdTAzRDUtXFx1MDNEN1xcdTAzRDlcXHUwM0RCXFx1MDNERFxcdTAzREZcXHUwM0UxXFx1MDNFM1xcdTAzRTVcXHUwM0U3XFx1MDNFOVxcdTAzRUJcXHUwM0VEXFx1MDNFRi1cXHUwM0YzXFx1MDNGNVxcdTAzRjhcXHUwM0ZCXFx1MDNGQ1xcdTA0MzAtXFx1MDQ1RlxcdTA0NjFcXHUwNDYzXFx1MDQ2NVxcdTA0NjdcXHUwNDY5XFx1MDQ2QlxcdTA0NkRcXHUwNDZGXFx1MDQ3MVxcdTA0NzNcXHUwNDc1XFx1MDQ3N1xcdTA0NzlcXHUwNDdCXFx1MDQ3RFxcdTA0N0ZcXHUwNDgxXFx1MDQ4QlxcdTA0OERcXHUwNDhGXFx1MDQ5MVxcdTA0OTNcXHUwNDk1XFx1MDQ5N1xcdTA0OTlcXHUwNDlCXFx1MDQ5RFxcdTA0OUZcXHUwNEExXFx1MDRBM1xcdTA0QTVcXHUwNEE3XFx1MDRBOVxcdTA0QUJcXHUwNEFEXFx1MDRBRlxcdTA0QjFcXHUwNEIzXFx1MDRCNVxcdTA0QjdcXHUwNEI5XFx1MDRCQlxcdTA0QkRcXHUwNEJGXFx1MDRDMlxcdTA0QzRcXHUwNEM2XFx1MDRDOFxcdTA0Q0FcXHUwNENDXFx1MDRDRVxcdTA0Q0ZcXHUwNEQxXFx1MDREM1xcdTA0RDVcXHUwNEQ3XFx1MDREOVxcdTA0REJcXHUwNEREXFx1MDRERlxcdTA0RTFcXHUwNEUzXFx1MDRFNVxcdTA0RTdcXHUwNEU5XFx1MDRFQlxcdTA0RURcXHUwNEVGXFx1MDRGMVxcdTA0RjNcXHUwNEY1XFx1MDRGN1xcdTA0RjlcXHUwNEZCXFx1MDRGRFxcdTA0RkZcXHUwNTAxXFx1MDUwM1xcdTA1MDVcXHUwNTA3XFx1MDUwOVxcdTA1MEJcXHUwNTBEXFx1MDUwRlxcdTA1MTFcXHUwNTEzXFx1MDUxNVxcdTA1MTdcXHUwNTE5XFx1MDUxQlxcdTA1MURcXHUwNTFGXFx1MDUyMVxcdTA1MjNcXHUwNTI1XFx1MDUyN1xcdTA1MjlcXHUwNTJCXFx1MDUyRFxcdTA1MkZcXHUwNTYwLVxcdTA1ODhcXHUxMEQwLVxcdTEwRkFcXHUxMEZELVxcdTEwRkZcXHUxM0Y4LVxcdTEzRkRcXHUxQzgwLVxcdTFDODhcXHUxRDAwLVxcdTFEMkJcXHUxRDZCLVxcdTFENzdcXHUxRDc5LVxcdTFEOUFcXHUxRTAxXFx1MUUwM1xcdTFFMDVcXHUxRTA3XFx1MUUwOVxcdTFFMEJcXHUxRTBEXFx1MUUwRlxcdTFFMTFcXHUxRTEzXFx1MUUxNVxcdTFFMTdcXHUxRTE5XFx1MUUxQlxcdTFFMURcXHUxRTFGXFx1MUUyMVxcdTFFMjNcXHUxRTI1XFx1MUUyN1xcdTFFMjlcXHUxRTJCXFx1MUUyRFxcdTFFMkZcXHUxRTMxXFx1MUUzM1xcdTFFMzVcXHUxRTM3XFx1MUUzOVxcdTFFM0JcXHUxRTNEXFx1MUUzRlxcdTFFNDFcXHUxRTQzXFx1MUU0NVxcdTFFNDdcXHUxRTQ5XFx1MUU0QlxcdTFFNERcXHUxRTRGXFx1MUU1MVxcdTFFNTNcXHUxRTU1XFx1MUU1N1xcdTFFNTlcXHUxRTVCXFx1MUU1RFxcdTFFNUZcXHUxRTYxXFx1MUU2M1xcdTFFNjVcXHUxRTY3XFx1MUU2OVxcdTFFNkJcXHUxRTZEXFx1MUU2RlxcdTFFNzFcXHUxRTczXFx1MUU3NVxcdTFFNzdcXHUxRTc5XFx1MUU3QlxcdTFFN0RcXHUxRTdGXFx1MUU4MVxcdTFFODNcXHUxRTg1XFx1MUU4N1xcdTFFODlcXHUxRThCXFx1MUU4RFxcdTFFOEZcXHUxRTkxXFx1MUU5M1xcdTFFOTUtXFx1MUU5RFxcdTFFOUZcXHUxRUExXFx1MUVBM1xcdTFFQTVcXHUxRUE3XFx1MUVBOVxcdTFFQUJcXHUxRUFEXFx1MUVBRlxcdTFFQjFcXHUxRUIzXFx1MUVCNVxcdTFFQjdcXHUxRUI5XFx1MUVCQlxcdTFFQkRcXHUxRUJGXFx1MUVDMVxcdTFFQzNcXHUxRUM1XFx1MUVDN1xcdTFFQzlcXHUxRUNCXFx1MUVDRFxcdTFFQ0ZcXHUxRUQxXFx1MUVEM1xcdTFFRDVcXHUxRUQ3XFx1MUVEOVxcdTFFREJcXHUxRUREXFx1MUVERlxcdTFFRTFcXHUxRUUzXFx1MUVFNVxcdTFFRTdcXHUxRUU5XFx1MUVFQlxcdTFFRURcXHUxRUVGXFx1MUVGMVxcdTFFRjNcXHUxRUY1XFx1MUVGN1xcdTFFRjlcXHUxRUZCXFx1MUVGRFxcdTFFRkYtXFx1MUYwN1xcdTFGMTAtXFx1MUYxNVxcdTFGMjAtXFx1MUYyN1xcdTFGMzAtXFx1MUYzN1xcdTFGNDAtXFx1MUY0NVxcdTFGNTAtXFx1MUY1N1xcdTFGNjAtXFx1MUY2N1xcdTFGNzAtXFx1MUY3RFxcdTFGODAtXFx1MUY4N1xcdTFGOTAtXFx1MUY5N1xcdTFGQTAtXFx1MUZBN1xcdTFGQjAtXFx1MUZCNFxcdTFGQjZcXHUxRkI3XFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzZcXHUxRkM3XFx1MUZEMC1cXHUxRkQzXFx1MUZENlxcdTFGRDdcXHUxRkUwLVxcdTFGRTdcXHUxRkYyLVxcdTFGRjRcXHUxRkY2XFx1MUZGN1xcdTIxMEFcXHUyMTBFXFx1MjEwRlxcdTIxMTNcXHUyMTJGXFx1MjEzNFxcdTIxMzlcXHUyMTNDXFx1MjEzRFxcdTIxNDYtXFx1MjE0OVxcdTIxNEVcXHUyMTg0XFx1MkMzMC1cXHUyQzVFXFx1MkM2MVxcdTJDNjVcXHUyQzY2XFx1MkM2OFxcdTJDNkFcXHUyQzZDXFx1MkM3MVxcdTJDNzNcXHUyQzc0XFx1MkM3Ni1cXHUyQzdCXFx1MkM4MVxcdTJDODNcXHUyQzg1XFx1MkM4N1xcdTJDODlcXHUyQzhCXFx1MkM4RFxcdTJDOEZcXHUyQzkxXFx1MkM5M1xcdTJDOTVcXHUyQzk3XFx1MkM5OVxcdTJDOUJcXHUyQzlEXFx1MkM5RlxcdTJDQTFcXHUyQ0EzXFx1MkNBNVxcdTJDQTdcXHUyQ0E5XFx1MkNBQlxcdTJDQURcXHUyQ0FGXFx1MkNCMVxcdTJDQjNcXHUyQ0I1XFx1MkNCN1xcdTJDQjlcXHUyQ0JCXFx1MkNCRFxcdTJDQkZcXHUyQ0MxXFx1MkNDM1xcdTJDQzVcXHUyQ0M3XFx1MkNDOVxcdTJDQ0JcXHUyQ0NEXFx1MkNDRlxcdTJDRDFcXHUyQ0QzXFx1MkNENVxcdTJDRDdcXHUyQ0Q5XFx1MkNEQlxcdTJDRERcXHUyQ0RGXFx1MkNFMVxcdTJDRTNcXHUyQ0U0XFx1MkNFQ1xcdTJDRUVcXHUyQ0YzXFx1MkQwMC1cXHUyRDI1XFx1MkQyN1xcdTJEMkRcXHVBNjQxXFx1QTY0M1xcdUE2NDVcXHVBNjQ3XFx1QTY0OVxcdUE2NEJcXHVBNjREXFx1QTY0RlxcdUE2NTFcXHVBNjUzXFx1QTY1NVxcdUE2NTdcXHVBNjU5XFx1QTY1QlxcdUE2NURcXHVBNjVGXFx1QTY2MVxcdUE2NjNcXHVBNjY1XFx1QTY2N1xcdUE2NjlcXHVBNjZCXFx1QTY2RFxcdUE2ODFcXHVBNjgzXFx1QTY4NVxcdUE2ODdcXHVBNjg5XFx1QTY4QlxcdUE2OERcXHVBNjhGXFx1QTY5MVxcdUE2OTNcXHVBNjk1XFx1QTY5N1xcdUE2OTlcXHVBNjlCXFx1QTcyM1xcdUE3MjVcXHVBNzI3XFx1QTcyOVxcdUE3MkJcXHVBNzJEXFx1QTcyRi1cXHVBNzMxXFx1QTczM1xcdUE3MzVcXHVBNzM3XFx1QTczOVxcdUE3M0JcXHVBNzNEXFx1QTczRlxcdUE3NDFcXHVBNzQzXFx1QTc0NVxcdUE3NDdcXHVBNzQ5XFx1QTc0QlxcdUE3NERcXHVBNzRGXFx1QTc1MVxcdUE3NTNcXHVBNzU1XFx1QTc1N1xcdUE3NTlcXHVBNzVCXFx1QTc1RFxcdUE3NUZcXHVBNzYxXFx1QTc2M1xcdUE3NjVcXHVBNzY3XFx1QTc2OVxcdUE3NkJcXHVBNzZEXFx1QTc2RlxcdUE3NzEtXFx1QTc3OFxcdUE3N0FcXHVBNzdDXFx1QTc3RlxcdUE3ODFcXHVBNzgzXFx1QTc4NVxcdUE3ODdcXHVBNzhDXFx1QTc4RVxcdUE3OTFcXHVBNzkzLVxcdUE3OTVcXHVBNzk3XFx1QTc5OVxcdUE3OUJcXHVBNzlEXFx1QTc5RlxcdUE3QTFcXHVBN0EzXFx1QTdBNVxcdUE3QTdcXHVBN0E5XFx1QTdBRlxcdUE3QjVcXHVBN0I3XFx1QTdCOVxcdUE3QkJcXHVBN0JEXFx1QTdCRlxcdUE3QzNcXHVBN0M4XFx1QTdDQVxcdUE3RjZcXHVBN0ZBXFx1QUIzMC1cXHVBQjVBXFx1QUI2MC1cXHVBQjY4XFx1QUI3MC1cXHVBQkJGXFx1RkIwMC1cXHVGQjA2XFx1RkIxMy1cXHVGQjE3XFx1RkY0MS1cXHVGRjVBJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODAxW1xcdURDMjgtXFx1REM0RlxcdURDRDgtXFx1RENGQl18XFx1RDgwM1tcXHVEQ0MwLVxcdURDRjJdfFxcdUQ4MDZbXFx1RENDMC1cXHVEQ0RGXXxcXHVEODFCW1xcdURFNjAtXFx1REU3Rl18XFx1RDgzNVtcXHVEQzFBLVxcdURDMzNcXHVEQzRFLVxcdURDNTRcXHVEQzU2LVxcdURDNjdcXHVEQzgyLVxcdURDOUJcXHVEQ0I2LVxcdURDQjlcXHVEQ0JCXFx1RENCRC1cXHVEQ0MzXFx1RENDNS1cXHVEQ0NGXFx1RENFQS1cXHVERDAzXFx1REQxRS1cXHVERDM3XFx1REQ1Mi1cXHVERDZCXFx1REQ4Ni1cXHVERDlGXFx1RERCQS1cXHVEREQzXFx1RERFRS1cXHVERTA3XFx1REUyMi1cXHVERTNCXFx1REU1Ni1cXHVERTZGXFx1REU4QS1cXHVERUE1XFx1REVDMi1cXHVERURBXFx1REVEQy1cXHVERUUxXFx1REVGQy1cXHVERjE0XFx1REYxNi1cXHVERjFCXFx1REYzNi1cXHVERjRFXFx1REY1MC1cXHVERjU1XFx1REY3MC1cXHVERjg4XFx1REY4QS1cXHVERjhGXFx1REZBQS1cXHVERkMyXFx1REZDNC1cXHVERkM5XFx1REZDQl18XFx1RDgzQVtcXHVERDIyLVxcdURENDNdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdMbScsXG4gICAgICAgICdhbGlhcyc6ICdNb2RpZmllcl9MZXR0ZXInLFxuICAgICAgICAnYm1wJzogJ1xcdTAyQjAtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDM3NFxcdTAzN0FcXHUwNTU5XFx1MDY0MFxcdTA2RTVcXHUwNkU2XFx1MDdGNFxcdTA3RjVcXHUwN0ZBXFx1MDgxQVxcdTA4MjRcXHUwODI4XFx1MDk3MVxcdTBFNDZcXHUwRUM2XFx1MTBGQ1xcdTE3RDdcXHUxODQzXFx1MUFBN1xcdTFDNzgtXFx1MUM3RFxcdTFEMkMtXFx1MUQ2QVxcdTFENzhcXHUxRDlCLVxcdTFEQkZcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTJDN0NcXHUyQzdEXFx1MkQ2RlxcdTJFMkZcXHUzMDA1XFx1MzAzMS1cXHUzMDM1XFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBGQy1cXHUzMEZFXFx1QTAxNVxcdUE0RjgtXFx1QTRGRFxcdUE2MENcXHVBNjdGXFx1QTY5Q1xcdUE2OURcXHVBNzE3LVxcdUE3MUZcXHVBNzcwXFx1QTc4OFxcdUE3RjhcXHVBN0Y5XFx1QTlDRlxcdUE5RTZcXHVBQTcwXFx1QUFERFxcdUFBRjNcXHVBQUY0XFx1QUI1Qy1cXHVBQjVGXFx1QUI2OVxcdUZGNzBcXHVGRjlFXFx1RkY5RicsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgxQVtcXHVERjQwLVxcdURGNDNdfFxcdUQ4MUJbXFx1REY5My1cXHVERjlGXFx1REZFMFxcdURGRTFcXHVERkUzXXxcXHVEODM4W1xcdUREMzctXFx1REQzRF18XFx1RDgzQVxcdURENEInXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ0xvJyxcbiAgICAgICAgJ2FsaWFzJzogJ090aGVyX0xldHRlcicsXG4gICAgICAgICdibXAnOiAnXFx4QUFcXHhCQVxcdTAxQkJcXHUwMUMwLVxcdTAxQzNcXHUwMjk0XFx1MDVEMC1cXHUwNUVBXFx1MDVFRi1cXHUwNUYyXFx1MDYyMC1cXHUwNjNGXFx1MDY0MS1cXHUwNjRBXFx1MDY2RVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFRVxcdTA2RUZcXHUwNkZBLVxcdTA2RkNcXHUwNkZGXFx1MDcxMFxcdTA3MTItXFx1MDcyRlxcdTA3NEQtXFx1MDdBNVxcdTA3QjFcXHUwN0NBLVxcdTA3RUFcXHUwODAwLVxcdTA4MTVcXHUwODQwLVxcdTA4NThcXHUwODYwLVxcdTA4NkFcXHUwOEEwLVxcdTA4QjRcXHUwOEI2LVxcdTA4QzdcXHUwOTA0LVxcdTA5MzlcXHUwOTNEXFx1MDk1MFxcdTA5NTgtXFx1MDk2MVxcdTA5NzItXFx1MDk4MFxcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkRcXHUwOUNFXFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTFcXHUwOUYwXFx1MDlGMVxcdTA5RkNcXHUwQTA1LVxcdTBBMEFcXHUwQTBGXFx1MEExMFxcdTBBMTMtXFx1MEEyOFxcdTBBMkEtXFx1MEEzMFxcdTBBMzJcXHUwQTMzXFx1MEEzNVxcdTBBMzZcXHUwQTM4XFx1MEEzOVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTcyLVxcdTBBNzRcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkRcXHUwQUQwXFx1MEFFMFxcdTBBRTFcXHUwQUY5XFx1MEIwNS1cXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzLVxcdTBCMjhcXHUwQjJBLVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0RcXHUwQjVDXFx1MEI1RFxcdTBCNUYtXFx1MEI2MVxcdTBCNzFcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCRDBcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNEXFx1MEM1OC1cXHUwQzVBXFx1MEM2MFxcdTBDNjFcXHUwQzgwXFx1MEM4NS1cXHUwQzhDXFx1MEM4RS1cXHUwQzkwXFx1MEM5Mi1cXHUwQ0E4XFx1MENBQS1cXHUwQ0IzXFx1MENCNS1cXHUwQ0I5XFx1MENCRFxcdTBDREVcXHUwQ0UwXFx1MENFMVxcdTBDRjFcXHUwQ0YyXFx1MEQwNC1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDNBXFx1MEQzRFxcdTBENEVcXHUwRDU0LVxcdTBENTZcXHUwRDVGLVxcdTBENjFcXHUwRDdBLVxcdTBEN0ZcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MEUwMS1cXHUwRTMwXFx1MEUzMlxcdTBFMzNcXHUwRTQwLVxcdTBFNDVcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg2LVxcdTBFOEFcXHUwRThDLVxcdTBFQTNcXHUwRUE1XFx1MEVBNy1cXHUwRUIwXFx1MEVCMlxcdTBFQjNcXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQVxcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFcXHUxMDhFXFx1MTEwMC1cXHUxMjQ4XFx1MTI0QS1cXHUxMjREXFx1MTI1MC1cXHUxMjU2XFx1MTI1OFxcdTEyNUEtXFx1MTI1RFxcdTEyNjAtXFx1MTI4OFxcdTEyOEEtXFx1MTI4RFxcdTEyOTAtXFx1MTJCMFxcdTEyQjItXFx1MTJCNVxcdTEyQjgtXFx1MTJCRVxcdTEyQzBcXHUxMkMyLVxcdTEyQzVcXHUxMkM4LVxcdTEyRDZcXHUxMkQ4LVxcdTEzMTBcXHUxMzEyLVxcdTEzMTVcXHUxMzE4LVxcdTEzNUFcXHUxMzgwLVxcdTEzOEZcXHUxNDAxLVxcdTE2NkNcXHUxNjZGLVxcdTE2N0ZcXHUxNjgxLVxcdTE2OUFcXHUxNkEwLVxcdTE2RUFcXHUxNkYxLVxcdTE2RjhcXHUxNzAwLVxcdTE3MENcXHUxNzBFLVxcdTE3MTFcXHUxNzIwLVxcdTE3MzFcXHUxNzQwLVxcdTE3NTFcXHUxNzYwLVxcdTE3NkNcXHUxNzZFLVxcdTE3NzBcXHUxNzgwLVxcdTE3QjNcXHUxN0RDXFx1MTgyMC1cXHUxODQyXFx1MTg0NC1cXHUxODc4XFx1MTg4MC1cXHUxODg0XFx1MTg4Ny1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTFBMDAtXFx1MUExNlxcdTFBMjAtXFx1MUE1NFxcdTFCMDUtXFx1MUIzM1xcdTFCNDUtXFx1MUI0QlxcdTFCODMtXFx1MUJBMFxcdTFCQUVcXHUxQkFGXFx1MUJCQS1cXHUxQkU1XFx1MUMwMC1cXHUxQzIzXFx1MUM0RC1cXHUxQzRGXFx1MUM1QS1cXHUxQzc3XFx1MUNFOS1cXHUxQ0VDXFx1MUNFRS1cXHUxQ0YzXFx1MUNGNVxcdTFDRjZcXHUxQ0ZBXFx1MjEzNS1cXHUyMTM4XFx1MkQzMC1cXHUyRDY3XFx1MkQ4MC1cXHUyRDk2XFx1MkRBMC1cXHUyREE2XFx1MkRBOC1cXHUyREFFXFx1MkRCMC1cXHUyREI2XFx1MkRCOC1cXHUyREJFXFx1MkRDMC1cXHUyREM2XFx1MkRDOC1cXHUyRENFXFx1MkREMC1cXHUyREQ2XFx1MkREOC1cXHUyRERFXFx1MzAwNlxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDlGXFx1MzBBMS1cXHUzMEZBXFx1MzBGRlxcdTMxMDUtXFx1MzEyRlxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCRlxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCRlxcdTRFMDAtXFx1OUZGQ1xcdUEwMDAtXFx1QTAxNFxcdUEwMTYtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGN1xcdUE1MDAtXFx1QTYwQlxcdUE2MTAtXFx1QTYxRlxcdUE2MkFcXHVBNjJCXFx1QTY2RVxcdUE2QTAtXFx1QTZFNVxcdUE3OEZcXHVBN0Y3XFx1QTdGQi1cXHVBODAxXFx1QTgwMy1cXHVBODA1XFx1QTgwNy1cXHVBODBBXFx1QTgwQy1cXHVBODIyXFx1QTg0MC1cXHVBODczXFx1QTg4Mi1cXHVBOEIzXFx1QThGMi1cXHVBOEY3XFx1QThGQlxcdUE4RkRcXHVBOEZFXFx1QTkwQS1cXHVBOTI1XFx1QTkzMC1cXHVBOTQ2XFx1QTk2MC1cXHVBOTdDXFx1QTk4NC1cXHVBOUIyXFx1QTlFMC1cXHVBOUU0XFx1QTlFNy1cXHVBOUVGXFx1QTlGQS1cXHVBOUZFXFx1QUEwMC1cXHVBQTI4XFx1QUE0MC1cXHVBQTQyXFx1QUE0NC1cXHVBQTRCXFx1QUE2MC1cXHVBQTZGXFx1QUE3MS1cXHVBQTc2XFx1QUE3QVxcdUFBN0UtXFx1QUFBRlxcdUFBQjFcXHVBQUI1XFx1QUFCNlxcdUFBQjktXFx1QUFCRFxcdUFBQzBcXHVBQUMyXFx1QUFEQlxcdUFBRENcXHVBQUUwLVxcdUFBRUFcXHVBQUYyXFx1QUIwMS1cXHVBQjA2XFx1QUIwOS1cXHVBQjBFXFx1QUIxMS1cXHVBQjE2XFx1QUIyMC1cXHVBQjI2XFx1QUIyOC1cXHVBQjJFXFx1QUJDMC1cXHVBQkUyXFx1QUMwMC1cXHVEN0EzXFx1RDdCMC1cXHVEN0M2XFx1RDdDQi1cXHVEN0ZCXFx1RjkwMC1cXHVGQTZEXFx1RkE3MC1cXHVGQUQ5XFx1RkIxRFxcdUZCMUYtXFx1RkIyOFxcdUZCMkEtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0VcXHVGQjQwXFx1RkI0MVxcdUZCNDNcXHVGQjQ0XFx1RkI0Ni1cXHVGQkIxXFx1RkJEMy1cXHVGRDNEXFx1RkQ1MC1cXHVGRDhGXFx1RkQ5Mi1cXHVGREM3XFx1RkRGMC1cXHVGREZCXFx1RkU3MC1cXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkY2Ni1cXHVGRjZGXFx1RkY3MS1cXHVGRjlEXFx1RkZBMC1cXHVGRkJFXFx1RkZDMi1cXHVGRkM3XFx1RkZDQS1cXHVGRkNGXFx1RkZEMi1cXHVGRkQ3XFx1RkZEQS1cXHVGRkRDJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODAwW1xcdURDMDAtXFx1REMwQlxcdURDMEQtXFx1REMyNlxcdURDMjgtXFx1REMzQVxcdURDM0NcXHVEQzNEXFx1REMzRi1cXHVEQzREXFx1REM1MC1cXHVEQzVEXFx1REM4MC1cXHVEQ0ZBXFx1REU4MC1cXHVERTlDXFx1REVBMC1cXHVERUQwXFx1REYwMC1cXHVERjFGXFx1REYyRC1cXHVERjQwXFx1REY0Mi1cXHVERjQ5XFx1REY1MC1cXHVERjc1XFx1REY4MC1cXHVERjlEXFx1REZBMC1cXHVERkMzXFx1REZDOC1cXHVERkNGXXxcXHVEODAxW1xcdURDNTAtXFx1REM5RFxcdUREMDAtXFx1REQyN1xcdUREMzAtXFx1REQ2M1xcdURFMDAtXFx1REYzNlxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY2N118XFx1RDgwMltcXHVEQzAwLVxcdURDMDVcXHVEQzA4XFx1REMwQS1cXHVEQzM1XFx1REMzN1xcdURDMzhcXHVEQzNDXFx1REMzRi1cXHVEQzU1XFx1REM2MC1cXHVEQzc2XFx1REM4MC1cXHVEQzlFXFx1RENFMC1cXHVEQ0YyXFx1RENGNFxcdURDRjVcXHVERDAwLVxcdUREMTVcXHVERDIwLVxcdUREMzlcXHVERDgwLVxcdUREQjdcXHVEREJFXFx1RERCRlxcdURFMDBcXHVERTEwLVxcdURFMTNcXHVERTE1LVxcdURFMTdcXHVERTE5LVxcdURFMzVcXHVERTYwLVxcdURFN0NcXHVERTgwLVxcdURFOUNcXHVERUMwLVxcdURFQzdcXHVERUM5LVxcdURFRTRcXHVERjAwLVxcdURGMzVcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNzJcXHVERjgwLVxcdURGOTFdfFxcdUQ4MDNbXFx1REMwMC1cXHVEQzQ4XFx1REQwMC1cXHVERDIzXFx1REU4MC1cXHVERUE5XFx1REVCMFxcdURFQjFcXHVERjAwLVxcdURGMUNcXHVERjI3XFx1REYzMC1cXHVERjQ1XFx1REZCMC1cXHVERkM0XFx1REZFMC1cXHVERkY2XXxcXHVEODA0W1xcdURDMDMtXFx1REMzN1xcdURDODMtXFx1RENBRlxcdURDRDAtXFx1RENFOFxcdUREMDMtXFx1REQyNlxcdURENDRcXHVERDQ3XFx1REQ1MC1cXHVERDcyXFx1REQ3NlxcdUREODMtXFx1RERCMlxcdUREQzEtXFx1RERDNFxcdUREREFcXHVERERDXFx1REUwMC1cXHVERTExXFx1REUxMy1cXHVERTJCXFx1REU4MC1cXHVERTg2XFx1REU4OFxcdURFOEEtXFx1REU4RFxcdURFOEYtXFx1REU5RFxcdURFOUYtXFx1REVBOFxcdURFQjAtXFx1REVERVxcdURGMDUtXFx1REYwQ1xcdURGMEZcXHVERjEwXFx1REYxMy1cXHVERjI4XFx1REYyQS1cXHVERjMwXFx1REYzMlxcdURGMzNcXHVERjM1LVxcdURGMzlcXHVERjNEXFx1REY1MFxcdURGNUQtXFx1REY2MV18XFx1RDgwNVtcXHVEQzAwLVxcdURDMzRcXHVEQzQ3LVxcdURDNEFcXHVEQzVGLVxcdURDNjFcXHVEQzgwLVxcdURDQUZcXHVEQ0M0XFx1RENDNVxcdURDQzdcXHVERDgwLVxcdUREQUVcXHVEREQ4LVxcdUREREJcXHVERTAwLVxcdURFMkZcXHVERTQ0XFx1REU4MC1cXHVERUFBXFx1REVCOFxcdURGMDAtXFx1REYxQV18XFx1RDgwNltcXHVEQzAwLVxcdURDMkJcXHVEQ0ZGLVxcdUREMDZcXHVERDA5XFx1REQwQy1cXHVERDEzXFx1REQxNVxcdUREMTZcXHVERDE4LVxcdUREMkZcXHVERDNGXFx1REQ0MVxcdUREQTAtXFx1RERBN1xcdUREQUEtXFx1REREMFxcdURERTFcXHVEREUzXFx1REUwMFxcdURFMEItXFx1REUzMlxcdURFM0FcXHVERTUwXFx1REU1Qy1cXHVERTg5XFx1REU5RFxcdURFQzAtXFx1REVGOF18XFx1RDgwN1tcXHVEQzAwLVxcdURDMDhcXHVEQzBBLVxcdURDMkVcXHVEQzQwXFx1REM3Mi1cXHVEQzhGXFx1REQwMC1cXHVERDA2XFx1REQwOFxcdUREMDlcXHVERDBCLVxcdUREMzBcXHVERDQ2XFx1REQ2MC1cXHVERDY1XFx1REQ2N1xcdURENjhcXHVERDZBLVxcdUREODlcXHVERDk4XFx1REVFMC1cXHVERUYyXFx1REZCMF18XFx1RDgwOFtcXHVEQzAwLVxcdURGOTldfFxcdUQ4MDlbXFx1REM4MC1cXHVERDQzXXxbXFx1RDgwQ1xcdUQ4MUMtXFx1RDgyMFxcdUQ4MjJcXHVEODQwLVxcdUQ4NjhcXHVEODZBLVxcdUQ4NkNcXHVEODZGLVxcdUQ4NzJcXHVEODc0LVxcdUQ4NzlcXHVEODgwLVxcdUQ4ODNdW1xcdURDMDAtXFx1REZGRl18XFx1RDgwRFtcXHVEQzAwLVxcdURDMkVdfFxcdUQ4MTFbXFx1REMwMC1cXHVERTQ2XXxcXHVEODFBW1xcdURDMDAtXFx1REUzOFxcdURFNDAtXFx1REU1RVxcdURFRDAtXFx1REVFRFxcdURGMDAtXFx1REYyRlxcdURGNjMtXFx1REY3N1xcdURGN0QtXFx1REY4Rl18XFx1RDgxQltcXHVERjAwLVxcdURGNEFcXHVERjUwXXxcXHVEODIxW1xcdURDMDAtXFx1REZGN118XFx1RDgyM1tcXHVEQzAwLVxcdURDRDVcXHVERDAwLVxcdUREMDhdfFxcdUQ4MkNbXFx1REMwMC1cXHVERDFFXFx1REQ1MC1cXHVERDUyXFx1REQ2NC1cXHVERDY3XFx1REQ3MC1cXHVERUZCXXxcXHVEODJGW1xcdURDMDAtXFx1REM2QVxcdURDNzAtXFx1REM3Q1xcdURDODAtXFx1REM4OFxcdURDOTAtXFx1REM5OV18XFx1RDgzOFtcXHVERDAwLVxcdUREMkNcXHVERDRFXFx1REVDMC1cXHVERUVCXXxcXHVEODNBW1xcdURDMDAtXFx1RENDNF18XFx1RDgzQltcXHVERTAwLVxcdURFMDNcXHVERTA1LVxcdURFMUZcXHVERTIxXFx1REUyMlxcdURFMjRcXHVERTI3XFx1REUyOS1cXHVERTMyXFx1REUzNC1cXHVERTM3XFx1REUzOVxcdURFM0JcXHVERTQyXFx1REU0N1xcdURFNDlcXHVERTRCXFx1REU0RC1cXHVERTRGXFx1REU1MVxcdURFNTJcXHVERTU0XFx1REU1N1xcdURFNTlcXHVERTVCXFx1REU1RFxcdURFNUZcXHVERTYxXFx1REU2MlxcdURFNjRcXHVERTY3LVxcdURFNkFcXHVERTZDLVxcdURFNzJcXHVERTc0LVxcdURFNzdcXHVERTc5LVxcdURFN0NcXHVERTdFXFx1REU4MC1cXHVERTg5XFx1REU4Qi1cXHVERTlCXFx1REVBMS1cXHVERUEzXFx1REVBNS1cXHVERUE5XFx1REVBQi1cXHVERUJCXXxcXHVEODY5W1xcdURDMDAtXFx1REVERFxcdURGMDAtXFx1REZGRl18XFx1RDg2RFtcXHVEQzAwLVxcdURGMzRcXHVERjQwLVxcdURGRkZdfFxcdUQ4NkVbXFx1REMwMC1cXHVEQzFEXFx1REMyMC1cXHVERkZGXXxcXHVEODczW1xcdURDMDAtXFx1REVBMVxcdURFQjAtXFx1REZGRl18XFx1RDg3QVtcXHVEQzAwLVxcdURGRTBdfFxcdUQ4N0VbXFx1REMwMC1cXHVERTFEXXxcXHVEODg0W1xcdURDMDAtXFx1REY0QV0nXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ0x0JyxcbiAgICAgICAgJ2FsaWFzJzogJ1RpdGxlY2FzZV9MZXR0ZXInLFxuICAgICAgICAnYm1wJzogJ1xcdTAxQzVcXHUwMUM4XFx1MDFDQlxcdTAxRjJcXHUxRjg4LVxcdTFGOEZcXHUxRjk4LVxcdTFGOUZcXHUxRkE4LVxcdTFGQUZcXHUxRkJDXFx1MUZDQ1xcdTFGRkMnXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ0x1JyxcbiAgICAgICAgJ2FsaWFzJzogJ1VwcGVyY2FzZV9MZXR0ZXInLFxuICAgICAgICAnYm1wJzogJ0EtWlxceEMwLVxceEQ2XFx4RDgtXFx4REVcXHUwMTAwXFx1MDEwMlxcdTAxMDRcXHUwMTA2XFx1MDEwOFxcdTAxMEFcXHUwMTBDXFx1MDEwRVxcdTAxMTBcXHUwMTEyXFx1MDExNFxcdTAxMTZcXHUwMTE4XFx1MDExQVxcdTAxMUNcXHUwMTFFXFx1MDEyMFxcdTAxMjJcXHUwMTI0XFx1MDEyNlxcdTAxMjhcXHUwMTJBXFx1MDEyQ1xcdTAxMkVcXHUwMTMwXFx1MDEzMlxcdTAxMzRcXHUwMTM2XFx1MDEzOVxcdTAxM0JcXHUwMTNEXFx1MDEzRlxcdTAxNDFcXHUwMTQzXFx1MDE0NVxcdTAxNDdcXHUwMTRBXFx1MDE0Q1xcdTAxNEVcXHUwMTUwXFx1MDE1MlxcdTAxNTRcXHUwMTU2XFx1MDE1OFxcdTAxNUFcXHUwMTVDXFx1MDE1RVxcdTAxNjBcXHUwMTYyXFx1MDE2NFxcdTAxNjZcXHUwMTY4XFx1MDE2QVxcdTAxNkNcXHUwMTZFXFx1MDE3MFxcdTAxNzJcXHUwMTc0XFx1MDE3NlxcdTAxNzhcXHUwMTc5XFx1MDE3QlxcdTAxN0RcXHUwMTgxXFx1MDE4MlxcdTAxODRcXHUwMTg2XFx1MDE4N1xcdTAxODktXFx1MDE4QlxcdTAxOEUtXFx1MDE5MVxcdTAxOTNcXHUwMTk0XFx1MDE5Ni1cXHUwMTk4XFx1MDE5Q1xcdTAxOURcXHUwMTlGXFx1MDFBMFxcdTAxQTJcXHUwMUE0XFx1MDFBNlxcdTAxQTdcXHUwMUE5XFx1MDFBQ1xcdTAxQUVcXHUwMUFGXFx1MDFCMS1cXHUwMUIzXFx1MDFCNVxcdTAxQjdcXHUwMUI4XFx1MDFCQ1xcdTAxQzRcXHUwMUM3XFx1MDFDQVxcdTAxQ0RcXHUwMUNGXFx1MDFEMVxcdTAxRDNcXHUwMUQ1XFx1MDFEN1xcdTAxRDlcXHUwMURCXFx1MDFERVxcdTAxRTBcXHUwMUUyXFx1MDFFNFxcdTAxRTZcXHUwMUU4XFx1MDFFQVxcdTAxRUNcXHUwMUVFXFx1MDFGMVxcdTAxRjRcXHUwMUY2LVxcdTAxRjhcXHUwMUZBXFx1MDFGQ1xcdTAxRkVcXHUwMjAwXFx1MDIwMlxcdTAyMDRcXHUwMjA2XFx1MDIwOFxcdTAyMEFcXHUwMjBDXFx1MDIwRVxcdTAyMTBcXHUwMjEyXFx1MDIxNFxcdTAyMTZcXHUwMjE4XFx1MDIxQVxcdTAyMUNcXHUwMjFFXFx1MDIyMFxcdTAyMjJcXHUwMjI0XFx1MDIyNlxcdTAyMjhcXHUwMjJBXFx1MDIyQ1xcdTAyMkVcXHUwMjMwXFx1MDIzMlxcdTAyM0FcXHUwMjNCXFx1MDIzRFxcdTAyM0VcXHUwMjQxXFx1MDI0My1cXHUwMjQ2XFx1MDI0OFxcdTAyNEFcXHUwMjRDXFx1MDI0RVxcdTAzNzBcXHUwMzcyXFx1MDM3NlxcdTAzN0ZcXHUwMzg2XFx1MDM4OC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEVcXHUwMzhGXFx1MDM5MS1cXHUwM0ExXFx1MDNBMy1cXHUwM0FCXFx1MDNDRlxcdTAzRDItXFx1MDNENFxcdTAzRDhcXHUwM0RBXFx1MDNEQ1xcdTAzREVcXHUwM0UwXFx1MDNFMlxcdTAzRTRcXHUwM0U2XFx1MDNFOFxcdTAzRUFcXHUwM0VDXFx1MDNFRVxcdTAzRjRcXHUwM0Y3XFx1MDNGOVxcdTAzRkFcXHUwM0ZELVxcdTA0MkZcXHUwNDYwXFx1MDQ2MlxcdTA0NjRcXHUwNDY2XFx1MDQ2OFxcdTA0NkFcXHUwNDZDXFx1MDQ2RVxcdTA0NzBcXHUwNDcyXFx1MDQ3NFxcdTA0NzZcXHUwNDc4XFx1MDQ3QVxcdTA0N0NcXHUwNDdFXFx1MDQ4MFxcdTA0OEFcXHUwNDhDXFx1MDQ4RVxcdTA0OTBcXHUwNDkyXFx1MDQ5NFxcdTA0OTZcXHUwNDk4XFx1MDQ5QVxcdTA0OUNcXHUwNDlFXFx1MDRBMFxcdTA0QTJcXHUwNEE0XFx1MDRBNlxcdTA0QThcXHUwNEFBXFx1MDRBQ1xcdTA0QUVcXHUwNEIwXFx1MDRCMlxcdTA0QjRcXHUwNEI2XFx1MDRCOFxcdTA0QkFcXHUwNEJDXFx1MDRCRVxcdTA0QzBcXHUwNEMxXFx1MDRDM1xcdTA0QzVcXHUwNEM3XFx1MDRDOVxcdTA0Q0JcXHUwNENEXFx1MDREMFxcdTA0RDJcXHUwNEQ0XFx1MDRENlxcdTA0RDhcXHUwNERBXFx1MDREQ1xcdTA0REVcXHUwNEUwXFx1MDRFMlxcdTA0RTRcXHUwNEU2XFx1MDRFOFxcdTA0RUFcXHUwNEVDXFx1MDRFRVxcdTA0RjBcXHUwNEYyXFx1MDRGNFxcdTA0RjZcXHUwNEY4XFx1MDRGQVxcdTA0RkNcXHUwNEZFXFx1MDUwMFxcdTA1MDJcXHUwNTA0XFx1MDUwNlxcdTA1MDhcXHUwNTBBXFx1MDUwQ1xcdTA1MEVcXHUwNTEwXFx1MDUxMlxcdTA1MTRcXHUwNTE2XFx1MDUxOFxcdTA1MUFcXHUwNTFDXFx1MDUxRVxcdTA1MjBcXHUwNTIyXFx1MDUyNFxcdTA1MjZcXHUwNTI4XFx1MDUyQVxcdTA1MkNcXHUwNTJFXFx1MDUzMS1cXHUwNTU2XFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxM0EwLVxcdTEzRjVcXHUxQzkwLVxcdTFDQkFcXHUxQ0JELVxcdTFDQkZcXHUxRTAwXFx1MUUwMlxcdTFFMDRcXHUxRTA2XFx1MUUwOFxcdTFFMEFcXHUxRTBDXFx1MUUwRVxcdTFFMTBcXHUxRTEyXFx1MUUxNFxcdTFFMTZcXHUxRTE4XFx1MUUxQVxcdTFFMUNcXHUxRTFFXFx1MUUyMFxcdTFFMjJcXHUxRTI0XFx1MUUyNlxcdTFFMjhcXHUxRTJBXFx1MUUyQ1xcdTFFMkVcXHUxRTMwXFx1MUUzMlxcdTFFMzRcXHUxRTM2XFx1MUUzOFxcdTFFM0FcXHUxRTNDXFx1MUUzRVxcdTFFNDBcXHUxRTQyXFx1MUU0NFxcdTFFNDZcXHUxRTQ4XFx1MUU0QVxcdTFFNENcXHUxRTRFXFx1MUU1MFxcdTFFNTJcXHUxRTU0XFx1MUU1NlxcdTFFNThcXHUxRTVBXFx1MUU1Q1xcdTFFNUVcXHUxRTYwXFx1MUU2MlxcdTFFNjRcXHUxRTY2XFx1MUU2OFxcdTFFNkFcXHUxRTZDXFx1MUU2RVxcdTFFNzBcXHUxRTcyXFx1MUU3NFxcdTFFNzZcXHUxRTc4XFx1MUU3QVxcdTFFN0NcXHUxRTdFXFx1MUU4MFxcdTFFODJcXHUxRTg0XFx1MUU4NlxcdTFFODhcXHUxRThBXFx1MUU4Q1xcdTFFOEVcXHUxRTkwXFx1MUU5MlxcdTFFOTRcXHUxRTlFXFx1MUVBMFxcdTFFQTJcXHUxRUE0XFx1MUVBNlxcdTFFQThcXHUxRUFBXFx1MUVBQ1xcdTFFQUVcXHUxRUIwXFx1MUVCMlxcdTFFQjRcXHUxRUI2XFx1MUVCOFxcdTFFQkFcXHUxRUJDXFx1MUVCRVxcdTFFQzBcXHUxRUMyXFx1MUVDNFxcdTFFQzZcXHUxRUM4XFx1MUVDQVxcdTFFQ0NcXHUxRUNFXFx1MUVEMFxcdTFFRDJcXHUxRUQ0XFx1MUVENlxcdTFFRDhcXHUxRURBXFx1MUVEQ1xcdTFFREVcXHUxRUUwXFx1MUVFMlxcdTFFRTRcXHUxRUU2XFx1MUVFOFxcdTFFRUFcXHUxRUVDXFx1MUVFRVxcdTFFRjBcXHUxRUYyXFx1MUVGNFxcdTFFRjZcXHUxRUY4XFx1MUVGQVxcdTFFRkNcXHUxRUZFXFx1MUYwOC1cXHUxRjBGXFx1MUYxOC1cXHUxRjFEXFx1MUYyOC1cXHUxRjJGXFx1MUYzOC1cXHUxRjNGXFx1MUY0OC1cXHUxRjREXFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1RlxcdTFGNjgtXFx1MUY2RlxcdTFGQjgtXFx1MUZCQlxcdTFGQzgtXFx1MUZDQlxcdTFGRDgtXFx1MUZEQlxcdTFGRTgtXFx1MUZFQ1xcdTFGRjgtXFx1MUZGQlxcdTIxMDJcXHUyMTA3XFx1MjEwQi1cXHUyMTBEXFx1MjExMC1cXHUyMTEyXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMzAtXFx1MjEzM1xcdTIxM0VcXHUyMTNGXFx1MjE0NVxcdTIxODNcXHUyQzAwLVxcdTJDMkVcXHUyQzYwXFx1MkM2Mi1cXHUyQzY0XFx1MkM2N1xcdTJDNjlcXHUyQzZCXFx1MkM2RC1cXHUyQzcwXFx1MkM3MlxcdTJDNzVcXHUyQzdFLVxcdTJDODBcXHUyQzgyXFx1MkM4NFxcdTJDODZcXHUyQzg4XFx1MkM4QVxcdTJDOENcXHUyQzhFXFx1MkM5MFxcdTJDOTJcXHUyQzk0XFx1MkM5NlxcdTJDOThcXHUyQzlBXFx1MkM5Q1xcdTJDOUVcXHUyQ0EwXFx1MkNBMlxcdTJDQTRcXHUyQ0E2XFx1MkNBOFxcdTJDQUFcXHUyQ0FDXFx1MkNBRVxcdTJDQjBcXHUyQ0IyXFx1MkNCNFxcdTJDQjZcXHUyQ0I4XFx1MkNCQVxcdTJDQkNcXHUyQ0JFXFx1MkNDMFxcdTJDQzJcXHUyQ0M0XFx1MkNDNlxcdTJDQzhcXHUyQ0NBXFx1MkNDQ1xcdTJDQ0VcXHUyQ0QwXFx1MkNEMlxcdTJDRDRcXHUyQ0Q2XFx1MkNEOFxcdTJDREFcXHUyQ0RDXFx1MkNERVxcdTJDRTBcXHUyQ0UyXFx1MkNFQlxcdTJDRURcXHUyQ0YyXFx1QTY0MFxcdUE2NDJcXHVBNjQ0XFx1QTY0NlxcdUE2NDhcXHVBNjRBXFx1QTY0Q1xcdUE2NEVcXHVBNjUwXFx1QTY1MlxcdUE2NTRcXHVBNjU2XFx1QTY1OFxcdUE2NUFcXHVBNjVDXFx1QTY1RVxcdUE2NjBcXHVBNjYyXFx1QTY2NFxcdUE2NjZcXHVBNjY4XFx1QTY2QVxcdUE2NkNcXHVBNjgwXFx1QTY4MlxcdUE2ODRcXHVBNjg2XFx1QTY4OFxcdUE2OEFcXHVBNjhDXFx1QTY4RVxcdUE2OTBcXHVBNjkyXFx1QTY5NFxcdUE2OTZcXHVBNjk4XFx1QTY5QVxcdUE3MjJcXHVBNzI0XFx1QTcyNlxcdUE3MjhcXHVBNzJBXFx1QTcyQ1xcdUE3MkVcXHVBNzMyXFx1QTczNFxcdUE3MzZcXHVBNzM4XFx1QTczQVxcdUE3M0NcXHVBNzNFXFx1QTc0MFxcdUE3NDJcXHVBNzQ0XFx1QTc0NlxcdUE3NDhcXHVBNzRBXFx1QTc0Q1xcdUE3NEVcXHVBNzUwXFx1QTc1MlxcdUE3NTRcXHVBNzU2XFx1QTc1OFxcdUE3NUFcXHVBNzVDXFx1QTc1RVxcdUE3NjBcXHVBNzYyXFx1QTc2NFxcdUE3NjZcXHVBNzY4XFx1QTc2QVxcdUE3NkNcXHVBNzZFXFx1QTc3OVxcdUE3N0JcXHVBNzdEXFx1QTc3RVxcdUE3ODBcXHVBNzgyXFx1QTc4NFxcdUE3ODZcXHVBNzhCXFx1QTc4RFxcdUE3OTBcXHVBNzkyXFx1QTc5NlxcdUE3OThcXHVBNzlBXFx1QTc5Q1xcdUE3OUVcXHVBN0EwXFx1QTdBMlxcdUE3QTRcXHVBN0E2XFx1QTdBOFxcdUE3QUEtXFx1QTdBRVxcdUE3QjAtXFx1QTdCNFxcdUE3QjZcXHVBN0I4XFx1QTdCQVxcdUE3QkNcXHVBN0JFXFx1QTdDMlxcdUE3QzQtXFx1QTdDN1xcdUE3QzlcXHVBN0Y1XFx1RkYyMS1cXHVGRjNBJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODAxW1xcdURDMDAtXFx1REMyN1xcdURDQjAtXFx1RENEM118XFx1RDgwM1tcXHVEQzgwLVxcdURDQjJdfFxcdUQ4MDZbXFx1RENBMC1cXHVEQ0JGXXxcXHVEODFCW1xcdURFNDAtXFx1REU1Rl18XFx1RDgzNVtcXHVEQzAwLVxcdURDMTlcXHVEQzM0LVxcdURDNERcXHVEQzY4LVxcdURDODFcXHVEQzlDXFx1REM5RVxcdURDOUZcXHVEQ0EyXFx1RENBNVxcdURDQTZcXHVEQ0E5LVxcdURDQUNcXHVEQ0FFLVxcdURDQjVcXHVEQ0QwLVxcdURDRTlcXHVERDA0XFx1REQwNVxcdUREMDctXFx1REQwQVxcdUREMEQtXFx1REQxNFxcdUREMTYtXFx1REQxQ1xcdUREMzhcXHVERDM5XFx1REQzQi1cXHVERDNFXFx1REQ0MC1cXHVERDQ0XFx1REQ0NlxcdURENEEtXFx1REQ1MFxcdURENkMtXFx1REQ4NVxcdUREQTAtXFx1RERCOVxcdURERDQtXFx1RERFRFxcdURFMDgtXFx1REUyMVxcdURFM0MtXFx1REU1NVxcdURFNzAtXFx1REU4OVxcdURFQTgtXFx1REVDMFxcdURFRTItXFx1REVGQVxcdURGMUMtXFx1REYzNFxcdURGNTYtXFx1REY2RVxcdURGOTAtXFx1REZBOFxcdURGQ0FdfFxcdUQ4M0FbXFx1REQwMC1cXHVERDIxXSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnTScsXG4gICAgICAgICdhbGlhcyc6ICdNYXJrJyxcbiAgICAgICAgJ2JtcCc6ICdcXHUwMzAwLVxcdTAzNkZcXHUwNDgzLVxcdTA0ODlcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNjEwLVxcdTA2MUFcXHUwNjRCLVxcdTA2NUZcXHUwNjcwXFx1MDZENi1cXHUwNkRDXFx1MDZERi1cXHUwNkU0XFx1MDZFN1xcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNzExXFx1MDczMC1cXHUwNzRBXFx1MDdBNi1cXHUwN0IwXFx1MDdFQi1cXHUwN0YzXFx1MDdGRFxcdTA4MTYtXFx1MDgxOVxcdTA4MUItXFx1MDgyM1xcdTA4MjUtXFx1MDgyN1xcdTA4MjktXFx1MDgyRFxcdTA4NTktXFx1MDg1QlxcdTA4RDMtXFx1MDhFMVxcdTA4RTMtXFx1MDkwM1xcdTA5M0EtXFx1MDkzQ1xcdTA5M0UtXFx1MDk0RlxcdTA5NTEtXFx1MDk1N1xcdTA5NjJcXHUwOTYzXFx1MDk4MS1cXHUwOTgzXFx1MDlCQ1xcdTA5QkUtXFx1MDlDNFxcdTA5QzdcXHUwOUM4XFx1MDlDQi1cXHUwOUNEXFx1MDlEN1xcdTA5RTJcXHUwOUUzXFx1MDlGRVxcdTBBMDEtXFx1MEEwM1xcdTBBM0NcXHUwQTNFLVxcdTBBNDJcXHUwQTQ3XFx1MEE0OFxcdTBBNEItXFx1MEE0RFxcdTBBNTFcXHUwQTcwXFx1MEE3MVxcdTBBNzVcXHUwQTgxLVxcdTBBODNcXHUwQUJDXFx1MEFCRS1cXHUwQUM1XFx1MEFDNy1cXHUwQUM5XFx1MEFDQi1cXHUwQUNEXFx1MEFFMlxcdTBBRTNcXHUwQUZBLVxcdTBBRkZcXHUwQjAxLVxcdTBCMDNcXHUwQjNDXFx1MEIzRS1cXHUwQjQ0XFx1MEI0N1xcdTBCNDhcXHUwQjRCLVxcdTBCNERcXHUwQjU1LVxcdTBCNTdcXHUwQjYyXFx1MEI2M1xcdTBCODJcXHUwQkJFLVxcdTBCQzJcXHUwQkM2LVxcdTBCQzhcXHUwQkNBLVxcdTBCQ0RcXHUwQkQ3XFx1MEMwMC1cXHUwQzA0XFx1MEMzRS1cXHUwQzQ0XFx1MEM0Ni1cXHUwQzQ4XFx1MEM0QS1cXHUwQzREXFx1MEM1NVxcdTBDNTZcXHUwQzYyXFx1MEM2M1xcdTBDODEtXFx1MEM4M1xcdTBDQkNcXHUwQ0JFLVxcdTBDQzRcXHUwQ0M2LVxcdTBDQzhcXHUwQ0NBLVxcdTBDQ0RcXHUwQ0Q1XFx1MENENlxcdTBDRTJcXHUwQ0UzXFx1MEQwMC1cXHUwRDAzXFx1MEQzQlxcdTBEM0NcXHUwRDNFLVxcdTBENDRcXHUwRDQ2LVxcdTBENDhcXHUwRDRBLVxcdTBENERcXHUwRDU3XFx1MEQ2MlxcdTBENjNcXHUwRDgxLVxcdTBEODNcXHUwRENBXFx1MERDRi1cXHUwREQ0XFx1MERENlxcdTBERDgtXFx1MERERlxcdTBERjJcXHUwREYzXFx1MEUzMVxcdTBFMzQtXFx1MEUzQVxcdTBFNDctXFx1MEU0RVxcdTBFQjFcXHUwRUI0LVxcdTBFQkNcXHUwRUM4LVxcdTBFQ0RcXHUwRjE4XFx1MEYxOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGM0VcXHUwRjNGXFx1MEY3MS1cXHUwRjg0XFx1MEY4NlxcdTBGODdcXHUwRjhELVxcdTBGOTdcXHUwRjk5LVxcdTBGQkNcXHUwRkM2XFx1MTAyQi1cXHUxMDNFXFx1MTA1Ni1cXHUxMDU5XFx1MTA1RS1cXHUxMDYwXFx1MTA2Mi1cXHUxMDY0XFx1MTA2Ny1cXHUxMDZEXFx1MTA3MS1cXHUxMDc0XFx1MTA4Mi1cXHUxMDhEXFx1MTA4RlxcdTEwOUEtXFx1MTA5RFxcdTEzNUQtXFx1MTM1RlxcdTE3MTItXFx1MTcxNFxcdTE3MzItXFx1MTczNFxcdTE3NTJcXHUxNzUzXFx1MTc3MlxcdTE3NzNcXHUxN0I0LVxcdTE3RDNcXHUxN0REXFx1MTgwQi1cXHUxODBEXFx1MTg4NVxcdTE4ODZcXHUxOEE5XFx1MTkyMC1cXHUxOTJCXFx1MTkzMC1cXHUxOTNCXFx1MUExNy1cXHUxQTFCXFx1MUE1NS1cXHUxQTVFXFx1MUE2MC1cXHUxQTdDXFx1MUE3RlxcdTFBQjAtXFx1MUFDMFxcdTFCMDAtXFx1MUIwNFxcdTFCMzQtXFx1MUI0NFxcdTFCNkItXFx1MUI3M1xcdTFCODAtXFx1MUI4MlxcdTFCQTEtXFx1MUJBRFxcdTFCRTYtXFx1MUJGM1xcdTFDMjQtXFx1MUMzN1xcdTFDRDAtXFx1MUNEMlxcdTFDRDQtXFx1MUNFOFxcdTFDRURcXHUxQ0Y0XFx1MUNGNy1cXHUxQ0Y5XFx1MURDMC1cXHUxREY5XFx1MURGQi1cXHUxREZGXFx1MjBEMC1cXHUyMEYwXFx1MkNFRi1cXHUyQ0YxXFx1MkQ3RlxcdTJERTAtXFx1MkRGRlxcdTMwMkEtXFx1MzAyRlxcdTMwOTlcXHUzMDlBXFx1QTY2Ri1cXHVBNjcyXFx1QTY3NC1cXHVBNjdEXFx1QTY5RVxcdUE2OUZcXHVBNkYwXFx1QTZGMVxcdUE4MDJcXHVBODA2XFx1QTgwQlxcdUE4MjMtXFx1QTgyN1xcdUE4MkNcXHVBODgwXFx1QTg4MVxcdUE4QjQtXFx1QThDNVxcdUE4RTAtXFx1QThGMVxcdUE4RkZcXHVBOTI2LVxcdUE5MkRcXHVBOTQ3LVxcdUE5NTNcXHVBOTgwLVxcdUE5ODNcXHVBOUIzLVxcdUE5QzBcXHVBOUU1XFx1QUEyOS1cXHVBQTM2XFx1QUE0M1xcdUFBNENcXHVBQTREXFx1QUE3Qi1cXHVBQTdEXFx1QUFCMFxcdUFBQjItXFx1QUFCNFxcdUFBQjdcXHVBQUI4XFx1QUFCRVxcdUFBQkZcXHVBQUMxXFx1QUFFQi1cXHVBQUVGXFx1QUFGNVxcdUFBRjZcXHVBQkUzLVxcdUFCRUFcXHVBQkVDXFx1QUJFRFxcdUZCMUVcXHVGRTAwLVxcdUZFMEZcXHVGRTIwLVxcdUZFMkYnLFxuICAgICAgICAnYXN0cmFsJzogJ1xcdUQ4MDBbXFx1RERGRFxcdURFRTBcXHVERjc2LVxcdURGN0FdfFxcdUQ4MDJbXFx1REUwMS1cXHVERTAzXFx1REUwNVxcdURFMDZcXHVERTBDLVxcdURFMEZcXHVERTM4LVxcdURFM0FcXHVERTNGXFx1REVFNVxcdURFRTZdfFxcdUQ4MDNbXFx1REQyNC1cXHVERDI3XFx1REVBQlxcdURFQUNcXHVERjQ2LVxcdURGNTBdfFxcdUQ4MDRbXFx1REMwMC1cXHVEQzAyXFx1REMzOC1cXHVEQzQ2XFx1REM3Ri1cXHVEQzgyXFx1RENCMC1cXHVEQ0JBXFx1REQwMC1cXHVERDAyXFx1REQyNy1cXHVERDM0XFx1REQ0NVxcdURENDZcXHVERDczXFx1REQ4MC1cXHVERDgyXFx1RERCMy1cXHVEREMwXFx1RERDOS1cXHVERENDXFx1RERDRVxcdUREQ0ZcXHVERTJDLVxcdURFMzdcXHVERTNFXFx1REVERi1cXHVERUVBXFx1REYwMC1cXHVERjAzXFx1REYzQlxcdURGM0NcXHVERjNFLVxcdURGNDRcXHVERjQ3XFx1REY0OFxcdURGNEItXFx1REY0RFxcdURGNTdcXHVERjYyXFx1REY2M1xcdURGNjYtXFx1REY2Q1xcdURGNzAtXFx1REY3NF18XFx1RDgwNVtcXHVEQzM1LVxcdURDNDZcXHVEQzVFXFx1RENCMC1cXHVEQ0MzXFx1RERBRi1cXHVEREI1XFx1RERCOC1cXHVEREMwXFx1REREQ1xcdURERERcXHVERTMwLVxcdURFNDBcXHVERUFCLVxcdURFQjdcXHVERjFELVxcdURGMkJdfFxcdUQ4MDZbXFx1REMyQy1cXHVEQzNBXFx1REQzMC1cXHVERDM1XFx1REQzN1xcdUREMzhcXHVERDNCLVxcdUREM0VcXHVERDQwXFx1REQ0MlxcdURENDNcXHVEREQxLVxcdURERDdcXHVERERBLVxcdURERTBcXHVEREU0XFx1REUwMS1cXHVERTBBXFx1REUzMy1cXHVERTM5XFx1REUzQi1cXHVERTNFXFx1REU0N1xcdURFNTEtXFx1REU1QlxcdURFOEEtXFx1REU5OV18XFx1RDgwN1tcXHVEQzJGLVxcdURDMzZcXHVEQzM4LVxcdURDM0ZcXHVEQzkyLVxcdURDQTdcXHVEQ0E5LVxcdURDQjZcXHVERDMxLVxcdUREMzZcXHVERDNBXFx1REQzQ1xcdUREM0RcXHVERDNGLVxcdURENDVcXHVERDQ3XFx1REQ4QS1cXHVERDhFXFx1REQ5MFxcdUREOTFcXHVERDkzLVxcdUREOTdcXHVERUYzLVxcdURFRjZdfFxcdUQ4MUFbXFx1REVGMC1cXHVERUY0XFx1REYzMC1cXHVERjM2XXxcXHVEODFCW1xcdURGNEZcXHVERjUxLVxcdURGODdcXHVERjhGLVxcdURGOTJcXHVERkU0XFx1REZGMFxcdURGRjFdfFxcdUQ4MkZbXFx1REM5RFxcdURDOUVdfFxcdUQ4MzRbXFx1REQ2NS1cXHVERDY5XFx1REQ2RC1cXHVERDcyXFx1REQ3Qi1cXHVERDgyXFx1REQ4NS1cXHVERDhCXFx1RERBQS1cXHVEREFEXFx1REU0Mi1cXHVERTQ0XXxcXHVEODM2W1xcdURFMDAtXFx1REUzNlxcdURFM0ItXFx1REU2Q1xcdURFNzVcXHVERTg0XFx1REU5Qi1cXHVERTlGXFx1REVBMS1cXHVERUFGXXxcXHVEODM4W1xcdURDMDAtXFx1REMwNlxcdURDMDgtXFx1REMxOFxcdURDMUItXFx1REMyMVxcdURDMjNcXHVEQzI0XFx1REMyNi1cXHVEQzJBXFx1REQzMC1cXHVERDM2XFx1REVFQy1cXHVERUVGXXxcXHVEODNBW1xcdURDRDAtXFx1RENENlxcdURENDQtXFx1REQ0QV18XFx1REI0MFtcXHVERDAwLVxcdURERUZdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdNYycsXG4gICAgICAgICdhbGlhcyc6ICdTcGFjaW5nX01hcmsnLFxuICAgICAgICAnYm1wJzogJ1xcdTA5MDNcXHUwOTNCXFx1MDkzRS1cXHUwOTQwXFx1MDk0OS1cXHUwOTRDXFx1MDk0RVxcdTA5NEZcXHUwOTgyXFx1MDk4M1xcdTA5QkUtXFx1MDlDMFxcdTA5QzdcXHUwOUM4XFx1MDlDQlxcdTA5Q0NcXHUwOUQ3XFx1MEEwM1xcdTBBM0UtXFx1MEE0MFxcdTBBODNcXHUwQUJFLVxcdTBBQzBcXHUwQUM5XFx1MEFDQlxcdTBBQ0NcXHUwQjAyXFx1MEIwM1xcdTBCM0VcXHUwQjQwXFx1MEI0N1xcdTBCNDhcXHUwQjRCXFx1MEI0Q1xcdTBCNTdcXHUwQkJFXFx1MEJCRlxcdTBCQzFcXHUwQkMyXFx1MEJDNi1cXHUwQkM4XFx1MEJDQS1cXHUwQkNDXFx1MEJEN1xcdTBDMDEtXFx1MEMwM1xcdTBDNDEtXFx1MEM0NFxcdTBDODJcXHUwQzgzXFx1MENCRVxcdTBDQzAtXFx1MENDNFxcdTBDQzdcXHUwQ0M4XFx1MENDQVxcdTBDQ0JcXHUwQ0Q1XFx1MENENlxcdTBEMDJcXHUwRDAzXFx1MEQzRS1cXHUwRDQwXFx1MEQ0Ni1cXHUwRDQ4XFx1MEQ0QS1cXHUwRDRDXFx1MEQ1N1xcdTBEODJcXHUwRDgzXFx1MERDRi1cXHUwREQxXFx1MEREOC1cXHUwRERGXFx1MERGMlxcdTBERjNcXHUwRjNFXFx1MEYzRlxcdTBGN0ZcXHUxMDJCXFx1MTAyQ1xcdTEwMzFcXHUxMDM4XFx1MTAzQlxcdTEwM0NcXHUxMDU2XFx1MTA1N1xcdTEwNjItXFx1MTA2NFxcdTEwNjctXFx1MTA2RFxcdTEwODNcXHUxMDg0XFx1MTA4Ny1cXHUxMDhDXFx1MTA4RlxcdTEwOUEtXFx1MTA5Q1xcdTE3QjZcXHUxN0JFLVxcdTE3QzVcXHUxN0M3XFx1MTdDOFxcdTE5MjMtXFx1MTkyNlxcdTE5MjktXFx1MTkyQlxcdTE5MzBcXHUxOTMxXFx1MTkzMy1cXHUxOTM4XFx1MUExOVxcdTFBMUFcXHUxQTU1XFx1MUE1N1xcdTFBNjFcXHUxQTYzXFx1MUE2NFxcdTFBNkQtXFx1MUE3MlxcdTFCMDRcXHUxQjM1XFx1MUIzQlxcdTFCM0QtXFx1MUI0MVxcdTFCNDNcXHUxQjQ0XFx1MUI4MlxcdTFCQTFcXHUxQkE2XFx1MUJBN1xcdTFCQUFcXHUxQkU3XFx1MUJFQS1cXHUxQkVDXFx1MUJFRVxcdTFCRjJcXHUxQkYzXFx1MUMyNC1cXHUxQzJCXFx1MUMzNFxcdTFDMzVcXHUxQ0UxXFx1MUNGN1xcdTMwMkVcXHUzMDJGXFx1QTgyM1xcdUE4MjRcXHVBODI3XFx1QTg4MFxcdUE4ODFcXHVBOEI0LVxcdUE4QzNcXHVBOTUyXFx1QTk1M1xcdUE5ODNcXHVBOUI0XFx1QTlCNVxcdUE5QkFcXHVBOUJCXFx1QTlCRS1cXHVBOUMwXFx1QUEyRlxcdUFBMzBcXHVBQTMzXFx1QUEzNFxcdUFBNERcXHVBQTdCXFx1QUE3RFxcdUFBRUJcXHVBQUVFXFx1QUFFRlxcdUFBRjVcXHVBQkUzXFx1QUJFNFxcdUFCRTZcXHVBQkU3XFx1QUJFOVxcdUFCRUFcXHVBQkVDJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODA0W1xcdURDMDBcXHVEQzAyXFx1REM4MlxcdURDQjAtXFx1RENCMlxcdURDQjdcXHVEQ0I4XFx1REQyQ1xcdURENDVcXHVERDQ2XFx1REQ4MlxcdUREQjMtXFx1RERCNVxcdUREQkZcXHVEREMwXFx1RERDRVxcdURFMkMtXFx1REUyRVxcdURFMzJcXHVERTMzXFx1REUzNVxcdURFRTAtXFx1REVFMlxcdURGMDJcXHVERjAzXFx1REYzRVxcdURGM0ZcXHVERjQxLVxcdURGNDRcXHVERjQ3XFx1REY0OFxcdURGNEItXFx1REY0RFxcdURGNTdcXHVERjYyXFx1REY2M118XFx1RDgwNVtcXHVEQzM1LVxcdURDMzdcXHVEQzQwXFx1REM0MVxcdURDNDVcXHVEQ0IwLVxcdURDQjJcXHVEQ0I5XFx1RENCQi1cXHVEQ0JFXFx1RENDMVxcdUREQUYtXFx1RERCMVxcdUREQjgtXFx1RERCQlxcdUREQkVcXHVERTMwLVxcdURFMzJcXHVERTNCXFx1REUzQ1xcdURFM0VcXHVERUFDXFx1REVBRVxcdURFQUZcXHVERUI2XFx1REYyMFxcdURGMjFcXHVERjI2XXxcXHVEODA2W1xcdURDMkMtXFx1REMyRVxcdURDMzhcXHVERDMwLVxcdUREMzVcXHVERDM3XFx1REQzOFxcdUREM0RcXHVERDQwXFx1REQ0MlxcdURERDEtXFx1REREM1xcdUREREMtXFx1RERERlxcdURERTRcXHVERTM5XFx1REU1N1xcdURFNThcXHVERTk3XXxcXHVEODA3W1xcdURDMkZcXHVEQzNFXFx1RENBOVxcdURDQjFcXHVEQ0I0XFx1REQ4QS1cXHVERDhFXFx1REQ5M1xcdUREOTRcXHVERDk2XFx1REVGNVxcdURFRjZdfFxcdUQ4MUJbXFx1REY1MS1cXHVERjg3XFx1REZGMFxcdURGRjFdfFxcdUQ4MzRbXFx1REQ2NVxcdURENjZcXHVERDZELVxcdURENzJdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdNZScsXG4gICAgICAgICdhbGlhcyc6ICdFbmNsb3NpbmdfTWFyaycsXG4gICAgICAgICdibXAnOiAnXFx1MDQ4OFxcdTA0ODlcXHUxQUJFXFx1MjBERC1cXHUyMEUwXFx1MjBFMi1cXHUyMEU0XFx1QTY3MC1cXHVBNjcyJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdNbicsXG4gICAgICAgICdhbGlhcyc6ICdOb25zcGFjaW5nX01hcmsnLFxuICAgICAgICAnYm1wJzogJ1xcdTAzMDAtXFx1MDM2RlxcdTA0ODMtXFx1MDQ4N1xcdTA1OTEtXFx1MDVCRFxcdTA1QkZcXHUwNUMxXFx1MDVDMlxcdTA1QzRcXHUwNUM1XFx1MDVDN1xcdTA2MTAtXFx1MDYxQVxcdTA2NEItXFx1MDY1RlxcdTA2NzBcXHUwNkQ2LVxcdTA2RENcXHUwNkRGLVxcdTA2RTRcXHUwNkU3XFx1MDZFOFxcdTA2RUEtXFx1MDZFRFxcdTA3MTFcXHUwNzMwLVxcdTA3NEFcXHUwN0E2LVxcdTA3QjBcXHUwN0VCLVxcdTA3RjNcXHUwN0ZEXFx1MDgxNi1cXHUwODE5XFx1MDgxQi1cXHUwODIzXFx1MDgyNS1cXHUwODI3XFx1MDgyOS1cXHUwODJEXFx1MDg1OS1cXHUwODVCXFx1MDhEMy1cXHUwOEUxXFx1MDhFMy1cXHUwOTAyXFx1MDkzQVxcdTA5M0NcXHUwOTQxLVxcdTA5NDhcXHUwOTREXFx1MDk1MS1cXHUwOTU3XFx1MDk2MlxcdTA5NjNcXHUwOTgxXFx1MDlCQ1xcdTA5QzEtXFx1MDlDNFxcdTA5Q0RcXHUwOUUyXFx1MDlFM1xcdTA5RkVcXHUwQTAxXFx1MEEwMlxcdTBBM0NcXHUwQTQxXFx1MEE0MlxcdTBBNDdcXHUwQTQ4XFx1MEE0Qi1cXHUwQTREXFx1MEE1MVxcdTBBNzBcXHUwQTcxXFx1MEE3NVxcdTBBODFcXHUwQTgyXFx1MEFCQ1xcdTBBQzEtXFx1MEFDNVxcdTBBQzdcXHUwQUM4XFx1MEFDRFxcdTBBRTJcXHUwQUUzXFx1MEFGQS1cXHUwQUZGXFx1MEIwMVxcdTBCM0NcXHUwQjNGXFx1MEI0MS1cXHUwQjQ0XFx1MEI0RFxcdTBCNTVcXHUwQjU2XFx1MEI2MlxcdTBCNjNcXHUwQjgyXFx1MEJDMFxcdTBCQ0RcXHUwQzAwXFx1MEMwNFxcdTBDM0UtXFx1MEM0MFxcdTBDNDYtXFx1MEM0OFxcdTBDNEEtXFx1MEM0RFxcdTBDNTVcXHUwQzU2XFx1MEM2MlxcdTBDNjNcXHUwQzgxXFx1MENCQ1xcdTBDQkZcXHUwQ0M2XFx1MENDQ1xcdTBDQ0RcXHUwQ0UyXFx1MENFM1xcdTBEMDBcXHUwRDAxXFx1MEQzQlxcdTBEM0NcXHUwRDQxLVxcdTBENDRcXHUwRDREXFx1MEQ2MlxcdTBENjNcXHUwRDgxXFx1MERDQVxcdTBERDItXFx1MERENFxcdTBERDZcXHUwRTMxXFx1MEUzNC1cXHUwRTNBXFx1MEU0Ny1cXHUwRTRFXFx1MEVCMVxcdTBFQjQtXFx1MEVCQ1xcdTBFQzgtXFx1MEVDRFxcdTBGMThcXHUwRjE5XFx1MEYzNVxcdTBGMzdcXHUwRjM5XFx1MEY3MS1cXHUwRjdFXFx1MEY4MC1cXHUwRjg0XFx1MEY4NlxcdTBGODdcXHUwRjhELVxcdTBGOTdcXHUwRjk5LVxcdTBGQkNcXHUwRkM2XFx1MTAyRC1cXHUxMDMwXFx1MTAzMi1cXHUxMDM3XFx1MTAzOVxcdTEwM0FcXHUxMDNEXFx1MTAzRVxcdTEwNThcXHUxMDU5XFx1MTA1RS1cXHUxMDYwXFx1MTA3MS1cXHUxMDc0XFx1MTA4MlxcdTEwODVcXHUxMDg2XFx1MTA4RFxcdTEwOURcXHUxMzVELVxcdTEzNUZcXHUxNzEyLVxcdTE3MTRcXHUxNzMyLVxcdTE3MzRcXHUxNzUyXFx1MTc1M1xcdTE3NzJcXHUxNzczXFx1MTdCNFxcdTE3QjVcXHUxN0I3LVxcdTE3QkRcXHUxN0M2XFx1MTdDOS1cXHUxN0QzXFx1MTdERFxcdTE4MEItXFx1MTgwRFxcdTE4ODVcXHUxODg2XFx1MThBOVxcdTE5MjAtXFx1MTkyMlxcdTE5MjdcXHUxOTI4XFx1MTkzMlxcdTE5MzktXFx1MTkzQlxcdTFBMTdcXHUxQTE4XFx1MUExQlxcdTFBNTZcXHUxQTU4LVxcdTFBNUVcXHUxQTYwXFx1MUE2MlxcdTFBNjUtXFx1MUE2Q1xcdTFBNzMtXFx1MUE3Q1xcdTFBN0ZcXHUxQUIwLVxcdTFBQkRcXHUxQUJGXFx1MUFDMFxcdTFCMDAtXFx1MUIwM1xcdTFCMzRcXHUxQjM2LVxcdTFCM0FcXHUxQjNDXFx1MUI0MlxcdTFCNkItXFx1MUI3M1xcdTFCODBcXHUxQjgxXFx1MUJBMi1cXHUxQkE1XFx1MUJBOFxcdTFCQTlcXHUxQkFCLVxcdTFCQURcXHUxQkU2XFx1MUJFOFxcdTFCRTlcXHUxQkVEXFx1MUJFRi1cXHUxQkYxXFx1MUMyQy1cXHUxQzMzXFx1MUMzNlxcdTFDMzdcXHUxQ0QwLVxcdTFDRDJcXHUxQ0Q0LVxcdTFDRTBcXHUxQ0UyLVxcdTFDRThcXHUxQ0VEXFx1MUNGNFxcdTFDRjhcXHUxQ0Y5XFx1MURDMC1cXHUxREY5XFx1MURGQi1cXHUxREZGXFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtXFx1MjBGMFxcdTJDRUYtXFx1MkNGMVxcdTJEN0ZcXHUyREUwLVxcdTJERkZcXHUzMDJBLVxcdTMwMkRcXHUzMDk5XFx1MzA5QVxcdUE2NkZcXHVBNjc0LVxcdUE2N0RcXHVBNjlFXFx1QTY5RlxcdUE2RjBcXHVBNkYxXFx1QTgwMlxcdUE4MDZcXHVBODBCXFx1QTgyNVxcdUE4MjZcXHVBODJDXFx1QThDNFxcdUE4QzVcXHVBOEUwLVxcdUE4RjFcXHVBOEZGXFx1QTkyNi1cXHVBOTJEXFx1QTk0Ny1cXHVBOTUxXFx1QTk4MC1cXHVBOTgyXFx1QTlCM1xcdUE5QjYtXFx1QTlCOVxcdUE5QkNcXHVBOUJEXFx1QTlFNVxcdUFBMjktXFx1QUEyRVxcdUFBMzFcXHVBQTMyXFx1QUEzNVxcdUFBMzZcXHVBQTQzXFx1QUE0Q1xcdUFBN0NcXHVBQUIwXFx1QUFCMi1cXHVBQUI0XFx1QUFCN1xcdUFBQjhcXHVBQUJFXFx1QUFCRlxcdUFBQzFcXHVBQUVDXFx1QUFFRFxcdUFBRjZcXHVBQkU1XFx1QUJFOFxcdUFCRURcXHVGQjFFXFx1RkUwMC1cXHVGRTBGXFx1RkUyMC1cXHVGRTJGJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODAwW1xcdURERkRcXHVERUUwXFx1REY3Ni1cXHVERjdBXXxcXHVEODAyW1xcdURFMDEtXFx1REUwM1xcdURFMDVcXHVERTA2XFx1REUwQy1cXHVERTBGXFx1REUzOC1cXHVERTNBXFx1REUzRlxcdURFRTVcXHVERUU2XXxcXHVEODAzW1xcdUREMjQtXFx1REQyN1xcdURFQUJcXHVERUFDXFx1REY0Ni1cXHVERjUwXXxcXHVEODA0W1xcdURDMDFcXHVEQzM4LVxcdURDNDZcXHVEQzdGLVxcdURDODFcXHVEQ0IzLVxcdURDQjZcXHVEQ0I5XFx1RENCQVxcdUREMDAtXFx1REQwMlxcdUREMjctXFx1REQyQlxcdUREMkQtXFx1REQzNFxcdURENzNcXHVERDgwXFx1REQ4MVxcdUREQjYtXFx1RERCRVxcdUREQzktXFx1RERDQ1xcdUREQ0ZcXHVERTJGLVxcdURFMzFcXHVERTM0XFx1REUzNlxcdURFMzdcXHVERTNFXFx1REVERlxcdURFRTMtXFx1REVFQVxcdURGMDBcXHVERjAxXFx1REYzQlxcdURGM0NcXHVERjQwXFx1REY2Ni1cXHVERjZDXFx1REY3MC1cXHVERjc0XXxcXHVEODA1W1xcdURDMzgtXFx1REMzRlxcdURDNDItXFx1REM0NFxcdURDNDZcXHVEQzVFXFx1RENCMy1cXHVEQ0I4XFx1RENCQVxcdURDQkZcXHVEQ0MwXFx1RENDMlxcdURDQzNcXHVEREIyLVxcdUREQjVcXHVEREJDXFx1RERCRFxcdUREQkZcXHVEREMwXFx1REREQ1xcdURERERcXHVERTMzLVxcdURFM0FcXHVERTNEXFx1REUzRlxcdURFNDBcXHVERUFCXFx1REVBRFxcdURFQjAtXFx1REVCNVxcdURFQjdcXHVERjFELVxcdURGMUZcXHVERjIyLVxcdURGMjVcXHVERjI3LVxcdURGMkJdfFxcdUQ4MDZbXFx1REMyRi1cXHVEQzM3XFx1REMzOVxcdURDM0FcXHVERDNCXFx1REQzQ1xcdUREM0VcXHVERDQzXFx1RERENC1cXHVEREQ3XFx1REREQVxcdUREREJcXHVEREUwXFx1REUwMS1cXHVERTBBXFx1REUzMy1cXHVERTM4XFx1REUzQi1cXHVERTNFXFx1REU0N1xcdURFNTEtXFx1REU1NlxcdURFNTktXFx1REU1QlxcdURFOEEtXFx1REU5NlxcdURFOThcXHVERTk5XXxcXHVEODA3W1xcdURDMzAtXFx1REMzNlxcdURDMzgtXFx1REMzRFxcdURDM0ZcXHVEQzkyLVxcdURDQTdcXHVEQ0FBLVxcdURDQjBcXHVEQ0IyXFx1RENCM1xcdURDQjVcXHVEQ0I2XFx1REQzMS1cXHVERDM2XFx1REQzQVxcdUREM0NcXHVERDNEXFx1REQzRi1cXHVERDQ1XFx1REQ0N1xcdUREOTBcXHVERDkxXFx1REQ5NVxcdUREOTdcXHVERUYzXFx1REVGNF18XFx1RDgxQVtcXHVERUYwLVxcdURFRjRcXHVERjMwLVxcdURGMzZdfFxcdUQ4MUJbXFx1REY0RlxcdURGOEYtXFx1REY5MlxcdURGRTRdfFxcdUQ4MkZbXFx1REM5RFxcdURDOUVdfFxcdUQ4MzRbXFx1REQ2Ny1cXHVERDY5XFx1REQ3Qi1cXHVERDgyXFx1REQ4NS1cXHVERDhCXFx1RERBQS1cXHVEREFEXFx1REU0Mi1cXHVERTQ0XXxcXHVEODM2W1xcdURFMDAtXFx1REUzNlxcdURFM0ItXFx1REU2Q1xcdURFNzVcXHVERTg0XFx1REU5Qi1cXHVERTlGXFx1REVBMS1cXHVERUFGXXxcXHVEODM4W1xcdURDMDAtXFx1REMwNlxcdURDMDgtXFx1REMxOFxcdURDMUItXFx1REMyMVxcdURDMjNcXHVEQzI0XFx1REMyNi1cXHVEQzJBXFx1REQzMC1cXHVERDM2XFx1REVFQy1cXHVERUVGXXxcXHVEODNBW1xcdURDRDAtXFx1RENENlxcdURENDQtXFx1REQ0QV18XFx1REI0MFtcXHVERDAwLVxcdURERUZdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdOJyxcbiAgICAgICAgJ2FsaWFzJzogJ051bWJlcicsXG4gICAgICAgICdibXAnOiAnMC05XFx4QjJcXHhCM1xceEI5XFx4QkMtXFx4QkVcXHUwNjYwLVxcdTA2NjlcXHUwNkYwLVxcdTA2RjlcXHUwN0MwLVxcdTA3QzlcXHUwOTY2LVxcdTA5NkZcXHUwOUU2LVxcdTA5RUZcXHUwOUY0LVxcdTA5RjlcXHUwQTY2LVxcdTBBNkZcXHUwQUU2LVxcdTBBRUZcXHUwQjY2LVxcdTBCNkZcXHUwQjcyLVxcdTBCNzdcXHUwQkU2LVxcdTBCRjJcXHUwQzY2LVxcdTBDNkZcXHUwQzc4LVxcdTBDN0VcXHUwQ0U2LVxcdTBDRUZcXHUwRDU4LVxcdTBENUVcXHUwRDY2LVxcdTBENzhcXHUwREU2LVxcdTBERUZcXHUwRTUwLVxcdTBFNTlcXHUwRUQwLVxcdTBFRDlcXHUwRjIwLVxcdTBGMzNcXHUxMDQwLVxcdTEwNDlcXHUxMDkwLVxcdTEwOTlcXHUxMzY5LVxcdTEzN0NcXHUxNkVFLVxcdTE2RjBcXHUxN0UwLVxcdTE3RTlcXHUxN0YwLVxcdTE3RjlcXHUxODEwLVxcdTE4MTlcXHUxOTQ2LVxcdTE5NEZcXHUxOUQwLVxcdTE5REFcXHUxQTgwLVxcdTFBODlcXHUxQTkwLVxcdTFBOTlcXHUxQjUwLVxcdTFCNTlcXHUxQkIwLVxcdTFCQjlcXHUxQzQwLVxcdTFDNDlcXHUxQzUwLVxcdTFDNTlcXHUyMDcwXFx1MjA3NC1cXHUyMDc5XFx1MjA4MC1cXHUyMDg5XFx1MjE1MC1cXHUyMTgyXFx1MjE4NS1cXHUyMTg5XFx1MjQ2MC1cXHUyNDlCXFx1MjRFQS1cXHUyNEZGXFx1Mjc3Ni1cXHUyNzkzXFx1MkNGRFxcdTMwMDdcXHUzMDIxLVxcdTMwMjlcXHUzMDM4LVxcdTMwM0FcXHUzMTkyLVxcdTMxOTVcXHUzMjIwLVxcdTMyMjlcXHUzMjQ4LVxcdTMyNEZcXHUzMjUxLVxcdTMyNUZcXHUzMjgwLVxcdTMyODlcXHUzMkIxLVxcdTMyQkZcXHVBNjIwLVxcdUE2MjlcXHVBNkU2LVxcdUE2RUZcXHVBODMwLVxcdUE4MzVcXHVBOEQwLVxcdUE4RDlcXHVBOTAwLVxcdUE5MDlcXHVBOUQwLVxcdUE5RDlcXHVBOUYwLVxcdUE5RjlcXHVBQTUwLVxcdUFBNTlcXHVBQkYwLVxcdUFCRjlcXHVGRjEwLVxcdUZGMTknLFxuICAgICAgICAnYXN0cmFsJzogJ1xcdUQ4MDBbXFx1REQwNy1cXHVERDMzXFx1REQ0MC1cXHVERDc4XFx1REQ4QVxcdUREOEJcXHVERUUxLVxcdURFRkJcXHVERjIwLVxcdURGMjNcXHVERjQxXFx1REY0QVxcdURGRDEtXFx1REZENV18XFx1RDgwMVtcXHVEQ0EwLVxcdURDQTldfFxcdUQ4MDJbXFx1REM1OC1cXHVEQzVGXFx1REM3OS1cXHVEQzdGXFx1RENBNy1cXHVEQ0FGXFx1RENGQi1cXHVEQ0ZGXFx1REQxNi1cXHVERDFCXFx1RERCQ1xcdUREQkRcXHVEREMwLVxcdUREQ0ZcXHVEREQyLVxcdURERkZcXHVERTQwLVxcdURFNDhcXHVERTdEXFx1REU3RVxcdURFOUQtXFx1REU5RlxcdURFRUItXFx1REVFRlxcdURGNTgtXFx1REY1RlxcdURGNzgtXFx1REY3RlxcdURGQTktXFx1REZBRl18XFx1RDgwM1tcXHVEQ0ZBLVxcdURDRkZcXHVERDMwLVxcdUREMzlcXHVERTYwLVxcdURFN0VcXHVERjFELVxcdURGMjZcXHVERjUxLVxcdURGNTRcXHVERkM1LVxcdURGQ0JdfFxcdUQ4MDRbXFx1REM1Mi1cXHVEQzZGXFx1RENGMC1cXHVEQ0Y5XFx1REQzNi1cXHVERDNGXFx1REREMC1cXHVEREQ5XFx1RERFMS1cXHVEREY0XFx1REVGMC1cXHVERUY5XXxcXHVEODA1W1xcdURDNTAtXFx1REM1OVxcdURDRDAtXFx1RENEOVxcdURFNTAtXFx1REU1OVxcdURFQzAtXFx1REVDOVxcdURGMzAtXFx1REYzQl18XFx1RDgwNltcXHVEQ0UwLVxcdURDRjJcXHVERDUwLVxcdURENTldfFxcdUQ4MDdbXFx1REM1MC1cXHVEQzZDXFx1REQ1MC1cXHVERDU5XFx1RERBMC1cXHVEREE5XFx1REZDMC1cXHVERkQ0XXxcXHVEODA5W1xcdURDMDAtXFx1REM2RV18XFx1RDgxQVtcXHVERTYwLVxcdURFNjlcXHVERjUwLVxcdURGNTlcXHVERjVCLVxcdURGNjFdfFxcdUQ4MUJbXFx1REU4MC1cXHVERTk2XXxcXHVEODM0W1xcdURFRTAtXFx1REVGM1xcdURGNjAtXFx1REY3OF18XFx1RDgzNVtcXHVERkNFLVxcdURGRkZdfFxcdUQ4MzhbXFx1REQ0MC1cXHVERDQ5XFx1REVGMC1cXHVERUY5XXxcXHVEODNBW1xcdURDQzctXFx1RENDRlxcdURENTAtXFx1REQ1OV18XFx1RDgzQltcXHVEQzcxLVxcdURDQUJcXHVEQ0FELVxcdURDQUZcXHVEQ0IxLVxcdURDQjRcXHVERDAxLVxcdUREMkRcXHVERDJGLVxcdUREM0RdfFxcdUQ4M0NbXFx1REQwMC1cXHVERDBDXXxcXHVEODNFW1xcdURGRjAtXFx1REZGOV0nXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ05kJyxcbiAgICAgICAgJ2FsaWFzJzogJ0RlY2ltYWxfTnVtYmVyJyxcbiAgICAgICAgJ2JtcCc6ICcwLTlcXHUwNjYwLVxcdTA2NjlcXHUwNkYwLVxcdTA2RjlcXHUwN0MwLVxcdTA3QzlcXHUwOTY2LVxcdTA5NkZcXHUwOUU2LVxcdTA5RUZcXHUwQTY2LVxcdTBBNkZcXHUwQUU2LVxcdTBBRUZcXHUwQjY2LVxcdTBCNkZcXHUwQkU2LVxcdTBCRUZcXHUwQzY2LVxcdTBDNkZcXHUwQ0U2LVxcdTBDRUZcXHUwRDY2LVxcdTBENkZcXHUwREU2LVxcdTBERUZcXHUwRTUwLVxcdTBFNTlcXHUwRUQwLVxcdTBFRDlcXHUwRjIwLVxcdTBGMjlcXHUxMDQwLVxcdTEwNDlcXHUxMDkwLVxcdTEwOTlcXHUxN0UwLVxcdTE3RTlcXHUxODEwLVxcdTE4MTlcXHUxOTQ2LVxcdTE5NEZcXHUxOUQwLVxcdTE5RDlcXHUxQTgwLVxcdTFBODlcXHUxQTkwLVxcdTFBOTlcXHUxQjUwLVxcdTFCNTlcXHUxQkIwLVxcdTFCQjlcXHUxQzQwLVxcdTFDNDlcXHUxQzUwLVxcdTFDNTlcXHVBNjIwLVxcdUE2MjlcXHVBOEQwLVxcdUE4RDlcXHVBOTAwLVxcdUE5MDlcXHVBOUQwLVxcdUE5RDlcXHVBOUYwLVxcdUE5RjlcXHVBQTUwLVxcdUFBNTlcXHVBQkYwLVxcdUFCRjlcXHVGRjEwLVxcdUZGMTknLFxuICAgICAgICAnYXN0cmFsJzogJ1xcdUQ4MDFbXFx1RENBMC1cXHVEQ0E5XXxcXHVEODAzW1xcdUREMzAtXFx1REQzOV18XFx1RDgwNFtcXHVEQzY2LVxcdURDNkZcXHVEQ0YwLVxcdURDRjlcXHVERDM2LVxcdUREM0ZcXHVEREQwLVxcdURERDlcXHVERUYwLVxcdURFRjldfFxcdUQ4MDVbXFx1REM1MC1cXHVEQzU5XFx1RENEMC1cXHVEQ0Q5XFx1REU1MC1cXHVERTU5XFx1REVDMC1cXHVERUM5XFx1REYzMC1cXHVERjM5XXxcXHVEODA2W1xcdURDRTAtXFx1RENFOVxcdURENTAtXFx1REQ1OV18XFx1RDgwN1tcXHVEQzUwLVxcdURDNTlcXHVERDUwLVxcdURENTlcXHVEREEwLVxcdUREQTldfFxcdUQ4MUFbXFx1REU2MC1cXHVERTY5XFx1REY1MC1cXHVERjU5XXxcXHVEODM1W1xcdURGQ0UtXFx1REZGRl18XFx1RDgzOFtcXHVERDQwLVxcdURENDlcXHVERUYwLVxcdURFRjldfFxcdUQ4M0FbXFx1REQ1MC1cXHVERDU5XXxcXHVEODNFW1xcdURGRjAtXFx1REZGOV0nXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ05sJyxcbiAgICAgICAgJ2FsaWFzJzogJ0xldHRlcl9OdW1iZXInLFxuICAgICAgICAnYm1wJzogJ1xcdTE2RUUtXFx1MTZGMFxcdTIxNjAtXFx1MjE4MlxcdTIxODUtXFx1MjE4OFxcdTMwMDdcXHUzMDIxLVxcdTMwMjlcXHUzMDM4LVxcdTMwM0FcXHVBNkU2LVxcdUE2RUYnLFxuICAgICAgICAnYXN0cmFsJzogJ1xcdUQ4MDBbXFx1REQ0MC1cXHVERDc0XFx1REY0MVxcdURGNEFcXHVERkQxLVxcdURGRDVdfFxcdUQ4MDlbXFx1REMwMC1cXHVEQzZFXSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnTm8nLFxuICAgICAgICAnYWxpYXMnOiAnT3RoZXJfTnVtYmVyJyxcbiAgICAgICAgJ2JtcCc6ICdcXHhCMlxceEIzXFx4QjlcXHhCQy1cXHhCRVxcdTA5RjQtXFx1MDlGOVxcdTBCNzItXFx1MEI3N1xcdTBCRjAtXFx1MEJGMlxcdTBDNzgtXFx1MEM3RVxcdTBENTgtXFx1MEQ1RVxcdTBENzAtXFx1MEQ3OFxcdTBGMkEtXFx1MEYzM1xcdTEzNjktXFx1MTM3Q1xcdTE3RjAtXFx1MTdGOVxcdTE5REFcXHUyMDcwXFx1MjA3NC1cXHUyMDc5XFx1MjA4MC1cXHUyMDg5XFx1MjE1MC1cXHUyMTVGXFx1MjE4OVxcdTI0NjAtXFx1MjQ5QlxcdTI0RUEtXFx1MjRGRlxcdTI3NzYtXFx1Mjc5M1xcdTJDRkRcXHUzMTkyLVxcdTMxOTVcXHUzMjIwLVxcdTMyMjlcXHUzMjQ4LVxcdTMyNEZcXHUzMjUxLVxcdTMyNUZcXHUzMjgwLVxcdTMyODlcXHUzMkIxLVxcdTMyQkZcXHVBODMwLVxcdUE4MzUnLFxuICAgICAgICAnYXN0cmFsJzogJ1xcdUQ4MDBbXFx1REQwNy1cXHVERDMzXFx1REQ3NS1cXHVERDc4XFx1REQ4QVxcdUREOEJcXHVERUUxLVxcdURFRkJcXHVERjIwLVxcdURGMjNdfFxcdUQ4MDJbXFx1REM1OC1cXHVEQzVGXFx1REM3OS1cXHVEQzdGXFx1RENBNy1cXHVEQ0FGXFx1RENGQi1cXHVEQ0ZGXFx1REQxNi1cXHVERDFCXFx1RERCQ1xcdUREQkRcXHVEREMwLVxcdUREQ0ZcXHVEREQyLVxcdURERkZcXHVERTQwLVxcdURFNDhcXHVERTdEXFx1REU3RVxcdURFOUQtXFx1REU5RlxcdURFRUItXFx1REVFRlxcdURGNTgtXFx1REY1RlxcdURGNzgtXFx1REY3RlxcdURGQTktXFx1REZBRl18XFx1RDgwM1tcXHVEQ0ZBLVxcdURDRkZcXHVERTYwLVxcdURFN0VcXHVERjFELVxcdURGMjZcXHVERjUxLVxcdURGNTRcXHVERkM1LVxcdURGQ0JdfFxcdUQ4MDRbXFx1REM1Mi1cXHVEQzY1XFx1RERFMS1cXHVEREY0XXxcXHVEODA1W1xcdURGM0FcXHVERjNCXXxcXHVEODA2W1xcdURDRUEtXFx1RENGMl18XFx1RDgwN1tcXHVEQzVBLVxcdURDNkNcXHVERkMwLVxcdURGRDRdfFxcdUQ4MUFbXFx1REY1Qi1cXHVERjYxXXxcXHVEODFCW1xcdURFODAtXFx1REU5Nl18XFx1RDgzNFtcXHVERUUwLVxcdURFRjNcXHVERjYwLVxcdURGNzhdfFxcdUQ4M0FbXFx1RENDNy1cXHVEQ0NGXXxcXHVEODNCW1xcdURDNzEtXFx1RENBQlxcdURDQUQtXFx1RENBRlxcdURDQjEtXFx1RENCNFxcdUREMDEtXFx1REQyRFxcdUREMkYtXFx1REQzRF18XFx1RDgzQ1tcXHVERDAwLVxcdUREMENdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdQJyxcbiAgICAgICAgJ2FsaWFzJzogJ1B1bmN0dWF0aW9uJyxcbiAgICAgICAgJ2JtcCc6ICchLSMlLVxcXFwqLC1cXFxcLzo7XFxcXD9AXFxcXFstXFxcXF1fXFxcXHtcXFxcfVxceEExXFx4QTdcXHhBQlxceEI2XFx4QjdcXHhCQlxceEJGXFx1MDM3RVxcdTAzODdcXHUwNTVBLVxcdTA1NUZcXHUwNTg5XFx1MDU4QVxcdTA1QkVcXHUwNUMwXFx1MDVDM1xcdTA1QzZcXHUwNUYzXFx1MDVGNFxcdTA2MDlcXHUwNjBBXFx1MDYwQ1xcdTA2MERcXHUwNjFCXFx1MDYxRVxcdTA2MUZcXHUwNjZBLVxcdTA2NkRcXHUwNkQ0XFx1MDcwMC1cXHUwNzBEXFx1MDdGNy1cXHUwN0Y5XFx1MDgzMC1cXHUwODNFXFx1MDg1RVxcdTA5NjRcXHUwOTY1XFx1MDk3MFxcdTA5RkRcXHUwQTc2XFx1MEFGMFxcdTBDNzdcXHUwQzg0XFx1MERGNFxcdTBFNEZcXHUwRTVBXFx1MEU1QlxcdTBGMDQtXFx1MEYxMlxcdTBGMTRcXHUwRjNBLVxcdTBGM0RcXHUwRjg1XFx1MEZEMC1cXHUwRkQ0XFx1MEZEOVxcdTBGREFcXHUxMDRBLVxcdTEwNEZcXHUxMEZCXFx1MTM2MC1cXHUxMzY4XFx1MTQwMFxcdTE2NkVcXHUxNjlCXFx1MTY5Q1xcdTE2RUItXFx1MTZFRFxcdTE3MzVcXHUxNzM2XFx1MTdENC1cXHUxN0Q2XFx1MTdEOC1cXHUxN0RBXFx1MTgwMC1cXHUxODBBXFx1MTk0NFxcdTE5NDVcXHUxQTFFXFx1MUExRlxcdTFBQTAtXFx1MUFBNlxcdTFBQTgtXFx1MUFBRFxcdTFCNUEtXFx1MUI2MFxcdTFCRkMtXFx1MUJGRlxcdTFDM0ItXFx1MUMzRlxcdTFDN0VcXHUxQzdGXFx1MUNDMC1cXHUxQ0M3XFx1MUNEM1xcdTIwMTAtXFx1MjAyN1xcdTIwMzAtXFx1MjA0M1xcdTIwNDUtXFx1MjA1MVxcdTIwNTMtXFx1MjA1RVxcdTIwN0RcXHUyMDdFXFx1MjA4RFxcdTIwOEVcXHUyMzA4LVxcdTIzMEJcXHUyMzI5XFx1MjMyQVxcdTI3NjgtXFx1Mjc3NVxcdTI3QzVcXHUyN0M2XFx1MjdFNi1cXHUyN0VGXFx1Mjk4My1cXHUyOTk4XFx1MjlEOC1cXHUyOURCXFx1MjlGQ1xcdTI5RkRcXHUyQ0Y5LVxcdTJDRkNcXHUyQ0ZFXFx1MkNGRlxcdTJENzBcXHUyRTAwLVxcdTJFMkVcXHUyRTMwLVxcdTJFNEZcXHUyRTUyXFx1MzAwMS1cXHUzMDAzXFx1MzAwOC1cXHUzMDExXFx1MzAxNC1cXHUzMDFGXFx1MzAzMFxcdTMwM0RcXHUzMEEwXFx1MzBGQlxcdUE0RkVcXHVBNEZGXFx1QTYwRC1cXHVBNjBGXFx1QTY3M1xcdUE2N0VcXHVBNkYyLVxcdUE2RjdcXHVBODc0LVxcdUE4NzdcXHVBOENFXFx1QThDRlxcdUE4RjgtXFx1QThGQVxcdUE4RkNcXHVBOTJFXFx1QTkyRlxcdUE5NUZcXHVBOUMxLVxcdUE5Q0RcXHVBOURFXFx1QTlERlxcdUFBNUMtXFx1QUE1RlxcdUFBREVcXHVBQURGXFx1QUFGMFxcdUFBRjFcXHVBQkVCXFx1RkQzRVxcdUZEM0ZcXHVGRTEwLVxcdUZFMTlcXHVGRTMwLVxcdUZFNTJcXHVGRTU0LVxcdUZFNjFcXHVGRTYzXFx1RkU2OFxcdUZFNkFcXHVGRTZCXFx1RkYwMS1cXHVGRjAzXFx1RkYwNS1cXHVGRjBBXFx1RkYwQy1cXHVGRjBGXFx1RkYxQVxcdUZGMUJcXHVGRjFGXFx1RkYyMFxcdUZGM0ItXFx1RkYzRFxcdUZGM0ZcXHVGRjVCXFx1RkY1RFxcdUZGNUYtXFx1RkY2NScsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgwMFtcXHVERDAwLVxcdUREMDJcXHVERjlGXFx1REZEMF18XFx1RDgwMVxcdURENkZ8XFx1RDgwMltcXHVEQzU3XFx1REQxRlxcdUREM0ZcXHVERTUwLVxcdURFNThcXHVERTdGXFx1REVGMC1cXHVERUY2XFx1REYzOS1cXHVERjNGXFx1REY5OS1cXHVERjlDXXxcXHVEODAzW1xcdURFQURcXHVERjU1LVxcdURGNTldfFxcdUQ4MDRbXFx1REM0Ny1cXHVEQzREXFx1RENCQlxcdURDQkNcXHVEQ0JFLVxcdURDQzFcXHVERDQwLVxcdURENDNcXHVERDc0XFx1REQ3NVxcdUREQzUtXFx1RERDOFxcdUREQ0RcXHVERERCXFx1RERERC1cXHVERERGXFx1REUzOC1cXHVERTNEXFx1REVBOV18XFx1RDgwNVtcXHVEQzRCLVxcdURDNEZcXHVEQzVBXFx1REM1QlxcdURDNURcXHVEQ0M2XFx1RERDMS1cXHVEREQ3XFx1REU0MS1cXHVERTQzXFx1REU2MC1cXHVERTZDXFx1REYzQy1cXHVERjNFXXxcXHVEODA2W1xcdURDM0JcXHVERDQ0LVxcdURENDZcXHVEREUyXFx1REUzRi1cXHVERTQ2XFx1REU5QS1cXHVERTlDXFx1REU5RS1cXHVERUEyXXxcXHVEODA3W1xcdURDNDEtXFx1REM0NVxcdURDNzBcXHVEQzcxXFx1REVGN1xcdURFRjhcXHVERkZGXXxcXHVEODA5W1xcdURDNzAtXFx1REM3NF18XFx1RDgxQVtcXHVERTZFXFx1REU2RlxcdURFRjVcXHVERjM3LVxcdURGM0JcXHVERjQ0XXxcXHVEODFCW1xcdURFOTctXFx1REU5QVxcdURGRTJdfFxcdUQ4MkZcXHVEQzlGfFxcdUQ4MzZbXFx1REU4Ny1cXHVERThCXXxcXHVEODNBW1xcdURENUVcXHVERDVGXSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnUGMnLFxuICAgICAgICAnYWxpYXMnOiAnQ29ubmVjdG9yX1B1bmN0dWF0aW9uJyxcbiAgICAgICAgJ2JtcCc6ICdfXFx1MjAzRlxcdTIwNDBcXHUyMDU0XFx1RkUzM1xcdUZFMzRcXHVGRTRELVxcdUZFNEZcXHVGRjNGJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdQZCcsXG4gICAgICAgICdhbGlhcyc6ICdEYXNoX1B1bmN0dWF0aW9uJyxcbiAgICAgICAgJ2JtcCc6ICdcXFxcLVxcdTA1OEFcXHUwNUJFXFx1MTQwMFxcdTE4MDZcXHUyMDEwLVxcdTIwMTVcXHUyRTE3XFx1MkUxQVxcdTJFM0FcXHUyRTNCXFx1MkU0MFxcdTMwMUNcXHUzMDMwXFx1MzBBMFxcdUZFMzFcXHVGRTMyXFx1RkU1OFxcdUZFNjNcXHVGRjBEJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODAzXFx1REVBRCdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnUGUnLFxuICAgICAgICAnYWxpYXMnOiAnQ2xvc2VfUHVuY3R1YXRpb24nLFxuICAgICAgICAnYm1wJzogJ1xcXFwpXFxcXF1cXFxcfVxcdTBGM0JcXHUwRjNEXFx1MTY5Q1xcdTIwNDZcXHUyMDdFXFx1MjA4RVxcdTIzMDlcXHUyMzBCXFx1MjMyQVxcdTI3NjlcXHUyNzZCXFx1Mjc2RFxcdTI3NkZcXHUyNzcxXFx1Mjc3M1xcdTI3NzVcXHUyN0M2XFx1MjdFN1xcdTI3RTlcXHUyN0VCXFx1MjdFRFxcdTI3RUZcXHUyOTg0XFx1Mjk4NlxcdTI5ODhcXHUyOThBXFx1Mjk4Q1xcdTI5OEVcXHUyOTkwXFx1Mjk5MlxcdTI5OTRcXHUyOTk2XFx1Mjk5OFxcdTI5RDlcXHUyOURCXFx1MjlGRFxcdTJFMjNcXHUyRTI1XFx1MkUyN1xcdTJFMjlcXHUzMDA5XFx1MzAwQlxcdTMwMERcXHUzMDBGXFx1MzAxMVxcdTMwMTVcXHUzMDE3XFx1MzAxOVxcdTMwMUJcXHUzMDFFXFx1MzAxRlxcdUZEM0VcXHVGRTE4XFx1RkUzNlxcdUZFMzhcXHVGRTNBXFx1RkUzQ1xcdUZFM0VcXHVGRTQwXFx1RkU0MlxcdUZFNDRcXHVGRTQ4XFx1RkU1QVxcdUZFNUNcXHVGRTVFXFx1RkYwOVxcdUZGM0RcXHVGRjVEXFx1RkY2MFxcdUZGNjMnXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ1BmJyxcbiAgICAgICAgJ2FsaWFzJzogJ0ZpbmFsX1B1bmN0dWF0aW9uJyxcbiAgICAgICAgJ2JtcCc6ICdcXHhCQlxcdTIwMTlcXHUyMDFEXFx1MjAzQVxcdTJFMDNcXHUyRTA1XFx1MkUwQVxcdTJFMERcXHUyRTFEXFx1MkUyMSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnUGknLFxuICAgICAgICAnYWxpYXMnOiAnSW5pdGlhbF9QdW5jdHVhdGlvbicsXG4gICAgICAgICdibXAnOiAnXFx4QUJcXHUyMDE4XFx1MjAxQlxcdTIwMUNcXHUyMDFGXFx1MjAzOVxcdTJFMDJcXHUyRTA0XFx1MkUwOVxcdTJFMENcXHUyRTFDXFx1MkUyMCdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnUG8nLFxuICAgICAgICAnYWxpYXMnOiAnT3RoZXJfUHVuY3R1YXRpb24nLFxuICAgICAgICAnYm1wJzogJyEtIyUtXFwnXFxcXCosXFxcXC5cXFxcLzo7XFxcXD9AXFxcXFxceEExXFx4QTdcXHhCNlxceEI3XFx4QkZcXHUwMzdFXFx1MDM4N1xcdTA1NUEtXFx1MDU1RlxcdTA1ODlcXHUwNUMwXFx1MDVDM1xcdTA1QzZcXHUwNUYzXFx1MDVGNFxcdTA2MDlcXHUwNjBBXFx1MDYwQ1xcdTA2MERcXHUwNjFCXFx1MDYxRVxcdTA2MUZcXHUwNjZBLVxcdTA2NkRcXHUwNkQ0XFx1MDcwMC1cXHUwNzBEXFx1MDdGNy1cXHUwN0Y5XFx1MDgzMC1cXHUwODNFXFx1MDg1RVxcdTA5NjRcXHUwOTY1XFx1MDk3MFxcdTA5RkRcXHUwQTc2XFx1MEFGMFxcdTBDNzdcXHUwQzg0XFx1MERGNFxcdTBFNEZcXHUwRTVBXFx1MEU1QlxcdTBGMDQtXFx1MEYxMlxcdTBGMTRcXHUwRjg1XFx1MEZEMC1cXHUwRkQ0XFx1MEZEOVxcdTBGREFcXHUxMDRBLVxcdTEwNEZcXHUxMEZCXFx1MTM2MC1cXHUxMzY4XFx1MTY2RVxcdTE2RUItXFx1MTZFRFxcdTE3MzVcXHUxNzM2XFx1MTdENC1cXHUxN0Q2XFx1MTdEOC1cXHUxN0RBXFx1MTgwMC1cXHUxODA1XFx1MTgwNy1cXHUxODBBXFx1MTk0NFxcdTE5NDVcXHUxQTFFXFx1MUExRlxcdTFBQTAtXFx1MUFBNlxcdTFBQTgtXFx1MUFBRFxcdTFCNUEtXFx1MUI2MFxcdTFCRkMtXFx1MUJGRlxcdTFDM0ItXFx1MUMzRlxcdTFDN0VcXHUxQzdGXFx1MUNDMC1cXHUxQ0M3XFx1MUNEM1xcdTIwMTZcXHUyMDE3XFx1MjAyMC1cXHUyMDI3XFx1MjAzMC1cXHUyMDM4XFx1MjAzQi1cXHUyMDNFXFx1MjA0MS1cXHUyMDQzXFx1MjA0Ny1cXHUyMDUxXFx1MjA1M1xcdTIwNTUtXFx1MjA1RVxcdTJDRjktXFx1MkNGQ1xcdTJDRkVcXHUyQ0ZGXFx1MkQ3MFxcdTJFMDBcXHUyRTAxXFx1MkUwNi1cXHUyRTA4XFx1MkUwQlxcdTJFMEUtXFx1MkUxNlxcdTJFMThcXHUyRTE5XFx1MkUxQlxcdTJFMUVcXHUyRTFGXFx1MkUyQS1cXHUyRTJFXFx1MkUzMC1cXHUyRTM5XFx1MkUzQy1cXHUyRTNGXFx1MkU0MVxcdTJFNDMtXFx1MkU0RlxcdTJFNTJcXHUzMDAxLVxcdTMwMDNcXHUzMDNEXFx1MzBGQlxcdUE0RkVcXHVBNEZGXFx1QTYwRC1cXHVBNjBGXFx1QTY3M1xcdUE2N0VcXHVBNkYyLVxcdUE2RjdcXHVBODc0LVxcdUE4NzdcXHVBOENFXFx1QThDRlxcdUE4RjgtXFx1QThGQVxcdUE4RkNcXHVBOTJFXFx1QTkyRlxcdUE5NUZcXHVBOUMxLVxcdUE5Q0RcXHVBOURFXFx1QTlERlxcdUFBNUMtXFx1QUE1RlxcdUFBREVcXHVBQURGXFx1QUFGMFxcdUFBRjFcXHVBQkVCXFx1RkUxMC1cXHVGRTE2XFx1RkUxOVxcdUZFMzBcXHVGRTQ1XFx1RkU0NlxcdUZFNDktXFx1RkU0Q1xcdUZFNTAtXFx1RkU1MlxcdUZFNTQtXFx1RkU1N1xcdUZFNUYtXFx1RkU2MVxcdUZFNjhcXHVGRTZBXFx1RkU2QlxcdUZGMDEtXFx1RkYwM1xcdUZGMDUtXFx1RkYwN1xcdUZGMEFcXHVGRjBDXFx1RkYwRVxcdUZGMEZcXHVGRjFBXFx1RkYxQlxcdUZGMUZcXHVGRjIwXFx1RkYzQ1xcdUZGNjFcXHVGRjY0XFx1RkY2NScsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgwMFtcXHVERDAwLVxcdUREMDJcXHVERjlGXFx1REZEMF18XFx1RDgwMVxcdURENkZ8XFx1RDgwMltcXHVEQzU3XFx1REQxRlxcdUREM0ZcXHVERTUwLVxcdURFNThcXHVERTdGXFx1REVGMC1cXHVERUY2XFx1REYzOS1cXHVERjNGXFx1REY5OS1cXHVERjlDXXxcXHVEODAzW1xcdURGNTUtXFx1REY1OV18XFx1RDgwNFtcXHVEQzQ3LVxcdURDNERcXHVEQ0JCXFx1RENCQ1xcdURDQkUtXFx1RENDMVxcdURENDAtXFx1REQ0M1xcdURENzRcXHVERDc1XFx1RERDNS1cXHVEREM4XFx1RERDRFxcdUREREJcXHVERERELVxcdUREREZcXHVERTM4LVxcdURFM0RcXHVERUE5XXxcXHVEODA1W1xcdURDNEItXFx1REM0RlxcdURDNUFcXHVEQzVCXFx1REM1RFxcdURDQzZcXHVEREMxLVxcdURERDdcXHVERTQxLVxcdURFNDNcXHVERTYwLVxcdURFNkNcXHVERjNDLVxcdURGM0VdfFxcdUQ4MDZbXFx1REMzQlxcdURENDQtXFx1REQ0NlxcdURERTJcXHVERTNGLVxcdURFNDZcXHVERTlBLVxcdURFOUNcXHVERTlFLVxcdURFQTJdfFxcdUQ4MDdbXFx1REM0MS1cXHVEQzQ1XFx1REM3MFxcdURDNzFcXHVERUY3XFx1REVGOFxcdURGRkZdfFxcdUQ4MDlbXFx1REM3MC1cXHVEQzc0XXxcXHVEODFBW1xcdURFNkVcXHVERTZGXFx1REVGNVxcdURGMzctXFx1REYzQlxcdURGNDRdfFxcdUQ4MUJbXFx1REU5Ny1cXHVERTlBXFx1REZFMl18XFx1RDgyRlxcdURDOUZ8XFx1RDgzNltcXHVERTg3LVxcdURFOEJdfFxcdUQ4M0FbXFx1REQ1RVxcdURENUZdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdQcycsXG4gICAgICAgICdhbGlhcyc6ICdPcGVuX1B1bmN0dWF0aW9uJyxcbiAgICAgICAgJ2JtcCc6ICdcXFxcKFxcXFxbXFxcXHtcXHUwRjNBXFx1MEYzQ1xcdTE2OUJcXHUyMDFBXFx1MjAxRVxcdTIwNDVcXHUyMDdEXFx1MjA4RFxcdTIzMDhcXHUyMzBBXFx1MjMyOVxcdTI3NjhcXHUyNzZBXFx1Mjc2Q1xcdTI3NkVcXHUyNzcwXFx1Mjc3MlxcdTI3NzRcXHUyN0M1XFx1MjdFNlxcdTI3RThcXHUyN0VBXFx1MjdFQ1xcdTI3RUVcXHUyOTgzXFx1Mjk4NVxcdTI5ODdcXHUyOTg5XFx1Mjk4QlxcdTI5OERcXHUyOThGXFx1Mjk5MVxcdTI5OTNcXHUyOTk1XFx1Mjk5N1xcdTI5RDhcXHUyOURBXFx1MjlGQ1xcdTJFMjJcXHUyRTI0XFx1MkUyNlxcdTJFMjhcXHUyRTQyXFx1MzAwOFxcdTMwMEFcXHUzMDBDXFx1MzAwRVxcdTMwMTBcXHUzMDE0XFx1MzAxNlxcdTMwMThcXHUzMDFBXFx1MzAxRFxcdUZEM0ZcXHVGRTE3XFx1RkUzNVxcdUZFMzdcXHVGRTM5XFx1RkUzQlxcdUZFM0RcXHVGRTNGXFx1RkU0MVxcdUZFNDNcXHVGRTQ3XFx1RkU1OVxcdUZFNUJcXHVGRTVEXFx1RkYwOFxcdUZGM0JcXHVGRjVCXFx1RkY1RlxcdUZGNjInXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ1MnLFxuICAgICAgICAnYWxpYXMnOiAnU3ltYm9sJyxcbiAgICAgICAgJ2JtcCc6ICdcXFxcJFxcXFwrPC0+XFxcXF5gXFxcXHx+XFx4QTItXFx4QTZcXHhBOFxceEE5XFx4QUNcXHhBRS1cXHhCMVxceEI0XFx4QjhcXHhEN1xceEY3XFx1MDJDMi1cXHUwMkM1XFx1MDJEMi1cXHUwMkRGXFx1MDJFNS1cXHUwMkVCXFx1MDJFRFxcdTAyRUYtXFx1MDJGRlxcdTAzNzVcXHUwMzg0XFx1MDM4NVxcdTAzRjZcXHUwNDgyXFx1MDU4RC1cXHUwNThGXFx1MDYwNi1cXHUwNjA4XFx1MDYwQlxcdTA2MEVcXHUwNjBGXFx1MDZERVxcdTA2RTlcXHUwNkZEXFx1MDZGRVxcdTA3RjZcXHUwN0ZFXFx1MDdGRlxcdTA5RjJcXHUwOUYzXFx1MDlGQVxcdTA5RkJcXHUwQUYxXFx1MEI3MFxcdTBCRjMtXFx1MEJGQVxcdTBDN0ZcXHUwRDRGXFx1MEQ3OVxcdTBFM0ZcXHUwRjAxLVxcdTBGMDNcXHUwRjEzXFx1MEYxNS1cXHUwRjE3XFx1MEYxQS1cXHUwRjFGXFx1MEYzNFxcdTBGMzZcXHUwRjM4XFx1MEZCRS1cXHUwRkM1XFx1MEZDNy1cXHUwRkNDXFx1MEZDRVxcdTBGQ0ZcXHUwRkQ1LVxcdTBGRDhcXHUxMDlFXFx1MTA5RlxcdTEzOTAtXFx1MTM5OVxcdTE2NkRcXHUxN0RCXFx1MTk0MFxcdTE5REUtXFx1MTlGRlxcdTFCNjEtXFx1MUI2QVxcdTFCNzQtXFx1MUI3Q1xcdTFGQkRcXHUxRkJGLVxcdTFGQzFcXHUxRkNELVxcdTFGQ0ZcXHUxRkRELVxcdTFGREZcXHUxRkVELVxcdTFGRUZcXHUxRkZEXFx1MUZGRVxcdTIwNDRcXHUyMDUyXFx1MjA3QS1cXHUyMDdDXFx1MjA4QS1cXHUyMDhDXFx1MjBBMC1cXHUyMEJGXFx1MjEwMFxcdTIxMDFcXHUyMTAzLVxcdTIxMDZcXHUyMTA4XFx1MjEwOVxcdTIxMTRcXHUyMTE2LVxcdTIxMThcXHUyMTFFLVxcdTIxMjNcXHUyMTI1XFx1MjEyN1xcdTIxMjlcXHUyMTJFXFx1MjEzQVxcdTIxM0JcXHUyMTQwLVxcdTIxNDRcXHUyMTRBLVxcdTIxNERcXHUyMTRGXFx1MjE4QVxcdTIxOEJcXHUyMTkwLVxcdTIzMDdcXHUyMzBDLVxcdTIzMjhcXHUyMzJCLVxcdTI0MjZcXHUyNDQwLVxcdTI0NEFcXHUyNDlDLVxcdTI0RTlcXHUyNTAwLVxcdTI3NjdcXHUyNzk0LVxcdTI3QzRcXHUyN0M3LVxcdTI3RTVcXHUyN0YwLVxcdTI5ODJcXHUyOTk5LVxcdTI5RDdcXHUyOURDLVxcdTI5RkJcXHUyOUZFLVxcdTJCNzNcXHUyQjc2LVxcdTJCOTVcXHUyQjk3LVxcdTJCRkZcXHUyQ0U1LVxcdTJDRUFcXHUyRTUwXFx1MkU1MVxcdTJFODAtXFx1MkU5OVxcdTJFOUItXFx1MkVGM1xcdTJGMDAtXFx1MkZENVxcdTJGRjAtXFx1MkZGQlxcdTMwMDRcXHUzMDEyXFx1MzAxM1xcdTMwMjBcXHUzMDM2XFx1MzAzN1xcdTMwM0VcXHUzMDNGXFx1MzA5QlxcdTMwOUNcXHUzMTkwXFx1MzE5MVxcdTMxOTYtXFx1MzE5RlxcdTMxQzAtXFx1MzFFM1xcdTMyMDAtXFx1MzIxRVxcdTMyMkEtXFx1MzI0N1xcdTMyNTBcXHUzMjYwLVxcdTMyN0ZcXHUzMjhBLVxcdTMyQjBcXHUzMkMwLVxcdTMzRkZcXHU0REMwLVxcdTRERkZcXHVBNDkwLVxcdUE0QzZcXHVBNzAwLVxcdUE3MTZcXHVBNzIwXFx1QTcyMVxcdUE3ODlcXHVBNzhBXFx1QTgyOC1cXHVBODJCXFx1QTgzNi1cXHVBODM5XFx1QUE3Ny1cXHVBQTc5XFx1QUI1QlxcdUFCNkFcXHVBQjZCXFx1RkIyOVxcdUZCQjItXFx1RkJDMVxcdUZERkNcXHVGREZEXFx1RkU2MlxcdUZFNjQtXFx1RkU2NlxcdUZFNjlcXHVGRjA0XFx1RkYwQlxcdUZGMUMtXFx1RkYxRVxcdUZGM0VcXHVGRjQwXFx1RkY1Q1xcdUZGNUVcXHVGRkUwLVxcdUZGRTZcXHVGRkU4LVxcdUZGRUVcXHVGRkZDXFx1RkZGRCcsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgwMFtcXHVERDM3LVxcdUREM0ZcXHVERDc5LVxcdUREODlcXHVERDhDLVxcdUREOEVcXHVERDkwLVxcdUREOUNcXHVEREEwXFx1REREMC1cXHVEREZDXXxcXHVEODAyW1xcdURDNzdcXHVEQzc4XFx1REVDOF18XFx1RDgwNVxcdURGM0Z8XFx1RDgwN1tcXHVERkQ1LVxcdURGRjFdfFxcdUQ4MUFbXFx1REYzQy1cXHVERjNGXFx1REY0NV18XFx1RDgyRlxcdURDOUN8XFx1RDgzNFtcXHVEQzAwLVxcdURDRjVcXHVERDAwLVxcdUREMjZcXHVERDI5LVxcdURENjRcXHVERDZBLVxcdURENkNcXHVERDgzXFx1REQ4NFxcdUREOEMtXFx1RERBOVxcdUREQUUtXFx1RERFOFxcdURFMDAtXFx1REU0MVxcdURFNDVcXHVERjAwLVxcdURGNTZdfFxcdUQ4MzVbXFx1REVDMVxcdURFREJcXHVERUZCXFx1REYxNVxcdURGMzVcXHVERjRGXFx1REY2RlxcdURGODlcXHVERkE5XFx1REZDM118XFx1RDgzNltcXHVEQzAwLVxcdURERkZcXHVERTM3LVxcdURFM0FcXHVERTZELVxcdURFNzRcXHVERTc2LVxcdURFODNcXHVERTg1XFx1REU4Nl18XFx1RDgzOFtcXHVERDRGXFx1REVGRl18XFx1RDgzQltcXHVEQ0FDXFx1RENCMFxcdUREMkVcXHVERUYwXFx1REVGMV18XFx1RDgzQ1tcXHVEQzAwLVxcdURDMkJcXHVEQzMwLVxcdURDOTNcXHVEQ0EwLVxcdURDQUVcXHVEQ0IxLVxcdURDQkZcXHVEQ0MxLVxcdURDQ0ZcXHVEQ0QxLVxcdURDRjVcXHVERDBELVxcdUREQURcXHVEREU2LVxcdURFMDJcXHVERTEwLVxcdURFM0JcXHVERTQwLVxcdURFNDhcXHVERTUwXFx1REU1MVxcdURFNjAtXFx1REU2NVxcdURGMDAtXFx1REZGRl18XFx1RDgzRFtcXHVEQzAwLVxcdURFRDdcXHVERUUwLVxcdURFRUNcXHVERUYwLVxcdURFRkNcXHVERjAwLVxcdURGNzNcXHVERjgwLVxcdURGRDhcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REMwMC1cXHVEQzBCXFx1REMxMC1cXHVEQzQ3XFx1REM1MC1cXHVEQzU5XFx1REM2MC1cXHVEQzg3XFx1REM5MC1cXHVEQ0FEXFx1RENCMFxcdURDQjFcXHVERDAwLVxcdURENzhcXHVERDdBLVxcdUREQ0JcXHVERENELVxcdURFNTNcXHVERTYwLVxcdURFNkRcXHVERTcwLVxcdURFNzRcXHVERTc4LVxcdURFN0FcXHVERTgwLVxcdURFODZcXHVERTkwLVxcdURFQThcXHVERUIwLVxcdURFQjZcXHVERUMwLVxcdURFQzJcXHVERUQwLVxcdURFRDZcXHVERjAwLVxcdURGOTJcXHVERjk0LVxcdURGQ0FdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdTYycsXG4gICAgICAgICdhbGlhcyc6ICdDdXJyZW5jeV9TeW1ib2wnLFxuICAgICAgICAnYm1wJzogJ1xcXFwkXFx4QTItXFx4QTVcXHUwNThGXFx1MDYwQlxcdTA3RkVcXHUwN0ZGXFx1MDlGMlxcdTA5RjNcXHUwOUZCXFx1MEFGMVxcdTBCRjlcXHUwRTNGXFx1MTdEQlxcdTIwQTAtXFx1MjBCRlxcdUE4MzhcXHVGREZDXFx1RkU2OVxcdUZGMDRcXHVGRkUwXFx1RkZFMVxcdUZGRTVcXHVGRkU2JyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODA3W1xcdURGREQtXFx1REZFMF18XFx1RDgzOFxcdURFRkZ8XFx1RDgzQlxcdURDQjAnXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ1NrJyxcbiAgICAgICAgJ2FsaWFzJzogJ01vZGlmaWVyX1N5bWJvbCcsXG4gICAgICAgICdibXAnOiAnXFxcXF5gXFx4QThcXHhBRlxceEI0XFx4QjhcXHUwMkMyLVxcdTAyQzVcXHUwMkQyLVxcdTAyREZcXHUwMkU1LVxcdTAyRUJcXHUwMkVEXFx1MDJFRi1cXHUwMkZGXFx1MDM3NVxcdTAzODRcXHUwMzg1XFx1MUZCRFxcdTFGQkYtXFx1MUZDMVxcdTFGQ0QtXFx1MUZDRlxcdTFGREQtXFx1MUZERlxcdTFGRUQtXFx1MUZFRlxcdTFGRkRcXHUxRkZFXFx1MzA5QlxcdTMwOUNcXHVBNzAwLVxcdUE3MTZcXHVBNzIwXFx1QTcyMVxcdUE3ODlcXHVBNzhBXFx1QUI1QlxcdUFCNkFcXHVBQjZCXFx1RkJCMi1cXHVGQkMxXFx1RkYzRVxcdUZGNDBcXHVGRkUzJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODNDW1xcdURGRkItXFx1REZGRl0nXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ1NtJyxcbiAgICAgICAgJ2FsaWFzJzogJ01hdGhfU3ltYm9sJyxcbiAgICAgICAgJ2JtcCc6ICdcXFxcKzwtPlxcXFx8flxceEFDXFx4QjFcXHhEN1xceEY3XFx1MDNGNlxcdTA2MDYtXFx1MDYwOFxcdTIwNDRcXHUyMDUyXFx1MjA3QS1cXHUyMDdDXFx1MjA4QS1cXHUyMDhDXFx1MjExOFxcdTIxNDAtXFx1MjE0NFxcdTIxNEJcXHUyMTkwLVxcdTIxOTRcXHUyMTlBXFx1MjE5QlxcdTIxQTBcXHUyMUEzXFx1MjFBNlxcdTIxQUVcXHUyMUNFXFx1MjFDRlxcdTIxRDJcXHUyMUQ0XFx1MjFGNC1cXHUyMkZGXFx1MjMyMFxcdTIzMjFcXHUyMzdDXFx1MjM5Qi1cXHUyM0IzXFx1MjNEQy1cXHUyM0UxXFx1MjVCN1xcdTI1QzFcXHUyNUY4LVxcdTI1RkZcXHUyNjZGXFx1MjdDMC1cXHUyN0M0XFx1MjdDNy1cXHUyN0U1XFx1MjdGMC1cXHUyN0ZGXFx1MjkwMC1cXHUyOTgyXFx1Mjk5OS1cXHUyOUQ3XFx1MjlEQy1cXHUyOUZCXFx1MjlGRS1cXHUyQUZGXFx1MkIzMC1cXHUyQjQ0XFx1MkI0Ny1cXHUyQjRDXFx1RkIyOVxcdUZFNjJcXHVGRTY0LVxcdUZFNjZcXHVGRjBCXFx1RkYxQy1cXHVGRjFFXFx1RkY1Q1xcdUZGNUVcXHVGRkUyXFx1RkZFOS1cXHVGRkVDJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODM1W1xcdURFQzFcXHVERURCXFx1REVGQlxcdURGMTVcXHVERjM1XFx1REY0RlxcdURGNkZcXHVERjg5XFx1REZBOVxcdURGQzNdfFxcdUQ4M0JbXFx1REVGMFxcdURFRjFdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdTbycsXG4gICAgICAgICdhbGlhcyc6ICdPdGhlcl9TeW1ib2wnLFxuICAgICAgICAnYm1wJzogJ1xceEE2XFx4QTlcXHhBRVxceEIwXFx1MDQ4MlxcdTA1OERcXHUwNThFXFx1MDYwRVxcdTA2MEZcXHUwNkRFXFx1MDZFOVxcdTA2RkRcXHUwNkZFXFx1MDdGNlxcdTA5RkFcXHUwQjcwXFx1MEJGMy1cXHUwQkY4XFx1MEJGQVxcdTBDN0ZcXHUwRDRGXFx1MEQ3OVxcdTBGMDEtXFx1MEYwM1xcdTBGMTNcXHUwRjE1LVxcdTBGMTdcXHUwRjFBLVxcdTBGMUZcXHUwRjM0XFx1MEYzNlxcdTBGMzhcXHUwRkJFLVxcdTBGQzVcXHUwRkM3LVxcdTBGQ0NcXHUwRkNFXFx1MEZDRlxcdTBGRDUtXFx1MEZEOFxcdTEwOUVcXHUxMDlGXFx1MTM5MC1cXHUxMzk5XFx1MTY2RFxcdTE5NDBcXHUxOURFLVxcdTE5RkZcXHUxQjYxLVxcdTFCNkFcXHUxQjc0LVxcdTFCN0NcXHUyMTAwXFx1MjEwMVxcdTIxMDMtXFx1MjEwNlxcdTIxMDhcXHUyMTA5XFx1MjExNFxcdTIxMTZcXHUyMTE3XFx1MjExRS1cXHUyMTIzXFx1MjEyNVxcdTIxMjdcXHUyMTI5XFx1MjEyRVxcdTIxM0FcXHUyMTNCXFx1MjE0QVxcdTIxNENcXHUyMTREXFx1MjE0RlxcdTIxOEFcXHUyMThCXFx1MjE5NS1cXHUyMTk5XFx1MjE5Qy1cXHUyMTlGXFx1MjFBMVxcdTIxQTJcXHUyMUE0XFx1MjFBNVxcdTIxQTctXFx1MjFBRFxcdTIxQUYtXFx1MjFDRFxcdTIxRDBcXHUyMUQxXFx1MjFEM1xcdTIxRDUtXFx1MjFGM1xcdTIzMDAtXFx1MjMwN1xcdTIzMEMtXFx1MjMxRlxcdTIzMjItXFx1MjMyOFxcdTIzMkItXFx1MjM3QlxcdTIzN0QtXFx1MjM5QVxcdTIzQjQtXFx1MjNEQlxcdTIzRTItXFx1MjQyNlxcdTI0NDAtXFx1MjQ0QVxcdTI0OUMtXFx1MjRFOVxcdTI1MDAtXFx1MjVCNlxcdTI1QjgtXFx1MjVDMFxcdTI1QzItXFx1MjVGN1xcdTI2MDAtXFx1MjY2RVxcdTI2NzAtXFx1Mjc2N1xcdTI3OTQtXFx1MjdCRlxcdTI4MDAtXFx1MjhGRlxcdTJCMDAtXFx1MkIyRlxcdTJCNDVcXHUyQjQ2XFx1MkI0RC1cXHUyQjczXFx1MkI3Ni1cXHUyQjk1XFx1MkI5Ny1cXHUyQkZGXFx1MkNFNS1cXHUyQ0VBXFx1MkU1MFxcdTJFNTFcXHUyRTgwLVxcdTJFOTlcXHUyRTlCLVxcdTJFRjNcXHUyRjAwLVxcdTJGRDVcXHUyRkYwLVxcdTJGRkJcXHUzMDA0XFx1MzAxMlxcdTMwMTNcXHUzMDIwXFx1MzAzNlxcdTMwMzdcXHUzMDNFXFx1MzAzRlxcdTMxOTBcXHUzMTkxXFx1MzE5Ni1cXHUzMTlGXFx1MzFDMC1cXHUzMUUzXFx1MzIwMC1cXHUzMjFFXFx1MzIyQS1cXHUzMjQ3XFx1MzI1MFxcdTMyNjAtXFx1MzI3RlxcdTMyOEEtXFx1MzJCMFxcdTMyQzAtXFx1MzNGRlxcdTREQzAtXFx1NERGRlxcdUE0OTAtXFx1QTRDNlxcdUE4MjgtXFx1QTgyQlxcdUE4MzZcXHVBODM3XFx1QTgzOVxcdUFBNzctXFx1QUE3OVxcdUZERkRcXHVGRkU0XFx1RkZFOFxcdUZGRURcXHVGRkVFXFx1RkZGQ1xcdUZGRkQnLFxuICAgICAgICAnYXN0cmFsJzogJ1xcdUQ4MDBbXFx1REQzNy1cXHVERDNGXFx1REQ3OS1cXHVERDg5XFx1REQ4Qy1cXHVERDhFXFx1REQ5MC1cXHVERDlDXFx1RERBMFxcdURERDAtXFx1RERGQ118XFx1RDgwMltcXHVEQzc3XFx1REM3OFxcdURFQzhdfFxcdUQ4MDVcXHVERjNGfFxcdUQ4MDdbXFx1REZENS1cXHVERkRDXFx1REZFMS1cXHVERkYxXXxcXHVEODFBW1xcdURGM0MtXFx1REYzRlxcdURGNDVdfFxcdUQ4MkZcXHVEQzlDfFxcdUQ4MzRbXFx1REMwMC1cXHVEQ0Y1XFx1REQwMC1cXHVERDI2XFx1REQyOS1cXHVERDY0XFx1REQ2QS1cXHVERDZDXFx1REQ4M1xcdUREODRcXHVERDhDLVxcdUREQTlcXHVEREFFLVxcdURERThcXHVERTAwLVxcdURFNDFcXHVERTQ1XFx1REYwMC1cXHVERjU2XXxcXHVEODM2W1xcdURDMDAtXFx1RERGRlxcdURFMzctXFx1REUzQVxcdURFNkQtXFx1REU3NFxcdURFNzYtXFx1REU4M1xcdURFODVcXHVERTg2XXxcXHVEODM4XFx1REQ0RnxcXHVEODNCW1xcdURDQUNcXHVERDJFXXxcXHVEODNDW1xcdURDMDAtXFx1REMyQlxcdURDMzAtXFx1REM5M1xcdURDQTAtXFx1RENBRVxcdURDQjEtXFx1RENCRlxcdURDQzEtXFx1RENDRlxcdURDRDEtXFx1RENGNVxcdUREMEQtXFx1RERBRFxcdURERTYtXFx1REUwMlxcdURFMTAtXFx1REUzQlxcdURFNDAtXFx1REU0OFxcdURFNTBcXHVERTUxXFx1REU2MC1cXHVERTY1XFx1REYwMC1cXHVERkZBXXxcXHVEODNEW1xcdURDMDAtXFx1REVEN1xcdURFRTAtXFx1REVFQ1xcdURFRjAtXFx1REVGQ1xcdURGMDAtXFx1REY3M1xcdURGODAtXFx1REZEOFxcdURGRTAtXFx1REZFQl18XFx1RDgzRVtcXHVEQzAwLVxcdURDMEJcXHVEQzEwLVxcdURDNDdcXHVEQzUwLVxcdURDNTlcXHVEQzYwLVxcdURDODdcXHVEQzkwLVxcdURDQURcXHVEQ0IwXFx1RENCMVxcdUREMDAtXFx1REQ3OFxcdUREN0EtXFx1RERDQlxcdUREQ0QtXFx1REU1M1xcdURFNjAtXFx1REU2RFxcdURFNzAtXFx1REU3NFxcdURFNzgtXFx1REU3QVxcdURFODAtXFx1REU4NlxcdURFOTAtXFx1REVBOFxcdURFQjAtXFx1REVCNlxcdURFQzAtXFx1REVDMlxcdURFRDAtXFx1REVENlxcdURGMDAtXFx1REY5MlxcdURGOTQtXFx1REZDQV0nXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ1onLFxuICAgICAgICAnYWxpYXMnOiAnU2VwYXJhdG9yJyxcbiAgICAgICAgJ2JtcCc6ICcgXFx4QTBcXHUxNjgwXFx1MjAwMC1cXHUyMDBBXFx1MjAyOFxcdTIwMjlcXHUyMDJGXFx1MjA1RlxcdTMwMDAnXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ1psJyxcbiAgICAgICAgJ2FsaWFzJzogJ0xpbmVfU2VwYXJhdG9yJyxcbiAgICAgICAgJ2JtcCc6ICdcXHUyMDI4J1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdacCcsXG4gICAgICAgICdhbGlhcyc6ICdQYXJhZ3JhcGhfU2VwYXJhdG9yJyxcbiAgICAgICAgJ2JtcCc6ICdcXHUyMDI5J1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdacycsXG4gICAgICAgICdhbGlhcyc6ICdTcGFjZV9TZXBhcmF0b3InLFxuICAgICAgICAnYm1wJzogJyBcXHhBMFxcdTE2ODBcXHUyMDAwLVxcdTIwMEFcXHUyMDJGXFx1MjA1RlxcdTMwMDAnXG4gICAgfVxuXTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wYXJzZSA9IHZvaWQgMDtcbmZ1bmN0aW9uIGRlY29kZShzLCBzZXAgPSAnOycpIHtcbiAgICBzID0gcy5yZXBsYWNlKC9cXG4vZywgJycpO1xuICAgIGxldCBwb3MgPSAwO1xuICAgIGNvbnN0IHJlY29yZHMgPSBbJyddO1xuICAgIHdoaWxlIChwb3MgPCBzLmxlbmd0aCkge1xuICAgICAgICBzd2l0Y2ggKHNbcG9zXSkge1xuICAgICAgICAgICAgY2FzZSAnXFxcXCc6XG4gICAgICAgICAgICAgICAgcG9zKys7XG4gICAgICAgICAgICAgICAgcmVjb3Jkc1swXSArPSBzW3Bvc107XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHNlcDpcbiAgICAgICAgICAgICAgICByZWNvcmRzLnVuc2hpZnQoJycpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZWNvcmRzWzBdICs9IHNbcG9zXTtcbiAgICAgICAgfVxuICAgICAgICBwb3MrKztcbiAgICB9XG4gICAgcmV0dXJuIHJlY29yZHMucmV2ZXJzZSgpLmZpbHRlcihyZWNvcmQgPT4gcmVjb3JkKTtcbn1cbmNvbnN0IHByZWZpeGVzID0ge1xuICAgIGZpbGVEaXJlY3Rvcnk6ICdqYWJyZWYtbWV0YTogZmlsZURpcmVjdG9yeTonLFxuICAgIGdyb3Vwc3ZlcnNpb246ICdqYWJyZWYtbWV0YTogZ3JvdXBzdmVyc2lvbjonLFxuICAgIGdyb3Vwc3RyZWU6ICdqYWJyZWYtbWV0YTogZ3JvdXBzdHJlZTonLFxuICAgIGdyb3VwaW5nOiAnamFicmVmLW1ldGE6IGdyb3VwaW5nOicsXG59O1xuLyoqXG4gKiBJbXBvcnQgdGhlIEphYlJlZiBncm91cHMgZnJvbSB0aGUgYEBzdHJpbmdgIGNvbW1lbnRzIGluIHdoaWNoIHRoZXkgd2VyZSBzdG9yZWQuIFlvdSB3b3VsZCB0eXBpY2FsbHkgcGFzcyB0aGUgY29tbWVudHMgcGFyc2VkIGJ5IFtbYmlidGV4LnBhcnNlXV0gaW4gaGVyZS5cbiAqXG4gKiBKYWJSZWYga25vd3Mgc2V2ZXJhbCBncm91cCB0eXBlcywgYW5kIHRoaXMgcGFyc2VyIHBhcnNlcyBtb3N0LCBidXQgbm90IGFsbCBvZiB0aGVtOlxuICpcbiAqICogaW5kZXBlbmRlbnQgZ3JvdXA6IHRoZSBrZXlzIGxpc3RlZCBpbiB0aGUgZ3JvdXAgYXJlIHRoZSBlbnRyaWVzIHRoYXQgYXJlIGNvbnNpZGVyZWQgdG8gYmVsb25nIHRvIGl0XG4gKiAqIGludGVyc2VjdGlvbjogdGhlIGtleXMgbGlzdGVkIGluIHRoZSBncm91cCBhcmUgY29uc2lkZXJlZCB0byBiZWxvbmcgdG8gdGhlIGdyb3VwIGlmIHRoZXkncmUgYWxzbyBpbiB0aGUgcGFyZW50IGdyb3VwXG4gKiAqIHVuaW9uOiB0aGUga2V5cyBsaXN0ZWQgaW4gdGhlIGdyb3VwIGFyZSBjb25zaWRlcmVkIHRvIGJlbG9uZyB0byB0aGUgZ3JvdXAsIGFuZCBhbHNvIHRoZSBrZXlzIHRoYXQgYXJlIGluIHRoZSBwYXJlbnQgZ3JvdXBcbiAqICogcXVlcnk6IG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBwYXJzZXJcbiAqL1xuZnVuY3Rpb24gcGFyc2UoY29tbWVudHMpIHtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIHJvb3Q6IFtdLFxuICAgICAgICBncm91cHM6IHt9LFxuICAgICAgICBmaWxlRGlyZWN0b3J5OiAnJyxcbiAgICAgICAgdmVyc2lvbjogJycsXG4gICAgfTtcbiAgICBjb25zdCBsZXZlbHMgPSBbXTtcbiAgICBjb25zdCBkZWNvZGVkID0ge1xuICAgICAgICBmaWxlRGlyZWN0b3J5OiBudWxsLFxuICAgICAgICBncm91cHN2ZXJzaW9uOiBudWxsLFxuICAgICAgICBncm91cHN0cmVlOiBudWxsLFxuICAgICAgICBncm91cGluZzogbnVsbCxcbiAgICB9O1xuICAgIGZvciAoY29uc3QgY29tbWVudCBvZiBjb21tZW50cykge1xuICAgICAgICBmb3IgKGNvbnN0IFttZXRhLCBwcmVmaXhdIG9mIE9iamVjdC5lbnRyaWVzKHByZWZpeGVzKSkge1xuICAgICAgICAgICAgaWYgKGNvbW1lbnQuc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4gICAgICAgICAgICAgICAgZGVjb2RlZFttZXRhXSA9IGRlY29kZShjb21tZW50LnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0LnZlcnNpb24gPSBkZWNvZGVkLmdyb3Vwc3ZlcnNpb24gJiYgZGVjb2RlZC5ncm91cHN2ZXJzaW9uWzBdO1xuICAgIHJlc3VsdC5maWxlRGlyZWN0b3J5ID0gZGVjb2RlZC5maWxlRGlyZWN0b3J5ICYmIGRlY29kZWQuZmlsZURpcmVjdG9yeVswXTtcbiAgICBmb3IgKGNvbnN0IHRyZWUgb2YgWydncm91cHN0cmVlJywgJ2dyb3VwaW5nJ10pIHtcbiAgICAgICAgaWYgKCFkZWNvZGVkW3RyZWVdKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIGZvciAoY29uc3QgZW5jb2RlZCBvZiBkZWNvZGVkW3RyZWVdKSB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZHMgPSBkZWNvZGUoZW5jb2RlZCk7XG4gICAgICAgICAgICBjb25zdCBsZXZlbF90eXBlX25hbWUgPSBkZWNvZGUoZmllbGRzLnNoaWZ0KCksICc6Jyk7XG4gICAgICAgICAgICBjb25zdCBtID0gL14oWzAtOV0rKSAoLispLy5leGVjKGxldmVsX3R5cGVfbmFtZVswXSk7XG4gICAgICAgICAgICBpZiAoIW0pXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjb25zdCBsZXZlbCA9IHBhcnNlSW50KG1bMV0pO1xuICAgICAgICAgICAgY29uc3QgdHlwZSA9IG1bMl07IC8vIHRlc3QgZm9yIFN0YXRpY0dyb3VwP1xuICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdBbGxFbnRyaWVzR3JvdXAnKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyByb290XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gbGV2ZWxfdHlwZV9uYW1lWzFdO1xuICAgICAgICAgICAgY29uc3QgaW50ZXJzZWN0aW9uID0gZGVjb2RlKGZpZWxkcy5zaGlmdCgpKVswXTtcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSB0cmVlID09PSAnZ3JvdXBpbmcnID8gW10gOiBmaWVsZHMubWFwKGZpZWxkID0+IGRlY29kZShmaWVsZClbMF0pO1xuICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB7XG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBlbnRyaWVzOiBrZXlzLFxuICAgICAgICAgICAgICAgIGdyb3VwczogW10sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVzdWx0Lmdyb3Vwc1tuYW1lXSA9IHJlc3VsdC5ncm91cHNbbmFtZV0gfHwgZ3JvdXA7XG4gICAgICAgICAgICBpZiAobGV2ZWxzLmxlbmd0aCA8IGxldmVsKSB7XG4gICAgICAgICAgICAgICAgbGV2ZWxzLnB1c2goZ3JvdXApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV2ZWxzW2xldmVsIC0gMV0gPSBncm91cDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsZXZlbCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5yb290LnB1c2goZ3JvdXApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gbGV2ZWxzW2xldmVsIC0gMl07XG4gICAgICAgICAgICAgICAgc3dpdGNoIChpbnRlcnNlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnMCc6IC8vIGluZGVwZW5kZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnMSc6IC8vIGludGVyc2VjdFxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAuZW50cmllcyA9IGdyb3VwLmVudHJpZXMuZmlsdGVyKGtleSA9PiBwYXJlbnQuZW50cmllcy5pbmNsdWRlcyhrZXkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICcyJzogLy8gdW5pb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwLmVudHJpZXMgPSBncm91cC5lbnRyaWVzLmNvbmNhdChwYXJlbnQuZW50cmllcy5maWx0ZXIoa2V5ID0+ICFncm91cC5lbnRyaWVzLmluY2x1ZGVzKGtleSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXZlbHNbbGV2ZWwgLSAyXS5ncm91cHMucHVzaChncm91cCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydHMucGFyc2UgPSBwYXJzZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWphYnJlZi5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuamFicmVmID0gZXhwb3J0cy5jaHVua2VyID0gZXhwb3J0cy5hc3QgPSBleHBvcnRzLnBhcnNlID0gdm9pZCAwO1xuY29uc3QgYmlidGV4ID0gcmVxdWlyZShcIi4vZ3JhbW1hclwiKTtcbmNvbnN0IGNodW5rZXJfMSA9IHJlcXVpcmUoXCIuL2NodW5rZXJcIik7XG5jb25zdCB1bmljb2RlMmxhdGV4XzEgPSByZXF1aXJlKFwidW5pY29kZTJsYXRleFwiKTtcbmNsYXNzIFBhcnNlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UsIG5vZGUpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7IC8vICdFcnJvcicgYnJlYWtzIHByb3RvdHlwZSBjaGFpbiBoZXJlXG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBuZXcudGFyZ2V0LnByb3RvdHlwZSk7IC8vIHJlc3RvcmUgcHJvdG90eXBlIGNoYWluXG4gICAgICAgIHRoaXMubmFtZSA9IHRoaXMuY29uc3RydWN0b3IubmFtZTtcbiAgICAgICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB9XG59XG5jbGFzcyBUZVhFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBub2RlLCB0ZXh0KSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpOyAvLyAnRXJyb3InIGJyZWFrcyBwcm90b3R5cGUgY2hhaW4gaGVyZVxuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgbmV3LnRhcmdldC5wcm90b3R5cGUpOyAvLyByZXN0b3JlIHByb3RvdHlwZSBjaGFpblxuICAgICAgICB0aGlzLm5hbWUgPSB0aGlzLmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgICAgIHRoaXMudGV4dCA9IHRleHQ7XG4gICAgfVxufVxuY29uc3QgY2hhckNhdGVnb3JpZXMgPSByZXF1aXJlKFwieHJlZ2V4cC90b29scy9vdXRwdXQvY2F0ZWdvcmllc1wiKTtcbmNvbnN0IGNoYXJDbGFzcyA9IHtcbiAgICBMdTogY2hhckNhdGVnb3JpZXMuZmlsdGVyKGNhdCA9PiBbJ1VwcGVyY2FzZV9MZXR0ZXInLCAnVGl0bGVjYXNlX0xldHRlciddLmluY2x1ZGVzKGNhdC5hbGlhcykpLm1hcChjYXQgPT4gY2F0LmJtcCkuam9pbignJyksXG4gICAgTGw6IGNoYXJDYXRlZ29yaWVzLmZpbmQoY2F0ID0+IGNhdC5hbGlhcyA9PT0gJ0xvd2VyY2FzZV9MZXR0ZXInKS5ibXAsXG4gICAgTG5vdEx1OiBjaGFyQ2F0ZWdvcmllcy5maWx0ZXIoY2F0ID0+IFsnTG93ZXJjYXNlX0xldHRlcicsICdNb2RpZmllcl9MZXR0ZXInLCAnT3RoZXJfTGV0dGVyJywgJ05vbnNwYWNpbmdfTWFyaycsICdTcGFjaW5nX01hcmsnLCAnRGVjaW1hbF9OdW1iZXInLCAnTGV0dGVyX051bWJlciddLmluY2x1ZGVzKGNhdC5hbGlhcykpLm1hcChjYXQgPT4gY2F0LmJtcCkuam9pbignJyksXG4gICAgUDogY2hhckNhdGVnb3JpZXMuZmluZChjYXQgPT4gY2F0LmFsaWFzID09PSAnUHVuY3R1YXRpb24nKS5ibXAsXG4gICAgTDogY2hhckNhdGVnb3JpZXMuZmluZChjYXQgPT4gY2F0LmFsaWFzID09PSAnTGV0dGVyJykuYm1wLFxuICAgIE46IGNoYXJDYXRlZ29yaWVzLmZpbHRlcihjYXQgPT4gWydEZWNpbWFsX051bWJlcicsICdMZXR0ZXJfTnVtYmVyJ10uaW5jbHVkZXMoY2F0LmFsaWFzKSkubWFwKGNhdCA9PiBjYXQuYm1wKS5qb2luKCcnKSxcbiAgICBBbHBoYU51bTogY2hhckNhdGVnb3JpZXMuZmlsdGVyKGNhdCA9PiBbJ0xldHRlcicsICdEZWNpbWFsX051bWJlcicsICdMZXR0ZXJfTnVtYmVyJ10uaW5jbHVkZXMoY2F0LmFsaWFzKSkubWFwKGNhdCA9PiBjYXQuYm1wKS5qb2luKCcnKSxcbiAgICBMQzogY2hhckNhdGVnb3JpZXMuZmluZChjYXQgPT4gY2F0LmFsaWFzID09PSAnQ2FzZWRfTGV0dGVyJykuYm1wLFxufTtcbmNvbnN0IG1hcmtlciA9IHtcbiAgICBhbmQ6ICdcXHUwMDAxJyxcbiAgICBjb21tYTogJ1xcdTAwMDInLFxuICAgIHNwYWNlOiAnXFx1MDAwMycsXG4gICAgbGl0ZXJhbDogJ1xcdTAwMDQnLFxuICAgIG1hcmt1cDogJ1xcdTAwMDUnLFxuICAgIHJlOiB7XG4gICAgICAgIGFuZDogLy4vLFxuICAgICAgICBjb21tYTogLy4vLFxuICAgICAgICBzcGFjZTogLy4vLFxuICAgICAgICBsaXRlcmFsOiAvLi8sXG4gICAgICAgIGxpdGVyYWxOYW1lOiAvLi8sXG4gICAgfSxcbiAgICBjbGVhbihzKSB7XG4gICAgICAgIHJldHVybiBzLnJlcGxhY2UobWFya2VyLnJlLnNwYWNlLCAnICcpLnJlcGxhY2UobWFya2VyLnJlLmNvbW1hLCAnLCAnKS5yZXBsYWNlKG1hcmtlci5yZS5saXRlcmFsLCAnJyk7XG4gICAgfSxcbn07XG5tYXJrZXIucmUgPSB7XG4gICAgYW5kOiBuZXcgUmVnRXhwKG1hcmtlci5hbmQsICdnJyksXG4gICAgY29tbWE6IG5ldyBSZWdFeHAobWFya2VyLmNvbW1hLCAnZycpLFxuICAgIHNwYWNlOiBuZXcgUmVnRXhwKG1hcmtlci5zcGFjZSwgJ2cnKSxcbiAgICBsaXRlcmFsOiBuZXcgUmVnRXhwKG1hcmtlci5saXRlcmFsLCAnZycpLFxuICAgIGxpdGVyYWxOYW1lOiBuZXcgUmVnRXhwKGBeJHttYXJrZXIubGl0ZXJhbH0oW14ke21hcmtlci5saXRlcmFsfV0qKSR7bWFya2VyLmxpdGVyYWx9JGApLFxufTtcbmNvbnN0IHByZXNlcnZlQ2FzZSA9IHtcbiAgICBsZWFkaW5nQ2FwOiBuZXcgUmVnRXhwKGBeWyR7Y2hhckNsYXNzLkx1fV1bJHtjaGFyQ2xhc3MuTG5vdEx1fV0rWyR7Y2hhckNsYXNzLlB9XT8kYCksXG4gICAgYWxsQ2FwczogbmV3IFJlZ0V4cChgXlske2NoYXJDbGFzcy5MdX0ke2NoYXJDbGFzcy5OfV17Mix9JGApLFxuICAgIGFsbExvd2VyOiBuZXcgUmVnRXhwKGBeWyR7Y2hhckNsYXNzLkxsfSR7Y2hhckNsYXNzLk59XXsyLH0kYCksXG4gICAgam9pbmVkOiBuZXcgUmVnRXhwKGBeWyR7Y2hhckNsYXNzLkx1fV1bJHtjaGFyQ2xhc3MuTG5vdEx1fV0qKFstK11bJHtjaGFyQ2xhc3MuTH0ke2NoYXJDbGFzcy5OfV0rKSpbJHtjaGFyQ2xhc3MuUH1dKiRgKSxcbiAgICBoYXNVcHBlcjogbmV3IFJlZ0V4cChgWyR7Y2hhckNsYXNzLkx1fV1gKSxcbiAgICBoYXNMb3dlcjogbmV3IFJlZ0V4cChgWyR7Y2hhckNsYXNzLkxsfV1gKSxcbiAgICBpc051bWJlcjogL15bMC05XSskLyxcbiAgICBoYXNBbHBoYTogbmV3IFJlZ0V4cChgWyR7Y2hhckNsYXNzLkx9XWApLFxuICAgIGhhc0FscGhhTnVtOiBuZXcgUmVnRXhwKGBbJHtjaGFyQ2xhc3MuQWxwaGFOdW19XWApLFxuICAgIG5vdEFscGhhTnVtOiBuZXcgUmVnRXhwKGBbXiR7Y2hhckNsYXNzLkFscGhhTnVtfV1gLCAnZycpLFxuICAgIHNlbnRlbmNlU3RhcnQ6IG5ldyBSZWdFeHAoYChefChbXFx1MjAxNDo/IS5dXFxcXHMrKSlbJHtjaGFyQ2xhc3MuTHV9XWAsICdnJyksXG4gICAgbWFya3VwOiAvPFxcLz9zcGFuW14+XSo+L2csXG4gICAgYWNyb255bTogbmV3IFJlZ0V4cChgLipcXFxcLiR7bWFya2VyLm1hcmt1cH0qWyR7Y2hhckNsYXNzLkx1fV0ke21hcmtlci5tYXJrdXB9KlxcXFwuJGApLFxuICAgIG5vdENhc2VTZW5zaXRpdmU6IG5ldyBSZWdFeHAoYFteJHtjaGFyQ2xhc3MuTEN9XWApLFxuICAgIGlzQ2FzZVNlbnNpdGl2ZTogbmV3IFJlZ0V4cChgWyR7Y2hhckNsYXNzLkxDfV1gKSxcbiAgICBxdW90ZWQ6IC8oXCJbXlwiXStcIil8KOKAnFte4oCcXSvigJwpL2csXG59O1xuY29uc3QgZmllbGRzID0ge1xuICAgIGNyZWF0b3I6IFtcbiAgICAgICAgJ2F1dGhvcicsXG4gICAgICAgICdib29rYXV0aG9yJyxcbiAgICAgICAgJ2NvbGxhYm9yYXRvcicsXG4gICAgICAgICdjb21tZW50YXRvcicsXG4gICAgICAgICdkaXJlY3RvcicsXG4gICAgICAgICdlZGl0b3InLFxuICAgICAgICAnZWRpdG9yYScsXG4gICAgICAgICdlZGl0b3JiJyxcbiAgICAgICAgJ2VkaXRvcnMnLFxuICAgICAgICAnaG9sZGVyJyxcbiAgICAgICAgJ3NjcmlwdHdyaXRlcicsXG4gICAgICAgICd0cmFuc2xhdG9yJyxcbiAgICBdLFxuICAgIHRpdGxlOiBbXG4gICAgICAgICd0aXRsZScsXG4gICAgICAgICdzZXJpZXMnLFxuICAgICAgICAnc2hvcnR0aXRsZScsXG4gICAgICAgICdib29rdGl0bGUnLFxuICAgICAgICAndHlwZScsXG4gICAgICAgICdvcmlndGl0bGUnLFxuICAgICAgICAnbWFpbnRpdGxlJyxcbiAgICAgICAgJ2V2ZW50dGl0bGUnLFxuICAgIF0sXG4gICAgdW5uZXN0OiBbXG4gICAgICAgICdwdWJsaXNoZXInLFxuICAgICAgICAnbG9jYXRpb24nLFxuICAgIF0sXG4gICAgdmVyYmF0aW06IFtcbiAgICAgICAgJ3VybCcsXG4gICAgICAgICdkb2knLFxuICAgICAgICAnZmlsZScsXG4gICAgICAgICdmaWxlcycsXG4gICAgICAgICdlcHJpbnQnLFxuICAgICAgICAndmVyYmEnLFxuICAgICAgICAndmVyYmInLFxuICAgICAgICAndmVyYmMnLFxuICAgICAgICAnZ3JvdXBzJyxcbiAgICBdLFxuICAgIGh0bWw6IFtcbiAgICAgICAgJ2Fubm90YXRpb24nLFxuICAgICAgICAnY29tbWVudCcsXG4gICAgICAgICdhbm5vdGUnLFxuICAgICAgICAncmV2aWV3JyxcbiAgICAgICAgJ25vdGVzJyxcbiAgICAgICAgJ25vdGUnLFxuICAgIF0sXG4gICAgdW5hYmJyZXY6IFtcbiAgICAgICAgJ2pvdXJuYWwnLFxuICAgICAgICAnam91cm5hbHRpdGxlJyxcbiAgICAgICAgJ2pvdXJuYWwtZnVsbCcsXG4gICAgXSxcbn07XG5jb25zdCBlbmdsaXNoID0gW1xuICAgICdhbWVyaWNhbicsXG4gICAgJ2JyaXRpc2gnLFxuICAgICdjYW5hZGlhbicsXG4gICAgJ2VuZ2xpc2gnLFxuICAgICdhdXN0cmFsaWFuJyxcbiAgICAnbmV3emVhbGFuZCcsXG4gICAgJ3VzZW5nbGlzaCcsXG4gICAgJ3VrZW5nbGlzaCcsXG4gICAgJ2VuJyxcbiAgICAnZW5nJyxcbiAgICAnZW4tYXUnLFxuICAgICdlbi1ieicsXG4gICAgJ2VuLWNhJyxcbiAgICAnZW4tY2InLFxuICAgICdlbi1nYicsXG4gICAgJ2VuLWllJyxcbiAgICAnZW4tam0nLFxuICAgICdlbi1ueicsXG4gICAgJ2VuLXBoJyxcbiAgICAnZW4tdHQnLFxuICAgICdlbi11cycsXG4gICAgJ2VuLXphJyxcbiAgICAnZW4tencnLFxuICAgICdhbmdsYWlzJyxcbl07XG5jbGFzcyBQYXJzZXIge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkge1xuICAgICAgICB0aGlzLmluX3ByZWFtYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMucHJlYW1ibGUgPSBbXTtcbiAgICAgICAgdGhpcy5sb2cgPSBmdW5jdGlvbiAoc3RyKSB7IH07IC8vIHRzbGludDpkaXNhYmxlLWxpbmUgdmFyaWFibGUtbmFtZSBvbmx5LWFycm93LWZ1bmN0aW9ucyBuby1lbXB0eVxuICAgICAgICBmb3IgKGNvbnN0IFtvcHRpb24sIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvcHRpb25zKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICAgICAgZGVsZXRlIG9wdGlvbnNbb3B0aW9uXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5lcnJvckhhbmRsZXIgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgb25seS1hcnJvdy1mdW5jdGlvbnMgbm8tZW1wdHlcbiAgICAgICAgICAgIG9wdGlvbnMuZXJyb3JIYW5kbGVyID0gZnVuY3Rpb24gKGVycikgeyB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9wdGlvbnMuZXJyb3JIYW5kbGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBvbmx5LWFycm93LWZ1bmN0aW9uc1xuICAgICAgICAgICAgb3B0aW9ucy5lcnJvckhhbmRsZXIgPSBmdW5jdGlvbiAoZXJyKSB7IHRocm93IGVycjsgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuc2VudGVuY2VDYXNlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIG9wdGlvbnMuc2VudGVuY2VDYXNlID0gb3B0aW9ucy5zZW50ZW5jZUNhc2UgPyBlbmdsaXNoIDogW107XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBvcHRpb25zLnNlbnRlbmNlQ2FzZSA9IG9wdGlvbnMuc2VudGVuY2VDYXNlIHx8IGVuZ2xpc2g7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRpb25zLnN0cmluZ3MpXG4gICAgICAgICAgICBvcHRpb25zLnN0cmluZ3MgPSB7fTtcbiAgICAgICAgaWYgKCFvcHRpb25zLnVuYWJicmV2aWF0ZSlcbiAgICAgICAgICAgIG9wdGlvbnMudW5hYmJyZXZpYXRlID0ge307XG4gICAgICAgIGlmIChvcHRpb25zLnJhdykge1xuICAgICAgICAgICAgb3B0aW9ucy5zZW50ZW5jZUNhc2UgPSBmYWxzZTtcbiAgICAgICAgICAgIG9wdGlvbnMuY2FzZVByb3RlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHsgY2FzZVByb3RlY3Rpb246ICdhcy1uZWVkZWQnLCB2ZXJiYXRpbUZpZWxkczogWy9eY2l0ZXVsaWtlLWxpbmtvdXQtWzAtOV0rJC8sIC4uLmZpZWxkcy52ZXJiYXRpbV0sIHZlcmJhdGltQ29tbWFuZHM6IFsndXJsJywgJ2hyZWYnXSwgdW5uZXN0RmllbGRzOiBbLi4uZmllbGRzLnRpdGxlLCAuLi5maWVsZHMudW5uZXN0LCAuLi5maWVsZHMudmVyYmF0aW1dLCB1bm5lc3RNb2RlOiAndW53cmFwJywgaHRtbEZpZWxkczogZmllbGRzLmh0bWwsIGd1ZXNzQWxyZWFkeVNlbnRlbmNlQ2FzZWQ6IHRydWUsIG1hcmt1cDoge30gfSwgb3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IG1hcmt1cF9kZWZhdWx0cyA9IHtcbiAgICAgICAgICAgIGVucXVvdGU6IHsgb3BlbjogJ1xcdTIwMWMnLCBjbG9zZTogJ1xcdTIwMWQnIH0sXG4gICAgICAgICAgICBzdWI6IHsgb3BlbjogJzxzdWI+JywgY2xvc2U6ICc8L3N1Yj4nIH0sXG4gICAgICAgICAgICBzdXA6IHsgb3BlbjogJzxzdXA+JywgY2xvc2U6ICc8L3N1cD4nIH0sXG4gICAgICAgICAgICBib2xkOiB7IG9wZW46ICc8Yj4nLCBjbG9zZTogJzwvYj4nIH0sXG4gICAgICAgICAgICBpdGFsaWNzOiB7IG9wZW46ICc8aT4nLCBjbG9zZTogJzwvaT4nIH0sXG4gICAgICAgICAgICBzbWFsbENhcHM6IHsgb3BlbjogJzxzcGFuIHN0eWxlPVwiZm9udC12YXJpYW50OnNtYWxsLWNhcHM7XCI+JywgY2xvc2U6ICc8L3NwYW4+JyB9LFxuICAgICAgICAgICAgY2FzZVByb3RlY3Q6IHsgb3BlbjogJzxzcGFuIGNsYXNzPVwibm9jYXNlXCI+JywgY2xvc2U6ICc8L3NwYW4+JyB9LFxuICAgICAgICAgICAgcm9tYW46IHsgb3BlbjogJycsIGNsb3NlOiAnJyB9LFxuICAgICAgICAgICAgZml4ZWRXaWR0aDogeyBvcGVuOiAnJywgY2xvc2U6ICcnIH0sXG4gICAgICAgIH07XG4gICAgICAgIC8vIHBhdGNoIGluIGJlY2F1c2UgdGhlIG9wdGlvbnMgd2lsbCBsaWtlbHkgbm90IGhhdmUgZW5xdW90ZSBhbmQgY2FzZS1wcm90ZWN0XG4gICAgICAgIGZvciAoY29uc3QgW21hcmt1cCwgeyBvcGVuLCBjbG9zZSB9XSBvZiBPYmplY3QuZW50cmllcyhtYXJrdXBfZGVmYXVsdHMpKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMubWFya3VwW21hcmt1cF0gPSB0aGlzLm9wdGlvbnMubWFya3VwW21hcmt1cF0gfHwgeyBvcGVuLCBjbG9zZSB9O1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBbMSwgMiwgMywgNF0pIHsgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1tYWdpYy1udW1iZXJzXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMubWFya3VwW2BoJHtpfWBdID0gdGhpcy5vcHRpb25zLm1hcmt1cFtgaCR7aX1gXSB8fCB7IG9wZW46IGA8aCR7aX0+YCwgY2xvc2U6IGA8L2gke2l9PmAgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVucmVzb2x2ZWRTdHJpbmdzID0ge307XG4gICAgICAgIHRoaXMuZXJyb3JzID0gW107XG4gICAgICAgIHRoaXMuY29tbWVudHMgPSBbXTtcbiAgICAgICAgdGhpcy5lbnRyaWVzID0gW107XG4gICAgICAgIHRoaXMuc3RyaW5ncyA9IHt9O1xuICAgICAgICB0aGlzLm5ld2NvbW1hbmRzID0ge307XG4gICAgICAgIHRoaXMuZGVmYXVsdF9zdHJpbmdzID0ge1xuICAgICAgICAgICAgSkFOOiBbdGhpcy50ZXh0KCcwMScpXSxcbiAgICAgICAgICAgIEZFQjogW3RoaXMudGV4dCgnMDInKV0sXG4gICAgICAgICAgICBNQVI6IFt0aGlzLnRleHQoJzAzJyldLFxuICAgICAgICAgICAgQVBSOiBbdGhpcy50ZXh0KCcwNCcpXSxcbiAgICAgICAgICAgIE1BWTogW3RoaXMudGV4dCgnMDUnKV0sXG4gICAgICAgICAgICBKVU46IFt0aGlzLnRleHQoJzA2JyldLFxuICAgICAgICAgICAgSlVMOiBbdGhpcy50ZXh0KCcwNycpXSxcbiAgICAgICAgICAgIEFVRzogW3RoaXMudGV4dCgnMDgnKV0sXG4gICAgICAgICAgICBTRVA6IFt0aGlzLnRleHQoJzA5JyldLFxuICAgICAgICAgICAgT0NUOiBbdGhpcy50ZXh0KCcxMCcpXSxcbiAgICAgICAgICAgIE5PVjogW3RoaXMudGV4dCgnMTEnKV0sXG4gICAgICAgICAgICBERUM6IFt0aGlzLnRleHQoJzEyJyldLFxuICAgICAgICAgICAgQUNNQ1M6IFt0aGlzLnRleHQoJ0FDTSBDb21wdXRpbmcgU3VydmV5cycpXSxcbiAgICAgICAgICAgIEFDVEE6IFt0aGlzLnRleHQoJ0FjdGEgSW5mb3JtYXRpY2EnKV0sXG4gICAgICAgICAgICBDQUNNOiBbdGhpcy50ZXh0KCdDb21tdW5pY2F0aW9ucyBvZiB0aGUgQUNNJyldLFxuICAgICAgICAgICAgSUJNSlJEOiBbdGhpcy50ZXh0KCdJQk0gSm91cm5hbCBvZiBSZXNlYXJjaCBhbmQgRGV2ZWxvcG1lbnQnKV0sXG4gICAgICAgICAgICBJQk1TSjogW3RoaXMudGV4dCgnSUJNIFN5c3RlbXMgSm91cm5hbCcpXSxcbiAgICAgICAgICAgIElFRUVTRTogW3RoaXMudGV4dCgnSUVFRSBUcmFuc2FjdGlvbnMgb24gU29mdHdhcmUgRW5naW5lZXJpbmcnKV0sXG4gICAgICAgICAgICBJRUVFVEM6IFt0aGlzLnRleHQoJ0lFRUUgVHJhbnNhY3Rpb25zIG9uIENvbXB1dGVycycpXSxcbiAgICAgICAgICAgIElFRUVUQ0FEOiBbdGhpcy50ZXh0KCdJRUVFIFRyYW5zYWN0aW9ucyBvbiBDb21wdXRlci1BaWRlZCBEZXNpZ24gb2YgSW50ZWdyYXRlZCBDaXJjdWl0cycpXSxcbiAgICAgICAgICAgIElQTDogW3RoaXMudGV4dCgnSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBMZXR0ZXJzJyldLFxuICAgICAgICAgICAgSkFDTTogW3RoaXMudGV4dCgnSm91cm5hbCBvZiB0aGUgQUNNJyldLFxuICAgICAgICAgICAgSkNTUzogW3RoaXMudGV4dCgnSm91cm5hbCBvZiBDb21wdXRlciBhbmQgU3lzdGVtIFNjaWVuY2VzJyldLFxuICAgICAgICAgICAgU0NQOiBbdGhpcy50ZXh0KCdTY2llbmNlIG9mIENvbXB1dGVyIFByb2dyYW1taW5nJyldLFxuICAgICAgICAgICAgU0lDT01QOiBbdGhpcy50ZXh0KCdTSUFNIEpvdXJuYWwgb24gQ29tcHV0aW5nJyldLFxuICAgICAgICAgICAgVE9DUzogW3RoaXMudGV4dCgnQUNNIFRyYW5zYWN0aW9ucyBvbiBDb21wdXRlciBTeXN0ZW1zJyldLFxuICAgICAgICAgICAgVE9EUzogW3RoaXMudGV4dCgnQUNNIFRyYW5zYWN0aW9ucyBvbiBEYXRhYmFzZSBTeXN0ZW1zJyldLFxuICAgICAgICAgICAgVE9HOiBbdGhpcy50ZXh0KCdBQ00gVHJhbnNhY3Rpb25zIG9uIEdyYXBoaWNzJyldLFxuICAgICAgICAgICAgVE9NUzogW3RoaXMudGV4dCgnQUNNIFRyYW5zYWN0aW9ucyBvbiBNYXRoZW1hdGljYWwgU29mdHdhcmUnKV0sXG4gICAgICAgICAgICBUT09JUzogW3RoaXMudGV4dCgnQUNNIFRyYW5zYWN0aW9ucyBvbiBPZmZpY2UgSW5mb3JtYXRpb24gU3lzdGVtcycpXSxcbiAgICAgICAgICAgIFRPUExBUzogW3RoaXMudGV4dCgnQUNNIFRyYW5zYWN0aW9ucyBvbiBQcm9ncmFtbWluZyBMYW5ndWFnZXMgYW5kIFN5c3RlbXMnKV0sXG4gICAgICAgICAgICBUQ1M6IFt0aGlzLnRleHQoJ1RoZW9yZXRpY2FsIENvbXB1dGVyIFNjaWVuY2UnKV0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIGFzdChpbnB1dCwgY2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIGNvbnN0IF9hc3QgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBjaHVuayBvZiBjaHVua2VyXzEucGFyc2UoaW5wdXQpKSB7XG4gICAgICAgICAgICBsZXQgY2h1bmtfYXN0ID0gYmlidGV4LnBhcnNlKGNodW5rLnRleHQsIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5vcHRpb25zKSwgeyBjb21iaW5pbmdEaWFjcml0aWNzOiB1bmljb2RlMmxhdGV4XzEuZGlhY3JpdGljcy5jb21tYW5kcyB9KSk7XG4gICAgICAgICAgICBpZiAoY2xlYW4pXG4gICAgICAgICAgICAgICAgY2h1bmtfYXN0ID0gdGhpcy5jbGVhbihjaHVua19hc3QpO1xuICAgICAgICAgICAgX2FzdC5wdXNoKGNodW5rX2FzdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9hc3Q7XG4gICAgfVxuICAgIHBhcnNlKGlucHV0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYXN5bmMgPyB0aGlzLnBhcnNlQXN5bmMoaW5wdXQpIDogdGhpcy5wYXJzZVN5bmMoaW5wdXQpO1xuICAgIH1cbiAgICBwYXJzZVN5bmMoaW5wdXQpIHtcbiAgICAgICAgZm9yIChjb25zdCBjaHVuayBvZiBjaHVua2VyXzEucGFyc2UoaW5wdXQpKSB7XG4gICAgICAgICAgICB0aGlzLnBhcnNlQ2h1bmsoY2h1bmspO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlZCgpO1xuICAgIH1cbiAgICBhc3luYyBwYXJzZUFzeW5jKGlucHV0KSB7XG4gICAgICAgIGZvciAoY29uc3QgY2h1bmsgb2YgYXdhaXQgY2h1bmtlcl8xLnBhcnNlKGlucHV0LCB7IGFzeW5jOiB0cnVlIH0pKSB7XG4gICAgICAgICAgICB0aGlzLnBhcnNlQ2h1bmsoY2h1bmspO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlZCgpO1xuICAgIH1cbiAgICBwYXJzZWQoKSB7XG4gICAgICAgIHRoaXMuZmllbGQgPSBudWxsO1xuICAgICAgICBjb25zdCBzdHJpbmdzID0ge307XG4gICAgICAgIHRoaXMuY2xlYW5pbmcgPSB7IHR5cGU6ICdvdGhlcicgfTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5zdHJpbmdzKSkge1xuICAgICAgICAgICAgdGhpcy5maWVsZCA9IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnQHN0cmluZycsXG4gICAgICAgICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgICAgICAgbGV2ZWw6IDAsXG4gICAgICAgICAgICAgICAgcHJlc2VydmVSYW5nZXM6IG51bGwsXG4gICAgICAgICAgICAgICAgd29yZHM6IHtcbiAgICAgICAgICAgICAgICAgICAgdXBwZXI6IDAsXG4gICAgICAgICAgICAgICAgICAgIGxvd2VyOiAwLFxuICAgICAgICAgICAgICAgICAgICBvdGhlcjogMCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuY29udmVydCh0aGlzLmNsZWFuKHZhbHVlKSk7XG4gICAgICAgICAgICBzdHJpbmdzW2tleV0gPSB0aGlzLmZpZWxkLnRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVycm9yczogdGhpcy5lcnJvcnMsXG4gICAgICAgICAgICBlbnRyaWVzOiB0aGlzLmVudHJpZXMsXG4gICAgICAgICAgICBjb21tZW50czogdGhpcy5jb21tZW50cyxcbiAgICAgICAgICAgIHN0cmluZ3MsXG4gICAgICAgICAgICBwcmVhbWJsZTogdGhpcy5wcmVhbWJsZSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcHJlc2VydmUoc3RhcnQsIGVuZCwgcmVhc29uKSB7XG4gICAgICAgIGlmICghdGhpcy5maWVsZC5wcmVzZXJ2ZVJhbmdlcylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKCFlbmQpIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQucHJlc2VydmVSYW5nZXMgPSBudWxsO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8qXG4gICAgICAgIHRoaXMuZmllbGQucHJlc2VydmVSYW5nZXMgPSB0aGlzLmZpZWxkLnByZXNlcnZlUmFuZ2VzLmZpbHRlcihyYW5nZSA9PiByYW5nZS5zdGFydCA8IHN0YXJ0IHx8IHJhbmdlLmVuZCA+IGVuZClcbiAgICAgICAgaWYgKHRoaXMuZmllbGQucHJlc2VydmVSYW5nZXMuZmluZChyYW5nZSA9PiByYW5nZS5zdGFydCA8PSBzdGFydCAmJiByYW5nZS5lbmQgPj0gZW5kKSkgcmV0dXJuXG4gICAgICAgICovXG4gICAgICAgIC8qXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLnByZXNlcnZlUmFuZ2VzICYmIHRoaXMuZmllbGQucHJlc2VydmVSYW5nZXMubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgbGFzdCA9IHRoaXMuZmllbGQucHJlc2VydmVSYW5nZXNbdGhpcy5maWVsZC5wcmVzZXJ2ZVJhbmdlcy5sZW5ndGggLSAxXVxuICAgICAgICAgIGlmIChzdGFydCA8IGxhc3Quc3RhcnQpIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7Li4ubGFzdCwgbmV3OiB7IHN0YXJ0LCBlbmQsIHJlYXNvbiB9LCB0ZXh0OiB0aGlzLmZpZWxkLnRleHR9KSlcbiAgICAgICAgfVxuICAgICAgICAqL1xuICAgICAgICB0aGlzLmZpZWxkLnByZXNlcnZlUmFuZ2VzLnB1c2goeyBzdGFydCwgZW5kLCByZWFzb24gfSk7XG4gICAgfVxuICAgIHBhcnNlQ2h1bmsoY2h1bmspIHtcbiAgICAgICAgdGhpcy5jaHVuayA9IGNodW5rLnRleHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgYmliID0gYmlidGV4LnBhcnNlKGNodW5rLnRleHQsIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5vcHRpb25zKSwgeyBjb21iaW5pbmdEaWFjcml0aWNzOiB1bmljb2RlMmxhdGV4XzEuZGlhY3JpdGljcy5jb21tYW5kcyB9KSk7XG4gICAgICAgICAgICBpZiAoYmliLmtpbmQgIT09ICdCaWJsaW9ncmFwaHknKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcih0aGlzLnNob3coYmliKSk7XG4gICAgICAgICAgICBiaWIgPSB0aGlzLmNsZWFuKGJpYik7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVudGl0eSBvZiBiaWIuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGVudGl0eS5raW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ0VudHJ5JzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnQnJhY2VkQ29tbWVudCc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ0xpbmVDb21tZW50JzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnUHJlYW1ibGVFeHByZXNzaW9uJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udmVydChlbnRpdHkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1N0cmluZ0RlY2xhcmF0aW9uJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnTm9uRW50cnlUZXh0JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBiaWI7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaWYgKCFlcnIubG9jYXRpb24pXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgdGhpcy5lcnJvcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgbGluZTogZXJyLmxvY2F0aW9uLnN0YXJ0LmxpbmUgKyBjaHVuay5vZmZzZXQubGluZSxcbiAgICAgICAgICAgICAgICBjb2x1bW46IGVyci5sb2NhdGlvbi5zdGFydC5jb2x1bW4sXG4gICAgICAgICAgICAgICAgc291cmNlOiB0aGlzLmNodW5rLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzaG93KG8pIHtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIHByZWZlci10ZW1wbGF0ZVxuICAgICAgICBsZXQgdGV4dCA9IEpTT04uc3RyaW5naWZ5KG8pO1xuICAgICAgICBpZiAodGhpcy5jaHVuaylcbiAgICAgICAgICAgIHRleHQgKz0gJ1xcbicgKyB0aGlzLmNodW5rLnRyaW0oKTtcbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuICAgIHRleHQodmFsdWUgPSAnJykge1xuICAgICAgICByZXR1cm4geyBraW5kOiAnVGV4dCcsIHZhbHVlLCBtb2RlOiAndGV4dCcgfTtcbiAgICB9XG4gICAgZXJyb3IoZXJyLCByZXR1cm52YWx1ZSkge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5lcnJvckhhbmRsZXIgPT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuZXJyb3JIYW5kbGVyKGVycik7XG4gICAgICAgIHJldHVybiByZXR1cm52YWx1ZTtcbiAgICB9XG4gICAgY29uZGVuc2Uobm9kZSkge1xuICAgICAgICAvLyBhcHBseSBjbGVhbmluZyB0byByZXN1bHRpbmcgY2hpbGRyZW5cbiAgICAgICAgbm9kZS52YWx1ZSA9IG5vZGUudmFsdWUubWFwKGNoaWxkID0+IHRoaXMuY2xlYW4oY2hpbGQpKTtcbiAgICAgICAgLy8gdW5wYWNrIHJlZHVuZGFudCBibG9ja3NcbiAgICAgICAgbm9kZS52YWx1ZSA9IG5vZGUudmFsdWUucmVkdWNlKChhY2MsIGNoaWxkLCBpKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGQua2luZCA9PT0gJ0Jsb2NrJyAmJiAhY2hpbGQuY2FzZSAmJiBPYmplY3Qua2V5cyhjaGlsZC5tYXJrdXApLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGFjYyA9IGFjYy5jb25jYXQoY2hpbGQudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgYWNjLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwgW10pO1xuICAgICAgICAvLyBjb25kZW5zZSB0ZXh0IG5vZGVzIHRvIG1ha2Ugd2hvbGUgd29yZHMgZm9yIHNlbnRlbmNlIGNhc2luZ1xuICAgICAgICBub2RlLnZhbHVlID0gbm9kZS52YWx1ZS5yZWR1Y2UoKGFjYywgY2hpbGQsIGkpID0+IHtcbiAgICAgICAgICAgIGlmIChhY2MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgYWNjLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsYXN0ID0gYWNjW2FjYy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBub2RlLnZhbHVlW2kgKyAxXTtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuY2FzZVByb3RlY3Rpb24gPT09ICdzdHJpY3QnICYmIHRoaXMub25seUNhc2VQcm90ZWN0ZWQobGFzdCkgJiYgY2hpbGQua2luZCA9PT0gJ1RleHQnICYmICFjaGlsZC52YWx1ZS5tYXRjaChwcmVzZXJ2ZUNhc2UuaXNDYXNlU2Vuc2l0aXZlKSAmJiB0aGlzLm9ubHlDYXNlUHJvdGVjdGVkKG5leHQpKSB7XG4gICAgICAgICAgICAgICAgbGFzdC52YWx1ZS5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgICAgICBkZWxldGUgbGFzdC5zb3VyY2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsYXN0LmtpbmQgPT09ICdCbG9jaycgJiYgY2hpbGQua2luZCA9PT0gJ0Jsb2NrJyAmJiBPYmplY3Qua2V5cyhsYXN0Lm1hcmt1cCkuc29ydCgpLmpvaW4oJy8nKSA9PT0gT2JqZWN0LmtleXMoY2hpbGQubWFya3VwKS5zb3J0KCkuam9pbignLycpKSB7XG4gICAgICAgICAgICAgICAgbGFzdC52YWx1ZSA9IGxhc3QudmFsdWUuY29uY2F0KGNoaWxkLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBkZWxldGUgbGFzdC5zb3VyY2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsYXN0LmtpbmQgPT09ICdUZXh0JyAmJiBjaGlsZC5raW5kID09PSAnVGV4dCcgJiYgbGFzdC5tb2RlID09PSBjaGlsZC5tb2RlKSB7XG4gICAgICAgICAgICAgICAgbGFzdC52YWx1ZSArPSBjaGlsZC52YWx1ZTtcbiAgICAgICAgICAgICAgICBkZWxldGUgbGFzdC5zb3VyY2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFjYy5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIFtdKTtcbiAgICB9XG4gICAgb25seUNhc2VQcm90ZWN0ZWQobm9kZSkge1xuICAgICAgICByZXR1cm4gKG5vZGUgPT09IG51bGwgfHwgbm9kZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbm9kZS5raW5kKSA9PT0gJ0Jsb2NrJyAmJiBub2RlLmNhc2UgPT09ICdwcm90ZWN0JyAmJiBPYmplY3Qua2V5cyhub2RlLm1hcmt1cCkuam9pbignLycpID09PSAnJztcbiAgICB9XG4gICAgYXJndW1lbnQobm9kZSwga2luZCkge1xuICAgICAgICBpZiAoIW5vZGUuYXJndW1lbnRzIHx8ICFub2RlLmFyZ3VtZW50cy5yZXF1aXJlZC5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gKGtpbmQgPT09ICdub25lJyk7XG4gICAgICAgIC8vIGV4cGVjdCAnbicgdGV4dCBhcmd1bWVudHNcbiAgICAgICAgaWYgKHR5cGVvZiBraW5kID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgaWYgKG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkLmxlbmd0aCAhPT0ga2luZClcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5hcmd1bWVudHMucmVxdWlyZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gcmV0dXJuIGZpcnN0IGFyZ3VtZW50IGlmIGl0J3MgdGhlIG9ubHkgb25lXG4gICAgICAgIGlmIChub2RlLmFyZ3VtZW50cy5yZXF1aXJlZC5sZW5ndGggIT09IDEpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIC8vIGxvb3NlIGNoZWNraW5nIGZvciB0ZXh0XG4gICAgICAgIGlmIChraW5kID09PSAndGV4dCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0ID0gbm9kZS5hcmd1bWVudHMucmVxdWlyZWRbMF07XG4gICAgICAgICAgICBpZiAoZmlyc3Qua2luZCA9PT0gJ0Jsb2NrJyAmJiBmaXJzdC52YWx1ZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICBpZiAoZmlyc3QudmFsdWVbMF0ua2luZCA9PT0gJ1RleHQnKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlyc3QudmFsdWVbMF0udmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBmYWxsIGJhY2sgdG8gc3RyaWN0IGtpbmQgY2hlY2tcbiAgICAgICAgICAgIGtpbmQgPSAnVGV4dCc7XG4gICAgICAgIH1cbiAgICAgICAgLy8gcmV0dXJuIGZpcnN0IGFyZ3VtZW50IGlmIGl0J3MgdGhlIG9ubHkgb25lIGFuZCBpcyBvZiB0aGUgc3BlY2lmaWVkIGtpbmRcbiAgICAgICAgaWYgKG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkLmxlbmd0aCAhPT0gMSB8fCBub2RlLmFyZ3VtZW50cy5yZXF1aXJlZFswXS5raW5kICE9PSBraW5kKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBzd2l0Y2ggKGtpbmQpIHtcbiAgICAgICAgICAgIGNhc2UgJ1RleHQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBub2RlLmFyZ3VtZW50cy5yZXF1aXJlZFswXS52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgJ1JlZ3VsYXJDb21tYW5kJzpcbiAgICAgICAgICAgIGNhc2UgJ0Jsb2NrJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5hcmd1bWVudHMucmVxdWlyZWRbMF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjbGVhbihub2RlKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG5vZGUpKVxuICAgICAgICAgICAgcmV0dXJuIG5vZGUubWFwKGNoaWxkID0+IHRoaXMuY2xlYW4oY2hpbGQpKTtcbiAgICAgICAgZGVsZXRlIG5vZGUubG9jO1xuICAgICAgICBzd2l0Y2ggKG5vZGUua2luZCkge1xuICAgICAgICAgICAgY2FzZSAnSW5saW5lTWF0aCc6XG4gICAgICAgICAgICBjYXNlICdEaXNwbGF5TWF0aCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW5fYmxvY2sobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdFbnZpcm9ubWVudCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW5fZW52aXJvbm1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdCbG9jayc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW5fYmxvY2sobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdCaWJsaW9ncmFwaHknOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuX2JpYihub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ1JlZ3VsYXJDb21tYW5kJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbl9jb21tYW5kKG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnRGlhY3JpdGljQ29tbWFuZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW5fZGlhY3JpdGljKG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnRW50cnknOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuX2VudHJ5KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnRmllbGQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMucmF3ID8gbm9kZSA6IHRoaXMuY2xlYW5fZmllbGQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdTdHJpbmdEZWNsYXJhdGlvbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW5fc3RyaW5nZGVjbChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ1N0cmluZ1JlZmVyZW5jZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW5fc3RyaW5ncmVmKG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnU3Vic2NyaXB0Q29tbWFuZCc6XG4gICAgICAgICAgICBjYXNlICdTdXBlcnNjcmlwdENvbW1hbmQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuX3NjcmlwdChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ1N5bWJvbENvbW1hbmQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuX3N5bWJvbChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ1ByZWFtYmxlRXhwcmVzc2lvbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW5fcHJlYW1ibGUobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdOdW1iZXInOlxuICAgICAgICAgICAgY2FzZSAnVGV4dCc6XG4gICAgICAgICAgICBjYXNlICdCcmFjZWRDb21tZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ0xpbmVDb21tZW50JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3IobmV3IFBhcnNlckVycm9yKGBubyBjbGVhbnVwIG1ldGhvZCBmb3IgJHt0aGlzLnNob3cobm9kZSl9YCwgbm9kZSksIHRoaXMudGV4dCgpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjbGVhbl9wcmVhbWJsZShub2RlKSB7XG4gICAgICAgIHRoaXMuaW5fcHJlYW1ibGUgPSB0cnVlO1xuICAgICAgICBjb25zdCBjbGVhbiA9IHRoaXMuY2xlYW4obm9kZS52YWx1ZSk7XG4gICAgICAgIHRoaXMuaW5fcHJlYW1ibGUgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIGNsZWFuO1xuICAgIH1cbiAgICBjbGVhbl9iaWIobm9kZSkge1xuICAgICAgICBub2RlLmNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4gY2hpbGQua2luZCAhPT0gJ05vbkVudHJ5VGV4dCcpLm1hcChjaGlsZCA9PiB0aGlzLmNsZWFuKGNoaWxkKSk7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICBjbGVhbl9zdHJpbmdkZWNsKG5vZGUpIHtcbiAgICAgICAgdGhpcy5zdHJpbmdzW25vZGUubmFtZS50b1VwcGVyQ2FzZSgpXSA9IG5vZGUudmFsdWU7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICBjbGVhbl9zdHJpbmdyZWYobm9kZSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBub2RlLm5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgY29uc3QgX3N0cmluZyA9IHRoaXMuc3RyaW5nc1tuYW1lXVxuICAgICAgICAgICAgfHwgdGhpcy5vcHRpb25zLnN0cmluZ3NbbmFtZV1cbiAgICAgICAgICAgIHx8IHRoaXMuZGVmYXVsdF9zdHJpbmdzW25hbWVdXG4gICAgICAgICAgICB8fCAoZmllbGRzLnVuYWJicmV2LmluY2x1ZGVzKHRoaXMuY2xlYW5pbmcubmFtZSkgJiYgKChfYSA9IHRoaXMub3B0aW9ucy51bmFiYnJldmlhdGVbbmFtZV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSAmJiBbdGhpcy50ZXh0KHRoaXMub3B0aW9ucy51bmFiYnJldmlhdGVbbmFtZV0udGV4dCldKTtcbiAgICAgICAgaWYgKCFfc3RyaW5nKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMudW5yZXNvbHZlZFN0cmluZ3NbbmFtZV0pXG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvcnMucHVzaCh7IG1lc3NhZ2U6IGBVbnJlc29sdmVkIEBzdHJpbmcgcmVmZXJlbmNlICR7SlNPTi5zdHJpbmdpZnkobm9kZS5uYW1lKX1gIH0pO1xuICAgICAgICAgICAgdGhpcy51bnJlc29sdmVkU3RyaW5nc1tuYW1lXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW4oe1xuICAgICAgICAgICAga2luZDogJ0Jsb2NrJyxcbiAgICAgICAgICAgIC8vIGlmIHRoZSBzdHJpbmcgaXNuJ3QgZm91bmQsIGFkZCBpdCBhcy1pcyBidXQgZXhlbXB0IGl0IGZyb20gc2VudGVuY2UgY2FzaW5nXG4gICAgICAgICAgICBjYXNlOiBfc3RyaW5nID8gdW5kZWZpbmVkIDogJ3ByZXNlcnZlJyxcbiAgICAgICAgICAgIG1hcmt1cDoge30sXG4gICAgICAgICAgICB2YWx1ZTogX3N0cmluZyA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoX3N0cmluZykpIDogW3RoaXMudGV4dChub2RlLm5hbWUpXSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNsZWFuX2VudHJ5KG5vZGUpIHtcbiAgICAgICAgY29uc3Qgc2hvcnRqb3VybmFscyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIG5vZGUuZmllbGRzKSB7XG4gICAgICAgICAgICBpZiAoZmllbGRzLnVuYWJicmV2LmluY2x1ZGVzKGZpZWxkLm5hbWUpICYmIEFycmF5LmlzQXJyYXkoZmllbGQudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWJiciA9IGZpZWxkLnZhbHVlLm1hcCh2ID0+IHYuc291cmNlKS5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBqb3VybmFsID0gdGhpcy5vcHRpb25zLnVuYWJicmV2aWF0ZVthYmJyXTtcbiAgICAgICAgICAgICAgICBpZiAoam91cm5hbCkge1xuICAgICAgICAgICAgICAgICAgICBzaG9ydGpvdXJuYWxzLnB1c2goT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGZpZWxkKSkpLCB7IG5hbWU6ICdzaG9ydGpvdXJuYWwnIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudmFsdWUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGpvdXJuYWwuYXN0KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG5vZGUuZmllbGRzID0gbm9kZS5maWVsZHMuY29uY2F0KHNob3J0am91cm5hbHMpLm1hcChjaGlsZCA9PiB0aGlzLmNsZWFuKGNoaWxkKSk7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICBzdGFydENsZWFuaW5nKG5hbWUpIHtcbiAgICAgICAgbmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKGZpZWxkcy50aXRsZS5pbmNsdWRlcyhuYW1lKSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhbmluZyA9IHsgdHlwZTogJ3RpdGxlJywgbmFtZSB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGZpZWxkcy5jcmVhdG9yLmluY2x1ZGVzKG5hbWUucmVwbGFjZSgvcyQvLCAnJykpKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFuaW5nID0geyB0eXBlOiAnY3JlYXRvcicsIG5hbWU6IG5hbWUucmVwbGFjZSgvcyQvLCAnJykgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYW5pbmcgPSB7IHR5cGU6ICdvdGhlcicsIG5hbWUgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdHJpcE5vQ2FzZShub2RlLCBzdHJpcCwgcHJlc2VydmUpIHtcbiAgICAgICAgc3dpdGNoIChub2RlLmtpbmQpIHtcbiAgICAgICAgICAgIGNhc2UgJ1JlZ3VsYXJDb21tYW5kJzpcbiAgICAgICAgICAgICAgICAvLyBhIGJpdCBjaGVhdHkgdG8gYXNzdW1lIHRoZXNlIHRvIGJlIG5vY2FzZWQsIGJ1dCBpdCdzIGp1c3QgbW9yZSBsaWtlbHkgdG8gYmUgd2hhdCBwZW9wbGUgd2FudFxuICAgICAgICAgICAgICAgIGlmIChbJ2Noc2YnLCAnYmlic3RyaW5nJywgJ2NpdGUnXS5pbmNsdWRlcyhub2RlLmNvbW1hbmQpKVxuICAgICAgICAgICAgICAgICAgICBzdHJpcCA9IHRydWU7XG4gICAgICAgICAgICAgICAgbm9kZS5hcmd1bWVudHMucmVxdWlyZWQubWFwKGFyZyA9PiB0aGlzLnN0cmlwTm9DYXNlKGFyZywgc3RyaXAsIHByZXNlcnZlKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdCbG9jayc6XG4gICAgICAgICAgICBjYXNlICdJbmxpbmVNYXRoJzpcbiAgICAgICAgICAgIGNhc2UgJ0Rpc3BsYXlNYXRoJzpcbiAgICAgICAgICAgICAgICBpZiAoc3RyaXAgJiYgbm9kZS5jYXNlID09PSAncHJvdGVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXNlcnZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLmNhc2UgPSAncHJlc2VydmUnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG5vZGUuY2FzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBub2RlLnZhbHVlLm1hcCh2ID0+IHRoaXMuc3RyaXBOb0Nhc2Uodiwgc3RyaXAgfHwgbm9kZS5jYXNlID09PSAncHJvdGVjdCcsIHByZXNlcnZlKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdGaWVsZCc6XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZS52YWx1ZSkpXG4gICAgICAgICAgICAgICAgICAgIG5vZGUudmFsdWUubWFwKHYgPT4gdGhpcy5zdHJpcE5vQ2FzZSh2LCBzdHJpcCwgcHJlc2VydmUpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpc1ZlcmJhdGltRmllbGQobmFtZSkge1xuICAgICAgICByZXR1cm4gISF0aGlzLm9wdGlvbnMudmVyYmF0aW1GaWVsZHMuZmluZChwID0+ICh0eXBlb2YgcCA9PT0gJ3N0cmluZycpID8gbmFtZSA9PT0gcCA6IG5hbWUubWF0Y2gocCkpO1xuICAgIH1cbiAgICBjbGVhbl9maWVsZChub2RlKSB7XG4gICAgICAgIHRoaXMuc3RhcnRDbGVhbmluZyhub2RlLm5hbWUpO1xuICAgICAgICB0aGlzLnN0cmlwTm9DYXNlKG5vZGUsICF0aGlzLm9wdGlvbnMuY2FzZVByb3RlY3Rpb24gfHwgdGhpcy5pc1ZlcmJhdGltRmllbGQobm9kZS5uYW1lKSwgdGhpcy5vcHRpb25zLnNlbnRlbmNlQ2FzZS5sZW5ndGggPT09IDApO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlLnZhbHVlKSlcbiAgICAgICAgICAgIHRoaXMuY29uZGVuc2Uobm9kZSk7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICBjbGVhbl9zY3JpcHQobm9kZSkge1xuICAgICAgICBsZXQgbSwgdmFsdWUsIHNpbmdsZWNoYXI7XG4gICAgICAgIC8vIHJlY29nbml6ZSBjb21iaW5lZCBmb3JtcyBsaWtlIFxcXlxcY2lyY1xuICAgICAgICBpZiAoc2luZ2xlY2hhciA9IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtub2RlLnNvdXJjZV0pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KHNpbmdsZWNoYXIpO1xuICAgICAgICBpZiAoKG0gPSBub2RlLnNvdXJjZS5tYXRjaCgvXihbXFxeX10pKFtee31dKykkLykpICYmICgoc2luZ2xlY2hhciA9IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtgJHttWzFdfSR7bVsyXX1gXSkgfHwgKHNpbmdsZWNoYXIgPSB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYCR7bVsxXX17JHttWzJdfX1gXSkpKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dChzaW5nbGVjaGFyKTtcbiAgICAgICAgaWYgKChtID0gbm9kZS5zb3VyY2UubWF0Y2goL14oW1xcXl9dKVxceyhbXnt9XSspXFx9JC8pKSAmJiAoKHNpbmdsZWNoYXIgPSB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYCR7bVsxXX0ke21bMl19YF0pIHx8IChzaW5nbGVjaGFyID0gdW5pY29kZTJsYXRleF8xLmxhdGV4W2Ake21bMV19eyR7bVsyXX19YF0pKSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQoc2luZ2xlY2hhcik7XG4gICAgICAgIGNvbnN0IGNtZCA9IG5vZGUua2luZCA9PT0gJ1N1cGVyc2NyaXB0Q29tbWFuZCcgPyAnXicgOiAnXyc7XG4gICAgICAgIGlmICh0eXBlb2Ygbm9kZS52YWx1ZSA9PT0gJ3N0cmluZycgJiYgKHNpbmdsZWNoYXIgPSB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYCR7Y21kfSR7bm9kZS52YWx1ZX1gXSB8fCB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYCR7Y21kfXske25vZGUudmFsdWV9fWBdKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dChzaW5nbGVjaGFyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG5vZGUudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IFt0aGlzLnRleHQobm9kZS52YWx1ZSldO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KG5vZGUudmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IFtub2RlLnZhbHVlXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhbHVlID0gbm9kZS52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtb2RlID0gbm9kZS5raW5kID09PSAnU3VwZXJzY3JpcHRDb21tYW5kJyA/ICdzdXAnIDogJ3N1Yic7XG4gICAgICAgIHJldHVybiB0aGlzLmNsZWFuKHtcbiAgICAgICAgICAgIGtpbmQ6ICdCbG9jaycsXG4gICAgICAgICAgICBtYXJrdXA6IHsgW21vZGVdOiB0cnVlIH0sXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNsZWFuX2Vudmlyb25tZW50KG5vZGUpIHtcbiAgICAgICAgdGhpcy5jb25kZW5zZShub2RlKTtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuICAgIG5lZWRzUHJvdGVjdGlvbih3b3JkKSB7XG4gICAgICAgIHJldHVybiAhd29yZC5tYXRjaChwcmVzZXJ2ZUNhc2UuaGFzVXBwZXIpICYmIHdvcmQubWF0Y2gocHJlc2VydmVDYXNlLmhhc0xvd2VyKTtcbiAgICB9XG4gICAgY2xlYW5fYmxvY2sobm9kZSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHRoaXMuY29uZGVuc2Uobm9kZSk7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuY2FzZVByb3RlY3Rpb24gIT09ICdzdHJpY3QnICYmICgoX2EgPSB0aGlzLmNsZWFuaW5nKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudHlwZSkgPT09ICd0aXRsZScgJiYgbm9kZS5jYXNlID09PSAncHJvdGVjdCcpIHtcbiAgICAgICAgICAgIC8vIHRlc3Qgd2hldGhlciB3ZSBjYW4gZ2V0IGF3YXkgd2l0aCBza2lwcGluZyBjYXNlIHByb3RlY3Rpb24gYmVjYXVzZSBpdCBjb250YWlucyBhbGwgd29yZHMgdGhhdCB3aWxsIGJlIHByZXNlcnZlZCBhbnl3YXkgd2hlbiBjb252ZXJ0aW5nIGJhY2sgdG8gVGl0bGUgQ2FzZVxuICAgICAgICAgICAgbGV0IHByZXNlcnZlID0gdHJ1ZTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZC5raW5kID09PSAnVGV4dCcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjaGlsZC52YWx1ZS50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgIHByZXNlcnZlID0gIXZhbHVlLm1hdGNoKHByZXNlcnZlQ2FzZS5pc0Nhc2VTZW5zaXRpdmUpIHx8ICF2YWx1ZS5zcGxpdCgvXFxzKy8pLmZpbmQod29yZCA9PiB0aGlzLm5lZWRzUHJvdGVjdGlvbih3b3JkKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXByZXNlcnZlKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcmVzZXJ2ZSlcbiAgICAgICAgICAgICAgICBub2RlLmNhc2UgPSAncHJlc2VydmUnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlLmtpbmQgPT09ICdCbG9jaycpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW21hcmt1cCwgb25dIG9mIE9iamVjdC5lbnRyaWVzKG5vZGUubWFya3VwKSkge1xuICAgICAgICAgICAgICAgIGlmICghb24pXG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBub2RlLm1hcmt1cFttYXJrdXBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICBjbGVhbl9kaWFjcml0aWMobm9kZSkge1xuICAgICAgICBjb25zdCBjaGFyID0gbm9kZS5kb3RsZXNzID8gYFxcXFwke25vZGUuY2hhcmFjdGVyfWAgOiBub2RlLmNoYXJhY3RlcjtcbiAgICAgICAgbGV0IHVuaWNvZGUgPSB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYFxcXFwke25vZGUubWFya317JHtjaGFyfX1gXVxuICAgICAgICAgICAgfHwgdW5pY29kZTJsYXRleF8xLmxhdGV4W2BcXFxcJHtub2RlLm1hcmt9JHtjaGFyfWBdXG4gICAgICAgICAgICB8fCB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYHtcXFxcJHtub2RlLm1hcmt9ICR7Y2hhcn19YF1cbiAgICAgICAgICAgIHx8IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtge1xcXFwke25vZGUubWFya30ke2NoYXJ9fWBdXG4gICAgICAgICAgICB8fCB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYFxcXFwke25vZGUubWFya30gJHtjaGFyfWBdO1xuICAgICAgICBpZiAoIXVuaWNvZGUgJiYgIW5vZGUuZG90bGVzcyAmJiBub2RlLmNoYXJhY3Rlci5sZW5ndGggPT09IDEgJiYgdW5pY29kZTJsYXRleF8xLmRpYWNyaXRpY3MudG91bmljb2RlW25vZGUubWFya10pXG4gICAgICAgICAgICB1bmljb2RlID0gbm9kZS5jaGFyYWN0ZXIgKyB1bmljb2RlMmxhdGV4XzEuZGlhY3JpdGljcy50b3VuaWNvZGVbbm9kZS5tYXJrXTtcbiAgICAgICAgaWYgKCF1bmljb2RlICYmICF0aGlzLmluX3ByZWFtYmxlKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3IobmV3IFRlWEVycm9yKGBVbmhhbmRsZWQgXFxcXCR7bm9kZS5tYXJrfXske2NoYXJ9fWAsIG5vZGUsIHRoaXMuY2h1bmspLCB0aGlzLnRleHQoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHQodW5pY29kZSk7XG4gICAgfVxuICAgIGNsZWFuX3N5bWJvbChub2RlKSB7XG4gICAgICAgIGlmIChub2RlLmNvbW1hbmQgPT09ICdcXFxcJylcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQoJ1xcbicpO1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0KHVuaWNvZGUybGF0ZXhfMS5sYXRleFtgXFxcXCR7bm9kZS5jb21tYW5kfWBdIHx8IG5vZGUuY29tbWFuZCk7XG4gICAgfVxuICAgIGZpcnN0X3RleHRfYmxvY2sobm9kZSkge1xuICAgICAgICBpZiAoIW5vZGUpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgaWYgKG5vZGUua2luZCA9PT0gJ0Jsb2NrJykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChjaGlsZC5raW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1RleHQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkLnZhbHVlID8gbm9kZSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ0Jsb2NrJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9IHRoaXMuZmlyc3RfdGV4dF9ibG9jayhjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FuZGlkYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNsZWFuX2NvbW1hbmQobm9kZSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGxldCBhcmcsIHVuaWNvZGU7XG4gICAgICAgIGlmICh1bmljb2RlID0gdW5pY29kZTJsYXRleF8xLmxhdGV4W25vZGUuc291cmNlXSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQodW5pY29kZSk7XG4gICAgICAgIHN3aXRjaCAobm9kZS5jb21tYW5kKSB7XG4gICAgICAgICAgICBjYXNlICduZXdjb21tYW5kJzpcbiAgICAgICAgICAgICAgICBpZiAoKChfYSA9IG5vZGUuYXJndW1lbnRzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVxdWlyZWQubGVuZ3RoKSA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAmJiBub2RlLmFyZ3VtZW50cy5yZXF1aXJlZFswXS5raW5kID09PSAnQmxvY2snXG4gICAgICAgICAgICAgICAgICAgICYmIG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkWzBdLnZhbHVlLmxlbmd0aCA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAmJiBub2RlLmFyZ3VtZW50cy5yZXF1aXJlZFswXS52YWx1ZVswXS5raW5kID09PSAnUmVndWxhckNvbW1hbmQnXG4gICAgICAgICAgICAgICAgICAgICYmIG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkWzFdLmtpbmQgPT09ICdCbG9jaycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXdjb21tYW5kc1tub2RlLmFyZ3VtZW50cy5yZXF1aXJlZFswXS52YWx1ZVswXS5jb21tYW5kXSA9IG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkWzFdLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCduZXdjb21tYW5kPycsIEpTT04uc3RyaW5naWZ5KG5vZGUsIG51bGwsIDIpKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaXRlbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsga2luZDogJ01hcmt1cCcsIHZhbHVlOiAnPGxpPicsIHNvdXJjZTogbm9kZS5zb3VyY2UgfTtcbiAgICAgICAgICAgIGNhc2UgJ2ZyYWMnOlxuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsIDIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhcmdbMF0ua2luZCA9PT0gJ1RleHQnICYmIGFyZ1sxXS5raW5kID09PSAnVGV4dCcgJiYgKHVuaWNvZGUgPSB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYFxcXFxmcmFjeyR7YXJnWzBdLnZhbHVlfX17JHthcmdbMV0udmFsdWV9fWBdKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQodW5pY29kZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6ICdCbG9jaycsXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlOiAncHJvdGVjdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJrdXA6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGtpbmQ6ICdCbG9jaycsIG1hcmt1cDogeyBzdXA6IHRydWUgfSwgdmFsdWU6IFthcmdbMF1dIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0KCdcXHUyMDQ0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBraW5kOiAnQmxvY2snLCBtYXJrdXA6IHsgc3ViOiB0cnVlIH0sIHZhbHVlOiBbYXJnWzFdXSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgLy8gaWdub3JlXG4gICAgICAgICAgICBjYXNlICd2c3BhY2UnOlxuICAgICAgICAgICAgY2FzZSAndnBoYW50b20nOlxuICAgICAgICAgICAgY2FzZSAncGF0aCc6XG4gICAgICAgICAgICBjYXNlICdhZnRlcmdyb3VwJzpcbiAgICAgICAgICAgIGNhc2UgJ2lnbm9yZXNwYWNlcyc6XG4gICAgICAgICAgICBjYXNlICdyZWxheCc6XG4gICAgICAgICAgICBjYXNlICdub29wc29ydCc6XG4gICAgICAgICAgICBjYXNlICdpZmRlZmluZWQnOlxuICAgICAgICAgICAgY2FzZSAnRGVjbGFyZVByZWZDaGFycyc6XG4gICAgICAgICAgICBjYXNlICdlbHNlJzpcbiAgICAgICAgICAgIGNhc2UgJ2ZpJzpcbiAgICAgICAgICAgIGNhc2UgJ21ha2VhdGxldHRlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dCgpO1xuICAgICAgICAgICAgY2FzZSAnRWxzZXZpZXJHbHlwaCc6XG4gICAgICAgICAgICAgICAgaWYgKGFyZyA9IHRoaXMuYXJndW1lbnQobm9kZSwgJ1RleHQnKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodW5pY29kZSA9IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtgXFxcXCR7bm9kZS5jb21tYW5kfXske2FyZ319YF0pXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KHVuaWNvZGUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoYXJnLCAxNikpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdjaHNmJzpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hcmd1bWVudChub2RlLCAnbm9uZScpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KCk7XG4gICAgICAgICAgICAgICAgaWYgKGFyZyA9IHRoaXMuYXJndW1lbnQobm9kZSwgJ0Jsb2NrJykpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuKGFyZyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdiaWJzdHJpbmcnOlxuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICdCbG9jaycpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbihhcmcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2l0ZSc6XG4gICAgICAgICAgICAgICAgaWYgKGFyZyA9IHRoaXMuYXJndW1lbnQobm9kZSwgJ0Jsb2NrJykpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuKGFyZyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0ZXh0c3VwZXJzY3JpcHQnOlxuICAgICAgICAgICAgY2FzZSAnc3AnOlxuICAgICAgICAgICAgICAgIGlmICgoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAnVGV4dCcpKSAmJiAodW5pY29kZSA9IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtgXnske2FyZ319YF0pKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KHVuaWNvZGUpO1xuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICdCbG9jaycpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbihhcmcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndGV4dHN1YnNjcmlwdCc6XG4gICAgICAgICAgICBjYXNlICdzYic6XG4gICAgICAgICAgICAgICAgaWYgKChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICdUZXh0JykpICYmICh1bmljb2RlID0gdW5pY29kZTJsYXRleF8xLmxhdGV4W2BfeyR7YXJnfX1gXSkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQodW5pY29kZSk7XG4gICAgICAgICAgICAgICAgaWYgKGFyZyA9IHRoaXMuYXJndW1lbnQobm9kZSwgJ0Jsb2NrJykpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuKGFyZyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0ZXh0c2MnOlxuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICdCbG9jaycpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbihhcmcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZW5xdW90ZSc6XG4gICAgICAgICAgICBjYXNlICdta2JpYnF1b3RlJzpcbiAgICAgICAgICAgICAgICBpZiAoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAnQmxvY2snKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW4oYXJnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RleHRiZic6XG4gICAgICAgICAgICBjYXNlICdta2JpYmJvbGQnOlxuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICdCbG9jaycpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbihhcmcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2VjdGlvbic6XG4gICAgICAgICAgICBjYXNlICdzdWJzZWN0aW9uJzpcbiAgICAgICAgICAgIGNhc2UgJ3N1YnN1YnNlY3Rpb24nOlxuICAgICAgICAgICAgY2FzZSAnc3Vic3Vic3Vic2VjdGlvbic6XG4gICAgICAgICAgICAgICAgaWYgKGFyZyA9IHRoaXMuYXJndW1lbnQobm9kZSwgJ0Jsb2NrJykpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuKGFyZyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdta2JpYml0YWxpYyc6XG4gICAgICAgICAgICBjYXNlICdta2JpYmVtcGgnOlxuICAgICAgICAgICAgY2FzZSAndGV4dGl0JzpcbiAgICAgICAgICAgIGNhc2UgJ2VtcGgnOlxuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICdCbG9jaycpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbihhcmcpO1xuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICdUZXh0JykpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuKHsga2luZDogJ0Jsb2NrJywgbWFya3VwOiB7IGl0YWxpY3M6IHRydWUgfSwgdmFsdWU6IFt0aGlzLnRleHQoYXJnKV0gfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdiaWJjeXInOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFyZ3VtZW50KG5vZGUsICdub25lJykpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQoKTtcbiAgICAgICAgICAgICAgICBpZiAoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAnQmxvY2snKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW4oYXJnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2hzcGFjZSc6XG4gICAgICAgICAgICBjYXNlICdtYXRocm0nOlxuICAgICAgICAgICAgY2FzZSAndGV4dHJtJzpcbiAgICAgICAgICAgIGNhc2UgJ29jaXJjJzpcbiAgICAgICAgICAgIGNhc2UgJ21ib3gnOlxuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICd0ZXh0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pY29kZSA9IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtgXFxcXCR7bm9kZS5jb21tYW5kfXske2FyZ319YF07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQodW5pY29kZSB8fCAobm9kZS5jb21tYW5kID09PSAnaHNwYWNlJyA/ICcgJyA6IGFyZykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICghbm9kZS5hcmd1bWVudHMucmVxdWlyZWQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAnQmxvY2snKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbihhcmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIC8vIGp1c3QgdGFrZSB0aGUgVVJMPyBOb3QgdGhlIGxhYmVsP1xuICAgICAgICAgICAgY2FzZSAnaHJlZic6XG4gICAgICAgICAgICAgICAgaWYgKGFyZyA9IHRoaXMuYXJndW1lbnQobm9kZSwgMikpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuKGFyZ1swXSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd1cmwnOlxuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICdUZXh0JykpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQoYXJnKTtcbiAgICAgICAgICAgICAgICBpZiAoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAnQmxvY2snKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW4oYXJnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NsJzpcbiAgICAgICAgICAgIGNhc2UgJ2VtJzpcbiAgICAgICAgICAgIGNhc2UgJ2l0JzpcbiAgICAgICAgICAgIGNhc2UgJ2l0c2hhcGUnOlxuICAgICAgICAgICAgY2FzZSAnYmYnOlxuICAgICAgICAgICAgY2FzZSAnYmZzZXJpZXMnOlxuICAgICAgICAgICAgY2FzZSAnc2MnOlxuICAgICAgICAgICAgY2FzZSAnc2NzaGFwZSc6XG4gICAgICAgICAgICBjYXNlICd0dCc6XG4gICAgICAgICAgICBjYXNlICdybSc6XG4gICAgICAgICAgICBjYXNlICdzZic6XG4gICAgICAgICAgICBjYXNlICd2ZXJiJzpcbiAgICAgICAgICAgICAgICAvLyBoYW5kbGVkIGluIHRoZSBncmFtbWFyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dCgpO1xuICAgICAgICAgICAgLy8gd291bGRuJ3Qga25vdyB3aGF0IHRvIGRvIHdpdGggdGhlc2VcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQoKTtcbiAgICAgICAgICAgIGNhc2UgJ3Bhcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dCgnXFxuXFxuJyk7XG4gICAgICAgICAgICBjYXNlICdjeXInOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFyZ3VtZW50KG5vZGUsICdub25lJykpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3BvbGhrJzpcbiAgICAgICAgICAgICAgICBpZiAodW5pY29kZSA9IHRoaXMuYXJndW1lbnQobm9kZSwgJ3RleHQnKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodW5pY29kZS5sZW5ndGggPT09IDEpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KHVuaWNvZGUgKyAnXFx1MDMyOCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hcmd1bWVudChub2RlLCAnbm9uZScpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KCdcXHUwMzI4Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGlmIChub2RlLmtpbmQgPT09ICdSZWd1bGFyQ29tbWFuZCcgJiYgdGhpcy5uZXdjb21tYW5kc1tub2RlLmNvbW1hbmRdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6ICdCbG9jaycsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJrdXA6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5uZXdjb21tYW5kc1tub2RlLmNvbW1hbmRdKSksXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodW5pY29kZTJsYXRleF8xLmRpYWNyaXRpY3MudG91bmljb2RlW25vZGUuY29tbWFuZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hcmd1bWVudHMucmVxdWlyZWQgPSB0aGlzLmNsZWFuKG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS5hcmd1bWVudHMucmVxdWlyZWQubGVuZ3RoID09PSAxICYmIG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkWzBdLmtpbmQgPT09ICdUZXh0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm8gaWRlYSB3aHkgSSBjYW4ndCBqdXN0IHN0cmFpZ2h0IHJldHVybiB0aGlzIGJ1dCB0eXBlc2NyaXB0IGp1c3Qgd29uJ3Qgc2h1dCB1cFxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogJ0Jsb2NrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrdXA6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBbe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogJ0RpYWNyaXRpY0NvbW1hbmQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyazogbm9kZS5jb21tYW5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyOiBub2RlLmFyZ3VtZW50cy5yZXF1aXJlZFswXS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdGxlc3M6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jOiBub2RlLmFyZ3VtZW50cy5yZXF1aXJlZFswXS5sb2MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkWzBdLnNvdXJjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW4oYmxvY2spO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJsb2NrID0gdGhpcy5maXJzdF90ZXh0X2Jsb2NrKG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkWzBdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpeGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay52YWx1ZSA9IGJsb2NrLnZhbHVlLnJlZHVjZSgodmFsdWUsIGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmaXhlZCAmJiBjaGlsZC5raW5kID09PSAnVGV4dCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5wdXNoKHsga2luZDogJ0RpYWNyaXRpY0NvbW1hbmQnLCBtYXJrOiBub2RlLmNvbW1hbmQsIGNoYXJhY3RlcjogY2hpbGQudmFsdWVbMF0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLnB1c2goT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjaGlsZCksIHsgdmFsdWU6IGNoaWxkLnZhbHVlLnN1YnN0cmluZygxKSB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgW10pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6ICdCbG9jaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya3VwOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbm9kZS5hcmd1bWVudHMucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG92ZXJsaW5lIHdpdGhvdXQgYXJndW1lbnRzIGRvZXNuJ3Qgc2VlbSB0byByZW5kZXIgaW4gTGFUZVhcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLmNvbW1hbmQgPT09ICdvdmVybGluZScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dCgnICcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6ICdCbG9jaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya3VwOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogW3RoaXMudGV4dCgnICcgKyB1bmljb2RlMmxhdGV4XzEuZGlhY3JpdGljcy50b3VuaWNvZGVbbm9kZS5jb21tYW5kXSldLmNvbmNhdChub2RlLmFyZ3VtZW50cy5yZXF1aXJlZCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodW5pY29kZSA9IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtub2RlLnNvdXJjZV0gfHwgdW5pY29kZTJsYXRleF8xLmxhdGV4W2Ake25vZGUuc291cmNlfXt9YF0pXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQodW5pY29kZSk7XG4gICAgICAgICAgICAgICAgaWYgKCh1bmljb2RlID0gdW5pY29kZTJsYXRleF8xLmxhdGV4W2BcXFxcJHtub2RlLmNvbW1hbmR9YF0gfHwgdW5pY29kZTJsYXRleF8xLmxhdGV4W2BcXFxcJHtub2RlLmNvbW1hbmR9e31gXSkgJiYgdGhpcy5hcmd1bWVudChub2RlLCAnbm9uZScpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KHVuaWNvZGUpO1xuICAgICAgICAgICAgICAgIGlmICgoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAnVGV4dCcpKSAmJiAodW5pY29kZSA9IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtgXFxcXCR7bm9kZS5jb21tYW5kfXske2FyZ319YF0pKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KHVuaWNvZGUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluX3ByZWFtYmxlKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dChub2RlLnNvdXJjZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yKG5ldyBUZVhFcnJvcihgVW5oYW5kbGVkIGNvbW1hbmQ6ICR7bm9kZS5jb21tYW5kfWAgKyB0aGlzLnNob3cobm9kZSksIG5vZGUsIHRoaXMuY2h1bmspLCB0aGlzLnRleHQoKSk7XG4gICAgfVxuICAgIHByZXNlcnZlQ2FzZSh3b3JkKSB7XG4gICAgICAgIC8vIHdvcmQgPSB3b3JkLnJlcGxhY2UobmV3IFJlZ0V4cChgXCJbJHt0aGlzLm1hcmt1cC5lbnF1b3RlLm9wZW59JHt0aGlzLm1hcmt1cC5lbnF1b3RlLmNsb3NlfTooKV1gLCAnZycpLCAnJylcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCF3b3JkLnRyaW0oKSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKCF3b3JkLm1hdGNoKHByZXNlcnZlQ2FzZS5oYXNBbHBoYU51bSkpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgd29yZCA9IHdvcmQucmVwbGFjZSgvW1xcL+KAmSfigJ06KCldL2csICcnKTtcbiAgICAgICAgaWYgKHdvcmQgPT09ICdJJylcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAod29yZC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICh3b3JkLnJlcGxhY2UocHJlc2VydmVDYXNlLm5vdENhc2VTZW5zaXRpdmUpID09PSAnJylcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgLy8gd29yZCA9IHdvcmQucmVwbGFjZShwcmVzZXJ2ZUNhc2Uubm90QWxwaGFOdW0sICcnKVxuICAgICAgICAvLyBzaW1wbGUgY2FwIGF0IHN0YXJ0IG9mIGZpZWxkXG4gICAgICAgIGlmICh3b3JkLm1hdGNoKHByZXNlcnZlQ2FzZS5sZWFkaW5nQ2FwKSAmJiAoKF9iID0gKF9hID0gdGhpcy5maWVsZCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5sZW5ndGgpID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAod29yZC5tYXRjaChwcmVzZXJ2ZUNhc2UuYWxsQ2FwcykpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKHdvcmQubGVuZ3RoID4gMSAmJiB3b3JkLm1hdGNoKHByZXNlcnZlQ2FzZS5qb2luZWQpKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAod29yZC5tYXRjaChwcmVzZXJ2ZUNhc2UuaGFzVXBwZXIpKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmICh3b3JkLm1hdGNoKHByZXNlcnZlQ2FzZS5pc051bWJlcikpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb252ZXJ0KG5vZGUpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZSkpXG4gICAgICAgICAgICByZXR1cm4gbm9kZS5tYXAoY2hpbGQgPT4gdGhpcy5jb252ZXJ0KGNoaWxkKSk7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmF3ICYmIHRoaXMuZmllbGQpXG4gICAgICAgICAgICBub2RlID0gdGhpcy50ZXh0KG5vZGUuc291cmNlKTtcbiAgICAgICAgc3dpdGNoIChub2RlLmtpbmQpIHtcbiAgICAgICAgICAgIGNhc2UgJ01hcmt1cCc6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQudGV4dCArPSBub2RlLnZhbHVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQnJhY2VkQ29tbWVudCc6XG4gICAgICAgICAgICBjYXNlICdMaW5lQ29tbWVudCc6XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tZW50cy5wdXNoKG5vZGUudmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnRW50cnknOlxuICAgICAgICAgICAgICAgIHRoaXMuY29udmVydF9lbnRyeShub2RlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ051bWJlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5jb252ZXJ0X251bWJlcihub2RlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1RleHQnOlxuICAgICAgICAgICAgICAgIHRoaXMuY29udmVydF90ZXh0KG5vZGUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQmxvY2snOlxuICAgICAgICAgICAgY2FzZSAnSW5saW5lTWF0aCc6XG4gICAgICAgICAgICBjYXNlICdEaXNwbGF5TWF0aCc6XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmZpZWxkID8gdGhpcy5maWVsZC50ZXh0Lmxlbmd0aCA6IG51bGw7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlc2VydmUgPSB0eXBlb2Ygc3RhcnQgPT09ICdudW1iZXInICYmIHRoaXMuZmllbGQucHJlc2VydmVSYW5nZXM7XG4gICAgICAgICAgICAgICAgdGhpcy5jb252ZXJ0X2Jsb2NrKG5vZGUpO1xuICAgICAgICAgICAgICAgIGlmIChwcmVzZXJ2ZSAmJiAobm9kZS5jYXNlIHx8IG5vZGUua2luZC5lbmRzV2l0aCgnTWF0aCcpKSlcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVzZXJ2ZShzdGFydCwgdGhpcy5maWVsZC50ZXh0Lmxlbmd0aCk7IC8vICwgYGNvbnZlcnQtYmxvY2s6IGNhc2U9JHtub2RlLmNhc2V9LCBtYXRoPSR7bm9kZS5raW5kLmVuZHNXaXRoKCdNYXRoJyl9YClcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Vudmlyb25tZW50JzpcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnZlcnRfZW52aXJvbm1lbnQobm9kZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdQcmVhbWJsZUV4cHJlc3Npb24nOlxuICAgICAgICAgICAgICAgIHRoaXMucHJlYW1ibGUucHVzaChub2RlLnZhbHVlLm1hcChwcmVhbWJsZSA9PiBwcmVhbWJsZS5zb3VyY2UpLmpvaW4oJ1xcblxcbicpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Rpc3BsYXlNYXRoJzpcbiAgICAgICAgICAgIGNhc2UgJ0lubGluZU1hdGgnOlxuICAgICAgICAgICAgY2FzZSAnU3RyaW5nRGVjbGFyYXRpb24nOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvcihuZXcgUGFyc2VyRXJyb3IoYG5vIGNvbnZlcnRlciBmb3IgJHtub2RlLmtpbmR9OiAke3RoaXMuc2hvdyhub2RlKX1gLCBub2RlKSwgdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzcGxpdE9uY2Uocywgc2VwLCBmcm9tRW5kID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3Qgc3BsaXQgPSBmcm9tRW5kID8gcy5sYXN0SW5kZXhPZihzZXApIDogcy5pbmRleE9mKHNlcCk7XG4gICAgICAgIHJldHVybiAoc3BsaXQgPCAwKSA/IFtzLCAnJ10gOiBbcy5zdWJzdHIoMCwgc3BsaXQpLCBzLnN1YnN0cihzcGxpdCArIDEpXTtcbiAgICB9XG4gICAgcGFyc2VOYW1lKG5hbWUpIHtcbiAgICAgICAgbGV0IHBhcnNlZCA9IG51bGw7XG4gICAgICAgIGNvbnN0IHBhcnRzID0gbmFtZS5zcGxpdChtYXJrZXIuY29tbWEpO1xuICAgICAgICBpZiAocGFydHMubGVuZ3RoICYmICFwYXJ0cy5maW5kKHAgPT4gIXAubWF0Y2goL15bYS16XSsoLWkpPz0vaSkpKSB7IC8vIGV4dGVuZGVkIG5hbWUgZm9ybWF0XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgICAgICAgICAgICBwYXJzZWQgPSBwYXJzZWQgfHwge307XG4gICAgICAgICAgICAgICAgY29uc3QgW2F0dHIsIHZhbHVlXSA9IHRoaXMuc3BsaXRPbmNlKHBhcnQucmVwbGFjZShtYXJrZXIucmUuc3BhY2UsICcnKSwgJz0nKS5tYXAodiA9PiB2LnRyaW0oKSk7XG4gICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3dpdGNoIChhdHRyLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmFtaWx5JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZC5sYXN0TmFtZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2dpdmVuLWknOlxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkLmluaXRpYWwgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdnaXZlbic6XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWQuZmlyc3ROYW1lID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlZml4JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZC5wcmVmaXggPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdzdWZmaXgnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkLnN1ZmZpeCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3VzZXByZWZpeCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWQudXNlcHJlZml4ID0gdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2p1bmlvcmNvbW1hJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZC51c2VwcmVmaXggPSB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFthdHRyLnRvTG93ZXJDYXNlKCldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJlZml4ID0gLyguKz8pXFxzKyh2ZXJlfHZvbnx2YW4gZGVufHZhbiBkZXJ8dmFufGRlfGRlbHxkZWxsYXxkZXJ8ZGl8ZGF8cGlldHJvfHZhbmRlbnxkdXxzdC58c3R8bGF8bG98dGVyfGJpbnxpYm58dGV8dGVufG9wfGJlbnxhbClcXHMrKC4rKS87XG4gICAgICAgIGxldCBtO1xuICAgICAgICBzd2l0Y2ggKHBhcnNlZCA/IDAgOiBwYXJ0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IHBhcnNlZFxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxOiAvLyBuYW1lIHdpdGhvdXQgY29tbWFzXG4gICAgICAgICAgICAgICAgLy8gbGl0ZXJhbFxuICAgICAgICAgICAgICAgIGlmIChtYXJrZXIucmUubGl0ZXJhbE5hbWUudGVzdChwYXJ0c1swXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkID0geyBsaXRlcmFsOiBwYXJ0c1swXSB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChtID0gcGFydHNbMF0ucmVwbGFjZShtYXJrZXIucmUuc3BhY2UsICcgJykubWF0Y2gocHJlZml4KSkgeyAvLyBzcGxpdCBvbiBwcmVmaXhcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3ROYW1lOiBtWzFdLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4OiBtWzJdLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE5hbWU6IG1bM10sXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyB0b3AtbGV2ZWwgXCJmaXJzdG5hbWUgbGFzdG5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBbZmlyc3ROYW1lLCBsYXN0TmFtZV0gPSB0aGlzLnNwbGl0T25jZShwYXJ0c1swXSwgbWFya2VyLnNwYWNlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3ROYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWQgPSB7IGZpcnN0TmFtZSwgbGFzdE5hbWUgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZCA9IHsgbGFzdE5hbWU6IGZpcnN0TmFtZSB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAyOiAvLyBsYXN0bmFtZSwgZmlyc3RuYW1lXG4gICAgICAgICAgICAgICAgcGFyc2VkID0ge1xuICAgICAgICAgICAgICAgICAgICBsYXN0TmFtZTogcGFydHNbMF0sXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0TmFtZTogcGFydHNbMV0sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6IC8vIGxhc3RuYW1lLCBzdWZmaXgsIGZpcnN0bmFtZVxuICAgICAgICAgICAgICAgIHBhcnNlZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgbGFzdE5hbWU6IHBhcnRzWzBdLFxuICAgICAgICAgICAgICAgICAgICBzdWZmaXg6IHBhcnRzWzFdLFxuICAgICAgICAgICAgICAgICAgICBmaXJzdE5hbWU6IHBhcnRzLnNsaWNlKDIpLmpvaW4obWFya2VyLmNvbW1hKSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHBhcnNlZCkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiAhPT0gJ3N0cmluZycpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBwYXJzZWRba10gPSBtYXJrZXIuY2xlYW4odikudHJpbSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJzZWQ7XG4gICAgfVxuICAgIGNvbnZlcnRfZW50cnkobm9kZSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHRoaXMuZW50cnkgPSB7XG4gICAgICAgICAgICBrZXk6IG5vZGUuaWQsXG4gICAgICAgICAgICB0eXBlOiBub2RlLnR5cGUsXG4gICAgICAgICAgICBmaWVsZHM6IHt9LFxuICAgICAgICAgICAgY3JlYXRvcnM6IHt9LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmVudHJpZXMucHVzaCh0aGlzLmVudHJ5KTtcbiAgICAgICAgLy8gb3JkZXIgdGhlc2UgZmlyc3QgZm9yIGxhbmd1YWdlLWRlcGVuZGVudCBzZW50ZW5jZSBjYXNpbmdcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBbJ2xhbmdpZCcsICdoeXBoZW5hdGlvbicsICdsYW5ndWFnZSddO1xuICAgICAgICBub2RlLmZpZWxkcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpYSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IGliID0gb3JkZXIuaW5kZXhPZihiLm5hbWUpO1xuICAgICAgICAgICAgaWYgKGlhID09PSAtMSAmJiBpYiA9PT0gLTEpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSk7IC8vIGRvZXNuJ3QgbWF0dGVyIHJlYWxseVxuICAgICAgICAgICAgaWYgKGlhID09PSAtMSlcbiAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgIGlmIChpYiA9PT0gLTEpXG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgcmV0dXJuIGlhIC0gaWI7XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgc2VudGVuY2VDYXNlID0gISF0aGlzLm9wdGlvbnMuc2VudGVuY2VDYXNlLmxlbmd0aDsgLy8gaWYgc2VudGVuY2VDYXNlIGlzIGVtcHR5LCBubyBzZW50ZW5jZSBjYXNpbmdcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBub2RlLmZpZWxkcykge1xuICAgICAgICAgICAgaWYgKGZpZWxkLmtpbmQgIT09ICdGaWVsZCcpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3IobmV3IFBhcnNlckVycm9yKGBFeHBlY3RlZCBGaWVsZCwgZ290ICR7ZmllbGQua2luZH1gLCBub2RlKSwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRDbGVhbmluZyhmaWVsZC5uYW1lKTtcbiAgICAgICAgICAgIC8qXG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhdyAmJiB0aGlzLmZpZWxkVHlwZSAhPT0gJ2NyZWF0b3InKSB7XG4gICAgICAgICAgICAgIHRoaXMuZW50cnkuZmllbGRzW2ZpZWxkLm5hbWVdID0gWyBmaWVsZC52YWx1ZS5tYXAodiA9PiB2LnNvdXJjZSkuam9pbignJykgXVxuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuZmllbGQgPSB7XG4gICAgICAgICAgICAgICAgbmFtZTogZmllbGQubmFtZSxcbiAgICAgICAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICAgICAgICBsZXZlbDogMCxcbiAgICAgICAgICAgICAgICB3b3Jkczoge1xuICAgICAgICAgICAgICAgICAgICB1cHBlcjogMCxcbiAgICAgICAgICAgICAgICAgICAgbG93ZXI6IDAsXG4gICAgICAgICAgICAgICAgICAgIG90aGVyOiAwLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcHJlc2VydmVSYW5nZXM6IChzZW50ZW5jZUNhc2UgJiYgZmllbGRzLnRpdGxlLmluY2x1ZGVzKGZpZWxkLm5hbWUpKSA/IFtdIDogbnVsbCxcbiAgICAgICAgICAgICAgICBodG1sOiB0aGlzLm9wdGlvbnMuaHRtbEZpZWxkcy5pbmNsdWRlcyhmaWVsZC5uYW1lKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmVudHJ5LmZpZWxkc1t0aGlzLmZpZWxkLm5hbWVdID0gdGhpcy5lbnRyeS5maWVsZHNbdGhpcy5maWVsZC5uYW1lXSB8fCBbXTtcbiAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZSBmb3IgJ3RpdGxlID0gMjAyMCdcbiAgICAgICAgICAgIGlmIChmaWVsZC52YWx1ZS5raW5kID09PSAnTnVtYmVyJykge1xuICAgICAgICAgICAgICAgIHRoaXMuZW50cnkuZmllbGRzW3RoaXMuZmllbGQubmFtZV0ucHVzaChmaWVsZC52YWx1ZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZCA9IG51bGw7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNvbnZlcnQoZmllbGQudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5maWVsZC50ZXh0ID0gdGhpcy5maWVsZC50ZXh0LnRyaW0oKTtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudGV4dCA9IHRoaXMuZmllbGQudGV4dC5yZXBsYWNlKC88XFwvKFthLXpdKT48XFwxPi9nLCAnJyk7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnRleHQgPSB0aGlzLmZpZWxkLnRleHQucmVwbGFjZSgvPChbYS16XSk+KFxccyopPFxcL1xcMT4vZywgJyQxJyk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQudGV4dClcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIC8vIGRpc2FibGUgc2VudGVuY2VDYXNpbmcgaWYgbm90IGFuIGVuZ2xpc2hcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5maWVsZC5uYW1lKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnbGFuZ2lkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdoeXBoZW5hdGlvbic6XG4gICAgICAgICAgICAgICAgICAgIHNlbnRlbmNlQ2FzZSA9IHNlbnRlbmNlQ2FzZSAmJiB0aGlzLm9wdGlvbnMuc2VudGVuY2VDYXNlLmluY2x1ZGVzKHRoaXMuZmllbGQudGV4dC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnbGFuZ3VhZ2UnOlxuICAgICAgICAgICAgICAgICAgICBzZW50ZW5jZUNhc2UgPSBzZW50ZW5jZUNhc2UgJiYgISEodGhpcy5maWVsZC50ZXh0LnRvTG93ZXJDYXNlKCkudHJpbSgpLnNwbGl0KC9cXHMqLFxccyovKS5maW5kKGxhbmcgPT4gdGhpcy5vcHRpb25zLnNlbnRlbmNlQ2FzZS5pbmNsdWRlcyhsYW5nKSkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFwiZ3JvdXBzXCIgaXMgYSBqYWJyZWYgMy44KyBtb25zdHJvc2l0eVxuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQubmFtZS5tYXRjaCgvXihrZXl3b3Jkcz98Z3JvdXBzKSQvKSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IHRleHQgb2YgdGhpcy5maWVsZC50ZXh0LnNwbGl0KG1hcmtlci5jb21tYSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCA9IHRleHQudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGV4dClcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW50cnkuZmllbGRzW3RoaXMuZmllbGQubmFtZV0ucHVzaCh0ZXh0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLmNsZWFuaW5nLnR5cGUgPT09ICdjcmVhdG9yJykge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5lbnRyeS5jcmVhdG9yc1t0aGlzLmZpZWxkLm5hbWVdKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVudHJ5LmNyZWF0b3JzW3RoaXMuZmllbGQubmFtZV0gPSBbXTtcbiAgICAgICAgICAgICAgICAvLyB7TS4gSGFsbGUsIEouIEJyZXNuYW4sIGFuZCBHLiBNaWxsZXJ9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQudGV4dC5pbmNsdWRlcyhgJHttYXJrZXIuY29tbWF9JHttYXJrZXIuYW5kfWApKSB7IC8vXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQudGV4dCA9IHRoaXMuZmllbGQudGV4dC5yZXBsYWNlKG5ldyBSZWdFeHAoYCR7bWFya2VyLmNvbW1hfSR7bWFya2VyLmFuZH1gLCAnZycpLCBtYXJrZXIuYW5kKS5yZXBsYWNlKG5ldyBSZWdFeHAobWFya2VyLmNvbW1hKSwgbWFya2VyLmFuZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY3JlYXRvciBvZiB0aGlzLmZpZWxkLnRleHQuc3BsaXQobWFya2VyLmFuZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRyeS5maWVsZHNbdGhpcy5maWVsZC5uYW1lXS5wdXNoKG1hcmtlci5jbGVhbihjcmVhdG9yKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW50cnkuY3JlYXRvcnNbdGhpcy5maWVsZC5uYW1lXS5wdXNoKHRoaXMucGFyc2VOYW1lKGNyZWF0b3IpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChmaWVsZHMudW5hYmJyZXYuaW5jbHVkZXMoZmllbGQubmFtZSkpIHsgLy8gZG9lc24ndCBnZXQgc2VudGVuY2UgY2FzaW5nIGFueWhvdyBUT0RPOiBib29rdGl0bGUgZG9lcyFcbiAgICAgICAgICAgICAgICB0aGlzLmVudHJ5LmZpZWxkc1t0aGlzLmZpZWxkLm5hbWVdLnB1c2goKCgoX2EgPSB0aGlzLm9wdGlvbnMudW5hYmJyZXZpYXRlW3RoaXMuZmllbGQudGV4dF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCB0aGlzLmZpZWxkLnRleHQpLm5vcm1hbGl6ZSgnTkZDJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQucHJlc2VydmVSYW5nZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5ndWVzc0FscmVhZHlTZW50ZW5jZUNhc2VkICYmIE1hdGgubWF4KHRoaXMuZmllbGQud29yZHMudXBwZXIsIHRoaXMuZmllbGQud29yZHMubG93ZXIpID4gKHRoaXMuZmllbGQud29yZHMub3RoZXIgKyBNYXRoLm1pbih0aGlzLmZpZWxkLndvcmRzLnVwcGVyLCB0aGlzLmZpZWxkLndvcmRzLmxvd2VyKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJlc2VydmUobnVsbCwgbnVsbCk7IC8vICwgJ21vc3RseSBzZW50ZW5jZSBjYXNlZCBhbHJlYWR5JylcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHR4dCA9IHRoaXMuZmllbGQudGV4dC5yZXBsYWNlKHByZXNlcnZlQ2FzZS5tYXJrdXAsIG1hcmt1cCA9PiBtYXJrZXIubWFya3VwLnJlcGVhdChtYXJrdXAubGVuZ3RoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWF0Y2g7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUNhc2Uuc2VudGVuY2VTdGFydC5sYXN0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKChtYXRjaCA9IHByZXNlcnZlQ2FzZS5zZW50ZW5jZVN0YXJ0LmV4ZWModHh0KSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBleGNsdWRlIHN0dWZmIGxpa2UgXCJVLlMuIFRheGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2guaW5kZXggPiAyICYmIHR4dC5zdWJzdHIoMCwgbWF0Y2guaW5kZXggKyAxKS5tYXRjaChwcmVzZXJ2ZUNhc2UuYWNyb255bSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJlc2VydmUobWF0Y2guaW5kZXgsIG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoKTsgLy8gLCBgc2VudGVuY2VTdGFydDogJHttYXRjaFswXX0gYXQgJHttYXRjaC5pbmRleH0uLiR7bWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGh9YClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXNlcnZlQ2FzZS5xdW90ZWQubGFzdEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgobWF0Y2ggPSBwcmVzZXJ2ZUNhc2UucXVvdGVkLmV4ZWModGhpcy5maWVsZC50ZXh0KSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXNlcnZlKG1hdGNoLmluZGV4LCBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCk7IC8vICwgJ3F1b3RlZCcpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5lbnRyeS5maWVsZHNbdGhpcy5maWVsZC5uYW1lXS5wdXNoKHRoaXMuY29udmVydFRvU2VudGVuY2VDYXNlKHRoaXMuZmllbGQudGV4dCkubm9ybWFsaXplKCdORkMnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWVsZCA9IG51bGw7XG4gICAgfVxuICAgIGNvbnZlcnRUb1NlbnRlbmNlQ2FzZSh0ZXh0KSB7XG4gICAgICAgIGlmICghdGhpcy5maWVsZC5wcmVzZXJ2ZVJhbmdlcylcbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICAvLyBhbHdheXMga2VlcCB0aGUgbGVhZGluZyBjaGFyLCBidXQgc2tpcCBtYXJrdXBcbiAgICAgICAgY29uc3QgbGVhZCA9IHRleHQubWF0Y2goL14oPFtePl0rPikqLi8pO1xuICAgICAgICBpZiAobGVhZCkge1xuICAgICAgICAgICAgdGhpcy5wcmVzZXJ2ZShsZWFkWzBdLmxlbmd0aCAtIDEsIGxlYWRbMF0ubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJlc2VydmUoMCwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHNlbnRlbmNlQ2FzZWQgPSB0ZXh0LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKChbXFw/IV1cXHMqfF4pKFtcXCdcXFwiwqHCv+KAnOKAmOKAnsKrXFxzXSspP1teXFxzXSkvZywgeCA9PiB4LnRvVXBwZXJDYXNlKCkpO1xuICAgICAgICBmb3IgKGNvbnN0IHsgc3RhcnQsIGVuZCB9IG9mIHRoaXMuZmllbGQucHJlc2VydmVSYW5nZXMpIHtcbiAgICAgICAgICAgIHNlbnRlbmNlQ2FzZWQgPSBzZW50ZW5jZUNhc2VkLnN1YnN0cmluZygwLCBzdGFydCkgKyB0ZXh0LnN1YnN0cmluZyhzdGFydCwgZW5kKSArIHNlbnRlbmNlQ2FzZWQuc3Vic3RyaW5nKGVuZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRleHQgIT09IHNlbnRlbmNlQ2FzZWQpXG4gICAgICAgICAgICB0aGlzLmVudHJ5LnNlbnRlbmNlQ2FzZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gc2VudGVuY2VDYXNlZDtcbiAgICB9XG4gICAgY29udmVydF9udW1iZXIobm9kZSkge1xuICAgICAgICB0aGlzLmZpZWxkLnRleHQgKz0gYCR7bm9kZS52YWx1ZX1gO1xuICAgIH1cbiAgICBjb252ZXJ0X3RleHQobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5tb2RlID09PSAndmVyYmF0aW0nKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnRleHQgKz0gbm9kZS52YWx1ZS50cmltKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gaGV1cmlzdGljIHRvIGRldGVjdCBwcmUtc2VudGVuY2VjYXNlZCB0ZXh0XG4gICAgICAgIGZvciAoY29uc3Qgd29yZCBvZiBub2RlLnZhbHVlLnNwbGl0KC9cXGIvKSkge1xuICAgICAgICAgICAgaWYgKHdvcmQubWF0Y2gocHJlc2VydmVDYXNlLmFsbExvd2VyKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQud29yZHMubG93ZXIrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHdvcmQubWF0Y2gocHJlc2VydmVDYXNlLmFsbENhcHMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC53b3Jkcy51cHBlcisrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAod29yZC5tYXRjaChwcmVzZXJ2ZUNhc2UuaGFzQWxwaGEpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC53b3Jkcy5vdGhlcisrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZpZWxkLmxldmVsID09PSAwICYmIHRoaXMuY2xlYW5pbmcudHlwZSA9PT0gJ2NyZWF0b3InKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnRleHQgKz0gbm9kZS52YWx1ZS5yZXBsYWNlKC9cXHMrYW5kXFxzKy9pZywgbWFya2VyLmFuZCkucmVwbGFjZSgvXFxzKixcXHMqL2csIG1hcmtlci5jb21tYSkucmVwbGFjZSgvXFxzKy9nLCBtYXJrZXIuc3BhY2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZpZWxkLmxldmVsID09PSAwICYmIHRoaXMuZmllbGQubmFtZS5tYXRjaCgvXihrZXl3b3Jkcz98Z3JvdXBzKSQvKSkge1xuICAgICAgICAgICAgdGhpcy5maWVsZC50ZXh0ICs9IG5vZGUudmFsdWUucmVwbGFjZSgvXFxzKls7LF1cXHMqL2csIG1hcmtlci5jb21tYSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZmllbGQuaHRtbCkge1xuICAgICAgICAgICAgdGhpcy5maWVsZC50ZXh0ICs9IG5vZGUudmFsdWUucmVwbGFjZSgvJi9nLCAnJmFtcDsnKS5yZXBsYWNlKC88L2csICcmbHQ7JykucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZmllbGQucHJlc2VydmVSYW5nZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHdvcmRzID0gbm9kZS52YWx1ZS5zcGxpdCgvKFxccyspLyk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHdvcmQgb2Ygd29yZHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMuZmllbGQudGV4dC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC50ZXh0ICs9IHdvcmQ7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJlc2VydmVDYXNlKHdvcmQpKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXNlcnZlKHN0YXJ0LCB0aGlzLmZpZWxkLnRleHQubGVuZ3RoKTsgLy8gLCBgd29yZDogJHtKU09OLnN0cmluZ2lmeSh3b3JkKX1gKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5maWVsZC50ZXh0ICs9IG5vZGUudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29udmVydF9lbnZpcm9ubWVudChub2RlKSB7XG4gICAgICAgIHRoaXMuZmllbGQudGV4dCArPSB7IGVudW1lcmF0ZTogJzxvbD4nLCBpdGVtaXplOiAnPHVsPicgfVtub2RlLmVudl07XG4gICAgICAgIHRoaXMuY29udmVydF9ibG9jayhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG5vZGUpLCB7IGtpbmQ6ICdCbG9jaycsIG1hcmt1cDoge30gfSkpO1xuICAgICAgICB0aGlzLmZpZWxkLnRleHQgKz0geyBlbnVtZXJhdGU6ICc8L29sPicsIGl0ZW1pemU6ICc8L3VsPicgfVtub2RlLmVudl07XG4gICAgfVxuICAgIGNvbnZlcnRfYmxvY2sobm9kZSkge1xuICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMuZmllbGQudGV4dC5sZW5ndGg7XG4gICAgICAgIGxldCBwcmVmaXggPSAnJztcbiAgICAgICAgbGV0IHBvc3RmaXggPSAnJztcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5jYXNlUHJvdGVjdGlvbiAhPT0gJ3N0cmljdCcgJiYgdGhpcy5jbGVhbmluZy50eXBlID09PSAnb3RoZXInKVxuICAgICAgICAgICAgZGVsZXRlIG5vZGUuY2FzZTtcbiAgICAgICAgaWYgKHRoaXMuY2xlYW5pbmcudHlwZSA9PT0gJ2NyZWF0b3InICYmIG5vZGUuY2FzZSA9PT0gJ3Byb3RlY3QnKSB7XG4gICAgICAgICAgICBwcmVmaXggKz0gbWFya2VyLmxpdGVyYWw7XG4gICAgICAgICAgICBwb3N0Zml4ID0gbWFya2VyLmxpdGVyYWwgKyBwb3N0Zml4O1xuICAgICAgICAgICAgZGVsZXRlIG5vZGUuY2FzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZS5jYXNlID09PSAncHJvdGVjdCcpIHtcbiAgICAgICAgICAgIHByZWZpeCArPSB0aGlzLm9wdGlvbnMubWFya3VwLmNhc2VQcm90ZWN0Lm9wZW47XG4gICAgICAgICAgICBwb3N0Zml4ID0gdGhpcy5vcHRpb25zLm1hcmt1cC5jYXNlUHJvdGVjdC5jbG9zZSArIHBvc3RmaXg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUua2luZCA9PT0gJ0Jsb2NrJykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBtYXJrdXAgb2YgT2JqZWN0LmtleXMobm9kZS5tYXJrdXApKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMubWFya3VwW21hcmt1cF0pXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yKG5ldyBQYXJzZXJFcnJvcihgbWFya3VwOiAke21hcmt1cH1gLCBub2RlKSwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICBwcmVmaXggKz0gdGhpcy5vcHRpb25zLm1hcmt1cFttYXJrdXBdLm9wZW47XG4gICAgICAgICAgICAgICAgcG9zdGZpeCA9IHRoaXMub3B0aW9ucy5tYXJrdXBbbWFya3VwXS5jbG9zZSArIHBvc3RmaXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZW5kID0ge1xuICAgICAgICAgICAgd2l0aG91dFByZWZpeDogdGhpcy5maWVsZC50ZXh0Lmxlbmd0aCxcbiAgICAgICAgICAgIHdpdGhQcmVmaXg6IHRoaXMuZmllbGQudGV4dC5sZW5ndGggKyBwcmVmaXgubGVuZ3RoLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmZpZWxkLnRleHQgKz0gcHJlZml4O1xuICAgICAgICB0aGlzLmZpZWxkLmxldmVsKys7XG4gICAgICAgIHRoaXMuY29udmVydChub2RlLnZhbHVlKTtcbiAgICAgICAgdGhpcy5maWVsZC5sZXZlbC0tO1xuICAgICAgICBjb25zdCBhZGRlZCA9IHRoaXMuZmllbGQudGV4dC5zdWJzdHJpbmcoZW5kLndpdGhQcmVmaXgpO1xuICAgICAgICBjb25zdCBhZGRlZF90ZXh0ID0gYWRkZWQucmVwbGFjZSgvPFxcLz9bXj5dKz4vZywgJycpO1xuICAgICAgICBjb25zdCBuZWVkc1Byb3RlY3Rpb24gPSBhZGRlZF90ZXh0ICYmICgodGhpcy5vcHRpb25zLmNhc2VQcm90ZWN0aW9uID09PSAnc3RyaWN0JyAmJiBhZGRlZF90ZXh0Lm1hdGNoKHByZXNlcnZlQ2FzZS5pc0Nhc2VTZW5zaXRpdmUpKVxuICAgICAgICAgICAgfHxcbiAgICAgICAgICAgICAgICAodGhpcy5vcHRpb25zLmNhc2VQcm90ZWN0aW9uID09PSAnYXMtbmVlZGVkJyAmJiBhZGRlZF90ZXh0LnNwbGl0KC9cXHMrLykuZmluZCh3b3JkID0+IHRoaXMubmVlZHNQcm90ZWN0aW9uKHdvcmQpKSkpO1xuICAgICAgICBpZiAoIWFkZGVkKSB7IC8vIG5vdGhpbmcgd2FzIGFkZGVkLCBzbyByZW1vdmUgcHJlZml4XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnRleHQgPSB0aGlzLmZpZWxkLnRleHQuc3Vic3RyaW5nKDAsIGVuZC53aXRob3V0UHJlZml4KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmZpZWxkLnByZXNlcnZlUmFuZ2VzICYmIHByZWZpeCA9PT0gdGhpcy5vcHRpb25zLm1hcmt1cC5jYXNlUHJvdGVjdC5vcGVuICYmICFuZWVkc1Byb3RlY3Rpb24pIHtcbiAgICAgICAgICAgIC8vIHNvbWV0aGluZyB3YXMgYWRkZWQgdGhhdCBkaWRuJ3QgYWN0dWFsbHkgbmVlZCBjYXNlIHByb3RlY3Rpb25cbiAgICAgICAgICAgIHRoaXMuZmllbGQudGV4dCA9IHRoaXMuZmllbGQudGV4dC5zdWJzdHJpbmcoMCwgZW5kLndpdGhvdXRQcmVmaXgpICsgYWRkZWQ7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnByZXNlcnZlUmFuZ2VzID0gdGhpcy5maWVsZC5wcmVzZXJ2ZVJhbmdlcy5maWx0ZXIocmFuZ2UgPT4gcmFuZ2Uuc3RhcnQgPCBlbmQud2l0aG91dFByZWZpeCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnRleHQgKz0gcG9zdGZpeDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpZWxkLnRleHQgPSB0aGlzLmZpZWxkLnRleHQucmVwbGFjZSgvPChzdXB8c3ViKT4oW148Pl0rKTxcXC9cXDE+JC9pLCAobSwgbW9kZSwgY2hhcnMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNtZCA9IG1vZGUgPT09ICdzdXAnID8gJ14nIDogJ18nO1xuICAgICAgICAgICAgbGV0IHNjcmlwdCA9ICcnO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaGFyIG9mIGNoYXJzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5pY29kZSA9IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtgJHtjbWR9JHtjaGFyfWBdIHx8IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtgJHtjbWR9eyR7Y2hhcn19YF07XG4gICAgICAgICAgICAgICAgc2NyaXB0ICs9IHVuaWNvZGUgPyB1bmljb2RlIDogYDwke21vZGV9PiR7Y2hhcn08LyR7bW9kZX0+YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNjcmlwdCA9IHNjcmlwdC5yZXBsYWNlKG5ldyBSZWdFeHAoYDwvJHttb2RlfT48JHttb2RlfT5gLCAnZycpLCAnJyk7XG4gICAgICAgICAgICByZXR1cm4gc2NyaXB0Lmxlbmd0aCA8IG0ubGVuZ3RoID8gc2NyaXB0IDogbTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChub2RlLmNhc2UgJiYgdGhpcy5maWVsZC5wcmVzZXJ2ZVJhbmdlcylcbiAgICAgICAgICAgIHRoaXMucHJlc2VydmUoc3RhcnQsIHRoaXMuZmllbGQudGV4dC5sZW5ndGgpOyAvLyAsICdpbiBjb252ZXJ0LWJsb2NrICcgKyBub2RlLnNvdXJjZSB8fCAnPHNvdXJjZT4nKVxuICAgIH1cbn1cbi8qKlxuICogcGFyc2UgYmlidGV4LiBUaGlzIHdpbGwgdHJ5IHRvIGNvbnZlcnQgVGVYIGNvbW1hbmRzIGludG8gdW5pY29kZSBlcXVpdmFsZW50cywgYW5kIGFwcGx5IGBAc3RyaW5nYCBleHBhbnNpb25cbiAqL1xuZnVuY3Rpb24gcGFyc2UoaW5wdXQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIob3B0aW9ucyk7XG4gICAgcmV0dXJuIHBhcnNlci5wYXJzZShpbnB1dCk7XG59XG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG5mdW5jdGlvbiBhc3QoaW5wdXQsIG9wdGlvbnMgPSB7fSwgY2xlYW4gPSB0cnVlKSB7XG4gICAgY29uc3QgcGFyc2VyID0gbmV3IFBhcnNlcihvcHRpb25zKTtcbiAgICByZXR1cm4gcGFyc2VyLmFzdChpbnB1dCwgY2xlYW4pO1xufVxuZXhwb3J0cy5hc3QgPSBhc3Q7XG52YXIgY2h1bmtlcl8yID0gcmVxdWlyZShcIi4vY2h1bmtlclwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNodW5rZXJcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNodW5rZXJfMi5wYXJzZTsgfSB9KTtcbnZhciBqYWJyZWZfMSA9IHJlcXVpcmUoXCIuL2phYnJlZlwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImphYnJlZlwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gamFicmVmXzEucGFyc2U7IH0gfSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCJpbXBvcnQgKiBhcyBCaWJUZVhQYXJzZXIgZnJvbSAnQHJldG9ycXVlcmUvYmlidGV4LXBhcnNlcic7XG5pbXBvcnQgeyBFbnRyeSBhcyBFbnRyeURhdGFCaWJMYVRlWCB9IGZyb20gJ0ByZXRvcnF1ZXJlL2JpYnRleC1wYXJzZXInO1xuLy8gQWxzbyBtYWtlIEVudHJ5RGF0YUJpYkxhVGVYIGF2YWlsYWJsZSB0byBvdGhlciBtb2R1bGVzXG5leHBvcnQgeyBFbnRyeSBhcyBFbnRyeURhdGFCaWJMYVRlWCB9IGZyb20gJ0ByZXRvcnF1ZXJlL2JpYnRleC1wYXJzZXInO1xuXG4vLyBUcmljazogYWxsb3cgc3RyaW5nIGluZGV4aW5nIG9udG8gb2JqZWN0IHByb3BlcnRpZXNcbmV4cG9ydCBpbnRlcmZhY2UgSUluZGV4YWJsZSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuY29uc3QgZGF0YWJhc2VUeXBlcyA9IFsnY3NsLWpzb24nLCAnYmlibGF0ZXgnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIERhdGFiYXNlVHlwZSA9IHR5cGVvZiBkYXRhYmFzZVR5cGVzW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBURU1QTEFURV9WQVJJQUJMRVMgPSB7XG4gIGNpdGVrZXk6ICdVbmlxdWUgY2l0ZWtleScsXG4gIGFic3RyYWN0OiAnJyxcbiAgYXV0aG9yU3RyaW5nOiAnQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgYXV0aG9yIG5hbWVzJyxcbiAgY29udGFpbmVyVGl0bGU6XG4gICAgJ1RpdGxlIG9mIHRoZSBjb250YWluZXIgaG9sZGluZyB0aGUgcmVmZXJlbmNlIChlLmcuIGJvb2sgdGl0bGUgZm9yIGEgYm9vayBjaGFwdGVyLCBvciB0aGUgam91cm5hbCB0aXRsZSBmb3IgYSBqb3VybmFsIGFydGljbGUpJyxcbiAgRE9JOiAnJyxcbiAgZXByaW50OiAnJyxcbiAgZXByaW50dHlwZTogJycsXG4gIGV2ZW50UGxhY2U6ICdMb2NhdGlvbiBvZiBldmVudCcsXG4gIG5vdGU6ICcnLFxuICBwYWdlOiAnUGFnZSBvciBwYWdlIHJhbmdlJyxcbiAgcHVibGlzaGVyOiAnJyxcbiAgcHVibGlzaGVyUGxhY2U6ICdMb2NhdGlvbiBvZiBwdWJsaXNoZXInLFxuICB0aXRsZTogJycsXG4gIHRpdGxlU2hvcnQ6ICcnLFxuICBVUkw6ICcnLFxuICB5ZWFyOiAnUHVibGljYXRpb24geWVhcicsXG4gIHpvdGVyb1NlbGVjdFVSSTogJ1VSSSB0byBvcGVuIHRoZSByZWZlcmVuY2UgaW4gWm90ZXJvJyxcbn07XG5cbmV4cG9ydCBjbGFzcyBMaWJyYXJ5IHtcbiAgY29uc3RydWN0b3IocHVibGljIGVudHJpZXM6IHsgW2NpdGVrZXk6IHN0cmluZ106IEVudHJ5IH0pIHt9XG5cbiAgZ2V0IHNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5lbnRyaWVzKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogRm9yIHRoZSBnaXZlbiBjaXRla2V5LCBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIGBFbnRyeWAgYW5kIHJldHVybiBhXG4gICAqIGNvbGxlY3Rpb24gb2YgdGVtcGxhdGUgdmFyaWFibGUgYXNzaWdubWVudHMuXG4gICAqL1xuICBnZXRUZW1wbGF0ZVZhcmlhYmxlc0ZvckNpdGVrZXkoY2l0ZWtleTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgZW50cnk6IEVudHJ5ID0gdGhpcy5lbnRyaWVzW2NpdGVrZXldO1xuICAgIGNvbnN0IHNob3J0Y3V0cyA9IHtcbiAgICAgIGNpdGVrZXk6IGNpdGVrZXksXG5cbiAgICAgIGFic3RyYWN0OiBlbnRyeS5hYnN0cmFjdCxcbiAgICAgIGF1dGhvclN0cmluZzogZW50cnkuYXV0aG9yU3RyaW5nLFxuICAgICAgY29udGFpbmVyVGl0bGU6IGVudHJ5LmNvbnRhaW5lclRpdGxlLFxuICAgICAgRE9JOiBlbnRyeS5ET0ksXG4gICAgICBlcHJpbnQ6IGVudHJ5LmVwcmludCxcbiAgICAgIGVwcmludHR5cGU6IGVudHJ5LmVwcmludHR5cGUsXG4gICAgICBldmVudFBsYWNlOiBlbnRyeS5ldmVudFBsYWNlLFxuICAgICAgbm90ZTogZW50cnkubm90ZSxcbiAgICAgIHBhZ2U6IGVudHJ5LnBhZ2UsXG4gICAgICBwdWJsaXNoZXI6IGVudHJ5LnB1Ymxpc2hlcixcbiAgICAgIHB1Ymxpc2hlclBsYWNlOiBlbnRyeS5wdWJsaXNoZXJQbGFjZSxcbiAgICAgIHRpdGxlOiBlbnRyeS50aXRsZSxcbiAgICAgIHRpdGxlU2hvcnQ6IGVudHJ5LnRpdGxlU2hvcnQsXG4gICAgICBVUkw6IGVudHJ5LlVSTCxcbiAgICAgIHllYXI6IGVudHJ5LnllYXI/LnRvU3RyaW5nKCksXG4gICAgICB6b3Rlcm9TZWxlY3RVUkk6IGVudHJ5LnpvdGVyb1NlbGVjdFVSSSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHsgZW50cnk6IGVudHJ5LnRvSlNPTigpLCAuLi5zaG9ydGN1dHMgfTtcbiAgfVxufVxuXG4vKipcbiAqIExvYWQgcmVmZXJlbmNlIGVudHJpZXMgZnJvbSB0aGUgZ2l2ZW4gcmF3IGRhdGFiYXNlIGRhdGEuXG4gKlxuICogUmV0dXJucyBhIGxpc3Qgb2YgYEVudHJ5RGF0YWAsIHdoaWNoIHNob3VsZCBiZSB3cmFwcGVkIHdpdGggdGhlIHJlbGV2YW50XG4gKiBhZGFwdGVyIGFuZCB1c2VkIHRvIGluc3RhbnRpYXRlIGEgYExpYnJhcnlgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZEVudHJpZXMoXG4gIGRhdGFiYXNlUmF3OiBzdHJpbmcsXG4gIGRhdGFiYXNlVHlwZTogRGF0YWJhc2VUeXBlLFxuKTogRW50cnlEYXRhW10ge1xuICBsZXQgbGlicmFyeUFycmF5OiBFbnRyeURhdGFbXTtcblxuICBpZiAoZGF0YWJhc2VUeXBlID09ICdjc2wtanNvbicpIHtcbiAgICBsaWJyYXJ5QXJyYXkgPSBKU09OLnBhcnNlKGRhdGFiYXNlUmF3KTtcbiAgfSBlbHNlIGlmIChkYXRhYmFzZVR5cGUgPT0gJ2JpYmxhdGV4Jykge1xuICAgIGNvbnN0IG9wdGlvbnM6IEJpYlRlWFBhcnNlci5QYXJzZXJPcHRpb25zID0ge1xuICAgICAgZXJyb3JIYW5kbGVyOiAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnQ2l0YXRpb24gcGx1Z2luOiBub24tZmF0YWwgZXJyb3IgbG9hZGluZyBCaWJMYVRlWCBlbnRyeTonLFxuICAgICAgICAgIGVycixcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IHBhcnNlZCA9IEJpYlRlWFBhcnNlci5wYXJzZShcbiAgICAgIGRhdGFiYXNlUmF3LFxuICAgICAgb3B0aW9ucyxcbiAgICApIGFzIEJpYlRlWFBhcnNlci5CaWJsaW9ncmFwaHk7XG5cbiAgICBwYXJzZWQuZXJyb3JzLmZvckVhY2goKGVycm9yKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgQ2l0YXRpb24gcGx1Z2luOiBmYXRhbCBlcnJvciBsb2FkaW5nIEJpYkxhVGVYIGVudHJ5YCArXG4gICAgICAgICAgYCAobGluZSAke2Vycm9yLmxpbmV9LCBjb2x1bW4gJHtlcnJvci5jb2x1bW59KTpgLFxuICAgICAgICBlcnJvci5tZXNzYWdlLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGxpYnJhcnlBcnJheSA9IHBhcnNlZC5lbnRyaWVzO1xuICB9XG5cbiAgcmV0dXJuIGxpYnJhcnlBcnJheTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRob3Ige1xuICBnaXZlbj86IHN0cmluZztcbiAgZmFtaWx5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFuIGBFbnRyeWAgcmVwcmVzZW50cyBhIHNpbmdsZSByZWZlcmVuY2UgaW4gYSByZWZlcmVuY2UgZGF0YWJhc2UuXG4gKiBFYWNoIGVudHJ5IGhhcyBhIHVuaXF1ZSBpZGVudGlmaWVyLCBrbm93biBpbiBtb3N0IHJlZmVyZW5jZSBtYW5hZ2VycyBhcyBpdHNcbiAqIFwiY2l0ZWtleS5cIlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRW50cnkge1xuICAvKipcbiAgICogVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBlbnRyeSAoYWxzbyB0aGUgY2l0ZWtleSkuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaWQ6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgdHlwZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBhYnN0cmFjdD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGF1dGhvcj86IEF1dGhvcltdO1xuXG4gIC8qKlxuICAgKiBBIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGF1dGhvcnMsIGVhY2ggb2YgdGhlIGZvcm1hdCBgPGZpcnN0bmFtZT4gPGxhc3RuYW1lPmAuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYXV0aG9yU3RyaW5nPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciB0aGlzIHJlZmVyZW5jZSAtLSBpbiB0aGUgY2FzZSBvZiBhIGJvb2tcbiAgICogY2hhcHRlciByZWZlcmVuY2UsIHRoZSBuYW1lIG9mIHRoZSBib29rOyBpbiB0aGUgY2FzZSBvZiBhIGpvdXJuYWwgYXJ0aWNsZSxcbiAgICogdGhlIG5hbWUgb2YgdGhlIGpvdXJuYWwuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY29udGFpbmVyVGl0bGU/OiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IERPST86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGZpbGVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRlIG9mIGlzc3VlLiBNYW55IHJlZmVyZW5jZXMgZG8gbm90IGNvbnRhaW4gaW5mb3JtYXRpb24gYWJvdXQgbW9udGhcbiAgICogYW5kIGRheSBvZiBpc3N1ZTsgaW4gdGhpcyBjYXNlLCB0aGUgYGlzc3VlZERhdGVgIHdpbGwgY29udGFpbiBkdW1teSBtaW5pbXVtXG4gICAqIHZhbHVlcyBmb3IgdGhvc2UgZWxlbWVudHMuIChBIHJlZmVyZW5jZSB3aGljaCBpcyBvbmx5IGVuY29kZWQgYXMgYmVpbmdcbiAgICogaXNzdWVkIGluIDIwMDEgaXMgcmVwcmVzZW50ZWQgaGVyZSB3aXRoIGEgZGF0ZSAyMDAxLTAxLTAxIDAwOjAwOjAwIFVUQy4pXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaXNzdWVkRGF0ZT86IERhdGU7XG5cbiAgLyoqXG4gICAqIFBhZ2Ugb3IgcGFnZSByYW5nZSBvZiB0aGUgcmVmZXJlbmNlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHBhZ2U/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCB0aXRsZT86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHRpdGxlU2hvcnQ/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBVUkw/OiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGV2ZW50UGxhY2U/OiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IHB1Ymxpc2hlcj86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHB1Ymxpc2hlclBsYWNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCaWJMYVRlWC1zcGVjaWZpYyBwcm9wZXJ0aWVzXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZXByaW50Pzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZXByaW50dHlwZT86IHN0cmluZztcblxuICBwcm90ZWN0ZWQgX3llYXI/OiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgeWVhcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl95ZWFyXG4gICAgICA/IHBhcnNlSW50KHRoaXMuX3llYXIpXG4gICAgICA6IHRoaXMuaXNzdWVkRGF0ZT8uZ2V0VVRDRnVsbFllYXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfbm90ZT86IHN0cmluZ1tdO1xuXG4gIHB1YmxpYyBnZXQgbm90ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9ub3RlXG4gICAgICA/Lm1hcCgoZWwpID0+IGVsLnJlcGxhY2UoLyh6b3Rlcm86XFwvXFwvLispL2csICdbTGlua10oJDEpJykpXG4gICAgICAuam9pbignXFxuXFxuJyk7XG4gIH1cblxuICAvKipcbiAgICogQSBVUkkgd2hpY2ggd2lsbCBvcGVuIHRoZSByZWxldmFudCBlbnRyeSBpbiB0aGUgWm90ZXJvIGNsaWVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgem90ZXJvU2VsZWN0VVJJKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGB6b3Rlcm86Ly9zZWxlY3QvaXRlbXMvQCR7dGhpcy5pZH1gO1xuICB9XG5cbiAgdG9KU09OKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICBjb25zdCBqc29uT2JqOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMpO1xuXG4gICAgLy8gYWRkIGdldHRlciB2YWx1ZXNcbiAgICBjb25zdCBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTtcbiAgICBPYmplY3QuZW50cmllcyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhwcm90bykpXG4gICAgICAuZmlsdGVyKChbLCBkZXNjcmlwdG9yXSkgPT4gdHlwZW9mIGRlc2NyaXB0b3IuZ2V0ID09ICdmdW5jdGlvbicpXG4gICAgICAuZm9yRWFjaCgoW2tleSwgZGVzY3JpcHRvcl0pID0+IHtcbiAgICAgICAgaWYgKGRlc2NyaXB0b3IgJiYga2V5WzBdICE9PSAnXycpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gKHRoaXMgYXMgSUluZGV4YWJsZSlba2V5XTtcbiAgICAgICAgICAgIGpzb25PYmpba2V5XSA9IHZhbDtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICByZXR1cm4ganNvbk9iajtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBFbnRyeURhdGEgPSBFbnRyeURhdGFDU0wgfCBFbnRyeURhdGFCaWJMYVRlWDtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRyeURhdGFDU0wge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3Q/OiBzdHJpbmc7XG4gIGF1dGhvcj86IEF1dGhvcltdO1xuICAnY29udGFpbmVyLXRpdGxlJz86IHN0cmluZztcbiAgRE9JPzogc3RyaW5nO1xuICAnZXZlbnQtcGxhY2UnPzogc3RyaW5nO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBpc3N1ZWQ/OiB7ICdkYXRlLXBhcnRzJzogW2FueVtdXSB9O1xuICBwYWdlPzogc3RyaW5nO1xuICBwdWJsaXNoZXI/OiBzdHJpbmc7XG4gICdwdWJsaXNoZXItcGxhY2UnPzogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgJ3RpdGxlLXNob3J0Jz86IHN0cmluZztcbiAgVVJMPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRW50cnlDU0xBZGFwdGVyIGV4dGVuZHMgRW50cnkge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGE6IEVudHJ5RGF0YUNTTCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBlcHJpbnQ6IHN0cmluZyA9IG51bGw7XG4gIGVwcmludHR5cGU6IHN0cmluZyA9IG51bGw7XG4gIGZpbGVzOiBzdHJpbmdbXSA9IG51bGw7XG5cbiAgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEuaWQ7XG4gIH1cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS50eXBlO1xuICB9XG5cbiAgZ2V0IGFic3RyYWN0KCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEuYWJzdHJhY3Q7XG4gIH1cbiAgZ2V0IGF1dGhvcigpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmF1dGhvcjtcbiAgfVxuXG4gIGdldCBhdXRob3JTdHJpbmcoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5hdXRob3JcbiAgICAgID8gdGhpcy5kYXRhLmF1dGhvci5tYXAoKGEpID0+IGAke2EuZ2l2ZW59ICR7YS5mYW1pbHl9YCkuam9pbignLCAnKVxuICAgICAgOiBudWxsO1xuICB9XG5cbiAgZ2V0IGNvbnRhaW5lclRpdGxlKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGFbJ2NvbnRhaW5lci10aXRsZSddO1xuICB9XG5cbiAgZ2V0IERPSSgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLkRPSTtcbiAgfVxuXG4gIGdldCBldmVudFBsYWNlKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGFbJ2V2ZW50LXBsYWNlJ107XG4gIH1cblxuICBnZXQgaXNzdWVkRGF0ZSgpIHtcbiAgICBpZiAoXG4gICAgICAhKFxuICAgICAgICB0aGlzLmRhdGEuaXNzdWVkICYmXG4gICAgICAgIHRoaXMuZGF0YS5pc3N1ZWRbJ2RhdGUtcGFydHMnXSAmJlxuICAgICAgICB0aGlzLmRhdGEuaXNzdWVkWydkYXRlLXBhcnRzJ11bMF0ubGVuZ3RoID4gMFxuICAgICAgKVxuICAgIClcbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgW3llYXIsIG1vbnRoLCBkYXldID0gdGhpcy5kYXRhLmlzc3VlZFsnZGF0ZS1wYXJ0cyddWzBdO1xuICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCAobW9udGggfHwgMSkgLSAxLCBkYXkgfHwgMSkpO1xuICB9XG5cbiAgZ2V0IHBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5wYWdlO1xuICB9XG5cbiAgZ2V0IHB1Ymxpc2hlcigpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLnB1Ymxpc2hlcjtcbiAgfVxuXG4gIGdldCBwdWJsaXNoZXJQbGFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhWydwdWJsaXNoZXItcGxhY2UnXTtcbiAgfVxuXG4gIGdldCB0aXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLnRpdGxlO1xuICB9XG5cbiAgZ2V0IHRpdGxlU2hvcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVsndGl0bGUtc2hvcnQnXTtcbiAgfVxuXG4gIGdldCBVUkwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5VUkw7XG4gIH1cbn1cblxuY29uc3QgQklCTEFURVhfUFJPUEVSVFlfTUFQUElORzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgYWJzdHJhY3Q6ICdhYnN0cmFjdCcsXG4gIGJvb2t0aXRsZTogJ19jb250YWluZXJUaXRsZScsXG4gIGRhdGU6ICdpc3N1ZWQnLFxuICBkb2k6ICdET0knLFxuICBlcHJpbnQ6ICdlcHJpbnQnLFxuICBlcHJpbnR0eXBlOiAnZXByaW50dHlwZScsXG4gIGV2ZW50dGl0bGU6ICdldmVudCcsXG4gIGpvdXJuYWw6ICdfY29udGFpbmVyVGl0bGUnLFxuICBqb3VybmFsdGl0bGU6ICdfY29udGFpbmVyVGl0bGUnLFxuICBsb2NhdGlvbjogJ3B1Ymxpc2hlclBsYWNlJyxcbiAgcGFnZXM6ICdwYWdlJyxcbiAgc2hvcnRqb3VybmFsOiAnY29udGFpbmVyVGl0bGVTaG9ydCcsXG4gIHRpdGxlOiAndGl0bGUnLFxuICBzaG9ydHRpdGxlOiAndGl0bGVTaG9ydCcsXG4gIHVybDogJ1VSTCcsXG4gIHZlbnVlOiAnZXZlbnRQbGFjZScsXG4gIHllYXI6ICdfeWVhcicsXG4gIHB1Ymxpc2hlcjogJ3B1Ymxpc2hlcicsXG4gIG5vdGU6ICdfbm90ZScsXG59O1xuXG4vLyBCaWJMYVRlWCBwYXJzZXIgcmV0dXJucyBhcnJheXMgb2YgcHJvcGVydHkgdmFsdWVzIChhbGxvd2luZyBmb3IgcmVwZWF0ZWRcbi8vIHByb3BlcnR5IGVudHJpZXMpLiBGb3IgdGhlIGZvbGxvd2luZyBmaWVsZHMsIGp1c3QgYmxpbmRseSB0YWtlIHRoZSBmaXJzdC5cbmNvbnN0IEJJQkxBVEVYX1BST1BFUlRZX1RBS0VfRklSU1Q6IHN0cmluZ1tdID0gW1xuICAnYWJzdHJhY3QnLFxuICAnYm9va3RpdGxlJyxcbiAgJ19jb250YWluZXJUaXRsZScsXG4gICdkYXRlJyxcbiAgJ2RvaScsXG4gICdlcHJpbnQnLFxuICAnZXByaW50dHlwZScsXG4gICdldmVudHRpdGxlJyxcbiAgJ2pvdXJuYWx0aXRsZScsXG4gICdsb2NhdGlvbicsXG4gICdwYWdlcycsXG4gICdzaG9ydGpvdXJuYWwnLFxuICAndGl0bGUnLFxuICAnc2hvcnR0aXRsZScsXG4gICd1cmwnLFxuICAndmVudWUnLFxuICAnX3llYXInLFxuICAncHVibGlzaGVyJyxcbl07XG5cbmV4cG9ydCBjbGFzcyBFbnRyeUJpYkxhVGVYQWRhcHRlciBleHRlbmRzIEVudHJ5IHtcbiAgYWJzdHJhY3Q/OiBzdHJpbmc7XG4gIF9jb250YWluZXJUaXRsZT86IHN0cmluZztcbiAgY29udGFpbmVyVGl0bGVTaG9ydD86IHN0cmluZztcbiAgRE9JPzogc3RyaW5nO1xuICBlcHJpbnQ/OiBzdHJpbmc7XG4gIGVwcmludHR5cGU/OiBzdHJpbmc7XG4gIGV2ZW50Pzogc3RyaW5nO1xuICBldmVudFBsYWNlPzogc3RyaW5nO1xuICBpc3N1ZWQ/OiBzdHJpbmc7XG4gIHBhZ2U/OiBzdHJpbmc7XG4gIHB1Ymxpc2hlcj86IHN0cmluZztcbiAgcHVibGlzaGVyUGxhY2U/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB0aXRsZVNob3J0Pzogc3RyaW5nO1xuICBVUkw/OiBzdHJpbmc7XG4gIF95ZWFyPzogc3RyaW5nO1xuICBfbm90ZT86IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YTogRW50cnlEYXRhQmliTGFUZVgpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgT2JqZWN0LmVudHJpZXMoQklCTEFURVhfUFJPUEVSVFlfTUFQUElORykuZm9yRWFjaChcbiAgICAgIChtYXA6IFtzdHJpbmcsIHN0cmluZ10pID0+IHtcbiAgICAgICAgY29uc3QgW3NyYywgdGd0XSA9IG1hcDtcbiAgICAgICAgaWYgKHNyYyBpbiB0aGlzLmRhdGEuZmllbGRzKSB7XG4gICAgICAgICAgbGV0IHZhbCA9IHRoaXMuZGF0YS5maWVsZHNbc3JjXTtcbiAgICAgICAgICBpZiAoQklCTEFURVhfUFJPUEVSVFlfVEFLRV9GSVJTVC5pbmNsdWRlcyhzcmMpKSB7XG4gICAgICAgICAgICB2YWwgPSAodmFsIGFzIGFueVtdKVswXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAodGhpcyBhcyBJSW5kZXhhYmxlKVt0Z3RdID0gdmFsO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBnZXQgaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5rZXk7XG4gIH1cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS50eXBlO1xuICB9XG5cbiAgZ2V0IGZpbGVzKCk6IHN0cmluZ1tdIHtcbiAgICAvLyBGb3Igc29tZSByZWFzb24gdGhlIGJpYnRleCBwYXJzZXIgZG9lc24ndCByZWxpYWJseSBwYXJzZSBmaWxlIGxpc3QgdG9cbiAgICAvLyBhcnJheSA7IHNvIHdlJ2xsIGRvIGl0IG1hbnVhbGx5IC8gcmVkdW5kYW50bHlcbiAgICBsZXQgcmV0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICh0aGlzLmRhdGEuZmllbGRzLmZpbGUpIHtcbiAgICAgIHJldCA9IHJldC5jb25jYXQodGhpcy5kYXRhLmZpZWxkcy5maWxlLmZsYXRNYXAoKHgpID0+IHguc3BsaXQoJzsnKSkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kYXRhLmZpZWxkcy5maWxlcykge1xuICAgICAgcmV0ID0gcmV0LmNvbmNhdCh0aGlzLmRhdGEuZmllbGRzLmZpbGVzLmZsYXRNYXAoKHgpID0+IHguc3BsaXQoJzsnKSkpO1xuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBnZXQgYXV0aG9yU3RyaW5nKCkge1xuICAgIGlmICh0aGlzLmRhdGEuY3JlYXRvcnMuYXV0aG9yKSB7XG4gICAgICBjb25zdCBuYW1lcyA9IHRoaXMuZGF0YS5jcmVhdG9ycy5hdXRob3IubWFwKChuYW1lKSA9PiB7XG4gICAgICAgIGlmIChuYW1lLmxpdGVyYWwpIHJldHVybiBuYW1lLmxpdGVyYWw7XG4gICAgICAgIGNvbnN0IHBhcnRzID0gW25hbWUuZmlyc3ROYW1lLCBuYW1lLnByZWZpeCwgbmFtZS5sYXN0TmFtZSwgbmFtZS5zdWZmaXhdO1xuICAgICAgICAvLyBEcm9wIGFueSBudWxsIHBhcnRzIGFuZCBqb2luXG4gICAgICAgIHJldHVybiBwYXJ0cy5maWx0ZXIoKHgpID0+IHgpLmpvaW4oJyAnKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5hbWVzLmpvaW4oJywgJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEuZmllbGRzLmF1dGhvcj8uam9pbignLCAnKTtcbiAgICB9XG4gIH1cblxuICBnZXQgY29udGFpbmVyVGl0bGUoKSB7XG4gICAgaWYgKHRoaXMuX2NvbnRhaW5lclRpdGxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29udGFpbmVyVGl0bGU7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRhdGEuZmllbGRzLmVwcmludCkge1xuICAgICAgY29uc3QgcHJlZml4ID0gdGhpcy5kYXRhLmZpZWxkcy5lcHJpbnR0eXBlXG4gICAgICAgID8gYCR7dGhpcy5kYXRhLmZpZWxkcy5lcHJpbnR0eXBlfTpgXG4gICAgICAgIDogJyc7XG4gICAgICBjb25zdCBzdWZmaXggPSB0aGlzLmRhdGEuZmllbGRzLnByaW1hcnljbGFzc1xuICAgICAgICA/IGAgWyR7dGhpcy5kYXRhLmZpZWxkcy5wcmltYXJ5Y2xhc3N9XWBcbiAgICAgICAgOiAnJztcbiAgICAgIHJldHVybiBgJHtwcmVmaXh9JHt0aGlzLmRhdGEuZmllbGRzLmVwcmludH0ke3N1ZmZpeH1gO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc3N1ZWREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLmlzc3VlZCA/IG5ldyBEYXRlKHRoaXMuaXNzdWVkKSA6IG51bGw7XG4gIH1cblxuICBnZXQgYXV0aG9yKCk6IEF1dGhvcltdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmNyZWF0b3JzLmF1dGhvcj8ubWFwKChhKSA9PiAoe1xuICAgICAgZ2l2ZW46IGEuZmlyc3ROYW1lLFxuICAgICAgZmFtaWx5OiBhLmxhc3ROYW1lLFxuICAgIH0pKTtcbiAgfVxufVxuIiwiaW1wb3J0IHJlZ2lzdGVyUHJvbWlzZVdvcmtlciBmcm9tICdwcm9taXNlLXdvcmtlci9yZWdpc3Rlcic7XG5cbmltcG9ydCB7IERhdGFiYXNlVHlwZSwgRW50cnlEYXRhLCBsb2FkRW50cmllcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5yZWdpc3RlclByb21pc2VXb3JrZXIoXG4gIChtc2c6IHsgZGF0YWJhc2VSYXc6IHN0cmluZzsgZGF0YWJhc2VUeXBlOiBEYXRhYmFzZVR5cGUgfSk6IEVudHJ5RGF0YVtdID0+IHtcbiAgICByZXR1cm4gbG9hZEVudHJpZXMobXNnLmRhdGFiYXNlUmF3LCBtc2cuZGF0YWJhc2VUeXBlKTtcbiAgfSxcbik7XG4iXSwibmFtZXMiOlsiY2hhckNhdGVnb3JpZXMiLCJjaHVua2VyXzEiLCJiaWJ0ZXgiLCJ1bmljb2RlMmxhdGV4XzEiLCJqYWJyZWZfMSIsIkJpYlRlWFBhcnNlci5wYXJzZSIsInJlZ2lzdGVyUHJvbWlzZVdvcmtlciJdLCJtYXBwaW5ncyI6Ijs7O0VBRUEsU0FBUyxTQUFTLEVBQUUsR0FBRyxFQUFFO0VBQ3pCO0VBQ0EsRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLEtBQUssT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQyxJQUFJLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxVQUFVO0VBQzFHLENBQUM7QUFDRDtFQUNBLFNBQVMscUJBQXFCLEVBQUUsUUFBUSxFQUFFO0VBQzFDLEVBQUUsU0FBUyxtQkFBbUIsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7RUFDN0QsSUFBSSxTQUFTLFdBQVcsRUFBRSxHQUFHLEVBQUU7RUFDL0I7RUFDQSxNQUFNLElBQUksT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFVBQVUsRUFBRTtFQUNsRCxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBQztFQUNuQyxPQUFPLE1BQU07RUFDYixRQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFDO0VBQzdCLE9BQU87RUFDUCxLQUFLO0VBQ0wsSUFBSSxJQUFJLEtBQUssRUFBRTtFQUNmO0VBQ0EsTUFBTSxJQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxPQUFPLElBQUksT0FBTyxFQUFFO0VBQ2hFO0VBQ0E7RUFDQTtFQUNBLFFBQVEsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxL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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUN4RixJQUFJLE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztFQUNoRSxJQUFJLFFBQVEsRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztFQUNqRSxJQUFJLE1BQU0sRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUMxSCxJQUFJLFFBQVEsRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQzdDLElBQUksUUFBUSxFQUFFLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDN0MsSUFBSSxRQUFRLEVBQUUsVUFBVTtFQUN4QixJQUFJLFFBQVEsRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQzVDLElBQUksV0FBVyxFQUFFLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDdEQsSUFBSSxXQUFXLEVBQUUsSUFBSSxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENB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'); +/* eslint-enable */ + +var CitationPlugin = /** @class */ (function (_super) { + __extends(CitationPlugin, _super); + function CitationPlugin() { + var _this = _super !== null && _super.apply(this, arguments) || this; + // Template compilation options + _this.templateSettings = { + noEscape: true, + }; + _this.loadWorker = new WorkerManager(new WorkerFactory(), { + blockingChannel: true, + }); + _this.events = new CitationEvents(); + _this.loadErrorNotifier = new Notifier('Unable to load citations. Please update Citations plugin settings.'); + _this.literatureNoteErrorNotifier = new Notifier('Unable to access literature note. Please check that the literature note folder exists, or update the Citations plugin settings.'); + return _this; + } + Object.defineProperty(CitationPlugin.prototype, "editor", { + get: function () { + var view = this.app.workspace.activeLeaf.view; + if (!(view instanceof obsidian.MarkdownView)) + return null; + var sourceView = view.sourceMode; + return sourceView.cmEditor; + }, + enumerable: false, + configurable: true + }); + CitationPlugin.prototype.loadSettings = function () { + return __awaiter(this, void 0, void 0, function () { + var loadedSettings, toLoad; + var _this = this; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + this.settings = new CitationsPluginSettings(); + return [4 /*yield*/, this.loadData()]; + case 1: + loadedSettings = _a.sent(); + if (!loadedSettings) + return [2 /*return*/]; + toLoad = [ + 'citationExportPath', + 'citationExportFormat', + 'literatureNoteTitleTemplate', + 'literatureNoteFolder', + 'literatureNoteContentTemplate', + 'markdownCitationTemplate', + 'alternativeMarkdownCitationTemplate', + ]; + toLoad.forEach(function (setting) { + if (setting in loadedSettings) { + _this.settings[setting] = loadedSettings[setting]; + } + }); + return [2 /*return*/]; + } + }); + }); + }; + CitationPlugin.prototype.saveSettings = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, this.saveData(this.settings)]; + case 1: + _a.sent(); + return [2 /*return*/]; + } + }); + }); + }; + CitationPlugin.prototype.onload = function () { + var _this = this; + this.loadSettings().then(function () { return _this.init(); }); + }; + CitationPlugin.prototype.init = function () { + return __awaiter(this, void 0, void 0, function () { + var watchOptions; + var _this = this; + return __generator(this, function (_a) { + if (this.settings.citationExportPath) { + // Load library for the first time + this.loadLibrary(); + // Set up a watcher to refresh whenever the export is updated + try { + watchOptions = { + awaitWriteFinish: { + stabilityThreshold: 500, + }, + }; + watch_1(this.resolveLibraryPath(this.settings.citationExportPath), watchOptions) + .on('change', function () { + _this.loadLibrary(); + }); + } + catch (_b) { + this.loadErrorNotifier.show(); + } + } + this.addCommand({ + id: 'open-literature-note', + name: 'Open literature note', + hotkeys: [{ modifiers: ['Ctrl', 'Shift'], key: 'o' }], + callback: function () { + var modal = new OpenNoteModal(_this.app, _this); + modal.open(); + }, + }); + this.addCommand({ + id: 'update-bib-data', + name: 'Refresh citation database', + hotkeys: [{ modifiers: ['Ctrl', 'Shift'], key: 'r' }], + callback: function () { + _this.loadLibrary(); + }, + }); + this.addCommand({ + id: 'insert-citation', + name: 'Insert literature note link', + hotkeys: [{ modifiers: ['Ctrl', 'Shift'], key: 'e' }], + callback: function () { + var modal = new InsertNoteLinkModal(_this.app, _this); + modal.open(); + }, + }); + this.addCommand({ + id: 'insert-literature-note-content', + name: 'Insert literature note content in the current pane', + callback: function () { + var modal = new InsertNoteContentModal(_this.app, _this); + modal.open(); + }, + }); + this.addCommand({ + id: 'insert-markdown-citation', + name: 'Insert Markdown citation', + callback: function () { + var modal = new InsertCitationModal(_this.app, _this); + modal.open(); + }, + }); + this.addSettingTab(new CitationSettingTab(this.app, this)); + return [2 /*return*/]; + }); + }); + }; + /** + * Resolve a provided library path, allowing for relative paths rooted at + * the vault directory. + */ + CitationPlugin.prototype.resolveLibraryPath = function (rawPath) { + var vaultRoot = this.app.vault.adapter instanceof obsidian.FileSystemAdapter + ? this.app.vault.adapter.getBasePath() + : '/'; + return sysPath.resolve(vaultRoot, rawPath); + }; + CitationPlugin.prototype.loadLibrary = function () { + return __awaiter(this, void 0, void 0, function () { + var filePath; + var _this = this; + return __generator(this, function (_a) { + console.debug('Citation plugin: Reloading library'); + if (this.settings.citationExportPath) { + filePath = this.resolveLibraryPath(this.settings.citationExportPath); + // Unload current library. + this.events.trigger('library-load-start'); + this.library = null; + return [2 /*return*/, obsidian.FileSystemAdapter.readLocalFile(filePath) + .then(function (buffer) { + // If there is a remaining error message, hide it + _this.loadErrorNotifier.hide(); + // Decode file as UTF-8. + var dataView = new DataView(buffer); + var decoder = new TextDecoder('utf8'); + var value = decoder.decode(dataView); + return _this.loadWorker.post({ + databaseRaw: value, + databaseType: _this.settings.citationExportFormat, + }); + }) + .then(function (entries) { + var adapter; + var idKey; + switch (_this.settings.citationExportFormat) { + case 'biblatex': + adapter = EntryBibLaTeXAdapter; + idKey = 'key'; + break; + case 'csl-json': + adapter = EntryCSLAdapter; + idKey = 'id'; + break; + } + _this.library = new Library(Object.fromEntries(entries.map(function (e) { return [e[idKey], new adapter(e)]; }))); + console.debug("Citation plugin: successfully loaded library with " + _this.library.size + " entries."); + _this.events.trigger('library-load-complete'); + return _this.library; + }) + .catch(function (e) { + if (e instanceof WorkerManagerBlocked) { + // Silently catch WorkerManager error, which will be thrown if the + // library is already being loaded + return; + } + console.error(e); + _this.loadErrorNotifier.show(); + return null; + })]; + } + else { + console.warn('Citations plugin: citation export path is not set. Please update plugin settings.'); + } + return [2 /*return*/]; + }); + }); + }; + Object.defineProperty(CitationPlugin.prototype, "isLibraryLoading", { + /** + * Returns true iff the library is currently being loaded on the worker thread. + */ + get: function () { + return this.loadWorker.blocked; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(CitationPlugin.prototype, "literatureNoteTitleTemplate", { + get: function () { + return lib.compile(this.settings.literatureNoteTitleTemplate, this.templateSettings); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(CitationPlugin.prototype, "literatureNoteContentTemplate", { + get: function () { + return lib.compile(this.settings.literatureNoteContentTemplate, this.templateSettings); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(CitationPlugin.prototype, "markdownCitationTemplate", { + get: function () { + return lib.compile(this.settings.markdownCitationTemplate, this.templateSettings); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(CitationPlugin.prototype, "alternativeMarkdownCitationTemplate", { + get: function () { + return lib.compile(this.settings.alternativeMarkdownCitationTemplate, this.templateSettings); + }, + enumerable: false, + configurable: true + }); + CitationPlugin.prototype.getTitleForCitekey = function (citekey) { + var unsafeTitle = this.literatureNoteTitleTemplate(this.library.getTemplateVariablesForCitekey(citekey)); + return unsafeTitle.replace(DISALLOWED_FILENAME_CHARACTERS_RE, '_'); + }; + CitationPlugin.prototype.getPathForCitekey = function (citekey) { + var title = this.getTitleForCitekey(citekey); + // TODO escape note title + return sysPath.join(this.settings.literatureNoteFolder, title + ".md"); + }; + CitationPlugin.prototype.getInitialContentForCitekey = function (citekey) { + return this.literatureNoteContentTemplate(this.library.getTemplateVariablesForCitekey(citekey)); + }; + CitationPlugin.prototype.getMarkdownCitationForCitekey = function (citekey) { + return this.markdownCitationTemplate(this.library.getTemplateVariablesForCitekey(citekey)); + }; + CitationPlugin.prototype.getAlternativeMarkdownCitationForCitekey = function (citekey) { + return this.alternativeMarkdownCitationTemplate(this.library.getTemplateVariablesForCitekey(citekey)); + }; + /** + * Run a case-insensitive search for the literature note file corresponding to + * the given citekey. If no corresponding file is found, create one. + */ + CitationPlugin.prototype.getOrCreateLiteratureNoteFile = function (citekey) { + return __awaiter(this, void 0, void 0, function () { + var path, normalizedPath, file, matches, exc_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + path = this.getPathForCitekey(citekey); + normalizedPath = obsidian.normalizePath(path); + file = this.app.vault.getAbstractFileByPath(normalizedPath); + if (!(file == null)) return [3 /*break*/, 4]; + matches = this.app.vault + .getMarkdownFiles() + .filter(function (f) { return f.path.toLowerCase() == normalizedPath.toLowerCase(); }); + if (!(matches.length > 0)) return [3 /*break*/, 1]; + file = matches[0]; + return [3 /*break*/, 4]; + case 1: + _a.trys.push([1, 3, , 4]); + return [4 /*yield*/, this.app.vault.create(path, this.getInitialContentForCitekey(citekey))]; + case 2: + file = _a.sent(); + return [3 /*break*/, 4]; + case 3: + exc_1 = _a.sent(); + this.literatureNoteErrorNotifier.show(); + throw exc_1; + case 4: return [2 /*return*/, file]; + } + }); + }); + }; + CitationPlugin.prototype.openLiteratureNote = function (citekey, newPane) { + return __awaiter(this, void 0, void 0, function () { + var _this = this; + return __generator(this, function (_a) { + this.getOrCreateLiteratureNoteFile(citekey) + .then(function (file) { + _this.app.workspace.getLeaf(newPane).openFile(file); + }) + .catch(console.error); + return [2 /*return*/]; + }); + }); + }; + CitationPlugin.prototype.insertLiteratureNoteLink = function (citekey) { + return __awaiter(this, void 0, void 0, function () { + var _this = this; + return __generator(this, function (_a) { + this.getOrCreateLiteratureNoteFile(citekey) + .then(function (file) { + var useMarkdown = _this.app.vault.getConfig('useMarkdownLinks'); + var title = _this.getTitleForCitekey(citekey); + var linkText; + if (useMarkdown) { + var uri = encodeURI(_this.app.metadataCache.fileToLinktext(file, '', false)); + linkText = "[" + title + "](" + uri + ")"; + } + else { + linkText = "[[" + title + "]]"; + } + _this.editor.replaceSelection(linkText); + }) + .catch(console.error); + return [2 /*return*/]; + }); + }); + }; + /** + * Format literature note content for a given reference and insert in the + * currently active pane. + */ + CitationPlugin.prototype.insertLiteratureNoteContent = function (citekey) { + return __awaiter(this, void 0, void 0, function () { + var content; + return __generator(this, function (_a) { + content = this.getInitialContentForCitekey(citekey); + this.editor.replaceRange(content, this.editor.getCursor()); + return [2 /*return*/]; + }); + }); + }; + CitationPlugin.prototype.insertMarkdownCitation = function (citekey, alternative) { + if (alternative === void 0) { alternative = false; } + return __awaiter(this, void 0, void 0, function () { + var func, citation; + return __generator(this, function (_a) { + func = alternative + ? this.getAlternativeMarkdownCitationForCitekey + : this.getMarkdownCitationForCitekey; + citation = func.bind(this)(citekey); + this.editor.replaceRange(citation, this.editor.getCursor()); + return [2 /*return*/]; + }); + }); + }; + return CitationPlugin; +}(obsidian.Plugin)); + +module.exports = CitationPlugin; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIm5vZGVfbW9kdWxlcy9waWNvbWF0Y2gvbGliL2NvbnN0YW50cy5qcyIsIm5vZGVfbW9kdWxlcy9waWNvbWF0Y2gvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3BpY29tYXRjaC9saWIvc2Nhbi5qcyIsIm5vZGVfbW9kdWxlcy9waWNvbWF0Y2gvbGliL3BhcnNlLmpzIiwibm9kZV9tb2R1bGVzL3BpY29tYXRjaC9saWIvcGljb21hdGNoLmpzIiwibm9kZV9tb2R1bGVzL3BpY29tYXRjaC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9yZWFkZGlycC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ub3JtYWxpemUtcGF0aC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9hbnltYXRjaC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9pcy1leHRnbG9iL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2lzLWdsb2IvaW5kZXguanMiLCJub2RlX21vZHVsZXMvZ2xvYi1wYXJlbnQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYnJhY2VzL2xpYi91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy9icmFjZXMvbGliL3N0cmluZ2lmeS5qcyIsIm5vZGVfbW9kdWxlcy9pcy1udW1iZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdG8tcmVnZXgtcmFuZ2UvaW5kZXguanMiLCJub2RlX21vZHVsZXMvZmlsbC1yYW5nZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icmFjZXMvbGliL2NvbXBpbGUuanMiLCJub2RlX21vZHVsZXMvYnJhY2VzL2xpYi9leHBhbmQuanMiLCJub2RlX21vZHVsZXMvYnJhY2VzL2xpYi9jb25zdGFudHMuanMiLCJub2RlX21vZHVsZXMvYnJhY2VzL2xpYi9wYXJzZS5qcyIsIm5vZGVfbW9kdWxlcy9icmFjZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYmluYXJ5LWV4dGVuc2lvbnMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvaXMtYmluYXJ5LXBhdGgvaW5kZXguanMiLCJub2RlX21vZHVsZXMvY2hva2lkYXIvbGliL2NvbnN0YW50cy5qcyIsIm5vZGVfbW9kdWxlcy9jaG9raWRhci9saWIvbm9kZWZzLWhhbmRsZXIuanMiLCJub2RlX21vZHVsZXMvY2hva2lkYXIvbGliL2ZzZXZlbnRzLWhhbmRsZXIuanMiLCJub2RlX21vZHVsZXMvY2hva2lkYXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvaGFuZGxlYmFycy9kaXN0L2Nqcy9oYW5kbGViYXJzL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL2hhbmRsZWJhcnMvZGlzdC9janMvaGFuZGxlYmFycy9leGNlcHRpb24uanMiLCJub2RlX21vZHVsZXMvaGFuZGxlYmFycy9kaXN0L2Nqcy9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiLCJub2RlX21vZHVsZXMvaGFuZGxlYmFycy9kaXN0L2Nqcy9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9oYW5kbGViYXJzL2Rpc3QvY2pzL2hhbmRsZWJhcnMvaGVscGVycy9oZWxwZXItbWlzc2luZy5qcyIsIm5vZGVfbW9kdWxlcy9oYW5kbGViYXJzL2Rpc3QvY2pzL2hhbmRsZWJhcnMvaGVscGVycy9pZi5qcyIsIm5vZGVfbW9kdWxlcy9oYW5kbGViYXJzL2Rpc3QvY2pzL2hhbmRsZWJhcnMvaGVscGVycy9sb2cuanMiLCJub2RlX21vZHVsZXMvaGFuZGxlYmFycy9kaXN0L2Nqcy9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIiwibm9kZV9tb2R1bGVzL2hhbmRsZWJhcnMvZGlzdC9janMvaGFuZGxlYmFycy9oZWxwZXJzL3dpdGguanMiLCJub2RlX21vZHVsZXMvaGFuZGxlYmFycy9kaXN0L2Nqcy9oYW5kbGViYXJzL2hlbHBlcnMuanMiLCJub2RlX21vZHVsZXMvaGFuZGxlYmFycy9kaXN0L2Nqcy9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIiwibm9kZV9tb2R1bGVzL2hhbmRsZWJhcnMvZGlzdC9janMvaGFuZGxlYmFycy9kZWNvcmF0b3JzLmpzIiwibm9kZV9tb2R1bGVzL2hhbmRsZWJhcnMvZGlzdC9janMvaGFuZGxlYmFycy9sb2dnZXIuanMiLCJub2RlX21vZHVsZXMvaGFuZGxlYmFycy9kaXN0L2Nqcy9oYW5kbGViYXJzL2ludGVybmFsL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdC5qcyIsIm5vZGVfbW9kdWxlcy9oYW5kbGViYXJzL2Rpc3QvY2pzL2hhbmRsZWJhcnMvaW50ZXJuYWwvcHJvdG8tYWNjZXNzLmpzIiwibm9kZV9tb2R1bGVzL2hhbmRsZWJhcnMvZGlzdC9janMvaGFuZGxlYmFycy9iYXNlLmpzIiwibm9kZV9tb2R1bGVzL2hhbmRsZWJhcnMvZGlzdC9janMvaGFuZGxlYmFycy9zYWZlLXN0cmluZy5qcyIsIm5vZGVfbW9kdWxlcy9oYW5kbGViYXJzL2Rpc3QvY2pzL2hhbmRsZWJhcnMvaW50ZXJuYWwvd3JhcEhlbHBlci5qcyIsIm5vZGVfbW9kdWxlcy9oYW5kbGViYXJzL2Rpc3QvY2pzL2hhbmRsZWJhcnMvcnVudGltZS5qcyIsIm5vZGVfbW9kdWxlcy9oYW5kbGViYXJzL2Rpc3QvY2pzL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QuanMiLCJub2RlX21vZHVsZXMvaGFuZGxlYmFycy9kaXN0L2Nqcy9oYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJub2RlX21vZHVsZXMvaGFuZGxlYmFycy9kaXN0L2Nqcy9oYW5kbGViYXJzL2NvbXBpbGVyL2FzdC5qcyIsIm5vZGVfbW9kdWxlcy9oYW5kbGViYXJzL2Rpc3QvY2pzL2hhbmRsZWJhcnMvY29tcGlsZXIvcGFyc2VyLmpzIiwibm9kZV9tb2R1bGVzL2hhbmRsZWJhcnMvZGlzdC9janMvaGFuZGxlYmFycy9jb21waWxlci92aXNpdG9yLmpzIiwibm9kZV9tb2R1bGVzL2hhbmRsZWJhcnMvZGlzdC9janMvaGFuZGxlYmFycy9jb21waWxlci93aGl0ZXNwYWNlLWNvbnRyb2wuanMiLCJub2RlX21vZHVsZXMvaGFuZGxlYmFycy9kaXN0L2Nqcy9oYW5kbGViYXJzL2NvbXBpbGVyL2hlbHBlcnMuanMiLCJub2RlX21vZHVsZXMvaGFuZGxlYmFycy9kaXN0L2Nqcy9oYW5kbGViYXJzL2NvbXBpbGVyL2Jhc2UuanMiLCJub2RlX21vZHVsZXMvaGFuZGxlYmFycy9kaXN0L2Nqcy9oYW5kbGViYXJzL2NvbXBpbGVyL2NvbXBpbGVyLmpzIiwibm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL2Jhc2U2NC5qcyIsIm5vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9iYXNlNjQtdmxxLmpzIiwibm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3V0aWwuanMiLCJub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvYXJyYXktc2V0LmpzIiwibm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL21hcHBpbmctbGlzdC5qcyIsIm5vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9zb3VyY2UtbWFwLWdlbmVyYXRvci5qcyIsIm5vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9iaW5hcnktc2VhcmNoLmpzIiwibm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3F1aWNrLXNvcnQuanMiLCJub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvc291cmNlLW1hcC1jb25zdW1lci5qcyIsIm5vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9zb3VyY2Utbm9kZS5qcyIsIm5vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL3NvdXJjZS1tYXAuanMiLCJub2RlX21vZHVsZXMvaGFuZGxlYmFycy9kaXN0L2Nqcy9oYW5kbGViYXJzL2NvbXBpbGVyL2NvZGUtZ2VuLmpzIiwibm9kZV9tb2R1bGVzL2hhbmRsZWJhcnMvZGlzdC9janMvaGFuZGxlYmFycy9jb21waWxlci9qYXZhc2NyaXB0LWNvbXBpbGVyLmpzIiwibm9kZV9tb2R1bGVzL2hhbmRsZWJhcnMvZGlzdC9janMvaGFuZGxlYmFycy5qcyIsIm5vZGVfbW9kdWxlcy9oYW5kbGViYXJzL2Rpc3QvY2pzL2hhbmRsZWJhcnMvY29tcGlsZXIvcHJpbnRlci5qcyIsIm5vZGVfbW9kdWxlcy9oYW5kbGViYXJzL2xpYi9pbmRleC5qcyIsInNyYy9ldmVudHMudHMiLCJzcmMvbW9kYWxzLnRzIiwibm9kZV9tb2R1bGVzL0ByZXRvcnF1ZXJlL2JpYnRleC1wYXJzZXIvZ3JhbW1hci5qcyIsIm5vZGVfbW9kdWxlcy9AcmV0b3JxdWVyZS9iaWJ0ZXgtcGFyc2VyL2NodW5rZXIuanMiLCJub2RlX21vZHVsZXMvdW5pY29kZTJsYXRleC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy94cmVnZXhwL3Rvb2xzL291dHB1dC9jYXRlZ29yaWVzLmpzIiwibm9kZV9tb2R1bGVzL0ByZXRvcnF1ZXJlL2JpYnRleC1wYXJzZXIvamFicmVmLmpzIiwibm9kZV9tb2R1bGVzL0ByZXRvcnF1ZXJlL2JpYnRleC1wYXJzZXIvaW5kZXguanMiLCJzcmMvdHlwZXMudHMiLCJzcmMvc2V0dGluZ3MudHMiLCJub2RlX21vZHVsZXMvcHJvbWlzZS13b3JrZXIvaW5kZXguanMiLCJzcmMvb2JzaWRpYW4tZXh0ZW5zaW9ucy50cyIsInNyYy91dGlsLnRzIiwic3JjL21haW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UgKi9cclxuXHJcbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xyXG4gICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XHJcbiAgICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5cygpIHtcclxuICAgIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xyXG4gICAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxyXG4gICAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxyXG4gICAgICAgICAgICByW2tdID0gYVtqXTtcclxuICAgIHJldHVybiByO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xyXG4gICAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xyXG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xyXG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydERlZmF1bHQobW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgcHJpdmF0ZU1hcCkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwcml2YXRlTWFwLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBwcml2YXRlTWFwLCB2YWx1ZSkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIHNldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHByaXZhdGVNYXAuc2V0KHJlY2VpdmVyLCB2YWx1ZSk7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbn1cclxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuY29uc3QgV0lOX1NMQVNIID0gJ1xcXFxcXFxcLyc7XG5jb25zdCBXSU5fTk9fU0xBU0ggPSBgW14ke1dJTl9TTEFTSH1dYDtcblxuLyoqXG4gKiBQb3NpeCBnbG9iIHJlZ2V4XG4gKi9cblxuY29uc3QgRE9UX0xJVEVSQUwgPSAnXFxcXC4nO1xuY29uc3QgUExVU19MSVRFUkFMID0gJ1xcXFwrJztcbmNvbnN0IFFNQVJLX0xJVEVSQUwgPSAnXFxcXD8nO1xuY29uc3QgU0xBU0hfTElURVJBTCA9ICdcXFxcLyc7XG5jb25zdCBPTkVfQ0hBUiA9ICcoPz0uKSc7XG5jb25zdCBRTUFSSyA9ICdbXi9dJztcbmNvbnN0IEVORF9BTkNIT1IgPSBgKD86JHtTTEFTSF9MSVRFUkFMfXwkKWA7XG5jb25zdCBTVEFSVF9BTkNIT1IgPSBgKD86Xnwke1NMQVNIX0xJVEVSQUx9KWA7XG5jb25zdCBET1RTX1NMQVNIID0gYCR7RE9UX0xJVEVSQUx9ezEsMn0ke0VORF9BTkNIT1J9YDtcbmNvbnN0IE5PX0RPVCA9IGAoPyEke0RPVF9MSVRFUkFMfSlgO1xuY29uc3QgTk9fRE9UUyA9IGAoPyEke1NUQVJUX0FOQ0hPUn0ke0RPVFNfU0xBU0h9KWA7XG5jb25zdCBOT19ET1RfU0xBU0ggPSBgKD8hJHtET1RfTElURVJBTH17MCwxfSR7RU5EX0FOQ0hPUn0pYDtcbmNvbnN0IE5PX0RPVFNfU0xBU0ggPSBgKD8hJHtET1RTX1NMQVNIfSlgO1xuY29uc3QgUU1BUktfTk9fRE9UID0gYFteLiR7U0xBU0hfTElURVJBTH1dYDtcbmNvbnN0IFNUQVIgPSBgJHtRTUFSS30qP2A7XG5cbmNvbnN0IFBPU0lYX0NIQVJTID0ge1xuICBET1RfTElURVJBTCxcbiAgUExVU19MSVRFUkFMLFxuICBRTUFSS19MSVRFUkFMLFxuICBTTEFTSF9MSVRFUkFMLFxuICBPTkVfQ0hBUixcbiAgUU1BUkssXG4gIEVORF9BTkNIT1IsXG4gIERPVFNfU0xBU0gsXG4gIE5PX0RPVCxcbiAgTk9fRE9UUyxcbiAgTk9fRE9UX1NMQVNILFxuICBOT19ET1RTX1NMQVNILFxuICBRTUFSS19OT19ET1QsXG4gIFNUQVIsXG4gIFNUQVJUX0FOQ0hPUlxufTtcblxuLyoqXG4gKiBXaW5kb3dzIGdsb2IgcmVnZXhcbiAqL1xuXG5jb25zdCBXSU5ET1dTX0NIQVJTID0ge1xuICAuLi5QT1NJWF9DSEFSUyxcblxuICBTTEFTSF9MSVRFUkFMOiBgWyR7V0lOX1NMQVNIfV1gLFxuICBRTUFSSzogV0lOX05PX1NMQVNILFxuICBTVEFSOiBgJHtXSU5fTk9fU0xBU0h9Kj9gLFxuICBET1RTX1NMQVNIOiBgJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpYCxcbiAgTk9fRE9UOiBgKD8hJHtET1RfTElURVJBTH0pYCxcbiAgTk9fRE9UUzogYCg/ISg/Ol58WyR7V0lOX1NMQVNIfV0pJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpKWAsXG4gIE5PX0RPVF9TTEFTSDogYCg/ISR7RE9UX0xJVEVSQUx9ezAsMX0oPzpbJHtXSU5fU0xBU0h9XXwkKSlgLFxuICBOT19ET1RTX1NMQVNIOiBgKD8hJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpKWAsXG4gIFFNQVJLX05PX0RPVDogYFteLiR7V0lOX1NMQVNIfV1gLFxuICBTVEFSVF9BTkNIT1I6IGAoPzpefFske1dJTl9TTEFTSH1dKWAsXG4gIEVORF9BTkNIT1I6IGAoPzpbJHtXSU5fU0xBU0h9XXwkKWBcbn07XG5cbi8qKlxuICogUE9TSVggQnJhY2tldCBSZWdleFxuICovXG5cbmNvbnN0IFBPU0lYX1JFR0VYX1NPVVJDRSA9IHtcbiAgYWxudW06ICdhLXpBLVowLTknLFxuICBhbHBoYTogJ2EtekEtWicsXG4gIGFzY2lpOiAnXFxcXHgwMC1cXFxceDdGJyxcbiAgYmxhbms6ICcgXFxcXHQnLFxuICBjbnRybDogJ1xcXFx4MDAtXFxcXHgxRlxcXFx4N0YnLFxuICBkaWdpdDogJzAtOScsXG4gIGdyYXBoOiAnXFxcXHgyMS1cXFxceDdFJyxcbiAgbG93ZXI6ICdhLXonLFxuICBwcmludDogJ1xcXFx4MjAtXFxcXHg3RSAnLFxuICBwdW5jdDogJ1xcXFwtIVwiIyQlJlxcJygpXFxcXCorLC4vOjs8PT4/QFtcXFxcXV5fYHt8fX4nLFxuICBzcGFjZTogJyBcXFxcdFxcXFxyXFxcXG5cXFxcdlxcXFxmJyxcbiAgdXBwZXI6ICdBLVonLFxuICB3b3JkOiAnQS1aYS16MC05XycsXG4gIHhkaWdpdDogJ0EtRmEtZjAtOSdcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBNQVhfTEVOR1RIOiAxMDI0ICogNjQsXG4gIFBPU0lYX1JFR0VYX1NPVVJDRSxcblxuICAvLyByZWd1bGFyIGV4cHJlc3Npb25zXG4gIFJFR0VYX0JBQ0tTTEFTSDogL1xcXFwoPyFbKis/XiR7fSh8KVtcXF1dKS9nLFxuICBSRUdFWF9OT05fU1BFQ0lBTF9DSEFSUzogL15bXkAhW1xcXS4sJCorP157fSgpfFxcXFwvXSsvLFxuICBSRUdFWF9TUEVDSUFMX0NIQVJTOiAvWy0qKz8uXiR7fSh8KVtcXF1dLyxcbiAgUkVHRVhfU1BFQ0lBTF9DSEFSU19CQUNLUkVGOiAvKFxcXFw/KSgoXFxXKShcXDMqKSkvZyxcbiAgUkVHRVhfU1BFQ0lBTF9DSEFSU19HTE9CQUw6IC8oWy0qKz8uXiR7fSh8KVtcXF1dKS9nLFxuICBSRUdFWF9SRU1PVkVfQkFDS1NMQVNIOiAvKD86XFxbLio/W15cXFxcXVxcXXxcXFxcKD89LikpL2csXG5cbiAgLy8gUmVwbGFjZSBnbG9icyB3aXRoIGVxdWl2YWxlbnQgcGF0dGVybnMgdG8gcmVkdWNlIHBhcnNpbmcgdGltZS5cbiAgUkVQTEFDRU1FTlRTOiB7XG4gICAgJyoqKic6ICcqJyxcbiAgICAnKiovKionOiAnKionLFxuICAgICcqKi8qKi8qKic6ICcqKidcbiAgfSxcblxuICAvLyBEaWdpdHNcbiAgQ0hBUl8wOiA0OCwgLyogMCAqL1xuICBDSEFSXzk6IDU3LCAvKiA5ICovXG5cbiAgLy8gQWxwaGFiZXQgY2hhcnMuXG4gIENIQVJfVVBQRVJDQVNFX0E6IDY1LCAvKiBBICovXG4gIENIQVJfTE9XRVJDQVNFX0E6IDk3LCAvKiBhICovXG4gIENIQVJfVVBQRVJDQVNFX1o6IDkwLCAvKiBaICovXG4gIENIQVJfTE9XRVJDQVNFX1o6IDEyMiwgLyogeiAqL1xuXG4gIENIQVJfTEVGVF9QQVJFTlRIRVNFUzogNDAsIC8qICggKi9cbiAgQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzogNDEsIC8qICkgKi9cblxuICBDSEFSX0FTVEVSSVNLOiA0MiwgLyogKiAqL1xuXG4gIC8vIE5vbi1hbHBoYWJldGljIGNoYXJzLlxuICBDSEFSX0FNUEVSU0FORDogMzgsIC8qICYgKi9cbiAgQ0hBUl9BVDogNjQsIC8qIEAgKi9cbiAgQ0hBUl9CQUNLV0FSRF9TTEFTSDogOTIsIC8qIFxcICovXG4gIENIQVJfQ0FSUklBR0VfUkVUVVJOOiAxMywgLyogXFxyICovXG4gIENIQVJfQ0lSQ1VNRkxFWF9BQ0NFTlQ6IDk0LCAvKiBeICovXG4gIENIQVJfQ09MT046IDU4LCAvKiA6ICovXG4gIENIQVJfQ09NTUE6IDQ0LCAvKiAsICovXG4gIENIQVJfRE9UOiA0NiwgLyogLiAqL1xuICBDSEFSX0RPVUJMRV9RVU9URTogMzQsIC8qIFwiICovXG4gIENIQVJfRVFVQUw6IDYxLCAvKiA9ICovXG4gIENIQVJfRVhDTEFNQVRJT05fTUFSSzogMzMsIC8qICEgKi9cbiAgQ0hBUl9GT1JNX0ZFRUQ6IDEyLCAvKiBcXGYgKi9cbiAgQ0hBUl9GT1JXQVJEX1NMQVNIOiA0NywgLyogLyAqL1xuICBDSEFSX0dSQVZFX0FDQ0VOVDogOTYsIC8qIGAgKi9cbiAgQ0hBUl9IQVNIOiAzNSwgLyogIyAqL1xuICBDSEFSX0hZUEhFTl9NSU5VUzogNDUsIC8qIC0gKi9cbiAgQ0hBUl9MRUZUX0FOR0xFX0JSQUNLRVQ6IDYwLCAvKiA8ICovXG4gIENIQVJfTEVGVF9DVVJMWV9CUkFDRTogMTIzLCAvKiB7ICovXG4gIENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVDogOTEsIC8qIFsgKi9cbiAgQ0hBUl9MSU5FX0ZFRUQ6IDEwLCAvKiBcXG4gKi9cbiAgQ0hBUl9OT19CUkVBS19TUEFDRTogMTYwLCAvKiBcXHUwMEEwICovXG4gIENIQVJfUEVSQ0VOVDogMzcsIC8qICUgKi9cbiAgQ0hBUl9QTFVTOiA0MywgLyogKyAqL1xuICBDSEFSX1FVRVNUSU9OX01BUks6IDYzLCAvKiA/ICovXG4gIENIQVJfUklHSFRfQU5HTEVfQlJBQ0tFVDogNjIsIC8qID4gKi9cbiAgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRTogMTI1LCAvKiB9ICovXG4gIENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQ6IDkzLCAvKiBdICovXG4gIENIQVJfU0VNSUNPTE9OOiA1OSwgLyogOyAqL1xuICBDSEFSX1NJTkdMRV9RVU9URTogMzksIC8qICcgKi9cbiAgQ0hBUl9TUEFDRTogMzIsIC8qICAgKi9cbiAgQ0hBUl9UQUI6IDksIC8qIFxcdCAqL1xuICBDSEFSX1VOREVSU0NPUkU6IDk1LCAvKiBfICovXG4gIENIQVJfVkVSVElDQUxfTElORTogMTI0LCAvKiB8ICovXG4gIENIQVJfWkVST19XSURUSF9OT0JSRUFLX1NQQUNFOiA2NTI3OSwgLyogXFx1RkVGRiAqL1xuXG4gIFNFUDogcGF0aC5zZXAsXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBFWFRHTE9CX0NIQVJTXG4gICAqL1xuXG4gIGV4dGdsb2JDaGFycyhjaGFycykge1xuICAgIHJldHVybiB7XG4gICAgICAnISc6IHsgdHlwZTogJ25lZ2F0ZScsIG9wZW46ICcoPzooPyEoPzonLCBjbG9zZTogYCkpJHtjaGFycy5TVEFSfSlgIH0sXG4gICAgICAnPyc6IHsgdHlwZTogJ3FtYXJrJywgb3BlbjogJyg/OicsIGNsb3NlOiAnKT8nIH0sXG4gICAgICAnKyc6IHsgdHlwZTogJ3BsdXMnLCBvcGVuOiAnKD86JywgY2xvc2U6ICcpKycgfSxcbiAgICAgICcqJzogeyB0eXBlOiAnc3RhcicsIG9wZW46ICcoPzonLCBjbG9zZTogJykqJyB9LFxuICAgICAgJ0AnOiB7IHR5cGU6ICdhdCcsIG9wZW46ICcoPzonLCBjbG9zZTogJyknIH1cbiAgICB9O1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgR0xPQl9DSEFSU1xuICAgKi9cblxuICBnbG9iQ2hhcnMod2luMzIpIHtcbiAgICByZXR1cm4gd2luMzIgPT09IHRydWUgPyBXSU5ET1dTX0NIQVJTIDogUE9TSVhfQ0hBUlM7XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbmNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5jb25zdCB3aW4zMiA9IHByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMic7XG5jb25zdCB7XG4gIFJFR0VYX0JBQ0tTTEFTSCxcbiAgUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSCxcbiAgUkVHRVhfU1BFQ0lBTF9DSEFSUyxcbiAgUkVHRVhfU1BFQ0lBTF9DSEFSU19HTE9CQUxcbn0gPSByZXF1aXJlKCcuL2NvbnN0YW50cycpO1xuXG5leHBvcnRzLmlzT2JqZWN0ID0gdmFsID0+IHZhbCAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWwpO1xuZXhwb3J0cy5oYXNSZWdleENoYXJzID0gc3RyID0+IFJFR0VYX1NQRUNJQUxfQ0hBUlMudGVzdChzdHIpO1xuZXhwb3J0cy5pc1JlZ2V4Q2hhciA9IHN0ciA9PiBzdHIubGVuZ3RoID09PSAxICYmIGV4cG9ydHMuaGFzUmVnZXhDaGFycyhzdHIpO1xuZXhwb3J0cy5lc2NhcGVSZWdleCA9IHN0ciA9PiBzdHIucmVwbGFjZShSRUdFWF9TUEVDSUFMX0NIQVJTX0dMT0JBTCwgJ1xcXFwkMScpO1xuZXhwb3J0cy50b1Bvc2l4U2xhc2hlcyA9IHN0ciA9PiBzdHIucmVwbGFjZShSRUdFWF9CQUNLU0xBU0gsICcvJyk7XG5cbmV4cG9ydHMucmVtb3ZlQmFja3NsYXNoZXMgPSBzdHIgPT4ge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSCwgbWF0Y2ggPT4ge1xuICAgIHJldHVybiBtYXRjaCA9PT0gJ1xcXFwnID8gJycgOiBtYXRjaDtcbiAgfSk7XG59O1xuXG5leHBvcnRzLnN1cHBvcnRzTG9va2JlaGluZHMgPSAoKSA9PiB7XG4gIGNvbnN0IHNlZ3MgPSBwcm9jZXNzLnZlcnNpb24uc2xpY2UoMSkuc3BsaXQoJy4nKS5tYXAoTnVtYmVyKTtcbiAgaWYgKHNlZ3MubGVuZ3RoID09PSAzICYmIHNlZ3NbMF0gPj0gOSB8fCAoc2Vnc1swXSA9PT0gOCAmJiBzZWdzWzFdID49IDEwKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydHMuaXNXaW5kb3dzID0gb3B0aW9ucyA9PiB7XG4gIGlmIChvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLndpbmRvd3MgPT09ICdib29sZWFuJykge1xuICAgIHJldHVybiBvcHRpb25zLndpbmRvd3M7XG4gIH1cbiAgcmV0dXJuIHdpbjMyID09PSB0cnVlIHx8IHBhdGguc2VwID09PSAnXFxcXCc7XG59O1xuXG5leHBvcnRzLmVzY2FwZUxhc3QgPSAoaW5wdXQsIGNoYXIsIGxhc3RJZHgpID0+IHtcbiAgY29uc3QgaWR4ID0gaW5wdXQubGFzdEluZGV4T2YoY2hhciwgbGFzdElkeCk7XG4gIGlmIChpZHggPT09IC0xKSByZXR1cm4gaW5wdXQ7XG4gIGlmIChpbnB1dFtpZHggLSAxXSA9PT0gJ1xcXFwnKSByZXR1cm4gZXhwb3J0cy5lc2NhcGVMYXN0KGlucHV0LCBjaGFyLCBpZHggLSAxKTtcbiAgcmV0dXJuIGAke2lucHV0LnNsaWNlKDAsIGlkeCl9XFxcXCR7aW5wdXQuc2xpY2UoaWR4KX1gO1xufTtcblxuZXhwb3J0cy5yZW1vdmVQcmVmaXggPSAoaW5wdXQsIHN0YXRlID0ge30pID0+IHtcbiAgbGV0IG91dHB1dCA9IGlucHV0O1xuICBpZiAob3V0cHV0LnN0YXJ0c1dpdGgoJy4vJykpIHtcbiAgICBvdXRwdXQgPSBvdXRwdXQuc2xpY2UoMik7XG4gICAgc3RhdGUucHJlZml4ID0gJy4vJztcbiAgfVxuICByZXR1cm4gb3V0cHV0O1xufTtcblxuZXhwb3J0cy53cmFwT3V0cHV0ID0gKGlucHV0LCBzdGF0ZSA9IHt9LCBvcHRpb25zID0ge30pID0+IHtcbiAgY29uc3QgcHJlcGVuZCA9IG9wdGlvbnMuY29udGFpbnMgPyAnJyA6ICdeJztcbiAgY29uc3QgYXBwZW5kID0gb3B0aW9ucy5jb250YWlucyA/ICcnIDogJyQnO1xuXG4gIGxldCBvdXRwdXQgPSBgJHtwcmVwZW5kfSg/OiR7aW5wdXR9KSR7YXBwZW5kfWA7XG4gIGlmIChzdGF0ZS5uZWdhdGVkID09PSB0cnVlKSB7XG4gICAgb3V0cHV0ID0gYCg/Ol4oPyEke291dHB1dH0pLiokKWA7XG4gIH1cbiAgcmV0dXJuIG91dHB1dDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbmNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xuY29uc3Qge1xuICBDSEFSX0FTVEVSSVNLLCAgICAgICAgICAgICAvKiAqICovXG4gIENIQVJfQVQsICAgICAgICAgICAgICAgICAgIC8qIEAgKi9cbiAgQ0hBUl9CQUNLV0FSRF9TTEFTSCwgICAgICAgLyogXFwgKi9cbiAgQ0hBUl9DT01NQSwgICAgICAgICAgICAgICAgLyogLCAqL1xuICBDSEFSX0RPVCwgICAgICAgICAgICAgICAgICAvKiAuICovXG4gIENIQVJfRVhDTEFNQVRJT05fTUFSSywgICAgIC8qICEgKi9cbiAgQ0hBUl9GT1JXQVJEX1NMQVNILCAgICAgICAgLyogLyAqL1xuICBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0UsICAgICAvKiB7ICovXG4gIENIQVJfTEVGVF9QQVJFTlRIRVNFUywgICAgIC8qICggKi9cbiAgQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VULCAgLyogWyAqL1xuICBDSEFSX1BMVVMsICAgICAgICAgICAgICAgICAvKiArICovXG4gIENIQVJfUVVFU1RJT05fTUFSSywgICAgICAgIC8qID8gKi9cbiAgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRSwgICAgLyogfSAqL1xuICBDSEFSX1JJR0hUX1BBUkVOVEhFU0VTLCAgICAvKiApICovXG4gIENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQgIC8qIF0gKi9cbn0gPSByZXF1aXJlKCcuL2NvbnN0YW50cycpO1xuXG5jb25zdCBpc1BhdGhTZXBhcmF0b3IgPSBjb2RlID0+IHtcbiAgcmV0dXJuIGNvZGUgPT09IENIQVJfRk9SV0FSRF9TTEFTSCB8fCBjb2RlID09PSBDSEFSX0JBQ0tXQVJEX1NMQVNIO1xufTtcblxuY29uc3QgZGVwdGggPSB0b2tlbiA9PiB7XG4gIGlmICh0b2tlbi5pc1ByZWZpeCAhPT0gdHJ1ZSkge1xuICAgIHRva2VuLmRlcHRoID0gdG9rZW4uaXNHbG9ic3RhciA/IEluZmluaXR5IDogMTtcbiAgfVxufTtcblxuLyoqXG4gKiBRdWlja2x5IHNjYW5zIGEgZ2xvYiBwYXR0ZXJuIGFuZCByZXR1cm5zIGFuIG9iamVjdCB3aXRoIGEgaGFuZGZ1bCBvZlxuICogdXNlZnVsIHByb3BlcnRpZXMsIGxpa2UgYGlzR2xvYmAsIGBwYXRoYCAodGhlIGxlYWRpbmcgbm9uLWdsb2IsIGlmIGl0IGV4aXN0cyksXG4gKiBgZ2xvYmAgKHRoZSBhY3R1YWwgcGF0dGVybiksIGFuZCBgbmVnYXRlZGAgKHRydWUgaWYgdGhlIHBhdGggc3RhcnRzIHdpdGggYCFgKS5cbiAqXG4gKiBgYGBqc1xuICogY29uc3QgcG0gPSByZXF1aXJlKCdwaWNvbWF0Y2gnKTtcbiAqIGNvbnNvbGUubG9nKHBtLnNjYW4oJ2Zvby9iYXIvKi5qcycpKTtcbiAqIHsgaXNHbG9iOiB0cnVlLCBpbnB1dDogJ2Zvby9iYXIvKi5qcycsIGJhc2U6ICdmb28vYmFyJywgZ2xvYjogJyouanMnIH1cbiAqIGBgYFxuICogQHBhcmFtIHtTdHJpbmd9IGBzdHJgXG4gKiBAcGFyYW0ge09iamVjdH0gYG9wdGlvbnNgXG4gKiBAcmV0dXJuIHtPYmplY3R9IFJldHVybnMgYW4gb2JqZWN0IHdpdGggdG9rZW5zIGFuZCByZWdleCBzb3VyY2Ugc3RyaW5nLlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5jb25zdCBzY2FuID0gKGlucHV0LCBvcHRpb25zKSA9PiB7XG4gIGNvbnN0IG9wdHMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIGNvbnN0IGxlbmd0aCA9IGlucHV0Lmxlbmd0aCAtIDE7XG4gIGNvbnN0IHNjYW5Ub0VuZCA9IG9wdHMucGFydHMgPT09IHRydWUgfHwgb3B0cy5zY2FuVG9FbmQgPT09IHRydWU7XG4gIGNvbnN0IHNsYXNoZXMgPSBbXTtcbiAgY29uc3QgdG9rZW5zID0gW107XG4gIGNvbnN0IHBhcnRzID0gW107XG5cbiAgbGV0IHN0ciA9IGlucHV0O1xuICBsZXQgaW5kZXggPSAtMTtcbiAgbGV0IHN0YXJ0ID0gMDtcbiAgbGV0IGxhc3RJbmRleCA9IDA7XG4gIGxldCBpc0JyYWNlID0gZmFsc2U7XG4gIGxldCBpc0JyYWNrZXQgPSBmYWxzZTtcbiAgbGV0IGlzR2xvYiA9IGZhbHNlO1xuICBsZXQgaXNFeHRnbG9iID0gZmFsc2U7XG4gIGxldCBpc0dsb2JzdGFyID0gZmFsc2U7XG4gIGxldCBicmFjZUVzY2FwZWQgPSBmYWxzZTtcbiAgbGV0IGJhY2tzbGFzaGVzID0gZmFsc2U7XG4gIGxldCBuZWdhdGVkID0gZmFsc2U7XG4gIGxldCBmaW5pc2hlZCA9IGZhbHNlO1xuICBsZXQgYnJhY2VzID0gMDtcbiAgbGV0IHByZXY7XG4gIGxldCBjb2RlO1xuICBsZXQgdG9rZW4gPSB7IHZhbHVlOiAnJywgZGVwdGg6IDAsIGlzR2xvYjogZmFsc2UgfTtcblxuICBjb25zdCBlb3MgPSAoKSA9PiBpbmRleCA+PSBsZW5ndGg7XG4gIGNvbnN0IHBlZWsgPSAoKSA9PiBzdHIuY2hhckNvZGVBdChpbmRleCArIDEpO1xuICBjb25zdCBhZHZhbmNlID0gKCkgPT4ge1xuICAgIHByZXYgPSBjb2RlO1xuICAgIHJldHVybiBzdHIuY2hhckNvZGVBdCgrK2luZGV4KTtcbiAgfTtcblxuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICBjb2RlID0gYWR2YW5jZSgpO1xuICAgIGxldCBuZXh0O1xuXG4gICAgaWYgKGNvZGUgPT09IENIQVJfQkFDS1dBUkRfU0xBU0gpIHtcbiAgICAgIGJhY2tzbGFzaGVzID0gdG9rZW4uYmFja3NsYXNoZXMgPSB0cnVlO1xuICAgICAgY29kZSA9IGFkdmFuY2UoKTtcblxuICAgICAgaWYgKGNvZGUgPT09IENIQVJfTEVGVF9DVVJMWV9CUkFDRSkge1xuICAgICAgICBicmFjZUVzY2FwZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKGJyYWNlRXNjYXBlZCA9PT0gdHJ1ZSB8fCBjb2RlID09PSBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0UpIHtcbiAgICAgIGJyYWNlcysrO1xuXG4gICAgICB3aGlsZSAoZW9zKCkgIT09IHRydWUgJiYgKGNvZGUgPSBhZHZhbmNlKCkpKSB7XG4gICAgICAgIGlmIChjb2RlID09PSBDSEFSX0JBQ0tXQVJEX1NMQVNIKSB7XG4gICAgICAgICAgYmFja3NsYXNoZXMgPSB0b2tlbi5iYWNrc2xhc2hlcyA9IHRydWU7XG4gICAgICAgICAgYWR2YW5jZSgpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfTEVGVF9DVVJMWV9CUkFDRSkge1xuICAgICAgICAgIGJyYWNlcysrO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJyYWNlRXNjYXBlZCAhPT0gdHJ1ZSAmJiBjb2RlID09PSBDSEFSX0RPVCAmJiAoY29kZSA9IGFkdmFuY2UoKSkgPT09IENIQVJfRE9UKSB7XG4gICAgICAgICAgaXNCcmFjZSA9IHRva2VuLmlzQnJhY2UgPSB0cnVlO1xuICAgICAgICAgIGlzR2xvYiA9IHRva2VuLmlzR2xvYiA9IHRydWU7XG4gICAgICAgICAgZmluaXNoZWQgPSB0cnVlO1xuXG4gICAgICAgICAgaWYgKHNjYW5Ub0VuZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYnJhY2VFc2NhcGVkICE9PSB0cnVlICYmIGNvZGUgPT09IENIQVJfQ09NTUEpIHtcbiAgICAgICAgICBpc0JyYWNlID0gdG9rZW4uaXNCcmFjZSA9IHRydWU7XG4gICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTtcbiAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XG5cbiAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2RlID09PSBDSEFSX1JJR0hUX0NVUkxZX0JSQUNFKSB7XG4gICAgICAgICAgYnJhY2VzLS07XG5cbiAgICAgICAgICBpZiAoYnJhY2VzID09PSAwKSB7XG4gICAgICAgICAgICBicmFjZUVzY2FwZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTtcbiAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gQ0hBUl9GT1JXQVJEX1NMQVNIKSB7XG4gICAgICBzbGFzaGVzLnB1c2goaW5kZXgpO1xuICAgICAgdG9rZW5zLnB1c2godG9rZW4pO1xuICAgICAgdG9rZW4gPSB7IHZhbHVlOiAnJywgZGVwdGg6IDAsIGlzR2xvYjogZmFsc2UgfTtcblxuICAgICAgaWYgKGZpbmlzaGVkID09PSB0cnVlKSBjb250aW51ZTtcbiAgICAgIGlmIChwcmV2ID09PSBDSEFSX0RPVCAmJiBpbmRleCA9PT0gKHN0YXJ0ICsgMSkpIHtcbiAgICAgICAgc3RhcnQgKz0gMjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGxhc3RJbmRleCA9IGluZGV4ICsgMTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChvcHRzLm5vZXh0ICE9PSB0cnVlKSB7XG4gICAgICBjb25zdCBpc0V4dGdsb2JDaGFyID0gY29kZSA9PT0gQ0hBUl9QTFVTXG4gICAgICAgIHx8IGNvZGUgPT09IENIQVJfQVRcbiAgICAgICAgfHwgY29kZSA9PT0gQ0hBUl9BU1RFUklTS1xuICAgICAgICB8fCBjb2RlID09PSBDSEFSX1FVRVNUSU9OX01BUktcbiAgICAgICAgfHwgY29kZSA9PT0gQ0hBUl9FWENMQU1BVElPTl9NQVJLO1xuXG4gICAgICBpZiAoaXNFeHRnbG9iQ2hhciA9PT0gdHJ1ZSAmJiBwZWVrKCkgPT09IENIQVJfTEVGVF9QQVJFTlRIRVNFUykge1xuICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlO1xuICAgICAgICBpc0V4dGdsb2IgPSB0b2tlbi5pc0V4dGdsb2IgPSB0cnVlO1xuICAgICAgICBmaW5pc2hlZCA9IHRydWU7XG5cbiAgICAgICAgaWYgKHNjYW5Ub0VuZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHdoaWxlIChlb3MoKSAhPT0gdHJ1ZSAmJiAoY29kZSA9IGFkdmFuY2UoKSkpIHtcbiAgICAgICAgICAgIGlmIChjb2RlID09PSBDSEFSX0JBQ0tXQVJEX1NMQVNIKSB7XG4gICAgICAgICAgICAgIGJhY2tzbGFzaGVzID0gdG9rZW4uYmFja3NsYXNoZXMgPSB0cnVlO1xuICAgICAgICAgICAgICBjb2RlID0gYWR2YW5jZSgpO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfUklHSFRfUEFSRU5USEVTRVMpIHtcbiAgICAgICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTtcbiAgICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IENIQVJfQVNURVJJU0spIHtcbiAgICAgIGlmIChwcmV2ID09PSBDSEFSX0FTVEVSSVNLKSBpc0dsb2JzdGFyID0gdG9rZW4uaXNHbG9ic3RhciA9IHRydWU7XG4gICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlO1xuICAgICAgZmluaXNoZWQgPSB0cnVlO1xuXG4gICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IENIQVJfUVVFU1RJT05fTUFSSykge1xuICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTtcbiAgICAgIGZpbmlzaGVkID0gdHJ1ZTtcblxuICAgICAgaWYgKHNjYW5Ub0VuZCA9PT0gdHJ1ZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChjb2RlID09PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQpIHtcbiAgICAgIHdoaWxlIChlb3MoKSAhPT0gdHJ1ZSAmJiAobmV4dCA9IGFkdmFuY2UoKSkpIHtcbiAgICAgICAgaWYgKG5leHQgPT09IENIQVJfQkFDS1dBUkRfU0xBU0gpIHtcbiAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRva2VuLmJhY2tzbGFzaGVzID0gdHJ1ZTtcbiAgICAgICAgICBhZHZhbmNlKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV4dCA9PT0gQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCkge1xuICAgICAgICAgIGlzQnJhY2tldCA9IHRva2VuLmlzQnJhY2tldCA9IHRydWU7XG4gICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTtcbiAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XG5cbiAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3B0cy5ub25lZ2F0ZSAhPT0gdHJ1ZSAmJiBjb2RlID09PSBDSEFSX0VYQ0xBTUFUSU9OX01BUksgJiYgaW5kZXggPT09IHN0YXJ0KSB7XG4gICAgICBuZWdhdGVkID0gdG9rZW4ubmVnYXRlZCA9IHRydWU7XG4gICAgICBzdGFydCsrO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKG9wdHMubm9wYXJlbiAhPT0gdHJ1ZSAmJiBjb2RlID09PSBDSEFSX0xFRlRfUEFSRU5USEVTRVMpIHtcbiAgICAgIGlzR2xvYiA9IHRva2VuLmlzR2xvYiA9IHRydWU7XG5cbiAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHtcbiAgICAgICAgd2hpbGUgKGVvcygpICE9PSB0cnVlICYmIChjb2RlID0gYWR2YW5jZSgpKSkge1xuICAgICAgICAgIGlmIChjb2RlID09PSBDSEFSX0xFRlRfUEFSRU5USEVTRVMpIHtcbiAgICAgICAgICAgIGJhY2tzbGFzaGVzID0gdG9rZW4uYmFja3NsYXNoZXMgPSB0cnVlO1xuICAgICAgICAgICAgY29kZSA9IGFkdmFuY2UoKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjb2RlID09PSBDSEFSX1JJR0hUX1BBUkVOVEhFU0VTKSB7XG4gICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoaXNHbG9iID09PSB0cnVlKSB7XG4gICAgICBmaW5pc2hlZCA9IHRydWU7XG5cbiAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGlmIChvcHRzLm5vZXh0ID09PSB0cnVlKSB7XG4gICAgaXNFeHRnbG9iID0gZmFsc2U7XG4gICAgaXNHbG9iID0gZmFsc2U7XG4gIH1cblxuICBsZXQgYmFzZSA9IHN0cjtcbiAgbGV0IHByZWZpeCA9ICcnO1xuICBsZXQgZ2xvYiA9ICcnO1xuXG4gIGlmIChzdGFydCA+IDApIHtcbiAgICBwcmVmaXggPSBzdHIuc2xpY2UoMCwgc3RhcnQpO1xuICAgIHN0ciA9IHN0ci5zbGljZShzdGFydCk7XG4gICAgbGFzdEluZGV4IC09IHN0YXJ0O1xuICB9XG5cbiAgaWYgKGJhc2UgJiYgaXNHbG9iID09PSB0cnVlICYmIGxhc3RJbmRleCA+IDApIHtcbiAgICBiYXNlID0gc3RyLnNsaWNlKDAsIGxhc3RJbmRleCk7XG4gICAgZ2xvYiA9IHN0ci5zbGljZShsYXN0SW5kZXgpO1xuICB9IGVsc2UgaWYgKGlzR2xvYiA9PT0gdHJ1ZSkge1xuICAgIGJhc2UgPSAnJztcbiAgICBnbG9iID0gc3RyO1xuICB9IGVsc2Uge1xuICAgIGJhc2UgPSBzdHI7XG4gIH1cblxuICBpZiAoYmFzZSAmJiBiYXNlICE9PSAnJyAmJiBiYXNlICE9PSAnLycgJiYgYmFzZSAhPT0gc3RyKSB7XG4gICAgaWYgKGlzUGF0aFNlcGFyYXRvcihiYXNlLmNoYXJDb2RlQXQoYmFzZS5sZW5ndGggLSAxKSkpIHtcbiAgICAgIGJhc2UgPSBiYXNlLnNsaWNlKDAsIC0xKTtcbiAgICB9XG4gIH1cblxuICBpZiAob3B0cy51bmVzY2FwZSA9PT0gdHJ1ZSkge1xuICAgIGlmIChnbG9iKSBnbG9iID0gdXRpbHMucmVtb3ZlQmFja3NsYXNoZXMoZ2xvYik7XG5cbiAgICBpZiAoYmFzZSAmJiBiYWNrc2xhc2hlcyA9PT0gdHJ1ZSkge1xuICAgICAgYmFzZSA9IHV0aWxzLnJlbW92ZUJhY2tzbGFzaGVzKGJhc2UpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHN0YXRlID0ge1xuICAgIHByZWZpeCxcbiAgICBpbnB1dCxcbiAgICBzdGFydCxcbiAgICBiYXNlLFxuICAgIGdsb2IsXG4gICAgaXNCcmFjZSxcbiAgICBpc0JyYWNrZXQsXG4gICAgaXNHbG9iLFxuICAgIGlzRXh0Z2xvYixcbiAgICBpc0dsb2JzdGFyLFxuICAgIG5lZ2F0ZWRcbiAgfTtcblxuICBpZiAob3B0cy50b2tlbnMgPT09IHRydWUpIHtcbiAgICBzdGF0ZS5tYXhEZXB0aCA9IDA7XG4gICAgaWYgKCFpc1BhdGhTZXBhcmF0b3IoY29kZSkpIHtcbiAgICAgIHRva2Vucy5wdXNoKHRva2VuKTtcbiAgICB9XG4gICAgc3RhdGUudG9rZW5zID0gdG9rZW5zO1xuICB9XG5cbiAgaWYgKG9wdHMucGFydHMgPT09IHRydWUgfHwgb3B0cy50b2tlbnMgPT09IHRydWUpIHtcbiAgICBsZXQgcHJldkluZGV4O1xuXG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgc2xhc2hlcy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICBjb25zdCBuID0gcHJldkluZGV4ID8gcHJldkluZGV4ICsgMSA6IHN0YXJ0O1xuICAgICAgY29uc3QgaSA9IHNsYXNoZXNbaWR4XTtcbiAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQuc2xpY2UobiwgaSk7XG4gICAgICBpZiAob3B0cy50b2tlbnMpIHtcbiAgICAgICAgaWYgKGlkeCA9PT0gMCAmJiBzdGFydCAhPT0gMCkge1xuICAgICAgICAgIHRva2Vuc1tpZHhdLmlzUHJlZml4ID0gdHJ1ZTtcbiAgICAgICAgICB0b2tlbnNbaWR4XS52YWx1ZSA9IHByZWZpeDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0b2tlbnNbaWR4XS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGRlcHRoKHRva2Vuc1tpZHhdKTtcbiAgICAgICAgc3RhdGUubWF4RGVwdGggKz0gdG9rZW5zW2lkeF0uZGVwdGg7XG4gICAgICB9XG4gICAgICBpZiAoaWR4ICE9PSAwIHx8IHZhbHVlICE9PSAnJykge1xuICAgICAgICBwYXJ0cy5wdXNoKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHByZXZJbmRleCA9IGk7XG4gICAgfVxuXG4gICAgaWYgKHByZXZJbmRleCAmJiBwcmV2SW5kZXggKyAxIDwgaW5wdXQubGVuZ3RoKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGlucHV0LnNsaWNlKHByZXZJbmRleCArIDEpO1xuICAgICAgcGFydHMucHVzaCh2YWx1ZSk7XG5cbiAgICAgIGlmIChvcHRzLnRva2Vucykge1xuICAgICAgICB0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIGRlcHRoKHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV0pO1xuICAgICAgICBzdGF0ZS5tYXhEZXB0aCArPSB0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdLmRlcHRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRlLnNsYXNoZXMgPSBzbGFzaGVzO1xuICAgIHN0YXRlLnBhcnRzID0gcGFydHM7XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNjYW47XG4iLCIndXNlIHN0cmljdCc7XG5cbmNvbnN0IGNvbnN0YW50cyA9IHJlcXVpcmUoJy4vY29uc3RhbnRzJyk7XG5jb25zdCB1dGlscyA9IHJlcXVpcmUoJy4vdXRpbHMnKTtcblxuLyoqXG4gKiBDb25zdGFudHNcbiAqL1xuXG5jb25zdCB7XG4gIE1BWF9MRU5HVEgsXG4gIFBPU0lYX1JFR0VYX1NPVVJDRSxcbiAgUkVHRVhfTk9OX1NQRUNJQUxfQ0hBUlMsXG4gIFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRixcbiAgUkVQTEFDRU1FTlRTXG59ID0gY29uc3RhbnRzO1xuXG4vKipcbiAqIEhlbHBlcnNcbiAqL1xuXG5jb25zdCBleHBhbmRSYW5nZSA9IChhcmdzLCBvcHRpb25zKSA9PiB7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5leHBhbmRSYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBvcHRpb25zLmV4cGFuZFJhbmdlKC4uLmFyZ3MsIG9wdGlvbnMpO1xuICB9XG5cbiAgYXJncy5zb3J0KCk7XG4gIGNvbnN0IHZhbHVlID0gYFske2FyZ3Muam9pbignLScpfV1gO1xuXG4gIHRyeSB7XG4gICAgLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldyAqL1xuICAgIG5ldyBSZWdFeHAodmFsdWUpO1xuICB9IGNhdGNoIChleCkge1xuICAgIHJldHVybiBhcmdzLm1hcCh2ID0+IHV0aWxzLmVzY2FwZVJlZ2V4KHYpKS5qb2luKCcuLicpO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufTtcblxuLyoqXG4gKiBDcmVhdGUgdGhlIG1lc3NhZ2UgZm9yIGEgc3ludGF4IGVycm9yXG4gKi9cblxuY29uc3Qgc3ludGF4RXJyb3IgPSAodHlwZSwgY2hhcikgPT4ge1xuICByZXR1cm4gYE1pc3NpbmcgJHt0eXBlfTogXCIke2NoYXJ9XCIgLSB1c2UgXCJcXFxcXFxcXCR7Y2hhcn1cIiB0byBtYXRjaCBsaXRlcmFsIGNoYXJhY3RlcnNgO1xufTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgZ2l2ZW4gaW5wdXQgc3RyaW5nLlxuICogQHBhcmFtIHtTdHJpbmd9IGlucHV0XG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogQHJldHVybiB7T2JqZWN0fVxuICovXG5cbmNvbnN0IHBhcnNlID0gKGlucHV0LCBvcHRpb25zKSA9PiB7XG4gIGlmICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYSBzdHJpbmcnKTtcbiAgfVxuXG4gIGlucHV0ID0gUkVQTEFDRU1FTlRTW2lucHV0XSB8fCBpbnB1dDtcblxuICBjb25zdCBvcHRzID0geyAuLi5vcHRpb25zIH07XG4gIGNvbnN0IG1heCA9IHR5cGVvZiBvcHRzLm1heExlbmd0aCA9PT0gJ251bWJlcicgPyBNYXRoLm1pbihNQVhfTEVOR1RILCBvcHRzLm1heExlbmd0aCkgOiBNQVhfTEVOR1RIO1xuXG4gIGxldCBsZW4gPSBpbnB1dC5sZW5ndGg7XG4gIGlmIChsZW4gPiBtYXgpIHtcbiAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoYElucHV0IGxlbmd0aDogJHtsZW59LCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBsZW5ndGg6ICR7bWF4fWApO1xuICB9XG5cbiAgY29uc3QgYm9zID0geyB0eXBlOiAnYm9zJywgdmFsdWU6ICcnLCBvdXRwdXQ6IG9wdHMucHJlcGVuZCB8fCAnJyB9O1xuICBjb25zdCB0b2tlbnMgPSBbYm9zXTtcblxuICBjb25zdCBjYXB0dXJlID0gb3B0cy5jYXB0dXJlID8gJycgOiAnPzonO1xuICBjb25zdCB3aW4zMiA9IHV0aWxzLmlzV2luZG93cyhvcHRpb25zKTtcblxuICAvLyBjcmVhdGUgY29uc3RhbnRzIGJhc2VkIG9uIHBsYXRmb3JtLCBmb3Igd2luZG93cyBvciBwb3NpeFxuICBjb25zdCBQTEFURk9STV9DSEFSUyA9IGNvbnN0YW50cy5nbG9iQ2hhcnMod2luMzIpO1xuICBjb25zdCBFWFRHTE9CX0NIQVJTID0gY29uc3RhbnRzLmV4dGdsb2JDaGFycyhQTEFURk9STV9DSEFSUyk7XG5cbiAgY29uc3Qge1xuICAgIERPVF9MSVRFUkFMLFxuICAgIFBMVVNfTElURVJBTCxcbiAgICBTTEFTSF9MSVRFUkFMLFxuICAgIE9ORV9DSEFSLFxuICAgIERPVFNfU0xBU0gsXG4gICAgTk9fRE9ULFxuICAgIE5PX0RPVF9TTEFTSCxcbiAgICBOT19ET1RTX1NMQVNILFxuICAgIFFNQVJLLFxuICAgIFFNQVJLX05PX0RPVCxcbiAgICBTVEFSLFxuICAgIFNUQVJUX0FOQ0hPUlxuICB9ID0gUExBVEZPUk1fQ0hBUlM7XG5cbiAgY29uc3QgZ2xvYnN0YXIgPSAob3B0cykgPT4ge1xuICAgIHJldHVybiBgKCR7Y2FwdHVyZX0oPzooPyEke1NUQVJUX0FOQ0hPUn0ke29wdHMuZG90ID8gRE9UU19TTEFTSCA6IERPVF9MSVRFUkFMfSkuKSo/KWA7XG4gIH07XG5cbiAgY29uc3Qgbm9kb3QgPSBvcHRzLmRvdCA/ICcnIDogTk9fRE9UO1xuICBjb25zdCBxbWFya05vRG90ID0gb3B0cy5kb3QgPyBRTUFSSyA6IFFNQVJLX05PX0RPVDtcbiAgbGV0IHN0YXIgPSBvcHRzLmJhc2ggPT09IHRydWUgPyBnbG9ic3RhcihvcHRzKSA6IFNUQVI7XG5cbiAgaWYgKG9wdHMuY2FwdHVyZSkge1xuICAgIHN0YXIgPSBgKCR7c3Rhcn0pYDtcbiAgfVxuXG4gIC8vIG1pbmltYXRjaCBvcHRpb25zIHN1cHBvcnRcbiAgaWYgKHR5cGVvZiBvcHRzLm5vZXh0ID09PSAnYm9vbGVhbicpIHtcbiAgICBvcHRzLm5vZXh0Z2xvYiA9IG9wdHMubm9leHQ7XG4gIH1cblxuICBjb25zdCBzdGF0ZSA9IHtcbiAgICBpbnB1dCxcbiAgICBpbmRleDogLTEsXG4gICAgc3RhcnQ6IDAsXG4gICAgZG90OiBvcHRzLmRvdCA9PT0gdHJ1ZSxcbiAgICBjb25zdW1lZDogJycsXG4gICAgb3V0cHV0OiAnJyxcbiAgICBwcmVmaXg6ICcnLFxuICAgIGJhY2t0cmFjazogZmFsc2UsXG4gICAgbmVnYXRlZDogZmFsc2UsXG4gICAgYnJhY2tldHM6IDAsXG4gICAgYnJhY2VzOiAwLFxuICAgIHBhcmVuczogMCxcbiAgICBxdW90ZXM6IDAsXG4gICAgZ2xvYnN0YXI6IGZhbHNlLFxuICAgIHRva2Vuc1xuICB9O1xuXG4gIGlucHV0ID0gdXRpbHMucmVtb3ZlUHJlZml4KGlucHV0LCBzdGF0ZSk7XG4gIGxlbiA9IGlucHV0Lmxlbmd0aDtcblxuICBjb25zdCBleHRnbG9icyA9IFtdO1xuICBjb25zdCBicmFjZXMgPSBbXTtcbiAgY29uc3Qgc3RhY2sgPSBbXTtcbiAgbGV0IHByZXYgPSBib3M7XG4gIGxldCB2YWx1ZTtcblxuICAvKipcbiAgICogVG9rZW5pemluZyBoZWxwZXJzXG4gICAqL1xuXG4gIGNvbnN0IGVvcyA9ICgpID0+IHN0YXRlLmluZGV4ID09PSBsZW4gLSAxO1xuICBjb25zdCBwZWVrID0gc3RhdGUucGVlayA9IChuID0gMSkgPT4gaW5wdXRbc3RhdGUuaW5kZXggKyBuXTtcbiAgY29uc3QgYWR2YW5jZSA9IHN0YXRlLmFkdmFuY2UgPSAoKSA9PiBpbnB1dFsrK3N0YXRlLmluZGV4XTtcbiAgY29uc3QgcmVtYWluaW5nID0gKCkgPT4gaW5wdXQuc2xpY2Uoc3RhdGUuaW5kZXggKyAxKTtcbiAgY29uc3QgY29uc3VtZSA9ICh2YWx1ZSA9ICcnLCBudW0gPSAwKSA9PiB7XG4gICAgc3RhdGUuY29uc3VtZWQgKz0gdmFsdWU7XG4gICAgc3RhdGUuaW5kZXggKz0gbnVtO1xuICB9O1xuICBjb25zdCBhcHBlbmQgPSB0b2tlbiA9PiB7XG4gICAgc3RhdGUub3V0cHV0ICs9IHRva2VuLm91dHB1dCAhPSBudWxsID8gdG9rZW4ub3V0cHV0IDogdG9rZW4udmFsdWU7XG4gICAgY29uc3VtZSh0b2tlbi52YWx1ZSk7XG4gIH07XG5cbiAgY29uc3QgbmVnYXRlID0gKCkgPT4ge1xuICAgIGxldCBjb3VudCA9IDE7XG5cbiAgICB3aGlsZSAocGVlaygpID09PSAnIScgJiYgKHBlZWsoMikgIT09ICcoJyB8fCBwZWVrKDMpID09PSAnPycpKSB7XG4gICAgICBhZHZhbmNlKCk7XG4gICAgICBzdGF0ZS5zdGFydCsrO1xuICAgICAgY291bnQrKztcbiAgICB9XG5cbiAgICBpZiAoY291bnQgJSAyID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgc3RhdGUubmVnYXRlZCA9IHRydWU7XG4gICAgc3RhdGUuc3RhcnQrKztcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcblxuICBjb25zdCBpbmNyZW1lbnQgPSB0eXBlID0+IHtcbiAgICBzdGF0ZVt0eXBlXSsrO1xuICAgIHN0YWNrLnB1c2godHlwZSk7XG4gIH07XG5cbiAgY29uc3QgZGVjcmVtZW50ID0gdHlwZSA9PiB7XG4gICAgc3RhdGVbdHlwZV0tLTtcbiAgICBzdGFjay5wb3AoKTtcbiAgfTtcblxuICAvKipcbiAgICogUHVzaCB0b2tlbnMgb250byB0aGUgdG9rZW5zIGFycmF5LiBUaGlzIGhlbHBlciBzcGVlZHMgdXBcbiAgICogdG9rZW5pemluZyBieSAxKSBoZWxwaW5nIHVzIGF2b2lkIGJhY2t0cmFja2luZyBhcyBtdWNoIGFzIHBvc3NpYmxlLFxuICAgKiBhbmQgMikgaGVscGluZyB1cyBhdm9pZCBjcmVhdGluZyBleHRyYSB0b2tlbnMgd2hlbiBjb25zZWN1dGl2ZVxuICAgKiBjaGFyYWN0ZXJzIGFyZSBwbGFpbiB0ZXh0LiBUaGlzIGltcHJvdmVzIHBlcmZvcm1hbmNlIGFuZCBzaW1wbGlmaWVzXG4gICAqIGxvb2tiZWhpbmRzLlxuICAgKi9cblxuICBjb25zdCBwdXNoID0gdG9rID0+IHtcbiAgICBpZiAocHJldi50eXBlID09PSAnZ2xvYnN0YXInKSB7XG4gICAgICBjb25zdCBpc0JyYWNlID0gc3RhdGUuYnJhY2VzID4gMCAmJiAodG9rLnR5cGUgPT09ICdjb21tYScgfHwgdG9rLnR5cGUgPT09ICdicmFjZScpO1xuICAgICAgY29uc3QgaXNFeHRnbG9iID0gdG9rLmV4dGdsb2IgPT09IHRydWUgfHwgKGV4dGdsb2JzLmxlbmd0aCAmJiAodG9rLnR5cGUgPT09ICdwaXBlJyB8fCB0b2sudHlwZSA9PT0gJ3BhcmVuJykpO1xuXG4gICAgICBpZiAodG9rLnR5cGUgIT09ICdzbGFzaCcgJiYgdG9rLnR5cGUgIT09ICdwYXJlbicgJiYgIWlzQnJhY2UgJiYgIWlzRXh0Z2xvYikge1xuICAgICAgICBzdGF0ZS5vdXRwdXQgPSBzdGF0ZS5vdXRwdXQuc2xpY2UoMCwgLXByZXYub3V0cHV0Lmxlbmd0aCk7XG4gICAgICAgIHByZXYudHlwZSA9ICdzdGFyJztcbiAgICAgICAgcHJldi52YWx1ZSA9ICcqJztcbiAgICAgICAgcHJldi5vdXRwdXQgPSBzdGFyO1xuICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJldi5vdXRwdXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV4dGdsb2JzLmxlbmd0aCAmJiB0b2sudHlwZSAhPT0gJ3BhcmVuJyAmJiAhRVhUR0xPQl9DSEFSU1t0b2sudmFsdWVdKSB7XG4gICAgICBleHRnbG9ic1tleHRnbG9icy5sZW5ndGggLSAxXS5pbm5lciArPSB0b2sudmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHRvay52YWx1ZSB8fCB0b2sub3V0cHV0KSBhcHBlbmQodG9rKTtcbiAgICBpZiAocHJldiAmJiBwcmV2LnR5cGUgPT09ICd0ZXh0JyAmJiB0b2sudHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICBwcmV2LnZhbHVlICs9IHRvay52YWx1ZTtcbiAgICAgIHByZXYub3V0cHV0ID0gKHByZXYub3V0cHV0IHx8ICcnKSArIHRvay52YWx1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0b2sucHJldiA9IHByZXY7XG4gICAgdG9rZW5zLnB1c2godG9rKTtcbiAgICBwcmV2ID0gdG9rO1xuICB9O1xuXG4gIGNvbnN0IGV4dGdsb2JPcGVuID0gKHR5cGUsIHZhbHVlKSA9PiB7XG4gICAgY29uc3QgdG9rZW4gPSB7IC4uLkVYVEdMT0JfQ0hBUlNbdmFsdWVdLCBjb25kaXRpb25zOiAxLCBpbm5lcjogJycgfTtcblxuICAgIHRva2VuLnByZXYgPSBwcmV2O1xuICAgIHRva2VuLnBhcmVucyA9IHN0YXRlLnBhcmVucztcbiAgICB0b2tlbi5vdXRwdXQgPSBzdGF0ZS5vdXRwdXQ7XG4gICAgY29uc3Qgb3V0cHV0ID0gKG9wdHMuY2FwdHVyZSA/ICcoJyA6ICcnKSArIHRva2VuLm9wZW47XG5cbiAgICBpbmNyZW1lbnQoJ3BhcmVucycpO1xuICAgIHB1c2goeyB0eXBlLCB2YWx1ZSwgb3V0cHV0OiBzdGF0ZS5vdXRwdXQgPyAnJyA6IE9ORV9DSEFSIH0pO1xuICAgIHB1c2goeyB0eXBlOiAncGFyZW4nLCBleHRnbG9iOiB0cnVlLCB2YWx1ZTogYWR2YW5jZSgpLCBvdXRwdXQgfSk7XG4gICAgZXh0Z2xvYnMucHVzaCh0b2tlbik7XG4gIH07XG5cbiAgY29uc3QgZXh0Z2xvYkNsb3NlID0gdG9rZW4gPT4ge1xuICAgIGxldCBvdXRwdXQgPSB0b2tlbi5jbG9zZSArIChvcHRzLmNhcHR1cmUgPyAnKScgOiAnJyk7XG5cbiAgICBpZiAodG9rZW4udHlwZSA9PT0gJ25lZ2F0ZScpIHtcbiAgICAgIGxldCBleHRnbG9iU3RhciA9IHN0YXI7XG5cbiAgICAgIGlmICh0b2tlbi5pbm5lciAmJiB0b2tlbi5pbm5lci5sZW5ndGggPiAxICYmIHRva2VuLmlubmVyLmluY2x1ZGVzKCcvJykpIHtcbiAgICAgICAgZXh0Z2xvYlN0YXIgPSBnbG9ic3RhcihvcHRzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGV4dGdsb2JTdGFyICE9PSBzdGFyIHx8IGVvcygpIHx8IC9eXFwpKyQvLnRlc3QocmVtYWluaW5nKCkpKSB7XG4gICAgICAgIG91dHB1dCA9IHRva2VuLmNsb3NlID0gYCkkKSkke2V4dGdsb2JTdGFyfWA7XG4gICAgICB9XG5cbiAgICAgIGlmICh0b2tlbi5wcmV2LnR5cGUgPT09ICdib3MnICYmIGVvcygpKSB7XG4gICAgICAgIHN0YXRlLm5lZ2F0ZWRFeHRnbG9iID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdXNoKHsgdHlwZTogJ3BhcmVuJywgZXh0Z2xvYjogdHJ1ZSwgdmFsdWUsIG91dHB1dCB9KTtcbiAgICBkZWNyZW1lbnQoJ3BhcmVucycpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBGYXN0IHBhdGhzXG4gICAqL1xuXG4gIGlmIChvcHRzLmZhc3RwYXRocyAhPT0gZmFsc2UgJiYgIS8oXlsqIV18Wy8oKVtcXF17fVwiXSkvLnRlc3QoaW5wdXQpKSB7XG4gICAgbGV0IGJhY2tzbGFzaGVzID0gZmFsc2U7XG5cbiAgICBsZXQgb3V0cHV0ID0gaW5wdXQucmVwbGFjZShSRUdFWF9TUEVDSUFMX0NIQVJTX0JBQ0tSRUYsIChtLCBlc2MsIGNoYXJzLCBmaXJzdCwgcmVzdCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChmaXJzdCA9PT0gJ1xcXFwnKSB7XG4gICAgICAgIGJhY2tzbGFzaGVzID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgICB9XG5cbiAgICAgIGlmIChmaXJzdCA9PT0gJz8nKSB7XG4gICAgICAgIGlmIChlc2MpIHtcbiAgICAgICAgICByZXR1cm4gZXNjICsgZmlyc3QgKyAocmVzdCA/IFFNQVJLLnJlcGVhdChyZXN0Lmxlbmd0aCkgOiAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHFtYXJrTm9Eb3QgKyAocmVzdCA/IFFNQVJLLnJlcGVhdChyZXN0Lmxlbmd0aCkgOiAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFFNQVJLLnJlcGVhdChjaGFycy5sZW5ndGgpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmlyc3QgPT09ICcuJykge1xuICAgICAgICByZXR1cm4gRE9UX0xJVEVSQUwucmVwZWF0KGNoYXJzLmxlbmd0aCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChmaXJzdCA9PT0gJyonKSB7XG4gICAgICAgIGlmIChlc2MpIHtcbiAgICAgICAgICByZXR1cm4gZXNjICsgZmlyc3QgKyAocmVzdCA/IHN0YXIgOiAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0YXI7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXNjID8gbSA6IGBcXFxcJHttfWA7XG4gICAgfSk7XG5cbiAgICBpZiAoYmFja3NsYXNoZXMgPT09IHRydWUpIHtcbiAgICAgIGlmIChvcHRzLnVuZXNjYXBlID09PSB0cnVlKSB7XG4gICAgICAgIG91dHB1dCA9IG91dHB1dC5yZXBsYWNlKC9cXFxcL2csICcnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dHB1dCA9IG91dHB1dC5yZXBsYWNlKC9cXFxcKy9nLCBtID0+IHtcbiAgICAgICAgICByZXR1cm4gbS5sZW5ndGggJSAyID09PSAwID8gJ1xcXFxcXFxcJyA6IChtID8gJ1xcXFwnIDogJycpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3V0cHV0ID09PSBpbnB1dCAmJiBvcHRzLmNvbnRhaW5zID09PSB0cnVlKSB7XG4gICAgICBzdGF0ZS5vdXRwdXQgPSBpbnB1dDtcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG5cbiAgICBzdGF0ZS5vdXRwdXQgPSB1dGlscy53cmFwT3V0cHV0KG91dHB1dCwgc3RhdGUsIG9wdGlvbnMpO1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2tlbml6ZSBpbnB1dCB1bnRpbCB3ZSByZWFjaCBlbmQtb2Ytc3RyaW5nXG4gICAqL1xuXG4gIHdoaWxlICghZW9zKCkpIHtcbiAgICB2YWx1ZSA9IGFkdmFuY2UoKTtcblxuICAgIGlmICh2YWx1ZSA9PT0gJ1xcdTAwMDAnKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFc2NhcGVkIGNoYXJhY3RlcnNcbiAgICAgKi9cblxuICAgIGlmICh2YWx1ZSA9PT0gJ1xcXFwnKSB7XG4gICAgICBjb25zdCBuZXh0ID0gcGVlaygpO1xuXG4gICAgICBpZiAobmV4dCA9PT0gJy8nICYmIG9wdHMuYmFzaCAhPT0gdHJ1ZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5leHQgPT09ICcuJyB8fCBuZXh0ID09PSAnOycpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghbmV4dCkge1xuICAgICAgICB2YWx1ZSArPSAnXFxcXCc7XG4gICAgICAgIHB1c2goeyB0eXBlOiAndGV4dCcsIHZhbHVlIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gY29sbGFwc2Ugc2xhc2hlcyB0byByZWR1Y2UgcG90ZW50aWFsIGZvciBleHBsb2l0c1xuICAgICAgY29uc3QgbWF0Y2ggPSAvXlxcXFwrLy5leGVjKHJlbWFpbmluZygpKTtcbiAgICAgIGxldCBzbGFzaGVzID0gMDtcblxuICAgICAgaWYgKG1hdGNoICYmIG1hdGNoWzBdLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgc2xhc2hlcyA9IG1hdGNoWzBdLmxlbmd0aDtcbiAgICAgICAgc3RhdGUuaW5kZXggKz0gc2xhc2hlcztcbiAgICAgICAgaWYgKHNsYXNoZXMgJSAyICE9PSAwKSB7XG4gICAgICAgICAgdmFsdWUgKz0gJ1xcXFwnO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRzLnVuZXNjYXBlID09PSB0cnVlKSB7XG4gICAgICAgIHZhbHVlID0gYWR2YW5jZSgpIHx8ICcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgKz0gYWR2YW5jZSgpIHx8ICcnO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGUuYnJhY2tldHMgPT09IDApIHtcbiAgICAgICAgcHVzaCh7IHR5cGU6ICd0ZXh0JywgdmFsdWUgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIHdlJ3JlIGluc2lkZSBhIHJlZ2V4IGNoYXJhY3RlciBjbGFzcywgY29udGludWVcbiAgICAgKiB1bnRpbCB3ZSByZWFjaCB0aGUgY2xvc2luZyBicmFja2V0LlxuICAgICAqL1xuXG4gICAgaWYgKHN0YXRlLmJyYWNrZXRzID4gMCAmJiAodmFsdWUgIT09ICddJyB8fCBwcmV2LnZhbHVlID09PSAnWycgfHwgcHJldi52YWx1ZSA9PT0gJ1teJykpIHtcbiAgICAgIGlmIChvcHRzLnBvc2l4ICE9PSBmYWxzZSAmJiB2YWx1ZSA9PT0gJzonKSB7XG4gICAgICAgIGNvbnN0IGlubmVyID0gcHJldi52YWx1ZS5zbGljZSgxKTtcbiAgICAgICAgaWYgKGlubmVyLmluY2x1ZGVzKCdbJykpIHtcbiAgICAgICAgICBwcmV2LnBvc2l4ID0gdHJ1ZTtcblxuICAgICAgICAgIGlmIChpbm5lci5pbmNsdWRlcygnOicpKSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSBwcmV2LnZhbHVlLmxhc3RJbmRleE9mKCdbJyk7XG4gICAgICAgICAgICBjb25zdCBwcmUgPSBwcmV2LnZhbHVlLnNsaWNlKDAsIGlkeCk7XG4gICAgICAgICAgICBjb25zdCByZXN0ID0gcHJldi52YWx1ZS5zbGljZShpZHggKyAyKTtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l4ID0gUE9TSVhfUkVHRVhfU09VUkNFW3Jlc3RdO1xuICAgICAgICAgICAgaWYgKHBvc2l4KSB7XG4gICAgICAgICAgICAgIHByZXYudmFsdWUgPSBwcmUgKyBwb3NpeDtcbiAgICAgICAgICAgICAgc3RhdGUuYmFja3RyYWNrID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYWR2YW5jZSgpO1xuXG4gICAgICAgICAgICAgIGlmICghYm9zLm91dHB1dCAmJiB0b2tlbnMuaW5kZXhPZihwcmV2KSA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGJvcy5vdXRwdXQgPSBPTkVfQ0hBUjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCh2YWx1ZSA9PT0gJ1snICYmIHBlZWsoKSAhPT0gJzonKSB8fCAodmFsdWUgPT09ICctJyAmJiBwZWVrKCkgPT09ICddJykpIHtcbiAgICAgICAgdmFsdWUgPSBgXFxcXCR7dmFsdWV9YDtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlID09PSAnXScgJiYgKHByZXYudmFsdWUgPT09ICdbJyB8fCBwcmV2LnZhbHVlID09PSAnW14nKSkge1xuICAgICAgICB2YWx1ZSA9IGBcXFxcJHt2YWx1ZX1gO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0cy5wb3NpeCA9PT0gdHJ1ZSAmJiB2YWx1ZSA9PT0gJyEnICYmIHByZXYudmFsdWUgPT09ICdbJykge1xuICAgICAgICB2YWx1ZSA9ICdeJztcbiAgICAgIH1cblxuICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTtcbiAgICAgIGFwcGVuZCh7IHZhbHVlIH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWYgd2UncmUgaW5zaWRlIGEgcXVvdGVkIHN0cmluZywgY29udGludWVcbiAgICAgKiB1bnRpbCB3ZSByZWFjaCB0aGUgY2xvc2luZyBkb3VibGUgcXVvdGUuXG4gICAgICovXG5cbiAgICBpZiAoc3RhdGUucXVvdGVzID09PSAxICYmIHZhbHVlICE9PSAnXCInKSB7XG4gICAgICB2YWx1ZSA9IHV0aWxzLmVzY2FwZVJlZ2V4KHZhbHVlKTtcbiAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7XG4gICAgICBhcHBlbmQoeyB2YWx1ZSB9KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERvdWJsZSBxdW90ZXNcbiAgICAgKi9cblxuICAgIGlmICh2YWx1ZSA9PT0gJ1wiJykge1xuICAgICAgc3RhdGUucXVvdGVzID0gc3RhdGUucXVvdGVzID09PSAxID8gMCA6IDE7XG4gICAgICBpZiAob3B0cy5rZWVwUXVvdGVzID09PSB0cnVlKSB7XG4gICAgICAgIHB1c2goeyB0eXBlOiAndGV4dCcsIHZhbHVlIH0pO1xuICAgICAgfVxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFyZW50aGVzZXNcbiAgICAgKi9cblxuICAgIGlmICh2YWx1ZSA9PT0gJygnKSB7XG4gICAgICBpbmNyZW1lbnQoJ3BhcmVucycpO1xuICAgICAgcHVzaCh7IHR5cGU6ICdwYXJlbicsIHZhbHVlIH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlID09PSAnKScpIHtcbiAgICAgIGlmIChzdGF0ZS5wYXJlbnMgPT09IDAgJiYgb3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoJ29wZW5pbmcnLCAnKCcpKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXh0Z2xvYiA9IGV4dGdsb2JzW2V4dGdsb2JzLmxlbmd0aCAtIDFdO1xuICAgICAgaWYgKGV4dGdsb2IgJiYgc3RhdGUucGFyZW5zID09PSBleHRnbG9iLnBhcmVucyArIDEpIHtcbiAgICAgICAgZXh0Z2xvYkNsb3NlKGV4dGdsb2JzLnBvcCgpKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHB1c2goeyB0eXBlOiAncGFyZW4nLCB2YWx1ZSwgb3V0cHV0OiBzdGF0ZS5wYXJlbnMgPyAnKScgOiAnXFxcXCknIH0pO1xuICAgICAgZGVjcmVtZW50KCdwYXJlbnMnKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNxdWFyZSBicmFja2V0c1xuICAgICAqL1xuXG4gICAgaWYgKHZhbHVlID09PSAnWycpIHtcbiAgICAgIGlmIChvcHRzLm5vYnJhY2tldCA9PT0gdHJ1ZSB8fCAhcmVtYWluaW5nKCkuaW5jbHVkZXMoJ10nKSkge1xuICAgICAgICBpZiAob3B0cy5ub2JyYWNrZXQgIT09IHRydWUgJiYgb3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcignY2xvc2luZycsICddJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsdWUgPSBgXFxcXCR7dmFsdWV9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluY3JlbWVudCgnYnJhY2tldHMnKTtcbiAgICAgIH1cblxuICAgICAgcHVzaCh7IHR5cGU6ICdicmFja2V0JywgdmFsdWUgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPT09ICddJykge1xuICAgICAgaWYgKG9wdHMubm9icmFja2V0ID09PSB0cnVlIHx8IChwcmV2ICYmIHByZXYudHlwZSA9PT0gJ2JyYWNrZXQnICYmIHByZXYudmFsdWUubGVuZ3RoID09PSAxKSkge1xuICAgICAgICBwdXNoKHsgdHlwZTogJ3RleHQnLCB2YWx1ZSwgb3V0cHV0OiBgXFxcXCR7dmFsdWV9YCB9KTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZS5icmFja2V0cyA9PT0gMCkge1xuICAgICAgICBpZiAob3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcignb3BlbmluZycsICdbJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVzaCh7IHR5cGU6ICd0ZXh0JywgdmFsdWUsIG91dHB1dDogYFxcXFwke3ZhbHVlfWAgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBkZWNyZW1lbnQoJ2JyYWNrZXRzJyk7XG5cbiAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IHByZXYudmFsdWUuc2xpY2UoMSk7XG4gICAgICBpZiAocHJldi5wb3NpeCAhPT0gdHJ1ZSAmJiBwcmV2VmFsdWVbMF0gPT09ICdeJyAmJiAhcHJldlZhbHVlLmluY2x1ZGVzKCcvJykpIHtcbiAgICAgICAgdmFsdWUgPSBgLyR7dmFsdWV9YDtcbiAgICAgIH1cblxuICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTtcbiAgICAgIGFwcGVuZCh7IHZhbHVlIH0pO1xuXG4gICAgICAvLyB3aGVuIGxpdGVyYWwgYnJhY2tldHMgYXJlIGV4cGxpY2l0bHkgZGlzYWJsZWRcbiAgICAgIC8vIGFzc3VtZSB3ZSBzaG91bGQgbWF0Y2ggd2l0aCBhIHJlZ2V4IGNoYXJhY3RlciBjbGFzc1xuICAgICAgaWYgKG9wdHMubGl0ZXJhbEJyYWNrZXRzID09PSBmYWxzZSB8fCB1dGlscy5oYXNSZWdleENoYXJzKHByZXZWYWx1ZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVzY2FwZWQgPSB1dGlscy5lc2NhcGVSZWdleChwcmV2LnZhbHVlKTtcbiAgICAgIHN0YXRlLm91dHB1dCA9IHN0YXRlLm91dHB1dC5zbGljZSgwLCAtcHJldi52YWx1ZS5sZW5ndGgpO1xuXG4gICAgICAvLyB3aGVuIGxpdGVyYWwgYnJhY2tldHMgYXJlIGV4cGxpY2l0bHkgZW5hYmxlZFxuICAgICAgLy8gYXNzdW1lIHdlIHNob3VsZCBlc2NhcGUgdGhlIGJyYWNrZXRzIHRvIG1hdGNoIGxpdGVyYWwgY2hhcmFjdGVyc1xuICAgICAgaWYgKG9wdHMubGl0ZXJhbEJyYWNrZXRzID09PSB0cnVlKSB7XG4gICAgICAgIHN0YXRlLm91dHB1dCArPSBlc2NhcGVkO1xuICAgICAgICBwcmV2LnZhbHVlID0gZXNjYXBlZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIHdoZW4gdGhlIHVzZXIgc3BlY2lmaWVzIG5vdGhpbmcsIHRyeSB0byBtYXRjaCBib3RoXG4gICAgICBwcmV2LnZhbHVlID0gYCgke2NhcHR1cmV9JHtlc2NhcGVkfXwke3ByZXYudmFsdWV9KWA7XG4gICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJldi52YWx1ZTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJyYWNlc1xuICAgICAqL1xuXG4gICAgaWYgKHZhbHVlID09PSAneycgJiYgb3B0cy5ub2JyYWNlICE9PSB0cnVlKSB7XG4gICAgICBpbmNyZW1lbnQoJ2JyYWNlcycpO1xuXG4gICAgICBjb25zdCBvcGVuID0ge1xuICAgICAgICB0eXBlOiAnYnJhY2UnLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgb3V0cHV0OiAnKCcsXG4gICAgICAgIG91dHB1dEluZGV4OiBzdGF0ZS5vdXRwdXQubGVuZ3RoLFxuICAgICAgICB0b2tlbnNJbmRleDogc3RhdGUudG9rZW5zLmxlbmd0aFxuICAgICAgfTtcblxuICAgICAgYnJhY2VzLnB1c2gob3Blbik7XG4gICAgICBwdXNoKG9wZW4pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlID09PSAnfScpIHtcbiAgICAgIGNvbnN0IGJyYWNlID0gYnJhY2VzW2JyYWNlcy5sZW5ndGggLSAxXTtcblxuICAgICAgaWYgKG9wdHMubm9icmFjZSA9PT0gdHJ1ZSB8fCAhYnJhY2UpIHtcbiAgICAgICAgcHVzaCh7IHR5cGU6ICd0ZXh0JywgdmFsdWUsIG91dHB1dDogdmFsdWUgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBsZXQgb3V0cHV0ID0gJyknO1xuXG4gICAgICBpZiAoYnJhY2UuZG90cyA9PT0gdHJ1ZSkge1xuICAgICAgICBjb25zdCBhcnIgPSB0b2tlbnMuc2xpY2UoKTtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gYXJyLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgdG9rZW5zLnBvcCgpO1xuICAgICAgICAgIGlmIChhcnJbaV0udHlwZSA9PT0gJ2JyYWNlJykge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChhcnJbaV0udHlwZSAhPT0gJ2RvdHMnKSB7XG4gICAgICAgICAgICByYW5nZS51bnNoaWZ0KGFycltpXS52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgb3V0cHV0ID0gZXhwYW5kUmFuZ2UocmFuZ2UsIG9wdHMpO1xuICAgICAgICBzdGF0ZS5iYWNrdHJhY2sgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoYnJhY2UuY29tbWEgIT09IHRydWUgJiYgYnJhY2UuZG90cyAhPT0gdHJ1ZSkge1xuICAgICAgICBjb25zdCBvdXQgPSBzdGF0ZS5vdXRwdXQuc2xpY2UoMCwgYnJhY2Uub3V0cHV0SW5kZXgpO1xuICAgICAgICBjb25zdCB0b2tzID0gc3RhdGUudG9rZW5zLnNsaWNlKGJyYWNlLnRva2Vuc0luZGV4KTtcbiAgICAgICAgYnJhY2UudmFsdWUgPSBicmFjZS5vdXRwdXQgPSAnXFxcXHsnO1xuICAgICAgICB2YWx1ZSA9IG91dHB1dCA9ICdcXFxcfSc7XG4gICAgICAgIHN0YXRlLm91dHB1dCA9IG91dDtcbiAgICAgICAgZm9yIChjb25zdCB0IG9mIHRva3MpIHtcbiAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gKHQub3V0cHV0IHx8IHQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHB1c2goeyB0eXBlOiAnYnJhY2UnLCB2YWx1ZSwgb3V0cHV0IH0pO1xuICAgICAgZGVjcmVtZW50KCdicmFjZXMnKTtcbiAgICAgIGJyYWNlcy5wb3AoKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBpcGVzXG4gICAgICovXG5cbiAgICBpZiAodmFsdWUgPT09ICd8Jykge1xuICAgICAgaWYgKGV4dGdsb2JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZXh0Z2xvYnNbZXh0Z2xvYnMubGVuZ3RoIC0gMV0uY29uZGl0aW9ucysrO1xuICAgICAgfVxuICAgICAgcHVzaCh7IHR5cGU6ICd0ZXh0JywgdmFsdWUgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21tYXNcbiAgICAgKi9cblxuICAgIGlmICh2YWx1ZSA9PT0gJywnKSB7XG4gICAgICBsZXQgb3V0cHV0ID0gdmFsdWU7XG5cbiAgICAgIGNvbnN0IGJyYWNlID0gYnJhY2VzW2JyYWNlcy5sZW5ndGggLSAxXTtcbiAgICAgIGlmIChicmFjZSAmJiBzdGFja1tzdGFjay5sZW5ndGggLSAxXSA9PT0gJ2JyYWNlcycpIHtcbiAgICAgICAgYnJhY2UuY29tbWEgPSB0cnVlO1xuICAgICAgICBvdXRwdXQgPSAnfCc7XG4gICAgICB9XG5cbiAgICAgIHB1c2goeyB0eXBlOiAnY29tbWEnLCB2YWx1ZSwgb3V0cHV0IH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2xhc2hlc1xuICAgICAqL1xuXG4gICAgaWYgKHZhbHVlID09PSAnLycpIHtcbiAgICAgIC8vIGlmIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGdsb2IgaXMgXCIuL1wiLCBhZHZhbmNlIHRoZSBzdGFydFxuICAgICAgLy8gdG8gdGhlIGN1cnJlbnQgaW5kZXgsIGFuZCBkb24ndCBhZGQgdGhlIFwiLi9cIiBjaGFyYWN0ZXJzXG4gICAgICAvLyB0byB0aGUgc3RhdGUuIFRoaXMgZ3JlYXRseSBzaW1wbGlmaWVzIGxvb2tiZWhpbmRzIHdoZW5cbiAgICAgIC8vIGNoZWNraW5nIGZvciBCT1MgY2hhcmFjdGVycyBsaWtlIFwiIVwiIGFuZCBcIi5cIiAobm90IFwiLi9cIilcbiAgICAgIGlmIChwcmV2LnR5cGUgPT09ICdkb3QnICYmIHN0YXRlLmluZGV4ID09PSBzdGF0ZS5zdGFydCArIDEpIHtcbiAgICAgICAgc3RhdGUuc3RhcnQgPSBzdGF0ZS5pbmRleCArIDE7XG4gICAgICAgIHN0YXRlLmNvbnN1bWVkID0gJyc7XG4gICAgICAgIHN0YXRlLm91dHB1dCA9ICcnO1xuICAgICAgICB0b2tlbnMucG9wKCk7XG4gICAgICAgIHByZXYgPSBib3M7IC8vIHJlc2V0IFwicHJldlwiIHRvIHRoZSBmaXJzdCB0b2tlblxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgcHVzaCh7IHR5cGU6ICdzbGFzaCcsIHZhbHVlLCBvdXRwdXQ6IFNMQVNIX0xJVEVSQUwgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEb3RzXG4gICAgICovXG5cbiAgICBpZiAodmFsdWUgPT09ICcuJykge1xuICAgICAgaWYgKHN0YXRlLmJyYWNlcyA+IDAgJiYgcHJldi50eXBlID09PSAnZG90Jykge1xuICAgICAgICBpZiAocHJldi52YWx1ZSA9PT0gJy4nKSBwcmV2Lm91dHB1dCA9IERPVF9MSVRFUkFMO1xuICAgICAgICBjb25zdCBicmFjZSA9IGJyYWNlc1ticmFjZXMubGVuZ3RoIC0gMV07XG4gICAgICAgIHByZXYudHlwZSA9ICdkb3RzJztcbiAgICAgICAgcHJldi5vdXRwdXQgKz0gdmFsdWU7XG4gICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7XG4gICAgICAgIGJyYWNlLmRvdHMgPSB0cnVlO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKChzdGF0ZS5icmFjZXMgKyBzdGF0ZS5wYXJlbnMpID09PSAwICYmIHByZXYudHlwZSAhPT0gJ2JvcycgJiYgcHJldi50eXBlICE9PSAnc2xhc2gnKSB7XG4gICAgICAgIHB1c2goeyB0eXBlOiAndGV4dCcsIHZhbHVlLCBvdXRwdXQ6IERPVF9MSVRFUkFMIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgcHVzaCh7IHR5cGU6ICdkb3QnLCB2YWx1ZSwgb3V0cHV0OiBET1RfTElURVJBTCB9KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFF1ZXN0aW9uIG1hcmtzXG4gICAgICovXG5cbiAgICBpZiAodmFsdWUgPT09ICc/Jykge1xuICAgICAgY29uc3QgaXNHcm91cCA9IHByZXYgJiYgcHJldi52YWx1ZSA9PT0gJygnO1xuICAgICAgaWYgKCFpc0dyb3VwICYmIG9wdHMubm9leHRnbG9iICE9PSB0cnVlICYmIHBlZWsoKSA9PT0gJygnICYmIHBlZWsoMikgIT09ICc/Jykge1xuICAgICAgICBleHRnbG9iT3BlbigncW1hcmsnLCB2YWx1ZSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJldiAmJiBwcmV2LnR5cGUgPT09ICdwYXJlbicpIHtcbiAgICAgICAgY29uc3QgbmV4dCA9IHBlZWsoKTtcbiAgICAgICAgbGV0IG91dHB1dCA9IHZhbHVlO1xuXG4gICAgICAgIGlmIChuZXh0ID09PSAnPCcgJiYgIXV0aWxzLnN1cHBvcnRzTG9va2JlaGluZHMoKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm9kZS5qcyB2MTAgb3IgaGlnaGVyIGlzIHJlcXVpcmVkIGZvciByZWdleCBsb29rYmVoaW5kcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKChwcmV2LnZhbHVlID09PSAnKCcgJiYgIS9bIT08Ol0vLnRlc3QobmV4dCkpIHx8IChuZXh0ID09PSAnPCcgJiYgIS88KFshPV18XFx3Kz4pLy50ZXN0KHJlbWFpbmluZygpKSkpIHtcbiAgICAgICAgICBvdXRwdXQgPSBgXFxcXCR7dmFsdWV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1c2goeyB0eXBlOiAndGV4dCcsIHZhbHVlLCBvdXRwdXQgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0cy5kb3QgIT09IHRydWUgJiYgKHByZXYudHlwZSA9PT0gJ3NsYXNoJyB8fCBwcmV2LnR5cGUgPT09ICdib3MnKSkge1xuICAgICAgICBwdXNoKHsgdHlwZTogJ3FtYXJrJywgdmFsdWUsIG91dHB1dDogUU1BUktfTk9fRE9UIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgcHVzaCh7IHR5cGU6ICdxbWFyaycsIHZhbHVlLCBvdXRwdXQ6IFFNQVJLIH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhjbGFtYXRpb25cbiAgICAgKi9cblxuICAgIGlmICh2YWx1ZSA9PT0gJyEnKSB7XG4gICAgICBpZiAob3B0cy5ub2V4dGdsb2IgIT09IHRydWUgJiYgcGVlaygpID09PSAnKCcpIHtcbiAgICAgICAgaWYgKHBlZWsoMikgIT09ICc/JyB8fCAhL1shPTw6XS8udGVzdChwZWVrKDMpKSkge1xuICAgICAgICAgIGV4dGdsb2JPcGVuKCduZWdhdGUnLCB2YWx1ZSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG9wdHMubm9uZWdhdGUgIT09IHRydWUgJiYgc3RhdGUuaW5kZXggPT09IDApIHtcbiAgICAgICAgbmVnYXRlKCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBsdXNcbiAgICAgKi9cblxuICAgIGlmICh2YWx1ZSA9PT0gJysnKSB7XG4gICAgICBpZiAob3B0cy5ub2V4dGdsb2IgIT09IHRydWUgJiYgcGVlaygpID09PSAnKCcgJiYgcGVlaygyKSAhPT0gJz8nKSB7XG4gICAgICAgIGV4dGdsb2JPcGVuKCdwbHVzJywgdmFsdWUpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKChwcmV2ICYmIHByZXYudmFsdWUgPT09ICcoJykgfHwgb3B0cy5yZWdleCA9PT0gZmFsc2UpIHtcbiAgICAgICAgcHVzaCh7IHR5cGU6ICdwbHVzJywgdmFsdWUsIG91dHB1dDogUExVU19MSVRFUkFMIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKChwcmV2ICYmIChwcmV2LnR5cGUgPT09ICdicmFja2V0JyB8fCBwcmV2LnR5cGUgPT09ICdwYXJlbicgfHwgcHJldi50eXBlID09PSAnYnJhY2UnKSkgfHwgc3RhdGUucGFyZW5zID4gMCkge1xuICAgICAgICBwdXNoKHsgdHlwZTogJ3BsdXMnLCB2YWx1ZSB9KTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHB1c2goeyB0eXBlOiAncGx1cycsIHZhbHVlOiBQTFVTX0xJVEVSQUwgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQbGFpbiB0ZXh0XG4gICAgICovXG5cbiAgICBpZiAodmFsdWUgPT09ICdAJykge1xuICAgICAgaWYgKG9wdHMubm9leHRnbG9iICE9PSB0cnVlICYmIHBlZWsoKSA9PT0gJygnICYmIHBlZWsoMikgIT09ICc/Jykge1xuICAgICAgICBwdXNoKHsgdHlwZTogJ2F0JywgZXh0Z2xvYjogdHJ1ZSwgdmFsdWUsIG91dHB1dDogJycgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBwdXNoKHsgdHlwZTogJ3RleHQnLCB2YWx1ZSB9KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBsYWluIHRleHRcbiAgICAgKi9cblxuICAgIGlmICh2YWx1ZSAhPT0gJyonKSB7XG4gICAgICBpZiAodmFsdWUgPT09ICckJyB8fCB2YWx1ZSA9PT0gJ14nKSB7XG4gICAgICAgIHZhbHVlID0gYFxcXFwke3ZhbHVlfWA7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1hdGNoID0gUkVHRVhfTk9OX1NQRUNJQUxfQ0hBUlMuZXhlYyhyZW1haW5pbmcoKSk7XG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgdmFsdWUgKz0gbWF0Y2hbMF07XG4gICAgICAgIHN0YXRlLmluZGV4ICs9IG1hdGNoWzBdLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgcHVzaCh7IHR5cGU6ICd0ZXh0JywgdmFsdWUgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdGFyc1xuICAgICAqL1xuXG4gICAgaWYgKHByZXYgJiYgKHByZXYudHlwZSA9PT0gJ2dsb2JzdGFyJyB8fCBwcmV2LnN0YXIgPT09IHRydWUpKSB7XG4gICAgICBwcmV2LnR5cGUgPSAnc3Rhcic7XG4gICAgICBwcmV2LnN0YXIgPSB0cnVlO1xuICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTtcbiAgICAgIHByZXYub3V0cHV0ID0gc3RhcjtcbiAgICAgIHN0YXRlLmJhY2t0cmFjayA9IHRydWU7XG4gICAgICBzdGF0ZS5nbG9ic3RhciA9IHRydWU7XG4gICAgICBjb25zdW1lKHZhbHVlKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGxldCByZXN0ID0gcmVtYWluaW5nKCk7XG4gICAgaWYgKG9wdHMubm9leHRnbG9iICE9PSB0cnVlICYmIC9eXFwoW14/XS8udGVzdChyZXN0KSkge1xuICAgICAgZXh0Z2xvYk9wZW4oJ3N0YXInLCB2YWx1ZSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAocHJldi50eXBlID09PSAnc3RhcicpIHtcbiAgICAgIGlmIChvcHRzLm5vZ2xvYnN0YXIgPT09IHRydWUpIHtcbiAgICAgICAgY29uc3VtZSh2YWx1ZSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwcmlvciA9IHByZXYucHJldjtcbiAgICAgIGNvbnN0IGJlZm9yZSA9IHByaW9yLnByZXY7XG4gICAgICBjb25zdCBpc1N0YXJ0ID0gcHJpb3IudHlwZSA9PT0gJ3NsYXNoJyB8fCBwcmlvci50eXBlID09PSAnYm9zJztcbiAgICAgIGNvbnN0IGFmdGVyU3RhciA9IGJlZm9yZSAmJiAoYmVmb3JlLnR5cGUgPT09ICdzdGFyJyB8fCBiZWZvcmUudHlwZSA9PT0gJ2dsb2JzdGFyJyk7XG5cbiAgICAgIGlmIChvcHRzLmJhc2ggPT09IHRydWUgJiYgKCFpc1N0YXJ0IHx8IChyZXN0WzBdICYmIHJlc3RbMF0gIT09ICcvJykpKSB7XG4gICAgICAgIHB1c2goeyB0eXBlOiAnc3RhcicsIHZhbHVlLCBvdXRwdXQ6ICcnIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaXNCcmFjZSA9IHN0YXRlLmJyYWNlcyA+IDAgJiYgKHByaW9yLnR5cGUgPT09ICdjb21tYScgfHwgcHJpb3IudHlwZSA9PT0gJ2JyYWNlJyk7XG4gICAgICBjb25zdCBpc0V4dGdsb2IgPSBleHRnbG9icy5sZW5ndGggJiYgKHByaW9yLnR5cGUgPT09ICdwaXBlJyB8fCBwcmlvci50eXBlID09PSAncGFyZW4nKTtcbiAgICAgIGlmICghaXNTdGFydCAmJiBwcmlvci50eXBlICE9PSAncGFyZW4nICYmICFpc0JyYWNlICYmICFpc0V4dGdsb2IpIHtcbiAgICAgICAgcHVzaCh7IHR5cGU6ICdzdGFyJywgdmFsdWUsIG91dHB1dDogJycgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBzdHJpcCBjb25zZWN1dGl2ZSBgLyoqL2BcbiAgICAgIHdoaWxlIChyZXN0LnNsaWNlKDAsIDMpID09PSAnLyoqJykge1xuICAgICAgICBjb25zdCBhZnRlciA9IGlucHV0W3N0YXRlLmluZGV4ICsgNF07XG4gICAgICAgIGlmIChhZnRlciAmJiBhZnRlciAhPT0gJy8nKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdCA9IHJlc3Quc2xpY2UoMyk7XG4gICAgICAgIGNvbnN1bWUoJy8qKicsIDMpO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJpb3IudHlwZSA9PT0gJ2JvcycgJiYgZW9zKCkpIHtcbiAgICAgICAgcHJldi50eXBlID0gJ2dsb2JzdGFyJztcbiAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTtcbiAgICAgICAgcHJldi5vdXRwdXQgPSBnbG9ic3RhcihvcHRzKTtcbiAgICAgICAgc3RhdGUub3V0cHV0ID0gcHJldi5vdXRwdXQ7XG4gICAgICAgIHN0YXRlLmdsb2JzdGFyID0gdHJ1ZTtcbiAgICAgICAgY29uc3VtZSh2YWx1ZSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJpb3IudHlwZSA9PT0gJ3NsYXNoJyAmJiBwcmlvci5wcmV2LnR5cGUgIT09ICdib3MnICYmICFhZnRlclN0YXIgJiYgZW9zKCkpIHtcbiAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC0ocHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQpLmxlbmd0aCk7XG4gICAgICAgIHByaW9yLm91dHB1dCA9IGAoPzoke3ByaW9yLm91dHB1dH1gO1xuXG4gICAgICAgIHByZXYudHlwZSA9ICdnbG9ic3Rhcic7XG4gICAgICAgIHByZXYub3V0cHV0ID0gZ2xvYnN0YXIob3B0cykgKyAob3B0cy5zdHJpY3RTbGFzaGVzID8gJyknIDogJ3wkKScpO1xuICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlO1xuICAgICAgICBzdGF0ZS5nbG9ic3RhciA9IHRydWU7XG4gICAgICAgIHN0YXRlLm91dHB1dCArPSBwcmlvci5vdXRwdXQgKyBwcmV2Lm91dHB1dDtcbiAgICAgICAgY29uc3VtZSh2YWx1ZSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJpb3IudHlwZSA9PT0gJ3NsYXNoJyAmJiBwcmlvci5wcmV2LnR5cGUgIT09ICdib3MnICYmIHJlc3RbMF0gPT09ICcvJykge1xuICAgICAgICBjb25zdCBlbmQgPSByZXN0WzFdICE9PSB2b2lkIDAgPyAnfCQnIDogJyc7XG5cbiAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC0ocHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQpLmxlbmd0aCk7XG4gICAgICAgIHByaW9yLm91dHB1dCA9IGAoPzoke3ByaW9yLm91dHB1dH1gO1xuXG4gICAgICAgIHByZXYudHlwZSA9ICdnbG9ic3Rhcic7XG4gICAgICAgIHByZXYub3V0cHV0ID0gYCR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfXwke1NMQVNIX0xJVEVSQUx9JHtlbmR9KWA7XG4gICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7XG5cbiAgICAgICAgc3RhdGUub3V0cHV0ICs9IHByaW9yLm91dHB1dCArIHByZXYub3V0cHV0O1xuICAgICAgICBzdGF0ZS5nbG9ic3RhciA9IHRydWU7XG5cbiAgICAgICAgY29uc3VtZSh2YWx1ZSArIGFkdmFuY2UoKSk7XG5cbiAgICAgICAgcHVzaCh7IHR5cGU6ICdzbGFzaCcsIHZhbHVlOiAnLycsIG91dHB1dDogJycgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJpb3IudHlwZSA9PT0gJ2JvcycgJiYgcmVzdFswXSA9PT0gJy8nKSB7XG4gICAgICAgIHByZXYudHlwZSA9ICdnbG9ic3Rhcic7XG4gICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7XG4gICAgICAgIHByZXYub3V0cHV0ID0gYCg/Ol58JHtTTEFTSF9MSVRFUkFMfXwke2dsb2JzdGFyKG9wdHMpfSR7U0xBU0hfTElURVJBTH0pYDtcbiAgICAgICAgc3RhdGUub3V0cHV0ID0gcHJldi5vdXRwdXQ7XG4gICAgICAgIHN0YXRlLmdsb2JzdGFyID0gdHJ1ZTtcbiAgICAgICAgY29uc3VtZSh2YWx1ZSArIGFkdmFuY2UoKSk7XG4gICAgICAgIHB1c2goeyB0eXBlOiAnc2xhc2gnLCB2YWx1ZTogJy8nLCBvdXRwdXQ6ICcnIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gcmVtb3ZlIHNpbmdsZSBzdGFyIGZyb20gb3V0cHV0XG4gICAgICBzdGF0ZS5vdXRwdXQgPSBzdGF0ZS5vdXRwdXQuc2xpY2UoMCwgLXByZXYub3V0cHV0Lmxlbmd0aCk7XG5cbiAgICAgIC8vIHJlc2V0IHByZXZpb3VzIHRva2VuIHRvIGdsb2JzdGFyXG4gICAgICBwcmV2LnR5cGUgPSAnZ2xvYnN0YXInO1xuICAgICAgcHJldi5vdXRwdXQgPSBnbG9ic3RhcihvcHRzKTtcbiAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7XG5cbiAgICAgIC8vIHJlc2V0IG91dHB1dCB3aXRoIGdsb2JzdGFyXG4gICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJldi5vdXRwdXQ7XG4gICAgICBzdGF0ZS5nbG9ic3RhciA9IHRydWU7XG4gICAgICBjb25zdW1lKHZhbHVlKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHRva2VuID0geyB0eXBlOiAnc3RhcicsIHZhbHVlLCBvdXRwdXQ6IHN0YXIgfTtcblxuICAgIGlmIChvcHRzLmJhc2ggPT09IHRydWUpIHtcbiAgICAgIHRva2VuLm91dHB1dCA9ICcuKj8nO1xuICAgICAgaWYgKHByZXYudHlwZSA9PT0gJ2JvcycgfHwgcHJldi50eXBlID09PSAnc2xhc2gnKSB7XG4gICAgICAgIHRva2VuLm91dHB1dCA9IG5vZG90ICsgdG9rZW4ub3V0cHV0O1xuICAgICAgfVxuICAgICAgcHVzaCh0b2tlbik7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAocHJldiAmJiAocHJldi50eXBlID09PSAnYnJhY2tldCcgfHwgcHJldi50eXBlID09PSAncGFyZW4nKSAmJiBvcHRzLnJlZ2V4ID09PSB0cnVlKSB7XG4gICAgICB0b2tlbi5vdXRwdXQgPSB2YWx1ZTtcbiAgICAgIHB1c2godG9rZW4pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLmluZGV4ID09PSBzdGF0ZS5zdGFydCB8fCBwcmV2LnR5cGUgPT09ICdzbGFzaCcgfHwgcHJldi50eXBlID09PSAnZG90Jykge1xuICAgICAgaWYgKHByZXYudHlwZSA9PT0gJ2RvdCcpIHtcbiAgICAgICAgc3RhdGUub3V0cHV0ICs9IE5PX0RPVF9TTEFTSDtcbiAgICAgICAgcHJldi5vdXRwdXQgKz0gTk9fRE9UX1NMQVNIO1xuXG4gICAgICB9IGVsc2UgaWYgKG9wdHMuZG90ID09PSB0cnVlKSB7XG4gICAgICAgIHN0YXRlLm91dHB1dCArPSBOT19ET1RTX1NMQVNIO1xuICAgICAgICBwcmV2Lm91dHB1dCArPSBOT19ET1RTX1NMQVNIO1xuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gbm9kb3Q7XG4gICAgICAgIHByZXYub3V0cHV0ICs9IG5vZG90O1xuICAgICAgfVxuXG4gICAgICBpZiAocGVlaygpICE9PSAnKicpIHtcbiAgICAgICAgc3RhdGUub3V0cHV0ICs9IE9ORV9DSEFSO1xuICAgICAgICBwcmV2Lm91dHB1dCArPSBPTkVfQ0hBUjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdXNoKHRva2VuKTtcbiAgfVxuXG4gIHdoaWxlIChzdGF0ZS5icmFja2V0cyA+IDApIHtcbiAgICBpZiAob3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkgdGhyb3cgbmV3IFN5bnRheEVycm9yKHN5bnRheEVycm9yKCdjbG9zaW5nJywgJ10nKSk7XG4gICAgc3RhdGUub3V0cHV0ID0gdXRpbHMuZXNjYXBlTGFzdChzdGF0ZS5vdXRwdXQsICdbJyk7XG4gICAgZGVjcmVtZW50KCdicmFja2V0cycpO1xuICB9XG5cbiAgd2hpbGUgKHN0YXRlLnBhcmVucyA+IDApIHtcbiAgICBpZiAob3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkgdGhyb3cgbmV3IFN5bnRheEVycm9yKHN5bnRheEVycm9yKCdjbG9zaW5nJywgJyknKSk7XG4gICAgc3RhdGUub3V0cHV0ID0gdXRpbHMuZXNjYXBlTGFzdChzdGF0ZS5vdXRwdXQsICcoJyk7XG4gICAgZGVjcmVtZW50KCdwYXJlbnMnKTtcbiAgfVxuXG4gIHdoaWxlIChzdGF0ZS5icmFjZXMgPiAwKSB7XG4gICAgaWYgKG9wdHMuc3RyaWN0QnJhY2tldHMgPT09IHRydWUpIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcignY2xvc2luZycsICd9JykpO1xuICAgIHN0YXRlLm91dHB1dCA9IHV0aWxzLmVzY2FwZUxhc3Qoc3RhdGUub3V0cHV0LCAneycpO1xuICAgIGRlY3JlbWVudCgnYnJhY2VzJyk7XG4gIH1cblxuICBpZiAob3B0cy5zdHJpY3RTbGFzaGVzICE9PSB0cnVlICYmIChwcmV2LnR5cGUgPT09ICdzdGFyJyB8fCBwcmV2LnR5cGUgPT09ICdicmFja2V0JykpIHtcbiAgICBwdXNoKHsgdHlwZTogJ21heWJlX3NsYXNoJywgdmFsdWU6ICcnLCBvdXRwdXQ6IGAke1NMQVNIX0xJVEVSQUx9P2AgfSk7XG4gIH1cblxuICAvLyByZWJ1aWxkIHRoZSBvdXRwdXQgaWYgd2UgaGFkIHRvIGJhY2t0cmFjayBhdCBhbnkgcG9pbnRcbiAgaWYgKHN0YXRlLmJhY2t0cmFjayA9PT0gdHJ1ZSkge1xuICAgIHN0YXRlLm91dHB1dCA9ICcnO1xuXG4gICAgZm9yIChjb25zdCB0b2tlbiBvZiBzdGF0ZS50b2tlbnMpIHtcbiAgICAgIHN0YXRlLm91dHB1dCArPSB0b2tlbi5vdXRwdXQgIT0gbnVsbCA/IHRva2VuLm91dHB1dCA6IHRva2VuLnZhbHVlO1xuXG4gICAgICBpZiAodG9rZW4uc3VmZml4KSB7XG4gICAgICAgIHN0YXRlLm91dHB1dCArPSB0b2tlbi5zdWZmaXg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufTtcblxuLyoqXG4gKiBGYXN0IHBhdGhzIGZvciBjcmVhdGluZyByZWd1bGFyIGV4cHJlc3Npb25zIGZvciBjb21tb24gZ2xvYiBwYXR0ZXJucy5cbiAqIFRoaXMgY2FuIHNpZ25pZmljYW50bHkgc3BlZWQgdXAgcHJvY2Vzc2luZyBhbmQgaGFzIHZlcnkgbGl0dGxlIGRvd25zaWRlXG4gKiBpbXBhY3Qgd2hlbiBub25lIG9mIHRoZSBmYXN0IHBhdGhzIG1hdGNoLlxuICovXG5cbnBhcnNlLmZhc3RwYXRocyA9IChpbnB1dCwgb3B0aW9ucykgPT4ge1xuICBjb25zdCBvcHRzID0geyAuLi5vcHRpb25zIH07XG4gIGNvbnN0IG1heCA9IHR5cGVvZiBvcHRzLm1heExlbmd0aCA9PT0gJ251bWJlcicgPyBNYXRoLm1pbihNQVhfTEVOR1RILCBvcHRzLm1heExlbmd0aCkgOiBNQVhfTEVOR1RIO1xuICBjb25zdCBsZW4gPSBpbnB1dC5sZW5ndGg7XG4gIGlmIChsZW4gPiBtYXgpIHtcbiAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoYElucHV0IGxlbmd0aDogJHtsZW59LCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBsZW5ndGg6ICR7bWF4fWApO1xuICB9XG5cbiAgaW5wdXQgPSBSRVBMQUNFTUVOVFNbaW5wdXRdIHx8IGlucHV0O1xuICBjb25zdCB3aW4zMiA9IHV0aWxzLmlzV2luZG93cyhvcHRpb25zKTtcblxuICAvLyBjcmVhdGUgY29uc3RhbnRzIGJhc2VkIG9uIHBsYXRmb3JtLCBmb3Igd2luZG93cyBvciBwb3NpeFxuICBjb25zdCB7XG4gICAgRE9UX0xJVEVSQUwsXG4gICAgU0xBU0hfTElURVJBTCxcbiAgICBPTkVfQ0hBUixcbiAgICBET1RTX1NMQVNILFxuICAgIE5PX0RPVCxcbiAgICBOT19ET1RTLFxuICAgIE5PX0RPVFNfU0xBU0gsXG4gICAgU1RBUixcbiAgICBTVEFSVF9BTkNIT1JcbiAgfSA9IGNvbnN0YW50cy5nbG9iQ2hhcnMod2luMzIpO1xuXG4gIGNvbnN0IG5vZG90ID0gb3B0cy5kb3QgPyBOT19ET1RTIDogTk9fRE9UO1xuICBjb25zdCBzbGFzaERvdCA9IG9wdHMuZG90ID8gTk9fRE9UU19TTEFTSCA6IE5PX0RPVDtcbiAgY29uc3QgY2FwdHVyZSA9IG9wdHMuY2FwdHVyZSA/ICcnIDogJz86JztcbiAgY29uc3Qgc3RhdGUgPSB7IG5lZ2F0ZWQ6IGZhbHNlLCBwcmVmaXg6ICcnIH07XG4gIGxldCBzdGFyID0gb3B0cy5iYXNoID09PSB0cnVlID8gJy4qPycgOiBTVEFSO1xuXG4gIGlmIChvcHRzLmNhcHR1cmUpIHtcbiAgICBzdGFyID0gYCgke3N0YXJ9KWA7XG4gIH1cblxuICBjb25zdCBnbG9ic3RhciA9IChvcHRzKSA9PiB7XG4gICAgaWYgKG9wdHMubm9nbG9ic3RhciA9PT0gdHJ1ZSkgcmV0dXJuIHN0YXI7XG4gICAgcmV0dXJuIGAoJHtjYXB0dXJlfSg/Oig/ISR7U1RBUlRfQU5DSE9SfSR7b3B0cy5kb3QgPyBET1RTX1NMQVNIIDogRE9UX0xJVEVSQUx9KS4pKj8pYDtcbiAgfTtcblxuICBjb25zdCBjcmVhdGUgPSBzdHIgPT4ge1xuICAgIHN3aXRjaCAoc3RyKSB7XG4gICAgICBjYXNlICcqJzpcbiAgICAgICAgcmV0dXJuIGAke25vZG90fSR7T05FX0NIQVJ9JHtzdGFyfWA7XG5cbiAgICAgIGNhc2UgJy4qJzpcbiAgICAgICAgcmV0dXJuIGAke0RPVF9MSVRFUkFMfSR7T05FX0NIQVJ9JHtzdGFyfWA7XG5cbiAgICAgIGNhc2UgJyouKic6XG4gICAgICAgIHJldHVybiBgJHtub2RvdH0ke3N0YXJ9JHtET1RfTElURVJBTH0ke09ORV9DSEFSfSR7c3Rhcn1gO1xuXG4gICAgICBjYXNlICcqLyonOlxuICAgICAgICByZXR1cm4gYCR7bm9kb3R9JHtzdGFyfSR7U0xBU0hfTElURVJBTH0ke09ORV9DSEFSfSR7c2xhc2hEb3R9JHtzdGFyfWA7XG5cbiAgICAgIGNhc2UgJyoqJzpcbiAgICAgICAgcmV0dXJuIG5vZG90ICsgZ2xvYnN0YXIob3B0cyk7XG5cbiAgICAgIGNhc2UgJyoqLyonOlxuICAgICAgICByZXR1cm4gYCg/OiR7bm9kb3R9JHtnbG9ic3RhcihvcHRzKX0ke1NMQVNIX0xJVEVSQUx9KT8ke3NsYXNoRG90fSR7T05FX0NIQVJ9JHtzdGFyfWA7XG5cbiAgICAgIGNhc2UgJyoqLyouKic6XG4gICAgICAgIHJldHVybiBgKD86JHtub2RvdH0ke2dsb2JzdGFyKG9wdHMpfSR7U0xBU0hfTElURVJBTH0pPyR7c2xhc2hEb3R9JHtzdGFyfSR7RE9UX0xJVEVSQUx9JHtPTkVfQ0hBUn0ke3N0YXJ9YDtcblxuICAgICAgY2FzZSAnKiovLionOlxuICAgICAgICByZXR1cm4gYCg/OiR7bm9kb3R9JHtnbG9ic3RhcihvcHRzKX0ke1NMQVNIX0xJVEVSQUx9KT8ke0RPVF9MSVRFUkFMfSR7T05FX0NIQVJ9JHtzdGFyfWA7XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgbWF0Y2ggPSAvXiguKj8pXFwuKFxcdyspJC8uZXhlYyhzdHIpO1xuICAgICAgICBpZiAoIW1hdGNoKSByZXR1cm47XG5cbiAgICAgICAgY29uc3Qgc291cmNlID0gY3JlYXRlKG1hdGNoWzFdKTtcbiAgICAgICAgaWYgKCFzb3VyY2UpIHJldHVybjtcblxuICAgICAgICByZXR1cm4gc291cmNlICsgRE9UX0xJVEVSQUwgKyBtYXRjaFsyXTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb3V0cHV0ID0gdXRpbHMucmVtb3ZlUHJlZml4KGlucHV0LCBzdGF0ZSk7XG4gIGxldCBzb3VyY2UgPSBjcmVhdGUob3V0cHV0KTtcblxuICBpZiAoc291cmNlICYmIG9wdHMuc3RyaWN0U2xhc2hlcyAhPT0gdHJ1ZSkge1xuICAgIHNvdXJjZSArPSBgJHtTTEFTSF9MSVRFUkFMfT9gO1xuICB9XG5cbiAgcmV0dXJuIHNvdXJjZTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyc2U7XG4iLCIndXNlIHN0cmljdCc7XG5cbmNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5jb25zdCBzY2FuID0gcmVxdWlyZSgnLi9zY2FuJyk7XG5jb25zdCBwYXJzZSA9IHJlcXVpcmUoJy4vcGFyc2UnKTtcbmNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xuY29uc3QgY29uc3RhbnRzID0gcmVxdWlyZSgnLi9jb25zdGFudHMnKTtcbmNvbnN0IGlzT2JqZWN0ID0gdmFsID0+IHZhbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWwpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBtYXRjaGVyIGZ1bmN0aW9uIGZyb20gb25lIG9yIG1vcmUgZ2xvYiBwYXR0ZXJucy4gVGhlXG4gKiByZXR1cm5lZCBmdW5jdGlvbiB0YWtlcyBhIHN0cmluZyB0byBtYXRjaCBhcyBpdHMgZmlyc3QgYXJndW1lbnQsXG4gKiBhbmQgcmV0dXJucyB0cnVlIGlmIHRoZSBzdHJpbmcgaXMgYSBtYXRjaC4gVGhlIHJldHVybmVkIG1hdGNoZXJcbiAqIGZ1bmN0aW9uIGFsc28gdGFrZXMgYSBib29sZWFuIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdGhhdCwgd2hlbiB0cnVlLFxuICogcmV0dXJucyBhbiBvYmplY3Qgd2l0aCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBwaWNvbWF0Y2ggPSByZXF1aXJlKCdwaWNvbWF0Y2gnKTtcbiAqIC8vIHBpY29tYXRjaChnbG9iWywgb3B0aW9uc10pO1xuICpcbiAqIGNvbnN0IGlzTWF0Y2ggPSBwaWNvbWF0Y2goJyouISgqYSknKTtcbiAqIGNvbnNvbGUubG9nKGlzTWF0Y2goJ2EuYScpKTsgLy89PiBmYWxzZVxuICogY29uc29sZS5sb2coaXNNYXRjaCgnYS5iJykpOyAvLz0+IHRydWVcbiAqIGBgYFxuICogQG5hbWUgcGljb21hdGNoXG4gKiBAcGFyYW0ge1N0cmluZ3xBcnJheX0gYGdsb2JzYCBPbmUgb3IgbW9yZSBnbG9iIHBhdHRlcm5zLlxuICogQHBhcmFtIHtPYmplY3Q9fSBgb3B0aW9uc2BcbiAqIEByZXR1cm4ge0Z1bmN0aW9uPX0gUmV0dXJucyBhIG1hdGNoZXIgZnVuY3Rpb24uXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmNvbnN0IHBpY29tYXRjaCA9IChnbG9iLCBvcHRpb25zLCByZXR1cm5TdGF0ZSA9IGZhbHNlKSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KGdsb2IpKSB7XG4gICAgY29uc3QgZm5zID0gZ2xvYi5tYXAoaW5wdXQgPT4gcGljb21hdGNoKGlucHV0LCBvcHRpb25zLCByZXR1cm5TdGF0ZSkpO1xuICAgIGNvbnN0IGFycmF5TWF0Y2hlciA9IHN0ciA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGlzTWF0Y2ggb2YgZm5zKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gaXNNYXRjaChzdHIpO1xuICAgICAgICBpZiAoc3RhdGUpIHJldHVybiBzdGF0ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICAgIHJldHVybiBhcnJheU1hdGNoZXI7XG4gIH1cblxuICBjb25zdCBpc1N0YXRlID0gaXNPYmplY3QoZ2xvYikgJiYgZ2xvYi50b2tlbnMgJiYgZ2xvYi5pbnB1dDtcblxuICBpZiAoZ2xvYiA9PT0gJycgfHwgKHR5cGVvZiBnbG9iICE9PSAnc3RyaW5nJyAmJiAhaXNTdGF0ZSkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBwYXR0ZXJuIHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZycpO1xuICB9XG5cbiAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307XG4gIGNvbnN0IHBvc2l4ID0gdXRpbHMuaXNXaW5kb3dzKG9wdGlvbnMpO1xuICBjb25zdCByZWdleCA9IGlzU3RhdGVcbiAgICA/IHBpY29tYXRjaC5jb21waWxlUmUoZ2xvYiwgb3B0aW9ucylcbiAgICA6IHBpY29tYXRjaC5tYWtlUmUoZ2xvYiwgb3B0aW9ucywgZmFsc2UsIHRydWUpO1xuXG4gIGNvbnN0IHN0YXRlID0gcmVnZXguc3RhdGU7XG4gIGRlbGV0ZSByZWdleC5zdGF0ZTtcblxuICBsZXQgaXNJZ25vcmVkID0gKCkgPT4gZmFsc2U7XG4gIGlmIChvcHRzLmlnbm9yZSkge1xuICAgIGNvbnN0IGlnbm9yZU9wdHMgPSB7IC4uLm9wdGlvbnMsIGlnbm9yZTogbnVsbCwgb25NYXRjaDogbnVsbCwgb25SZXN1bHQ6IG51bGwgfTtcbiAgICBpc0lnbm9yZWQgPSBwaWNvbWF0Y2gob3B0cy5pZ25vcmUsIGlnbm9yZU9wdHMsIHJldHVyblN0YXRlKTtcbiAgfVxuXG4gIGNvbnN0IG1hdGNoZXIgPSAoaW5wdXQsIHJldHVybk9iamVjdCA9IGZhbHNlKSA9PiB7XG4gICAgY29uc3QgeyBpc01hdGNoLCBtYXRjaCwgb3V0cHV0IH0gPSBwaWNvbWF0Y2gudGVzdChpbnB1dCwgcmVnZXgsIG9wdGlvbnMsIHsgZ2xvYiwgcG9zaXggfSk7XG4gICAgY29uc3QgcmVzdWx0ID0geyBnbG9iLCBzdGF0ZSwgcmVnZXgsIHBvc2l4LCBpbnB1dCwgb3V0cHV0LCBtYXRjaCwgaXNNYXRjaCB9O1xuXG4gICAgaWYgKHR5cGVvZiBvcHRzLm9uUmVzdWx0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBvcHRzLm9uUmVzdWx0KHJlc3VsdCk7XG4gICAgfVxuXG4gICAgaWYgKGlzTWF0Y2ggPT09IGZhbHNlKSB7XG4gICAgICByZXN1bHQuaXNNYXRjaCA9IGZhbHNlO1xuICAgICAgcmV0dXJuIHJldHVybk9iamVjdCA/IHJlc3VsdCA6IGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChpc0lnbm9yZWQoaW5wdXQpKSB7XG4gICAgICBpZiAodHlwZW9mIG9wdHMub25JZ25vcmUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb3B0cy5vbklnbm9yZShyZXN1bHQpO1xuICAgICAgfVxuICAgICAgcmVzdWx0LmlzTWF0Y2ggPSBmYWxzZTtcbiAgICAgIHJldHVybiByZXR1cm5PYmplY3QgPyByZXN1bHQgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9wdHMub25NYXRjaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgb3B0cy5vbk1hdGNoKHJlc3VsdCk7XG4gICAgfVxuICAgIHJldHVybiByZXR1cm5PYmplY3QgPyByZXN1bHQgOiB0cnVlO1xuICB9O1xuXG4gIGlmIChyZXR1cm5TdGF0ZSkge1xuICAgIG1hdGNoZXIuc3RhdGUgPSBzdGF0ZTtcbiAgfVxuXG4gIHJldHVybiBtYXRjaGVyO1xufTtcblxuLyoqXG4gKiBUZXN0IGBpbnB1dGAgd2l0aCB0aGUgZ2l2ZW4gYHJlZ2V4YC4gVGhpcyBpcyB1c2VkIGJ5IHRoZSBtYWluXG4gKiBgcGljb21hdGNoKClgIGZ1bmN0aW9uIHRvIHRlc3QgdGhlIGlucHV0IHN0cmluZy5cbiAqXG4gKiBgYGBqc1xuICogY29uc3QgcGljb21hdGNoID0gcmVxdWlyZSgncGljb21hdGNoJyk7XG4gKiAvLyBwaWNvbWF0Y2gudGVzdChpbnB1dCwgcmVnZXhbLCBvcHRpb25zXSk7XG4gKlxuICogY29uc29sZS5sb2cocGljb21hdGNoLnRlc3QoJ2Zvby9iYXInLCAvXig/OihbXi9dKj8pXFwvKFteL10qPykpJC8pKTtcbiAqIC8vIHsgaXNNYXRjaDogdHJ1ZSwgbWF0Y2g6IFsgJ2Zvby8nLCAnZm9vJywgJ2JhcicgXSwgb3V0cHV0OiAnZm9vL2JhcicgfVxuICogYGBgXG4gKiBAcGFyYW0ge1N0cmluZ30gYGlucHV0YCBTdHJpbmcgdG8gdGVzdC5cbiAqIEBwYXJhbSB7UmVnRXhwfSBgcmVnZXhgXG4gKiBAcmV0dXJuIHtPYmplY3R9IFJldHVybnMgYW4gb2JqZWN0IHdpdGggbWF0Y2hpbmcgaW5mby5cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucGljb21hdGNoLnRlc3QgPSAoaW5wdXQsIHJlZ2V4LCBvcHRpb25zLCB7IGdsb2IsIHBvc2l4IH0gPSB7fSkgPT4ge1xuICBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGlucHV0IHRvIGJlIGEgc3RyaW5nJyk7XG4gIH1cblxuICBpZiAoaW5wdXQgPT09ICcnKSB7XG4gICAgcmV0dXJuIHsgaXNNYXRjaDogZmFsc2UsIG91dHB1dDogJycgfTtcbiAgfVxuXG4gIGNvbnN0IG9wdHMgPSBvcHRpb25zIHx8IHt9O1xuICBjb25zdCBmb3JtYXQgPSBvcHRzLmZvcm1hdCB8fCAocG9zaXggPyB1dGlscy50b1Bvc2l4U2xhc2hlcyA6IG51bGwpO1xuICBsZXQgbWF0Y2ggPSBpbnB1dCA9PT0gZ2xvYjtcbiAgbGV0IG91dHB1dCA9IChtYXRjaCAmJiBmb3JtYXQpID8gZm9ybWF0KGlucHV0KSA6IGlucHV0O1xuXG4gIGlmIChtYXRjaCA9PT0gZmFsc2UpIHtcbiAgICBvdXRwdXQgPSBmb3JtYXQgPyBmb3JtYXQoaW5wdXQpIDogaW5wdXQ7XG4gICAgbWF0Y2ggPSBvdXRwdXQgPT09IGdsb2I7XG4gIH1cblxuICBpZiAobWF0Y2ggPT09IGZhbHNlIHx8IG9wdHMuY2FwdHVyZSA9PT0gdHJ1ZSkge1xuICAgIGlmIChvcHRzLm1hdGNoQmFzZSA9PT0gdHJ1ZSB8fCBvcHRzLmJhc2VuYW1lID09PSB0cnVlKSB7XG4gICAgICBtYXRjaCA9IHBpY29tYXRjaC5tYXRjaEJhc2UoaW5wdXQsIHJlZ2V4LCBvcHRpb25zLCBwb3NpeCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1hdGNoID0gcmVnZXguZXhlYyhvdXRwdXQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IGlzTWF0Y2g6IEJvb2xlYW4obWF0Y2gpLCBtYXRjaCwgb3V0cHV0IH07XG59O1xuXG4vKipcbiAqIE1hdGNoIHRoZSBiYXNlbmFtZSBvZiBhIGZpbGVwYXRoLlxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBwaWNvbWF0Y2ggPSByZXF1aXJlKCdwaWNvbWF0Y2gnKTtcbiAqIC8vIHBpY29tYXRjaC5tYXRjaEJhc2UoaW5wdXQsIGdsb2JbLCBvcHRpb25zXSk7XG4gKiBjb25zb2xlLmxvZyhwaWNvbWF0Y2gubWF0Y2hCYXNlKCdmb28vYmFyLmpzJywgJyouanMnKTsgLy8gdHJ1ZVxuICogYGBgXG4gKiBAcGFyYW0ge1N0cmluZ30gYGlucHV0YCBTdHJpbmcgdG8gdGVzdC5cbiAqIEBwYXJhbSB7UmVnRXhwfFN0cmluZ30gYGdsb2JgIEdsb2IgcGF0dGVybiBvciByZWdleCBjcmVhdGVkIGJ5IFsubWFrZVJlXSgjbWFrZVJlKS5cbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnBpY29tYXRjaC5tYXRjaEJhc2UgPSAoaW5wdXQsIGdsb2IsIG9wdGlvbnMsIHBvc2l4ID0gdXRpbHMuaXNXaW5kb3dzKG9wdGlvbnMpKSA9PiB7XG4gIGNvbnN0IHJlZ2V4ID0gZ2xvYiBpbnN0YW5jZW9mIFJlZ0V4cCA/IGdsb2IgOiBwaWNvbWF0Y2gubWFrZVJlKGdsb2IsIG9wdGlvbnMpO1xuICByZXR1cm4gcmVnZXgudGVzdChwYXRoLmJhc2VuYW1lKGlucHV0KSk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiAqKmFueSoqIG9mIHRoZSBnaXZlbiBnbG9iIGBwYXR0ZXJuc2AgbWF0Y2ggdGhlIHNwZWNpZmllZCBgc3RyaW5nYC5cbiAqXG4gKiBgYGBqc1xuICogY29uc3QgcGljb21hdGNoID0gcmVxdWlyZSgncGljb21hdGNoJyk7XG4gKiAvLyBwaWNvbWF0Y2guaXNNYXRjaChzdHJpbmcsIHBhdHRlcm5zWywgb3B0aW9uc10pO1xuICpcbiAqIGNvbnNvbGUubG9nKHBpY29tYXRjaC5pc01hdGNoKCdhLmEnLCBbJ2IuKicsICcqLmEnXSkpOyAvLz0+IHRydWVcbiAqIGNvbnNvbGUubG9nKHBpY29tYXRjaC5pc01hdGNoKCdhLmEnLCAnYi4qJykpOyAvLz0+IGZhbHNlXG4gKiBgYGBcbiAqIEBwYXJhbSB7U3RyaW5nfEFycmF5fSBzdHIgVGhlIHN0cmluZyB0byB0ZXN0LlxuICogQHBhcmFtIHtTdHJpbmd8QXJyYXl9IHBhdHRlcm5zIE9uZSBvciBtb3JlIGdsb2IgcGF0dGVybnMgdG8gdXNlIGZvciBtYXRjaGluZy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc10gU2VlIGF2YWlsYWJsZSBbb3B0aW9uc10oI29wdGlvbnMpLlxuICogQHJldHVybiB7Qm9vbGVhbn0gUmV0dXJucyB0cnVlIGlmIGFueSBwYXR0ZXJucyBtYXRjaCBgc3RyYFxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5waWNvbWF0Y2guaXNNYXRjaCA9IChzdHIsIHBhdHRlcm5zLCBvcHRpb25zKSA9PiBwaWNvbWF0Y2gocGF0dGVybnMsIG9wdGlvbnMpKHN0cik7XG5cbi8qKlxuICogUGFyc2UgYSBnbG9iIHBhdHRlcm4gdG8gY3JlYXRlIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBhIHJlZ3VsYXJcbiAqIGV4cHJlc3Npb24uXG4gKlxuICogYGBganNcbiAqIGNvbnN0IHBpY29tYXRjaCA9IHJlcXVpcmUoJ3BpY29tYXRjaCcpO1xuICogY29uc3QgcmVzdWx0ID0gcGljb21hdGNoLnBhcnNlKHBhdHRlcm5bLCBvcHRpb25zXSk7XG4gKiBgYGBcbiAqIEBwYXJhbSB7U3RyaW5nfSBgcGF0dGVybmBcbiAqIEBwYXJhbSB7T2JqZWN0fSBgb3B0aW9uc2BcbiAqIEByZXR1cm4ge09iamVjdH0gUmV0dXJucyBhbiBvYmplY3Qgd2l0aCB1c2VmdWwgcHJvcGVydGllcyBhbmQgb3V0cHV0IHRvIGJlIHVzZWQgYXMgYSByZWdleCBzb3VyY2Ugc3RyaW5nLlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5waWNvbWF0Y2gucGFyc2UgPSAocGF0dGVybiwgb3B0aW9ucykgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShwYXR0ZXJuKSkgcmV0dXJuIHBhdHRlcm4ubWFwKHAgPT4gcGljb21hdGNoLnBhcnNlKHAsIG9wdGlvbnMpKTtcbiAgcmV0dXJuIHBhcnNlKHBhdHRlcm4sIHsgLi4ub3B0aW9ucywgZmFzdHBhdGhzOiBmYWxzZSB9KTtcbn07XG5cbi8qKlxuICogU2NhbiBhIGdsb2IgcGF0dGVybiB0byBzZXBhcmF0ZSB0aGUgcGF0dGVybiBpbnRvIHNlZ21lbnRzLlxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBwaWNvbWF0Y2ggPSByZXF1aXJlKCdwaWNvbWF0Y2gnKTtcbiAqIC8vIHBpY29tYXRjaC5zY2FuKGlucHV0Wywgb3B0aW9uc10pO1xuICpcbiAqIGNvbnN0IHJlc3VsdCA9IHBpY29tYXRjaC5zY2FuKCchLi9mb28vKi5qcycpO1xuICogY29uc29sZS5sb2cocmVzdWx0KTtcbiAqIHsgcHJlZml4OiAnIS4vJyxcbiAqICAgaW5wdXQ6ICchLi9mb28vKi5qcycsXG4gKiAgIHN0YXJ0OiAzLFxuICogICBiYXNlOiAnZm9vJyxcbiAqICAgZ2xvYjogJyouanMnLFxuICogICBpc0JyYWNlOiBmYWxzZSxcbiAqICAgaXNCcmFja2V0OiBmYWxzZSxcbiAqICAgaXNHbG9iOiB0cnVlLFxuICogICBpc0V4dGdsb2I6IGZhbHNlLFxuICogICBpc0dsb2JzdGFyOiBmYWxzZSxcbiAqICAgbmVnYXRlZDogdHJ1ZSB9XG4gKiBgYGBcbiAqIEBwYXJhbSB7U3RyaW5nfSBgaW5wdXRgIEdsb2IgcGF0dGVybiB0byBzY2FuLlxuICogQHBhcmFtIHtPYmplY3R9IGBvcHRpb25zYFxuICogQHJldHVybiB7T2JqZWN0fSBSZXR1cm5zIGFuIG9iamVjdCB3aXRoXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnBpY29tYXRjaC5zY2FuID0gKGlucHV0LCBvcHRpb25zKSA9PiBzY2FuKGlucHV0LCBvcHRpb25zKTtcblxuLyoqXG4gKiBDcmVhdGUgYSByZWd1bGFyIGV4cHJlc3Npb24gZnJvbSBhIHBhcnNlZCBnbG9iIHBhdHRlcm4uXG4gKlxuICogYGBganNcbiAqIGNvbnN0IHBpY29tYXRjaCA9IHJlcXVpcmUoJ3BpY29tYXRjaCcpO1xuICogY29uc3Qgc3RhdGUgPSBwaWNvbWF0Y2gucGFyc2UoJyouanMnKTtcbiAqIC8vIHBpY29tYXRjaC5jb21waWxlUmUoc3RhdGVbLCBvcHRpb25zXSk7XG4gKlxuICogY29uc29sZS5sb2cocGljb21hdGNoLmNvbXBpbGVSZShzdGF0ZSkpO1xuICogLy89PiAvXig/Oig/IVxcLikoPz0uKVteL10qP1xcLmpzKSQvXG4gKiBgYGBcbiAqIEBwYXJhbSB7U3RyaW5nfSBgc3RhdGVgIFRoZSBvYmplY3QgcmV0dXJuZWQgZnJvbSB0aGUgYC5wYXJzZWAgbWV0aG9kLlxuICogQHBhcmFtIHtPYmplY3R9IGBvcHRpb25zYFxuICogQHJldHVybiB7UmVnRXhwfSBSZXR1cm5zIGEgcmVnZXggY3JlYXRlZCBmcm9tIHRoZSBnaXZlbiBwYXR0ZXJuLlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5waWNvbWF0Y2guY29tcGlsZVJlID0gKHBhcnNlZCwgb3B0aW9ucywgcmV0dXJuT3V0cHV0ID0gZmFsc2UsIHJldHVyblN0YXRlID0gZmFsc2UpID0+IHtcbiAgaWYgKHJldHVybk91dHB1dCA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiBwYXJzZWQub3V0cHV0O1xuICB9XG5cbiAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307XG4gIGNvbnN0IHByZXBlbmQgPSBvcHRzLmNvbnRhaW5zID8gJycgOiAnXic7XG4gIGNvbnN0IGFwcGVuZCA9IG9wdHMuY29udGFpbnMgPyAnJyA6ICckJztcblxuICBsZXQgc291cmNlID0gYCR7cHJlcGVuZH0oPzoke3BhcnNlZC5vdXRwdXR9KSR7YXBwZW5kfWA7XG4gIGlmIChwYXJzZWQgJiYgcGFyc2VkLm5lZ2F0ZWQgPT09IHRydWUpIHtcbiAgICBzb3VyY2UgPSBgXig/ISR7c291cmNlfSkuKiRgO1xuICB9XG5cbiAgY29uc3QgcmVnZXggPSBwaWNvbWF0Y2gudG9SZWdleChzb3VyY2UsIG9wdGlvbnMpO1xuICBpZiAocmV0dXJuU3RhdGUgPT09IHRydWUpIHtcbiAgICByZWdleC5zdGF0ZSA9IHBhcnNlZDtcbiAgfVxuXG4gIHJldHVybiByZWdleDtcbn07XG5cbnBpY29tYXRjaC5tYWtlUmUgPSAoaW5wdXQsIG9wdGlvbnMsIHJldHVybk91dHB1dCA9IGZhbHNlLCByZXR1cm5TdGF0ZSA9IGZhbHNlKSA9PiB7XG4gIGlmICghaW5wdXQgfHwgdHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGEgbm9uLWVtcHR5IHN0cmluZycpO1xuICB9XG5cbiAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307XG4gIGxldCBwYXJzZWQgPSB7IG5lZ2F0ZWQ6IGZhbHNlLCBmYXN0cGF0aHM6IHRydWUgfTtcbiAgbGV0IHByZWZpeCA9ICcnO1xuICBsZXQgb3V0cHV0O1xuXG4gIGlmIChpbnB1dC5zdGFydHNXaXRoKCcuLycpKSB7XG4gICAgaW5wdXQgPSBpbnB1dC5zbGljZSgyKTtcbiAgICBwcmVmaXggPSBwYXJzZWQucHJlZml4ID0gJy4vJztcbiAgfVxuXG4gIGlmIChvcHRzLmZhc3RwYXRocyAhPT0gZmFsc2UgJiYgKGlucHV0WzBdID09PSAnLicgfHwgaW5wdXRbMF0gPT09ICcqJykpIHtcbiAgICBvdXRwdXQgPSBwYXJzZS5mYXN0cGF0aHMoaW5wdXQsIG9wdGlvbnMpO1xuICB9XG5cbiAgaWYgKG91dHB1dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcGFyc2VkID0gcGFyc2UoaW5wdXQsIG9wdGlvbnMpO1xuICAgIHBhcnNlZC5wcmVmaXggPSBwcmVmaXggKyAocGFyc2VkLnByZWZpeCB8fCAnJyk7XG4gIH0gZWxzZSB7XG4gICAgcGFyc2VkLm91dHB1dCA9IG91dHB1dDtcbiAgfVxuXG4gIHJldHVybiBwaWNvbWF0Y2guY29tcGlsZVJlKHBhcnNlZCwgb3B0aW9ucywgcmV0dXJuT3V0cHV0LCByZXR1cm5TdGF0ZSk7XG59O1xuXG4vKipcbiAqIENyZWF0ZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBmcm9tIHRoZSBnaXZlbiByZWdleCBzb3VyY2Ugc3RyaW5nLlxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBwaWNvbWF0Y2ggPSByZXF1aXJlKCdwaWNvbWF0Y2gnKTtcbiAqIC8vIHBpY29tYXRjaC50b1JlZ2V4KHNvdXJjZVssIG9wdGlvbnNdKTtcbiAqXG4gKiBjb25zdCB7IG91dHB1dCB9ID0gcGljb21hdGNoLnBhcnNlKCcqLmpzJyk7XG4gKiBjb25zb2xlLmxvZyhwaWNvbWF0Y2gudG9SZWdleChvdXRwdXQpKTtcbiAqIC8vPT4gL14oPzooPyFcXC4pKD89LilbXi9dKj9cXC5qcykkL1xuICogYGBgXG4gKiBAcGFyYW0ge1N0cmluZ30gYHNvdXJjZWAgUmVndWxhciBleHByZXNzaW9uIHNvdXJjZSBzdHJpbmcuXG4gKiBAcGFyYW0ge09iamVjdH0gYG9wdGlvbnNgXG4gKiBAcmV0dXJuIHtSZWdFeHB9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnBpY29tYXRjaC50b1JlZ2V4ID0gKHNvdXJjZSwgb3B0aW9ucykgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IG9wdHMgPSBvcHRpb25zIHx8IHt9O1xuICAgIHJldHVybiBuZXcgUmVnRXhwKHNvdXJjZSwgb3B0cy5mbGFncyB8fCAob3B0cy5ub2Nhc2UgPyAnaScgOiAnJykpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmRlYnVnID09PSB0cnVlKSB0aHJvdyBlcnI7XG4gICAgcmV0dXJuIC8kXi87XG4gIH1cbn07XG5cbi8qKlxuICogUGljb21hdGNoIGNvbnN0YW50cy5cbiAqIEByZXR1cm4ge09iamVjdH1cbiAqL1xuXG5waWNvbWF0Y2guY29uc3RhbnRzID0gY29uc3RhbnRzO1xuXG4vKipcbiAqIEV4cG9zZSBcInBpY29tYXRjaFwiXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBwaWNvbWF0Y2g7XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9saWIvcGljb21hdGNoJyk7XG4iLCIndXNlIHN0cmljdCc7XG5cbmNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTtcbmNvbnN0IHsgUmVhZGFibGUgfSA9IHJlcXVpcmUoJ3N0cmVhbScpO1xuY29uc3Qgc3lzUGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmNvbnN0IHsgcHJvbWlzaWZ5IH0gPSByZXF1aXJlKCd1dGlsJyk7XG5jb25zdCBwaWNvbWF0Y2ggPSByZXF1aXJlKCdwaWNvbWF0Y2gnKTtcblxuY29uc3QgcmVhZGRpciA9IHByb21pc2lmeShmcy5yZWFkZGlyKTtcbmNvbnN0IHN0YXQgPSBwcm9taXNpZnkoZnMuc3RhdCk7XG5jb25zdCBsc3RhdCA9IHByb21pc2lmeShmcy5sc3RhdCk7XG5jb25zdCByZWFscGF0aCA9IHByb21pc2lmeShmcy5yZWFscGF0aCk7XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gRW50cnlJbmZvXG4gKiBAcHJvcGVydHkge1N0cmluZ30gcGF0aFxuICogQHByb3BlcnR5IHtTdHJpbmd9IGZ1bGxQYXRoXG4gKiBAcHJvcGVydHkge2ZzLlN0YXRzPX0gc3RhdHNcbiAqIEBwcm9wZXJ0eSB7ZnMuRGlyZW50PX0gZGlyZW50XG4gKiBAcHJvcGVydHkge1N0cmluZ30gYmFzZW5hbWVcbiAqL1xuXG5jb25zdCBCQU5HID0gJyEnO1xuY29uc3QgTk9STUFMX0ZMT1dfRVJST1JTID0gbmV3IFNldChbJ0VOT0VOVCcsICdFUEVSTScsICdFQUNDRVMnLCAnRUxPT1AnXSk7XG5jb25zdCBGSUxFX1RZUEUgPSAnZmlsZXMnO1xuY29uc3QgRElSX1RZUEUgPSAnZGlyZWN0b3JpZXMnO1xuY29uc3QgRklMRV9ESVJfVFlQRSA9ICdmaWxlc19kaXJlY3Rvcmllcyc7XG5jb25zdCBFVkVSWVRISU5HX1RZUEUgPSAnYWxsJztcbmNvbnN0IEFMTF9UWVBFUyA9IFtGSUxFX1RZUEUsIERJUl9UWVBFLCBGSUxFX0RJUl9UWVBFLCBFVkVSWVRISU5HX1RZUEVdO1xuXG5jb25zdCBpc05vcm1hbEZsb3dFcnJvciA9IGVycm9yID0+IE5PUk1BTF9GTE9XX0VSUk9SUy5oYXMoZXJyb3IuY29kZSk7XG5cbmNvbnN0IG5vcm1hbGl6ZUZpbHRlciA9IGZpbHRlciA9PiB7XG4gIGlmIChmaWx0ZXIgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICBpZiAodHlwZW9mIGZpbHRlciA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIGZpbHRlcjtcblxuICBpZiAodHlwZW9mIGZpbHRlciA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBnbG9iID0gcGljb21hdGNoKGZpbHRlci50cmltKCkpO1xuICAgIHJldHVybiBlbnRyeSA9PiBnbG9iKGVudHJ5LmJhc2VuYW1lKTtcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KGZpbHRlcikpIHtcbiAgICBjb25zdCBwb3NpdGl2ZSA9IFtdO1xuICAgIGNvbnN0IG5lZ2F0aXZlID0gW107XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGZpbHRlcikge1xuICAgICAgY29uc3QgdHJpbW1lZCA9IGl0ZW0udHJpbSgpO1xuICAgICAgaWYgKHRyaW1tZWQuY2hhckF0KDApID09PSBCQU5HKSB7XG4gICAgICAgIG5lZ2F0aXZlLnB1c2gocGljb21hdGNoKHRyaW1tZWQuc2xpY2UoMSkpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvc2l0aXZlLnB1c2gocGljb21hdGNoKHRyaW1tZWQpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobmVnYXRpdmUubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHBvc2l0aXZlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIGVudHJ5ID0+XG4gICAgICAgICAgcG9zaXRpdmUuc29tZShmID0+IGYoZW50cnkuYmFzZW5hbWUpKSAmJiAhbmVnYXRpdmUuc29tZShmID0+IGYoZW50cnkuYmFzZW5hbWUpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbnRyeSA9PiAhbmVnYXRpdmUuc29tZShmID0+IGYoZW50cnkuYmFzZW5hbWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIGVudHJ5ID0+IHBvc2l0aXZlLnNvbWUoZiA9PiBmKGVudHJ5LmJhc2VuYW1lKSk7XG4gIH1cbn07XG5cbmNsYXNzIFJlYWRkaXJwU3RyZWFtIGV4dGVuZHMgUmVhZGFibGUge1xuICBzdGF0aWMgZ2V0IGRlZmF1bHRPcHRpb25zKCkge1xuICAgIHJldHVybiB7XG4gICAgICByb290OiAnLicsXG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuICAgICAgZmlsZUZpbHRlcjogKHBhdGgpID0+IHRydWUsXG4gICAgICBkaXJlY3RvcnlGaWx0ZXI6IChwYXRoKSA9PiB0cnVlLFxuICAgICAgLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtdmFycyAqL1xuICAgICAgdHlwZTogRklMRV9UWVBFLFxuICAgICAgbHN0YXQ6IGZhbHNlLFxuICAgICAgZGVwdGg6IDIxNDc0ODM2NDgsXG4gICAgICBhbHdheXNTdGF0OiBmYWxzZVxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICBzdXBlcih7XG4gICAgICBvYmplY3RNb2RlOiB0cnVlLFxuICAgICAgYXV0b0Rlc3Ryb3k6IHRydWUsXG4gICAgICBoaWdoV2F0ZXJNYXJrOiBvcHRpb25zLmhpZ2hXYXRlck1hcmsgfHwgNDA5NlxuICAgIH0pO1xuICAgIGNvbnN0IG9wdHMgPSB7IC4uLlJlYWRkaXJwU3RyZWFtLmRlZmF1bHRPcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgY29uc3QgeyByb290LCB0eXBlIH0gPSBvcHRzO1xuXG4gICAgdGhpcy5fZmlsZUZpbHRlciA9IG5vcm1hbGl6ZUZpbHRlcihvcHRzLmZpbGVGaWx0ZXIpO1xuICAgIHRoaXMuX2RpcmVjdG9yeUZpbHRlciA9IG5vcm1hbGl6ZUZpbHRlcihvcHRzLmRpcmVjdG9yeUZpbHRlcik7XG5cbiAgICBjb25zdCBzdGF0TWV0aG9kID0gb3B0cy5sc3RhdCA/IGxzdGF0IDogc3RhdDtcbiAgICAvLyBVc2UgYmlnaW50IHN0YXRzIGlmIGl0J3Mgd2luZG93cyBhbmQgc3RhdCgpIHN1cHBvcnRzIG9wdGlvbnMgKG5vZGUgMTArKS5cbiAgICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyAmJiBzdGF0Lmxlbmd0aCA9PT0gMykge1xuICAgICAgdGhpcy5fc3RhdCA9IHBhdGggPT4gc3RhdE1ldGhvZChwYXRoLCB7IGJpZ2ludDogdHJ1ZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc3RhdCA9IHN0YXRNZXRob2Q7XG4gICAgfVxuXG4gICAgdGhpcy5fbWF4RGVwdGggPSBvcHRzLmRlcHRoO1xuICAgIHRoaXMuX3dhbnRzRGlyID0gW0RJUl9UWVBFLCBGSUxFX0RJUl9UWVBFLCBFVkVSWVRISU5HX1RZUEVdLmluY2x1ZGVzKHR5cGUpO1xuICAgIHRoaXMuX3dhbnRzRmlsZSA9IFtGSUxFX1RZUEUsIEZJTEVfRElSX1RZUEUsIEVWRVJZVEhJTkdfVFlQRV0uaW5jbHVkZXModHlwZSk7XG4gICAgdGhpcy5fd2FudHNFdmVyeXRoaW5nID0gdHlwZSA9PT0gRVZFUllUSElOR19UWVBFO1xuICAgIHRoaXMuX3Jvb3QgPSBzeXNQYXRoLnJlc29sdmUocm9vdCk7XG4gICAgdGhpcy5faXNEaXJlbnQgPSAoJ0RpcmVudCcgaW4gZnMpICYmICFvcHRzLmFsd2F5c1N0YXQ7XG4gICAgdGhpcy5fc3RhdHNQcm9wID0gdGhpcy5faXNEaXJlbnQgPyAnZGlyZW50JyA6ICdzdGF0cyc7XG4gICAgdGhpcy5fcmRPcHRpb25zID0geyBlbmNvZGluZzogJ3V0ZjgnLCB3aXRoRmlsZVR5cGVzOiB0aGlzLl9pc0RpcmVudCB9O1xuXG4gICAgLy8gTGF1bmNoIHN0cmVhbSB3aXRoIG9uZSBwYXJlbnQsIHRoZSByb290IGRpci5cbiAgICB0aGlzLnBhcmVudHMgPSBbdGhpcy5fZXhwbG9yZURpcihyb290LCAxKV07XG4gICAgdGhpcy5yZWFkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5wYXJlbnQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBhc3luYyBfcmVhZChiYXRjaCkge1xuICAgIGlmICh0aGlzLnJlYWRpbmcpIHJldHVybjtcbiAgICB0aGlzLnJlYWRpbmcgPSB0cnVlO1xuXG4gICAgdHJ5IHtcbiAgICAgIHdoaWxlICghdGhpcy5kZXN0cm95ZWQgJiYgYmF0Y2ggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcGF0aCwgZGVwdGgsIGZpbGVzID0gW10gfSA9IHRoaXMucGFyZW50IHx8IHt9O1xuXG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3Qgc2xpY2UgPSBmaWxlcy5zcGxpY2UoMCwgYmF0Y2gpLm1hcChkaXJlbnQgPT4gdGhpcy5fZm9ybWF0RW50cnkoZGlyZW50LCBwYXRoKSk7XG4gICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBhd2FpdCBQcm9taXNlLmFsbChzbGljZSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlc3Ryb3llZCkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBlbnRyeVR5cGUgPSBhd2FpdCB0aGlzLl9nZXRFbnRyeVR5cGUoZW50cnkpO1xuICAgICAgICAgICAgaWYgKGVudHJ5VHlwZSA9PT0gJ2RpcmVjdG9yeScgJiYgdGhpcy5fZGlyZWN0b3J5RmlsdGVyKGVudHJ5KSkge1xuICAgICAgICAgICAgICBpZiAoZGVwdGggPD0gdGhpcy5fbWF4RGVwdGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudHMucHVzaCh0aGlzLl9leHBsb3JlRGlyKGVudHJ5LmZ1bGxQYXRoLCBkZXB0aCArIDEpKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICh0aGlzLl93YW50c0Rpcikge1xuICAgICAgICAgICAgICAgIHRoaXMucHVzaChlbnRyeSk7XG4gICAgICAgICAgICAgICAgYmF0Y2gtLTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICgoZW50cnlUeXBlID09PSAnZmlsZScgfHwgdGhpcy5faW5jbHVkZUFzRmlsZShlbnRyeSkpICYmIHRoaXMuX2ZpbGVGaWx0ZXIoZW50cnkpKSB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLl93YW50c0ZpbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnB1c2goZW50cnkpO1xuICAgICAgICAgICAgICAgIGJhdGNoLS07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnRzLnBvcCgpO1xuICAgICAgICAgIGlmICghcGFyZW50KSB7XG4gICAgICAgICAgICB0aGlzLnB1c2gobnVsbCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5wYXJlbnQgPSBhd2FpdCBwYXJlbnQ7XG4gICAgICAgICAgaWYgKHRoaXMuZGVzdHJveWVkKSByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5kZXN0cm95KGVycm9yKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5yZWFkaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgX2V4cGxvcmVEaXIocGF0aCwgZGVwdGgpIHtcbiAgICBsZXQgZmlsZXM7XG4gICAgdHJ5IHtcbiAgICAgIGZpbGVzID0gYXdhaXQgcmVhZGRpcihwYXRoLCB0aGlzLl9yZE9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLl9vbkVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHtmaWxlcywgZGVwdGgsIHBhdGh9O1xuICB9XG5cbiAgYXN5bmMgX2Zvcm1hdEVudHJ5KGRpcmVudCwgcGF0aCkge1xuICAgIGxldCBlbnRyeTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYmFzZW5hbWUgPSB0aGlzLl9pc0RpcmVudCA/IGRpcmVudC5uYW1lIDogZGlyZW50O1xuICAgICAgY29uc3QgZnVsbFBhdGggPSBzeXNQYXRoLnJlc29sdmUoc3lzUGF0aC5qb2luKHBhdGgsIGJhc2VuYW1lKSk7XG4gICAgICBlbnRyeSA9IHtwYXRoOiBzeXNQYXRoLnJlbGF0aXZlKHRoaXMuX3Jvb3QsIGZ1bGxQYXRoKSwgZnVsbFBhdGgsIGJhc2VuYW1lfTtcbiAgICAgIGVudHJ5W3RoaXMuX3N0YXRzUHJvcF0gPSB0aGlzLl9pc0RpcmVudCA/IGRpcmVudCA6IGF3YWl0IHRoaXMuX3N0YXQoZnVsbFBhdGgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5fb25FcnJvcihlcnIpO1xuICAgIH1cbiAgICByZXR1cm4gZW50cnk7XG4gIH1cblxuICBfb25FcnJvcihlcnIpIHtcbiAgICBpZiAoaXNOb3JtYWxGbG93RXJyb3IoZXJyKSAmJiAhdGhpcy5kZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuZW1pdCgnd2FybicsIGVycik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVzdHJveShlcnIpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIF9nZXRFbnRyeVR5cGUoZW50cnkpIHtcbiAgICAvLyBlbnRyeSBtYXkgYmUgdW5kZWZpbmVkLCBiZWNhdXNlIGEgd2FybmluZyBvciBhbiBlcnJvciB3ZXJlIGVtaXR0ZWRcbiAgICAvLyBhbmQgdGhlIHN0YXRzUHJvcCBpcyB1bmRlZmluZWRcbiAgICBjb25zdCBzdGF0cyA9IGVudHJ5ICYmIGVudHJ5W3RoaXMuX3N0YXRzUHJvcF07XG4gICAgaWYgKCFzdGF0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoc3RhdHMuaXNGaWxlKCkpIHtcbiAgICAgIHJldHVybiAnZmlsZSc7XG4gICAgfVxuICAgIGlmIChzdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICByZXR1cm4gJ2RpcmVjdG9yeSc7XG4gICAgfVxuICAgIGlmIChzdGF0cyAmJiBzdGF0cy5pc1N5bWJvbGljTGluaygpKSB7XG4gICAgICBjb25zdCBmdWxsID0gZW50cnkuZnVsbFBhdGg7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBlbnRyeVJlYWxQYXRoID0gYXdhaXQgcmVhbHBhdGgoZnVsbCk7XG4gICAgICAgIGNvbnN0IGVudHJ5UmVhbFBhdGhTdGF0cyA9IGF3YWl0IGxzdGF0KGVudHJ5UmVhbFBhdGgpO1xuICAgICAgICBpZiAoZW50cnlSZWFsUGF0aFN0YXRzLmlzRmlsZSgpKSB7XG4gICAgICAgICAgcmV0dXJuICdmaWxlJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnlSZWFsUGF0aFN0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgICBjb25zdCBsZW4gPSBlbnRyeVJlYWxQYXRoLmxlbmd0aDtcbiAgICAgICAgICBpZiAoZnVsbC5zdGFydHNXaXRoKGVudHJ5UmVhbFBhdGgpICYmIGZ1bGwuc3Vic3RyKGxlbiwgMSkgPT09IHN5c1BhdGguc2VwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fb25FcnJvcihuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBDaXJjdWxhciBzeW1saW5rIGRldGVjdGVkOiBcIiR7ZnVsbH1cIiBwb2ludHMgdG8gXCIke2VudHJ5UmVhbFBhdGh9XCJgXG4gICAgICAgICAgICApKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuICdkaXJlY3RvcnknO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aGlzLl9vbkVycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfaW5jbHVkZUFzRmlsZShlbnRyeSkge1xuICAgIGNvbnN0IHN0YXRzID0gZW50cnkgJiYgZW50cnlbdGhpcy5fc3RhdHNQcm9wXTtcblxuICAgIHJldHVybiBzdGF0cyAmJiB0aGlzLl93YW50c0V2ZXJ5dGhpbmcgJiYgIXN0YXRzLmlzRGlyZWN0b3J5KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBSZWFkZGlycEFyZ3VtZW50c1xuICogQHByb3BlcnR5IHtGdW5jdGlvbj19IGZpbGVGaWx0ZXJcbiAqIEBwcm9wZXJ0eSB7RnVuY3Rpb249fSBkaXJlY3RvcnlGaWx0ZXJcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nPX0gdHlwZVxuICogQHByb3BlcnR5IHtOdW1iZXI9fSBkZXB0aFxuICogQHByb3BlcnR5IHtTdHJpbmc9fSByb290XG4gKiBAcHJvcGVydHkge0Jvb2xlYW49fSBsc3RhdFxuICogQHByb3BlcnR5IHtCb29sZWFuPX0gYmlnaW50XG4gKi9cblxuLyoqXG4gKiBNYWluIGZ1bmN0aW9uIHdoaWNoIGVuZHMgdXAgY2FsbGluZyByZWFkZGlyUmVjIGFuZCByZWFkcyBhbGwgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIGluIGdpdmVuIHJvb3QgcmVjdXJzaXZlbHkuXG4gKiBAcGFyYW0ge1N0cmluZ30gcm9vdCBSb290IGRpcmVjdG9yeVxuICogQHBhcmFtIHtSZWFkZGlycEFyZ3VtZW50cz19IG9wdGlvbnMgT3B0aW9ucyB0byBzcGVjaWZ5IHJvb3QgKHN0YXJ0IGRpcmVjdG9yeSksIGZpbHRlcnMgYW5kIHJlY3Vyc2lvbiBkZXB0aFxuICovXG5jb25zdCByZWFkZGlycCA9IChyb290LCBvcHRpb25zID0ge30pID0+IHtcbiAgbGV0IHR5cGUgPSBvcHRpb25zLmVudHJ5VHlwZSB8fCBvcHRpb25zLnR5cGU7XG4gIGlmICh0eXBlID09PSAnYm90aCcpIHR5cGUgPSBGSUxFX0RJUl9UWVBFOyAvLyBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eVxuICBpZiAodHlwZSkgb3B0aW9ucy50eXBlID0gdHlwZTtcbiAgaWYgKCFyb290KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdyZWFkZGlycDogcm9vdCBhcmd1bWVudCBpcyByZXF1aXJlZC4gVXNhZ2U6IHJlYWRkaXJwKHJvb3QsIG9wdGlvbnMpJyk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHJvb3QgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncmVhZGRpcnA6IHJvb3QgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZy4gVXNhZ2U6IHJlYWRkaXJwKHJvb3QsIG9wdGlvbnMpJyk7XG4gIH0gZWxzZSBpZiAodHlwZSAmJiAhQUxMX1RZUEVTLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGByZWFkZGlycDogSW52YWxpZCB0eXBlIHBhc3NlZC4gVXNlIG9uZSBvZiAke0FMTF9UWVBFUy5qb2luKCcsICcpfWApO1xuICB9XG5cbiAgb3B0aW9ucy5yb290ID0gcm9vdDtcbiAgcmV0dXJuIG5ldyBSZWFkZGlycFN0cmVhbShvcHRpb25zKTtcbn07XG5cbmNvbnN0IHJlYWRkaXJwUHJvbWlzZSA9IChyb290LCBvcHRpb25zID0ge30pID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBmaWxlcyA9IFtdO1xuICAgIHJlYWRkaXJwKHJvb3QsIG9wdGlvbnMpXG4gICAgICAub24oJ2RhdGEnLCBlbnRyeSA9PiBmaWxlcy5wdXNoKGVudHJ5KSlcbiAgICAgIC5vbignZW5kJywgKCkgPT4gcmVzb2x2ZShmaWxlcykpXG4gICAgICAub24oJ2Vycm9yJywgZXJyb3IgPT4gcmVqZWN0KGVycm9yKSk7XG4gIH0pO1xufTtcblxucmVhZGRpcnAucHJvbWlzZSA9IHJlYWRkaXJwUHJvbWlzZTtcbnJlYWRkaXJwLlJlYWRkaXJwU3RyZWFtID0gUmVhZGRpcnBTdHJlYW07XG5yZWFkZGlycC5kZWZhdWx0ID0gcmVhZGRpcnA7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVhZGRpcnA7XG4iLCIvKiFcbiAqIG5vcm1hbGl6ZS1wYXRoIDxodHRwczovL2dpdGh1Yi5jb20vam9uc2NobGlua2VydC9ub3JtYWxpemUtcGF0aD5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQtMjAxOCwgSm9uIFNjaGxpbmtlcnQuXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihwYXRoLCBzdHJpcFRyYWlsaW5nKSB7XG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdleHBlY3RlZCBwYXRoIHRvIGJlIGEgc3RyaW5nJyk7XG4gIH1cblxuICBpZiAocGF0aCA9PT0gJ1xcXFwnIHx8IHBhdGggPT09ICcvJykgcmV0dXJuICcvJztcblxuICB2YXIgbGVuID0gcGF0aC5sZW5ndGg7XG4gIGlmIChsZW4gPD0gMSkgcmV0dXJuIHBhdGg7XG5cbiAgLy8gZW5zdXJlIHRoYXQgd2luMzIgbmFtZXNwYWNlcyBoYXMgdHdvIGxlYWRpbmcgc2xhc2hlcywgc28gdGhhdCB0aGUgcGF0aCBpc1xuICAvLyBoYW5kbGVkIHByb3Blcmx5IGJ5IHRoZSB3aW4zMiB2ZXJzaW9uIG9mIHBhdGgucGFyc2UoKSBhZnRlciBiZWluZyBub3JtYWxpemVkXG4gIC8vIGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2xpYnJhcnkvd2luZG93cy9kZXNrdG9wL2FhMzY1MjQ3KHY9dnMuODUpLmFzcHgjbmFtZXNwYWNlc1xuICB2YXIgcHJlZml4ID0gJyc7XG4gIGlmIChsZW4gPiA0ICYmIHBhdGhbM10gPT09ICdcXFxcJykge1xuICAgIHZhciBjaCA9IHBhdGhbMl07XG4gICAgaWYgKChjaCA9PT0gJz8nIHx8IGNoID09PSAnLicpICYmIHBhdGguc2xpY2UoMCwgMikgPT09ICdcXFxcXFxcXCcpIHtcbiAgICAgIHBhdGggPSBwYXRoLnNsaWNlKDIpO1xuICAgICAgcHJlZml4ID0gJy8vJztcbiAgICB9XG4gIH1cblxuICB2YXIgc2VncyA9IHBhdGguc3BsaXQoL1svXFxcXF0rLyk7XG4gIGlmIChzdHJpcFRyYWlsaW5nICE9PSBmYWxzZSAmJiBzZWdzW3NlZ3MubGVuZ3RoIC0gMV0gPT09ICcnKSB7XG4gICAgc2Vncy5wb3AoKTtcbiAgfVxuICByZXR1cm4gcHJlZml4ICsgc2Vncy5qb2luKCcvJyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5cbmNvbnN0IHBpY29tYXRjaCA9IHJlcXVpcmUoJ3BpY29tYXRjaCcpO1xuY29uc3Qgbm9ybWFsaXplUGF0aCA9IHJlcXVpcmUoJ25vcm1hbGl6ZS1wYXRoJyk7XG5cbi8qKlxuICogQHR5cGVkZWYgeyh0ZXN0U3RyaW5nOiBzdHJpbmcpID0+IGJvb2xlYW59IEFueW1hdGNoRm5cbiAqIEB0eXBlZGVmIHtzdHJpbmd8UmVnRXhwfEFueW1hdGNoRm59IEFueW1hdGNoUGF0dGVyblxuICogQHR5cGVkZWYge0FueW1hdGNoUGF0dGVybnxBbnltYXRjaFBhdHRlcm5bXX0gQW55bWF0Y2hNYXRjaGVyXG4gKi9cbmNvbnN0IEJBTkcgPSAnISc7XG5jb25zdCBERUZBVUxUX09QVElPTlMgPSB7cmV0dXJuSW5kZXg6IGZhbHNlfTtcbmNvbnN0IGFycmlmeSA9IChpdGVtKSA9PiBBcnJheS5pc0FycmF5KGl0ZW0pID8gaXRlbSA6IFtpdGVtXTtcblxuLyoqXG4gKiBAcGFyYW0ge0FueW1hdGNoUGF0dGVybn0gbWF0Y2hlclxuICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnNcbiAqIEByZXR1cm5zIHtBbnltYXRjaEZufVxuICovXG5jb25zdCBjcmVhdGVQYXR0ZXJuID0gKG1hdGNoZXIsIG9wdGlvbnMpID0+IHtcbiAgaWYgKHR5cGVvZiBtYXRjaGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG1hdGNoZXI7XG4gIH1cbiAgaWYgKHR5cGVvZiBtYXRjaGVyID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGdsb2IgPSBwaWNvbWF0Y2gobWF0Y2hlciwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIChzdHJpbmcpID0+IG1hdGNoZXIgPT09IHN0cmluZyB8fCBnbG9iKHN0cmluZyk7XG4gIH1cbiAgaWYgKG1hdGNoZXIgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICByZXR1cm4gKHN0cmluZykgPT4gbWF0Y2hlci50ZXN0KHN0cmluZyk7XG4gIH1cbiAgcmV0dXJuIChzdHJpbmcpID0+IGZhbHNlO1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge0FycmF5PEZ1bmN0aW9uPn0gcGF0dGVybnNcbiAqIEBwYXJhbSB7QXJyYXk8RnVuY3Rpb24+fSBuZWdQYXR0ZXJuc1xuICogQHBhcmFtIHtTdHJpbmd8QXJyYXl9IGFyZ3NcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gcmV0dXJuSW5kZXhcbiAqIEByZXR1cm5zIHtib29sZWFufG51bWJlcn1cbiAqL1xuY29uc3QgbWF0Y2hQYXR0ZXJucyA9IChwYXR0ZXJucywgbmVnUGF0dGVybnMsIGFyZ3MsIHJldHVybkluZGV4KSA9PiB7XG4gIGNvbnN0IGlzTGlzdCA9IEFycmF5LmlzQXJyYXkoYXJncyk7XG4gIGNvbnN0IF9wYXRoID0gaXNMaXN0ID8gYXJnc1swXSA6IGFyZ3M7XG4gIGlmICghaXNMaXN0ICYmIHR5cGVvZiBfcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdhbnltYXRjaDogc2Vjb25kIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmc6IGdvdCAnICtcbiAgICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChfcGF0aCkpXG4gIH1cbiAgY29uc3QgcGF0aCA9IG5vcm1hbGl6ZVBhdGgoX3BhdGgpO1xuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBuZWdQYXR0ZXJucy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICBjb25zdCBuZ2xvYiA9IG5lZ1BhdHRlcm5zW2luZGV4XTtcbiAgICBpZiAobmdsb2IocGF0aCkpIHtcbiAgICAgIHJldHVybiByZXR1cm5JbmRleCA/IC0xIDogZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgYXBwbGllZCA9IGlzTGlzdCAmJiBbcGF0aF0uY29uY2F0KGFyZ3Muc2xpY2UoMSkpO1xuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgcGF0dGVybnMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgY29uc3QgcGF0dGVybiA9IHBhdHRlcm5zW2luZGV4XTtcbiAgICBpZiAoaXNMaXN0ID8gcGF0dGVybiguLi5hcHBsaWVkKSA6IHBhdHRlcm4ocGF0aCkpIHtcbiAgICAgIHJldHVybiByZXR1cm5JbmRleCA/IGluZGV4IDogdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0dXJuSW5kZXggPyAtMSA6IGZhbHNlO1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge0FueW1hdGNoTWF0Y2hlcn0gbWF0Y2hlcnNcbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSB0ZXN0U3RyaW5nXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9uc1xuICogQHJldHVybnMge2Jvb2xlYW58bnVtYmVyfEZ1bmN0aW9ufVxuICovXG5jb25zdCBhbnltYXRjaCA9IChtYXRjaGVycywgdGVzdFN0cmluZywgb3B0aW9ucyA9IERFRkFVTFRfT1BUSU9OUykgPT4ge1xuICBpZiAobWF0Y2hlcnMgPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2FueW1hdGNoOiBzcGVjaWZ5IGZpcnN0IGFyZ3VtZW50Jyk7XG4gIH1cbiAgY29uc3Qgb3B0cyA9IHR5cGVvZiBvcHRpb25zID09PSAnYm9vbGVhbicgPyB7cmV0dXJuSW5kZXg6IG9wdGlvbnN9IDogb3B0aW9ucztcbiAgY29uc3QgcmV0dXJuSW5kZXggPSBvcHRzLnJldHVybkluZGV4IHx8IGZhbHNlO1xuXG4gIC8vIEVhcmx5IGNhY2hlIGZvciBtYXRjaGVycy5cbiAgY29uc3QgbXRjaGVycyA9IGFycmlmeShtYXRjaGVycyk7XG4gIGNvbnN0IG5lZ2F0ZWRHbG9icyA9IG10Y2hlcnNcbiAgICAuZmlsdGVyKGl0ZW0gPT4gdHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnICYmIGl0ZW0uY2hhckF0KDApID09PSBCQU5HKVxuICAgIC5tYXAoaXRlbSA9PiBpdGVtLnNsaWNlKDEpKVxuICAgIC5tYXAoaXRlbSA9PiBwaWNvbWF0Y2goaXRlbSwgb3B0cykpO1xuICBjb25zdCBwYXR0ZXJucyA9IG10Y2hlcnMubWFwKG1hdGNoZXIgPT4gY3JlYXRlUGF0dGVybihtYXRjaGVyLCBvcHRzKSk7XG5cbiAgaWYgKHRlc3RTdHJpbmcgPT0gbnVsbCkge1xuICAgIHJldHVybiAodGVzdFN0cmluZywgcmkgPSBmYWxzZSkgPT4ge1xuICAgICAgY29uc3QgcmV0dXJuSW5kZXggPSB0eXBlb2YgcmkgPT09ICdib29sZWFuJyA/IHJpIDogZmFsc2U7XG4gICAgICByZXR1cm4gbWF0Y2hQYXR0ZXJucyhwYXR0ZXJucywgbmVnYXRlZEdsb2JzLCB0ZXN0U3RyaW5nLCByZXR1cm5JbmRleCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hdGNoUGF0dGVybnMocGF0dGVybnMsIG5lZ2F0ZWRHbG9icywgdGVzdFN0cmluZywgcmV0dXJuSW5kZXgpO1xufTtcblxuYW55bWF0Y2guZGVmYXVsdCA9IGFueW1hdGNoO1xubW9kdWxlLmV4cG9ydHMgPSBhbnltYXRjaDtcbiIsIi8qIVxuICogaXMtZXh0Z2xvYiA8aHR0cHM6Ly9naXRodWIuY29tL2pvbnNjaGxpbmtlcnQvaXMtZXh0Z2xvYj5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNiwgSm9uIFNjaGxpbmtlcnQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0V4dGdsb2Ioc3RyKSB7XG4gIGlmICh0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJyB8fCBzdHIgPT09ICcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIG1hdGNoO1xuICB3aGlsZSAoKG1hdGNoID0gLyhcXFxcKS58KFtAPyErKl1cXCguKlxcKSkvZy5leGVjKHN0cikpKSB7XG4gICAgaWYgKG1hdGNoWzJdKSByZXR1cm4gdHJ1ZTtcbiAgICBzdHIgPSBzdHIuc2xpY2UobWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGgpO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufTtcbiIsIi8qIVxuICogaXMtZ2xvYiA8aHR0cHM6Ly9naXRodWIuY29tL2pvbnNjaGxpbmtlcnQvaXMtZ2xvYj5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNywgSm9uIFNjaGxpbmtlcnQuXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKi9cblxudmFyIGlzRXh0Z2xvYiA9IHJlcXVpcmUoJ2lzLWV4dGdsb2InKTtcbnZhciBjaGFycyA9IHsgJ3snOiAnfScsICcoJzogJyknLCAnWyc6ICddJ307XG52YXIgc3RyaWN0UmVnZXggPSAvXFxcXCguKXwoXiF8XFwqfFtcXF0uKyldXFw/fFxcW1teXFxcXFxcXV0rXFxdfFxce1teXFxcXH1dK1xcfXxcXChcXD9bOiE9XVteXFxcXCldK1xcKXxcXChbXnxdK1xcfFteXFxcXCldK1xcKSkvO1xudmFyIHJlbGF4ZWRSZWdleCA9IC9cXFxcKC4pfCheIXxbKj97fSgpW1xcXV18XFwoXFw/KS87XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaXNHbG9iKHN0ciwgb3B0aW9ucykge1xuICBpZiAodHlwZW9mIHN0ciAhPT0gJ3N0cmluZycgfHwgc3RyID09PSAnJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChpc0V4dGdsb2Ioc3RyKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFyIHJlZ2V4ID0gc3RyaWN0UmVnZXg7XG4gIHZhciBtYXRjaDtcblxuICAvLyBvcHRpb25hbGx5IHJlbGF4IHJlZ2V4XG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMuc3RyaWN0ID09PSBmYWxzZSkge1xuICAgIHJlZ2V4ID0gcmVsYXhlZFJlZ2V4O1xuICB9XG5cbiAgd2hpbGUgKChtYXRjaCA9IHJlZ2V4LmV4ZWMoc3RyKSkpIHtcbiAgICBpZiAobWF0Y2hbMl0pIHJldHVybiB0cnVlO1xuICAgIHZhciBpZHggPSBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aDtcblxuICAgIC8vIGlmIGFuIG9wZW4gYnJhY2tldC9icmFjZS9wYXJlbiBpcyBlc2NhcGVkLFxuICAgIC8vIHNldCB0aGUgaW5kZXggdG8gdGhlIG5leHQgY2xvc2luZyBjaGFyYWN0ZXJcbiAgICB2YXIgb3BlbiA9IG1hdGNoWzFdO1xuICAgIHZhciBjbG9zZSA9IG9wZW4gPyBjaGFyc1tvcGVuXSA6IG51bGw7XG4gICAgaWYgKG9wZW4gJiYgY2xvc2UpIHtcbiAgICAgIHZhciBuID0gc3RyLmluZGV4T2YoY2xvc2UsIGlkeCk7XG4gICAgICBpZiAobiAhPT0gLTEpIHtcbiAgICAgICAgaWR4ID0gbiArIDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3RyID0gc3RyLnNsaWNlKGlkeCk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGlzR2xvYiA9IHJlcXVpcmUoJ2lzLWdsb2InKTtcbnZhciBwYXRoUG9zaXhEaXJuYW1lID0gcmVxdWlyZSgncGF0aCcpLnBvc2l4LmRpcm5hbWU7XG52YXIgaXNXaW4zMiA9IHJlcXVpcmUoJ29zJykucGxhdGZvcm0oKSA9PT0gJ3dpbjMyJztcblxudmFyIHNsYXNoID0gJy8nO1xudmFyIGJhY2tzbGFzaCA9IC9cXFxcL2c7XG52YXIgZW5jbG9zdXJlID0gL1tcXHtcXFtdLipbXFwvXSouKltcXH1cXF1dJC87XG52YXIgZ2xvYmJ5ID0gLyhefFteXFxcXF0pKFtcXHtcXFtdfFxcKFteXFwpXSskKS87XG52YXIgZXNjYXBlZCA9IC9cXFxcKFtcXCFcXCpcXD9cXHxcXFtcXF1cXChcXClcXHtcXH1dKS9nO1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmZsaXBCYWNrc2xhc2hlcz10cnVlXVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdsb2JQYXJlbnQoc3RyLCBvcHRzKSB7XG4gIHZhciBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7IGZsaXBCYWNrc2xhc2hlczogdHJ1ZSB9LCBvcHRzKTtcblxuICAvLyBmbGlwIHdpbmRvd3MgcGF0aCBzZXBhcmF0b3JzXG4gIGlmIChvcHRpb25zLmZsaXBCYWNrc2xhc2hlcyAmJiBpc1dpbjMyICYmIHN0ci5pbmRleE9mKHNsYXNoKSA8IDApIHtcbiAgICBzdHIgPSBzdHIucmVwbGFjZShiYWNrc2xhc2gsIHNsYXNoKTtcbiAgfVxuXG4gIC8vIHNwZWNpYWwgY2FzZSBmb3Igc3RyaW5ncyBlbmRpbmcgaW4gZW5jbG9zdXJlIGNvbnRhaW5pbmcgcGF0aCBzZXBhcmF0b3JcbiAgaWYgKGVuY2xvc3VyZS50ZXN0KHN0cikpIHtcbiAgICBzdHIgKz0gc2xhc2g7XG4gIH1cblxuICAvLyBwcmVzZXJ2ZXMgZnVsbCBwYXRoIGluIGNhc2Ugb2YgdHJhaWxpbmcgcGF0aCBzZXBhcmF0b3JcbiAgc3RyICs9ICdhJztcblxuICAvLyByZW1vdmUgcGF0aCBwYXJ0cyB0aGF0IGFyZSBnbG9iYnlcbiAgZG8ge1xuICAgIHN0ciA9IHBhdGhQb3NpeERpcm5hbWUoc3RyKTtcbiAgfSB3aGlsZSAoaXNHbG9iKHN0cikgfHwgZ2xvYmJ5LnRlc3Qoc3RyKSk7XG5cbiAgLy8gcmVtb3ZlIGVzY2FwZSBjaGFycyBhbmQgcmV0dXJuIHJlc3VsdFxuICByZXR1cm4gc3RyLnJlcGxhY2UoZXNjYXBlZCwgJyQxJyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLmlzSW50ZWdlciA9IG51bSA9PiB7XG4gIGlmICh0eXBlb2YgbnVtID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBOdW1iZXIuaXNJbnRlZ2VyKG51bSk7XG4gIH1cbiAgaWYgKHR5cGVvZiBudW0gPT09ICdzdHJpbmcnICYmIG51bS50cmltKCkgIT09ICcnKSB7XG4gICAgcmV0dXJuIE51bWJlci5pc0ludGVnZXIoTnVtYmVyKG51bSkpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogRmluZCBhIG5vZGUgb2YgdGhlIGdpdmVuIHR5cGVcbiAqL1xuXG5leHBvcnRzLmZpbmQgPSAobm9kZSwgdHlwZSkgPT4gbm9kZS5ub2Rlcy5maW5kKG5vZGUgPT4gbm9kZS50eXBlID09PSB0eXBlKTtcblxuLyoqXG4gKiBGaW5kIGEgbm9kZSBvZiB0aGUgZ2l2ZW4gdHlwZVxuICovXG5cbmV4cG9ydHMuZXhjZWVkc0xpbWl0ID0gKG1pbiwgbWF4LCBzdGVwID0gMSwgbGltaXQpID0+IHtcbiAgaWYgKGxpbWl0ID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlO1xuICBpZiAoIWV4cG9ydHMuaXNJbnRlZ2VyKG1pbikgfHwgIWV4cG9ydHMuaXNJbnRlZ2VyKG1heCkpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuICgoTnVtYmVyKG1heCkgLSBOdW1iZXIobWluKSkgLyBOdW1iZXIoc3RlcCkpID49IGxpbWl0O1xufTtcblxuLyoqXG4gKiBFc2NhcGUgdGhlIGdpdmVuIG5vZGUgd2l0aCAnXFxcXCcgYmVmb3JlIG5vZGUudmFsdWVcbiAqL1xuXG5leHBvcnRzLmVzY2FwZU5vZGUgPSAoYmxvY2ssIG4gPSAwLCB0eXBlKSA9PiB7XG4gIGxldCBub2RlID0gYmxvY2subm9kZXNbbl07XG4gIGlmICghbm9kZSkgcmV0dXJuO1xuXG4gIGlmICgodHlwZSAmJiBub2RlLnR5cGUgPT09IHR5cGUpIHx8IG5vZGUudHlwZSA9PT0gJ29wZW4nIHx8IG5vZGUudHlwZSA9PT0gJ2Nsb3NlJykge1xuICAgIGlmIChub2RlLmVzY2FwZWQgIT09IHRydWUpIHtcbiAgICAgIG5vZGUudmFsdWUgPSAnXFxcXCcgKyBub2RlLnZhbHVlO1xuICAgICAgbm9kZS5lc2NhcGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBicmFjZSBub2RlIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBsaXRlcmFsIGJyYWNlc1xuICovXG5cbmV4cG9ydHMuZW5jbG9zZUJyYWNlID0gbm9kZSA9PiB7XG4gIGlmIChub2RlLnR5cGUgIT09ICdicmFjZScpIHJldHVybiBmYWxzZTtcbiAgaWYgKChub2RlLmNvbW1hcyA+PiAwICsgbm9kZS5yYW5nZXMgPj4gMCkgPT09IDApIHtcbiAgICBub2RlLmludmFsaWQgPSB0cnVlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIGEgYnJhY2Ugbm9kZSBpcyBpbnZhbGlkLlxuICovXG5cbmV4cG9ydHMuaXNJbnZhbGlkQnJhY2UgPSBibG9jayA9PiB7XG4gIGlmIChibG9jay50eXBlICE9PSAnYnJhY2UnKSByZXR1cm4gZmFsc2U7XG4gIGlmIChibG9jay5pbnZhbGlkID09PSB0cnVlIHx8IGJsb2NrLmRvbGxhcikgcmV0dXJuIHRydWU7XG4gIGlmICgoYmxvY2suY29tbWFzID4+IDAgKyBibG9jay5yYW5nZXMgPj4gMCkgPT09IDApIHtcbiAgICBibG9jay5pbnZhbGlkID0gdHJ1ZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoYmxvY2sub3BlbiAhPT0gdHJ1ZSB8fCBibG9jay5jbG9zZSAhPT0gdHJ1ZSkge1xuICAgIGJsb2NrLmludmFsaWQgPSB0cnVlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIGEgbm9kZSBpcyBhbiBvcGVuIG9yIGNsb3NlIG5vZGVcbiAqL1xuXG5leHBvcnRzLmlzT3Blbk9yQ2xvc2UgPSBub2RlID0+IHtcbiAgaWYgKG5vZGUudHlwZSA9PT0gJ29wZW4nIHx8IG5vZGUudHlwZSA9PT0gJ2Nsb3NlJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBub2RlLm9wZW4gPT09IHRydWUgfHwgbm9kZS5jbG9zZSA9PT0gdHJ1ZTtcbn07XG5cbi8qKlxuICogUmVkdWNlIGFuIGFycmF5IG9mIHRleHQgbm9kZXMuXG4gKi9cblxuZXhwb3J0cy5yZWR1Y2UgPSBub2RlcyA9PiBub2Rlcy5yZWR1Y2UoKGFjYywgbm9kZSkgPT4ge1xuICBpZiAobm9kZS50eXBlID09PSAndGV4dCcpIGFjYy5wdXNoKG5vZGUudmFsdWUpO1xuICBpZiAobm9kZS50eXBlID09PSAncmFuZ2UnKSBub2RlLnR5cGUgPSAndGV4dCc7XG4gIHJldHVybiBhY2M7XG59LCBbXSk7XG5cbi8qKlxuICogRmxhdHRlbiBhbiBhcnJheVxuICovXG5cbmV4cG9ydHMuZmxhdHRlbiA9ICguLi5hcmdzKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IFtdO1xuICBjb25zdCBmbGF0ID0gYXJyID0+IHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGVsZSA9IGFycltpXTtcbiAgICAgIEFycmF5LmlzQXJyYXkoZWxlKSA/IGZsYXQoZWxlLCByZXN1bHQpIDogZWxlICE9PSB2b2lkIDAgJiYgcmVzdWx0LnB1c2goZWxlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbiAgZmxhdChhcmdzKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbmNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IChhc3QsIG9wdGlvbnMgPSB7fSkgPT4ge1xuICBsZXQgc3RyaW5naWZ5ID0gKG5vZGUsIHBhcmVudCA9IHt9KSA9PiB7XG4gICAgbGV0IGludmFsaWRCbG9jayA9IG9wdGlvbnMuZXNjYXBlSW52YWxpZCAmJiB1dGlscy5pc0ludmFsaWRCcmFjZShwYXJlbnQpO1xuICAgIGxldCBpbnZhbGlkTm9kZSA9IG5vZGUuaW52YWxpZCA9PT0gdHJ1ZSAmJiBvcHRpb25zLmVzY2FwZUludmFsaWQgPT09IHRydWU7XG4gICAgbGV0IG91dHB1dCA9ICcnO1xuXG4gICAgaWYgKG5vZGUudmFsdWUpIHtcbiAgICAgIGlmICgoaW52YWxpZEJsb2NrIHx8IGludmFsaWROb2RlKSAmJiB1dGlscy5pc09wZW5PckNsb3NlKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiAnXFxcXCcgKyBub2RlLnZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5vZGUudmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUudmFsdWUpIHtcbiAgICAgIHJldHVybiBub2RlLnZhbHVlO1xuICAgIH1cblxuICAgIGlmIChub2RlLm5vZGVzKSB7XG4gICAgICBmb3IgKGxldCBjaGlsZCBvZiBub2RlLm5vZGVzKSB7XG4gICAgICAgIG91dHB1dCArPSBzdHJpbmdpZnkoY2hpbGQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0O1xuICB9O1xuXG4gIHJldHVybiBzdHJpbmdpZnkoYXN0KTtcbn07XG5cbiIsIi8qIVxuICogaXMtbnVtYmVyIDxodHRwczovL2dpdGh1Yi5jb20vam9uc2NobGlua2VydC9pcy1udW1iZXI+XG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE0LXByZXNlbnQsIEpvbiBTY2hsaW5rZXJ0LlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihudW0pIHtcbiAgaWYgKHR5cGVvZiBudW0gPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIG51bSAtIG51bSA9PT0gMDtcbiAgfVxuICBpZiAodHlwZW9mIG51bSA9PT0gJ3N0cmluZycgJiYgbnVtLnRyaW0oKSAhPT0gJycpIHtcbiAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlID8gTnVtYmVyLmlzRmluaXRlKCtudW0pIDogaXNGaW5pdGUoK251bSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcbiIsIi8qIVxuICogdG8tcmVnZXgtcmFuZ2UgPGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb21hdGNoL3RvLXJlZ2V4LXJhbmdlPlxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNS1wcmVzZW50LCBKb24gU2NobGlua2VydC5cbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmNvbnN0IGlzTnVtYmVyID0gcmVxdWlyZSgnaXMtbnVtYmVyJyk7XG5cbmNvbnN0IHRvUmVnZXhSYW5nZSA9IChtaW4sIG1heCwgb3B0aW9ucykgPT4ge1xuICBpZiAoaXNOdW1iZXIobWluKSA9PT0gZmFsc2UpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd0b1JlZ2V4UmFuZ2U6IGV4cGVjdGVkIHRoZSBmaXJzdCBhcmd1bWVudCB0byBiZSBhIG51bWJlcicpO1xuICB9XG5cbiAgaWYgKG1heCA9PT0gdm9pZCAwIHx8IG1pbiA9PT0gbWF4KSB7XG4gICAgcmV0dXJuIFN0cmluZyhtaW4pO1xuICB9XG5cbiAgaWYgKGlzTnVtYmVyKG1heCkgPT09IGZhbHNlKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndG9SZWdleFJhbmdlOiBleHBlY3RlZCB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIGJlIGEgbnVtYmVyLicpO1xuICB9XG5cbiAgbGV0IG9wdHMgPSB7IHJlbGF4WmVyb3M6IHRydWUsIC4uLm9wdGlvbnMgfTtcbiAgaWYgKHR5cGVvZiBvcHRzLnN0cmljdFplcm9zID09PSAnYm9vbGVhbicpIHtcbiAgICBvcHRzLnJlbGF4WmVyb3MgPSBvcHRzLnN0cmljdFplcm9zID09PSBmYWxzZTtcbiAgfVxuXG4gIGxldCByZWxheCA9IFN0cmluZyhvcHRzLnJlbGF4WmVyb3MpO1xuICBsZXQgc2hvcnRoYW5kID0gU3RyaW5nKG9wdHMuc2hvcnRoYW5kKTtcbiAgbGV0IGNhcHR1cmUgPSBTdHJpbmcob3B0cy5jYXB0dXJlKTtcbiAgbGV0IHdyYXAgPSBTdHJpbmcob3B0cy53cmFwKTtcbiAgbGV0IGNhY2hlS2V5ID0gbWluICsgJzonICsgbWF4ICsgJz0nICsgcmVsYXggKyBzaG9ydGhhbmQgKyBjYXB0dXJlICsgd3JhcDtcblxuICBpZiAodG9SZWdleFJhbmdlLmNhY2hlLmhhc093blByb3BlcnR5KGNhY2hlS2V5KSkge1xuICAgIHJldHVybiB0b1JlZ2V4UmFuZ2UuY2FjaGVbY2FjaGVLZXldLnJlc3VsdDtcbiAgfVxuXG4gIGxldCBhID0gTWF0aC5taW4obWluLCBtYXgpO1xuICBsZXQgYiA9IE1hdGgubWF4KG1pbiwgbWF4KTtcblxuICBpZiAoTWF0aC5hYnMoYSAtIGIpID09PSAxKSB7XG4gICAgbGV0IHJlc3VsdCA9IG1pbiArICd8JyArIG1heDtcbiAgICBpZiAob3B0cy5jYXB0dXJlKSB7XG4gICAgICByZXR1cm4gYCgke3Jlc3VsdH0pYDtcbiAgICB9XG4gICAgaWYgKG9wdHMud3JhcCA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIHJldHVybiBgKD86JHtyZXN1bHR9KWA7XG4gIH1cblxuICBsZXQgaXNQYWRkZWQgPSBoYXNQYWRkaW5nKG1pbikgfHwgaGFzUGFkZGluZyhtYXgpO1xuICBsZXQgc3RhdGUgPSB7IG1pbiwgbWF4LCBhLCBiIH07XG4gIGxldCBwb3NpdGl2ZXMgPSBbXTtcbiAgbGV0IG5lZ2F0aXZlcyA9IFtdO1xuXG4gIGlmIChpc1BhZGRlZCkge1xuICAgIHN0YXRlLmlzUGFkZGVkID0gaXNQYWRkZWQ7XG4gICAgc3RhdGUubWF4TGVuID0gU3RyaW5nKHN0YXRlLm1heCkubGVuZ3RoO1xuICB9XG5cbiAgaWYgKGEgPCAwKSB7XG4gICAgbGV0IG5ld01pbiA9IGIgPCAwID8gTWF0aC5hYnMoYikgOiAxO1xuICAgIG5lZ2F0aXZlcyA9IHNwbGl0VG9QYXR0ZXJucyhuZXdNaW4sIE1hdGguYWJzKGEpLCBzdGF0ZSwgb3B0cyk7XG4gICAgYSA9IHN0YXRlLmEgPSAwO1xuICB9XG5cbiAgaWYgKGIgPj0gMCkge1xuICAgIHBvc2l0aXZlcyA9IHNwbGl0VG9QYXR0ZXJucyhhLCBiLCBzdGF0ZSwgb3B0cyk7XG4gIH1cblxuICBzdGF0ZS5uZWdhdGl2ZXMgPSBuZWdhdGl2ZXM7XG4gIHN0YXRlLnBvc2l0aXZlcyA9IHBvc2l0aXZlcztcbiAgc3RhdGUucmVzdWx0ID0gY29sbGF0ZVBhdHRlcm5zKG5lZ2F0aXZlcywgcG9zaXRpdmVzLCBvcHRzKTtcblxuICBpZiAob3B0cy5jYXB0dXJlID09PSB0cnVlKSB7XG4gICAgc3RhdGUucmVzdWx0ID0gYCgke3N0YXRlLnJlc3VsdH0pYDtcbiAgfSBlbHNlIGlmIChvcHRzLndyYXAgIT09IGZhbHNlICYmIChwb3NpdGl2ZXMubGVuZ3RoICsgbmVnYXRpdmVzLmxlbmd0aCkgPiAxKSB7XG4gICAgc3RhdGUucmVzdWx0ID0gYCg/OiR7c3RhdGUucmVzdWx0fSlgO1xuICB9XG5cbiAgdG9SZWdleFJhbmdlLmNhY2hlW2NhY2hlS2V5XSA9IHN0YXRlO1xuICByZXR1cm4gc3RhdGUucmVzdWx0O1xufTtcblxuZnVuY3Rpb24gY29sbGF0ZVBhdHRlcm5zKG5lZywgcG9zLCBvcHRpb25zKSB7XG4gIGxldCBvbmx5TmVnYXRpdmUgPSBmaWx0ZXJQYXR0ZXJucyhuZWcsIHBvcywgJy0nLCBmYWxzZSwgb3B0aW9ucykgfHwgW107XG4gIGxldCBvbmx5UG9zaXRpdmUgPSBmaWx0ZXJQYXR0ZXJucyhwb3MsIG5lZywgJycsIGZhbHNlLCBvcHRpb25zKSB8fCBbXTtcbiAgbGV0IGludGVyc2VjdGVkID0gZmlsdGVyUGF0dGVybnMobmVnLCBwb3MsICctPycsIHRydWUsIG9wdGlvbnMpIHx8IFtdO1xuICBsZXQgc3VicGF0dGVybnMgPSBvbmx5TmVnYXRpdmUuY29uY2F0KGludGVyc2VjdGVkKS5jb25jYXQob25seVBvc2l0aXZlKTtcbiAgcmV0dXJuIHN1YnBhdHRlcm5zLmpvaW4oJ3wnKTtcbn1cblxuZnVuY3Rpb24gc3BsaXRUb1JhbmdlcyhtaW4sIG1heCkge1xuICBsZXQgbmluZXMgPSAxO1xuICBsZXQgemVyb3MgPSAxO1xuXG4gIGxldCBzdG9wID0gY291bnROaW5lcyhtaW4sIG5pbmVzKTtcbiAgbGV0IHN0b3BzID0gbmV3IFNldChbbWF4XSk7XG5cbiAgd2hpbGUgKG1pbiA8PSBzdG9wICYmIHN0b3AgPD0gbWF4KSB7XG4gICAgc3RvcHMuYWRkKHN0b3ApO1xuICAgIG5pbmVzICs9IDE7XG4gICAgc3RvcCA9IGNvdW50TmluZXMobWluLCBuaW5lcyk7XG4gIH1cblxuICBzdG9wID0gY291bnRaZXJvcyhtYXggKyAxLCB6ZXJvcykgLSAxO1xuXG4gIHdoaWxlIChtaW4gPCBzdG9wICYmIHN0b3AgPD0gbWF4KSB7XG4gICAgc3RvcHMuYWRkKHN0b3ApO1xuICAgIHplcm9zICs9IDE7XG4gICAgc3RvcCA9IGNvdW50WmVyb3MobWF4ICsgMSwgemVyb3MpIC0gMTtcbiAgfVxuXG4gIHN0b3BzID0gWy4uLnN0b3BzXTtcbiAgc3RvcHMuc29ydChjb21wYXJlKTtcbiAgcmV0dXJuIHN0b3BzO1xufVxuXG4vKipcbiAqIENvbnZlcnQgYSByYW5nZSB0byBhIHJlZ2V4IHBhdHRlcm5cbiAqIEBwYXJhbSB7TnVtYmVyfSBgc3RhcnRgXG4gKiBAcGFyYW0ge051bWJlcn0gYHN0b3BgXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cblxuZnVuY3Rpb24gcmFuZ2VUb1BhdHRlcm4oc3RhcnQsIHN0b3AsIG9wdGlvbnMpIHtcbiAgaWYgKHN0YXJ0ID09PSBzdG9wKSB7XG4gICAgcmV0dXJuIHsgcGF0dGVybjogc3RhcnQsIGNvdW50OiBbXSwgZGlnaXRzOiAwIH07XG4gIH1cblxuICBsZXQgemlwcGVkID0gemlwKHN0YXJ0LCBzdG9wKTtcbiAgbGV0IGRpZ2l0cyA9IHppcHBlZC5sZW5ndGg7XG4gIGxldCBwYXR0ZXJuID0gJyc7XG4gIGxldCBjb3VudCA9IDA7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaWdpdHM7IGkrKykge1xuICAgIGxldCBbc3RhcnREaWdpdCwgc3RvcERpZ2l0XSA9IHppcHBlZFtpXTtcblxuICAgIGlmIChzdGFydERpZ2l0ID09PSBzdG9wRGlnaXQpIHtcbiAgICAgIHBhdHRlcm4gKz0gc3RhcnREaWdpdDtcblxuICAgIH0gZWxzZSBpZiAoc3RhcnREaWdpdCAhPT0gJzAnIHx8IHN0b3BEaWdpdCAhPT0gJzknKSB7XG4gICAgICBwYXR0ZXJuICs9IHRvQ2hhcmFjdGVyQ2xhc3Moc3RhcnREaWdpdCwgc3RvcERpZ2l0LCBvcHRpb25zKTtcblxuICAgIH0gZWxzZSB7XG4gICAgICBjb3VudCsrO1xuICAgIH1cbiAgfVxuXG4gIGlmIChjb3VudCkge1xuICAgIHBhdHRlcm4gKz0gb3B0aW9ucy5zaG9ydGhhbmQgPT09IHRydWUgPyAnXFxcXGQnIDogJ1swLTldJztcbiAgfVxuXG4gIHJldHVybiB7IHBhdHRlcm4sIGNvdW50OiBbY291bnRdLCBkaWdpdHMgfTtcbn1cblxuZnVuY3Rpb24gc3BsaXRUb1BhdHRlcm5zKG1pbiwgbWF4LCB0b2ssIG9wdGlvbnMpIHtcbiAgbGV0IHJhbmdlcyA9IHNwbGl0VG9SYW5nZXMobWluLCBtYXgpO1xuICBsZXQgdG9rZW5zID0gW107XG4gIGxldCBzdGFydCA9IG1pbjtcbiAgbGV0IHByZXY7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgbWF4ID0gcmFuZ2VzW2ldO1xuICAgIGxldCBvYmogPSByYW5nZVRvUGF0dGVybihTdHJpbmcoc3RhcnQpLCBTdHJpbmcobWF4KSwgb3B0aW9ucyk7XG4gICAgbGV0IHplcm9zID0gJyc7XG5cbiAgICBpZiAoIXRvay5pc1BhZGRlZCAmJiBwcmV2ICYmIHByZXYucGF0dGVybiA9PT0gb2JqLnBhdHRlcm4pIHtcbiAgICAgIGlmIChwcmV2LmNvdW50Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgcHJldi5jb3VudC5wb3AoKTtcbiAgICAgIH1cblxuICAgICAgcHJldi5jb3VudC5wdXNoKG9iai5jb3VudFswXSk7XG4gICAgICBwcmV2LnN0cmluZyA9IHByZXYucGF0dGVybiArIHRvUXVhbnRpZmllcihwcmV2LmNvdW50KTtcbiAgICAgIHN0YXJ0ID0gbWF4ICsgMTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmICh0b2suaXNQYWRkZWQpIHtcbiAgICAgIHplcm9zID0gcGFkWmVyb3MobWF4LCB0b2ssIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIG9iai5zdHJpbmcgPSB6ZXJvcyArIG9iai5wYXR0ZXJuICsgdG9RdWFudGlmaWVyKG9iai5jb3VudCk7XG4gICAgdG9rZW5zLnB1c2gob2JqKTtcbiAgICBzdGFydCA9IG1heCArIDE7XG4gICAgcHJldiA9IG9iajtcbiAgfVxuXG4gIHJldHVybiB0b2tlbnM7XG59XG5cbmZ1bmN0aW9uIGZpbHRlclBhdHRlcm5zKGFyciwgY29tcGFyaXNvbiwgcHJlZml4LCBpbnRlcnNlY3Rpb24sIG9wdGlvbnMpIHtcbiAgbGV0IHJlc3VsdCA9IFtdO1xuXG4gIGZvciAobGV0IGVsZSBvZiBhcnIpIHtcbiAgICBsZXQgeyBzdHJpbmcgfSA9IGVsZTtcblxuICAgIC8vIG9ubHkgcHVzaCBpZiBfYm90aF8gYXJlIG5lZ2F0aXZlLi4uXG4gICAgaWYgKCFpbnRlcnNlY3Rpb24gJiYgIWNvbnRhaW5zKGNvbXBhcmlzb24sICdzdHJpbmcnLCBzdHJpbmcpKSB7XG4gICAgICByZXN1bHQucHVzaChwcmVmaXggKyBzdHJpbmcpO1xuICAgIH1cblxuICAgIC8vIG9yIF9ib3RoXyBhcmUgcG9zaXRpdmVcbiAgICBpZiAoaW50ZXJzZWN0aW9uICYmIGNvbnRhaW5zKGNvbXBhcmlzb24sICdzdHJpbmcnLCBzdHJpbmcpKSB7XG4gICAgICByZXN1bHQucHVzaChwcmVmaXggKyBzdHJpbmcpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFppcCBzdHJpbmdzXG4gKi9cblxuZnVuY3Rpb24gemlwKGEsIGIpIHtcbiAgbGV0IGFyciA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIGFyci5wdXNoKFthW2ldLCBiW2ldXSk7XG4gIHJldHVybiBhcnI7XG59XG5cbmZ1bmN0aW9uIGNvbXBhcmUoYSwgYikge1xuICByZXR1cm4gYSA+IGIgPyAxIDogYiA+IGEgPyAtMSA6IDA7XG59XG5cbmZ1bmN0aW9uIGNvbnRhaW5zKGFyciwga2V5LCB2YWwpIHtcbiAgcmV0dXJuIGFyci5zb21lKGVsZSA9PiBlbGVba2V5XSA9PT0gdmFsKTtcbn1cblxuZnVuY3Rpb24gY291bnROaW5lcyhtaW4sIGxlbikge1xuICByZXR1cm4gTnVtYmVyKFN0cmluZyhtaW4pLnNsaWNlKDAsIC1sZW4pICsgJzknLnJlcGVhdChsZW4pKTtcbn1cblxuZnVuY3Rpb24gY291bnRaZXJvcyhpbnRlZ2VyLCB6ZXJvcykge1xuICByZXR1cm4gaW50ZWdlciAtIChpbnRlZ2VyICUgTWF0aC5wb3coMTAsIHplcm9zKSk7XG59XG5cbmZ1bmN0aW9uIHRvUXVhbnRpZmllcihkaWdpdHMpIHtcbiAgbGV0IFtzdGFydCA9IDAsIHN0b3AgPSAnJ10gPSBkaWdpdHM7XG4gIGlmIChzdG9wIHx8IHN0YXJ0ID4gMSkge1xuICAgIHJldHVybiBgeyR7c3RhcnQgKyAoc3RvcCA/ICcsJyArIHN0b3AgOiAnJyl9fWA7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiB0b0NoYXJhY3RlckNsYXNzKGEsIGIsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGBbJHthfSR7KGIgLSBhID09PSAxKSA/ICcnIDogJy0nfSR7Yn1dYDtcbn1cblxuZnVuY3Rpb24gaGFzUGFkZGluZyhzdHIpIHtcbiAgcmV0dXJuIC9eLT8oMCspXFxkLy50ZXN0KHN0cik7XG59XG5cbmZ1bmN0aW9uIHBhZFplcm9zKHZhbHVlLCB0b2ssIG9wdGlvbnMpIHtcbiAgaWYgKCF0b2suaXNQYWRkZWQpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBsZXQgZGlmZiA9IE1hdGguYWJzKHRvay5tYXhMZW4gLSBTdHJpbmcodmFsdWUpLmxlbmd0aCk7XG4gIGxldCByZWxheCA9IG9wdGlvbnMucmVsYXhaZXJvcyAhPT0gZmFsc2U7XG5cbiAgc3dpdGNoIChkaWZmKSB7XG4gICAgY2FzZSAwOlxuICAgICAgcmV0dXJuICcnO1xuICAgIGNhc2UgMTpcbiAgICAgIHJldHVybiByZWxheCA/ICcwPycgOiAnMCc7XG4gICAgY2FzZSAyOlxuICAgICAgcmV0dXJuIHJlbGF4ID8gJzB7MCwyfScgOiAnMDAnO1xuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiByZWxheCA/IGAwezAsJHtkaWZmfX1gIDogYDB7JHtkaWZmfX1gO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIENhY2hlXG4gKi9cblxudG9SZWdleFJhbmdlLmNhY2hlID0ge307XG50b1JlZ2V4UmFuZ2UuY2xlYXJDYWNoZSA9ICgpID0+ICh0b1JlZ2V4UmFuZ2UuY2FjaGUgPSB7fSk7XG5cbi8qKlxuICogRXhwb3NlIGB0b1JlZ2V4UmFuZ2VgXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSB0b1JlZ2V4UmFuZ2U7XG4iLCIvKiFcbiAqIGZpbGwtcmFuZ2UgPGh0dHBzOi8vZ2l0aHViLmNvbS9qb25zY2hsaW5rZXJ0L2ZpbGwtcmFuZ2U+XG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE0LXByZXNlbnQsIEpvbiBTY2hsaW5rZXJ0LlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuY29uc3QgdXRpbCA9IHJlcXVpcmUoJ3V0aWwnKTtcbmNvbnN0IHRvUmVnZXhSYW5nZSA9IHJlcXVpcmUoJ3RvLXJlZ2V4LXJhbmdlJyk7XG5cbmNvbnN0IGlzT2JqZWN0ID0gdmFsID0+IHZhbCAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWwpO1xuXG5jb25zdCB0cmFuc2Zvcm0gPSB0b051bWJlciA9PiB7XG4gIHJldHVybiB2YWx1ZSA9PiB0b051bWJlciA9PT0gdHJ1ZSA/IE51bWJlcih2YWx1ZSkgOiBTdHJpbmcodmFsdWUpO1xufTtcblxuY29uc3QgaXNWYWxpZFZhbHVlID0gdmFsdWUgPT4ge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZSAhPT0gJycpO1xufTtcblxuY29uc3QgaXNOdW1iZXIgPSBudW0gPT4gTnVtYmVyLmlzSW50ZWdlcigrbnVtKTtcblxuY29uc3QgemVyb3MgPSBpbnB1dCA9PiB7XG4gIGxldCB2YWx1ZSA9IGAke2lucHV0fWA7XG4gIGxldCBpbmRleCA9IC0xO1xuICBpZiAodmFsdWVbMF0gPT09ICctJykgdmFsdWUgPSB2YWx1ZS5zbGljZSgxKTtcbiAgaWYgKHZhbHVlID09PSAnMCcpIHJldHVybiBmYWxzZTtcbiAgd2hpbGUgKHZhbHVlWysraW5kZXhdID09PSAnMCcpO1xuICByZXR1cm4gaW5kZXggPiAwO1xufTtcblxuY29uc3Qgc3RyaW5naWZ5ID0gKHN0YXJ0LCBlbmQsIG9wdGlvbnMpID0+IHtcbiAgaWYgKHR5cGVvZiBzdGFydCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGVuZCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gb3B0aW9ucy5zdHJpbmdpZnkgPT09IHRydWU7XG59O1xuXG5jb25zdCBwYWQgPSAoaW5wdXQsIG1heExlbmd0aCwgdG9OdW1iZXIpID0+IHtcbiAgaWYgKG1heExlbmd0aCA+IDApIHtcbiAgICBsZXQgZGFzaCA9IGlucHV0WzBdID09PSAnLScgPyAnLScgOiAnJztcbiAgICBpZiAoZGFzaCkgaW5wdXQgPSBpbnB1dC5zbGljZSgxKTtcbiAgICBpbnB1dCA9IChkYXNoICsgaW5wdXQucGFkU3RhcnQoZGFzaCA/IG1heExlbmd0aCAtIDEgOiBtYXhMZW5ndGgsICcwJykpO1xuICB9XG4gIGlmICh0b051bWJlciA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gU3RyaW5nKGlucHV0KTtcbiAgfVxuICByZXR1cm4gaW5wdXQ7XG59O1xuXG5jb25zdCB0b01heExlbiA9IChpbnB1dCwgbWF4TGVuZ3RoKSA9PiB7XG4gIGxldCBuZWdhdGl2ZSA9IGlucHV0WzBdID09PSAnLScgPyAnLScgOiAnJztcbiAgaWYgKG5lZ2F0aXZlKSB7XG4gICAgaW5wdXQgPSBpbnB1dC5zbGljZSgxKTtcbiAgICBtYXhMZW5ndGgtLTtcbiAgfVxuICB3aGlsZSAoaW5wdXQubGVuZ3RoIDwgbWF4TGVuZ3RoKSBpbnB1dCA9ICcwJyArIGlucHV0O1xuICByZXR1cm4gbmVnYXRpdmUgPyAoJy0nICsgaW5wdXQpIDogaW5wdXQ7XG59O1xuXG5jb25zdCB0b1NlcXVlbmNlID0gKHBhcnRzLCBvcHRpb25zKSA9PiB7XG4gIHBhcnRzLm5lZ2F0aXZlcy5zb3J0KChhLCBiKSA9PiBhIDwgYiA/IC0xIDogYSA+IGIgPyAxIDogMCk7XG4gIHBhcnRzLnBvc2l0aXZlcy5zb3J0KChhLCBiKSA9PiBhIDwgYiA/IC0xIDogYSA+IGIgPyAxIDogMCk7XG5cbiAgbGV0IHByZWZpeCA9IG9wdGlvbnMuY2FwdHVyZSA/ICcnIDogJz86JztcbiAgbGV0IHBvc2l0aXZlcyA9ICcnO1xuICBsZXQgbmVnYXRpdmVzID0gJyc7XG4gIGxldCByZXN1bHQ7XG5cbiAgaWYgKHBhcnRzLnBvc2l0aXZlcy5sZW5ndGgpIHtcbiAgICBwb3NpdGl2ZXMgPSBwYXJ0cy5wb3NpdGl2ZXMuam9pbignfCcpO1xuICB9XG5cbiAgaWYgKHBhcnRzLm5lZ2F0aXZlcy5sZW5ndGgpIHtcbiAgICBuZWdhdGl2ZXMgPSBgLSgke3ByZWZpeH0ke3BhcnRzLm5lZ2F0aXZlcy5qb2luKCd8Jyl9KWA7XG4gIH1cblxuICBpZiAocG9zaXRpdmVzICYmIG5lZ2F0aXZlcykge1xuICAgIHJlc3VsdCA9IGAke3Bvc2l0aXZlc318JHtuZWdhdGl2ZXN9YDtcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSBwb3NpdGl2ZXMgfHwgbmVnYXRpdmVzO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMud3JhcCkge1xuICAgIHJldHVybiBgKCR7cHJlZml4fSR7cmVzdWx0fSlgO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IHRvUmFuZ2UgPSAoYSwgYiwgaXNOdW1iZXJzLCBvcHRpb25zKSA9PiB7XG4gIGlmIChpc051bWJlcnMpIHtcbiAgICByZXR1cm4gdG9SZWdleFJhbmdlKGEsIGIsIHsgd3JhcDogZmFsc2UsIC4uLm9wdGlvbnMgfSk7XG4gIH1cblxuICBsZXQgc3RhcnQgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGEpO1xuICBpZiAoYSA9PT0gYikgcmV0dXJuIHN0YXJ0O1xuXG4gIGxldCBzdG9wID0gU3RyaW5nLmZyb21DaGFyQ29kZShiKTtcbiAgcmV0dXJuIGBbJHtzdGFydH0tJHtzdG9wfV1gO1xufTtcblxuY29uc3QgdG9SZWdleCA9IChzdGFydCwgZW5kLCBvcHRpb25zKSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KHN0YXJ0KSkge1xuICAgIGxldCB3cmFwID0gb3B0aW9ucy53cmFwID09PSB0cnVlO1xuICAgIGxldCBwcmVmaXggPSBvcHRpb25zLmNhcHR1cmUgPyAnJyA6ICc/Oic7XG4gICAgcmV0dXJuIHdyYXAgPyBgKCR7cHJlZml4fSR7c3RhcnQuam9pbignfCcpfSlgIDogc3RhcnQuam9pbignfCcpO1xuICB9XG4gIHJldHVybiB0b1JlZ2V4UmFuZ2Uoc3RhcnQsIGVuZCwgb3B0aW9ucyk7XG59O1xuXG5jb25zdCByYW5nZUVycm9yID0gKC4uLmFyZ3MpID0+IHtcbiAgcmV0dXJuIG5ldyBSYW5nZUVycm9yKCdJbnZhbGlkIHJhbmdlIGFyZ3VtZW50czogJyArIHV0aWwuaW5zcGVjdCguLi5hcmdzKSk7XG59O1xuXG5jb25zdCBpbnZhbGlkUmFuZ2UgPSAoc3RhcnQsIGVuZCwgb3B0aW9ucykgPT4ge1xuICBpZiAob3B0aW9ucy5zdHJpY3RSYW5nZXMgPT09IHRydWUpIHRocm93IHJhbmdlRXJyb3IoW3N0YXJ0LCBlbmRdKTtcbiAgcmV0dXJuIFtdO1xufTtcblxuY29uc3QgaW52YWxpZFN0ZXAgPSAoc3RlcCwgb3B0aW9ucykgPT4ge1xuICBpZiAob3B0aW9ucy5zdHJpY3RSYW5nZXMgPT09IHRydWUpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBzdGVwIFwiJHtzdGVwfVwiIHRvIGJlIGEgbnVtYmVyYCk7XG4gIH1cbiAgcmV0dXJuIFtdO1xufTtcblxuY29uc3QgZmlsbE51bWJlcnMgPSAoc3RhcnQsIGVuZCwgc3RlcCA9IDEsIG9wdGlvbnMgPSB7fSkgPT4ge1xuICBsZXQgYSA9IE51bWJlcihzdGFydCk7XG4gIGxldCBiID0gTnVtYmVyKGVuZCk7XG5cbiAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGEpIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKGIpKSB7XG4gICAgaWYgKG9wdGlvbnMuc3RyaWN0UmFuZ2VzID09PSB0cnVlKSB0aHJvdyByYW5nZUVycm9yKFtzdGFydCwgZW5kXSk7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLy8gZml4IG5lZ2F0aXZlIHplcm9cbiAgaWYgKGEgPT09IDApIGEgPSAwO1xuICBpZiAoYiA9PT0gMCkgYiA9IDA7XG5cbiAgbGV0IGRlc2NlbmRpbmcgPSBhID4gYjtcbiAgbGV0IHN0YXJ0U3RyaW5nID0gU3RyaW5nKHN0YXJ0KTtcbiAgbGV0IGVuZFN0cmluZyA9IFN0cmluZyhlbmQpO1xuICBsZXQgc3RlcFN0cmluZyA9IFN0cmluZyhzdGVwKTtcbiAgc3RlcCA9IE1hdGgubWF4KE1hdGguYWJzKHN0ZXApLCAxKTtcblxuICBsZXQgcGFkZGVkID0gemVyb3Moc3RhcnRTdHJpbmcpIHx8IHplcm9zKGVuZFN0cmluZykgfHwgemVyb3Moc3RlcFN0cmluZyk7XG4gIGxldCBtYXhMZW4gPSBwYWRkZWQgPyBNYXRoLm1heChzdGFydFN0cmluZy5sZW5ndGgsIGVuZFN0cmluZy5sZW5ndGgsIHN0ZXBTdHJpbmcubGVuZ3RoKSA6IDA7XG4gIGxldCB0b051bWJlciA9IHBhZGRlZCA9PT0gZmFsc2UgJiYgc3RyaW5naWZ5KHN0YXJ0LCBlbmQsIG9wdGlvbnMpID09PSBmYWxzZTtcbiAgbGV0IGZvcm1hdCA9IG9wdGlvbnMudHJhbnNmb3JtIHx8IHRyYW5zZm9ybSh0b051bWJlcik7XG5cbiAgaWYgKG9wdGlvbnMudG9SZWdleCAmJiBzdGVwID09PSAxKSB7XG4gICAgcmV0dXJuIHRvUmFuZ2UodG9NYXhMZW4oc3RhcnQsIG1heExlbiksIHRvTWF4TGVuKGVuZCwgbWF4TGVuKSwgdHJ1ZSwgb3B0aW9ucyk7XG4gIH1cblxuICBsZXQgcGFydHMgPSB7IG5lZ2F0aXZlczogW10sIHBvc2l0aXZlczogW10gfTtcbiAgbGV0IHB1c2ggPSBudW0gPT4gcGFydHNbbnVtIDwgMCA/ICduZWdhdGl2ZXMnIDogJ3Bvc2l0aXZlcyddLnB1c2goTWF0aC5hYnMobnVtKSk7XG4gIGxldCByYW5nZSA9IFtdO1xuICBsZXQgaW5kZXggPSAwO1xuXG4gIHdoaWxlIChkZXNjZW5kaW5nID8gYSA+PSBiIDogYSA8PSBiKSB7XG4gICAgaWYgKG9wdGlvbnMudG9SZWdleCA9PT0gdHJ1ZSAmJiBzdGVwID4gMSkge1xuICAgICAgcHVzaChhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmFuZ2UucHVzaChwYWQoZm9ybWF0KGEsIGluZGV4KSwgbWF4TGVuLCB0b051bWJlcikpO1xuICAgIH1cbiAgICBhID0gZGVzY2VuZGluZyA/IGEgLSBzdGVwIDogYSArIHN0ZXA7XG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIGlmIChvcHRpb25zLnRvUmVnZXggPT09IHRydWUpIHtcbiAgICByZXR1cm4gc3RlcCA+IDFcbiAgICAgID8gdG9TZXF1ZW5jZShwYXJ0cywgb3B0aW9ucylcbiAgICAgIDogdG9SZWdleChyYW5nZSwgbnVsbCwgeyB3cmFwOiBmYWxzZSwgLi4ub3B0aW9ucyB9KTtcbiAgfVxuXG4gIHJldHVybiByYW5nZTtcbn07XG5cbmNvbnN0IGZpbGxMZXR0ZXJzID0gKHN0YXJ0LCBlbmQsIHN0ZXAgPSAxLCBvcHRpb25zID0ge30pID0+IHtcbiAgaWYgKCghaXNOdW1iZXIoc3RhcnQpICYmIHN0YXJ0Lmxlbmd0aCA+IDEpIHx8ICghaXNOdW1iZXIoZW5kKSAmJiBlbmQubGVuZ3RoID4gMSkpIHtcbiAgICByZXR1cm4gaW52YWxpZFJhbmdlKHN0YXJ0LCBlbmQsIG9wdGlvbnMpO1xuICB9XG5cblxuICBsZXQgZm9ybWF0ID0gb3B0aW9ucy50cmFuc2Zvcm0gfHwgKHZhbCA9PiBTdHJpbmcuZnJvbUNoYXJDb2RlKHZhbCkpO1xuICBsZXQgYSA9IGAke3N0YXJ0fWAuY2hhckNvZGVBdCgwKTtcbiAgbGV0IGIgPSBgJHtlbmR9YC5jaGFyQ29kZUF0KDApO1xuXG4gIGxldCBkZXNjZW5kaW5nID0gYSA+IGI7XG4gIGxldCBtaW4gPSBNYXRoLm1pbihhLCBiKTtcbiAgbGV0IG1heCA9IE1hdGgubWF4KGEsIGIpO1xuXG4gIGlmIChvcHRpb25zLnRvUmVnZXggJiYgc3RlcCA9PT0gMSkge1xuICAgIHJldHVybiB0b1JhbmdlKG1pbiwgbWF4LCBmYWxzZSwgb3B0aW9ucyk7XG4gIH1cblxuICBsZXQgcmFuZ2UgPSBbXTtcbiAgbGV0IGluZGV4ID0gMDtcblxuICB3aGlsZSAoZGVzY2VuZGluZyA/IGEgPj0gYiA6IGEgPD0gYikge1xuICAgIHJhbmdlLnB1c2goZm9ybWF0KGEsIGluZGV4KSk7XG4gICAgYSA9IGRlc2NlbmRpbmcgPyBhIC0gc3RlcCA6IGEgKyBzdGVwO1xuICAgIGluZGV4Kys7XG4gIH1cblxuICBpZiAob3B0aW9ucy50b1JlZ2V4ID09PSB0cnVlKSB7XG4gICAgcmV0dXJuIHRvUmVnZXgocmFuZ2UsIG51bGwsIHsgd3JhcDogZmFsc2UsIG9wdGlvbnMgfSk7XG4gIH1cblxuICByZXR1cm4gcmFuZ2U7XG59O1xuXG5jb25zdCBmaWxsID0gKHN0YXJ0LCBlbmQsIHN0ZXAsIG9wdGlvbnMgPSB7fSkgPT4ge1xuICBpZiAoZW5kID09IG51bGwgJiYgaXNWYWxpZFZhbHVlKHN0YXJ0KSkge1xuICAgIHJldHVybiBbc3RhcnRdO1xuICB9XG5cbiAgaWYgKCFpc1ZhbGlkVmFsdWUoc3RhcnQpIHx8ICFpc1ZhbGlkVmFsdWUoZW5kKSkge1xuICAgIHJldHVybiBpbnZhbGlkUmFuZ2Uoc3RhcnQsIGVuZCwgb3B0aW9ucyk7XG4gIH1cblxuICBpZiAodHlwZW9mIHN0ZXAgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZmlsbChzdGFydCwgZW5kLCAxLCB7IHRyYW5zZm9ybTogc3RlcCB9KTtcbiAgfVxuXG4gIGlmIChpc09iamVjdChzdGVwKSkge1xuICAgIHJldHVybiBmaWxsKHN0YXJ0LCBlbmQsIDAsIHN0ZXApO1xuICB9XG5cbiAgbGV0IG9wdHMgPSB7IC4uLm9wdGlvbnMgfTtcbiAgaWYgKG9wdHMuY2FwdHVyZSA9PT0gdHJ1ZSkgb3B0cy53cmFwID0gdHJ1ZTtcbiAgc3RlcCA9IHN0ZXAgfHwgb3B0cy5zdGVwIHx8IDE7XG5cbiAgaWYgKCFpc051bWJlcihzdGVwKSkge1xuICAgIGlmIChzdGVwICE9IG51bGwgJiYgIWlzT2JqZWN0KHN0ZXApKSByZXR1cm4gaW52YWxpZFN0ZXAoc3RlcCwgb3B0cyk7XG4gICAgcmV0dXJuIGZpbGwoc3RhcnQsIGVuZCwgMSwgc3RlcCk7XG4gIH1cblxuICBpZiAoaXNOdW1iZXIoc3RhcnQpICYmIGlzTnVtYmVyKGVuZCkpIHtcbiAgICByZXR1cm4gZmlsbE51bWJlcnMoc3RhcnQsIGVuZCwgc3RlcCwgb3B0cyk7XG4gIH1cblxuICByZXR1cm4gZmlsbExldHRlcnMoc3RhcnQsIGVuZCwgTWF0aC5tYXgoTWF0aC5hYnMoc3RlcCksIDEpLCBvcHRzKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZmlsbDtcbiIsIid1c2Ugc3RyaWN0JztcblxuY29uc3QgZmlsbCA9IHJlcXVpcmUoJ2ZpbGwtcmFuZ2UnKTtcbmNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xuXG5jb25zdCBjb21waWxlID0gKGFzdCwgb3B0aW9ucyA9IHt9KSA9PiB7XG4gIGxldCB3YWxrID0gKG5vZGUsIHBhcmVudCA9IHt9KSA9PiB7XG4gICAgbGV0IGludmFsaWRCbG9jayA9IHV0aWxzLmlzSW52YWxpZEJyYWNlKHBhcmVudCk7XG4gICAgbGV0IGludmFsaWROb2RlID0gbm9kZS5pbnZhbGlkID09PSB0cnVlICYmIG9wdGlvbnMuZXNjYXBlSW52YWxpZCA9PT0gdHJ1ZTtcbiAgICBsZXQgaW52YWxpZCA9IGludmFsaWRCbG9jayA9PT0gdHJ1ZSB8fCBpbnZhbGlkTm9kZSA9PT0gdHJ1ZTtcbiAgICBsZXQgcHJlZml4ID0gb3B0aW9ucy5lc2NhcGVJbnZhbGlkID09PSB0cnVlID8gJ1xcXFwnIDogJyc7XG4gICAgbGV0IG91dHB1dCA9ICcnO1xuXG4gICAgaWYgKG5vZGUuaXNPcGVuID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gcHJlZml4ICsgbm9kZS52YWx1ZTtcbiAgICB9XG4gICAgaWYgKG5vZGUuaXNDbG9zZSA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIHByZWZpeCArIG5vZGUudmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ29wZW4nKSB7XG4gICAgICByZXR1cm4gaW52YWxpZCA/IChwcmVmaXggKyBub2RlLnZhbHVlKSA6ICcoJztcbiAgICB9XG5cbiAgICBpZiAobm9kZS50eXBlID09PSAnY2xvc2UnKSB7XG4gICAgICByZXR1cm4gaW52YWxpZCA/IChwcmVmaXggKyBub2RlLnZhbHVlKSA6ICcpJztcbiAgICB9XG5cbiAgICBpZiAobm9kZS50eXBlID09PSAnY29tbWEnKSB7XG4gICAgICByZXR1cm4gbm9kZS5wcmV2LnR5cGUgPT09ICdjb21tYScgPyAnJyA6IChpbnZhbGlkID8gbm9kZS52YWx1ZSA6ICd8Jyk7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUudmFsdWUpIHtcbiAgICAgIHJldHVybiBub2RlLnZhbHVlO1xuICAgIH1cblxuICAgIGlmIChub2RlLm5vZGVzICYmIG5vZGUucmFuZ2VzID4gMCkge1xuICAgICAgbGV0IGFyZ3MgPSB1dGlscy5yZWR1Y2Uobm9kZS5ub2Rlcyk7XG4gICAgICBsZXQgcmFuZ2UgPSBmaWxsKC4uLmFyZ3MsIHsgLi4ub3B0aW9ucywgd3JhcDogZmFsc2UsIHRvUmVnZXg6IHRydWUgfSk7XG5cbiAgICAgIGlmIChyYW5nZS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgcmV0dXJuIGFyZ3MubGVuZ3RoID4gMSAmJiByYW5nZS5sZW5ndGggPiAxID8gYCgke3JhbmdlfSlgIDogcmFuZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5vZGUubm9kZXMpIHtcbiAgICAgIGZvciAobGV0IGNoaWxkIG9mIG5vZGUubm9kZXMpIHtcbiAgICAgICAgb3V0cHV0ICs9IHdhbGsoY2hpbGQsIG5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0O1xuICB9O1xuXG4gIHJldHVybiB3YWxrKGFzdCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbXBpbGU7XG4iLCIndXNlIHN0cmljdCc7XG5cbmNvbnN0IGZpbGwgPSByZXF1aXJlKCdmaWxsLXJhbmdlJyk7XG5jb25zdCBzdHJpbmdpZnkgPSByZXF1aXJlKCcuL3N0cmluZ2lmeScpO1xuY29uc3QgdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG5cbmNvbnN0IGFwcGVuZCA9IChxdWV1ZSA9ICcnLCBzdGFzaCA9ICcnLCBlbmNsb3NlID0gZmFsc2UpID0+IHtcbiAgbGV0IHJlc3VsdCA9IFtdO1xuXG4gIHF1ZXVlID0gW10uY29uY2F0KHF1ZXVlKTtcbiAgc3Rhc2ggPSBbXS5jb25jYXQoc3Rhc2gpO1xuXG4gIGlmICghc3Rhc2gubGVuZ3RoKSByZXR1cm4gcXVldWU7XG4gIGlmICghcXVldWUubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGVuY2xvc2UgPyB1dGlscy5mbGF0dGVuKHN0YXNoKS5tYXAoZWxlID0+IGB7JHtlbGV9fWApIDogc3Rhc2g7XG4gIH1cblxuICBmb3IgKGxldCBpdGVtIG9mIHF1ZXVlKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcbiAgICAgIGZvciAobGV0IHZhbHVlIG9mIGl0ZW0pIHtcbiAgICAgICAgcmVzdWx0LnB1c2goYXBwZW5kKHZhbHVlLCBzdGFzaCwgZW5jbG9zZSkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBlbGUgb2Ygc3Rhc2gpIHtcbiAgICAgICAgaWYgKGVuY2xvc2UgPT09IHRydWUgJiYgdHlwZW9mIGVsZSA9PT0gJ3N0cmluZycpIGVsZSA9IGB7JHtlbGV9fWA7XG4gICAgICAgIHJlc3VsdC5wdXNoKEFycmF5LmlzQXJyYXkoZWxlKSA/IGFwcGVuZChpdGVtLCBlbGUsIGVuY2xvc2UpIDogKGl0ZW0gKyBlbGUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHV0aWxzLmZsYXR0ZW4ocmVzdWx0KTtcbn07XG5cbmNvbnN0IGV4cGFuZCA9IChhc3QsIG9wdGlvbnMgPSB7fSkgPT4ge1xuICBsZXQgcmFuZ2VMaW1pdCA9IG9wdGlvbnMucmFuZ2VMaW1pdCA9PT0gdm9pZCAwID8gMTAwMCA6IG9wdGlvbnMucmFuZ2VMaW1pdDtcblxuICBsZXQgd2FsayA9IChub2RlLCBwYXJlbnQgPSB7fSkgPT4ge1xuICAgIG5vZGUucXVldWUgPSBbXTtcblxuICAgIGxldCBwID0gcGFyZW50O1xuICAgIGxldCBxID0gcGFyZW50LnF1ZXVlO1xuXG4gICAgd2hpbGUgKHAudHlwZSAhPT0gJ2JyYWNlJyAmJiBwLnR5cGUgIT09ICdyb290JyAmJiBwLnBhcmVudCkge1xuICAgICAgcCA9IHAucGFyZW50O1xuICAgICAgcSA9IHAucXVldWU7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUuaW52YWxpZCB8fCBub2RlLmRvbGxhcikge1xuICAgICAgcS5wdXNoKGFwcGVuZChxLnBvcCgpLCBzdHJpbmdpZnkobm9kZSwgb3B0aW9ucykpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobm9kZS50eXBlID09PSAnYnJhY2UnICYmIG5vZGUuaW52YWxpZCAhPT0gdHJ1ZSAmJiBub2RlLm5vZGVzLmxlbmd0aCA9PT0gMikge1xuICAgICAgcS5wdXNoKGFwcGVuZChxLnBvcCgpLCBbJ3t9J10pKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5ub2RlcyAmJiBub2RlLnJhbmdlcyA+IDApIHtcbiAgICAgIGxldCBhcmdzID0gdXRpbHMucmVkdWNlKG5vZGUubm9kZXMpO1xuXG4gICAgICBpZiAodXRpbHMuZXhjZWVkc0xpbWl0KC4uLmFyZ3MsIG9wdGlvbnMuc3RlcCwgcmFuZ2VMaW1pdCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2V4cGFuZGVkIGFycmF5IGxlbmd0aCBleGNlZWRzIHJhbmdlIGxpbWl0LiBVc2Ugb3B0aW9ucy5yYW5nZUxpbWl0IHRvIGluY3JlYXNlIG9yIGRpc2FibGUgdGhlIGxpbWl0LicpO1xuICAgICAgfVxuXG4gICAgICBsZXQgcmFuZ2UgPSBmaWxsKC4uLmFyZ3MsIG9wdGlvbnMpO1xuICAgICAgaWYgKHJhbmdlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByYW5nZSA9IHN0cmluZ2lmeShub2RlLCBvcHRpb25zKTtcbiAgICAgIH1cblxuICAgICAgcS5wdXNoKGFwcGVuZChxLnBvcCgpLCByYW5nZSkpO1xuICAgICAgbm9kZS5ub2RlcyA9IFtdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBlbmNsb3NlID0gdXRpbHMuZW5jbG9zZUJyYWNlKG5vZGUpO1xuICAgIGxldCBxdWV1ZSA9IG5vZGUucXVldWU7XG4gICAgbGV0IGJsb2NrID0gbm9kZTtcblxuICAgIHdoaWxlIChibG9jay50eXBlICE9PSAnYnJhY2UnICYmIGJsb2NrLnR5cGUgIT09ICdyb290JyAmJiBibG9jay5wYXJlbnQpIHtcbiAgICAgIGJsb2NrID0gYmxvY2sucGFyZW50O1xuICAgICAgcXVldWUgPSBibG9jay5xdWV1ZTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUubm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBjaGlsZCA9IG5vZGUubm9kZXNbaV07XG5cbiAgICAgIGlmIChjaGlsZC50eXBlID09PSAnY29tbWEnICYmIG5vZGUudHlwZSA9PT0gJ2JyYWNlJykge1xuICAgICAgICBpZiAoaSA9PT0gMSkgcXVldWUucHVzaCgnJyk7XG4gICAgICAgIHF1ZXVlLnB1c2goJycpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoaWxkLnR5cGUgPT09ICdjbG9zZScpIHtcbiAgICAgICAgcS5wdXNoKGFwcGVuZChxLnBvcCgpLCBxdWV1ZSwgZW5jbG9zZSkpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoaWxkLnZhbHVlICYmIGNoaWxkLnR5cGUgIT09ICdvcGVuJykge1xuICAgICAgICBxdWV1ZS5wdXNoKGFwcGVuZChxdWV1ZS5wb3AoKSwgY2hpbGQudmFsdWUpKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGlsZC5ub2Rlcykge1xuICAgICAgICB3YWxrKGNoaWxkLCBub2RlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcXVldWU7XG4gIH07XG5cbiAgcmV0dXJuIHV0aWxzLmZsYXR0ZW4od2Fsayhhc3QpKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZXhwYW5kO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgTUFYX0xFTkdUSDogMTAyNCAqIDY0LFxuXG4gIC8vIERpZ2l0c1xuICBDSEFSXzA6ICcwJywgLyogMCAqL1xuICBDSEFSXzk6ICc5JywgLyogOSAqL1xuXG4gIC8vIEFscGhhYmV0IGNoYXJzLlxuICBDSEFSX1VQUEVSQ0FTRV9BOiAnQScsIC8qIEEgKi9cbiAgQ0hBUl9MT1dFUkNBU0VfQTogJ2EnLCAvKiBhICovXG4gIENIQVJfVVBQRVJDQVNFX1o6ICdaJywgLyogWiAqL1xuICBDSEFSX0xPV0VSQ0FTRV9aOiAneicsIC8qIHogKi9cblxuICBDSEFSX0xFRlRfUEFSRU5USEVTRVM6ICcoJywgLyogKCAqL1xuICBDSEFSX1JJR0hUX1BBUkVOVEhFU0VTOiAnKScsIC8qICkgKi9cblxuICBDSEFSX0FTVEVSSVNLOiAnKicsIC8qICogKi9cblxuICAvLyBOb24tYWxwaGFiZXRpYyBjaGFycy5cbiAgQ0hBUl9BTVBFUlNBTkQ6ICcmJywgLyogJiAqL1xuICBDSEFSX0FUOiAnQCcsIC8qIEAgKi9cbiAgQ0hBUl9CQUNLU0xBU0g6ICdcXFxcJywgLyogXFwgKi9cbiAgQ0hBUl9CQUNLVElDSzogJ2AnLCAvKiBgICovXG4gIENIQVJfQ0FSUklBR0VfUkVUVVJOOiAnXFxyJywgLyogXFxyICovXG4gIENIQVJfQ0lSQ1VNRkxFWF9BQ0NFTlQ6ICdeJywgLyogXiAqL1xuICBDSEFSX0NPTE9OOiAnOicsIC8qIDogKi9cbiAgQ0hBUl9DT01NQTogJywnLCAvKiAsICovXG4gIENIQVJfRE9MTEFSOiAnJCcsIC8qIC4gKi9cbiAgQ0hBUl9ET1Q6ICcuJywgLyogLiAqL1xuICBDSEFSX0RPVUJMRV9RVU9URTogJ1wiJywgLyogXCIgKi9cbiAgQ0hBUl9FUVVBTDogJz0nLCAvKiA9ICovXG4gIENIQVJfRVhDTEFNQVRJT05fTUFSSzogJyEnLCAvKiAhICovXG4gIENIQVJfRk9STV9GRUVEOiAnXFxmJywgLyogXFxmICovXG4gIENIQVJfRk9SV0FSRF9TTEFTSDogJy8nLCAvKiAvICovXG4gIENIQVJfSEFTSDogJyMnLCAvKiAjICovXG4gIENIQVJfSFlQSEVOX01JTlVTOiAnLScsIC8qIC0gKi9cbiAgQ0hBUl9MRUZUX0FOR0xFX0JSQUNLRVQ6ICc8JywgLyogPCAqL1xuICBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6ICd7JywgLyogeyAqL1xuICBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQ6ICdbJywgLyogWyAqL1xuICBDSEFSX0xJTkVfRkVFRDogJ1xcbicsIC8qIFxcbiAqL1xuICBDSEFSX05PX0JSRUFLX1NQQUNFOiAnXFx1MDBBMCcsIC8qIFxcdTAwQTAgKi9cbiAgQ0hBUl9QRVJDRU5UOiAnJScsIC8qICUgKi9cbiAgQ0hBUl9QTFVTOiAnKycsIC8qICsgKi9cbiAgQ0hBUl9RVUVTVElPTl9NQVJLOiAnPycsIC8qID8gKi9cbiAgQ0hBUl9SSUdIVF9BTkdMRV9CUkFDS0VUOiAnPicsIC8qID4gKi9cbiAgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRTogJ30nLCAvKiB9ICovXG4gIENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQ6ICddJywgLyogXSAqL1xuICBDSEFSX1NFTUlDT0xPTjogJzsnLCAvKiA7ICovXG4gIENIQVJfU0lOR0xFX1FVT1RFOiAnXFwnJywgLyogJyAqL1xuICBDSEFSX1NQQUNFOiAnICcsIC8qICAgKi9cbiAgQ0hBUl9UQUI6ICdcXHQnLCAvKiBcXHQgKi9cbiAgQ0hBUl9VTkRFUlNDT1JFOiAnXycsIC8qIF8gKi9cbiAgQ0hBUl9WRVJUSUNBTF9MSU5FOiAnfCcsIC8qIHwgKi9cbiAgQ0hBUl9aRVJPX1dJRFRIX05PQlJFQUtfU1BBQ0U6ICdcXHVGRUZGJyAvKiBcXHVGRUZGICovXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBzdHJpbmdpZnkgPSByZXF1aXJlKCcuL3N0cmluZ2lmeScpO1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IHtcbiAgTUFYX0xFTkdUSCxcbiAgQ0hBUl9CQUNLU0xBU0gsIC8qIFxcICovXG4gIENIQVJfQkFDS1RJQ0ssIC8qIGAgKi9cbiAgQ0hBUl9DT01NQSwgLyogLCAqL1xuICBDSEFSX0RPVCwgLyogLiAqL1xuICBDSEFSX0xFRlRfUEFSRU5USEVTRVMsIC8qICggKi9cbiAgQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUywgLyogKSAqL1xuICBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0UsIC8qIHsgKi9cbiAgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRSwgLyogfSAqL1xuICBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQsIC8qIFsgKi9cbiAgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCwgLyogXSAqL1xuICBDSEFSX0RPVUJMRV9RVU9URSwgLyogXCIgKi9cbiAgQ0hBUl9TSU5HTEVfUVVPVEUsIC8qICcgKi9cbiAgQ0hBUl9OT19CUkVBS19TUEFDRSxcbiAgQ0hBUl9aRVJPX1dJRFRIX05PQlJFQUtfU1BBQ0Vcbn0gPSByZXF1aXJlKCcuL2NvbnN0YW50cycpO1xuXG4vKipcbiAqIHBhcnNlXG4gKi9cblxuY29uc3QgcGFyc2UgPSAoaW5wdXQsIG9wdGlvbnMgPSB7fSkgPT4ge1xuICBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGEgc3RyaW5nJyk7XG4gIH1cblxuICBsZXQgb3B0cyA9IG9wdGlvbnMgfHwge307XG4gIGxldCBtYXggPSB0eXBlb2Ygb3B0cy5tYXhMZW5ndGggPT09ICdudW1iZXInID8gTWF0aC5taW4oTUFYX0xFTkdUSCwgb3B0cy5tYXhMZW5ndGgpIDogTUFYX0xFTkdUSDtcbiAgaWYgKGlucHV0Lmxlbmd0aCA+IG1heCkge1xuICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihgSW5wdXQgbGVuZ3RoICgke2lucHV0Lmxlbmd0aH0pLCBleGNlZWRzIG1heCBjaGFyYWN0ZXJzICgke21heH0pYCk7XG4gIH1cblxuICBsZXQgYXN0ID0geyB0eXBlOiAncm9vdCcsIGlucHV0LCBub2RlczogW10gfTtcbiAgbGV0IHN0YWNrID0gW2FzdF07XG4gIGxldCBibG9jayA9IGFzdDtcbiAgbGV0IHByZXYgPSBhc3Q7XG4gIGxldCBicmFja2V0cyA9IDA7XG4gIGxldCBsZW5ndGggPSBpbnB1dC5sZW5ndGg7XG4gIGxldCBpbmRleCA9IDA7XG4gIGxldCBkZXB0aCA9IDA7XG4gIGxldCB2YWx1ZTtcbiAgbGV0IG1lbW8gPSB7fTtcblxuICAvKipcbiAgICogSGVscGVyc1xuICAgKi9cblxuICBjb25zdCBhZHZhbmNlID0gKCkgPT4gaW5wdXRbaW5kZXgrK107XG4gIGNvbnN0IHB1c2ggPSBub2RlID0+IHtcbiAgICBpZiAobm9kZS50eXBlID09PSAndGV4dCcgJiYgcHJldi50eXBlID09PSAnZG90Jykge1xuICAgICAgcHJldi50eXBlID0gJ3RleHQnO1xuICAgIH1cblxuICAgIGlmIChwcmV2ICYmIHByZXYudHlwZSA9PT0gJ3RleHQnICYmIG5vZGUudHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICBwcmV2LnZhbHVlICs9IG5vZGUudmFsdWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYmxvY2subm9kZXMucHVzaChub2RlKTtcbiAgICBub2RlLnBhcmVudCA9IGJsb2NrO1xuICAgIG5vZGUucHJldiA9IHByZXY7XG4gICAgcHJldiA9IG5vZGU7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH07XG5cbiAgcHVzaCh7IHR5cGU6ICdib3MnIH0pO1xuXG4gIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgIGJsb2NrID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG4gICAgdmFsdWUgPSBhZHZhbmNlKCk7XG5cbiAgICAvKipcbiAgICAgKiBJbnZhbGlkIGNoYXJzXG4gICAgICovXG5cbiAgICBpZiAodmFsdWUgPT09IENIQVJfWkVST19XSURUSF9OT0JSRUFLX1NQQUNFIHx8IHZhbHVlID09PSBDSEFSX05PX0JSRUFLX1NQQUNFKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFc2NhcGVkIGNoYXJzXG4gICAgICovXG5cbiAgICBpZiAodmFsdWUgPT09IENIQVJfQkFDS1NMQVNIKSB7XG4gICAgICBwdXNoKHsgdHlwZTogJ3RleHQnLCB2YWx1ZTogKG9wdGlvbnMua2VlcEVzY2FwaW5nID8gdmFsdWUgOiAnJykgKyBhZHZhbmNlKCkgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSaWdodCBzcXVhcmUgYnJhY2tldCAobGl0ZXJhbCk6ICddJ1xuICAgICAqL1xuXG4gICAgaWYgKHZhbHVlID09PSBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUKSB7XG4gICAgICBwdXNoKHsgdHlwZTogJ3RleHQnLCB2YWx1ZTogJ1xcXFwnICsgdmFsdWUgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMZWZ0IHNxdWFyZSBicmFja2V0OiAnWydcbiAgICAgKi9cblxuICAgIGlmICh2YWx1ZSA9PT0gQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUKSB7XG4gICAgICBicmFja2V0cysrO1xuXG4gICAgICBsZXQgY2xvc2VkID0gdHJ1ZTtcbiAgICAgIGxldCBuZXh0O1xuXG4gICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGggJiYgKG5leHQgPSBhZHZhbmNlKCkpKSB7XG4gICAgICAgIHZhbHVlICs9IG5leHQ7XG5cbiAgICAgICAgaWYgKG5leHQgPT09IENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCkge1xuICAgICAgICAgIGJyYWNrZXRzKys7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV4dCA9PT0gQ0hBUl9CQUNLU0xBU0gpIHtcbiAgICAgICAgICB2YWx1ZSArPSBhZHZhbmNlKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV4dCA9PT0gQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCkge1xuICAgICAgICAgIGJyYWNrZXRzLS07XG5cbiAgICAgICAgICBpZiAoYnJhY2tldHMgPT09IDApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwdXNoKHsgdHlwZTogJ3RleHQnLCB2YWx1ZSB9KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcmVudGhlc2VzXG4gICAgICovXG5cbiAgICBpZiAodmFsdWUgPT09IENIQVJfTEVGVF9QQVJFTlRIRVNFUykge1xuICAgICAgYmxvY2sgPSBwdXNoKHsgdHlwZTogJ3BhcmVuJywgbm9kZXM6IFtdIH0pO1xuICAgICAgc3RhY2sucHVzaChibG9jayk7XG4gICAgICBwdXNoKHsgdHlwZTogJ3RleHQnLCB2YWx1ZSB9KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUykge1xuICAgICAgaWYgKGJsb2NrLnR5cGUgIT09ICdwYXJlbicpIHtcbiAgICAgICAgcHVzaCh7IHR5cGU6ICd0ZXh0JywgdmFsdWUgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgYmxvY2sgPSBzdGFjay5wb3AoKTtcbiAgICAgIHB1c2goeyB0eXBlOiAndGV4dCcsIHZhbHVlIH0pO1xuICAgICAgYmxvY2sgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFF1b3RlczogJ3xcInxgXG4gICAgICovXG5cbiAgICBpZiAodmFsdWUgPT09IENIQVJfRE9VQkxFX1FVT1RFIHx8IHZhbHVlID09PSBDSEFSX1NJTkdMRV9RVU9URSB8fCB2YWx1ZSA9PT0gQ0hBUl9CQUNLVElDSykge1xuICAgICAgbGV0IG9wZW4gPSB2YWx1ZTtcbiAgICAgIGxldCBuZXh0O1xuXG4gICAgICBpZiAob3B0aW9ucy5rZWVwUXVvdGVzICE9PSB0cnVlKSB7XG4gICAgICAgIHZhbHVlID0gJyc7XG4gICAgICB9XG5cbiAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCAmJiAobmV4dCA9IGFkdmFuY2UoKSkpIHtcbiAgICAgICAgaWYgKG5leHQgPT09IENIQVJfQkFDS1NMQVNIKSB7XG4gICAgICAgICAgdmFsdWUgKz0gbmV4dCArIGFkdmFuY2UoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXh0ID09PSBvcGVuKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnMua2VlcFF1b3RlcyA9PT0gdHJ1ZSkgdmFsdWUgKz0gbmV4dDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhbHVlICs9IG5leHQ7XG4gICAgICB9XG5cbiAgICAgIHB1c2goeyB0eXBlOiAndGV4dCcsIHZhbHVlIH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTGVmdCBjdXJseSBicmFjZTogJ3snXG4gICAgICovXG5cbiAgICBpZiAodmFsdWUgPT09IENIQVJfTEVGVF9DVVJMWV9CUkFDRSkge1xuICAgICAgZGVwdGgrKztcblxuICAgICAgbGV0IGRvbGxhciA9IHByZXYudmFsdWUgJiYgcHJldi52YWx1ZS5zbGljZSgtMSkgPT09ICckJyB8fCBibG9jay5kb2xsYXIgPT09IHRydWU7XG4gICAgICBsZXQgYnJhY2UgPSB7XG4gICAgICAgIHR5cGU6ICdicmFjZScsXG4gICAgICAgIG9wZW46IHRydWUsXG4gICAgICAgIGNsb3NlOiBmYWxzZSxcbiAgICAgICAgZG9sbGFyLFxuICAgICAgICBkZXB0aCxcbiAgICAgICAgY29tbWFzOiAwLFxuICAgICAgICByYW5nZXM6IDAsXG4gICAgICAgIG5vZGVzOiBbXVxuICAgICAgfTtcblxuICAgICAgYmxvY2sgPSBwdXNoKGJyYWNlKTtcbiAgICAgIHN0YWNrLnB1c2goYmxvY2spO1xuICAgICAgcHVzaCh7IHR5cGU6ICdvcGVuJywgdmFsdWUgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSaWdodCBjdXJseSBicmFjZTogJ30nXG4gICAgICovXG5cbiAgICBpZiAodmFsdWUgPT09IENIQVJfUklHSFRfQ1VSTFlfQlJBQ0UpIHtcbiAgICAgIGlmIChibG9jay50eXBlICE9PSAnYnJhY2UnKSB7XG4gICAgICAgIHB1c2goeyB0eXBlOiAndGV4dCcsIHZhbHVlIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgbGV0IHR5cGUgPSAnY2xvc2UnO1xuICAgICAgYmxvY2sgPSBzdGFjay5wb3AoKTtcbiAgICAgIGJsb2NrLmNsb3NlID0gdHJ1ZTtcblxuICAgICAgcHVzaCh7IHR5cGUsIHZhbHVlIH0pO1xuICAgICAgZGVwdGgtLTtcblxuICAgICAgYmxvY2sgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbW1hOiAnLCdcbiAgICAgKi9cblxuICAgIGlmICh2YWx1ZSA9PT0gQ0hBUl9DT01NQSAmJiBkZXB0aCA+IDApIHtcbiAgICAgIGlmIChibG9jay5yYW5nZXMgPiAwKSB7XG4gICAgICAgIGJsb2NrLnJhbmdlcyA9IDA7XG4gICAgICAgIGxldCBvcGVuID0gYmxvY2subm9kZXMuc2hpZnQoKTtcbiAgICAgICAgYmxvY2subm9kZXMgPSBbb3BlbiwgeyB0eXBlOiAndGV4dCcsIHZhbHVlOiBzdHJpbmdpZnkoYmxvY2spIH1dO1xuICAgICAgfVxuXG4gICAgICBwdXNoKHsgdHlwZTogJ2NvbW1hJywgdmFsdWUgfSk7XG4gICAgICBibG9jay5jb21tYXMrKztcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERvdDogJy4nXG4gICAgICovXG5cbiAgICBpZiAodmFsdWUgPT09IENIQVJfRE9UICYmIGRlcHRoID4gMCAmJiBibG9jay5jb21tYXMgPT09IDApIHtcbiAgICAgIGxldCBzaWJsaW5ncyA9IGJsb2NrLm5vZGVzO1xuXG4gICAgICBpZiAoZGVwdGggPT09IDAgfHwgc2libGluZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHB1c2goeyB0eXBlOiAndGV4dCcsIHZhbHVlIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByZXYudHlwZSA9PT0gJ2RvdCcpIHtcbiAgICAgICAgYmxvY2sucmFuZ2UgPSBbXTtcbiAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTtcbiAgICAgICAgcHJldi50eXBlID0gJ3JhbmdlJztcblxuICAgICAgICBpZiAoYmxvY2subm9kZXMubGVuZ3RoICE9PSAzICYmIGJsb2NrLm5vZGVzLmxlbmd0aCAhPT0gNSkge1xuICAgICAgICAgIGJsb2NrLmludmFsaWQgPSB0cnVlO1xuICAgICAgICAgIGJsb2NrLnJhbmdlcyA9IDA7XG4gICAgICAgICAgcHJldi50eXBlID0gJ3RleHQnO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgYmxvY2sucmFuZ2VzKys7XG4gICAgICAgIGJsb2NrLmFyZ3MgPSBbXTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcmV2LnR5cGUgPT09ICdyYW5nZScpIHtcbiAgICAgICAgc2libGluZ3MucG9wKCk7XG5cbiAgICAgICAgbGV0IGJlZm9yZSA9IHNpYmxpbmdzW3NpYmxpbmdzLmxlbmd0aCAtIDFdO1xuICAgICAgICBiZWZvcmUudmFsdWUgKz0gcHJldi52YWx1ZSArIHZhbHVlO1xuICAgICAgICBwcmV2ID0gYmVmb3JlO1xuICAgICAgICBibG9jay5yYW5nZXMtLTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHB1c2goeyB0eXBlOiAnZG90JywgdmFsdWUgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUZXh0XG4gICAgICovXG5cbiAgICBwdXNoKHsgdHlwZTogJ3RleHQnLCB2YWx1ZSB9KTtcbiAgfVxuXG4gIC8vIE1hcmsgaW1iYWxhbmNlZCBicmFjZXMgYW5kIGJyYWNrZXRzIGFzIGludmFsaWRcbiAgZG8ge1xuICAgIGJsb2NrID0gc3RhY2sucG9wKCk7XG5cbiAgICBpZiAoYmxvY2sudHlwZSAhPT0gJ3Jvb3QnKSB7XG4gICAgICBibG9jay5ub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICBpZiAoIW5vZGUubm9kZXMpIHtcbiAgICAgICAgICBpZiAobm9kZS50eXBlID09PSAnb3BlbicpIG5vZGUuaXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgICBpZiAobm9kZS50eXBlID09PSAnY2xvc2UnKSBub2RlLmlzQ2xvc2UgPSB0cnVlO1xuICAgICAgICAgIGlmICghbm9kZS5ub2Rlcykgbm9kZS50eXBlID0gJ3RleHQnO1xuICAgICAgICAgIG5vZGUuaW52YWxpZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBnZXQgdGhlIGxvY2F0aW9uIG9mIHRoZSBibG9jayBvbiBwYXJlbnQubm9kZXMgKGJsb2NrJ3Mgc2libGluZ3MpXG4gICAgICBsZXQgcGFyZW50ID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG4gICAgICBsZXQgaW5kZXggPSBwYXJlbnQubm9kZXMuaW5kZXhPZihibG9jayk7XG4gICAgICAvLyByZXBsYWNlIHRoZSAoaW52YWxpZCkgYmxvY2sgd2l0aCBpdCdzIG5vZGVzXG4gICAgICBwYXJlbnQubm9kZXMuc3BsaWNlKGluZGV4LCAxLCAuLi5ibG9jay5ub2Rlcyk7XG4gICAgfVxuICB9IHdoaWxlIChzdGFjay5sZW5ndGggPiAwKTtcblxuICBwdXNoKHsgdHlwZTogJ2VvcycgfSk7XG4gIHJldHVybiBhc3Q7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcnNlO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBzdHJpbmdpZnkgPSByZXF1aXJlKCcuL2xpYi9zdHJpbmdpZnknKTtcbmNvbnN0IGNvbXBpbGUgPSByZXF1aXJlKCcuL2xpYi9jb21waWxlJyk7XG5jb25zdCBleHBhbmQgPSByZXF1aXJlKCcuL2xpYi9leHBhbmQnKTtcbmNvbnN0IHBhcnNlID0gcmVxdWlyZSgnLi9saWIvcGFyc2UnKTtcblxuLyoqXG4gKiBFeHBhbmQgdGhlIGdpdmVuIHBhdHRlcm4gb3IgY3JlYXRlIGEgcmVnZXgtY29tcGF0aWJsZSBzdHJpbmcuXG4gKlxuICogYGBganNcbiAqIGNvbnN0IGJyYWNlcyA9IHJlcXVpcmUoJ2JyYWNlcycpO1xuICogY29uc29sZS5sb2coYnJhY2VzKCd7YSxiLGN9JywgeyBjb21waWxlOiB0cnVlIH0pKTsgLy89PiBbJyhhfGJ8YyknXVxuICogY29uc29sZS5sb2coYnJhY2VzKCd7YSxiLGN9JykpOyAvLz0+IFsnYScsICdiJywgJ2MnXVxuICogYGBgXG4gKiBAcGFyYW0ge1N0cmluZ30gYHN0cmBcbiAqIEBwYXJhbSB7T2JqZWN0fSBgb3B0aW9uc2BcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuY29uc3QgYnJhY2VzID0gKGlucHV0LCBvcHRpb25zID0ge30pID0+IHtcbiAgbGV0IG91dHB1dCA9IFtdO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KGlucHV0KSkge1xuICAgIGZvciAobGV0IHBhdHRlcm4gb2YgaW5wdXQpIHtcbiAgICAgIGxldCByZXN1bHQgPSBicmFjZXMuY3JlYXRlKHBhdHRlcm4sIG9wdGlvbnMpO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgICBvdXRwdXQucHVzaCguLi5yZXN1bHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0cHV0LnB1c2gocmVzdWx0KTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3V0cHV0ID0gW10uY29uY2F0KGJyYWNlcy5jcmVhdGUoaW5wdXQsIG9wdGlvbnMpKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZXhwYW5kID09PSB0cnVlICYmIG9wdGlvbnMubm9kdXBlcyA9PT0gdHJ1ZSkge1xuICAgIG91dHB1dCA9IFsuLi5uZXcgU2V0KG91dHB1dCldO1xuICB9XG4gIHJldHVybiBvdXRwdXQ7XG59O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBnaXZlbiBgc3RyYCB3aXRoIHRoZSBnaXZlbiBgb3B0aW9uc2AuXG4gKlxuICogYGBganNcbiAqIC8vIGJyYWNlcy5wYXJzZShwYXR0ZXJuLCBbLCBvcHRpb25zXSk7XG4gKiBjb25zdCBhc3QgPSBicmFjZXMucGFyc2UoJ2Eve2IsY30vZCcpO1xuICogY29uc29sZS5sb2coYXN0KTtcbiAqIGBgYFxuICogQHBhcmFtIHtTdHJpbmd9IHBhdHRlcm4gQnJhY2UgcGF0dGVybiB0byBwYXJzZVxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAqIEByZXR1cm4ge09iamVjdH0gUmV0dXJucyBhbiBBU1RcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuYnJhY2VzLnBhcnNlID0gKGlucHV0LCBvcHRpb25zID0ge30pID0+IHBhcnNlKGlucHV0LCBvcHRpb25zKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYnJhY2VzIHN0cmluZyBmcm9tIGFuIEFTVCwgb3IgYW4gQVNUIG5vZGUuXG4gKlxuICogYGBganNcbiAqIGNvbnN0IGJyYWNlcyA9IHJlcXVpcmUoJ2JyYWNlcycpO1xuICogbGV0IGFzdCA9IGJyYWNlcy5wYXJzZSgnZm9vL3thLGJ9L2JhcicpO1xuICogY29uc29sZS5sb2coc3RyaW5naWZ5KGFzdC5ub2Rlc1syXSkpOyAvLz0+ICd7YSxifSdcbiAqIGBgYFxuICogQHBhcmFtIHtTdHJpbmd9IGBpbnB1dGAgQnJhY2UgcGF0dGVybiBvciBBU1QuXG4gKiBAcGFyYW0ge09iamVjdH0gYG9wdGlvbnNgXG4gKiBAcmV0dXJuIHtBcnJheX0gUmV0dXJucyBhbiBhcnJheSBvZiBleHBhbmRlZCB2YWx1ZXMuXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmJyYWNlcy5zdHJpbmdpZnkgPSAoaW5wdXQsIG9wdGlvbnMgPSB7fSkgPT4ge1xuICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBzdHJpbmdpZnkoYnJhY2VzLnBhcnNlKGlucHV0LCBvcHRpb25zKSwgb3B0aW9ucyk7XG4gIH1cbiAgcmV0dXJuIHN0cmluZ2lmeShpbnB1dCwgb3B0aW9ucyk7XG59O1xuXG4vKipcbiAqIENvbXBpbGVzIGEgYnJhY2UgcGF0dGVybiBpbnRvIGEgcmVnZXgtY29tcGF0aWJsZSwgb3B0aW1pemVkIHN0cmluZy5cbiAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSB0aGUgbWFpbiBbYnJhY2VzXSgjYnJhY2VzKSBmdW5jdGlvbiBieSBkZWZhdWx0LlxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBicmFjZXMgPSByZXF1aXJlKCdicmFjZXMnKTtcbiAqIGNvbnNvbGUubG9nKGJyYWNlcy5jb21waWxlKCdhL3tiLGN9L2QnKSk7XG4gKiAvLz0+IFsnYS8oYnxjKS9kJ11cbiAqIGBgYFxuICogQHBhcmFtIHtTdHJpbmd9IGBpbnB1dGAgQnJhY2UgcGF0dGVybiBvciBBU1QuXG4gKiBAcGFyYW0ge09iamVjdH0gYG9wdGlvbnNgXG4gKiBAcmV0dXJuIHtBcnJheX0gUmV0dXJucyBhbiBhcnJheSBvZiBleHBhbmRlZCB2YWx1ZXMuXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmJyYWNlcy5jb21waWxlID0gKGlucHV0LCBvcHRpb25zID0ge30pID0+IHtcbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICBpbnB1dCA9IGJyYWNlcy5wYXJzZShpbnB1dCwgb3B0aW9ucyk7XG4gIH1cbiAgcmV0dXJuIGNvbXBpbGUoaW5wdXQsIG9wdGlvbnMpO1xufTtcblxuLyoqXG4gKiBFeHBhbmRzIGEgYnJhY2UgcGF0dGVybiBpbnRvIGFuIGFycmF5LiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgdGhlXG4gKiBtYWluIFticmFjZXNdKCNicmFjZXMpIGZ1bmN0aW9uIHdoZW4gYG9wdGlvbnMuZXhwYW5kYCBpcyB0cnVlLiBCZWZvcmVcbiAqIHVzaW5nIHRoaXMgbWV0aG9kIGl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgcmVhZCB0aGUgW3BlcmZvcm1hbmNlIG5vdGVzXSgjcGVyZm9ybWFuY2UpKVxuICogYW5kIGFkdmFudGFnZXMgb2YgdXNpbmcgWy5jb21waWxlXSgjY29tcGlsZSkgaW5zdGVhZC5cbiAqXG4gKiBgYGBqc1xuICogY29uc3QgYnJhY2VzID0gcmVxdWlyZSgnYnJhY2VzJyk7XG4gKiBjb25zb2xlLmxvZyhicmFjZXMuZXhwYW5kKCdhL3tiLGN9L2QnKSk7XG4gKiAvLz0+IFsnYS9iL2QnLCAnYS9jL2QnXTtcbiAqIGBgYFxuICogQHBhcmFtIHtTdHJpbmd9IGBwYXR0ZXJuYCBCcmFjZSBwYXR0ZXJuXG4gKiBAcGFyYW0ge09iamVjdH0gYG9wdGlvbnNgXG4gKiBAcmV0dXJuIHtBcnJheX0gUmV0dXJucyBhbiBhcnJheSBvZiBleHBhbmRlZCB2YWx1ZXMuXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmJyYWNlcy5leHBhbmQgPSAoaW5wdXQsIG9wdGlvbnMgPSB7fSkgPT4ge1xuICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgIGlucHV0ID0gYnJhY2VzLnBhcnNlKGlucHV0LCBvcHRpb25zKTtcbiAgfVxuXG4gIGxldCByZXN1bHQgPSBleHBhbmQoaW5wdXQsIG9wdGlvbnMpO1xuXG4gIC8vIGZpbHRlciBvdXQgZW1wdHkgc3RyaW5ncyBpZiBzcGVjaWZpZWRcbiAgaWYgKG9wdGlvbnMubm9lbXB0eSA9PT0gdHJ1ZSkge1xuICAgIHJlc3VsdCA9IHJlc3VsdC5maWx0ZXIoQm9vbGVhbik7XG4gIH1cblxuICAvLyBmaWx0ZXIgb3V0IGR1cGxpY2F0ZXMgaWYgc3BlY2lmaWVkXG4gIGlmIChvcHRpb25zLm5vZHVwZXMgPT09IHRydWUpIHtcbiAgICByZXN1bHQgPSBbLi4ubmV3IFNldChyZXN1bHQpXTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vKipcbiAqIFByb2Nlc3NlcyBhIGJyYWNlIHBhdHRlcm4gYW5kIHJldHVybnMgZWl0aGVyIGFuIGV4cGFuZGVkIGFycmF5XG4gKiAoaWYgYG9wdGlvbnMuZXhwYW5kYCBpcyB0cnVlKSwgYSBoaWdobHkgb3B0aW1pemVkIHJlZ2V4LWNvbXBhdGlibGUgc3RyaW5nLlxuICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGJ5IHRoZSBtYWluIFticmFjZXNdKCNicmFjZXMpIGZ1bmN0aW9uLlxuICpcbiAqIGBgYGpzXG4gKiBjb25zdCBicmFjZXMgPSByZXF1aXJlKCdicmFjZXMnKTtcbiAqIGNvbnNvbGUubG9nKGJyYWNlcy5jcmVhdGUoJ3VzZXItezIwMC4uMzAwfS9wcm9qZWN0LXthLGIsY30tezEuLjEwfScpKVxuICogLy89PiAndXNlci0oMjBbMC05XXwyWzEtOV1bMC05XXwzMDApL3Byb2plY3QtKGF8YnxjKS0oWzEtOV18MTApJ1xuICogYGBgXG4gKiBAcGFyYW0ge1N0cmluZ30gYHBhdHRlcm5gIEJyYWNlIHBhdHRlcm5cbiAqIEBwYXJhbSB7T2JqZWN0fSBgb3B0aW9uc2BcbiAqIEByZXR1cm4ge0FycmF5fSBSZXR1cm5zIGFuIGFycmF5IG9mIGV4cGFuZGVkIHZhbHVlcy5cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuYnJhY2VzLmNyZWF0ZSA9IChpbnB1dCwgb3B0aW9ucyA9IHt9KSA9PiB7XG4gIGlmIChpbnB1dCA9PT0gJycgfHwgaW5wdXQubGVuZ3RoIDwgMykge1xuICAgIHJldHVybiBbaW5wdXRdO1xuICB9XG5cbiByZXR1cm4gb3B0aW9ucy5leHBhbmQgIT09IHRydWVcbiAgICA/IGJyYWNlcy5jb21waWxlKGlucHV0LCBvcHRpb25zKVxuICAgIDogYnJhY2VzLmV4cGFuZChpbnB1dCwgb3B0aW9ucyk7XG59O1xuXG4vKipcbiAqIEV4cG9zZSBcImJyYWNlc1wiXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBicmFjZXM7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vYmluYXJ5LWV4dGVuc2lvbnMuanNvbicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmNvbnN0IGJpbmFyeUV4dGVuc2lvbnMgPSByZXF1aXJlKCdiaW5hcnktZXh0ZW5zaW9ucycpO1xuXG5jb25zdCBleHRlbnNpb25zID0gbmV3IFNldChiaW5hcnlFeHRlbnNpb25zKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmaWxlUGF0aCA9PiBleHRlbnNpb25zLmhhcyhwYXRoLmV4dG5hbWUoZmlsZVBhdGgpLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCkpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCB7c2VwfSA9IHJlcXVpcmUoJ3BhdGgnKTtcbmNvbnN0IHtwbGF0Zm9ybX0gPSBwcm9jZXNzO1xuXG5leHBvcnRzLkVWX0FMTCA9ICdhbGwnO1xuZXhwb3J0cy5FVl9SRUFEWSA9ICdyZWFkeSc7XG5leHBvcnRzLkVWX0FERCA9ICdhZGQnO1xuZXhwb3J0cy5FVl9DSEFOR0UgPSAnY2hhbmdlJztcbmV4cG9ydHMuRVZfQUREX0RJUiA9ICdhZGREaXInO1xuZXhwb3J0cy5FVl9VTkxJTksgPSAndW5saW5rJztcbmV4cG9ydHMuRVZfVU5MSU5LX0RJUiA9ICd1bmxpbmtEaXInO1xuZXhwb3J0cy5FVl9SQVcgPSAncmF3JztcbmV4cG9ydHMuRVZfRVJST1IgPSAnZXJyb3InO1xuXG5leHBvcnRzLlNUUl9EQVRBID0gJ2RhdGEnO1xuZXhwb3J0cy5TVFJfRU5EID0gJ2VuZCc7XG5leHBvcnRzLlNUUl9DTE9TRSA9ICdjbG9zZSc7XG5cbmV4cG9ydHMuRlNFVkVOVF9DUkVBVEVEID0gJ2NyZWF0ZWQnO1xuZXhwb3J0cy5GU0VWRU5UX01PRElGSUVEID0gJ21vZGlmaWVkJztcbmV4cG9ydHMuRlNFVkVOVF9ERUxFVEVEID0gJ2RlbGV0ZWQnO1xuZXhwb3J0cy5GU0VWRU5UX01PVkVEID0gJ21vdmVkJztcbmV4cG9ydHMuRlNFVkVOVF9DTE9ORUQgPSAnY2xvbmVkJztcbmV4cG9ydHMuRlNFVkVOVF9VTktOT1dOID0gJ3Vua25vd24nO1xuZXhwb3J0cy5GU0VWRU5UX1RZUEVfRklMRSA9ICdmaWxlJztcbmV4cG9ydHMuRlNFVkVOVF9UWVBFX0RJUkVDVE9SWSA9ICdkaXJlY3RvcnknO1xuZXhwb3J0cy5GU0VWRU5UX1RZUEVfU1lNTElOSyA9ICdzeW1saW5rJztcblxuZXhwb3J0cy5LRVlfTElTVEVORVJTID0gJ2xpc3RlbmVycyc7XG5leHBvcnRzLktFWV9FUlIgPSAnZXJySGFuZGxlcnMnO1xuZXhwb3J0cy5LRVlfUkFXID0gJ3Jhd0VtaXR0ZXJzJztcbmV4cG9ydHMuSEFORExFUl9LRVlTID0gW2V4cG9ydHMuS0VZX0xJU1RFTkVSUywgZXhwb3J0cy5LRVlfRVJSLCBleHBvcnRzLktFWV9SQVddO1xuXG5leHBvcnRzLkRPVF9TTEFTSCA9IGAuJHtzZXB9YDtcblxuZXhwb3J0cy5CQUNLX1NMQVNIX1JFID0gL1xcXFwvZztcbmV4cG9ydHMuRE9VQkxFX1NMQVNIX1JFID0gL1xcL1xcLy87XG5leHBvcnRzLlNMQVNIX09SX0JBQ0tfU0xBU0hfUkUgPSAvWy9cXFxcXS87XG5leHBvcnRzLkRPVF9SRSA9IC9cXC4uKlxcLihzd1tweF0pJHx+JHxcXC5zdWJsLipcXC50bXAvO1xuZXhwb3J0cy5SRVBMQUNFUl9SRSA9IC9eXFwuWy9cXFxcXS87XG5cbmV4cG9ydHMuU0xBU0ggPSAnLyc7XG5leHBvcnRzLlNMQVNIX1NMQVNIID0gJy8vJztcbmV4cG9ydHMuQlJBQ0VfU1RBUlQgPSAneyc7XG5leHBvcnRzLkJBTkcgPSAnISc7XG5leHBvcnRzLk9ORV9ET1QgPSAnLic7XG5leHBvcnRzLlRXT19ET1RTID0gJy4uJztcbmV4cG9ydHMuU1RBUiA9ICcqJztcbmV4cG9ydHMuR0xPQlNUQVIgPSAnKionO1xuZXhwb3J0cy5ST09UX0dMT0JTVEFSID0gJy8qKi8qJztcbmV4cG9ydHMuU0xBU0hfR0xPQlNUQVIgPSAnLyoqJztcbmV4cG9ydHMuRElSX1NVRkZJWCA9ICdEaXInO1xuZXhwb3J0cy5BTllNQVRDSF9PUFRTID0ge2RvdDogdHJ1ZX07XG5leHBvcnRzLlNUUklOR19UWVBFID0gJ3N0cmluZyc7XG5leHBvcnRzLkZVTkNUSU9OX1RZUEUgPSAnZnVuY3Rpb24nO1xuZXhwb3J0cy5FTVBUWV9TVFIgPSAnJztcbmV4cG9ydHMuRU1QVFlfRk4gPSAoKSA9PiB7fTtcbmV4cG9ydHMuSURFTlRJVFlfRk4gPSB2YWwgPT4gdmFsO1xuXG5leHBvcnRzLmlzV2luZG93cyA9IHBsYXRmb3JtID09PSAnd2luMzInO1xuZXhwb3J0cy5pc01hY29zID0gcGxhdGZvcm0gPT09ICdkYXJ3aW4nO1xuZXhwb3J0cy5pc0xpbnV4ID0gcGxhdGZvcm0gPT09ICdsaW51eCc7XG4iLCIndXNlIHN0cmljdCc7XG5cbmNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTtcbmNvbnN0IHN5c1BhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5jb25zdCB7IHByb21pc2lmeSB9ID0gcmVxdWlyZSgndXRpbCcpO1xuY29uc3QgaXNCaW5hcnlQYXRoID0gcmVxdWlyZSgnaXMtYmluYXJ5LXBhdGgnKTtcbmNvbnN0IHtcbiAgaXNXaW5kb3dzLFxuICBpc0xpbnV4LFxuICBFTVBUWV9GTixcbiAgRU1QVFlfU1RSLFxuICBLRVlfTElTVEVORVJTLFxuICBLRVlfRVJSLFxuICBLRVlfUkFXLFxuICBIQU5ETEVSX0tFWVMsXG4gIEVWX0NIQU5HRSxcbiAgRVZfQURELFxuICBFVl9BRERfRElSLFxuICBFVl9FUlJPUixcbiAgU1RSX0RBVEEsXG4gIFNUUl9FTkQsXG4gIEJSQUNFX1NUQVJULFxuICBTVEFSXG59ID0gcmVxdWlyZSgnLi9jb25zdGFudHMnKTtcblxuY29uc3QgVEhST1RUTEVfTU9ERV9XQVRDSCA9ICd3YXRjaCc7XG5cbmNvbnN0IG9wZW4gPSBwcm9taXNpZnkoZnMub3Blbik7XG5jb25zdCBzdGF0ID0gcHJvbWlzaWZ5KGZzLnN0YXQpO1xuY29uc3QgbHN0YXQgPSBwcm9taXNpZnkoZnMubHN0YXQpO1xuY29uc3QgY2xvc2UgPSBwcm9taXNpZnkoZnMuY2xvc2UpO1xuY29uc3QgZnNyZWFscGF0aCA9IHByb21pc2lmeShmcy5yZWFscGF0aCk7XG5cbmNvbnN0IHN0YXRNZXRob2RzID0geyBsc3RhdCwgc3RhdCB9O1xuXG4vLyBUT0RPOiBlbWl0IGVycm9ycyBwcm9wZXJseS4gRXhhbXBsZTogRU1GSUxFIG9uIE1hY29zLlxuY29uc3QgZm9yZWFjaCA9ICh2YWwsIGZuKSA9PiB7XG4gIGlmICh2YWwgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICB2YWwuZm9yRWFjaChmbik7XG4gIH0gZWxzZSB7XG4gICAgZm4odmFsKTtcbiAgfVxufTtcblxuY29uc3QgYWRkQW5kQ29udmVydCA9IChtYWluLCBwcm9wLCBpdGVtKSA9PiB7XG4gIGxldCBjb250YWluZXIgPSBtYWluW3Byb3BdO1xuICBpZiAoIShjb250YWluZXIgaW5zdGFuY2VvZiBTZXQpKSB7XG4gICAgbWFpbltwcm9wXSA9IGNvbnRhaW5lciA9IG5ldyBTZXQoW2NvbnRhaW5lcl0pO1xuICB9XG4gIGNvbnRhaW5lci5hZGQoaXRlbSk7XG59O1xuXG5jb25zdCBjbGVhckl0ZW0gPSBjb250ID0+IGtleSA9PiB7XG4gIGNvbnN0IHNldCA9IGNvbnRba2V5XTtcbiAgaWYgKHNldCBpbnN0YW5jZW9mIFNldCkge1xuICAgIHNldC5jbGVhcigpO1xuICB9IGVsc2Uge1xuICAgIGRlbGV0ZSBjb250W2tleV07XG4gIH1cbn07XG5cbmNvbnN0IGRlbEZyb21TZXQgPSAobWFpbiwgcHJvcCwgaXRlbSkgPT4ge1xuICBjb25zdCBjb250YWluZXIgPSBtYWluW3Byb3BdO1xuICBpZiAoY29udGFpbmVyIGluc3RhbmNlb2YgU2V0KSB7XG4gICAgY29udGFpbmVyLmRlbGV0ZShpdGVtKTtcbiAgfSBlbHNlIGlmIChjb250YWluZXIgPT09IGl0ZW0pIHtcbiAgICBkZWxldGUgbWFpbltwcm9wXTtcbiAgfVxufTtcblxuY29uc3QgaXNFbXB0eVNldCA9ICh2YWwpID0+IHZhbCBpbnN0YW5jZW9mIFNldCA/IHZhbC5zaXplID09PSAwIDogIXZhbDtcblxuLyoqXG4gKiBAdHlwZWRlZiB7U3RyaW5nfSBQYXRoXG4gKi9cblxuLy8gZnNfd2F0Y2ggaGVscGVyc1xuXG4vLyBvYmplY3QgdG8gaG9sZCBwZXItcHJvY2VzcyBmc193YXRjaCBpbnN0YW5jZXNcbi8vIChtYXkgYmUgc2hhcmVkIGFjcm9zcyBjaG9raWRhciBGU1dhdGNoZXIgaW5zdGFuY2VzKVxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEZzV2F0Y2hDb250YWluZXJcbiAqIEBwcm9wZXJ0eSB7U2V0fSBsaXN0ZW5lcnNcbiAqIEBwcm9wZXJ0eSB7U2V0fSBlcnJIYW5kbGVyc1xuICogQHByb3BlcnR5IHtTZXR9IHJhd0VtaXR0ZXJzXG4gKiBAcHJvcGVydHkge2ZzLkZTV2F0Y2hlcj19IHdhdGNoZXJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbj19IHdhdGNoZXJVbnVzYWJsZVxuICovXG5cbi8qKlxuICogQHR5cGUge01hcDxTdHJpbmcsRnNXYXRjaENvbnRhaW5lcj59XG4gKi9cbmNvbnN0IEZzV2F0Y2hJbnN0YW5jZXMgPSBuZXcgTWFwKCk7XG5cbi8qKlxuICogSW5zdGFudGlhdGVzIHRoZSBmc193YXRjaCBpbnRlcmZhY2VcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXRoIHRvIGJlIHdhdGNoZWRcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIHRvIGJlIHBhc3NlZCB0byBmc193YXRjaFxuICogQHBhcmFtIHtGdW5jdGlvbn0gbGlzdGVuZXIgbWFpbiBldmVudCBoYW5kbGVyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcnJIYW5kbGVyIGVtaXRzIGluZm8gYWJvdXQgZXJyb3JzXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlbWl0UmF3IGVtaXRzIHJhdyBldmVudCBkYXRhXG4gKiBAcmV0dXJucyB7ZnMuRlNXYXRjaGVyfSBuZXcgZnNldmVudHMgaW5zdGFuY2VcbiAqL1xuZnVuY3Rpb24gY3JlYXRlRnNXYXRjaEluc3RhbmNlKHBhdGgsIG9wdGlvbnMsIGxpc3RlbmVyLCBlcnJIYW5kbGVyLCBlbWl0UmF3KSB7XG4gIGNvbnN0IGhhbmRsZUV2ZW50ID0gKHJhd0V2ZW50LCBldlBhdGgpID0+IHtcbiAgICBsaXN0ZW5lcihwYXRoKTtcbiAgICBlbWl0UmF3KHJhd0V2ZW50LCBldlBhdGgsIHt3YXRjaGVkUGF0aDogcGF0aH0pO1xuXG4gICAgLy8gZW1pdCBiYXNlZCBvbiBldmVudHMgb2NjdXJyaW5nIGZvciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5J3Mgd2F0Y2hlciBpblxuICAgIC8vIGNhc2UgdGhlIGZpbGUncyB3YXRjaGVyIG1pc3NlcyBpdCAoYW5kIHJlbHkgb24gdGhyb3R0bGluZyB0byBkZS1kdXBlKVxuICAgIGlmIChldlBhdGggJiYgcGF0aCAhPT0gZXZQYXRoKSB7XG4gICAgICBmc1dhdGNoQnJvYWRjYXN0KFxuICAgICAgICBzeXNQYXRoLnJlc29sdmUocGF0aCwgZXZQYXRoKSwgS0VZX0xJU1RFTkVSUywgc3lzUGF0aC5qb2luKHBhdGgsIGV2UGF0aClcbiAgICAgICk7XG4gICAgfVxuICB9O1xuICB0cnkge1xuICAgIHJldHVybiBmcy53YXRjaChwYXRoLCBvcHRpb25zLCBoYW5kbGVFdmVudCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgZXJySGFuZGxlcihlcnJvcik7XG4gIH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgZm9yIHBhc3NpbmcgZnNfd2F0Y2ggZXZlbnQgZGF0YSB0byBhIGNvbGxlY3Rpb24gb2YgbGlzdGVuZXJzXG4gKiBAcGFyYW0ge1BhdGh9IGZ1bGxQYXRoIGFic29sdXRlIHBhdGggYm91bmQgdG8gZnNfd2F0Y2ggaW5zdGFuY2VcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlIGxpc3RlbmVyIHR5cGVcbiAqIEBwYXJhbSB7Kj19IHZhbDEgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byBsaXN0ZW5lcnNcbiAqIEBwYXJhbSB7Kj19IHZhbDJcbiAqIEBwYXJhbSB7Kj19IHZhbDNcbiAqL1xuY29uc3QgZnNXYXRjaEJyb2FkY2FzdCA9IChmdWxsUGF0aCwgdHlwZSwgdmFsMSwgdmFsMiwgdmFsMykgPT4ge1xuICBjb25zdCBjb250ID0gRnNXYXRjaEluc3RhbmNlcy5nZXQoZnVsbFBhdGgpO1xuICBpZiAoIWNvbnQpIHJldHVybjtcbiAgZm9yZWFjaChjb250W3R5cGVdLCAobGlzdGVuZXIpID0+IHtcbiAgICBsaXN0ZW5lcih2YWwxLCB2YWwyLCB2YWwzKTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIEluc3RhbnRpYXRlcyB0aGUgZnNfd2F0Y2ggaW50ZXJmYWNlIG9yIGJpbmRzIGxpc3RlbmVyc1xuICogdG8gYW4gZXhpc3Rpbmcgb25lIGNvdmVyaW5nIHRoZSBzYW1lIGZpbGUgc3lzdGVtIGVudHJ5XG4gKiBAcGFyYW0ge1N0cmluZ30gcGF0aFxuICogQHBhcmFtIHtTdHJpbmd9IGZ1bGxQYXRoIGFic29sdXRlIHBhdGhcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIHRvIGJlIHBhc3NlZCB0byBmc193YXRjaFxuICogQHBhcmFtIHtPYmplY3R9IGhhbmRsZXJzIGNvbnRhaW5lciBmb3IgZXZlbnQgbGlzdGVuZXIgZnVuY3Rpb25zXG4gKi9cbmNvbnN0IHNldEZzV2F0Y2hMaXN0ZW5lciA9IChwYXRoLCBmdWxsUGF0aCwgb3B0aW9ucywgaGFuZGxlcnMpID0+IHtcbiAgY29uc3Qge2xpc3RlbmVyLCBlcnJIYW5kbGVyLCByYXdFbWl0dGVyfSA9IGhhbmRsZXJzO1xuICBsZXQgY29udCA9IEZzV2F0Y2hJbnN0YW5jZXMuZ2V0KGZ1bGxQYXRoKTtcblxuICAvKiogQHR5cGUge2ZzLkZTV2F0Y2hlcj19ICovXG4gIGxldCB3YXRjaGVyO1xuICBpZiAoIW9wdGlvbnMucGVyc2lzdGVudCkge1xuICAgIHdhdGNoZXIgPSBjcmVhdGVGc1dhdGNoSW5zdGFuY2UoXG4gICAgICBwYXRoLCBvcHRpb25zLCBsaXN0ZW5lciwgZXJySGFuZGxlciwgcmF3RW1pdHRlclxuICAgICk7XG4gICAgcmV0dXJuIHdhdGNoZXIuY2xvc2UuYmluZCh3YXRjaGVyKTtcbiAgfVxuICBpZiAoY29udCkge1xuICAgIGFkZEFuZENvbnZlcnQoY29udCwgS0VZX0xJU1RFTkVSUywgbGlzdGVuZXIpO1xuICAgIGFkZEFuZENvbnZlcnQoY29udCwgS0VZX0VSUiwgZXJySGFuZGxlcik7XG4gICAgYWRkQW5kQ29udmVydChjb250LCBLRVlfUkFXLCByYXdFbWl0dGVyKTtcbiAgfSBlbHNlIHtcbiAgICB3YXRjaGVyID0gY3JlYXRlRnNXYXRjaEluc3RhbmNlKFxuICAgICAgcGF0aCxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBmc1dhdGNoQnJvYWRjYXN0LmJpbmQobnVsbCwgZnVsbFBhdGgsIEtFWV9MSVNURU5FUlMpLFxuICAgICAgZXJySGFuZGxlciwgLy8gbm8gbmVlZCB0byB1c2UgYnJvYWRjYXN0IGhlcmVcbiAgICAgIGZzV2F0Y2hCcm9hZGNhc3QuYmluZChudWxsLCBmdWxsUGF0aCwgS0VZX1JBVylcbiAgICApO1xuICAgIGlmICghd2F0Y2hlcikgcmV0dXJuO1xuICAgIHdhdGNoZXIub24oRVZfRVJST1IsIGFzeW5jIChlcnJvcikgPT4ge1xuICAgICAgY29uc3QgYnJvYWRjYXN0RXJyID0gZnNXYXRjaEJyb2FkY2FzdC5iaW5kKG51bGwsIGZ1bGxQYXRoLCBLRVlfRVJSKTtcbiAgICAgIGNvbnQud2F0Y2hlclVudXNhYmxlID0gdHJ1ZTsgLy8gZG9jdW1lbnRlZCBzaW5jZSBOb2RlIDEwLjQuMVxuICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL2pveWVudC9ub2RlL2lzc3Vlcy80MzM3XG4gICAgICBpZiAoaXNXaW5kb3dzICYmIGVycm9yLmNvZGUgPT09ICdFUEVSTScpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBmZCA9IGF3YWl0IG9wZW4ocGF0aCwgJ3InKTtcbiAgICAgICAgICBhd2FpdCBjbG9zZShmZCk7XG4gICAgICAgICAgYnJvYWRjYXN0RXJyKGVycm9yKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7fVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnJvYWRjYXN0RXJyKGVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb250ID0ge1xuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcixcbiAgICAgIGVyckhhbmRsZXJzOiBlcnJIYW5kbGVyLFxuICAgICAgcmF3RW1pdHRlcnM6IHJhd0VtaXR0ZXIsXG4gICAgICB3YXRjaGVyXG4gICAgfTtcbiAgICBGc1dhdGNoSW5zdGFuY2VzLnNldChmdWxsUGF0aCwgY29udCk7XG4gIH1cbiAgLy8gY29uc3QgaW5kZXggPSBjb250Lmxpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKTtcblxuICAvLyByZW1vdmVzIHRoaXMgaW5zdGFuY2UncyBsaXN0ZW5lcnMgYW5kIGNsb3NlcyB0aGUgdW5kZXJseWluZyBmc193YXRjaFxuICAvLyBpbnN0YW5jZSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBsaXN0ZW5lcnMgbGVmdFxuICByZXR1cm4gKCkgPT4ge1xuICAgIGRlbEZyb21TZXQoY29udCwgS0VZX0xJU1RFTkVSUywgbGlzdGVuZXIpO1xuICAgIGRlbEZyb21TZXQoY29udCwgS0VZX0VSUiwgZXJySGFuZGxlcik7XG4gICAgZGVsRnJvbVNldChjb250LCBLRVlfUkFXLCByYXdFbWl0dGVyKTtcbiAgICBpZiAoaXNFbXB0eVNldChjb250Lmxpc3RlbmVycykpIHtcbiAgICAgIC8vIENoZWNrIHRvIHByb3RlY3QgYWdhaW5zdCBpc3N1ZSBnaC03MzAuXG4gICAgICAvLyBpZiAoY29udC53YXRjaGVyVW51c2FibGUpIHtcbiAgICAgIGNvbnQud2F0Y2hlci5jbG9zZSgpO1xuICAgICAgLy8gfVxuICAgICAgRnNXYXRjaEluc3RhbmNlcy5kZWxldGUoZnVsbFBhdGgpO1xuICAgICAgSEFORExFUl9LRVlTLmZvckVhY2goY2xlYXJJdGVtKGNvbnQpKTtcbiAgICAgIGNvbnQud2F0Y2hlciA9IHVuZGVmaW5lZDtcbiAgICAgIE9iamVjdC5mcmVlemUoY29udCk7XG4gICAgfVxuICB9O1xufTtcblxuLy8gZnNfd2F0Y2hGaWxlIGhlbHBlcnNcblxuLy8gb2JqZWN0IHRvIGhvbGQgcGVyLXByb2Nlc3MgZnNfd2F0Y2hGaWxlIGluc3RhbmNlc1xuLy8gKG1heSBiZSBzaGFyZWQgYWNyb3NzIGNob2tpZGFyIEZTV2F0Y2hlciBpbnN0YW5jZXMpXG5jb25zdCBGc1dhdGNoRmlsZUluc3RhbmNlcyA9IG5ldyBNYXAoKTtcblxuLyoqXG4gKiBJbnN0YW50aWF0ZXMgdGhlIGZzX3dhdGNoRmlsZSBpbnRlcmZhY2Ugb3IgYmluZHMgbGlzdGVuZXJzXG4gKiB0byBhbiBleGlzdGluZyBvbmUgY292ZXJpbmcgdGhlIHNhbWUgZmlsZSBzeXN0ZW0gZW50cnlcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXRoIHRvIGJlIHdhdGNoZWRcbiAqIEBwYXJhbSB7U3RyaW5nfSBmdWxsUGF0aCBhYnNvbHV0ZSBwYXRoXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBvcHRpb25zIHRvIGJlIHBhc3NlZCB0byBmc193YXRjaEZpbGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBoYW5kbGVycyBjb250YWluZXIgZm9yIGV2ZW50IGxpc3RlbmVyIGZ1bmN0aW9uc1xuICogQHJldHVybnMge0Z1bmN0aW9ufSBjbG9zZXJcbiAqL1xuY29uc3Qgc2V0RnNXYXRjaEZpbGVMaXN0ZW5lciA9IChwYXRoLCBmdWxsUGF0aCwgb3B0aW9ucywgaGFuZGxlcnMpID0+IHtcbiAgY29uc3Qge2xpc3RlbmVyLCByYXdFbWl0dGVyfSA9IGhhbmRsZXJzO1xuICBsZXQgY29udCA9IEZzV2F0Y2hGaWxlSW5zdGFuY2VzLmdldChmdWxsUGF0aCk7XG5cbiAgLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMsIHByZWZlci1kZXN0cnVjdHVyaW5nICovXG4gIGxldCBsaXN0ZW5lcnMgPSBuZXcgU2V0KCk7XG4gIGxldCByYXdFbWl0dGVycyA9IG5ldyBTZXQoKTtcblxuICBjb25zdCBjb3B0cyA9IGNvbnQgJiYgY29udC5vcHRpb25zO1xuICBpZiAoY29wdHMgJiYgKGNvcHRzLnBlcnNpc3RlbnQgPCBvcHRpb25zLnBlcnNpc3RlbnQgfHwgY29wdHMuaW50ZXJ2YWwgPiBvcHRpb25zLmludGVydmFsKSkge1xuICAgIC8vIFwiVXBncmFkZVwiIHRoZSB3YXRjaGVyIHRvIHBlcnNpc3RlbmNlIG9yIGEgcXVpY2tlciBpbnRlcnZhbC5cbiAgICAvLyBUaGlzIGNyZWF0ZXMgc29tZSB1bmxpa2VseSBlZGdlIGNhc2UgaXNzdWVzIGlmIHRoZSB1c2VyIG1peGVzXG4gICAgLy8gc2V0dGluZ3MgaW4gYSB2ZXJ5IHdlaXJkIHdheSwgYnV0IHNvbHZpbmcgZm9yIHRob3NlIGNhc2VzXG4gICAgLy8gZG9lc24ndCBzZWVtIHdvcnRod2hpbGUgZm9yIHRoZSBhZGRlZCBjb21wbGV4aXR5LlxuICAgIGxpc3RlbmVycyA9IGNvbnQubGlzdGVuZXJzO1xuICAgIHJhd0VtaXR0ZXJzID0gY29udC5yYXdFbWl0dGVycztcbiAgICBmcy51bndhdGNoRmlsZShmdWxsUGF0aCk7XG4gICAgY29udCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLXZhcnMsIHByZWZlci1kZXN0cnVjdHVyaW5nICovXG5cbiAgaWYgKGNvbnQpIHtcbiAgICBhZGRBbmRDb252ZXJ0KGNvbnQsIEtFWV9MSVNURU5FUlMsIGxpc3RlbmVyKTtcbiAgICBhZGRBbmRDb252ZXJ0KGNvbnQsIEtFWV9SQVcsIHJhd0VtaXR0ZXIpO1xuICB9IGVsc2Uge1xuICAgIC8vIFRPRE9cbiAgICAvLyBsaXN0ZW5lcnMuYWRkKGxpc3RlbmVyKTtcbiAgICAvLyByYXdFbWl0dGVycy5hZGQocmF3RW1pdHRlcik7XG4gICAgY29udCA9IHtcbiAgICAgIGxpc3RlbmVyczogbGlzdGVuZXIsXG4gICAgICByYXdFbWl0dGVyczogcmF3RW1pdHRlcixcbiAgICAgIG9wdGlvbnMsXG4gICAgICB3YXRjaGVyOiBmcy53YXRjaEZpbGUoZnVsbFBhdGgsIG9wdGlvbnMsIChjdXJyLCBwcmV2KSA9PiB7XG4gICAgICAgIGZvcmVhY2goY29udC5yYXdFbWl0dGVycywgKHJhd0VtaXR0ZXIpID0+IHtcbiAgICAgICAgICByYXdFbWl0dGVyKEVWX0NIQU5HRSwgZnVsbFBhdGgsIHtjdXJyLCBwcmV2fSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBjdXJybXRpbWUgPSBjdXJyLm10aW1lTXM7XG4gICAgICAgIGlmIChjdXJyLnNpemUgIT09IHByZXYuc2l6ZSB8fCBjdXJybXRpbWUgPiBwcmV2Lm10aW1lTXMgfHwgY3Vycm10aW1lID09PSAwKSB7XG4gICAgICAgICAgZm9yZWFjaChjb250Lmxpc3RlbmVycywgKGxpc3RlbmVyKSA9PiBsaXN0ZW5lcihwYXRoLCBjdXJyKSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfTtcbiAgICBGc1dhdGNoRmlsZUluc3RhbmNlcy5zZXQoZnVsbFBhdGgsIGNvbnQpO1xuICB9XG4gIC8vIGNvbnN0IGluZGV4ID0gY29udC5saXN0ZW5lcnMuaW5kZXhPZihsaXN0ZW5lcik7XG5cbiAgLy8gUmVtb3ZlcyB0aGlzIGluc3RhbmNlJ3MgbGlzdGVuZXJzIGFuZCBjbG9zZXMgdGhlIHVuZGVybHlpbmcgZnNfd2F0Y2hGaWxlXG4gIC8vIGluc3RhbmNlIGlmIHRoZXJlIGFyZSBubyBtb3JlIGxpc3RlbmVycyBsZWZ0LlxuICByZXR1cm4gKCkgPT4ge1xuICAgIGRlbEZyb21TZXQoY29udCwgS0VZX0xJU1RFTkVSUywgbGlzdGVuZXIpO1xuICAgIGRlbEZyb21TZXQoY29udCwgS0VZX1JBVywgcmF3RW1pdHRlcik7XG4gICAgaWYgKGlzRW1wdHlTZXQoY29udC5saXN0ZW5lcnMpKSB7XG4gICAgICBGc1dhdGNoRmlsZUluc3RhbmNlcy5kZWxldGUoZnVsbFBhdGgpO1xuICAgICAgZnMudW53YXRjaEZpbGUoZnVsbFBhdGgpO1xuICAgICAgY29udC5vcHRpb25zID0gY29udC53YXRjaGVyID0gdW5kZWZpbmVkO1xuICAgICAgT2JqZWN0LmZyZWV6ZShjb250KTtcbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIEBtaXhpblxuICovXG5jbGFzcyBOb2RlRnNIYW5kbGVyIHtcblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL2luZGV4XCIpLkZTV2F0Y2hlcn0gZnNXXG4gKi9cbmNvbnN0cnVjdG9yKGZzVykge1xuICB0aGlzLmZzdyA9IGZzVztcbiAgdGhpcy5fYm91bmRIYW5kbGVFcnJvciA9IChlcnJvcikgPT4gZnNXLl9oYW5kbGVFcnJvcihlcnJvcik7XG59XG5cbi8qKlxuICogV2F0Y2ggZmlsZSBmb3IgY2hhbmdlcyB3aXRoIGZzX3dhdGNoRmlsZSBvciBmc193YXRjaC5cbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXRoIHRvIGZpbGUgb3IgZGlyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBsaXN0ZW5lciBvbiBmcyBjaGFuZ2VcbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gY2xvc2VyIGZvciB0aGUgd2F0Y2hlciBpbnN0YW5jZVxuICovXG5fd2F0Y2hXaXRoTm9kZUZzKHBhdGgsIGxpc3RlbmVyKSB7XG4gIGNvbnN0IG9wdHMgPSB0aGlzLmZzdy5vcHRpb25zO1xuICBjb25zdCBkaXJlY3RvcnkgPSBzeXNQYXRoLmRpcm5hbWUocGF0aCk7XG4gIGNvbnN0IGJhc2VuYW1lID0gc3lzUGF0aC5iYXNlbmFtZShwYXRoKTtcbiAgY29uc3QgcGFyZW50ID0gdGhpcy5mc3cuX2dldFdhdGNoZWREaXIoZGlyZWN0b3J5KTtcbiAgcGFyZW50LmFkZChiYXNlbmFtZSk7XG4gIGNvbnN0IGFic29sdXRlUGF0aCA9IHN5c1BhdGgucmVzb2x2ZShwYXRoKTtcbiAgY29uc3Qgb3B0aW9ucyA9IHtwZXJzaXN0ZW50OiBvcHRzLnBlcnNpc3RlbnR9O1xuICBpZiAoIWxpc3RlbmVyKSBsaXN0ZW5lciA9IEVNUFRZX0ZOO1xuXG4gIGxldCBjbG9zZXI7XG4gIGlmIChvcHRzLnVzZVBvbGxpbmcpIHtcbiAgICBvcHRpb25zLmludGVydmFsID0gb3B0cy5lbmFibGVCaW5hcnlJbnRlcnZhbCAmJiBpc0JpbmFyeVBhdGgoYmFzZW5hbWUpID9cbiAgICAgIG9wdHMuYmluYXJ5SW50ZXJ2YWwgOiBvcHRzLmludGVydmFsO1xuICAgIGNsb3NlciA9IHNldEZzV2F0Y2hGaWxlTGlzdGVuZXIocGF0aCwgYWJzb2x1dGVQYXRoLCBvcHRpb25zLCB7XG4gICAgICBsaXN0ZW5lcixcbiAgICAgIHJhd0VtaXR0ZXI6IHRoaXMuZnN3Ll9lbWl0UmF3XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgY2xvc2VyID0gc2V0RnNXYXRjaExpc3RlbmVyKHBhdGgsIGFic29sdXRlUGF0aCwgb3B0aW9ucywge1xuICAgICAgbGlzdGVuZXIsXG4gICAgICBlcnJIYW5kbGVyOiB0aGlzLl9ib3VuZEhhbmRsZUVycm9yLFxuICAgICAgcmF3RW1pdHRlcjogdGhpcy5mc3cuX2VtaXRSYXdcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gY2xvc2VyO1xufVxuXG4vKipcbiAqIFdhdGNoIGEgZmlsZSBhbmQgZW1pdCBhZGQgZXZlbnQgaWYgd2FycmFudGVkLlxuICogQHBhcmFtIHtQYXRofSBmaWxlIFBhdGhcbiAqIEBwYXJhbSB7ZnMuU3RhdHN9IHN0YXRzIHJlc3VsdCBvZiBmc19zdGF0XG4gKiBAcGFyYW0ge0Jvb2xlYW59IGluaXRpYWxBZGQgd2FzIHRoZSBmaWxlIGFkZGVkIGF0IHdhdGNoIGluc3RhbnRpYXRpb24/XG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IGNsb3NlciBmb3IgdGhlIHdhdGNoZXIgaW5zdGFuY2VcbiAqL1xuX2hhbmRsZUZpbGUoZmlsZSwgc3RhdHMsIGluaXRpYWxBZGQpIHtcbiAgaWYgKHRoaXMuZnN3LmNsb3NlZCkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBkaXJuYW1lID0gc3lzUGF0aC5kaXJuYW1lKGZpbGUpO1xuICBjb25zdCBiYXNlbmFtZSA9IHN5c1BhdGguYmFzZW5hbWUoZmlsZSk7XG4gIGNvbnN0IHBhcmVudCA9IHRoaXMuZnN3Ll9nZXRXYXRjaGVkRGlyKGRpcm5hbWUpO1xuICAvLyBzdGF0cyBpcyBhbHdheXMgcHJlc2VudFxuICBsZXQgcHJldlN0YXRzID0gc3RhdHM7XG5cbiAgLy8gaWYgdGhlIGZpbGUgaXMgYWxyZWFkeSBiZWluZyB3YXRjaGVkLCBkbyBub3RoaW5nXG4gIGlmIChwYXJlbnQuaGFzKGJhc2VuYW1lKSkgcmV0dXJuO1xuXG4gIGNvbnN0IGxpc3RlbmVyID0gYXN5bmMgKHBhdGgsIG5ld1N0YXRzKSA9PiB7XG4gICAgaWYgKCF0aGlzLmZzdy5fdGhyb3R0bGUoVEhST1RUTEVfTU9ERV9XQVRDSCwgZmlsZSwgNSkpIHJldHVybjtcbiAgICBpZiAoIW5ld1N0YXRzIHx8IG5ld1N0YXRzLm10aW1lTXMgPT09IDApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG5ld1N0YXRzID0gYXdhaXQgc3RhdChmaWxlKTtcbiAgICAgICAgaWYgKHRoaXMuZnN3LmNsb3NlZCkgcmV0dXJuO1xuICAgICAgICAvLyBDaGVjayB0aGF0IGNoYW5nZSBldmVudCB3YXMgbm90IGZpcmVkIGJlY2F1c2Ugb2YgY2hhbmdlZCBvbmx5IGFjY2Vzc1RpbWUuXG4gICAgICAgIGNvbnN0IGF0ID0gbmV3U3RhdHMuYXRpbWVNcztcbiAgICAgICAgY29uc3QgbXQgPSBuZXdTdGF0cy5tdGltZU1zO1xuICAgICAgICBpZiAoIWF0IHx8IGF0IDw9IG10IHx8IG10ICE9PSBwcmV2U3RhdHMubXRpbWVNcykge1xuICAgICAgICAgIHRoaXMuZnN3Ll9lbWl0KEVWX0NIQU5HRSwgZmlsZSwgbmV3U3RhdHMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0xpbnV4ICYmIHByZXZTdGF0cy5pbm8gIT09IG5ld1N0YXRzLmlubykge1xuICAgICAgICAgIHRoaXMuZnN3Ll9jbG9zZUZpbGUocGF0aClcbiAgICAgICAgICBwcmV2U3RhdHMgPSBuZXdTdGF0cztcbiAgICAgICAgICB0aGlzLmZzdy5fYWRkUGF0aENsb3NlcihwYXRoLCB0aGlzLl93YXRjaFdpdGhOb2RlRnMoZmlsZSwgbGlzdGVuZXIpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmV2U3RhdHMgPSBuZXdTdGF0cztcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gRml4IGlzc3VlcyB3aGVyZSBtdGltZSBpcyBudWxsIGJ1dCBmaWxlIGlzIHN0aWxsIHByZXNlbnRcbiAgICAgICAgdGhpcy5mc3cuX3JlbW92ZShkaXJuYW1lLCBiYXNlbmFtZSk7XG4gICAgICB9XG4gICAgICAvLyBhZGQgaXMgYWJvdXQgdG8gYmUgZW1pdHRlZCBpZiBmaWxlIG5vdCBhbHJlYWR5IHRyYWNrZWQgaW4gcGFyZW50XG4gICAgfSBlbHNlIGlmIChwYXJlbnQuaGFzKGJhc2VuYW1lKSkge1xuICAgICAgLy8gQ2hlY2sgdGhhdCBjaGFuZ2UgZXZlbnQgd2FzIG5vdCBmaXJlZCBiZWNhdXNlIG9mIGNoYW5nZWQgb25seSBhY2Nlc3NUaW1lLlxuICAgICAgY29uc3QgYXQgPSBuZXdTdGF0cy5hdGltZU1zO1xuICAgICAgY29uc3QgbXQgPSBuZXdTdGF0cy5tdGltZU1zO1xuICAgICAgaWYgKCFhdCB8fCBhdCA8PSBtdCB8fCBtdCAhPT0gcHJldlN0YXRzLm10aW1lTXMpIHtcbiAgICAgICAgdGhpcy5mc3cuX2VtaXQoRVZfQ0hBTkdFLCBmaWxlLCBuZXdTdGF0cyk7XG4gICAgICB9XG4gICAgICBwcmV2U3RhdHMgPSBuZXdTdGF0cztcbiAgICB9XG4gIH1cbiAgLy8ga2ljayBvZmYgdGhlIHdhdGNoZXJcbiAgY29uc3QgY2xvc2VyID0gdGhpcy5fd2F0Y2hXaXRoTm9kZUZzKGZpbGUsIGxpc3RlbmVyKTtcblxuICAvLyBlbWl0IGFuIGFkZCBldmVudCBpZiB3ZSdyZSBzdXBwb3NlZCB0b1xuICBpZiAoIShpbml0aWFsQWRkICYmIHRoaXMuZnN3Lm9wdGlvbnMuaWdub3JlSW5pdGlhbCkgJiYgdGhpcy5mc3cuX2lzbnRJZ25vcmVkKGZpbGUpKSB7XG4gICAgaWYgKCF0aGlzLmZzdy5fdGhyb3R0bGUoRVZfQURELCBmaWxlLCAwKSkgcmV0dXJuO1xuICAgIHRoaXMuZnN3Ll9lbWl0KEVWX0FERCwgZmlsZSwgc3RhdHMpO1xuICB9XG5cbiAgcmV0dXJuIGNsb3Nlcjtcbn1cblxuLyoqXG4gKiBIYW5kbGUgc3ltbGlua3MgZW5jb3VudGVyZWQgd2hpbGUgcmVhZGluZyBhIGRpci5cbiAqIEBwYXJhbSB7T2JqZWN0fSBlbnRyeSByZXR1cm5lZCBieSByZWFkZGlycFxuICogQHBhcmFtIHtTdHJpbmd9IGRpcmVjdG9yeSBwYXRoIG9mIGRpciBiZWluZyByZWFkXG4gKiBAcGFyYW0ge1N0cmluZ30gcGF0aCBvZiB0aGlzIGl0ZW1cbiAqIEBwYXJhbSB7U3RyaW5nfSBpdGVtIGJhc2VuYW1lIG9mIHRoaXMgaXRlbVxuICogQHJldHVybnMge1Byb21pc2U8Qm9vbGVhbj59IHRydWUgaWYgbm8gbW9yZSBwcm9jZXNzaW5nIGlzIG5lZWRlZCBmb3IgdGhpcyBlbnRyeS5cbiAqL1xuYXN5bmMgX2hhbmRsZVN5bWxpbmsoZW50cnksIGRpcmVjdG9yeSwgcGF0aCwgaXRlbSkge1xuICBpZiAodGhpcy5mc3cuY2xvc2VkKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGZ1bGwgPSBlbnRyeS5mdWxsUGF0aDtcbiAgY29uc3QgZGlyID0gdGhpcy5mc3cuX2dldFdhdGNoZWREaXIoZGlyZWN0b3J5KTtcblxuICBpZiAoIXRoaXMuZnN3Lm9wdGlvbnMuZm9sbG93U3ltbGlua3MpIHtcbiAgICAvLyB3YXRjaCBzeW1saW5rIGRpcmVjdGx5IChkb24ndCBmb2xsb3cpIGFuZCBkZXRlY3QgY2hhbmdlc1xuICAgIHRoaXMuZnN3Ll9pbmNyUmVhZHlDb3VudCgpO1xuICAgIGNvbnN0IGxpbmtQYXRoID0gYXdhaXQgZnNyZWFscGF0aChwYXRoKTtcbiAgICBpZiAodGhpcy5mc3cuY2xvc2VkKSByZXR1cm47XG4gICAgaWYgKGRpci5oYXMoaXRlbSkpIHtcbiAgICAgIGlmICh0aGlzLmZzdy5fc3ltbGlua1BhdGhzLmdldChmdWxsKSAhPT0gbGlua1BhdGgpIHtcbiAgICAgICAgdGhpcy5mc3cuX3N5bWxpbmtQYXRocy5zZXQoZnVsbCwgbGlua1BhdGgpO1xuICAgICAgICB0aGlzLmZzdy5fZW1pdChFVl9DSEFOR0UsIHBhdGgsIGVudHJ5LnN0YXRzKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZGlyLmFkZChpdGVtKTtcbiAgICAgIHRoaXMuZnN3Ll9zeW1saW5rUGF0aHMuc2V0KGZ1bGwsIGxpbmtQYXRoKTtcbiAgICAgIHRoaXMuZnN3Ll9lbWl0KEVWX0FERCwgcGF0aCwgZW50cnkuc3RhdHMpO1xuICAgIH1cbiAgICB0aGlzLmZzdy5fZW1pdFJlYWR5KCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBkb24ndCBmb2xsb3cgdGhlIHNhbWUgc3ltbGluayBtb3JlIHRoYW4gb25jZVxuICBpZiAodGhpcy5mc3cuX3N5bWxpbmtQYXRocy5oYXMoZnVsbCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRoaXMuZnN3Ll9zeW1saW5rUGF0aHMuc2V0KGZ1bGwsIHRydWUpO1xufVxuXG5faGFuZGxlUmVhZChkaXJlY3RvcnksIGluaXRpYWxBZGQsIHdoLCB0YXJnZXQsIGRpciwgZGVwdGgsIHRocm90dGxlcikge1xuICAvLyBOb3JtYWxpemUgdGhlIGRpcmVjdG9yeSBuYW1lIG9uIFdpbmRvd3NcbiAgZGlyZWN0b3J5ID0gc3lzUGF0aC5qb2luKGRpcmVjdG9yeSwgRU1QVFlfU1RSKTtcblxuICBpZiAoIXdoLmhhc0dsb2IpIHtcbiAgICB0aHJvdHRsZXIgPSB0aGlzLmZzdy5fdGhyb3R0bGUoJ3JlYWRkaXInLCBkaXJlY3RvcnksIDEwMDApO1xuICAgIGlmICghdGhyb3R0bGVyKSByZXR1cm47XG4gIH1cblxuICBjb25zdCBwcmV2aW91cyA9IHRoaXMuZnN3Ll9nZXRXYXRjaGVkRGlyKHdoLnBhdGgpO1xuICBjb25zdCBjdXJyZW50ID0gbmV3IFNldCgpO1xuXG4gIGxldCBzdHJlYW0gPSB0aGlzLmZzdy5fcmVhZGRpcnAoZGlyZWN0b3J5LCB7XG4gICAgZmlsZUZpbHRlcjogZW50cnkgPT4gd2guZmlsdGVyUGF0aChlbnRyeSksXG4gICAgZGlyZWN0b3J5RmlsdGVyOiBlbnRyeSA9PiB3aC5maWx0ZXJEaXIoZW50cnkpLFxuICAgIGRlcHRoOiAwXG4gIH0pLm9uKFNUUl9EQVRBLCBhc3luYyAoZW50cnkpID0+IHtcbiAgICBpZiAodGhpcy5mc3cuY2xvc2VkKSB7XG4gICAgICBzdHJlYW0gPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGl0ZW0gPSBlbnRyeS5wYXRoO1xuICAgIGxldCBwYXRoID0gc3lzUGF0aC5qb2luKGRpcmVjdG9yeSwgaXRlbSk7XG4gICAgY3VycmVudC5hZGQoaXRlbSk7XG5cbiAgICBpZiAoZW50cnkuc3RhdHMuaXNTeW1ib2xpY0xpbmsoKSAmJiBhd2FpdCB0aGlzLl9oYW5kbGVTeW1saW5rKGVudHJ5LCBkaXJlY3RvcnksIHBhdGgsIGl0ZW0pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZnN3LmNsb3NlZCkge1xuICAgICAgc3RyZWFtID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBGaWxlcyB0aGF0IHByZXNlbnQgaW4gY3VycmVudCBkaXJlY3Rvcnkgc25hcHNob3RcbiAgICAvLyBidXQgYWJzZW50IGluIHByZXZpb3VzIGFyZSBhZGRlZCB0byB3YXRjaCBsaXN0IGFuZFxuICAgIC8vIGVtaXQgYGFkZGAgZXZlbnQuXG4gICAgaWYgKGl0ZW0gPT09IHRhcmdldCB8fCAhdGFyZ2V0ICYmICFwcmV2aW91cy5oYXMoaXRlbSkpIHtcbiAgICAgIHRoaXMuZnN3Ll9pbmNyUmVhZHlDb3VudCgpO1xuXG4gICAgICAvLyBlbnN1cmUgcmVsYXRpdmVuZXNzIG9mIHBhdGggaXMgcHJlc2VydmVkIGluIGNhc2Ugb2Ygd2F0Y2hlciByZXVzZVxuICAgICAgcGF0aCA9IHN5c1BhdGguam9pbihkaXIsIHN5c1BhdGgucmVsYXRpdmUoZGlyLCBwYXRoKSk7XG5cbiAgICAgIHRoaXMuX2FkZFRvTm9kZUZzKHBhdGgsIGluaXRpYWxBZGQsIHdoLCBkZXB0aCArIDEpO1xuICAgIH1cbiAgfSkub24oRVZfRVJST1IsIHRoaXMuX2JvdW5kSGFuZGxlRXJyb3IpO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+XG4gICAgc3RyZWFtLm9uY2UoU1RSX0VORCwgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZnN3LmNsb3NlZCkge1xuICAgICAgICBzdHJlYW0gPSB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHdhc1Rocm90dGxlZCA9IHRocm90dGxlciA/IHRocm90dGxlci5jbGVhcigpIDogZmFsc2U7XG5cbiAgICAgIHJlc29sdmUoKTtcblxuICAgICAgLy8gRmlsZXMgdGhhdCBhYnNlbnQgaW4gY3VycmVudCBkaXJlY3Rvcnkgc25hcHNob3RcbiAgICAgIC8vIGJ1dCBwcmVzZW50IGluIHByZXZpb3VzIGVtaXQgYHJlbW92ZWAgZXZlbnRcbiAgICAgIC8vIGFuZCBhcmUgcmVtb3ZlZCBmcm9tIEB3YXRjaGVkW2RpcmVjdG9yeV0uXG4gICAgICBwcmV2aW91cy5nZXRDaGlsZHJlbigpLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgICByZXR1cm4gaXRlbSAhPT0gZGlyZWN0b3J5ICYmXG4gICAgICAgICAgIWN1cnJlbnQuaGFzKGl0ZW0pICYmXG4gICAgICAgICAgLy8gaW4gY2FzZSBvZiBpbnRlcnNlY3RpbmcgZ2xvYnM7XG4gICAgICAgICAgLy8gYSBwYXRoIG1heSBoYXZlIGJlZW4gZmlsdGVyZWQgb3V0IG9mIHRoaXMgcmVhZGRpciwgYnV0XG4gICAgICAgICAgLy8gc2hvdWxkbid0IGJlIHJlbW92ZWQgYmVjYXVzZSBpdCBtYXRjaGVzIGEgZGlmZmVyZW50IGdsb2JcbiAgICAgICAgICAoIXdoLmhhc0dsb2IgfHwgd2guZmlsdGVyUGF0aCh7XG4gICAgICAgICAgICBmdWxsUGF0aDogc3lzUGF0aC5yZXNvbHZlKGRpcmVjdG9yeSwgaXRlbSlcbiAgICAgICAgICB9KSk7XG4gICAgICB9KS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIHRoaXMuZnN3Ll9yZW1vdmUoZGlyZWN0b3J5LCBpdGVtKTtcbiAgICAgIH0pO1xuXG4gICAgICBzdHJlYW0gPSB1bmRlZmluZWQ7XG5cbiAgICAgIC8vIG9uZSBtb3JlIHRpbWUgZm9yIGFueSBtaXNzZWQgaW4gY2FzZSBjaGFuZ2VzIGNhbWUgaW4gZXh0cmVtZWx5IHF1aWNrbHlcbiAgICAgIGlmICh3YXNUaHJvdHRsZWQpIHRoaXMuX2hhbmRsZVJlYWQoZGlyZWN0b3J5LCBmYWxzZSwgd2gsIHRhcmdldCwgZGlyLCBkZXB0aCwgdGhyb3R0bGVyKTtcbiAgICB9KVxuICApO1xufVxuXG4vKipcbiAqIFJlYWQgZGlyZWN0b3J5IHRvIGFkZCAvIHJlbW92ZSBmaWxlcyBmcm9tIGBAd2F0Y2hlZGAgbGlzdCBhbmQgcmUtcmVhZCBpdCBvbiBjaGFuZ2UuXG4gKiBAcGFyYW0ge1N0cmluZ30gZGlyIGZzIHBhdGhcbiAqIEBwYXJhbSB7ZnMuU3RhdHN9IHN0YXRzXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGluaXRpYWxBZGRcbiAqIEBwYXJhbSB7TnVtYmVyfSBkZXB0aCByZWxhdGl2ZSB0byB1c2VyLXN1cHBsaWVkIHBhdGhcbiAqIEBwYXJhbSB7U3RyaW5nfSB0YXJnZXQgY2hpbGQgcGF0aCB0YXJnZXRlZCBmb3Igd2F0Y2hcbiAqIEBwYXJhbSB7T2JqZWN0fSB3aCBDb21tb24gd2F0Y2ggaGVscGVycyBmb3IgdGhpcyBwYXRoXG4gKiBAcGFyYW0ge1N0cmluZ30gcmVhbHBhdGhcbiAqIEByZXR1cm5zIHtQcm9taXNlPEZ1bmN0aW9uPn0gY2xvc2VyIGZvciB0aGUgd2F0Y2hlciBpbnN0YW5jZS5cbiAqL1xuYXN5bmMgX2hhbmRsZURpcihkaXIsIHN0YXRzLCBpbml0aWFsQWRkLCBkZXB0aCwgdGFyZ2V0LCB3aCwgcmVhbHBhdGgpIHtcbiAgY29uc3QgcGFyZW50RGlyID0gdGhpcy5mc3cuX2dldFdhdGNoZWREaXIoc3lzUGF0aC5kaXJuYW1lKGRpcikpO1xuICBjb25zdCB0cmFja2VkID0gcGFyZW50RGlyLmhhcyhzeXNQYXRoLmJhc2VuYW1lKGRpcikpO1xuICBpZiAoIShpbml0aWFsQWRkICYmIHRoaXMuZnN3Lm9wdGlvbnMuaWdub3JlSW5pdGlhbCkgJiYgIXRhcmdldCAmJiAhdHJhY2tlZCkge1xuICAgIGlmICghd2guaGFzR2xvYiB8fCB3aC5nbG9iRmlsdGVyKGRpcikpIHRoaXMuZnN3Ll9lbWl0KEVWX0FERF9ESVIsIGRpciwgc3RhdHMpO1xuICB9XG5cbiAgLy8gZW5zdXJlIGRpciBpcyB0cmFja2VkIChoYXJtbGVzcyBpZiByZWR1bmRhbnQpXG4gIHBhcmVudERpci5hZGQoc3lzUGF0aC5iYXNlbmFtZShkaXIpKTtcbiAgdGhpcy5mc3cuX2dldFdhdGNoZWREaXIoZGlyKTtcbiAgbGV0IHRocm90dGxlcjtcbiAgbGV0IGNsb3NlcjtcblxuICBjb25zdCBvRGVwdGggPSB0aGlzLmZzdy5vcHRpb25zLmRlcHRoO1xuICBpZiAoKG9EZXB0aCA9PSBudWxsIHx8IGRlcHRoIDw9IG9EZXB0aCkgJiYgIXRoaXMuZnN3Ll9zeW1saW5rUGF0aHMuaGFzKHJlYWxwYXRoKSkge1xuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICBhd2FpdCB0aGlzLl9oYW5kbGVSZWFkKGRpciwgaW5pdGlhbEFkZCwgd2gsIHRhcmdldCwgZGlyLCBkZXB0aCwgdGhyb3R0bGVyKTtcbiAgICAgIGlmICh0aGlzLmZzdy5jbG9zZWQpIHJldHVybjtcbiAgICB9XG5cbiAgICBjbG9zZXIgPSB0aGlzLl93YXRjaFdpdGhOb2RlRnMoZGlyLCAoZGlyUGF0aCwgc3RhdHMpID0+IHtcbiAgICAgIC8vIGlmIGN1cnJlbnQgZGlyZWN0b3J5IGlzIHJlbW92ZWQsIGRvIG5vdGhpbmdcbiAgICAgIGlmIChzdGF0cyAmJiBzdGF0cy5tdGltZU1zID09PSAwKSByZXR1cm47XG5cbiAgICAgIHRoaXMuX2hhbmRsZVJlYWQoZGlyUGF0aCwgZmFsc2UsIHdoLCB0YXJnZXQsIGRpciwgZGVwdGgsIHRocm90dGxlcik7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGNsb3Nlcjtcbn1cblxuLyoqXG4gKiBIYW5kbGUgYWRkZWQgZmlsZSwgZGlyZWN0b3J5LCBvciBnbG9iIHBhdHRlcm4uXG4gKiBEZWxlZ2F0ZXMgY2FsbCB0byBfaGFuZGxlRmlsZSAvIF9oYW5kbGVEaXIgYWZ0ZXIgY2hlY2tzLlxuICogQHBhcmFtIHtTdHJpbmd9IHBhdGggdG8gZmlsZSBvciBpclxuICogQHBhcmFtIHtCb29sZWFufSBpbml0aWFsQWRkIHdhcyB0aGUgZmlsZSBhZGRlZCBhdCB3YXRjaCBpbnN0YW50aWF0aW9uP1xuICogQHBhcmFtIHtPYmplY3R9IHByaW9yV2ggZGVwdGggcmVsYXRpdmUgdG8gdXNlci1zdXBwbGllZCBwYXRoXG4gKiBAcGFyYW0ge051bWJlcn0gZGVwdGggQ2hpbGQgcGF0aCBhY3R1YWxseSB0YXJnZXRlZCBmb3Igd2F0Y2hcbiAqIEBwYXJhbSB7U3RyaW5nPX0gdGFyZ2V0IENoaWxkIHBhdGggYWN0dWFsbHkgdGFyZ2V0ZWQgZm9yIHdhdGNoXG4gKiBAcmV0dXJucyB7UHJvbWlzZX1cbiAqL1xuYXN5bmMgX2FkZFRvTm9kZUZzKHBhdGgsIGluaXRpYWxBZGQsIHByaW9yV2gsIGRlcHRoLCB0YXJnZXQpIHtcbiAgY29uc3QgcmVhZHkgPSB0aGlzLmZzdy5fZW1pdFJlYWR5O1xuICBpZiAodGhpcy5mc3cuX2lzSWdub3JlZChwYXRoKSB8fCB0aGlzLmZzdy5jbG9zZWQpIHtcbiAgICByZWFkeSgpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHdoID0gdGhpcy5mc3cuX2dldFdhdGNoSGVscGVycyhwYXRoLCBkZXB0aCk7XG4gIGlmICghd2guaGFzR2xvYiAmJiBwcmlvcldoKSB7XG4gICAgd2guaGFzR2xvYiA9IHByaW9yV2guaGFzR2xvYjtcbiAgICB3aC5nbG9iRmlsdGVyID0gcHJpb3JXaC5nbG9iRmlsdGVyO1xuICAgIHdoLmZpbHRlclBhdGggPSBlbnRyeSA9PiBwcmlvcldoLmZpbHRlclBhdGgoZW50cnkpO1xuICAgIHdoLmZpbHRlckRpciA9IGVudHJ5ID0+IHByaW9yV2guZmlsdGVyRGlyKGVudHJ5KTtcbiAgfVxuXG4gIC8vIGV2YWx1YXRlIHdoYXQgaXMgYXQgdGhlIHBhdGggd2UncmUgYmVpbmcgYXNrZWQgdG8gd2F0Y2hcbiAgdHJ5IHtcbiAgICBjb25zdCBzdGF0cyA9IGF3YWl0IHN0YXRNZXRob2RzW3doLnN0YXRNZXRob2RdKHdoLndhdGNoUGF0aCk7XG4gICAgaWYgKHRoaXMuZnN3LmNsb3NlZCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmZzdy5faXNJZ25vcmVkKHdoLndhdGNoUGF0aCwgc3RhdHMpKSB7XG4gICAgICByZWFkeSgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGZvbGxvdyA9IHRoaXMuZnN3Lm9wdGlvbnMuZm9sbG93U3ltbGlua3MgJiYgIXBhdGguaW5jbHVkZXMoU1RBUikgJiYgIXBhdGguaW5jbHVkZXMoQlJBQ0VfU1RBUlQpO1xuICAgIGxldCBjbG9zZXI7XG4gICAgaWYgKHN0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIGNvbnN0IHRhcmdldFBhdGggPSBmb2xsb3cgPyBhd2FpdCBmc3JlYWxwYXRoKHBhdGgpIDogcGF0aDtcbiAgICAgIGlmICh0aGlzLmZzdy5jbG9zZWQpIHJldHVybjtcbiAgICAgIGNsb3NlciA9IGF3YWl0IHRoaXMuX2hhbmRsZURpcih3aC53YXRjaFBhdGgsIHN0YXRzLCBpbml0aWFsQWRkLCBkZXB0aCwgdGFyZ2V0LCB3aCwgdGFyZ2V0UGF0aCk7XG4gICAgICBpZiAodGhpcy5mc3cuY2xvc2VkKSByZXR1cm47XG4gICAgICAvLyBwcmVzZXJ2ZSB0aGlzIHN5bWxpbmsncyB0YXJnZXQgcGF0aFxuICAgICAgaWYgKHBhdGggIT09IHRhcmdldFBhdGggJiYgdGFyZ2V0UGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuZnN3Ll9zeW1saW5rUGF0aHMuc2V0KHRhcmdldFBhdGgsIHRydWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc3RhdHMuaXNTeW1ib2xpY0xpbmsoKSkge1xuICAgICAgY29uc3QgdGFyZ2V0UGF0aCA9IGZvbGxvdyA/IGF3YWl0IGZzcmVhbHBhdGgocGF0aCkgOiBwYXRoO1xuICAgICAgaWYgKHRoaXMuZnN3LmNsb3NlZCkgcmV0dXJuO1xuICAgICAgY29uc3QgcGFyZW50ID0gc3lzUGF0aC5kaXJuYW1lKHdoLndhdGNoUGF0aCk7XG4gICAgICB0aGlzLmZzdy5fZ2V0V2F0Y2hlZERpcihwYXJlbnQpLmFkZCh3aC53YXRjaFBhdGgpO1xuICAgICAgdGhpcy5mc3cuX2VtaXQoRVZfQURELCB3aC53YXRjaFBhdGgsIHN0YXRzKTtcbiAgICAgIGNsb3NlciA9IGF3YWl0IHRoaXMuX2hhbmRsZURpcihwYXJlbnQsIHN0YXRzLCBpbml0aWFsQWRkLCBkZXB0aCwgcGF0aCwgd2gsIHRhcmdldFBhdGgpO1xuICAgICAgaWYgKHRoaXMuZnN3LmNsb3NlZCkgcmV0dXJuO1xuXG4gICAgICAvLyBwcmVzZXJ2ZSB0aGlzIHN5bWxpbmsncyB0YXJnZXQgcGF0aFxuICAgICAgaWYgKHRhcmdldFBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmZzdy5fc3ltbGlua1BhdGhzLnNldChzeXNQYXRoLnJlc29sdmUocGF0aCksIHRhcmdldFBhdGgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjbG9zZXIgPSB0aGlzLl9oYW5kbGVGaWxlKHdoLndhdGNoUGF0aCwgc3RhdHMsIGluaXRpYWxBZGQpO1xuICAgIH1cbiAgICByZWFkeSgpO1xuXG4gICAgdGhpcy5mc3cuX2FkZFBhdGhDbG9zZXIocGF0aCwgY2xvc2VyKTtcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAodGhpcy5mc3cuX2hhbmRsZUVycm9yKGVycm9yKSkge1xuICAgICAgcmVhZHkoKTtcbiAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgfVxufVxuXG59XG5cbm1vZHVsZS5leHBvcnRzID0gTm9kZUZzSGFuZGxlcjtcbiIsIid1c2Ugc3RyaWN0JztcblxuY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xuY29uc3Qgc3lzUGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmNvbnN0IHsgcHJvbWlzaWZ5IH0gPSByZXF1aXJlKCd1dGlsJyk7XG5cbmxldCBmc2V2ZW50cztcbnRyeSB7XG4gIGZzZXZlbnRzID0gcmVxdWlyZSgnZnNldmVudHMnKTtcbn0gY2F0Y2ggKGVycm9yKSB7XG4gIGlmIChwcm9jZXNzLmVudi5DSE9LSURBUl9QUklOVF9GU0VWRU5UU19SRVFVSVJFX0VSUk9SKSBjb25zb2xlLmVycm9yKGVycm9yKTtcbn1cblxuaWYgKGZzZXZlbnRzKSB7XG4gIC8vIFRPRE86IHJlYWwgY2hlY2tcbiAgY29uc3QgbXRjaCA9IHByb2Nlc3MudmVyc2lvbi5tYXRjaCgvdihcXGQrKVxcLihcXGQrKS8pO1xuICBpZiAobXRjaCAmJiBtdGNoWzFdICYmIG10Y2hbMl0pIHtcbiAgICBjb25zdCBtYWogPSBOdW1iZXIucGFyc2VJbnQobXRjaFsxXSwgMTApO1xuICAgIGNvbnN0IG1pbiA9IE51bWJlci5wYXJzZUludChtdGNoWzJdLCAxMCk7XG4gICAgaWYgKG1haiA9PT0gOCAmJiBtaW4gPCAxNikge1xuICAgICAgZnNldmVudHMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IHtcbiAgRVZfQURELFxuICBFVl9DSEFOR0UsXG4gIEVWX0FERF9ESVIsXG4gIEVWX1VOTElOSyxcbiAgRVZfRVJST1IsXG4gIFNUUl9EQVRBLFxuICBTVFJfRU5ELFxuICBGU0VWRU5UX0NSRUFURUQsXG4gIEZTRVZFTlRfTU9ESUZJRUQsXG4gIEZTRVZFTlRfREVMRVRFRCxcbiAgRlNFVkVOVF9NT1ZFRCxcbiAgLy8gRlNFVkVOVF9DTE9ORUQsXG4gIEZTRVZFTlRfVU5LTk9XTixcbiAgRlNFVkVOVF9UWVBFX0ZJTEUsXG4gIEZTRVZFTlRfVFlQRV9ESVJFQ1RPUlksXG4gIEZTRVZFTlRfVFlQRV9TWU1MSU5LLFxuXG4gIFJPT1RfR0xPQlNUQVIsXG4gIERJUl9TVUZGSVgsXG4gIERPVF9TTEFTSCxcbiAgRlVOQ1RJT05fVFlQRSxcbiAgRU1QVFlfRk4sXG4gIElERU5USVRZX0ZOXG59ID0gcmVxdWlyZSgnLi9jb25zdGFudHMnKTtcblxuY29uc3QgRGVwdGggPSAodmFsdWUpID0+IGlzTmFOKHZhbHVlKSA/IHt9IDoge2RlcHRoOiB2YWx1ZX07XG5cbmNvbnN0IHN0YXQgPSBwcm9taXNpZnkoZnMuc3RhdCk7XG5jb25zdCBsc3RhdCA9IHByb21pc2lmeShmcy5sc3RhdCk7XG5jb25zdCByZWFscGF0aCA9IHByb21pc2lmeShmcy5yZWFscGF0aCk7XG5cbmNvbnN0IHN0YXRNZXRob2RzID0geyBzdGF0LCBsc3RhdCB9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtTdHJpbmd9IFBhdGhcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEZzRXZlbnRzV2F0Y2hDb250YWluZXJcbiAqIEBwcm9wZXJ0eSB7U2V0PEZ1bmN0aW9uPn0gbGlzdGVuZXJzXG4gKiBAcHJvcGVydHkge0Z1bmN0aW9ufSByYXdFbWl0dGVyXG4gKiBAcHJvcGVydHkge3tzdG9wOiBGdW5jdGlvbn19IHdhdGNoZXJcbiAqL1xuXG4vLyBmc2V2ZW50cyBpbnN0YW5jZSBoZWxwZXIgZnVuY3Rpb25zXG4vKipcbiAqIE9iamVjdCB0byBob2xkIHBlci1wcm9jZXNzIGZzZXZlbnRzIGluc3RhbmNlcyAobWF5IGJlIHNoYXJlZCBhY3Jvc3MgY2hva2lkYXIgRlNXYXRjaGVyIGluc3RhbmNlcylcbiAqIEB0eXBlIHtNYXA8UGF0aCxGc0V2ZW50c1dhdGNoQ29udGFpbmVyPn1cbiAqL1xuY29uc3QgRlNFdmVudHNXYXRjaGVycyA9IG5ldyBNYXAoKTtcblxuLy8gVGhyZXNob2xkIG9mIGR1cGxpY2F0ZSBwYXRoIHByZWZpeGVzIGF0IHdoaWNoIHRvIHN0YXJ0XG4vLyBjb25zb2xpZGF0aW5nIGdvaW5nIGZvcndhcmRcbmNvbnN0IGNvbnNvbGlkYXRlVGhyZXNoaG9sZCA9IDEwO1xuXG5jb25zdCB3cm9uZ0V2ZW50RmxhZ3MgPSBuZXcgU2V0KFtcbiAgNjk4ODgsIDcwNDAwLCA3MTQyNCwgNzI3MDQsIDczNDcyLCAxMzEzMjgsIDEzMTg0MCwgMjYyOTEyXG5dKTtcblxuLyoqXG4gKiBJbnN0YW50aWF0ZXMgdGhlIGZzZXZlbnRzIGludGVyZmFjZVxuICogQHBhcmFtIHtQYXRofSBwYXRoIHBhdGggdG8gYmUgd2F0Y2hlZFxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgY2FsbGVkIHdoZW4gZnNldmVudHMgaXMgYm91bmQgYW5kIHJlYWR5XG4gKiBAcmV0dXJucyB7e3N0b3A6IEZ1bmN0aW9ufX0gbmV3IGZzZXZlbnRzIGluc3RhbmNlXG4gKi9cbmNvbnN0IGNyZWF0ZUZTRXZlbnRzSW5zdGFuY2UgPSAocGF0aCwgY2FsbGJhY2spID0+IHtcbiAgY29uc3Qgc3RvcCA9IGZzZXZlbnRzLndhdGNoKHBhdGgsIGNhbGxiYWNrKTtcbiAgcmV0dXJuIHtzdG9wfTtcbn07XG5cbi8qKlxuICogSW5zdGFudGlhdGVzIHRoZSBmc2V2ZW50cyBpbnRlcmZhY2Ugb3IgYmluZHMgbGlzdGVuZXJzIHRvIGFuIGV4aXN0aW5nIG9uZSBjb3ZlcmluZ1xuICogdGhlIHNhbWUgZmlsZSB0cmVlLlxuICogQHBhcmFtIHtQYXRofSBwYXRoICAgICAgICAgICAtIHRvIGJlIHdhdGNoZWRcbiAqIEBwYXJhbSB7UGF0aH0gcmVhbFBhdGggICAgICAgLSByZWFsIHBhdGggZm9yIHN5bWxpbmtzXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBsaXN0ZW5lciAgIC0gY2FsbGVkIHdoZW4gZnNldmVudHMgZW1pdHMgZXZlbnRzXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSByYXdFbWl0dGVyIC0gcGFzc2VzIGRhdGEgdG8gbGlzdGVuZXJzIG9mIHRoZSAncmF3JyBldmVudFxuICogQHJldHVybnMge0Z1bmN0aW9ufSBjbG9zZXJcbiAqL1xuZnVuY3Rpb24gc2V0RlNFdmVudHNMaXN0ZW5lcihwYXRoLCByZWFsUGF0aCwgbGlzdGVuZXIsIHJhd0VtaXR0ZXIpIHtcbiAgbGV0IHdhdGNoUGF0aCA9IHN5c1BhdGguZXh0bmFtZShwYXRoKSA/IHN5c1BhdGguZGlybmFtZShwYXRoKSA6IHBhdGg7XG4gIGNvbnN0IHBhcmVudFBhdGggPSBzeXNQYXRoLmRpcm5hbWUod2F0Y2hQYXRoKTtcbiAgbGV0IGNvbnQgPSBGU0V2ZW50c1dhdGNoZXJzLmdldCh3YXRjaFBhdGgpO1xuXG4gIC8vIElmIHdlJ3ZlIGFjY3VtdWxhdGVkIGEgc3Vic3RhbnRpYWwgbnVtYmVyIG9mIHBhdGhzIHRoYXRcbiAgLy8gY291bGQgaGF2ZSBiZWVuIGNvbnNvbGlkYXRlZCBieSB3YXRjaGluZyBvbmUgZGlyZWN0b3J5XG4gIC8vIGFib3ZlIHRoZSBjdXJyZW50IG9uZSwgY3JlYXRlIGEgd2F0Y2hlciBvbiB0aGUgcGFyZW50XG4gIC8vIHBhdGggaW5zdGVhZCwgc28gdGhhdCB3ZSBkbyBjb25zb2xpZGF0ZSBnb2luZyBmb3J3YXJkLlxuICBpZiAoY291bGRDb25zb2xpZGF0ZShwYXJlbnRQYXRoKSkge1xuICAgIHdhdGNoUGF0aCA9IHBhcmVudFBhdGg7XG4gIH1cblxuICBjb25zdCByZXNvbHZlZFBhdGggPSBzeXNQYXRoLnJlc29sdmUocGF0aCk7XG4gIGNvbnN0IGhhc1N5bWxpbmsgPSByZXNvbHZlZFBhdGggIT09IHJlYWxQYXRoO1xuXG4gIGNvbnN0IGZpbHRlcmVkTGlzdGVuZXIgPSAoZnVsbFBhdGgsIGZsYWdzLCBpbmZvKSA9PiB7XG4gICAgaWYgKGhhc1N5bWxpbmspIGZ1bGxQYXRoID0gZnVsbFBhdGgucmVwbGFjZShyZWFsUGF0aCwgcmVzb2x2ZWRQYXRoKTtcbiAgICBpZiAoXG4gICAgICBmdWxsUGF0aCA9PT0gcmVzb2x2ZWRQYXRoIHx8XG4gICAgICAhZnVsbFBhdGguaW5kZXhPZihyZXNvbHZlZFBhdGggKyBzeXNQYXRoLnNlcClcbiAgICApIGxpc3RlbmVyKGZ1bGxQYXRoLCBmbGFncywgaW5mbyk7XG4gIH07XG5cbiAgLy8gY2hlY2sgaWYgdGhlcmUgaXMgYWxyZWFkeSBhIHdhdGNoZXIgb24gYSBwYXJlbnQgcGF0aFxuICAvLyBtb2RpZmllcyBgd2F0Y2hQYXRoYCB0byB0aGUgcGFyZW50IHBhdGggd2hlbiBpdCBmaW5kcyBhIG1hdGNoXG4gIGxldCB3YXRjaGVkUGFyZW50ID0gZmFsc2U7XG4gIGZvciAoY29uc3Qgd2F0Y2hlZFBhdGggb2YgRlNFdmVudHNXYXRjaGVycy5rZXlzKCkpIHtcbiAgICBpZiAocmVhbFBhdGguaW5kZXhPZihzeXNQYXRoLnJlc29sdmUod2F0Y2hlZFBhdGgpICsgc3lzUGF0aC5zZXApID09PSAwKSB7XG4gICAgICB3YXRjaFBhdGggPSB3YXRjaGVkUGF0aDtcbiAgICAgIGNvbnQgPSBGU0V2ZW50c1dhdGNoZXJzLmdldCh3YXRjaFBhdGgpO1xuICAgICAgd2F0Y2hlZFBhcmVudCA9IHRydWU7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAoY29udCB8fCB3YXRjaGVkUGFyZW50KSB7XG4gICAgY29udC5saXN0ZW5lcnMuYWRkKGZpbHRlcmVkTGlzdGVuZXIpO1xuICB9IGVsc2Uge1xuICAgIGNvbnQgPSB7XG4gICAgICBsaXN0ZW5lcnM6IG5ldyBTZXQoW2ZpbHRlcmVkTGlzdGVuZXJdKSxcbiAgICAgIHJhd0VtaXR0ZXIsXG4gICAgICB3YXRjaGVyOiBjcmVhdGVGU0V2ZW50c0luc3RhbmNlKHdhdGNoUGF0aCwgKGZ1bGxQYXRoLCBmbGFncykgPT4ge1xuICAgICAgICBpZiAoIWNvbnQubGlzdGVuZXJzLnNpemUpIHJldHVybjtcbiAgICAgICAgY29uc3QgaW5mbyA9IGZzZXZlbnRzLmdldEluZm8oZnVsbFBhdGgsIGZsYWdzKTtcbiAgICAgICAgY29udC5saXN0ZW5lcnMuZm9yRWFjaChsaXN0ID0+IHtcbiAgICAgICAgICBsaXN0KGZ1bGxQYXRoLCBmbGFncywgaW5mbyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnQucmF3RW1pdHRlcihpbmZvLmV2ZW50LCBmdWxsUGF0aCwgaW5mbyk7XG4gICAgICB9KVxuICAgIH07XG4gICAgRlNFdmVudHNXYXRjaGVycy5zZXQod2F0Y2hQYXRoLCBjb250KTtcbiAgfVxuXG4gIC8vIHJlbW92ZXMgdGhpcyBpbnN0YW5jZSdzIGxpc3RlbmVycyBhbmQgY2xvc2VzIHRoZSB1bmRlcmx5aW5nIGZzZXZlbnRzXG4gIC8vIGluc3RhbmNlIGlmIHRoZXJlIGFyZSBubyBtb3JlIGxpc3RlbmVycyBsZWZ0XG4gIHJldHVybiAoKSA9PiB7XG4gICAgY29uc3QgbHN0ID0gY29udC5saXN0ZW5lcnM7XG5cbiAgICBsc3QuZGVsZXRlKGZpbHRlcmVkTGlzdGVuZXIpO1xuICAgIGlmICghbHN0LnNpemUpIHtcbiAgICAgIEZTRXZlbnRzV2F0Y2hlcnMuZGVsZXRlKHdhdGNoUGF0aCk7XG4gICAgICBpZiAoY29udC53YXRjaGVyKSByZXR1cm4gY29udC53YXRjaGVyLnN0b3AoKS50aGVuKCgpID0+IHtcbiAgICAgICAgY29udC5yYXdFbWl0dGVyID0gY29udC53YXRjaGVyID0gdW5kZWZpbmVkO1xuICAgICAgICBPYmplY3QuZnJlZXplKGNvbnQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vLyBEZWNpZGUgd2hldGhlciBvciBub3Qgd2Ugc2hvdWxkIHN0YXJ0IGEgbmV3IGhpZ2hlci1sZXZlbFxuLy8gcGFyZW50IHdhdGNoZXJcbmNvbnN0IGNvdWxkQ29uc29saWRhdGUgPSAocGF0aCkgPT4ge1xuICBsZXQgY291bnQgPSAwO1xuICBmb3IgKGNvbnN0IHdhdGNoUGF0aCBvZiBGU0V2ZW50c1dhdGNoZXJzLmtleXMoKSkge1xuICAgIGlmICh3YXRjaFBhdGguaW5kZXhPZihwYXRoKSA9PT0gMCkge1xuICAgICAgY291bnQrKztcbiAgICAgIGlmIChjb3VudCA+PSBjb25zb2xpZGF0ZVRocmVzaGhvbGQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuLy8gcmV0dXJucyBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBmc2V2ZW50cyBjYW4gYmUgdXNlZFxuY29uc3QgY2FuVXNlID0gKCkgPT4gZnNldmVudHMgJiYgRlNFdmVudHNXYXRjaGVycy5zaXplIDwgMTI4O1xuXG4vLyBkZXRlcm1pbmVzIHN1YmRpcmVjdG9yeSB0cmF2ZXJzYWwgbGV2ZWxzIGZyb20gcm9vdCB0byBwYXRoXG5jb25zdCBjYWxjRGVwdGggPSAocGF0aCwgcm9vdCkgPT4ge1xuICBsZXQgaSA9IDA7XG4gIHdoaWxlICghcGF0aC5pbmRleE9mKHJvb3QpICYmIChwYXRoID0gc3lzUGF0aC5kaXJuYW1lKHBhdGgpKSAhPT0gcm9vdCkgaSsrO1xuICByZXR1cm4gaTtcbn07XG5cbi8vIHJldHVybnMgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZzZXZlbnRzJyBldmVudCBpbmZvIGhhcyB0aGUgc2FtZSB0eXBlXG4vLyBhcyB0aGUgb25lIHJldHVybmVkIGJ5IGZzLnN0YXRcbmNvbnN0IHNhbWVUeXBlcyA9IChpbmZvLCBzdGF0cykgPT4gKFxuICBpbmZvLnR5cGUgPT09IEZTRVZFTlRfVFlQRV9ESVJFQ1RPUlkgJiYgc3RhdHMuaXNEaXJlY3RvcnkoKSB8fFxuICBpbmZvLnR5cGUgPT09IEZTRVZFTlRfVFlQRV9TWU1MSU5LICYmIHN0YXRzLmlzU3ltYm9saWNMaW5rKCkgfHxcbiAgaW5mby50eXBlID09PSBGU0VWRU5UX1RZUEVfRklMRSAmJiBzdGF0cy5pc0ZpbGUoKVxuKVxuXG4vKipcbiAqIEBtaXhpblxuICovXG5jbGFzcyBGc0V2ZW50c0hhbmRsZXIge1xuXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KCcuLi9pbmRleCcpLkZTV2F0Y2hlcn0gZnN3XG4gKi9cbmNvbnN0cnVjdG9yKGZzdykge1xuICB0aGlzLmZzdyA9IGZzdztcbn1cbmNoZWNrSWdub3JlZChwYXRoLCBzdGF0cykge1xuICBjb25zdCBpcGF0aHMgPSB0aGlzLmZzdy5faWdub3JlZFBhdGhzO1xuICBpZiAodGhpcy5mc3cuX2lzSWdub3JlZChwYXRoLCBzdGF0cykpIHtcbiAgICBpcGF0aHMuYWRkKHBhdGgpO1xuICAgIGlmIChzdGF0cyAmJiBzdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICBpcGF0aHMuYWRkKHBhdGggKyBST09UX0dMT0JTVEFSKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpcGF0aHMuZGVsZXRlKHBhdGgpO1xuICBpcGF0aHMuZGVsZXRlKHBhdGggKyBST09UX0dMT0JTVEFSKTtcbn1cblxuYWRkT3JDaGFuZ2UocGF0aCwgZnVsbFBhdGgsIHJlYWxQYXRoLCBwYXJlbnQsIHdhdGNoZWREaXIsIGl0ZW0sIGluZm8sIG9wdHMpIHtcbiAgY29uc3QgZXZlbnQgPSB3YXRjaGVkRGlyLmhhcyhpdGVtKSA/IEVWX0NIQU5HRSA6IEVWX0FERDtcbiAgdGhpcy5oYW5kbGVFdmVudChldmVudCwgcGF0aCwgZnVsbFBhdGgsIHJlYWxQYXRoLCBwYXJlbnQsIHdhdGNoZWREaXIsIGl0ZW0sIGluZm8sIG9wdHMpO1xufVxuXG5hc3luYyBjaGVja0V4aXN0cyhwYXRoLCBmdWxsUGF0aCwgcmVhbFBhdGgsIHBhcmVudCwgd2F0Y2hlZERpciwgaXRlbSwgaW5mbywgb3B0cykge1xuICB0cnkge1xuICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgc3RhdChwYXRoKVxuICAgIGlmICh0aGlzLmZzdy5jbG9zZWQpIHJldHVybjtcbiAgICBpZiAoc2FtZVR5cGVzKGluZm8sIHN0YXRzKSkge1xuICAgICAgdGhpcy5hZGRPckNoYW5nZShwYXRoLCBmdWxsUGF0aCwgcmVhbFBhdGgsIHBhcmVudCwgd2F0Y2hlZERpciwgaXRlbSwgaW5mbywgb3B0cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFuZGxlRXZlbnQoRVZfVU5MSU5LLCBwYXRoLCBmdWxsUGF0aCwgcmVhbFBhdGgsIHBhcmVudCwgd2F0Y2hlZERpciwgaXRlbSwgaW5mbywgb3B0cyk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvci5jb2RlID09PSAnRUFDQ0VTJykge1xuICAgICAgdGhpcy5hZGRPckNoYW5nZShwYXRoLCBmdWxsUGF0aCwgcmVhbFBhdGgsIHBhcmVudCwgd2F0Y2hlZERpciwgaXRlbSwgaW5mbywgb3B0cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFuZGxlRXZlbnQoRVZfVU5MSU5LLCBwYXRoLCBmdWxsUGF0aCwgcmVhbFBhdGgsIHBhcmVudCwgd2F0Y2hlZERpciwgaXRlbSwgaW5mbywgb3B0cyk7XG4gICAgfVxuICB9XG59XG5cbmhhbmRsZUV2ZW50KGV2ZW50LCBwYXRoLCBmdWxsUGF0aCwgcmVhbFBhdGgsIHBhcmVudCwgd2F0Y2hlZERpciwgaXRlbSwgaW5mbywgb3B0cykge1xuICBpZiAodGhpcy5mc3cuY2xvc2VkIHx8IHRoaXMuY2hlY2tJZ25vcmVkKHBhdGgpKSByZXR1cm47XG5cbiAgaWYgKGV2ZW50ID09PSBFVl9VTkxJTkspIHtcbiAgICBjb25zdCBpc0RpcmVjdG9yeSA9IGluZm8udHlwZSA9PT0gRlNFVkVOVF9UWVBFX0RJUkVDVE9SWVxuICAgIC8vIHN1cHByZXNzIHVubGluayBldmVudHMgb24gbmV2ZXIgYmVmb3JlIHNlZW4gZmlsZXNcbiAgICBpZiAoaXNEaXJlY3RvcnkgfHwgd2F0Y2hlZERpci5oYXMoaXRlbSkpIHtcbiAgICAgIHRoaXMuZnN3Ll9yZW1vdmUocGFyZW50LCBpdGVtLCBpc0RpcmVjdG9yeSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChldmVudCA9PT0gRVZfQUREKSB7XG4gICAgICAvLyB0cmFjayBuZXcgZGlyZWN0b3JpZXNcbiAgICAgIGlmIChpbmZvLnR5cGUgPT09IEZTRVZFTlRfVFlQRV9ESVJFQ1RPUlkpIHRoaXMuZnN3Ll9nZXRXYXRjaGVkRGlyKHBhdGgpO1xuXG4gICAgICBpZiAoaW5mby50eXBlID09PSBGU0VWRU5UX1RZUEVfU1lNTElOSyAmJiBvcHRzLmZvbGxvd1N5bWxpbmtzKSB7XG4gICAgICAgIC8vIHB1c2ggc3ltbGlua3MgYmFjayB0byB0aGUgdG9wIG9mIHRoZSBzdGFjayB0byBnZXQgaGFuZGxlZFxuICAgICAgICBjb25zdCBjdXJEZXB0aCA9IG9wdHMuZGVwdGggPT09IHVuZGVmaW5lZCA/XG4gICAgICAgICAgdW5kZWZpbmVkIDogY2FsY0RlcHRoKGZ1bGxQYXRoLCByZWFsUGF0aCkgKyAxO1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkVG9Gc0V2ZW50cyhwYXRoLCBmYWxzZSwgdHJ1ZSwgY3VyRGVwdGgpO1xuICAgICAgfVxuXG4gICAgICAvLyB0cmFjayBuZXcgcGF0aHNcbiAgICAgIC8vIChvdGhlciB0aGFuIHN5bWxpbmtzIGJlaW5nIGZvbGxvd2VkLCB3aGljaCB3aWxsIGJlIHRyYWNrZWQgc29vbilcbiAgICAgIHRoaXMuZnN3Ll9nZXRXYXRjaGVkRGlyKHBhcmVudCkuYWRkKGl0ZW0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAdHlwZSB7J2FkZCd8J2FkZERpcid8J3VubGluayd8J3VubGlua0Rpcid9XG4gICAgICovXG4gICAgY29uc3QgZXZlbnROYW1lID0gaW5mby50eXBlID09PSBGU0VWRU5UX1RZUEVfRElSRUNUT1JZID8gZXZlbnQgKyBESVJfU1VGRklYIDogZXZlbnQ7XG4gICAgdGhpcy5mc3cuX2VtaXQoZXZlbnROYW1lLCBwYXRoKTtcbiAgICBpZiAoZXZlbnROYW1lID09PSBFVl9BRERfRElSKSB0aGlzLl9hZGRUb0ZzRXZlbnRzKHBhdGgsIGZhbHNlLCB0cnVlKTtcbiAgfVxufVxuXG4vKipcbiAqIEhhbmRsZSBzeW1saW5rcyBlbmNvdW50ZXJlZCBkdXJpbmcgZGlyZWN0b3J5IHNjYW5cbiAqIEBwYXJhbSB7U3RyaW5nfSB3YXRjaFBhdGggIC0gZmlsZS9kaXIgcGF0aCB0byBiZSB3YXRjaGVkIHdpdGggZnNldmVudHNcbiAqIEBwYXJhbSB7U3RyaW5nfSByZWFsUGF0aCAgIC0gcmVhbCBwYXRoIChpbiBjYXNlIG9mIHN5bWxpbmtzKVxuICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNmb3JtICAtIHBhdGggdHJhbnNmb3JtZXJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGdsb2JGaWx0ZXIgLSBwYXRoIGZpbHRlciBpbiBjYXNlIGEgZ2xvYiBwYXR0ZXJuIHdhcyBwcm92aWRlZFxuICogQHJldHVybnMge0Z1bmN0aW9ufSBjbG9zZXIgZm9yIHRoZSB3YXRjaGVyIGluc3RhbmNlXG4qL1xuX3dhdGNoV2l0aEZzRXZlbnRzKHdhdGNoUGF0aCwgcmVhbFBhdGgsIHRyYW5zZm9ybSwgZ2xvYkZpbHRlcikge1xuICBpZiAodGhpcy5mc3cuY2xvc2VkIHx8IHRoaXMuZnN3Ll9pc0lnbm9yZWQod2F0Y2hQYXRoKSkgcmV0dXJuO1xuICBjb25zdCBvcHRzID0gdGhpcy5mc3cub3B0aW9ucztcbiAgY29uc3Qgd2F0Y2hDYWxsYmFjayA9IGFzeW5jIChmdWxsUGF0aCwgZmxhZ3MsIGluZm8pID0+IHtcbiAgICBpZiAodGhpcy5mc3cuY2xvc2VkKSByZXR1cm47XG4gICAgaWYgKFxuICAgICAgb3B0cy5kZXB0aCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBjYWxjRGVwdGgoZnVsbFBhdGgsIHJlYWxQYXRoKSA+IG9wdHMuZGVwdGhcbiAgICApIHJldHVybjtcbiAgICBjb25zdCBwYXRoID0gdHJhbnNmb3JtKHN5c1BhdGguam9pbihcbiAgICAgIHdhdGNoUGF0aCwgc3lzUGF0aC5yZWxhdGl2ZSh3YXRjaFBhdGgsIGZ1bGxQYXRoKVxuICAgICkpO1xuICAgIGlmIChnbG9iRmlsdGVyICYmICFnbG9iRmlsdGVyKHBhdGgpKSByZXR1cm47XG4gICAgLy8gZW5zdXJlIGRpcmVjdG9yaWVzIGFyZSB0cmFja2VkXG4gICAgY29uc3QgcGFyZW50ID0gc3lzUGF0aC5kaXJuYW1lKHBhdGgpO1xuICAgIGNvbnN0IGl0ZW0gPSBzeXNQYXRoLmJhc2VuYW1lKHBhdGgpO1xuICAgIGNvbnN0IHdhdGNoZWREaXIgPSB0aGlzLmZzdy5fZ2V0V2F0Y2hlZERpcihcbiAgICAgIGluZm8udHlwZSA9PT0gRlNFVkVOVF9UWVBFX0RJUkVDVE9SWSA/IHBhdGggOiBwYXJlbnRcbiAgICApO1xuXG4gICAgLy8gY29ycmVjdCBmb3Igd3JvbmcgZXZlbnRzIGVtaXR0ZWRcbiAgICBpZiAod3JvbmdFdmVudEZsYWdzLmhhcyhmbGFncykgfHwgaW5mby5ldmVudCA9PT0gRlNFVkVOVF9VTktOT1dOKSB7XG4gICAgICBpZiAodHlwZW9mIG9wdHMuaWdub3JlZCA9PT0gRlVOQ1RJT05fVFlQRSkge1xuICAgICAgICBsZXQgc3RhdHM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgc3RhdHMgPSBhd2FpdCBzdGF0KHBhdGgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge31cbiAgICAgICAgaWYgKHRoaXMuZnN3LmNsb3NlZCkgcmV0dXJuO1xuICAgICAgICBpZiAodGhpcy5jaGVja0lnbm9yZWQocGF0aCwgc3RhdHMpKSByZXR1cm47XG4gICAgICAgIGlmIChzYW1lVHlwZXMoaW5mbywgc3RhdHMpKSB7XG4gICAgICAgICAgdGhpcy5hZGRPckNoYW5nZShwYXRoLCBmdWxsUGF0aCwgcmVhbFBhdGgsIHBhcmVudCwgd2F0Y2hlZERpciwgaXRlbSwgaW5mbywgb3B0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFdmVudChFVl9VTkxJTkssIHBhdGgsIGZ1bGxQYXRoLCByZWFsUGF0aCwgcGFyZW50LCB3YXRjaGVkRGlyLCBpdGVtLCBpbmZvLCBvcHRzKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jaGVja0V4aXN0cyhwYXRoLCBmdWxsUGF0aCwgcmVhbFBhdGgsIHBhcmVudCwgd2F0Y2hlZERpciwgaXRlbSwgaW5mbywgb3B0cyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXRjaCAoaW5mby5ldmVudCkge1xuICAgICAgY2FzZSBGU0VWRU5UX0NSRUFURUQ6XG4gICAgICBjYXNlIEZTRVZFTlRfTU9ESUZJRUQ6XG4gICAgICAgIHJldHVybiB0aGlzLmFkZE9yQ2hhbmdlKHBhdGgsIGZ1bGxQYXRoLCByZWFsUGF0aCwgcGFyZW50LCB3YXRjaGVkRGlyLCBpdGVtLCBpbmZvLCBvcHRzKTtcbiAgICAgIGNhc2UgRlNFVkVOVF9ERUxFVEVEOlxuICAgICAgY2FzZSBGU0VWRU5UX01PVkVEOlxuICAgICAgICByZXR1cm4gdGhpcy5jaGVja0V4aXN0cyhwYXRoLCBmdWxsUGF0aCwgcmVhbFBhdGgsIHBhcmVudCwgd2F0Y2hlZERpciwgaXRlbSwgaW5mbywgb3B0cyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGNsb3NlciA9IHNldEZTRXZlbnRzTGlzdGVuZXIoXG4gICAgd2F0Y2hQYXRoLFxuICAgIHJlYWxQYXRoLFxuICAgIHdhdGNoQ2FsbGJhY2ssXG4gICAgdGhpcy5mc3cuX2VtaXRSYXdcbiAgKTtcblxuICB0aGlzLmZzdy5fZW1pdFJlYWR5KCk7XG4gIHJldHVybiBjbG9zZXI7XG59XG5cbi8qKlxuICogSGFuZGxlIHN5bWxpbmtzIGVuY291bnRlcmVkIGR1cmluZyBkaXJlY3Rvcnkgc2NhblxuICogQHBhcmFtIHtTdHJpbmd9IGxpbmtQYXRoIHBhdGggdG8gc3ltbGlua1xuICogQHBhcmFtIHtTdHJpbmd9IGZ1bGxQYXRoIGFic29sdXRlIHBhdGggdG8gdGhlIHN5bWxpbmtcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHRyYW5zZm9ybSBwcmUtZXhpc3RpbmcgcGF0aCB0cmFuc2Zvcm1lclxuICogQHBhcmFtIHtOdW1iZXJ9IGN1ckRlcHRoIGxldmVsIG9mIHN1YmRpcmVjdG9yaWVzIHRyYXZlcnNlZCB0byB3aGVyZSBzeW1saW5rIGlzXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAqL1xuYXN5bmMgX2hhbmRsZUZzRXZlbnRzU3ltbGluayhsaW5rUGF0aCwgZnVsbFBhdGgsIHRyYW5zZm9ybSwgY3VyRGVwdGgpIHtcbiAgLy8gZG9uJ3QgZm9sbG93IHRoZSBzYW1lIHN5bWxpbmsgbW9yZSB0aGFuIG9uY2VcbiAgaWYgKHRoaXMuZnN3LmNsb3NlZCB8fCB0aGlzLmZzdy5fc3ltbGlua1BhdGhzLmhhcyhmdWxsUGF0aCkpIHJldHVybjtcblxuICB0aGlzLmZzdy5fc3ltbGlua1BhdGhzLnNldChmdWxsUGF0aCwgdHJ1ZSk7XG4gIHRoaXMuZnN3Ll9pbmNyUmVhZHlDb3VudCgpO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgbGlua1RhcmdldCA9IGF3YWl0IHJlYWxwYXRoKGxpbmtQYXRoKTtcbiAgICBpZiAodGhpcy5mc3cuY2xvc2VkKSByZXR1cm47XG4gICAgaWYgKHRoaXMuZnN3Ll9pc0lnbm9yZWQobGlua1RhcmdldCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmZzdy5fZW1pdFJlYWR5KCk7XG4gICAgfVxuXG4gICAgdGhpcy5mc3cuX2luY3JSZWFkeUNvdW50KCk7XG5cbiAgICAvLyBhZGQgdGhlIGxpbmtUYXJnZXQgZm9yIHdhdGNoaW5nIHdpdGggYSB3cmFwcGVyIGZvciB0cmFuc2Zvcm1cbiAgICAvLyB0aGF0IGNhdXNlcyBlbWl0dGVkIHBhdGhzIHRvIGluY29ycG9yYXRlIHRoZSBsaW5rJ3MgcGF0aFxuICAgIHRoaXMuX2FkZFRvRnNFdmVudHMobGlua1RhcmdldCB8fCBsaW5rUGF0aCwgKHBhdGgpID0+IHtcbiAgICAgIGxldCBhbGlhc2VkUGF0aCA9IGxpbmtQYXRoO1xuICAgICAgaWYgKGxpbmtUYXJnZXQgJiYgbGlua1RhcmdldCAhPT0gRE9UX1NMQVNIKSB7XG4gICAgICAgIGFsaWFzZWRQYXRoID0gcGF0aC5yZXBsYWNlKGxpbmtUYXJnZXQsIGxpbmtQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAocGF0aCAhPT0gRE9UX1NMQVNIKSB7XG4gICAgICAgIGFsaWFzZWRQYXRoID0gc3lzUGF0aC5qb2luKGxpbmtQYXRoLCBwYXRoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cmFuc2Zvcm0oYWxpYXNlZFBhdGgpO1xuICAgIH0sIGZhbHNlLCBjdXJEZXB0aCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZiAodGhpcy5mc3cuX2hhbmRsZUVycm9yKGVycm9yKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZnN3Ll9lbWl0UmVhZHkoKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtQYXRofSBuZXdQYXRoXG4gKiBAcGFyYW0ge2ZzLlN0YXRzfSBzdGF0c1xuICovXG5lbWl0QWRkKG5ld1BhdGgsIHN0YXRzLCBwcm9jZXNzUGF0aCwgb3B0cywgZm9yY2VBZGQpIHtcbiAgY29uc3QgcHAgPSBwcm9jZXNzUGF0aChuZXdQYXRoKTtcbiAgY29uc3QgaXNEaXIgPSBzdGF0cy5pc0RpcmVjdG9yeSgpO1xuICBjb25zdCBkaXJPYmogPSB0aGlzLmZzdy5fZ2V0V2F0Y2hlZERpcihzeXNQYXRoLmRpcm5hbWUocHApKTtcbiAgY29uc3QgYmFzZSA9IHN5c1BhdGguYmFzZW5hbWUocHApO1xuXG4gIC8vIGVuc3VyZSBlbXB0eSBkaXJzIGdldCB0cmFja2VkXG4gIGlmIChpc0RpcikgdGhpcy5mc3cuX2dldFdhdGNoZWREaXIocHApO1xuICBpZiAoZGlyT2JqLmhhcyhiYXNlKSkgcmV0dXJuO1xuICBkaXJPYmouYWRkKGJhc2UpO1xuXG4gIGlmICghb3B0cy5pZ25vcmVJbml0aWFsIHx8IGZvcmNlQWRkID09PSB0cnVlKSB7XG4gICAgdGhpcy5mc3cuX2VtaXQoaXNEaXIgPyBFVl9BRERfRElSIDogRVZfQURELCBwcCwgc3RhdHMpO1xuICB9XG59XG5cbmluaXRXYXRjaChyZWFsUGF0aCwgcGF0aCwgd2gsIHByb2Nlc3NQYXRoKSB7XG4gIGlmICh0aGlzLmZzdy5jbG9zZWQpIHJldHVybjtcbiAgY29uc3QgY2xvc2VyID0gdGhpcy5fd2F0Y2hXaXRoRnNFdmVudHMoXG4gICAgd2gud2F0Y2hQYXRoLFxuICAgIHN5c1BhdGgucmVzb2x2ZShyZWFsUGF0aCB8fCB3aC53YXRjaFBhdGgpLFxuICAgIHByb2Nlc3NQYXRoLFxuICAgIHdoLmdsb2JGaWx0ZXJcbiAgKTtcbiAgdGhpcy5mc3cuX2FkZFBhdGhDbG9zZXIocGF0aCwgY2xvc2VyKTtcbn1cblxuLyoqXG4gKiBIYW5kbGUgYWRkZWQgcGF0aCB3aXRoIGZzZXZlbnRzXG4gKiBAcGFyYW0ge1N0cmluZ30gcGF0aCBmaWxlL2RpciBwYXRoIG9yIGdsb2IgcGF0dGVyblxuICogQHBhcmFtIHtGdW5jdGlvbnxCb29sZWFuPX0gdHJhbnNmb3JtIGNvbnZlcnRzIHdvcmtpbmcgcGF0aCB0byB3aGF0IHRoZSB1c2VyIGV4cGVjdHNcbiAqIEBwYXJhbSB7Qm9vbGVhbj19IGZvcmNlQWRkIGVuc3VyZSBhZGQgaXMgZW1pdHRlZFxuICogQHBhcmFtIHtOdW1iZXI9fSBwcmlvckRlcHRoIExldmVsIG9mIHN1YmRpcmVjdG9yaWVzIGFscmVhZHkgdHJhdmVyc2VkLlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gKi9cbmFzeW5jIF9hZGRUb0ZzRXZlbnRzKHBhdGgsIHRyYW5zZm9ybSwgZm9yY2VBZGQsIHByaW9yRGVwdGgpIHtcbiAgaWYgKHRoaXMuZnN3LmNsb3NlZCkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBvcHRzID0gdGhpcy5mc3cub3B0aW9ucztcbiAgY29uc3QgcHJvY2Vzc1BhdGggPSB0eXBlb2YgdHJhbnNmb3JtID09PSBGVU5DVElPTl9UWVBFID8gdHJhbnNmb3JtIDogSURFTlRJVFlfRk47XG5cbiAgY29uc3Qgd2ggPSB0aGlzLmZzdy5fZ2V0V2F0Y2hIZWxwZXJzKHBhdGgpO1xuXG4gIC8vIGV2YWx1YXRlIHdoYXQgaXMgYXQgdGhlIHBhdGggd2UncmUgYmVpbmcgYXNrZWQgdG8gd2F0Y2hcbiAgdHJ5IHtcbiAgICBjb25zdCBzdGF0cyA9IGF3YWl0IHN0YXRNZXRob2RzW3doLnN0YXRNZXRob2RdKHdoLndhdGNoUGF0aCk7XG4gICAgaWYgKHRoaXMuZnN3LmNsb3NlZCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmZzdy5faXNJZ25vcmVkKHdoLndhdGNoUGF0aCwgc3RhdHMpKSB7XG4gICAgICB0aHJvdyBudWxsO1xuICAgIH1cbiAgICBpZiAoc3RhdHMuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgLy8gZW1pdCBhZGREaXIgdW5sZXNzIHRoaXMgaXMgYSBnbG9iIHBhcmVudFxuICAgICAgaWYgKCF3aC5nbG9iRmlsdGVyKSB0aGlzLmVtaXRBZGQocHJvY2Vzc1BhdGgocGF0aCksIHN0YXRzLCBwcm9jZXNzUGF0aCwgb3B0cywgZm9yY2VBZGQpO1xuXG4gICAgICAvLyBkb24ndCByZWN1cnNlIGZ1cnRoZXIgaWYgaXQgd291bGQgZXhjZWVkIGRlcHRoIHNldHRpbmdcbiAgICAgIGlmIChwcmlvckRlcHRoICYmIHByaW9yRGVwdGggPiBvcHRzLmRlcHRoKSByZXR1cm47XG5cbiAgICAgIC8vIHNjYW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBkaXJcbiAgICAgIHRoaXMuZnN3Ll9yZWFkZGlycCh3aC53YXRjaFBhdGgsIHtcbiAgICAgICAgZmlsZUZpbHRlcjogZW50cnkgPT4gd2guZmlsdGVyUGF0aChlbnRyeSksXG4gICAgICAgIGRpcmVjdG9yeUZpbHRlcjogZW50cnkgPT4gd2guZmlsdGVyRGlyKGVudHJ5KSxcbiAgICAgICAgLi4uRGVwdGgob3B0cy5kZXB0aCAtIChwcmlvckRlcHRoIHx8IDApKVxuICAgICAgfSkub24oU1RSX0RBVEEsIChlbnRyeSkgPT4ge1xuICAgICAgICAvLyBuZWVkIHRvIGNoZWNrIGZpbHRlclBhdGggb24gZGlycyBiL2MgZmlsdGVyRGlyIGlzIGxlc3MgcmVzdHJpY3RpdmVcbiAgICAgICAgaWYgKHRoaXMuZnN3LmNsb3NlZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkuc3RhdHMuaXNEaXJlY3RvcnkoKSAmJiAhd2guZmlsdGVyUGF0aChlbnRyeSkpIHJldHVybjtcblxuICAgICAgICBjb25zdCBqb2luZWRQYXRoID0gc3lzUGF0aC5qb2luKHdoLndhdGNoUGF0aCwgZW50cnkucGF0aCk7XG4gICAgICAgIGNvbnN0IHtmdWxsUGF0aH0gPSBlbnRyeTtcblxuICAgICAgICBpZiAod2guZm9sbG93U3ltbGlua3MgJiYgZW50cnkuc3RhdHMuaXNTeW1ib2xpY0xpbmsoKSkge1xuICAgICAgICAgIC8vIHByZXNlcnZlIHRoZSBjdXJyZW50IGRlcHRoIGhlcmUgc2luY2UgaXQgY2FuJ3QgYmUgZGVyaXZlZCBmcm9tXG4gICAgICAgICAgLy8gcmVhbCBwYXRocyBwYXN0IHRoZSBzeW1saW5rXG4gICAgICAgICAgY29uc3QgY3VyRGVwdGggPSBvcHRzLmRlcHRoID09PSB1bmRlZmluZWQgP1xuICAgICAgICAgICAgdW5kZWZpbmVkIDogY2FsY0RlcHRoKGpvaW5lZFBhdGgsIHN5c1BhdGgucmVzb2x2ZSh3aC53YXRjaFBhdGgpKSArIDE7XG5cbiAgICAgICAgICB0aGlzLl9oYW5kbGVGc0V2ZW50c1N5bWxpbmsoam9pbmVkUGF0aCwgZnVsbFBhdGgsIHByb2Nlc3NQYXRoLCBjdXJEZXB0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbWl0QWRkKGpvaW5lZFBhdGgsIGVudHJ5LnN0YXRzLCBwcm9jZXNzUGF0aCwgb3B0cywgZm9yY2VBZGQpO1xuICAgICAgICB9XG4gICAgICB9KS5vbihFVl9FUlJPUiwgRU1QVFlfRk4pLm9uKFNUUl9FTkQsICgpID0+IHtcbiAgICAgICAgdGhpcy5mc3cuX2VtaXRSZWFkeSgpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW1pdEFkZCh3aC53YXRjaFBhdGgsIHN0YXRzLCBwcm9jZXNzUGF0aCwgb3B0cywgZm9yY2VBZGQpO1xuICAgICAgdGhpcy5mc3cuX2VtaXRSZWFkeSgpO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoIWVycm9yIHx8IHRoaXMuZnN3Ll9oYW5kbGVFcnJvcihlcnJvcikpIHtcbiAgICAgIC8vIFRPRE86IFN0cmFuZ2UgdGhpbmc6IFwic2hvdWxkIG5vdCBjaG9rZSBvbiBhbiBpZ25vcmVkIHdhdGNoIHBhdGhcIiB3aWxsIGJlIGZhaWxlZCB3aXRob3V0IDIgcmVhZHkgY2FsbHMgLV9fLVxuICAgICAgdGhpcy5mc3cuX2VtaXRSZWFkeSgpO1xuICAgICAgdGhpcy5mc3cuX2VtaXRSZWFkeSgpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChvcHRzLnBlcnNpc3RlbnQgJiYgZm9yY2VBZGQgIT09IHRydWUpIHtcbiAgICBpZiAodHlwZW9mIHRyYW5zZm9ybSA9PT0gRlVOQ1RJT05fVFlQRSkge1xuICAgICAgLy8gcmVhbHBhdGggaGFzIGFscmVhZHkgYmVlbiByZXNvbHZlZFxuICAgICAgdGhpcy5pbml0V2F0Y2godW5kZWZpbmVkLCBwYXRoLCB3aCwgcHJvY2Vzc1BhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcmVhbFBhdGg7XG4gICAgICB0cnkge1xuICAgICAgICByZWFsUGF0aCA9IGF3YWl0IHJlYWxwYXRoKHdoLndhdGNoUGF0aCk7XG4gICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgdGhpcy5pbml0V2F0Y2gocmVhbFBhdGgsIHBhdGgsIHdoLCBwcm9jZXNzUGF0aCk7XG4gICAgfVxuICB9XG59XG5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBGc0V2ZW50c0hhbmRsZXI7XG5tb2R1bGUuZXhwb3J0cy5jYW5Vc2UgPSBjYW5Vc2U7XG4iLCIndXNlIHN0cmljdCc7XG5cbmNvbnN0IHsgRXZlbnRFbWl0dGVyIH0gPSByZXF1aXJlKCdldmVudHMnKTtcbmNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTtcbmNvbnN0IHN5c1BhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5jb25zdCB7IHByb21pc2lmeSB9ID0gcmVxdWlyZSgndXRpbCcpO1xuY29uc3QgcmVhZGRpcnAgPSByZXF1aXJlKCdyZWFkZGlycCcpO1xuY29uc3QgYW55bWF0Y2ggPSByZXF1aXJlKCdhbnltYXRjaCcpLmRlZmF1bHQ7XG5jb25zdCBnbG9iUGFyZW50ID0gcmVxdWlyZSgnZ2xvYi1wYXJlbnQnKTtcbmNvbnN0IGlzR2xvYiA9IHJlcXVpcmUoJ2lzLWdsb2InKTtcbmNvbnN0IGJyYWNlcyA9IHJlcXVpcmUoJ2JyYWNlcycpO1xuY29uc3Qgbm9ybWFsaXplUGF0aCA9IHJlcXVpcmUoJ25vcm1hbGl6ZS1wYXRoJyk7XG5cbmNvbnN0IE5vZGVGc0hhbmRsZXIgPSByZXF1aXJlKCcuL2xpYi9ub2RlZnMtaGFuZGxlcicpO1xuY29uc3QgRnNFdmVudHNIYW5kbGVyID0gcmVxdWlyZSgnLi9saWIvZnNldmVudHMtaGFuZGxlcicpO1xuY29uc3Qge1xuICBFVl9BTEwsXG4gIEVWX1JFQURZLFxuICBFVl9BREQsXG4gIEVWX0NIQU5HRSxcbiAgRVZfVU5MSU5LLFxuICBFVl9BRERfRElSLFxuICBFVl9VTkxJTktfRElSLFxuICBFVl9SQVcsXG4gIEVWX0VSUk9SLFxuXG4gIFNUUl9DTE9TRSxcbiAgU1RSX0VORCxcblxuICBCQUNLX1NMQVNIX1JFLFxuICBET1VCTEVfU0xBU0hfUkUsXG4gIFNMQVNIX09SX0JBQ0tfU0xBU0hfUkUsXG4gIERPVF9SRSxcbiAgUkVQTEFDRVJfUkUsXG5cbiAgU0xBU0gsXG4gIFNMQVNIX1NMQVNILFxuICBCUkFDRV9TVEFSVCxcbiAgQkFORyxcbiAgT05FX0RPVCxcbiAgVFdPX0RPVFMsXG4gIEdMT0JTVEFSLFxuICBTTEFTSF9HTE9CU1RBUixcbiAgQU5ZTUFUQ0hfT1BUUyxcbiAgU1RSSU5HX1RZUEUsXG4gIEZVTkNUSU9OX1RZUEUsXG4gIEVNUFRZX1NUUixcbiAgRU1QVFlfRk4sXG5cbiAgaXNXaW5kb3dzLFxuICBpc01hY29zXG59ID0gcmVxdWlyZSgnLi9saWIvY29uc3RhbnRzJyk7XG5cbmNvbnN0IHN0YXQgPSBwcm9taXNpZnkoZnMuc3RhdCk7XG5jb25zdCByZWFkZGlyID0gcHJvbWlzaWZ5KGZzLnJlYWRkaXIpO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtTdHJpbmd9IFBhdGhcbiAqIEB0eXBlZGVmIHsnYWxsJ3wnYWRkJ3wnYWRkRGlyJ3wnY2hhbmdlJ3wndW5saW5rJ3wndW5saW5rRGlyJ3wncmF3J3wnZXJyb3InfCdyZWFkeSd9IEV2ZW50TmFtZVxuICogQHR5cGVkZWYgeydyZWFkZGlyJ3wnd2F0Y2gnfCdhZGQnfCdyZW1vdmUnfCdjaGFuZ2UnfSBUaHJvdHRsZVR5cGVcbiAqL1xuXG4vKipcbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBXYXRjaEhlbHBlcnNcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gZm9sbG93U3ltbGlua3NcbiAqIEBwcm9wZXJ0eSB7J3N0YXQnfCdsc3RhdCd9IHN0YXRNZXRob2RcbiAqIEBwcm9wZXJ0eSB7UGF0aH0gcGF0aFxuICogQHByb3BlcnR5IHtQYXRofSB3YXRjaFBhdGhcbiAqIEBwcm9wZXJ0eSB7RnVuY3Rpb259IGVudHJ5UGF0aFxuICogQHByb3BlcnR5IHtCb29sZWFufSBoYXNHbG9iXG4gKiBAcHJvcGVydHkge09iamVjdH0gZ2xvYkZpbHRlclxuICogQHByb3BlcnR5IHtGdW5jdGlvbn0gZmlsdGVyUGF0aFxuICogQHByb3BlcnR5IHtGdW5jdGlvbn0gZmlsdGVyRGlyXG4gKi9cblxuY29uc3QgYXJyaWZ5ID0gKHZhbHVlID0gW10pID0+IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuY29uc3QgZmxhdHRlbiA9IChsaXN0LCByZXN1bHQgPSBbXSkgPT4ge1xuICBsaXN0LmZvckVhY2goaXRlbSA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcbiAgICAgIGZsYXR0ZW4oaXRlbSwgcmVzdWx0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IHVuaWZ5UGF0aHMgPSAocGF0aHNfKSA9PiB7XG4gIC8qKlxuICAgKiBAdHlwZSB7QXJyYXk8U3RyaW5nPn1cbiAgICovXG4gIGNvbnN0IHBhdGhzID0gZmxhdHRlbihhcnJpZnkocGF0aHNfKSk7XG4gIGlmICghcGF0aHMuZXZlcnkocCA9PiB0eXBlb2YgcCA9PT0gU1RSSU5HX1RZUEUpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgTm9uLXN0cmluZyBwcm92aWRlZCBhcyB3YXRjaCBwYXRoOiAke3BhdGhzfWApO1xuICB9XG4gIHJldHVybiBwYXRocy5tYXAobm9ybWFsaXplUGF0aFRvVW5peCk7XG59O1xuXG4vLyBJZiBTTEFTSF9TTEFTSCBvY2N1cnMgYXQgdGhlIGJlZ2lubmluZyBvZiBwYXRoLCBpdCBpcyBub3QgcmVwbGFjZWRcbi8vICAgICBiZWNhdXNlIFwiLy9TdG9yYWdlUEMvRHJpdmVQb29sL01vdmllc1wiIGlzIGEgdmFsaWQgbmV0d29yayBwYXRoXG5jb25zdCB0b1VuaXggPSAoc3RyaW5nKSA9PiB7XG4gIGxldCBzdHIgPSBzdHJpbmcucmVwbGFjZShCQUNLX1NMQVNIX1JFLCBTTEFTSCk7XG4gIGxldCBwcmVwZW5kID0gZmFsc2U7XG4gIGlmIChzdHIuc3RhcnRzV2l0aChTTEFTSF9TTEFTSCkpIHtcbiAgICBwcmVwZW5kID0gdHJ1ZTtcbiAgfVxuICB3aGlsZSAoc3RyLm1hdGNoKERPVUJMRV9TTEFTSF9SRSkpIHtcbiAgICBzdHIgPSBzdHIucmVwbGFjZShET1VCTEVfU0xBU0hfUkUsIFNMQVNIKTtcbiAgfVxuICBpZiAocHJlcGVuZCkge1xuICAgIHN0ciA9IFNMQVNIICsgc3RyO1xuICB9XG4gIHJldHVybiBzdHI7XG59O1xuXG4vLyBPdXIgdmVyc2lvbiBvZiB1cGF0aC5ub3JtYWxpemVcbi8vIFRPRE86IHRoaXMgaXMgbm90IGVxdWFsIHRvIHBhdGgtbm9ybWFsaXplIG1vZHVsZSAtIGludmVzdGlnYXRlIHdoeVxuY29uc3Qgbm9ybWFsaXplUGF0aFRvVW5peCA9IChwYXRoKSA9PiB0b1VuaXgoc3lzUGF0aC5ub3JtYWxpemUodG9Vbml4KHBhdGgpKSk7XG5cbmNvbnN0IG5vcm1hbGl6ZUlnbm9yZWQgPSAoY3dkID0gRU1QVFlfU1RSKSA9PiAocGF0aCkgPT4ge1xuICBpZiAodHlwZW9mIHBhdGggIT09IFNUUklOR19UWVBFKSByZXR1cm4gcGF0aDtcbiAgcmV0dXJuIG5vcm1hbGl6ZVBhdGhUb1VuaXgoc3lzUGF0aC5pc0Fic29sdXRlKHBhdGgpID8gcGF0aCA6IHN5c1BhdGguam9pbihjd2QsIHBhdGgpKTtcbn07XG5cbmNvbnN0IGdldEFic29sdXRlUGF0aCA9IChwYXRoLCBjd2QpID0+IHtcbiAgaWYgKHN5c1BhdGguaXNBYnNvbHV0ZShwYXRoKSkge1xuICAgIHJldHVybiBwYXRoO1xuICB9XG4gIGlmIChwYXRoLnN0YXJ0c1dpdGgoQkFORykpIHtcbiAgICByZXR1cm4gQkFORyArIHN5c1BhdGguam9pbihjd2QsIHBhdGguc2xpY2UoMSkpO1xuICB9XG4gIHJldHVybiBzeXNQYXRoLmpvaW4oY3dkLCBwYXRoKTtcbn07XG5cbmNvbnN0IHVuZGVmID0gKG9wdHMsIGtleSkgPT4gb3B0c1trZXldID09PSB1bmRlZmluZWQ7XG5cbi8qKlxuICogRGlyZWN0b3J5IGVudHJ5LlxuICogQHByb3BlcnR5IHtQYXRofSBwYXRoXG4gKiBAcHJvcGVydHkge1NldDxQYXRoPn0gaXRlbXNcbiAqL1xuY2xhc3MgRGlyRW50cnkge1xuICAvKipcbiAgICogQHBhcmFtIHtQYXRofSBkaXJcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gcmVtb3ZlV2F0Y2hlclxuICAgKi9cbiAgY29uc3RydWN0b3IoZGlyLCByZW1vdmVXYXRjaGVyKSB7XG4gICAgdGhpcy5wYXRoID0gZGlyO1xuICAgIHRoaXMuX3JlbW92ZVdhdGNoZXIgPSByZW1vdmVXYXRjaGVyO1xuICAgIC8qKiBAdHlwZSB7U2V0PFBhdGg+fSAqL1xuICAgIHRoaXMuaXRlbXMgPSBuZXcgU2V0KCk7XG4gIH1cblxuICBhZGQoaXRlbSkge1xuICAgIGNvbnN0IHtpdGVtc30gPSB0aGlzO1xuICAgIGlmICghaXRlbXMpIHJldHVybjtcbiAgICBpZiAoaXRlbSAhPT0gT05FX0RPVCAmJiBpdGVtICE9PSBUV09fRE9UUykgaXRlbXMuYWRkKGl0ZW0pO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlKGl0ZW0pIHtcbiAgICBjb25zdCB7aXRlbXN9ID0gdGhpcztcbiAgICBpZiAoIWl0ZW1zKSByZXR1cm47XG4gICAgaXRlbXMuZGVsZXRlKGl0ZW0pO1xuICAgIGlmIChpdGVtcy5zaXplID4gMCkgcmV0dXJuO1xuXG4gICAgY29uc3QgZGlyID0gdGhpcy5wYXRoO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCByZWFkZGlyKGRpcik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAodGhpcy5fcmVtb3ZlV2F0Y2hlcikge1xuICAgICAgICB0aGlzLl9yZW1vdmVXYXRjaGVyKHN5c1BhdGguZGlybmFtZShkaXIpLCBzeXNQYXRoLmJhc2VuYW1lKGRpcikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhcyhpdGVtKSB7XG4gICAgY29uc3Qge2l0ZW1zfSA9IHRoaXM7XG4gICAgaWYgKCFpdGVtcykgcmV0dXJuO1xuICAgIHJldHVybiBpdGVtcy5oYXMoaXRlbSk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge0FycmF5PFN0cmluZz59XG4gICAqL1xuICBnZXRDaGlsZHJlbigpIHtcbiAgICBjb25zdCB7aXRlbXN9ID0gdGhpcztcbiAgICBpZiAoIWl0ZW1zKSByZXR1cm47XG4gICAgcmV0dXJuIFsuLi5pdGVtcy52YWx1ZXMoKV07XG4gIH1cblxuICBkaXNwb3NlKCkge1xuICAgIHRoaXMuaXRlbXMuY2xlYXIoKTtcbiAgICBkZWxldGUgdGhpcy5wYXRoO1xuICAgIGRlbGV0ZSB0aGlzLl9yZW1vdmVXYXRjaGVyO1xuICAgIGRlbGV0ZSB0aGlzLml0ZW1zO1xuICAgIE9iamVjdC5mcmVlemUodGhpcyk7XG4gIH1cbn1cblxuY29uc3QgU1RBVF9NRVRIT0RfRiA9ICdzdGF0JztcbmNvbnN0IFNUQVRfTUVUSE9EX0wgPSAnbHN0YXQnO1xuY2xhc3MgV2F0Y2hIZWxwZXIge1xuICBjb25zdHJ1Y3RvcihwYXRoLCB3YXRjaFBhdGgsIGZvbGxvdywgZnN3KSB7XG4gICAgdGhpcy5mc3cgPSBmc3c7XG4gICAgdGhpcy5wYXRoID0gcGF0aCA9IHBhdGgucmVwbGFjZShSRVBMQUNFUl9SRSwgRU1QVFlfU1RSKTtcbiAgICB0aGlzLndhdGNoUGF0aCA9IHdhdGNoUGF0aDtcbiAgICB0aGlzLmZ1bGxXYXRjaFBhdGggPSBzeXNQYXRoLnJlc29sdmUod2F0Y2hQYXRoKTtcbiAgICB0aGlzLmhhc0dsb2IgPSB3YXRjaFBhdGggIT09IHBhdGg7XG4gICAgLyoqIEB0eXBlIHtvYmplY3R8Ym9vbGVhbn0gKi9cbiAgICBpZiAocGF0aCA9PT0gRU1QVFlfU1RSKSB0aGlzLmhhc0dsb2IgPSBmYWxzZTtcbiAgICB0aGlzLmdsb2JTeW1saW5rID0gdGhpcy5oYXNHbG9iICYmIGZvbGxvdyA/IHVuZGVmaW5lZCA6IGZhbHNlO1xuICAgIHRoaXMuZ2xvYkZpbHRlciA9IHRoaXMuaGFzR2xvYiA/IGFueW1hdGNoKHBhdGgsIHVuZGVmaW5lZCwgQU5ZTUFUQ0hfT1BUUykgOiBmYWxzZTtcbiAgICB0aGlzLmRpclBhcnRzID0gdGhpcy5nZXREaXJQYXJ0cyhwYXRoKTtcbiAgICB0aGlzLmRpclBhcnRzLmZvckVhY2goKHBhcnRzKSA9PiB7XG4gICAgICBpZiAocGFydHMubGVuZ3RoID4gMSkgcGFydHMucG9wKCk7XG4gICAgfSk7XG4gICAgdGhpcy5mb2xsb3dTeW1saW5rcyA9IGZvbGxvdztcbiAgICB0aGlzLnN0YXRNZXRob2QgPSBmb2xsb3cgPyBTVEFUX01FVEhPRF9GIDogU1RBVF9NRVRIT0RfTDtcbiAgfVxuXG4gIGNoZWNrR2xvYlN5bWxpbmsoZW50cnkpIHtcbiAgICAvLyBvbmx5IG5lZWQgdG8gcmVzb2x2ZSBvbmNlXG4gICAgLy8gZmlyc3QgZW50cnkgc2hvdWxkIGFsd2F5cyBoYXZlIGVudHJ5LnBhcmVudERpciA9PT0gRU1QVFlfU1RSXG4gICAgaWYgKHRoaXMuZ2xvYlN5bWxpbmsgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5nbG9iU3ltbGluayA9IGVudHJ5LmZ1bGxQYXJlbnREaXIgPT09IHRoaXMuZnVsbFdhdGNoUGF0aCA/XG4gICAgICAgIGZhbHNlIDoge3JlYWxQYXRoOiBlbnRyeS5mdWxsUGFyZW50RGlyLCBsaW5rUGF0aDogdGhpcy5mdWxsV2F0Y2hQYXRofTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nbG9iU3ltbGluaykge1xuICAgICAgcmV0dXJuIGVudHJ5LmZ1bGxQYXRoLnJlcGxhY2UodGhpcy5nbG9iU3ltbGluay5yZWFsUGF0aCwgdGhpcy5nbG9iU3ltbGluay5saW5rUGF0aCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVudHJ5LmZ1bGxQYXRoO1xuICB9XG5cbiAgZW50cnlQYXRoKGVudHJ5KSB7XG4gICAgcmV0dXJuIHN5c1BhdGguam9pbih0aGlzLndhdGNoUGF0aCxcbiAgICAgIHN5c1BhdGgucmVsYXRpdmUodGhpcy53YXRjaFBhdGgsIHRoaXMuY2hlY2tHbG9iU3ltbGluayhlbnRyeSkpXG4gICAgKTtcbiAgfVxuXG4gIGZpbHRlclBhdGgoZW50cnkpIHtcbiAgICBjb25zdCB7c3RhdHN9ID0gZW50cnk7XG4gICAgaWYgKHN0YXRzICYmIHN0YXRzLmlzU3ltYm9saWNMaW5rKCkpIHJldHVybiB0aGlzLmZpbHRlckRpcihlbnRyeSk7XG4gICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gdGhpcy5lbnRyeVBhdGgoZW50cnkpO1xuICAgIGNvbnN0IG1hdGNoZXNHbG9iID0gdGhpcy5oYXNHbG9iICYmIHR5cGVvZiB0aGlzLmdsb2JGaWx0ZXIgPT09IEZVTkNUSU9OX1RZUEUgP1xuICAgICAgdGhpcy5nbG9iRmlsdGVyKHJlc29sdmVkUGF0aCkgOiB0cnVlO1xuICAgIHJldHVybiBtYXRjaGVzR2xvYiAmJlxuICAgICAgdGhpcy5mc3cuX2lzbnRJZ25vcmVkKHJlc29sdmVkUGF0aCwgc3RhdHMpICYmXG4gICAgICB0aGlzLmZzdy5faGFzUmVhZFBlcm1pc3Npb25zKHN0YXRzKTtcbiAgfVxuXG4gIGdldERpclBhcnRzKHBhdGgpIHtcbiAgICBpZiAoIXRoaXMuaGFzR2xvYikgcmV0dXJuIFtdO1xuICAgIGNvbnN0IHBhcnRzID0gW107XG4gICAgY29uc3QgZXhwYW5kZWRQYXRoID0gcGF0aC5pbmNsdWRlcyhCUkFDRV9TVEFSVCkgPyBicmFjZXMuZXhwYW5kKHBhdGgpIDogW3BhdGhdO1xuICAgIGV4cGFuZGVkUGF0aC5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICBwYXJ0cy5wdXNoKHN5c1BhdGgucmVsYXRpdmUodGhpcy53YXRjaFBhdGgsIHBhdGgpLnNwbGl0KFNMQVNIX09SX0JBQ0tfU0xBU0hfUkUpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcGFydHM7XG4gIH1cblxuICBmaWx0ZXJEaXIoZW50cnkpIHtcbiAgICBpZiAodGhpcy5oYXNHbG9iKSB7XG4gICAgICBjb25zdCBlbnRyeVBhcnRzID0gdGhpcy5nZXREaXJQYXJ0cyh0aGlzLmNoZWNrR2xvYlN5bWxpbmsoZW50cnkpKTtcbiAgICAgIGxldCBnbG9ic3RhciA9IGZhbHNlO1xuICAgICAgdGhpcy51bm1hdGNoZWRHbG9iID0gIXRoaXMuZGlyUGFydHMuc29tZSgocGFydHMpID0+IHtcbiAgICAgICAgcmV0dXJuIHBhcnRzLmV2ZXJ5KChwYXJ0LCBpKSA9PiB7XG4gICAgICAgICAgaWYgKHBhcnQgPT09IEdMT0JTVEFSKSBnbG9ic3RhciA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuIGdsb2JzdGFyIHx8ICFlbnRyeVBhcnRzWzBdW2ldIHx8IGFueW1hdGNoKHBhcnQsIGVudHJ5UGFydHNbMF1baV0sIEFOWU1BVENIX09QVFMpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gIXRoaXMudW5tYXRjaGVkR2xvYiAmJiB0aGlzLmZzdy5faXNudElnbm9yZWQodGhpcy5lbnRyeVBhdGgoZW50cnkpLCBlbnRyeS5zdGF0cyk7XG4gIH1cbn1cblxuLyoqXG4gKiBXYXRjaGVzIGZpbGVzICYgZGlyZWN0b3JpZXMgZm9yIGNoYW5nZXMuIEVtaXR0ZWQgZXZlbnRzOlxuICogYGFkZGAsIGBhZGREaXJgLCBgY2hhbmdlYCwgYHVubGlua2AsIGB1bmxpbmtEaXJgLCBgYWxsYCwgYGVycm9yYFxuICpcbiAqICAgICBuZXcgRlNXYXRjaGVyKClcbiAqICAgICAgIC5hZGQoZGlyZWN0b3JpZXMpXG4gKiAgICAgICAub24oJ2FkZCcsIHBhdGggPT4gbG9nKCdGaWxlJywgcGF0aCwgJ3dhcyBhZGRlZCcpKVxuICovXG5jbGFzcyBGU1dhdGNoZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuLy8gTm90IGluZGVudGluZyBtZXRob2RzIGZvciBoaXN0b3J5IHNha2U7IGZvciBub3cuXG5jb25zdHJ1Y3Rvcihfb3B0cykge1xuICBzdXBlcigpO1xuXG4gIGNvbnN0IG9wdHMgPSB7fTtcbiAgaWYgKF9vcHRzKSBPYmplY3QuYXNzaWduKG9wdHMsIF9vcHRzKTsgLy8gZm9yIGZyb3plbiBvYmplY3RzXG5cbiAgLyoqIEB0eXBlIHtNYXA8U3RyaW5nLCBEaXJFbnRyeT59ICovXG4gIHRoaXMuX3dhdGNoZWQgPSBuZXcgTWFwKCk7XG4gIC8qKiBAdHlwZSB7TWFwPFN0cmluZywgQXJyYXk+fSAqL1xuICB0aGlzLl9jbG9zZXJzID0gbmV3IE1hcCgpO1xuICAvKiogQHR5cGUge1NldDxTdHJpbmc+fSAqL1xuICB0aGlzLl9pZ25vcmVkUGF0aHMgPSBuZXcgU2V0KCk7XG5cbiAgLyoqIEB0eXBlIHtNYXA8VGhyb3R0bGVUeXBlLCBNYXA+fSAqL1xuICB0aGlzLl90aHJvdHRsZWQgPSBuZXcgTWFwKCk7XG5cbiAgLyoqIEB0eXBlIHtNYXA8UGF0aCwgU3RyaW5nfEJvb2xlYW4+fSAqL1xuICB0aGlzLl9zeW1saW5rUGF0aHMgPSBuZXcgTWFwKCk7XG5cbiAgdGhpcy5fc3RyZWFtcyA9IG5ldyBTZXQoKTtcbiAgdGhpcy5jbG9zZWQgPSBmYWxzZTtcblxuICAvLyBTZXQgdXAgZGVmYXVsdCBvcHRpb25zLlxuICBpZiAodW5kZWYob3B0cywgJ3BlcnNpc3RlbnQnKSkgb3B0cy5wZXJzaXN0ZW50ID0gdHJ1ZTtcbiAgaWYgKHVuZGVmKG9wdHMsICdpZ25vcmVJbml0aWFsJykpIG9wdHMuaWdub3JlSW5pdGlhbCA9IGZhbHNlO1xuICBpZiAodW5kZWYob3B0cywgJ2lnbm9yZVBlcm1pc3Npb25FcnJvcnMnKSkgb3B0cy5pZ25vcmVQZXJtaXNzaW9uRXJyb3JzID0gZmFsc2U7XG4gIGlmICh1bmRlZihvcHRzLCAnaW50ZXJ2YWwnKSkgb3B0cy5pbnRlcnZhbCA9IDEwMDtcbiAgaWYgKHVuZGVmKG9wdHMsICdiaW5hcnlJbnRlcnZhbCcpKSBvcHRzLmJpbmFyeUludGVydmFsID0gMzAwO1xuICBpZiAodW5kZWYob3B0cywgJ2Rpc2FibGVHbG9iYmluZycpKSBvcHRzLmRpc2FibGVHbG9iYmluZyA9IGZhbHNlO1xuICBvcHRzLmVuYWJsZUJpbmFyeUludGVydmFsID0gb3B0cy5iaW5hcnlJbnRlcnZhbCAhPT0gb3B0cy5pbnRlcnZhbDtcblxuICAvLyBFbmFibGUgZnNldmVudHMgb24gT1MgWCB3aGVuIHBvbGxpbmcgaXNuJ3QgZXhwbGljaXRseSBlbmFibGVkLlxuICBpZiAodW5kZWYob3B0cywgJ3VzZUZzRXZlbnRzJykpIG9wdHMudXNlRnNFdmVudHMgPSAhb3B0cy51c2VQb2xsaW5nO1xuXG4gIC8vIElmIHdlIGNhbid0IHVzZSBmc2V2ZW50cywgZW5zdXJlIHRoZSBvcHRpb25zIHJlZmxlY3QgaXQncyBkaXNhYmxlZC5cbiAgY29uc3QgY2FuVXNlRnNFdmVudHMgPSBGc0V2ZW50c0hhbmRsZXIuY2FuVXNlKCk7XG4gIGlmICghY2FuVXNlRnNFdmVudHMpIG9wdHMudXNlRnNFdmVudHMgPSBmYWxzZTtcblxuICAvLyBVc2UgcG9sbGluZyBvbiBNYWMgaWYgbm90IHVzaW5nIGZzZXZlbnRzLlxuICAvLyBPdGhlciBwbGF0Zm9ybXMgdXNlIG5vbi1wb2xsaW5nIGZzX3dhdGNoLlxuICBpZiAodW5kZWYob3B0cywgJ3VzZVBvbGxpbmcnKSAmJiAhb3B0cy51c2VGc0V2ZW50cykge1xuICAgIG9wdHMudXNlUG9sbGluZyA9IGlzTWFjb3M7XG4gIH1cblxuICAvLyBHbG9iYWwgb3ZlcnJpZGUgKHVzZWZ1bCBmb3IgZW5kLWRldmVsb3BlcnMgdGhhdCBuZWVkIHRvIGZvcmNlIHBvbGxpbmcgZm9yIGFsbFxuICAvLyBpbnN0YW5jZXMgb2YgY2hva2lkYXIsIHJlZ2FyZGxlc3Mgb2YgdXNhZ2UvZGVwZW5kZW5jeSBkZXB0aClcbiAgY29uc3QgZW52UG9sbCA9IHByb2Nlc3MuZW52LkNIT0tJREFSX1VTRVBPTExJTkc7XG4gIGlmIChlbnZQb2xsICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBlbnZMb3dlciA9IGVudlBvbGwudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChlbnZMb3dlciA9PT0gJ2ZhbHNlJyB8fCBlbnZMb3dlciA9PT0gJzAnKSB7XG4gICAgICBvcHRzLnVzZVBvbGxpbmcgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGVudkxvd2VyID09PSAndHJ1ZScgfHwgZW52TG93ZXIgPT09ICcxJykge1xuICAgICAgb3B0cy51c2VQb2xsaW5nID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0cy51c2VQb2xsaW5nID0gISFlbnZMb3dlcjtcbiAgICB9XG4gIH1cbiAgY29uc3QgZW52SW50ZXJ2YWwgPSBwcm9jZXNzLmVudi5DSE9LSURBUl9JTlRFUlZBTDtcbiAgaWYgKGVudkludGVydmFsKSB7XG4gICAgb3B0cy5pbnRlcnZhbCA9IE51bWJlci5wYXJzZUludChlbnZJbnRlcnZhbCwgMTApO1xuICB9XG5cbiAgLy8gRWRpdG9yIGF0b21pYyB3cml0ZSBub3JtYWxpemF0aW9uIGVuYWJsZWQgYnkgZGVmYXVsdCB3aXRoIGZzLndhdGNoXG4gIGlmICh1bmRlZihvcHRzLCAnYXRvbWljJykpIG9wdHMuYXRvbWljID0gIW9wdHMudXNlUG9sbGluZyAmJiAhb3B0cy51c2VGc0V2ZW50cztcbiAgaWYgKG9wdHMuYXRvbWljKSB0aGlzLl9wZW5kaW5nVW5saW5rcyA9IG5ldyBNYXAoKTtcblxuICBpZiAodW5kZWYob3B0cywgJ2ZvbGxvd1N5bWxpbmtzJykpIG9wdHMuZm9sbG93U3ltbGlua3MgPSB0cnVlO1xuXG4gIGlmICh1bmRlZihvcHRzLCAnYXdhaXRXcml0ZUZpbmlzaCcpKSBvcHRzLmF3YWl0V3JpdGVGaW5pc2ggPSBmYWxzZTtcbiAgaWYgKG9wdHMuYXdhaXRXcml0ZUZpbmlzaCA9PT0gdHJ1ZSkgb3B0cy5hd2FpdFdyaXRlRmluaXNoID0ge307XG4gIGNvbnN0IGF3ZiA9IG9wdHMuYXdhaXRXcml0ZUZpbmlzaDtcbiAgaWYgKGF3Zikge1xuICAgIGlmICghYXdmLnN0YWJpbGl0eVRocmVzaG9sZCkgYXdmLnN0YWJpbGl0eVRocmVzaG9sZCA9IDIwMDA7XG4gICAgaWYgKCFhd2YucG9sbEludGVydmFsKSBhd2YucG9sbEludGVydmFsID0gMTAwO1xuICAgIHRoaXMuX3BlbmRpbmdXcml0ZXMgPSBuZXcgTWFwKCk7XG4gIH1cbiAgaWYgKG9wdHMuaWdub3JlZCkgb3B0cy5pZ25vcmVkID0gYXJyaWZ5KG9wdHMuaWdub3JlZCk7XG5cbiAgbGV0IHJlYWR5Q2FsbHMgPSAwO1xuICB0aGlzLl9lbWl0UmVhZHkgPSAoKSA9PiB7XG4gICAgcmVhZHlDYWxscysrO1xuICAgIGlmIChyZWFkeUNhbGxzID49IHRoaXMuX3JlYWR5Q291bnQpIHtcbiAgICAgIHRoaXMuX2VtaXRSZWFkeSA9IEVNUFRZX0ZOO1xuICAgICAgdGhpcy5fcmVhZHlFbWl0dGVkID0gdHJ1ZTtcbiAgICAgIC8vIHVzZSBwcm9jZXNzLm5leHRUaWNrIHRvIGFsbG93IHRpbWUgZm9yIGxpc3RlbmVyIHRvIGJlIGJvdW5kXG4gICAgICBwcm9jZXNzLm5leHRUaWNrKCgpID0+IHRoaXMuZW1pdChFVl9SRUFEWSkpO1xuICAgIH1cbiAgfTtcbiAgdGhpcy5fZW1pdFJhdyA9ICguLi5hcmdzKSA9PiB0aGlzLmVtaXQoRVZfUkFXLCAuLi5hcmdzKTtcbiAgdGhpcy5fcmVhZHlFbWl0dGVkID0gZmFsc2U7XG4gIHRoaXMub3B0aW9ucyA9IG9wdHM7XG5cbiAgLy8gSW5pdGlhbGl6ZSB3aXRoIHByb3BlciB3YXRjaGVyLlxuICBpZiAob3B0cy51c2VGc0V2ZW50cykge1xuICAgIHRoaXMuX2ZzRXZlbnRzSGFuZGxlciA9IG5ldyBGc0V2ZW50c0hhbmRsZXIodGhpcyk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fbm9kZUZzSGFuZGxlciA9IG5ldyBOb2RlRnNIYW5kbGVyKHRoaXMpO1xuICB9XG5cbiAgLy8gWW914oCZcmUgZnJvemVuIHdoZW4geW91ciBoZWFydOKAmXMgbm90IG9wZW4uXG4gIE9iamVjdC5mcmVlemUob3B0cyk7XG59XG5cbi8vIFB1YmxpYyBtZXRob2RzXG5cbi8qKlxuICogQWRkcyBwYXRocyB0byBiZSB3YXRjaGVkIG9uIGFuIGV4aXN0aW5nIEZTV2F0Y2hlciBpbnN0YW5jZVxuICogQHBhcmFtIHtQYXRofEFycmF5PFBhdGg+fSBwYXRoc19cbiAqIEBwYXJhbSB7U3RyaW5nPX0gX29yaWdBZGQgcHJpdmF0ZTsgZm9yIGhhbmRsaW5nIG5vbi1leGlzdGVudCBwYXRocyB0byBiZSB3YXRjaGVkXG4gKiBAcGFyYW0ge0Jvb2xlYW49fSBfaW50ZXJuYWwgcHJpdmF0ZTsgaW5kaWNhdGVzIGEgbm9uLXVzZXIgYWRkXG4gKiBAcmV0dXJucyB7RlNXYXRjaGVyfSBmb3IgY2hhaW5pbmdcbiAqL1xuYWRkKHBhdGhzXywgX29yaWdBZGQsIF9pbnRlcm5hbCkge1xuICBjb25zdCB7Y3dkLCBkaXNhYmxlR2xvYmJpbmd9ID0gdGhpcy5vcHRpb25zO1xuICB0aGlzLmNsb3NlZCA9IGZhbHNlO1xuICBsZXQgcGF0aHMgPSB1bmlmeVBhdGhzKHBhdGhzXyk7XG4gIGlmIChjd2QpIHtcbiAgICBwYXRocyA9IHBhdGhzLm1hcCgocGF0aCkgPT4ge1xuICAgICAgY29uc3QgYWJzUGF0aCA9IGdldEFic29sdXRlUGF0aChwYXRoLCBjd2QpO1xuXG4gICAgICAvLyBDaGVjayBgcGF0aGAgaW5zdGVhZCBvZiBgYWJzUGF0aGAgYmVjYXVzZSB0aGUgY3dkIHBvcnRpb24gY2FuJ3QgYmUgYSBnbG9iXG4gICAgICBpZiAoZGlzYWJsZUdsb2JiaW5nIHx8ICFpc0dsb2IocGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIGFic1BhdGg7XG4gICAgICB9XG4gICAgICByZXR1cm4gbm9ybWFsaXplUGF0aChhYnNQYXRoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIHNldCBhc2lkZSBuZWdhdGVkIGdsb2Igc3RyaW5nc1xuICBwYXRocyA9IHBhdGhzLmZpbHRlcigocGF0aCkgPT4ge1xuICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoQkFORykpIHtcbiAgICAgIHRoaXMuX2lnbm9yZWRQYXRocy5hZGQocGF0aC5zbGljZSgxKSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gaWYgYSBwYXRoIGlzIGJlaW5nIGFkZGVkIHRoYXQgd2FzIHByZXZpb3VzbHkgaWdub3JlZCwgc3RvcCBpZ25vcmluZyBpdFxuICAgIHRoaXMuX2lnbm9yZWRQYXRocy5kZWxldGUocGF0aCk7XG4gICAgdGhpcy5faWdub3JlZFBhdGhzLmRlbGV0ZShwYXRoICsgU0xBU0hfR0xPQlNUQVIpO1xuXG4gICAgLy8gcmVzZXQgdGhlIGNhY2hlZCB1c2VySWdub3JlZCBhbnltYXRjaCBmblxuICAgIC8vIHRvIG1ha2UgaWdub3JlZFBhdGhzIGNoYW5nZXMgZWZmZWN0aXZlXG4gICAgdGhpcy5fdXNlcklnbm9yZWQgPSB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgaWYgKHRoaXMub3B0aW9ucy51c2VGc0V2ZW50cyAmJiB0aGlzLl9mc0V2ZW50c0hhbmRsZXIpIHtcbiAgICBpZiAoIXRoaXMuX3JlYWR5Q291bnQpIHRoaXMuX3JlYWR5Q291bnQgPSBwYXRocy5sZW5ndGg7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5wZXJzaXN0ZW50KSB0aGlzLl9yZWFkeUNvdW50ICo9IDI7XG4gICAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4gdGhpcy5fZnNFdmVudHNIYW5kbGVyLl9hZGRUb0ZzRXZlbnRzKHBhdGgpKTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoIXRoaXMuX3JlYWR5Q291bnQpIHRoaXMuX3JlYWR5Q291bnQgPSAwO1xuICAgIHRoaXMuX3JlYWR5Q291bnQgKz0gcGF0aHMubGVuZ3RoO1xuICAgIFByb21pc2UuYWxsKFxuICAgICAgcGF0aHMubWFwKGFzeW5jIHBhdGggPT4ge1xuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLl9ub2RlRnNIYW5kbGVyLl9hZGRUb05vZGVGcyhwYXRoLCAhX2ludGVybmFsLCAwLCAwLCBfb3JpZ0FkZCk7XG4gICAgICAgIGlmIChyZXMpIHRoaXMuX2VtaXRSZWFkeSgpO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfSlcbiAgICApLnRoZW4ocmVzdWx0cyA9PiB7XG4gICAgICBpZiAodGhpcy5jbG9zZWQpIHJldHVybjtcbiAgICAgIHJlc3VsdHMuZmlsdGVyKGl0ZW0gPT4gaXRlbSkuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgdGhpcy5hZGQoc3lzUGF0aC5kaXJuYW1lKGl0ZW0pLCBzeXNQYXRoLmJhc2VuYW1lKF9vcmlnQWRkIHx8IGl0ZW0pKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8qKlxuICogQ2xvc2Ugd2F0Y2hlcnMgb3Igc3RhcnQgaWdub3JpbmcgZXZlbnRzIGZyb20gc3BlY2lmaWVkIHBhdGhzLlxuICogQHBhcmFtIHtQYXRofEFycmF5PFBhdGg+fSBwYXRoc18gLSBzdHJpbmcgb3IgYXJyYXkgb2Ygc3RyaW5ncywgZmlsZS9kaXJlY3RvcnkgcGF0aHMgYW5kL29yIGdsb2JzXG4gKiBAcmV0dXJucyB7RlNXYXRjaGVyfSBmb3IgY2hhaW5pbmdcbiovXG51bndhdGNoKHBhdGhzXykge1xuICBpZiAodGhpcy5jbG9zZWQpIHJldHVybiB0aGlzO1xuICBjb25zdCBwYXRocyA9IHVuaWZ5UGF0aHMocGF0aHNfKTtcbiAgY29uc3Qge2N3ZH0gPSB0aGlzLm9wdGlvbnM7XG5cbiAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgIC8vIGNvbnZlcnQgdG8gYWJzb2x1dGUgcGF0aCB1bmxlc3MgcmVsYXRpdmUgcGF0aCBhbHJlYWR5IG1hdGNoZXNcbiAgICBpZiAoIXN5c1BhdGguaXNBYnNvbHV0ZShwYXRoKSAmJiAhdGhpcy5fY2xvc2Vycy5oYXMocGF0aCkpIHtcbiAgICAgIGlmIChjd2QpIHBhdGggPSBzeXNQYXRoLmpvaW4oY3dkLCBwYXRoKTtcbiAgICAgIHBhdGggPSBzeXNQYXRoLnJlc29sdmUocGF0aCk7XG4gICAgfVxuXG4gICAgdGhpcy5fY2xvc2VQYXRoKHBhdGgpO1xuXG4gICAgdGhpcy5faWdub3JlZFBhdGhzLmFkZChwYXRoKTtcbiAgICBpZiAodGhpcy5fd2F0Y2hlZC5oYXMocGF0aCkpIHtcbiAgICAgIHRoaXMuX2lnbm9yZWRQYXRocy5hZGQocGF0aCArIFNMQVNIX0dMT0JTVEFSKTtcbiAgICB9XG5cbiAgICAvLyByZXNldCB0aGUgY2FjaGVkIHVzZXJJZ25vcmVkIGFueW1hdGNoIGZuXG4gICAgLy8gdG8gbWFrZSBpZ25vcmVkUGF0aHMgY2hhbmdlcyBlZmZlY3RpdmVcbiAgICB0aGlzLl91c2VySWdub3JlZCA9IHVuZGVmaW5lZDtcbiAgfSk7XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cbi8qKlxuICogQ2xvc2Ugd2F0Y2hlcnMgYW5kIHJlbW92ZSBhbGwgbGlzdGVuZXJzIGZyb20gd2F0Y2hlZCBwYXRocy5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fS5cbiovXG5jbG9zZSgpIHtcbiAgaWYgKHRoaXMuY2xvc2VkKSByZXR1cm4gdGhpcy5fY2xvc2VQcm9taXNlO1xuICB0aGlzLmNsb3NlZCA9IHRydWU7XG5cbiAgLy8gTWVtb3J5IG1hbmFnZW1lbnQuXG4gIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG4gIGNvbnN0IGNsb3NlcnMgPSBbXTtcbiAgdGhpcy5fY2xvc2Vycy5mb3JFYWNoKGNsb3Nlckxpc3QgPT4gY2xvc2VyTGlzdC5mb3JFYWNoKGNsb3NlciA9PiB7XG4gICAgY29uc3QgcHJvbWlzZSA9IGNsb3NlcigpO1xuICAgIGlmIChwcm9taXNlIGluc3RhbmNlb2YgUHJvbWlzZSkgY2xvc2Vycy5wdXNoKHByb21pc2UpO1xuICB9KSk7XG4gIHRoaXMuX3N0cmVhbXMuZm9yRWFjaChzdHJlYW0gPT4gc3RyZWFtLmRlc3Ryb3koKSk7XG4gIHRoaXMuX3VzZXJJZ25vcmVkID0gdW5kZWZpbmVkO1xuICB0aGlzLl9yZWFkeUNvdW50ID0gMDtcbiAgdGhpcy5fcmVhZHlFbWl0dGVkID0gZmFsc2U7XG4gIHRoaXMuX3dhdGNoZWQuZm9yRWFjaChkaXJlbnQgPT4gZGlyZW50LmRpc3Bvc2UoKSk7XG4gIFsnY2xvc2VycycsICd3YXRjaGVkJywgJ3N0cmVhbXMnLCAnc3ltbGlua1BhdGhzJywgJ3Rocm90dGxlZCddLmZvckVhY2goa2V5ID0+IHtcbiAgICB0aGlzW2BfJHtrZXl9YF0uY2xlYXIoKTtcbiAgfSk7XG5cbiAgdGhpcy5fY2xvc2VQcm9taXNlID0gY2xvc2Vycy5sZW5ndGggPyBQcm9taXNlLmFsbChjbG9zZXJzKS50aGVuKCgpID0+IHVuZGVmaW5lZCkgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgcmV0dXJuIHRoaXMuX2Nsb3NlUHJvbWlzZTtcbn1cblxuLyoqXG4gKiBFeHBvc2UgbGlzdCBvZiB3YXRjaGVkIHBhdGhzXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBmb3IgY2hhaW5pbmdcbiovXG5nZXRXYXRjaGVkKCkge1xuICBjb25zdCB3YXRjaExpc3QgPSB7fTtcbiAgdGhpcy5fd2F0Y2hlZC5mb3JFYWNoKChlbnRyeSwgZGlyKSA9PiB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5vcHRpb25zLmN3ZCA/IHN5c1BhdGgucmVsYXRpdmUodGhpcy5vcHRpb25zLmN3ZCwgZGlyKSA6IGRpcjtcbiAgICB3YXRjaExpc3Rba2V5IHx8IE9ORV9ET1RdID0gZW50cnkuZ2V0Q2hpbGRyZW4oKS5zb3J0KCk7XG4gIH0pO1xuICByZXR1cm4gd2F0Y2hMaXN0O1xufVxuXG5lbWl0V2l0aEFsbChldmVudCwgYXJncykge1xuICB0aGlzLmVtaXQoLi4uYXJncyk7XG4gIGlmIChldmVudCAhPT0gRVZfRVJST1IpIHRoaXMuZW1pdChFVl9BTEwsIC4uLmFyZ3MpO1xufVxuXG4vLyBDb21tb24gaGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBOb3JtYWxpemUgYW5kIGVtaXQgZXZlbnRzLlxuICogQ2FsbGluZyBfZW1pdCBET0VTIE5PVCBNRUFOIGVtaXQoKSB3b3VsZCBiZSBjYWxsZWQhXG4gKiBAcGFyYW0ge0V2ZW50TmFtZX0gZXZlbnQgVHlwZSBvZiBldmVudFxuICogQHBhcmFtIHtQYXRofSBwYXRoIEZpbGUgb3IgZGlyZWN0b3J5IHBhdGhcbiAqIEBwYXJhbSB7Kj19IHZhbDEgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB3aXRoIGV2ZW50XG4gKiBAcGFyYW0geyo9fSB2YWwyXG4gKiBAcGFyYW0geyo9fSB2YWwzXG4gKiBAcmV0dXJucyB0aGUgZXJyb3IgaWYgZGVmaW5lZCwgb3RoZXJ3aXNlIHRoZSB2YWx1ZSBvZiB0aGUgRlNXYXRjaGVyIGluc3RhbmNlJ3MgYGNsb3NlZGAgZmxhZ1xuICovXG5hc3luYyBfZW1pdChldmVudCwgcGF0aCwgdmFsMSwgdmFsMiwgdmFsMykge1xuICBpZiAodGhpcy5jbG9zZWQpIHJldHVybjtcblxuICBjb25zdCBvcHRzID0gdGhpcy5vcHRpb25zO1xuICBpZiAoaXNXaW5kb3dzKSBwYXRoID0gc3lzUGF0aC5ub3JtYWxpemUocGF0aCk7XG4gIGlmIChvcHRzLmN3ZCkgcGF0aCA9IHN5c1BhdGgucmVsYXRpdmUob3B0cy5jd2QsIHBhdGgpO1xuICAvKiogQHR5cGUgQXJyYXk8YW55PiAqL1xuICBjb25zdCBhcmdzID0gW2V2ZW50LCBwYXRoXTtcbiAgaWYgKHZhbDMgIT09IHVuZGVmaW5lZCkgYXJncy5wdXNoKHZhbDEsIHZhbDIsIHZhbDMpO1xuICBlbHNlIGlmICh2YWwyICE9PSB1bmRlZmluZWQpIGFyZ3MucHVzaCh2YWwxLCB2YWwyKTtcbiAgZWxzZSBpZiAodmFsMSAhPT0gdW5kZWZpbmVkKSBhcmdzLnB1c2godmFsMSk7XG5cbiAgY29uc3QgYXdmID0gb3B0cy5hd2FpdFdyaXRlRmluaXNoO1xuICBsZXQgcHc7XG4gIGlmIChhd2YgJiYgKHB3ID0gdGhpcy5fcGVuZGluZ1dyaXRlcy5nZXQocGF0aCkpKSB7XG4gICAgcHcubGFzdENoYW5nZSA9IG5ldyBEYXRlKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBpZiAob3B0cy5hdG9taWMpIHtcbiAgICBpZiAoZXZlbnQgPT09IEVWX1VOTElOSykge1xuICAgICAgdGhpcy5fcGVuZGluZ1VubGlua3Muc2V0KHBhdGgsIGFyZ3MpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3BlbmRpbmdVbmxpbmtzLmZvckVhY2goKGVudHJ5LCBwYXRoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbWl0KC4uLmVudHJ5KTtcbiAgICAgICAgICB0aGlzLmVtaXQoRVZfQUxMLCAuLi5lbnRyeSk7XG4gICAgICAgICAgdGhpcy5fcGVuZGluZ1VubGlua3MuZGVsZXRlKHBhdGgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIHR5cGVvZiBvcHRzLmF0b21pYyA9PT0gJ251bWJlcicgPyBvcHRzLmF0b21pYyA6IDEwMCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgaWYgKGV2ZW50ID09PSBFVl9BREQgJiYgdGhpcy5fcGVuZGluZ1VubGlua3MuaGFzKHBhdGgpKSB7XG4gICAgICBldmVudCA9IGFyZ3NbMF0gPSBFVl9DSEFOR0U7XG4gICAgICB0aGlzLl9wZW5kaW5nVW5saW5rcy5kZWxldGUocGF0aCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGF3ZiAmJiAoZXZlbnQgPT09IEVWX0FERCB8fCBldmVudCA9PT0gRVZfQ0hBTkdFKSAmJiB0aGlzLl9yZWFkeUVtaXR0ZWQpIHtcbiAgICBjb25zdCBhd2ZFbWl0ID0gKGVyciwgc3RhdHMpID0+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgZXZlbnQgPSBhcmdzWzBdID0gRVZfRVJST1I7XG4gICAgICAgIGFyZ3NbMV0gPSBlcnI7XG4gICAgICAgIHRoaXMuZW1pdFdpdGhBbGwoZXZlbnQsIGFyZ3MpO1xuICAgICAgfSBlbHNlIGlmIChzdGF0cykge1xuICAgICAgICAvLyBpZiBzdGF0cyBkb2Vzbid0IGV4aXN0IHRoZSBmaWxlIG11c3QgaGF2ZSBiZWVuIGRlbGV0ZWRcbiAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID4gMikge1xuICAgICAgICAgIGFyZ3NbMl0gPSBzdGF0cztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhcmdzLnB1c2goc3RhdHMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW1pdFdpdGhBbGwoZXZlbnQsIGFyZ3MpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLl9hd2FpdFdyaXRlRmluaXNoKHBhdGgsIGF3Zi5zdGFiaWxpdHlUaHJlc2hvbGQsIGV2ZW50LCBhd2ZFbWl0KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGlmIChldmVudCA9PT0gRVZfQ0hBTkdFKSB7XG4gICAgY29uc3QgaXNUaHJvdHRsZWQgPSAhdGhpcy5fdGhyb3R0bGUoRVZfQ0hBTkdFLCBwYXRoLCA1MCk7XG4gICAgaWYgKGlzVGhyb3R0bGVkKSByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGlmIChvcHRzLmFsd2F5c1N0YXQgJiYgdmFsMSA9PT0gdW5kZWZpbmVkICYmXG4gICAgKGV2ZW50ID09PSBFVl9BREQgfHwgZXZlbnQgPT09IEVWX0FERF9ESVIgfHwgZXZlbnQgPT09IEVWX0NIQU5HRSlcbiAgKSB7XG4gICAgY29uc3QgZnVsbFBhdGggPSBvcHRzLmN3ZCA/IHN5c1BhdGguam9pbihvcHRzLmN3ZCwgcGF0aCkgOiBwYXRoO1xuICAgIGxldCBzdGF0cztcbiAgICB0cnkge1xuICAgICAgc3RhdHMgPSBhd2FpdCBzdGF0KGZ1bGxQYXRoKTtcbiAgICB9IGNhdGNoIChlcnIpIHt9XG4gICAgLy8gU3VwcHJlc3MgZXZlbnQgd2hlbiBmc19zdGF0IGZhaWxzLCB0byBhdm9pZCBzZW5kaW5nIHVuZGVmaW5lZCAnc3RhdCdcbiAgICBpZiAoIXN0YXRzIHx8IHRoaXMuY2xvc2VkKSByZXR1cm47XG4gICAgYXJncy5wdXNoKHN0YXRzKTtcbiAgfVxuICB0aGlzLmVtaXRXaXRoQWxsKGV2ZW50LCBhcmdzKTtcblxuICByZXR1cm4gdGhpcztcbn1cblxuLyoqXG4gKiBDb21tb24gaGFuZGxlciBmb3IgZXJyb3JzXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJvclxuICogQHJldHVybnMge0Vycm9yfEJvb2xlYW59IFRoZSBlcnJvciBpZiBkZWZpbmVkLCBvdGhlcndpc2UgdGhlIHZhbHVlIG9mIHRoZSBGU1dhdGNoZXIgaW5zdGFuY2UncyBgY2xvc2VkYCBmbGFnXG4gKi9cbl9oYW5kbGVFcnJvcihlcnJvcikge1xuICBjb25zdCBjb2RlID0gZXJyb3IgJiYgZXJyb3IuY29kZTtcbiAgaWYgKGVycm9yICYmIGNvZGUgIT09ICdFTk9FTlQnICYmIGNvZGUgIT09ICdFTk9URElSJyAmJlxuICAgICghdGhpcy5vcHRpb25zLmlnbm9yZVBlcm1pc3Npb25FcnJvcnMgfHwgKGNvZGUgIT09ICdFUEVSTScgJiYgY29kZSAhPT0gJ0VBQ0NFUycpKVxuICApIHtcbiAgICB0aGlzLmVtaXQoRVZfRVJST1IsIGVycm9yKTtcbiAgfVxuICByZXR1cm4gZXJyb3IgfHwgdGhpcy5jbG9zZWQ7XG59XG5cbi8qKlxuICogSGVscGVyIHV0aWxpdHkgZm9yIHRocm90dGxpbmdcbiAqIEBwYXJhbSB7VGhyb3R0bGVUeXBlfSBhY3Rpb25UeXBlIHR5cGUgYmVpbmcgdGhyb3R0bGVkXG4gKiBAcGFyYW0ge1BhdGh9IHBhdGggYmVpbmcgYWN0ZWQgdXBvblxuICogQHBhcmFtIHtOdW1iZXJ9IHRpbWVvdXQgZHVyYXRpb24gb2YgdGltZSB0byBzdXBwcmVzcyBkdXBsaWNhdGUgYWN0aW9uc1xuICogQHJldHVybnMge09iamVjdHxmYWxzZX0gdHJhY2tpbmcgb2JqZWN0IG9yIGZhbHNlIGlmIGFjdGlvbiBzaG91bGQgYmUgc3VwcHJlc3NlZFxuICovXG5fdGhyb3R0bGUoYWN0aW9uVHlwZSwgcGF0aCwgdGltZW91dCkge1xuICBpZiAoIXRoaXMuX3Rocm90dGxlZC5oYXMoYWN0aW9uVHlwZSkpIHtcbiAgICB0aGlzLl90aHJvdHRsZWQuc2V0KGFjdGlvblR5cGUsIG5ldyBNYXAoKSk7XG4gIH1cblxuICAvKiogQHR5cGUge01hcDxQYXRoLCBPYmplY3Q+fSAqL1xuICBjb25zdCBhY3Rpb24gPSB0aGlzLl90aHJvdHRsZWQuZ2V0KGFjdGlvblR5cGUpO1xuICAvKiogQHR5cGUge09iamVjdH0gKi9cbiAgY29uc3QgYWN0aW9uUGF0aCA9IGFjdGlvbi5nZXQocGF0aCk7XG5cbiAgaWYgKGFjdGlvblBhdGgpIHtcbiAgICBhY3Rpb25QYXRoLmNvdW50Kys7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbGV0IHRpbWVvdXRPYmplY3Q7XG4gIGNvbnN0IGNsZWFyID0gKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW0gPSBhY3Rpb24uZ2V0KHBhdGgpO1xuICAgIGNvbnN0IGNvdW50ID0gaXRlbSA/IGl0ZW0uY291bnQgOiAwO1xuICAgIGFjdGlvbi5kZWxldGUocGF0aCk7XG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRPYmplY3QpO1xuICAgIGlmIChpdGVtKSBjbGVhclRpbWVvdXQoaXRlbS50aW1lb3V0T2JqZWN0KTtcbiAgICByZXR1cm4gY291bnQ7XG4gIH07XG4gIHRpbWVvdXRPYmplY3QgPSBzZXRUaW1lb3V0KGNsZWFyLCB0aW1lb3V0KTtcbiAgY29uc3QgdGhyID0ge3RpbWVvdXRPYmplY3QsIGNsZWFyLCBjb3VudDogMH07XG4gIGFjdGlvbi5zZXQocGF0aCwgdGhyKTtcbiAgcmV0dXJuIHRocjtcbn1cblxuX2luY3JSZWFkeUNvdW50KCkge1xuICByZXR1cm4gdGhpcy5fcmVhZHlDb3VudCsrO1xufVxuXG4vKipcbiAqIEF3YWl0cyB3cml0ZSBvcGVyYXRpb24gdG8gZmluaXNoLlxuICogUG9sbHMgYSBuZXdseSBjcmVhdGVkIGZpbGUgZm9yIHNpemUgdmFyaWF0aW9ucy4gV2hlbiBmaWxlcyBzaXplIGRvZXMgbm90IGNoYW5nZSBmb3IgJ3RocmVzaG9sZCcgbWlsbGlzZWNvbmRzIGNhbGxzIGNhbGxiYWNrLlxuICogQHBhcmFtIHtQYXRofSBwYXRoIGJlaW5nIGFjdGVkIHVwb25cbiAqIEBwYXJhbSB7TnVtYmVyfSB0aHJlc2hvbGQgVGltZSBpbiBtaWxsaXNlY29uZHMgYSBmaWxlIHNpemUgbXVzdCBiZSBmaXhlZCBiZWZvcmUgYWNrbm93bGVkZ2luZyB3cml0ZSBPUCBpcyBmaW5pc2hlZFxuICogQHBhcmFtIHtFdmVudE5hbWV9IGV2ZW50XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBhd2ZFbWl0IENhbGxiYWNrIHRvIGJlIGNhbGxlZCB3aGVuIHJlYWR5IGZvciBldmVudCB0byBiZSBlbWl0dGVkLlxuICovXG5fYXdhaXRXcml0ZUZpbmlzaChwYXRoLCB0aHJlc2hvbGQsIGV2ZW50LCBhd2ZFbWl0KSB7XG4gIGxldCB0aW1lb3V0SGFuZGxlcjtcblxuICBsZXQgZnVsbFBhdGggPSBwYXRoO1xuICBpZiAodGhpcy5vcHRpb25zLmN3ZCAmJiAhc3lzUGF0aC5pc0Fic29sdXRlKHBhdGgpKSB7XG4gICAgZnVsbFBhdGggPSBzeXNQYXRoLmpvaW4odGhpcy5vcHRpb25zLmN3ZCwgcGF0aCk7XG4gIH1cblxuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuXG4gIGNvbnN0IGF3YWl0V3JpdGVGaW5pc2ggPSAocHJldlN0YXQpID0+IHtcbiAgICBmcy5zdGF0KGZ1bGxQYXRoLCAoZXJyLCBjdXJTdGF0KSA9PiB7XG4gICAgICBpZiAoZXJyIHx8ICF0aGlzLl9wZW5kaW5nV3JpdGVzLmhhcyhwYXRoKSkge1xuICAgICAgICBpZiAoZXJyICYmIGVyci5jb2RlICE9PSAnRU5PRU5UJykgYXdmRW1pdChlcnIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5vdyA9IE51bWJlcihuZXcgRGF0ZSgpKTtcblxuICAgICAgaWYgKHByZXZTdGF0ICYmIGN1clN0YXQuc2l6ZSAhPT0gcHJldlN0YXQuc2l6ZSkge1xuICAgICAgICB0aGlzLl9wZW5kaW5nV3JpdGVzLmdldChwYXRoKS5sYXN0Q2hhbmdlID0gbm93O1xuICAgICAgfVxuICAgICAgY29uc3QgcHcgPSB0aGlzLl9wZW5kaW5nV3JpdGVzLmdldChwYXRoKTtcbiAgICAgIGNvbnN0IGRmID0gbm93IC0gcHcubGFzdENoYW5nZTtcblxuICAgICAgaWYgKGRmID49IHRocmVzaG9sZCkge1xuICAgICAgICB0aGlzLl9wZW5kaW5nV3JpdGVzLmRlbGV0ZShwYXRoKTtcbiAgICAgICAgYXdmRW1pdCh1bmRlZmluZWQsIGN1clN0YXQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGltZW91dEhhbmRsZXIgPSBzZXRUaW1lb3V0KFxuICAgICAgICAgIGF3YWl0V3JpdGVGaW5pc2gsXG4gICAgICAgICAgdGhpcy5vcHRpb25zLmF3YWl0V3JpdGVGaW5pc2gucG9sbEludGVydmFsLFxuICAgICAgICAgIGN1clN0YXRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBpZiAoIXRoaXMuX3BlbmRpbmdXcml0ZXMuaGFzKHBhdGgpKSB7XG4gICAgdGhpcy5fcGVuZGluZ1dyaXRlcy5zZXQocGF0aCwge1xuICAgICAgbGFzdENoYW5nZTogbm93LFxuICAgICAgY2FuY2VsV2FpdDogKCkgPT4ge1xuICAgICAgICB0aGlzLl9wZW5kaW5nV3JpdGVzLmRlbGV0ZShwYXRoKTtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRIYW5kbGVyKTtcbiAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRpbWVvdXRIYW5kbGVyID0gc2V0VGltZW91dChcbiAgICAgIGF3YWl0V3JpdGVGaW5pc2gsXG4gICAgICB0aGlzLm9wdGlvbnMuYXdhaXRXcml0ZUZpbmlzaC5wb2xsSW50ZXJ2YWxcbiAgICApO1xuICB9XG59XG5cbl9nZXRHbG9iSWdub3JlZCgpIHtcbiAgcmV0dXJuIFsuLi50aGlzLl9pZ25vcmVkUGF0aHMudmFsdWVzKCldO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB1c2VyIGhhcyBhc2tlZCB0byBpZ25vcmUgdGhpcyBwYXRoLlxuICogQHBhcmFtIHtQYXRofSBwYXRoIGZpbGVwYXRoIG9yIGRpclxuICogQHBhcmFtIHtmcy5TdGF0cz19IHN0YXRzIHJlc3VsdCBvZiBmcy5zdGF0XG4gKiBAcmV0dXJucyB7Qm9vbGVhbn1cbiAqL1xuX2lzSWdub3JlZChwYXRoLCBzdGF0cykge1xuICBpZiAodGhpcy5vcHRpb25zLmF0b21pYyAmJiBET1RfUkUudGVzdChwYXRoKSkgcmV0dXJuIHRydWU7XG4gIGlmICghdGhpcy5fdXNlcklnbm9yZWQpIHtcbiAgICBjb25zdCB7Y3dkfSA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBpZ24gPSB0aGlzLm9wdGlvbnMuaWdub3JlZDtcblxuICAgIGNvbnN0IGlnbm9yZWQgPSBpZ24gJiYgaWduLm1hcChub3JtYWxpemVJZ25vcmVkKGN3ZCkpO1xuICAgIGNvbnN0IHBhdGhzID0gYXJyaWZ5KGlnbm9yZWQpXG4gICAgICAuZmlsdGVyKChwYXRoKSA9PiB0eXBlb2YgcGF0aCA9PT0gU1RSSU5HX1RZUEUgJiYgIWlzR2xvYihwYXRoKSlcbiAgICAgIC5tYXAoKHBhdGgpID0+IHBhdGggKyBTTEFTSF9HTE9CU1RBUik7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMuX2dldEdsb2JJZ25vcmVkKCkubWFwKG5vcm1hbGl6ZUlnbm9yZWQoY3dkKSkuY29uY2F0KGlnbm9yZWQsIHBhdGhzKTtcbiAgICB0aGlzLl91c2VySWdub3JlZCA9IGFueW1hdGNoKGxpc3QsIHVuZGVmaW5lZCwgQU5ZTUFUQ0hfT1BUUyk7XG4gIH1cblxuICByZXR1cm4gdGhpcy5fdXNlcklnbm9yZWQoW3BhdGgsIHN0YXRzXSk7XG59XG5cbl9pc250SWdub3JlZChwYXRoLCBzdGF0KSB7XG4gIHJldHVybiAhdGhpcy5faXNJZ25vcmVkKHBhdGgsIHN0YXQpO1xufVxuXG4vKipcbiAqIFByb3ZpZGVzIGEgc2V0IG9mIGNvbW1vbiBoZWxwZXJzIGFuZCBwcm9wZXJ0aWVzIHJlbGF0aW5nIHRvIHN5bWxpbmsgYW5kIGdsb2IgaGFuZGxpbmcuXG4gKiBAcGFyYW0ge1BhdGh9IHBhdGggZmlsZSwgZGlyZWN0b3J5LCBvciBnbG9iIHBhdHRlcm4gYmVpbmcgd2F0Y2hlZFxuICogQHBhcmFtIHtOdW1iZXI9fSBkZXB0aCBhdCBhbnkgZGVwdGggPiAwLCB0aGlzIGlzbid0IGEgZ2xvYlxuICogQHJldHVybnMge1dhdGNoSGVscGVyfSBvYmplY3QgY29udGFpbmluZyBoZWxwZXJzIGZvciB0aGlzIHBhdGhcbiAqL1xuX2dldFdhdGNoSGVscGVycyhwYXRoLCBkZXB0aCkge1xuICBjb25zdCB3YXRjaFBhdGggPSBkZXB0aCB8fCB0aGlzLm9wdGlvbnMuZGlzYWJsZUdsb2JiaW5nIHx8ICFpc0dsb2IocGF0aCkgPyBwYXRoIDogZ2xvYlBhcmVudChwYXRoKTtcbiAgY29uc3QgZm9sbG93ID0gdGhpcy5vcHRpb25zLmZvbGxvd1N5bWxpbmtzO1xuXG4gIHJldHVybiBuZXcgV2F0Y2hIZWxwZXIocGF0aCwgd2F0Y2hQYXRoLCBmb2xsb3csIHRoaXMpO1xufVxuXG4vLyBEaXJlY3RvcnkgaGVscGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBQcm92aWRlcyBkaXJlY3RvcnkgdHJhY2tpbmcgb2JqZWN0c1xuICogQHBhcmFtIHtTdHJpbmd9IGRpcmVjdG9yeSBwYXRoIG9mIHRoZSBkaXJlY3RvcnlcbiAqIEByZXR1cm5zIHtEaXJFbnRyeX0gdGhlIGRpcmVjdG9yeSdzIHRyYWNraW5nIG9iamVjdFxuICovXG5fZ2V0V2F0Y2hlZERpcihkaXJlY3RvcnkpIHtcbiAgaWYgKCF0aGlzLl9ib3VuZFJlbW92ZSkgdGhpcy5fYm91bmRSZW1vdmUgPSB0aGlzLl9yZW1vdmUuYmluZCh0aGlzKTtcbiAgY29uc3QgZGlyID0gc3lzUGF0aC5yZXNvbHZlKGRpcmVjdG9yeSk7XG4gIGlmICghdGhpcy5fd2F0Y2hlZC5oYXMoZGlyKSkgdGhpcy5fd2F0Y2hlZC5zZXQoZGlyLCBuZXcgRGlyRW50cnkoZGlyLCB0aGlzLl9ib3VuZFJlbW92ZSkpO1xuICByZXR1cm4gdGhpcy5fd2F0Y2hlZC5nZXQoZGlyKTtcbn1cblxuLy8gRmlsZSBoZWxwZXJzXG4vLyAtLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBDaGVjayBmb3IgcmVhZCBwZXJtaXNzaW9ucy5cbiAqIEJhc2VkIG9uIHRoaXMgYW5zd2VyIG9uIFNPOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTE3ODE0MDQvMTM1ODQwNVxuICogQHBhcmFtIHtmcy5TdGF0c30gc3RhdHMgLSBvYmplY3QsIHJlc3VsdCBvZiBmc19zdGF0XG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZpbGUgY2FuIGJlIHJlYWRcbiovXG5faGFzUmVhZFBlcm1pc3Npb25zKHN0YXRzKSB7XG4gIGlmICh0aGlzLm9wdGlvbnMuaWdub3JlUGVybWlzc2lvbkVycm9ycykgcmV0dXJuIHRydWU7XG5cbiAgLy8gc3RhdHMubW9kZSBtYXkgYmUgYmlnaW50XG4gIGNvbnN0IG1kID0gc3RhdHMgJiYgTnVtYmVyLnBhcnNlSW50KHN0YXRzLm1vZGUsIDEwKTtcbiAgY29uc3Qgc3QgPSBtZCAmIDBvNzc3O1xuICBjb25zdCBpdCA9IE51bWJlci5wYXJzZUludChzdC50b1N0cmluZyg4KVswXSwgMTApO1xuICByZXR1cm4gQm9vbGVhbig0ICYgaXQpO1xufVxuXG4vKipcbiAqIEhhbmRsZXMgZW1pdHRpbmcgdW5saW5rIGV2ZW50cyBmb3JcbiAqIGZpbGVzIGFuZCBkaXJlY3RvcmllcywgYW5kIHZpYSByZWN1cnNpb24sIGZvclxuICogZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHdpdGhpbiBkaXJlY3RvcmllcyB0aGF0IGFyZSB1bmxpbmtlZFxuICogQHBhcmFtIHtTdHJpbmd9IGRpcmVjdG9yeSB3aXRoaW4gd2hpY2ggdGhlIGZvbGxvd2luZyBpdGVtIGlzIGxvY2F0ZWRcbiAqIEBwYXJhbSB7U3RyaW5nfSBpdGVtICAgICAgYmFzZSBwYXRoIG9mIGl0ZW0vZGlyZWN0b3J5XG4gKiBAcmV0dXJucyB7dm9pZH1cbiovXG5fcmVtb3ZlKGRpcmVjdG9yeSwgaXRlbSwgaXNEaXJlY3RvcnkpIHtcbiAgLy8gaWYgd2hhdCBpcyBiZWluZyBkZWxldGVkIGlzIGEgZGlyZWN0b3J5LCBnZXQgdGhhdCBkaXJlY3RvcnkncyBwYXRoc1xuICAvLyBmb3IgcmVjdXJzaXZlIGRlbGV0aW5nIGFuZCBjbGVhbmluZyBvZiB3YXRjaGVkIG9iamVjdFxuICAvLyBpZiBpdCBpcyBub3QgYSBkaXJlY3RvcnksIG5lc3RlZERpcmVjdG9yeUNoaWxkcmVuIHdpbGwgYmUgZW1wdHkgYXJyYXlcbiAgY29uc3QgcGF0aCA9IHN5c1BhdGguam9pbihkaXJlY3RvcnksIGl0ZW0pO1xuICBjb25zdCBmdWxsUGF0aCA9IHN5c1BhdGgucmVzb2x2ZShwYXRoKTtcbiAgaXNEaXJlY3RvcnkgPSBpc0RpcmVjdG9yeSAhPSBudWxsXG4gICAgPyBpc0RpcmVjdG9yeVxuICAgIDogdGhpcy5fd2F0Y2hlZC5oYXMocGF0aCkgfHwgdGhpcy5fd2F0Y2hlZC5oYXMoZnVsbFBhdGgpO1xuXG4gIC8vIHByZXZlbnQgZHVwbGljYXRlIGhhbmRsaW5nIGluIGNhc2Ugb2YgYXJyaXZpbmcgaGVyZSBuZWFybHkgc2ltdWx0YW5lb3VzbHlcbiAgLy8gdmlhIG11bHRpcGxlIHBhdGhzIChzdWNoIGFzIF9oYW5kbGVGaWxlIGFuZCBfaGFuZGxlRGlyKVxuICBpZiAoIXRoaXMuX3Rocm90dGxlKCdyZW1vdmUnLCBwYXRoLCAxMDApKSByZXR1cm47XG5cbiAgLy8gaWYgdGhlIG9ubHkgd2F0Y2hlZCBmaWxlIGlzIHJlbW92ZWQsIHdhdGNoIGZvciBpdHMgcmV0dXJuXG4gIGlmICghaXNEaXJlY3RvcnkgJiYgIXRoaXMub3B0aW9ucy51c2VGc0V2ZW50cyAmJiB0aGlzLl93YXRjaGVkLnNpemUgPT09IDEpIHtcbiAgICB0aGlzLmFkZChkaXJlY3RvcnksIGl0ZW0sIHRydWUpO1xuICB9XG5cbiAgLy8gVGhpcyB3aWxsIGNyZWF0ZSBhIG5ldyBlbnRyeSBpbiB0aGUgd2F0Y2hlZCBvYmplY3QgaW4gZWl0aGVyIGNhc2VcbiAgLy8gc28gd2UgZ290IHRvIGRvIHRoZSBkaXJlY3RvcnkgY2hlY2sgYmVmb3JlaGFuZFxuICBjb25zdCB3cCA9IHRoaXMuX2dldFdhdGNoZWREaXIocGF0aCk7XG4gIGNvbnN0IG5lc3RlZERpcmVjdG9yeUNoaWxkcmVuID0gd3AuZ2V0Q2hpbGRyZW4oKTtcblxuICAvLyBSZWN1cnNpdmVseSByZW1vdmUgY2hpbGRyZW4gZGlyZWN0b3JpZXMgLyBmaWxlcy5cbiAgbmVzdGVkRGlyZWN0b3J5Q2hpbGRyZW4uZm9yRWFjaChuZXN0ZWQgPT4gdGhpcy5fcmVtb3ZlKHBhdGgsIG5lc3RlZCkpO1xuXG4gIC8vIENoZWNrIGlmIGl0ZW0gd2FzIG9uIHRoZSB3YXRjaGVkIGxpc3QgYW5kIHJlbW92ZSBpdFxuICBjb25zdCBwYXJlbnQgPSB0aGlzLl9nZXRXYXRjaGVkRGlyKGRpcmVjdG9yeSk7XG4gIGNvbnN0IHdhc1RyYWNrZWQgPSBwYXJlbnQuaGFzKGl0ZW0pO1xuICBwYXJlbnQucmVtb3ZlKGl0ZW0pO1xuXG4gIC8vIEZpeGVzIGlzc3VlICMxMDQyIC0+IFJlbGF0aXZlIHBhdGhzIHdlcmUgZGV0ZWN0ZWQgYW5kIGFkZGVkIGFzIHN5bWxpbmtzXG4gIC8vIChodHRwczovL2dpdGh1Yi5jb20vcGF1bG1pbGxyL2Nob2tpZGFyL2Jsb2IvZTE3NTNkZGJjOTU3MWJkYzMzYjRhNGFmMTcyZDUyY2I2ZTYxMWMxMC9saWIvbm9kZWZzLWhhbmRsZXIuanMjTDYxMiksXG4gIC8vIGJ1dCBuZXZlciByZW1vdmVkIGZyb20gdGhlIG1hcCBpbiBjYXNlIHRoZSBwYXRoIHdhcyBkZWxldGVkLlxuICAvLyBUaGlzIGxlYWRzIHRvIGFuIGluY29ycmVjdCBzdGF0ZSBpZiB0aGUgcGF0aCB3YXMgcmVjcmVhdGVkOlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vcGF1bG1pbGxyL2Nob2tpZGFyL2Jsb2IvZTE3NTNkZGJjOTU3MWJkYzMzYjRhNGFmMTcyZDUyY2I2ZTYxMWMxMC9saWIvbm9kZWZzLWhhbmRsZXIuanMjTDU1M1xuICBpZiAodGhpcy5fc3ltbGlua1BhdGhzLmhhcyhmdWxsUGF0aCkpIHtcbiAgICB0aGlzLl9zeW1saW5rUGF0aHMuZGVsZXRlKGZ1bGxQYXRoKTtcbiAgfVxuXG4gIC8vIElmIHdlIHdhaXQgZm9yIHRoaXMgZmlsZSB0byBiZSBmdWxseSB3cml0dGVuLCBjYW5jZWwgdGhlIHdhaXQuXG4gIGxldCByZWxQYXRoID0gcGF0aDtcbiAgaWYgKHRoaXMub3B0aW9ucy5jd2QpIHJlbFBhdGggPSBzeXNQYXRoLnJlbGF0aXZlKHRoaXMub3B0aW9ucy5jd2QsIHBhdGgpO1xuICBpZiAodGhpcy5vcHRpb25zLmF3YWl0V3JpdGVGaW5pc2ggJiYgdGhpcy5fcGVuZGluZ1dyaXRlcy5oYXMocmVsUGF0aCkpIHtcbiAgICBjb25zdCBldmVudCA9IHRoaXMuX3BlbmRpbmdXcml0ZXMuZ2V0KHJlbFBhdGgpLmNhbmNlbFdhaXQoKTtcbiAgICBpZiAoZXZlbnQgPT09IEVWX0FERCkgcmV0dXJuO1xuICB9XG5cbiAgLy8gVGhlIEVudHJ5IHdpbGwgZWl0aGVyIGJlIGEgZGlyZWN0b3J5IHRoYXQganVzdCBnb3QgcmVtb3ZlZFxuICAvLyBvciBhIGJvZ3VzIGVudHJ5IHRvIGEgZmlsZSwgaW4gZWl0aGVyIGNhc2Ugd2UgaGF2ZSB0byByZW1vdmUgaXRcbiAgdGhpcy5fd2F0Y2hlZC5kZWxldGUocGF0aCk7XG4gIHRoaXMuX3dhdGNoZWQuZGVsZXRlKGZ1bGxQYXRoKTtcbiAgY29uc3QgZXZlbnROYW1lID0gaXNEaXJlY3RvcnkgPyBFVl9VTkxJTktfRElSIDogRVZfVU5MSU5LO1xuICBpZiAod2FzVHJhY2tlZCAmJiAhdGhpcy5faXNJZ25vcmVkKHBhdGgpKSB0aGlzLl9lbWl0KGV2ZW50TmFtZSwgcGF0aCk7XG5cbiAgLy8gQXZvaWQgY29uZmxpY3RzIGlmIHdlIGxhdGVyIGNyZWF0ZSBhbm90aGVyIGZpbGUgd2l0aCB0aGUgc2FtZSBuYW1lXG4gIGlmICghdGhpcy5vcHRpb25zLnVzZUZzRXZlbnRzKSB7XG4gICAgdGhpcy5fY2xvc2VQYXRoKHBhdGgpO1xuICB9XG59XG5cbi8qKlxuICogQ2xvc2VzIGFsbCB3YXRjaGVycyBmb3IgYSBwYXRoXG4gKiBAcGFyYW0ge1BhdGh9IHBhdGhcbiAqL1xuX2Nsb3NlUGF0aChwYXRoKSB7XG4gIHRoaXMuX2Nsb3NlRmlsZShwYXRoKVxuICBjb25zdCBkaXIgPSBzeXNQYXRoLmRpcm5hbWUocGF0aCk7XG4gIHRoaXMuX2dldFdhdGNoZWREaXIoZGlyKS5yZW1vdmUoc3lzUGF0aC5iYXNlbmFtZShwYXRoKSk7XG59XG5cbi8qKlxuICogQ2xvc2VzIG9ubHkgZmlsZS1zcGVjaWZpYyB3YXRjaGVyc1xuICogQHBhcmFtIHtQYXRofSBwYXRoXG4gKi9cbl9jbG9zZUZpbGUocGF0aCkge1xuICBjb25zdCBjbG9zZXJzID0gdGhpcy5fY2xvc2Vycy5nZXQocGF0aCk7XG4gIGlmICghY2xvc2VycykgcmV0dXJuO1xuICBjbG9zZXJzLmZvckVhY2goY2xvc2VyID0+IGNsb3NlcigpKTtcbiAgdGhpcy5fY2xvc2Vycy5kZWxldGUocGF0aCk7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7UGF0aH0gcGF0aFxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2xvc2VyXG4gKi9cbl9hZGRQYXRoQ2xvc2VyKHBhdGgsIGNsb3Nlcikge1xuICBpZiAoIWNsb3NlcikgcmV0dXJuO1xuICBsZXQgbGlzdCA9IHRoaXMuX2Nsb3NlcnMuZ2V0KHBhdGgpO1xuICBpZiAoIWxpc3QpIHtcbiAgICBsaXN0ID0gW107XG4gICAgdGhpcy5fY2xvc2Vycy5zZXQocGF0aCwgbGlzdCk7XG4gIH1cbiAgbGlzdC5wdXNoKGNsb3Nlcik7XG59XG5cbl9yZWFkZGlycChyb290LCBvcHRzKSB7XG4gIGlmICh0aGlzLmNsb3NlZCkgcmV0dXJuO1xuICBjb25zdCBvcHRpb25zID0ge3R5cGU6IEVWX0FMTCwgYWx3YXlzU3RhdDogdHJ1ZSwgbHN0YXQ6IHRydWUsIC4uLm9wdHN9O1xuICBsZXQgc3RyZWFtID0gcmVhZGRpcnAocm9vdCwgb3B0aW9ucyk7XG4gIHRoaXMuX3N0cmVhbXMuYWRkKHN0cmVhbSk7XG4gIHN0cmVhbS5vbmNlKFNUUl9DTE9TRSwgKCkgPT4ge1xuICAgIHN0cmVhbSA9IHVuZGVmaW5lZDtcbiAgfSk7XG4gIHN0cmVhbS5vbmNlKFNUUl9FTkQsICgpID0+IHtcbiAgICBpZiAoc3RyZWFtKSB7XG4gICAgICB0aGlzLl9zdHJlYW1zLmRlbGV0ZShzdHJlYW0pO1xuICAgICAgc3RyZWFtID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBzdHJlYW07XG59XG5cbn1cblxuLy8gRXhwb3J0IEZTV2F0Y2hlciBjbGFzc1xuZXhwb3J0cy5GU1dhdGNoZXIgPSBGU1dhdGNoZXI7XG5cbi8qKlxuICogSW5zdGFudGlhdGVzIHdhdGNoZXIgd2l0aCBwYXRocyB0byBiZSB0cmFja2VkLlxuICogQHBhcmFtIHtTdHJpbmd8QXJyYXk8U3RyaW5nPn0gcGF0aHMgZmlsZS9kaXJlY3RvcnkgcGF0aHMgYW5kL29yIGdsb2JzXG4gKiBAcGFyYW0ge09iamVjdD19IG9wdGlvbnMgY2hva2lkYXIgb3B0c1xuICogQHJldHVybnMgYW4gaW5zdGFuY2Ugb2YgRlNXYXRjaGVyIGZvciBjaGFpbmluZy5cbiAqL1xuY29uc3Qgd2F0Y2ggPSAocGF0aHMsIG9wdGlvbnMpID0+IHtcbiAgY29uc3Qgd2F0Y2hlciA9IG5ldyBGU1dhdGNoZXIob3B0aW9ucyk7XG4gIHdhdGNoZXIuYWRkKHBhdGhzKTtcbiAgcmV0dXJuIHdhdGNoZXI7XG59O1xuXG5leHBvcnRzLndhdGNoID0gd2F0Y2g7XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmV4dGVuZCA9IGV4dGVuZDtcbmV4cG9ydHMuaW5kZXhPZiA9IGluZGV4T2Y7XG5leHBvcnRzLmVzY2FwZUV4cHJlc3Npb24gPSBlc2NhcGVFeHByZXNzaW9uO1xuZXhwb3J0cy5pc0VtcHR5ID0gaXNFbXB0eTtcbmV4cG9ydHMuY3JlYXRlRnJhbWUgPSBjcmVhdGVGcmFtZTtcbmV4cG9ydHMuYmxvY2tQYXJhbXMgPSBibG9ja1BhcmFtcztcbmV4cG9ydHMuYXBwZW5kQ29udGV4dFBhdGggPSBhcHBlbmRDb250ZXh0UGF0aDtcbnZhciBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG52YXIgYmFkQ2hhcnMgPSAvWyY8PlwiJ2A9XS9nLFxuICAgIHBvc3NpYmxlID0gL1smPD5cIidgPV0vO1xuXG5mdW5jdGlvbiBlc2NhcGVDaGFyKGNocikge1xuICByZXR1cm4gZXNjYXBlW2Nocl07XG59XG5cbmZ1bmN0aW9uIGV4dGVuZChvYmogLyogLCAuLi5zb3VyY2UgKi8pIHtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gYXJndW1lbnRzW2ldKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGFyZ3VtZW50c1tpXSwga2V5KSkge1xuICAgICAgICBvYmpba2V5XSA9IGFyZ3VtZW50c1tpXVtrZXldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbnZhciB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbmV4cG9ydHMudG9TdHJpbmcgPSB0b1N0cmluZztcbi8vIFNvdXJjZWQgZnJvbSBsb2Rhc2hcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iZXN0aWVqcy9sb2Rhc2gvYmxvYi9tYXN0ZXIvTElDRU5TRS50eHRcbi8qIGVzbGludC1kaXNhYmxlIGZ1bmMtc3R5bGUgKi9cbnZhciBpc0Z1bmN0aW9uID0gZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufTtcbi8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpc0Z1bmN0aW9uKC94LykpIHtcbiAgZXhwb3J0cy5pc0Z1bmN0aW9uID0gaXNGdW5jdGlvbiA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgJiYgdG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XG4gIH07XG59XG5leHBvcnRzLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uO1xuXG4vKiBlc2xpbnQtZW5hYmxlIGZ1bmMtc3R5bGUgKi9cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiAodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgPyB0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQXJyYXldJyA6IGZhbHNlO1xufTtcblxuZXhwb3J0cy5pc0FycmF5ID0gaXNBcnJheTtcbi8vIE9sZGVyIElFIHZlcnNpb25zIGRvIG5vdCBkaXJlY3RseSBzdXBwb3J0IGluZGV4T2Ygc28gd2UgbXVzdCBpbXBsZW1lbnQgb3VyIG93biwgc2FkbHkuXG5cbmZ1bmN0aW9uIGluZGV4T2YoYXJyYXksIHZhbHVlKSB7XG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBhcnJheS5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChhcnJheVtpXSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybiBpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbmZ1bmN0aW9uIGVzY2FwZUV4cHJlc3Npb24oc3RyaW5nKSB7XG4gIGlmICh0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJykge1xuICAgIC8vIGRvbid0IGVzY2FwZSBTYWZlU3RyaW5ncywgc2luY2UgdGhleSdyZSBhbHJlYWR5IHNhZmVcbiAgICBpZiAoc3RyaW5nICYmIHN0cmluZy50b0hUTUwpIHtcbiAgICAgIHJldHVybiBzdHJpbmcudG9IVE1MKCk7XG4gICAgfSBlbHNlIGlmIChzdHJpbmcgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH0gZWxzZSBpZiAoIXN0cmluZykge1xuICAgICAgcmV0dXJuIHN0cmluZyArICcnO1xuICAgIH1cblxuICAgIC8vIEZvcmNlIGEgc3RyaW5nIGNvbnZlcnNpb24gYXMgdGhpcyB3aWxsIGJlIGRvbmUgYnkgdGhlIGFwcGVuZCByZWdhcmRsZXNzIGFuZFxuICAgIC8vIHRoZSByZWdleCB0ZXN0IHdpbGwgZG8gdGhpcyB0cmFuc3BhcmVudGx5IGJlaGluZCB0aGUgc2NlbmVzLCBjYXVzaW5nIGlzc3VlcyBpZlxuICAgIC8vIGFuIG9iamVjdCdzIHRvIHN0cmluZyBoYXMgZXNjYXBlZCBjaGFyYWN0ZXJzIGluIGl0LlxuICAgIHN0cmluZyA9ICcnICsgc3RyaW5nO1xuICB9XG5cbiAgaWYgKCFwb3NzaWJsZS50ZXN0KHN0cmluZykpIHtcbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZShiYWRDaGFycywgZXNjYXBlQ2hhcik7XG59XG5cbmZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKGlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVGcmFtZShvYmplY3QpIHtcbiAgdmFyIGZyYW1lID0gZXh0ZW5kKHt9LCBvYmplY3QpO1xuICBmcmFtZS5fcGFyZW50ID0gb2JqZWN0O1xuICByZXR1cm4gZnJhbWU7XG59XG5cbmZ1bmN0aW9uIGJsb2NrUGFyYW1zKHBhcmFtcywgaWRzKSB7XG4gIHBhcmFtcy5wYXRoID0gaWRzO1xuICByZXR1cm4gcGFyYW1zO1xufVxuXG5mdW5jdGlvbiBhcHBlbmRDb250ZXh0UGF0aChjb250ZXh0UGF0aCwgaWQpIHtcbiAgcmV0dXJuIChjb250ZXh0UGF0aCA/IGNvbnRleHRQYXRoICsgJy4nIDogJycpICsgaWQ7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMMnhwWWk5b1lXNWtiR1ZpWVhKekwzVjBhV3h6TG1weklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN1FVRkJRU3hKUVVGTkxFMUJRVTBzUjBGQlJ6dEJRVU5pTEV0QlFVY3NSVUZCUlN4UFFVRlBPMEZCUTFvc1MwRkJSeXhGUVVGRkxFMUJRVTA3UVVGRFdDeExRVUZITEVWQlFVVXNUVUZCVFR0QlFVTllMRXRCUVVjc1JVRkJSU3hSUVVGUk8wRkJRMklzUzBGQlJ5eEZRVUZGTEZGQlFWRTdRVUZEWWl4TFFVRkhMRVZCUVVVc1VVRkJVVHRCUVVOaUxFdEJRVWNzUlVGQlJTeFJRVUZSTzBOQlEyUXNRMEZCUXpzN1FVRkZSaXhKUVVGTkxGRkJRVkVzUjBGQlJ5eFpRVUZaTzBsQlF6TkNMRkZCUVZFc1IwRkJSeXhYUVVGWExFTkJRVU03TzBGQlJYcENMRk5CUVZNc1ZVRkJWU3hEUVVGRExFZEJRVWNzUlVGQlJUdEJRVU4yUWl4VFFVRlBMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dERRVU53UWpzN1FVRkZUU3hUUVVGVExFMUJRVTBzUTBGQlF5eEhRVUZITEc5Q1FVRnZRanRCUVVNMVF5eFBRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRCUVVONlF5eFRRVUZMTEVsQlFVa3NSMEZCUnl4SlFVRkpMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJUdEJRVU0xUWl4VlFVRkpMRTFCUVUwc1EwRkJReXhUUVVGVExFTkJRVU1zWTBGQll5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVTdRVUZETTBRc1YwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFBRVU01UWp0TFFVTkdPMGRCUTBZN08wRkJSVVFzVTBGQlR5eEhRVUZITEVOQlFVTTdRMEZEV2pzN1FVRkZUU3hKUVVGSkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJRenM3T3pzN08wRkJTMmhFTEVsQlFVa3NWVUZCVlN4SFFVRkhMRzlDUVVGVExFdEJRVXNzUlVGQlJUdEJRVU12UWl4VFFVRlBMRTlCUVU4c1MwRkJTeXhMUVVGTExGVkJRVlVzUTBGQlF6dERRVU53UXl4RFFVRkRPenM3UVVGSFJpeEpRVUZKTEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSVHRCUVVOdVFpeFZRVTlQTEZWQlFWVXNSMEZRYWtJc1ZVRkJWU3hIUVVGSExGVkJRVk1zUzBGQlN5eEZRVUZGTzBGQlF6TkNMRmRCUTBVc1QwRkJUeXhMUVVGTExFdEJRVXNzVlVGQlZTeEpRVU16UWl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEcxQ1FVRnRRaXhEUVVNMVF6dEhRVU5JTEVOQlFVTTdRMEZEU0R0UlFVTlJMRlZCUVZVc1IwRkJWaXhWUVVGVk96czdPenRCUVVsYUxFbEJRVTBzVDBGQlR5eEhRVU5zUWl4TFFVRkxMRU5CUVVNc1QwRkJUeXhKUVVOaUxGVkJRVk1zUzBGQlN5eEZRVUZGTzBGQlEyUXNVMEZCVHl4TFFVRkxMRWxCUVVrc1QwRkJUeXhMUVVGTExFdEJRVXNzVVVGQlVTeEhRVU55UXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEdkQ1FVRm5RaXhIUVVONlF5eExRVUZMTEVOQlFVTTdRMEZEV0N4RFFVRkRPenM3T3p0QlFVZEhMRk5CUVZNc1QwRkJUeXhEUVVGRExFdEJRVXNzUlVGQlJTeExRVUZMTEVWQlFVVTdRVUZEY0VNc1QwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4SFFVRkhMRXRCUVVzc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRCUVVOb1JDeFJRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhMUVVGTExFVkJRVVU3UVVGRGRFSXNZVUZCVHl4RFFVRkRMRU5CUVVNN1MwRkRWanRIUVVOR08wRkJRMFFzVTBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0RFFVTllPenRCUVVWTkxGTkJRVk1zWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hGUVVGRk8wRkJRM1pETEUxQlFVa3NUMEZCVHl4TlFVRk5MRXRCUVVzc1VVRkJVU3hGUVVGRk96dEJRVVU1UWl4UlFVRkpMRTFCUVUwc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTzBGQlF6TkNMR0ZCUVU4c1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzB0QlEzaENMRTFCUVUwc1NVRkJTU3hOUVVGTkxFbEJRVWtzU1VGQlNTeEZRVUZGTzBGQlEzcENMR0ZCUVU4c1JVRkJSU3hEUVVGRE8wdEJRMWdzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZPMEZCUTJ4Q0xHRkJRVThzVFVGQlRTeEhRVUZITEVWQlFVVXNRMEZCUXp0TFFVTndRanM3T3pzN1FVRkxSQ3hWUVVGTkxFZEJRVWNzUlVGQlJTeEhRVUZITEUxQlFVMHNRMEZCUXp0SFFVTjBRanM3UVVGRlJDeE5RVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJUdEJRVU14UWl4WFFVRlBMRTFCUVUwc1EwRkJRenRIUVVObU8wRkJRMFFzVTBGQlR5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1JVRkJSU3hWUVVGVkxFTkJRVU1zUTBGQlF6dERRVU0zUXpzN1FVRkZUU3hUUVVGVExFOUJRVThzUTBGQlF5eExRVUZMTEVWQlFVVTdRVUZETjBJc1RVRkJTU3hEUVVGRExFdEJRVXNzU1VGQlNTeExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVRkZPMEZCUTNwQ0xGZEJRVThzU1VGQlNTeERRVUZETzBkQlEySXNUVUZCVFN4SlFVRkpMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeExRVUZMTEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1JVRkJSVHRCUVVNdlF5eFhRVUZQTEVsQlFVa3NRMEZCUXp0SFFVTmlMRTFCUVUwN1FVRkRUQ3hYUVVGUExFdEJRVXNzUTBGQlF6dEhRVU5rTzBOQlEwWTdPMEZCUlUwc1UwRkJVeXhYUVVGWExFTkJRVU1zVFVGQlRTeEZRVUZGTzBGQlEyeERMRTFCUVVrc1MwRkJTeXhIUVVGSExFMUJRVTBzUTBGQlF5eEZRVUZGTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1FVRkRMMElzVDBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNN1FVRkRka0lzVTBGQlR5eExRVUZMTEVOQlFVTTdRMEZEWkRzN1FVRkZUU3hUUVVGVExGZEJRVmNzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZPMEZCUTNaRExGRkJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRPMEZCUTJ4Q0xGTkJRVThzVFVGQlRTeERRVUZETzBOQlEyWTdPMEZCUlUwc1UwRkJVeXhwUWtGQmFVSXNRMEZCUXl4WFFVRlhMRVZCUVVVc1JVRkJSU3hGUVVGRk8wRkJRMnBFTEZOQlFVOHNRMEZCUXl4WFFVRlhMRWRCUVVjc1YwRkJWeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEZRVUZGTEVOQlFVRXNSMEZCU1N4RlFVRkZMRU5CUVVNN1EwRkRjRVFpTENKbWFXeGxJam9pZFhScGJITXVhbk1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKamIyNXpkQ0JsYzJOaGNHVWdQU0I3WEc0Z0lDY21Kem9nSnlaaGJYQTdKeXhjYmlBZ0p6d25PaUFuSm14ME95Y3NYRzRnSUNjK0p6b2dKeVpuZERzbkxGeHVJQ0FuWENJbk9pQW5KbkYxYjNRN0p5eGNiaUFnWENJblhDSTZJQ2NtSTNneU56c25MRnh1SUNBbllDYzZJQ2NtSTNnMk1Ec25MRnh1SUNBblBTYzZJQ2NtSTNnelJEc25YRzU5TzF4dVhHNWpiMjV6ZENCaVlXUkRhR0Z5Y3lBOUlDOWJKancrWENJbllEMWRMMmNzWEc0Z0lIQnZjM05wWW14bElEMGdMMXNtUEQ1Y0lpZGdQVjB2TzF4dVhHNW1kVzVqZEdsdmJpQmxjMk5oY0dWRGFHRnlLR05vY2lrZ2UxeHVJQ0J5WlhSMWNtNGdaWE5qWVhCbFcyTm9jbDA3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmxlSFJsYm1Rb2IySnFJQzhxSUN3Z0xpNHVjMjkxY21ObElDb3ZLU0I3WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F4T3lCcElEd2dZWEpuZFcxbGJuUnpMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYTJWNUlHbHVJR0Z5WjNWdFpXNTBjMXRwWFNrZ2UxeHVJQ0FnSUNBZ2FXWWdLRTlpYW1WamRDNXdjbTkwYjNSNWNHVXVhR0Z6VDNkdVVISnZjR1Z5ZEhrdVkyRnNiQ2hoY21kMWJXVnVkSE5iYVYwc0lHdGxlU2twSUh0Y2JpQWdJQ0FnSUNBZ2IySnFXMnRsZVYwZ1BTQmhjbWQxYldWdWRITmJhVjFiYTJWNVhUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQnlaWFIxY200Z2IySnFPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ2JHVjBJSFJ2VTNSeWFXNW5JRDBnVDJKcVpXTjBMbkJ5YjNSdmRIbHdaUzUwYjFOMGNtbHVaenRjYmx4dUx5OGdVMjkxY21ObFpDQm1jbTl0SUd4dlpHRnphRnh1THk4Z2FIUjBjSE02THk5bmFYUm9kV0l1WTI5dEwySmxjM1JwWldwekwyeHZaR0Z6YUM5aWJHOWlMMjFoYzNSbGNpOU1TVU5GVGxORkxuUjRkRnh1THlvZ1pYTnNhVzUwTFdScGMyRmliR1VnWm5WdVl5MXpkSGxzWlNBcUwxeHViR1YwSUdselJuVnVZM1JwYjI0Z1BTQm1kVzVqZEdsdmJpaDJZV3gxWlNrZ2UxeHVJQ0J5WlhSMWNtNGdkSGx3Wlc5bUlIWmhiSFZsSUQwOVBTQW5ablZ1WTNScGIyNG5PMXh1ZlR0Y2JpOHZJR1poYkd4aVlXTnJJR1p2Y2lCdmJHUmxjaUIyWlhKemFXOXVjeUJ2WmlCRGFISnZiV1VnWVc1a0lGTmhabUZ5YVZ4dUx5b2dhWE4wWVc1aWRXd2dhV2R1YjNKbElHNWxlSFFnS2k5Y2JtbG1JQ2hwYzBaMWJtTjBhVzl1S0M5NEx5a3BJSHRjYmlBZ2FYTkdkVzVqZEdsdmJpQTlJR1oxYm1OMGFXOXVLSFpoYkhWbEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUhSNWNHVnZaaUIyWVd4MVpTQTlQVDBnSjJaMWJtTjBhVzl1SnlBbUpseHVJQ0FnSUNBZ2RHOVRkSEpwYm1jdVkyRnNiQ2gyWVd4MVpTa2dQVDA5SUNkYmIySnFaV04wSUVaMWJtTjBhVzl1WFNkY2JpQWdJQ0FwTzF4dUlDQjlPMXh1ZlZ4dVpYaHdiM0owSUhzZ2FYTkdkVzVqZEdsdmJpQjlPMXh1THlvZ1pYTnNhVzUwTFdWdVlXSnNaU0JtZFc1akxYTjBlV3hsSUNvdlhHNWNiaThxSUdsemRHRnVZblZzSUdsbmJtOXlaU0J1WlhoMElDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ2FYTkJjbkpoZVNBOVhHNGdJRUZ5Y21GNUxtbHpRWEp5WVhrZ2ZIeGNiaUFnWm5WdVkzUnBiMjRvZG1Gc2RXVXBJSHRjYmlBZ0lDQnlaWFIxY200Z2RtRnNkV1VnSmlZZ2RIbHdaVzltSUhaaGJIVmxJRDA5UFNBbmIySnFaV04wSjF4dUlDQWdJQ0FnUHlCMGIxTjBjbWx1Wnk1allXeHNLSFpoYkhWbEtTQTlQVDBnSjF0dlltcGxZM1FnUVhKeVlYbGRKMXh1SUNBZ0lDQWdPaUJtWVd4elpUdGNiaUFnZlR0Y2JseHVMeThnVDJ4a1pYSWdTVVVnZG1WeWMybHZibk1nWkc4Z2JtOTBJR1JwY21WamRHeDVJSE4xY0hCdmNuUWdhVzVrWlhoUFppQnpieUIzWlNCdGRYTjBJR2x0Y0d4bGJXVnVkQ0J2ZFhJZ2IzZHVMQ0J6WVdSc2VTNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnBibVJsZUU5bUtHRnljbUY1TENCMllXeDFaU2tnZTF4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTUN3Z2JHVnVJRDBnWVhKeVlYa3ViR1Z1WjNSb095QnBJRHdnYkdWdU95QnBLeXNwSUh0Y2JpQWdJQ0JwWmlBb1lYSnlZWGxiYVYwZ1BUMDlJSFpoYkhWbEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2FUdGNiaUFnSUNCOVhHNGdJSDFjYmlBZ2NtVjBkWEp1SUMweE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWlhOallYQmxSWGh3Y21WemMybHZiaWh6ZEhKcGJtY3BJSHRjYmlBZ2FXWWdLSFI1Y0dWdlppQnpkSEpwYm1jZ0lUMDlJQ2R6ZEhKcGJtY25LU0I3WEc0Z0lDQWdMeThnWkc5dUozUWdaWE5qWVhCbElGTmhabVZUZEhKcGJtZHpMQ0J6YVc1alpTQjBhR1Y1SjNKbElHRnNjbVZoWkhrZ2MyRm1aVnh1SUNBZ0lHbG1JQ2h6ZEhKcGJtY2dKaVlnYzNSeWFXNW5MblJ2U0ZSTlRDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlITjBjbWx1Wnk1MGIwaFVUVXdvS1R0Y2JpQWdJQ0I5SUdWc2MyVWdhV1lnS0hOMGNtbHVaeUE5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdKeWM3WEc0Z0lDQWdmU0JsYkhObElHbG1JQ2doYzNSeWFXNW5LU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjM1J5YVc1bklDc2dKeWM3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnUm05eVkyVWdZU0J6ZEhKcGJtY2dZMjl1ZG1WeWMybHZiaUJoY3lCMGFHbHpJSGRwYkd3Z1ltVWdaRzl1WlNCaWVTQjBhR1VnWVhCd1pXNWtJSEpsWjJGeVpHeGxjM01nWVc1a1hHNGdJQ0FnTHk4Z2RHaGxJSEpsWjJWNElIUmxjM1FnZDJsc2JDQmtieUIwYUdseklIUnlZVzV6Y0dGeVpXNTBiSGtnWW1Wb2FXNWtJSFJvWlNCelkyVnVaWE1zSUdOaGRYTnBibWNnYVhOemRXVnpJR2xtWEc0Z0lDQWdMeThnWVc0Z2IySnFaV04wSjNNZ2RHOGdjM1J5YVc1bklHaGhjeUJsYzJOaGNHVmtJR05vWVhKaFkzUmxjbk1nYVc0Z2FYUXVYRzRnSUNBZ2MzUnlhVzVuSUQwZ0p5Y2dLeUJ6ZEhKcGJtYzdYRzRnSUgxY2JseHVJQ0JwWmlBb0lYQnZjM05wWW14bExuUmxjM1FvYzNSeWFXNW5LU2tnZTF4dUlDQWdJSEpsZEhWeWJpQnpkSEpwYm1jN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUhOMGNtbHVaeTV5WlhCc1lXTmxLR0poWkVOb1lYSnpMQ0JsYzJOaGNHVkRhR0Z5S1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2x6Ulcxd2RIa29kbUZzZFdVcElIdGNiaUFnYVdZZ0tDRjJZV3gxWlNBbUppQjJZV3gxWlNBaFBUMGdNQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQjlJR1ZzYzJVZ2FXWWdLR2x6UVhKeVlYa29kbUZzZFdVcElDWW1JSFpoYkhWbExteGxibWQwYUNBOVBUMGdNQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnZlZ4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZM0psWVhSbFJuSmhiV1VvYjJKcVpXTjBLU0I3WEc0Z0lHeGxkQ0JtY21GdFpTQTlJR1Y0ZEdWdVpDaDdmU3dnYjJKcVpXTjBLVHRjYmlBZ1puSmhiV1V1WDNCaGNtVnVkQ0E5SUc5aWFtVmpkRHRjYmlBZ2NtVjBkWEp1SUdaeVlXMWxPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lteHZZMnRRWVhKaGJYTW9jR0Z5WVcxekxDQnBaSE1wSUh0Y2JpQWdjR0Z5WVcxekxuQmhkR2dnUFNCcFpITTdYRzRnSUhKbGRIVnliaUJ3WVhKaGJYTTdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCaGNIQmxibVJEYjI1MFpYaDBVR0YwYUNoamIyNTBaWGgwVUdGMGFDd2dhV1FwSUh0Y2JpQWdjbVYwZFhKdUlDaGpiMjUwWlhoMFVHRjBhQ0EvSUdOdmJuUmxlSFJRWVhSb0lDc2dKeTRuSURvZ0p5Y3BJQ3NnYVdRN1hHNTlYRzRpWFgwPVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xudmFyIGVycm9yUHJvcHMgPSBbJ2Rlc2NyaXB0aW9uJywgJ2ZpbGVOYW1lJywgJ2xpbmVOdW1iZXInLCAnZW5kTGluZU51bWJlcicsICdtZXNzYWdlJywgJ25hbWUnLCAnbnVtYmVyJywgJ3N0YWNrJ107XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIHZhciBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgICAgbGluZSA9IHVuZGVmaW5lZCxcbiAgICAgIGVuZExpbmVOdW1iZXIgPSB1bmRlZmluZWQsXG4gICAgICBjb2x1bW4gPSB1bmRlZmluZWQsXG4gICAgICBlbmRDb2x1bW4gPSB1bmRlZmluZWQ7XG5cbiAgaWYgKGxvYykge1xuICAgIGxpbmUgPSBsb2Muc3RhcnQubGluZTtcbiAgICBlbmRMaW5lTnVtYmVyID0gbG9jLmVuZC5saW5lO1xuICAgIGNvbHVtbiA9IGxvYy5zdGFydC5jb2x1bW47XG4gICAgZW5kQ29sdW1uID0gbG9jLmVuZC5jb2x1bW47XG5cbiAgICBtZXNzYWdlICs9ICcgLSAnICsgbGluZSArICc6JyArIGNvbHVtbjtcbiAgfVxuXG4gIHZhciB0bXAgPSBFcnJvci5wcm90b3R5cGUuY29uc3RydWN0b3IuY2FsbCh0aGlzLCBtZXNzYWdlKTtcblxuICAvLyBVbmZvcnR1bmF0ZWx5IGVycm9ycyBhcmUgbm90IGVudW1lcmFibGUgaW4gQ2hyb21lIChhdCBsZWFzdCksIHNvIGBmb3IgcHJvcCBpbiB0bXBgIGRvZXNuJ3Qgd29yay5cbiAgZm9yICh2YXIgaWR4ID0gMDsgaWR4IDwgZXJyb3JQcm9wcy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgdGhpc1tlcnJvclByb3BzW2lkeF1dID0gdG1wW2Vycm9yUHJvcHNbaWR4XV07XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpIHtcbiAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLCBFeGNlcHRpb24pO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBpZiAobG9jKSB7XG4gICAgICB0aGlzLmxpbmVOdW1iZXIgPSBsaW5lO1xuICAgICAgdGhpcy5lbmRMaW5lTnVtYmVyID0gZW5kTGluZU51bWJlcjtcblxuICAgICAgLy8gV29yayBhcm91bmQgaXNzdWUgdW5kZXIgc2FmYXJpIHdoZXJlIHdlIGNhbid0IGRpcmVjdGx5IHNldCB0aGUgY29sdW1uIHZhbHVlXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2NvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogY29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnZW5kQ29sdW1uJywge1xuICAgICAgICAgIHZhbHVlOiBlbmRDb2x1bW4sXG4gICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29sdW1uID0gY29sdW1uO1xuICAgICAgICB0aGlzLmVuZENvbHVtbiA9IGVuZENvbHVtbjtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKG5vcCkge1xuICAgIC8qIElnbm9yZSBpZiB0aGUgYnJvd3NlciBpcyB2ZXJ5IHBhcnRpY3VsYXIgKi9cbiAgfVxufVxuXG5FeGNlcHRpb24ucHJvdG90eXBlID0gbmV3IEVycm9yKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEV4Y2VwdGlvbjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDJ4cFlpOW9ZVzVrYkdWaVlYSnpMMlY0WTJWd2RHbHZiaTVxY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN1FVRkJRU3hKUVVGTkxGVkJRVlVzUjBGQlJ5eERRVU5xUWl4aFFVRmhMRVZCUTJJc1ZVRkJWU3hGUVVOV0xGbEJRVmtzUlVGRFdpeGxRVUZsTEVWQlEyWXNVMEZCVXl4RlFVTlVMRTFCUVUwc1JVRkRUaXhSUVVGUkxFVkJRMUlzVDBGQlR5eERRVU5TTEVOQlFVTTdPMEZCUlVZc1UwRkJVeXhUUVVGVExFTkJRVU1zVDBGQlR5eEZRVUZGTEVsQlFVa3NSVUZCUlR0QlFVTm9ReXhOUVVGSkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWRCUVVjN1RVRkRlRUlzU1VGQlNTeFpRVUZCTzAxQlEwb3NZVUZCWVN4WlFVRkJPMDFCUTJJc1RVRkJUU3haUVVGQk8wMUJRMDRzVTBGQlV5eFpRVUZCTEVOQlFVTTdPMEZCUlZvc1RVRkJTU3hIUVVGSExFVkJRVVU3UVVGRFVDeFJRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU03UVVGRGRFSXNhVUpCUVdFc1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXp0QlFVTTNRaXhWUVVGTkxFZEJRVWNzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRNVUlzWVVGQlV5eEhRVUZITEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRE96dEJRVVV6UWl4WFFVRlBMRWxCUVVrc1MwRkJTeXhIUVVGSExFbEJRVWtzUjBGQlJ5eEhRVUZITEVkQlFVY3NUVUZCVFN4RFFVRkRPMGRCUTNoRE96dEJRVVZFTEUxQlFVa3NSMEZCUnl4SFFVRkhMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03T3p0QlFVY3hSQ3hQUVVGTExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRWRCUVVjc1ZVRkJWU3hEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0QlFVTm9SQ3hSUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGRCUXpsRE96czdRVUZIUkN4TlFVRkpMRXRCUVVzc1EwRkJReXhwUWtGQmFVSXNSVUZCUlR0QlFVTXpRaXhUUVVGTExFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1NVRkJTU3hGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZETzBkQlF6RkRPenRCUVVWRUxFMUJRVWs3UVVGRFJpeFJRVUZKTEVkQlFVY3NSVUZCUlR0QlFVTlFMRlZCUVVrc1EwRkJReXhWUVVGVkxFZEJRVWNzU1VGQlNTeERRVUZETzBGQlEzWkNMRlZCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzWVVGQllTeERRVUZET3pzN08wRkJTVzVETEZWQlFVa3NUVUZCVFN4RFFVRkRMR05CUVdNc1JVRkJSVHRCUVVONlFpeGpRVUZOTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hSUVVGUkxFVkJRVVU3UVVGRGNFTXNaVUZCU3l4RlFVRkZMRTFCUVUwN1FVRkRZaXh2UWtGQlZTeEZRVUZGTEVsQlFVazdVMEZEYWtJc1EwRkJReXhEUVVGRE8wRkJRMGdzWTBGQlRTeERRVUZETEdOQlFXTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1YwRkJWeXhGUVVGRk8wRkJRM1pETEdWQlFVc3NSVUZCUlN4VFFVRlRPMEZCUTJoQ0xHOUNRVUZWTEVWQlFVVXNTVUZCU1R0VFFVTnFRaXhEUVVGRExFTkJRVU03VDBGRFNpeE5RVUZOTzBGQlEwd3NXVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU03UVVGRGNrSXNXVUZCU1N4RFFVRkRMRk5CUVZNc1IwRkJSeXhUUVVGVExFTkJRVU03VDBGRE5VSTdTMEZEUmp0SFFVTkdMRU5CUVVNc1QwRkJUeXhIUVVGSExFVkJRVVU3TzBkQlJXSTdRMEZEUmpzN1FVRkZSQ3hUUVVGVExFTkJRVU1zVTBGQlV5eEhRVUZITEVsQlFVa3NTMEZCU3l4RlFVRkZMRU5CUVVNN08zRkNRVVZ1UWl4VFFVRlRJaXdpWm1sc1pTSTZJbVY0WTJWd2RHbHZiaTVxY3lJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltTnZibk4wSUdWeWNtOXlVSEp2Y0hNZ1BTQmJYRzRnSUNka1pYTmpjbWx3ZEdsdmJpY3NYRzRnSUNkbWFXeGxUbUZ0WlNjc1hHNGdJQ2RzYVc1bFRuVnRZbVZ5Snl4Y2JpQWdKMlZ1WkV4cGJtVk9kVzFpWlhJbkxGeHVJQ0FuYldWemMyRm5aU2NzWEc0Z0lDZHVZVzFsSnl4Y2JpQWdKMjUxYldKbGNpY3NYRzRnSUNkemRHRmpheWRjYmwwN1hHNWNibVoxYm1OMGFXOXVJRVY0WTJWd2RHbHZiaWh0WlhOellXZGxMQ0J1YjJSbEtTQjdYRzRnSUd4bGRDQnNiMk1nUFNCdWIyUmxJQ1ltSUc1dlpHVXViRzlqTEZ4dUlDQWdJR3hwYm1Vc1hHNGdJQ0FnWlc1a1RHbHVaVTUxYldKbGNpeGNiaUFnSUNCamIyeDFiVzRzWEc0Z0lDQWdaVzVrUTI5c2RXMXVPMXh1WEc0Z0lHbG1JQ2hzYjJNcElIdGNiaUFnSUNCc2FXNWxJRDBnYkc5akxuTjBZWEowTG14cGJtVTdYRzRnSUNBZ1pXNWtUR2x1WlU1MWJXSmxjaUE5SUd4dll5NWxibVF1YkdsdVpUdGNiaUFnSUNCamIyeDFiVzRnUFNCc2IyTXVjM1JoY25RdVkyOXNkVzF1TzF4dUlDQWdJR1Z1WkVOdmJIVnRiaUE5SUd4dll5NWxibVF1WTI5c2RXMXVPMXh1WEc0Z0lDQWdiV1Z6YzJGblpTQXJQU0FuSUMwZ0p5QXJJR3hwYm1VZ0t5QW5PaWNnS3lCamIyeDFiVzQ3WEc0Z0lIMWNibHh1SUNCc1pYUWdkRzF3SUQwZ1JYSnliM0l1Y0hKdmRHOTBlWEJsTG1OdmJuTjBjblZqZEc5eUxtTmhiR3dvZEdocGN5d2diV1Z6YzJGblpTazdYRzVjYmlBZ0x5OGdWVzVtYjNKMGRXNWhkR1ZzZVNCbGNuSnZjbk1nWVhKbElHNXZkQ0JsYm5WdFpYSmhZbXhsSUdsdUlFTm9jbTl0WlNBb1lYUWdiR1ZoYzNRcExDQnpieUJnWm05eUlIQnliM0FnYVc0Z2RHMXdZQ0JrYjJWemJpZDBJSGR2Y21zdVhHNGdJR1p2Y2lBb2JHVjBJR2xrZUNBOUlEQTdJR2xrZUNBOElHVnljbTl5VUhKdmNITXViR1Z1WjNSb095QnBaSGdyS3lrZ2UxeHVJQ0FnSUhSb2FYTmJaWEp5YjNKUWNtOXdjMXRwWkhoZFhTQTlJSFJ0Y0Z0bGNuSnZjbEJ5YjNCelcybGtlRjFkTzF4dUlDQjlYRzVjYmlBZ0x5b2dhWE4wWVc1aWRXd2dhV2R1YjNKbElHVnNjMlVnS2k5Y2JpQWdhV1lnS0VWeWNtOXlMbU5oY0hSMWNtVlRkR0ZqYTFSeVlXTmxLU0I3WEc0Z0lDQWdSWEp5YjNJdVkyRndkSFZ5WlZOMFlXTnJWSEpoWTJVb2RHaHBjeXdnUlhoalpYQjBhVzl1S1R0Y2JpQWdmVnh1WEc0Z0lIUnllU0I3WEc0Z0lDQWdhV1lnS0d4dll5a2dlMXh1SUNBZ0lDQWdkR2hwY3k1c2FXNWxUblZ0WW1WeUlEMGdiR2x1WlR0Y2JpQWdJQ0FnSUhSb2FYTXVaVzVrVEdsdVpVNTFiV0psY2lBOUlHVnVaRXhwYm1WT2RXMWlaWEk3WEc1Y2JpQWdJQ0FnSUM4dklGZHZjbXNnWVhKdmRXNWtJR2x6YzNWbElIVnVaR1Z5SUhOaFptRnlhU0IzYUdWeVpTQjNaU0JqWVc0bmRDQmthWEpsWTNSc2VTQnpaWFFnZEdobElHTnZiSFZ0YmlCMllXeDFaVnh1SUNBZ0lDQWdMeW9nYVhOMFlXNWlkV3dnYVdkdWIzSmxJRzVsZUhRZ0tpOWNiaUFnSUNBZ0lHbG1JQ2hQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrcElIdGNiaUFnSUNBZ0lDQWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0hSb2FYTXNJQ2RqYjJ4MWJXNG5MQ0I3WEc0Z0lDQWdJQ0FnSUNBZ2RtRnNkV1U2SUdOdmJIVnRiaXhjYmlBZ0lDQWdJQ0FnSUNCbGJuVnRaWEpoWW14bE9pQjBjblZsWEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQlBZbXBsWTNRdVpHVm1hVzVsVUhKdmNHVnlkSGtvZEdocGN5d2dKMlZ1WkVOdmJIVnRiaWNzSUh0Y2JpQWdJQ0FnSUNBZ0lDQjJZV3gxWlRvZ1pXNWtRMjlzZFcxdUxGeHVJQ0FnSUNBZ0lDQWdJR1Z1ZFcxbGNtRmliR1U2SUhSeWRXVmNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0IwYUdsekxtTnZiSFZ0YmlBOUlHTnZiSFZ0Ymp0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVsYm1SRGIyeDFiVzRnUFNCbGJtUkRiMngxYlc0N1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlJR05oZEdOb0lDaHViM0FwSUh0Y2JpQWdJQ0F2S2lCSloyNXZjbVVnYVdZZ2RHaGxJR0p5YjNkelpYSWdhWE1nZG1WeWVTQndZWEowYVdOMWJHRnlJQ292WEc0Z0lIMWNibjFjYmx4dVJYaGpaWEIwYVc5dUxuQnliM1J2ZEhsd1pTQTlJRzVsZHlCRmNuSnZjaWdwTzF4dVhHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCRmVHTmxjSFJwYjI0N1hHNGlYWDA9XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscycpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2Jsb2NrSGVscGVyTWlzc2luZycsIGZ1bmN0aW9uIChjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgdmFyIGludmVyc2UgPSBvcHRpb25zLmludmVyc2UsXG4gICAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoX3V0aWxzLmlzQXJyYXkoY29udGV4dCkpIHtcbiAgICAgIGlmIChjb250ZXh0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgICAgICAgb3B0aW9ucy5pZHMgPSBbb3B0aW9ucy5uYW1lXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbnN0YW5jZS5oZWxwZXJzLmVhY2goY29udGV4dCwgb3B0aW9ucyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gaW52ZXJzZSh0aGlzKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmlkcykge1xuICAgICAgICB2YXIgZGF0YSA9IF91dGlscy5jcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgICBkYXRhLmNvbnRleHRQYXRoID0gX3V0aWxzLmFwcGVuZENvbnRleHRQYXRoKG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCwgb3B0aW9ucy5uYW1lKTtcbiAgICAgICAgb3B0aW9ucyA9IHsgZGF0YTogZGF0YSB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfVxuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwyeHBZaTlvWVc1a2JHVmlZWEp6TDJobGJIQmxjbk12WW14dlkyc3RhR1ZzY0dWeUxXMXBjM05wYm1jdWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenR4UWtGQmQwUXNWVUZCVlRzN2NVSkJSVzVFTEZWQlFWTXNVVUZCVVN4RlFVRkZPMEZCUTJoRExGVkJRVkVzUTBGQlF5eGpRVUZqTEVOQlFVTXNiMEpCUVc5Q0xFVkJRVVVzVlVGQlV5eFBRVUZQTEVWQlFVVXNUMEZCVHl4RlFVRkZPMEZCUTNaRkxGRkJRVWtzVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXl4UFFVRlBPMUZCUXpOQ0xFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRPenRCUVVWc1FpeFJRVUZKTEU5QlFVOHNTMEZCU3l4SlFVRkpMRVZCUVVVN1FVRkRjRUlzWVVGQlR5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRha0lzVFVGQlRTeEpRVUZKTEU5QlFVOHNTMEZCU3l4TFFVRkxMRWxCUVVrc1QwRkJUeXhKUVVGSkxFbEJRVWtzUlVGQlJUdEJRVU12UXl4aFFVRlBMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dExRVU4wUWl4TlFVRk5MRWxCUVVrc1pVRkJVU3hQUVVGUExFTkJRVU1zUlVGQlJUdEJRVU16UWl4VlFVRkpMRTlCUVU4c1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzBGQlEzUkNMRmxCUVVrc1QwRkJUeXhEUVVGRExFZEJRVWNzUlVGQlJUdEJRVU5tTEdsQ1FVRlBMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMU5CUXpsQ096dEJRVVZFTEdWQlFVOHNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMDlCUTJoRUxFMUJRVTA3UVVGRFRDeGxRVUZQTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRQUVVOMFFqdExRVU5HTEUxQlFVMDdRVUZEVEN4VlFVRkpMRTlCUVU4c1EwRkJReXhKUVVGSkxFbEJRVWtzVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlR0QlFVTXZRaXhaUVVGSkxFbEJRVWtzUjBGQlJ5eHRRa0ZCV1N4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRGNrTXNXVUZCU1N4RFFVRkRMRmRCUVZjc1IwRkJSeXg1UWtGRGFrSXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRM2hDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUTJJc1EwRkJRenRCUVVOR0xHVkJRVThzUjBGQlJ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkJRenRQUVVNeFFqczdRVUZGUkN4aFFVRlBMRVZCUVVVc1EwRkJReXhQUVVGUExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdTMEZETjBJN1IwRkRSaXhEUVVGRExFTkJRVU03UTBGRFNpSXNJbVpwYkdVaU9pSmliRzlqYXkxb1pXeHdaWEl0YldsemMybHVaeTVxY3lJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lHRndjR1Z1WkVOdmJuUmxlSFJRWVhSb0xDQmpjbVZoZEdWR2NtRnRaU3dnYVhOQmNuSmhlU0I5SUdaeWIyMGdKeTR1TDNWMGFXeHpKenRjYmx4dVpYaHdiM0owSUdSbFptRjFiSFFnWm5WdVkzUnBiMjRvYVc1emRHRnVZMlVwSUh0Y2JpQWdhVzV6ZEdGdVkyVXVjbVZuYVhOMFpYSklaV3h3WlhJb0oySnNiMk5yU0dWc2NHVnlUV2x6YzJsdVp5Y3NJR1oxYm1OMGFXOXVLR052Ym5SbGVIUXNJRzl3ZEdsdmJuTXBJSHRjYmlBZ0lDQnNaWFFnYVc1MlpYSnpaU0E5SUc5d2RHbHZibk11YVc1MlpYSnpaU3hjYmlBZ0lDQWdJR1p1SUQwZ2IzQjBhVzl1Y3k1bWJqdGNibHh1SUNBZ0lHbG1JQ2hqYjI1MFpYaDBJRDA5UFNCMGNuVmxLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabTRvZEdocGN5azdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaGpiMjUwWlhoMElEMDlQU0JtWVd4elpTQjhmQ0JqYjI1MFpYaDBJRDA5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnBiblpsY25ObEtIUm9hWE1wTzF4dUlDQWdJSDBnWld4elpTQnBaaUFvYVhOQmNuSmhlU2hqYjI1MFpYaDBLU2tnZTF4dUlDQWdJQ0FnYVdZZ0tHTnZiblJsZUhRdWJHVnVaM1JvSUQ0Z01Da2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1cFpITXBJSHRjYmlBZ0lDQWdJQ0FnSUNCdmNIUnBiMjV6TG1sa2N5QTlJRnR2Y0hScGIyNXpMbTVoYldWZE8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR2x1YzNSaGJtTmxMbWhsYkhCbGNuTXVaV0ZqYUNoamIyNTBaWGgwTENCdmNIUnBiMjV6S1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJwYm5abGNuTmxLSFJvYVhNcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1a1lYUmhJQ1ltSUc5d2RHbHZibk11YVdSektTQjdYRzRnSUNBZ0lDQWdJR3hsZENCa1lYUmhJRDBnWTNKbFlYUmxSbkpoYldVb2IzQjBhVzl1Y3k1a1lYUmhLVHRjYmlBZ0lDQWdJQ0FnWkdGMFlTNWpiMjUwWlhoMFVHRjBhQ0E5SUdGd2NHVnVaRU52Ym5SbGVIUlFZWFJvS0Z4dUlDQWdJQ0FnSUNBZ0lHOXdkR2x2Ym5NdVpHRjBZUzVqYjI1MFpYaDBVR0YwYUN4Y2JpQWdJQ0FnSUNBZ0lDQnZjSFJwYjI1ekxtNWhiV1ZjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ2IzQjBhVzl1Y3lBOUlIc2daR0YwWVRvZ1pHRjBZU0I5TzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCeVpYUjFjbTRnWm00b1kyOXVkR1Y0ZEN3Z2IzQjBhVzl1Y3lrN1hHNGdJQ0FnZlZ4dUlDQjlLVHRjYm4xY2JpSmRmUT09XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG4vLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscycpO1xuXG52YXIgX2V4Y2VwdGlvbiA9IHJlcXVpcmUoJy4uL2V4Y2VwdGlvbicpO1xuXG52YXIgX2V4Y2VwdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9leGNlcHRpb24pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2VhY2gnLCBmdW5jdGlvbiAoY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmICghb3B0aW9ucykge1xuICAgICAgdGhyb3cgbmV3IF9leGNlcHRpb24yWydkZWZhdWx0J10oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIHZhciBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICAgIGludmVyc2UgPSBvcHRpb25zLmludmVyc2UsXG4gICAgICAgIGkgPSAwLFxuICAgICAgICByZXQgPSAnJyxcbiAgICAgICAgZGF0YSA9IHVuZGVmaW5lZCxcbiAgICAgICAgY29udGV4dFBhdGggPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICBjb250ZXh0UGF0aCA9IF91dGlscy5hcHBlbmRDb250ZXh0UGF0aChvcHRpb25zLmRhdGEuY29udGV4dFBhdGgsIG9wdGlvbnMuaWRzWzBdKSArICcuJztcbiAgICB9XG5cbiAgICBpZiAoX3V0aWxzLmlzRnVuY3Rpb24oY29udGV4dCkpIHtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZGF0YSkge1xuICAgICAgZGF0YSA9IF91dGlscy5jcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4ZWNJdGVyYXRpb24oZmllbGQsIGluZGV4LCBsYXN0KSB7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICBkYXRhLmtleSA9IGZpZWxkO1xuICAgICAgICBkYXRhLmluZGV4ID0gaW5kZXg7XG4gICAgICAgIGRhdGEuZmlyc3QgPSBpbmRleCA9PT0gMDtcbiAgICAgICAgZGF0YS5sYXN0ID0gISFsYXN0O1xuXG4gICAgICAgIGlmIChjb250ZXh0UGF0aCkge1xuICAgICAgICAgIGRhdGEuY29udGV4dFBhdGggPSBjb250ZXh0UGF0aCArIGZpZWxkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldCA9IHJldCArIGZuKGNvbnRleHRbZmllbGRdLCB7XG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJsb2NrUGFyYW1zOiBfdXRpbHMuYmxvY2tQYXJhbXMoW2NvbnRleHRbZmllbGRdLCBmaWVsZF0sIFtjb250ZXh0UGF0aCArIGZpZWxkLCBudWxsXSlcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjb250ZXh0ICYmIHR5cGVvZiBjb250ZXh0ID09PSAnb2JqZWN0Jykge1xuICAgICAgaWYgKF91dGlscy5pc0FycmF5KGNvbnRleHQpKSB7XG4gICAgICAgIGZvciAodmFyIGogPSBjb250ZXh0Lmxlbmd0aDsgaSA8IGo7IGkrKykge1xuICAgICAgICAgIGlmIChpIGluIGNvbnRleHQpIHtcbiAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24oaSwgaSwgaSA9PT0gY29udGV4dC5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZ2xvYmFsLlN5bWJvbCAmJiBjb250ZXh0W2dsb2JhbC5TeW1ib2wuaXRlcmF0b3JdKSB7XG4gICAgICAgIHZhciBuZXdDb250ZXh0ID0gW107XG4gICAgICAgIHZhciBpdGVyYXRvciA9IGNvbnRleHRbZ2xvYmFsLlN5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICAgICAgZm9yICh2YXIgaXQgPSBpdGVyYXRvci5uZXh0KCk7ICFpdC5kb25lOyBpdCA9IGl0ZXJhdG9yLm5leHQoKSkge1xuICAgICAgICAgIG5ld0NvbnRleHQucHVzaChpdC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29udGV4dCA9IG5ld0NvbnRleHQ7XG4gICAgICAgIGZvciAodmFyIGogPSBjb250ZXh0Lmxlbmd0aDsgaSA8IGo7IGkrKykge1xuICAgICAgICAgIGV4ZWNJdGVyYXRpb24oaSwgaSwgaSA9PT0gY29udGV4dC5sZW5ndGggLSAxKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB2YXIgcHJpb3JLZXkgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICBPYmplY3Qua2V5cyhjb250ZXh0KS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIC8vIFdlJ3JlIHJ1bm5pbmcgdGhlIGl0ZXJhdGlvbnMgb25lIHN0ZXAgb3V0IG9mIHN5bmMgc28gd2UgY2FuIGRldGVjdFxuICAgICAgICAgICAgLy8gdGhlIGxhc3QgaXRlcmF0aW9uIHdpdGhvdXQgaGF2ZSB0byBzY2FuIHRoZSBvYmplY3QgdHdpY2UgYW5kIGNyZWF0ZVxuICAgICAgICAgICAgLy8gYW4gaXRlcm1lZGlhdGUga2V5cyBhcnJheS5cbiAgICAgICAgICAgIGlmIChwcmlvcktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24ocHJpb3JLZXksIGkgLSAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByaW9yS2V5ID0ga2V5O1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChwcmlvcktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpID09PSAwKSB7XG4gICAgICByZXQgPSBpbnZlcnNlKHRoaXMpO1xuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDJ4cFlpOW9ZVzVrYkdWaVlYSnpMMmhsYkhCbGNuTXZaV0ZqYUM1cWN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPenM3TzNGQ1FVMVBMRlZCUVZVN08zbENRVU5MTEdOQlFXTTdPenM3Y1VKQlJYSkNMRlZCUVZNc1VVRkJVU3hGUVVGRk8wRkJRMmhETEZWQlFWRXNRMEZCUXl4alFVRmpMRU5CUVVNc1RVRkJUU3hGUVVGRkxGVkJRVk1zVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZCUlR0QlFVTjZSQ3hSUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTzBGQlExb3NXVUZCVFN3eVFrRkJZeXcyUWtGQk5rSXNRMEZCUXl4RFFVRkRPMHRCUTNCRU96dEJRVVZFTEZGQlFVa3NSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhGUVVGRk8xRkJRMnBDTEU5QlFVOHNSMEZCUnl4UFFVRlBMRU5CUVVNc1QwRkJUenRSUVVONlFpeERRVUZETEVkQlFVY3NRMEZCUXp0UlFVTk1MRWRCUVVjc1IwRkJSeXhGUVVGRk8xRkJRMUlzU1VGQlNTeFpRVUZCTzFGQlEwb3NWMEZCVnl4WlFVRkJMRU5CUVVNN08wRkJSV1FzVVVGQlNTeFBRVUZQTEVOQlFVTXNTVUZCU1N4SlFVRkpMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVU3UVVGREwwSXNhVUpCUVZjc1IwRkRWQ3g1UWtGQmEwSXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVVzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF6dExRVU55UlRzN1FVRkZSQ3hSUVVGSkxHdENRVUZYTEU5QlFVOHNRMEZCUXl4RlFVRkZPMEZCUTNaQ0xHRkJRVThzUjBGQlJ5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wdEJRemxDT3p0QlFVVkVMRkZCUVVrc1QwRkJUeXhEUVVGRExFbEJRVWtzUlVGQlJUdEJRVU5vUWl4VlFVRkpMRWRCUVVjc2JVSkJRVmtzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMHRCUTJ4RE96dEJRVVZFTEdGQlFWTXNZVUZCWVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVVzU1VGQlNTeEZRVUZGTzBGQlEzcERMRlZCUVVrc1NVRkJTU3hGUVVGRk8wRkJRMUlzV1VGQlNTeERRVUZETEVkQlFVY3NSMEZCUnl4TFFVRkxMRU5CUVVNN1FVRkRha0lzV1VGQlNTeERRVUZETEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNN1FVRkRia0lzV1VGQlNTeERRVUZETEV0QlFVc3NSMEZCUnl4TFFVRkxMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRM3BDTEZsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF6czdRVUZGYmtJc1dVRkJTU3hYUVVGWExFVkJRVVU3UVVGRFppeGpRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRmRCUVZjc1IwRkJSeXhMUVVGTExFTkJRVU03VTBGRGVFTTdUMEZEUmpzN1FVRkZSQ3hUUVVGSExFZEJRMFFzUjBGQlJ5eEhRVU5JTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVU3UVVGRGFrSXNXVUZCU1N4RlFVRkZMRWxCUVVrN1FVRkRWaXh0UWtGQlZ5eEZRVUZGTEcxQ1FVTllMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RlFVTjJRaXhEUVVGRExGZEJRVmNzUjBGQlJ5eExRVUZMTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUXpWQ08wOUJRMFlzUTBGQlF5eERRVUZETzB0QlEwNDdPMEZCUlVRc1VVRkJTU3hQUVVGUExFbEJRVWtzVDBGQlR5eFBRVUZQTEV0QlFVc3NVVUZCVVN4RlFVRkZPMEZCUXpGRExGVkJRVWtzWlVGQlVTeFBRVUZQTEVOQlFVTXNSVUZCUlR0QlFVTndRaXhoUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0QlFVTjJReXhqUVVGSkxFTkJRVU1zU1VGQlNTeFBRVUZQTEVWQlFVVTdRVUZEYUVJc2VVSkJRV0VzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhQUVVGUExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMWRCUXk5RE8xTkJRMFk3VDBGRFJpeE5RVUZOTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1NVRkJTU3hQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSVHRCUVVNelJDeFpRVUZOTEZWQlFWVXNSMEZCUnl4RlFVRkZMRU5CUVVNN1FVRkRkRUlzV1VGQlRTeFJRVUZSTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNRMEZCUXp0QlFVTnVSQ3hoUVVGTExFbEJRVWtzUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUlN4SFFVRkhMRkZCUVZFc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJUdEJRVU0zUkN4dlFrRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1UwRkRNMEk3UVVGRFJDeGxRVUZQTEVkQlFVY3NWVUZCVlN4RFFVRkRPMEZCUTNKQ0xHRkJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMEZCUTNaRExIVkNRVUZoTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFdEJRVXNzVDBGQlR5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVNdlF6dFBRVU5HTEUxQlFVMDdPMEZCUTB3c1kwRkJTU3hSUVVGUkxGbEJRVUVzUTBGQlF6czdRVUZGWWl4blFrRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1ZVRkJRU3hIUVVGSExFVkJRVWs3T3pzN1FVRkpiRU1zWjBKQlFVa3NVVUZCVVN4TFFVRkxMRk5CUVZNc1JVRkJSVHRCUVVNeFFpd3lRa0ZCWVN4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdZVUZEYUVNN1FVRkRSQ3h2UWtGQlVTeEhRVUZITEVkQlFVY3NRMEZCUXp0QlFVTm1MR0ZCUVVNc1JVRkJSU3hEUVVGRE8xZEJRMHdzUTBGQlF5eERRVUZETzBGQlEwZ3NZMEZCU1N4UlFVRlJMRXRCUVVzc1UwRkJVeXhGUVVGRk8wRkJRekZDTEhsQ1FVRmhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1YwRkRkRU03TzA5QlEwWTdTMEZEUmpzN1FVRkZSQ3hSUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVTdRVUZEV0N4VFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzB0QlEzSkNPenRCUVVWRUxGZEJRVThzUjBGQlJ5eERRVUZETzBkQlExb3NRMEZCUXl4RFFVRkRPME5CUTBvaUxDSm1hV3hsSWpvaVpXRmphQzVxY3lJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1hHNGdJR0Z3Y0dWdVpFTnZiblJsZUhSUVlYUm9MRnh1SUNCaWJHOWphMUJoY21GdGN5eGNiaUFnWTNKbFlYUmxSbkpoYldVc1hHNGdJR2x6UVhKeVlYa3NYRzRnSUdselJuVnVZM1JwYjI1Y2JuMGdabkp2YlNBbkxpNHZkWFJwYkhNbk8xeHVhVzF3YjNKMElFVjRZMlZ3ZEdsdmJpQm1jbTl0SUNjdUxpOWxlR05sY0hScGIyNG5PMXh1WEc1bGVIQnZjblFnWkdWbVlYVnNkQ0JtZFc1amRHbHZiaWhwYm5OMFlXNWpaU2tnZTF4dUlDQnBibk4wWVc1alpTNXlaV2RwYzNSbGNraGxiSEJsY2lnblpXRmphQ2NzSUdaMWJtTjBhVzl1S0dOdmJuUmxlSFFzSUc5d2RHbHZibk1wSUh0Y2JpQWdJQ0JwWmlBb0lXOXdkR2x2Ym5NcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZlR05sY0hScGIyNG9KMDExYzNRZ2NHRnpjeUJwZEdWeVlYUnZjaUIwYnlBalpXRmphQ2NwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR3hsZENCbWJpQTlJRzl3ZEdsdmJuTXVabTRzWEc0Z0lDQWdJQ0JwYm5abGNuTmxJRDBnYjNCMGFXOXVjeTVwYm5abGNuTmxMRnh1SUNBZ0lDQWdhU0E5SURBc1hHNGdJQ0FnSUNCeVpYUWdQU0FuSnl4Y2JpQWdJQ0FnSUdSaGRHRXNYRzRnSUNBZ0lDQmpiMjUwWlhoMFVHRjBhRHRjYmx4dUlDQWdJR2xtSUNodmNIUnBiMjV6TG1SaGRHRWdKaVlnYjNCMGFXOXVjeTVwWkhNcElIdGNiaUFnSUNBZ0lHTnZiblJsZUhSUVlYUm9JRDFjYmlBZ0lDQWdJQ0FnWVhCd1pXNWtRMjl1ZEdWNGRGQmhkR2dvYjNCMGFXOXVjeTVrWVhSaExtTnZiblJsZUhSUVlYUm9MQ0J2Y0hScGIyNXpMbWxrYzFzd1hTa2dLeUFuTGljN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHbHpSblZ1WTNScGIyNG9ZMjl1ZEdWNGRDa3BJSHRjYmlBZ0lDQWdJR052Ym5SbGVIUWdQU0JqYjI1MFpYaDBMbU5oYkd3b2RHaHBjeWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0c5d2RHbHZibk11WkdGMFlTa2dlMXh1SUNBZ0lDQWdaR0YwWVNBOUlHTnlaV0YwWlVaeVlXMWxLRzl3ZEdsdmJuTXVaR0YwWVNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWm5WdVkzUnBiMjRnWlhobFkwbDBaWEpoZEdsdmJpaG1hV1ZzWkN3Z2FXNWtaWGdzSUd4aGMzUXBJSHRjYmlBZ0lDQWdJR2xtSUNoa1lYUmhLU0I3WEc0Z0lDQWdJQ0FnSUdSaGRHRXVhMlY1SUQwZ1ptbGxiR1E3WEc0Z0lDQWdJQ0FnSUdSaGRHRXVhVzVrWlhnZ1BTQnBibVJsZUR0Y2JpQWdJQ0FnSUNBZ1pHRjBZUzVtYVhKemRDQTlJR2x1WkdWNElEMDlQU0F3TzF4dUlDQWdJQ0FnSUNCa1lYUmhMbXhoYzNRZ1BTQWhJV3hoYzNRN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0dOdmJuUmxlSFJRWVhSb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnWkdGMFlTNWpiMjUwWlhoMFVHRjBhQ0E5SUdOdmJuUmxlSFJRWVhSb0lDc2dabWxsYkdRN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdjbVYwSUQxY2JpQWdJQ0FnSUNBZ2NtVjBJQ3RjYmlBZ0lDQWdJQ0FnWm00b1kyOXVkR1Y0ZEZ0bWFXVnNaRjBzSUh0Y2JpQWdJQ0FnSUNBZ0lDQmtZWFJoT2lCa1lYUmhMRnh1SUNBZ0lDQWdJQ0FnSUdKc2IyTnJVR0Z5WVcxek9pQmliRzlqYTFCaGNtRnRjeWhjYmlBZ0lDQWdJQ0FnSUNBZ0lGdGpiMjUwWlhoMFcyWnBaV3hrWFN3Z1ptbGxiR1JkTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdXMk52Ym5SbGVIUlFZWFJvSUNzZ1ptbGxiR1FzSUc1MWJHeGRYRzRnSUNBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9ZMjl1ZEdWNGRDQW1KaUIwZVhCbGIyWWdZMjl1ZEdWNGRDQTlQVDBnSjI5aWFtVmpkQ2NwSUh0Y2JpQWdJQ0FnSUdsbUlDaHBjMEZ5Y21GNUtHTnZiblJsZUhRcEtTQjdYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR29nUFNCamIyNTBaWGgwTG14bGJtZDBhRHNnYVNBOElHbzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2xtSUNocElHbHVJR052Ym5SbGVIUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHVjRaV05KZEdWeVlYUnBiMjRvYVN3Z2FTd2dhU0E5UFQwZ1kyOXVkR1Y0ZEM1c1pXNW5kR2dnTFNBeEtUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwZ1pXeHpaU0JwWmlBb1oyeHZZbUZzTGxONWJXSnZiQ0FtSmlCamIyNTBaWGgwVzJkc2IySmhiQzVUZVcxaWIyd3VhWFJsY21GMGIzSmRLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzVsZDBOdmJuUmxlSFFnUFNCYlhUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2FYUmxjbUYwYjNJZ1BTQmpiMjUwWlhoMFcyZHNiMkpoYkM1VGVXMWliMnd1YVhSbGNtRjBiM0pkS0NrN1hHNGdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHbDBJRDBnYVhSbGNtRjBiM0l1Ym1WNGRDZ3BPeUFoYVhRdVpHOXVaVHNnYVhRZ1BTQnBkR1Z5WVhSdmNpNXVaWGgwS0NrcElIdGNiaUFnSUNBZ0lDQWdJQ0J1WlhkRGIyNTBaWGgwTG5CMWMyZ29hWFF1ZG1Gc2RXVXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdOdmJuUmxlSFFnUFNCdVpYZERiMjUwWlhoME8xeHVJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnFJRDBnWTI5dWRHVjRkQzVzWlc1bmRHZzdJR2tnUENCcU95QnBLeXNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmxlR1ZqU1hSbGNtRjBhVzl1S0drc0lHa3NJR2tnUFQwOUlHTnZiblJsZUhRdWJHVnVaM1JvSUMwZ01TazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJR3hsZENCd2NtbHZja3RsZVR0Y2JseHVJQ0FnSUNBZ0lDQlBZbXBsWTNRdWEyVjVjeWhqYjI1MFpYaDBLUzVtYjNKRllXTm9LR3RsZVNBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnTHk4Z1YyVW5jbVVnY25WdWJtbHVaeUIwYUdVZ2FYUmxjbUYwYVc5dWN5QnZibVVnYzNSbGNDQnZkWFFnYjJZZ2MzbHVZeUJ6YnlCM1pTQmpZVzRnWkdWMFpXTjBYRzRnSUNBZ0lDQWdJQ0FnTHk4Z2RHaGxJR3hoYzNRZ2FYUmxjbUYwYVc5dUlIZHBkR2h2ZFhRZ2FHRjJaU0IwYnlCelkyRnVJSFJvWlNCdlltcGxZM1FnZEhkcFkyVWdZVzVrSUdOeVpXRjBaVnh1SUNBZ0lDQWdJQ0FnSUM4dklHRnVJR2wwWlhKdFpXUnBZWFJsSUd0bGVYTWdZWEp5WVhrdVhHNGdJQ0FnSUNBZ0lDQWdhV1lnS0hCeWFXOXlTMlY1SUNFOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHVjRaV05KZEdWeVlYUnBiMjRvY0hKcGIzSkxaWGtzSUdrZ0xTQXhLVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdjSEpwYjNKTFpYa2dQU0JyWlhrN1hHNGdJQ0FnSUNBZ0lDQWdhU3NyTzF4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdhV1lnS0hCeWFXOXlTMlY1SUNFOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCbGVHVmpTWFJsY21GMGFXOXVLSEJ5YVc5eVMyVjVMQ0JwSUMwZ01Td2dkSEoxWlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9hU0E5UFQwZ01Da2dlMXh1SUNBZ0lDQWdjbVYwSUQwZ2FXNTJaWEp6WlNoMGFHbHpLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2NtVjBPMXh1SUNCOUtUdGNibjFjYmlKZGZRPT1cbiIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbi8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9leGNlcHRpb24gPSByZXF1aXJlKCcuLi9leGNlcHRpb24nKTtcblxudmFyIF9leGNlcHRpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZXhjZXB0aW9uKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gZnVuY3Rpb24gKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdoZWxwZXJNaXNzaW5nJywgZnVuY3Rpb24gKCkgLyogW2FyZ3MsIF1vcHRpb25zICove1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAvLyBBIG1pc3NpbmcgZmllbGQgaW4gYSB7e2Zvb319IGNvbnN0cnVjdC5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNvbWVvbmUgaXMgYWN0dWFsbHkgdHJ5aW5nIHRvIGNhbGwgc29tZXRoaW5nLCBibG93IHVwLlxuICAgICAgdGhyb3cgbmV3IF9leGNlcHRpb24yWydkZWZhdWx0J10oJ01pc3NpbmcgaGVscGVyOiBcIicgKyBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdLm5hbWUgKyAnXCInKTtcbiAgICB9XG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDJ4cFlpOW9ZVzVrYkdWaVlYSnpMMmhsYkhCbGNuTXZhR1ZzY0dWeUxXMXBjM05wYm1jdWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3p0NVFrRkJjMElzWTBGQll6czdPenR4UWtGRmNrSXNWVUZCVXl4UlFVRlJMRVZCUVVVN1FVRkRhRU1zVlVGQlVTeERRVUZETEdOQlFXTXNRMEZCUXl4bFFVRmxMRVZCUVVVc2FVTkJRV2RETzBGQlEzWkZMRkZCUVVrc1UwRkJVeXhEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEVWQlFVVTdPMEZCUlRGQ0xHRkJRVThzVTBGQlV5eERRVUZETzB0QlEyeENMRTFCUVUwN08wRkJSVXdzV1VGQlRTd3lRa0ZEU2l4dFFrRkJiVUlzUjBGQlJ5eFRRVUZUTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVTnFSU3hEUVVGRE8wdEJRMGc3UjBGRFJpeERRVUZETEVOQlFVTTdRMEZEU2lJc0ltWnBiR1VpT2lKb1pXeHdaWEl0YldsemMybHVaeTVxY3lJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCRmVHTmxjSFJwYjI0Z1puSnZiU0FuTGk0dlpYaGpaWEIwYVc5dUp6dGNibHh1Wlhod2IzSjBJR1JsWm1GMWJIUWdablZ1WTNScGIyNG9hVzV6ZEdGdVkyVXBJSHRjYmlBZ2FXNXpkR0Z1WTJVdWNtVm5hWE4wWlhKSVpXeHdaWElvSjJobGJIQmxjazFwYzNOcGJtY25MQ0JtZFc1amRHbHZiaWd2S2lCYllYSm5jeXdnWFc5d2RHbHZibk1nS2k4cElIdGNiaUFnSUNCcFppQW9ZWEpuZFcxbGJuUnpMbXhsYm1kMGFDQTlQVDBnTVNrZ2UxeHVJQ0FnSUNBZ0x5OGdRU0J0YVhOemFXNW5JR1pwWld4a0lHbHVJR0VnZTN0bWIyOTlmU0JqYjI1emRISjFZM1F1WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBdkx5QlRiMjFsYjI1bElHbHpJR0ZqZEhWaGJHeDVJSFJ5ZVdsdVp5QjBieUJqWVd4c0lITnZiV1YwYUdsdVp5d2dZbXh2ZHlCMWNDNWNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZlR05sY0hScGIyNG9YRzRnSUNBZ0lDQWdJQ2ROYVhOemFXNW5JR2hsYkhCbGNqb2dYQ0luSUNzZ1lYSm5kVzFsYm5SelcyRnlaM1Z0Wlc1MGN5NXNaVzVuZEdnZ0xTQXhYUzV1WVcxbElDc2dKMXdpSjF4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lIMHBPMXh1ZlZ4dUlsMTlcbiIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbi8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF91dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzJyk7XG5cbnZhciBfZXhjZXB0aW9uID0gcmVxdWlyZSgnLi4vZXhjZXB0aW9uJyk7XG5cbnZhciBfZXhjZXB0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2V4Y2VwdGlvbik7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IGZ1bmN0aW9uIChpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignaWYnLCBmdW5jdGlvbiAoY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgX2V4Y2VwdGlvbjJbJ2RlZmF1bHQnXSgnI2lmIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIGlmIChfdXRpbHMuaXNGdW5jdGlvbihjb25kaXRpb25hbCkpIHtcbiAgICAgIGNvbmRpdGlvbmFsID0gY29uZGl0aW9uYWwuY2FsbCh0aGlzKTtcbiAgICB9XG5cbiAgICAvLyBEZWZhdWx0IGJlaGF2aW9yIGlzIHRvIHJlbmRlciB0aGUgcG9zaXRpdmUgcGF0aCBpZiB0aGUgdmFsdWUgaXMgdHJ1dGh5IGFuZCBub3QgZW1wdHkuXG4gICAgLy8gVGhlIGBpbmNsdWRlWmVyb2Agb3B0aW9uIG1heSBiZSBzZXQgdG8gdHJlYXQgdGhlIGNvbmR0aW9uYWwgYXMgcHVyZWx5IG5vdCBlbXB0eSBiYXNlZCBvbiB0aGVcbiAgICAvLyBiZWhhdmlvciBvZiBpc0VtcHR5LiBFZmZlY3RpdmVseSB0aGlzIGRldGVybWluZXMgaWYgMCBpcyBoYW5kbGVkIGJ5IHRoZSBwb3NpdGl2ZSBwYXRoIG9yIG5lZ2F0aXZlLlxuICAgIGlmICghb3B0aW9ucy5oYXNoLmluY2x1ZGVaZXJvICYmICFjb25kaXRpb25hbCB8fCBfdXRpbHMuaXNFbXB0eShjb25kaXRpb25hbCkpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmludmVyc2UodGhpcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmZuKHRoaXMpO1xuICAgIH1cbiAgfSk7XG5cbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ3VubGVzcycsIGZ1bmN0aW9uIChjb25kaXRpb25hbCwgb3B0aW9ucykge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoICE9IDIpIHtcbiAgICAgIHRocm93IG5ldyBfZXhjZXB0aW9uMlsnZGVmYXVsdCddKCcjdW5sZXNzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZS5oZWxwZXJzWydpZiddLmNhbGwodGhpcywgY29uZGl0aW9uYWwsIHtcbiAgICAgIGZuOiBvcHRpb25zLmludmVyc2UsXG4gICAgICBpbnZlcnNlOiBvcHRpb25zLmZuLFxuICAgICAgaGFzaDogb3B0aW9ucy5oYXNoXG4gICAgfSk7XG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDJ4cFlpOW9ZVzVrYkdWaVlYSnpMMmhsYkhCbGNuTXZhV1l1YW5NaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenR4UWtGQmIwTXNWVUZCVlRzN2VVSkJRM2hDTEdOQlFXTTdPenM3Y1VKQlJYSkNMRlZCUVZNc1VVRkJVU3hGUVVGRk8wRkJRMmhETEZWQlFWRXNRMEZCUXl4alFVRmpMRU5CUVVNc1NVRkJTU3hGUVVGRkxGVkJRVk1zVjBGQlZ5eEZRVUZGTEU5QlFVOHNSVUZCUlR0QlFVTXpSQ3hSUVVGSkxGTkJRVk1zUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4RlFVRkZPMEZCUTNwQ0xGbEJRVTBzTWtKQlFXTXNiVU5CUVcxRExFTkJRVU1zUTBGQlF6dExRVU14UkR0QlFVTkVMRkZCUVVrc2EwSkJRVmNzVjBGQlZ5eERRVUZETEVWQlFVVTdRVUZETTBJc2FVSkJRVmNzUjBGQlJ5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wdEJRM1JET3pzN096dEJRVXRFTEZGQlFVa3NRVUZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEpRVUZKTEVOQlFVTXNWMEZCVnl4SlFVRkxMR1ZCUVZFc1YwRkJWeXhEUVVGRExFVkJRVVU3UVVGRGRrVXNZVUZCVHl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzB0QlF6bENMRTFCUVUwN1FVRkRUQ3hoUVVGUExFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRla0k3UjBGRFJpeERRVUZETEVOQlFVTTdPMEZCUlVnc1ZVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eFJRVUZSTEVWQlFVVXNWVUZCVXl4WFFVRlhMRVZCUVVVc1QwRkJUeXhGUVVGRk8wRkJReTlFTEZGQlFVa3NVMEZCVXl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFVkJRVVU3UVVGRGVrSXNXVUZCVFN3eVFrRkJZeXgxUTBGQmRVTXNRMEZCUXl4RFFVRkRPMHRCUXpsRU8wRkJRMFFzVjBGQlR5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNWMEZCVnl4RlFVRkZPMEZCUTNCRUxGRkJRVVVzUlVGQlJTeFBRVUZQTEVOQlFVTXNUMEZCVHp0QlFVTnVRaXhoUVVGUExFVkJRVVVzVDBGQlR5eERRVUZETEVWQlFVVTdRVUZEYmtJc1ZVRkJTU3hGUVVGRkxFOUJRVThzUTBGQlF5eEpRVUZKTzB0QlEyNUNMRU5CUVVNc1EwRkJRenRIUVVOS0xFTkJRVU1zUTBGQlF6dERRVU5LSWl3aVptbHNaU0k2SW1sbUxtcHpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnYVhORmJYQjBlU3dnYVhOR2RXNWpkR2x2YmlCOUlHWnliMjBnSnk0dUwzVjBhV3h6Snp0Y2JtbHRjRzl5ZENCRmVHTmxjSFJwYjI0Z1puSnZiU0FuTGk0dlpYaGpaWEIwYVc5dUp6dGNibHh1Wlhod2IzSjBJR1JsWm1GMWJIUWdablZ1WTNScGIyNG9hVzV6ZEdGdVkyVXBJSHRjYmlBZ2FXNXpkR0Z1WTJVdWNtVm5hWE4wWlhKSVpXeHdaWElvSjJsbUp5d2dablZ1WTNScGIyNG9ZMjl1WkdsMGFXOXVZV3dzSUc5d2RHbHZibk1wSUh0Y2JpQWdJQ0JwWmlBb1lYSm5kVzFsYm5SekxteGxibWQwYUNBaFBTQXlLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhoalpYQjBhVzl1S0NjamFXWWdjbVZ4ZFdseVpYTWdaWGhoWTNSc2VTQnZibVVnWVhKbmRXMWxiblFuS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0dselJuVnVZM1JwYjI0b1kyOXVaR2wwYVc5dVlXd3BLU0I3WEc0Z0lDQWdJQ0JqYjI1a2FYUnBiMjVoYkNBOUlHTnZibVJwZEdsdmJtRnNMbU5oYkd3b2RHaHBjeWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnUkdWbVlYVnNkQ0JpWldoaGRtbHZjaUJwY3lCMGJ5QnlaVzVrWlhJZ2RHaGxJSEJ2YzJsMGFYWmxJSEJoZEdnZ2FXWWdkR2hsSUhaaGJIVmxJR2x6SUhSeWRYUm9lU0JoYm1RZ2JtOTBJR1Z0Y0hSNUxseHVJQ0FnSUM4dklGUm9aU0JnYVc1amJIVmtaVnBsY205Z0lHOXdkR2x2YmlCdFlYa2dZbVVnYzJWMElIUnZJSFJ5WldGMElIUm9aU0JqYjI1a2RHbHZibUZzSUdGeklIQjFjbVZzZVNCdWIzUWdaVzF3ZEhrZ1ltRnpaV1FnYjI0Z2RHaGxYRzRnSUNBZ0x5OGdZbVZvWVhacGIzSWdiMllnYVhORmJYQjBlUzRnUldabVpXTjBhWFpsYkhrZ2RHaHBjeUJrWlhSbGNtMXBibVZ6SUdsbUlEQWdhWE1nYUdGdVpHeGxaQ0JpZVNCMGFHVWdjRzl6YVhScGRtVWdjR0YwYUNCdmNpQnVaV2RoZEdsMlpTNWNiaUFnSUNCcFppQW9LQ0Z2Y0hScGIyNXpMbWhoYzJndWFXNWpiSFZrWlZwbGNtOGdKaVlnSVdOdmJtUnBkR2x2Ym1Gc0tTQjhmQ0JwYzBWdGNIUjVLR052Ym1ScGRHbHZibUZzS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc5d2RHbHZibk11YVc1MlpYSnpaU2gwYUdsektUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzl3ZEdsdmJuTXVabTRvZEdocGN5azdYRzRnSUNBZ2ZWeHVJQ0I5S1R0Y2JseHVJQ0JwYm5OMFlXNWpaUzV5WldkcGMzUmxja2hsYkhCbGNpZ25kVzVzWlhOekp5d2dablZ1WTNScGIyNG9ZMjl1WkdsMGFXOXVZV3dzSUc5d2RHbHZibk1wSUh0Y2JpQWdJQ0JwWmlBb1lYSm5kVzFsYm5SekxteGxibWQwYUNBaFBTQXlLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhoalpYQjBhVzl1S0NjamRXNXNaWE56SUhKbGNYVnBjbVZ6SUdWNFlXTjBiSGtnYjI1bElHRnlaM1Z0Wlc1MEp5azdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJwYm5OMFlXNWpaUzVvWld4d1pYSnpXeWRwWmlkZExtTmhiR3dvZEdocGN5d2dZMjl1WkdsMGFXOXVZV3dzSUh0Y2JpQWdJQ0FnSUdadU9pQnZjSFJwYjI1ekxtbHVkbVZ5YzJVc1hHNGdJQ0FnSUNCcGJuWmxjbk5sT2lCdmNIUnBiMjV6TG1adUxGeHVJQ0FnSUNBZ2FHRnphRG9nYjNCMGFXOXVjeTVvWVhOb1hHNGdJQ0FnZlNrN1hHNGdJSDBwTzF4dWZWeHVJbDE5XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IGZ1bmN0aW9uIChpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignbG9nJywgZnVuY3Rpb24gKCkgLyogbWVzc2FnZSwgb3B0aW9ucyAqL3tcbiAgICB2YXIgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgICBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICAgIH1cblxuICAgIHZhciBsZXZlbCA9IDE7XG4gICAgaWYgKG9wdGlvbnMuaGFzaC5sZXZlbCAhPSBudWxsKSB7XG4gICAgICBsZXZlbCA9IG9wdGlvbnMuaGFzaC5sZXZlbDtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGEubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmRhdGEubGV2ZWw7XG4gICAgfVxuICAgIGFyZ3NbMF0gPSBsZXZlbDtcblxuICAgIGluc3RhbmNlLmxvZy5hcHBseShpbnN0YW5jZSwgYXJncyk7XG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDJ4cFlpOW9ZVzVrYkdWaVlYSnpMMmhsYkhCbGNuTXZiRzluTG1weklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN096czdjVUpCUVdVc1ZVRkJVeXhSUVVGUkxFVkJRVVU3UVVGRGFFTXNWVUZCVVN4RFFVRkRMR05CUVdNc1EwRkJReXhMUVVGTExFVkJRVVVzYTBOQlFXbERPMEZCUXpsRUxGRkJRVWtzU1VGQlNTeEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRPMUZCUTNCQ0xFOUJRVThzUjBGQlJ5eFRRVUZUTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU0xUXl4VFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdRVUZETjBNc1ZVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVONlFqczdRVUZGUkN4UlFVRkpMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU03UVVGRFpDeFJRVUZKTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhKUVVGSkxFbEJRVWtzUlVGQlJUdEJRVU01UWl4WFFVRkxMRWRCUVVjc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTTdTMEZETlVJc1RVRkJUU3hKUVVGSkxFOUJRVThzUTBGQlF5eEpRVUZKTEVsQlFVa3NUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFbEJRVWtzU1VGQlNTeEZRVUZGTzBGQlEzSkVMRmRCUVVzc1IwRkJSeXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXp0TFFVTTFRanRCUVVORUxGRkJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNN08wRkJSV2hDTEZsQlFWRXNRMEZCUXl4SFFVRkhMRTFCUVVFc1EwRkJXaXhSUVVGUkxFVkJRVkVzU1VGQlNTeERRVUZETEVOQlFVTTdSMEZEZGtJc1EwRkJReXhEUVVGRE8wTkJRMG9pTENKbWFXeGxJam9pYkc5bkxtcHpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpWlhod2IzSjBJR1JsWm1GMWJIUWdablZ1WTNScGIyNG9hVzV6ZEdGdVkyVXBJSHRjYmlBZ2FXNXpkR0Z1WTJVdWNtVm5hWE4wWlhKSVpXeHdaWElvSjJ4dlp5Y3NJR1oxYm1OMGFXOXVLQzhxSUcxbGMzTmhaMlVzSUc5d2RHbHZibk1nS2k4cElIdGNiaUFnSUNCc1pYUWdZWEpuY3lBOUlGdDFibVJsWm1sdVpXUmRMRnh1SUNBZ0lDQWdiM0IwYVc5dWN5QTlJR0Z5WjNWdFpXNTBjMXRoY21kMWJXVnVkSE11YkdWdVozUm9JQzBnTVYwN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCaGNtZDFiV1Z1ZEhNdWJHVnVaM1JvSUMwZ01Uc2dhU3NyS1NCN1hHNGdJQ0FnSUNCaGNtZHpMbkIxYzJnb1lYSm5kVzFsYm5SelcybGRLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnNaWFFnYkdWMlpXd2dQU0F4TzF4dUlDQWdJR2xtSUNodmNIUnBiMjV6TG1oaGMyZ3ViR1YyWld3Z0lUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ2JHVjJaV3dnUFNCdmNIUnBiMjV6TG1oaGMyZ3ViR1YyWld3N1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNodmNIUnBiMjV6TG1SaGRHRWdKaVlnYjNCMGFXOXVjeTVrWVhSaExteGxkbVZzSUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUd4bGRtVnNJRDBnYjNCMGFXOXVjeTVrWVhSaExteGxkbVZzTzF4dUlDQWdJSDFjYmlBZ0lDQmhjbWR6V3pCZElEMGdiR1YyWld3N1hHNWNiaUFnSUNCcGJuTjBZVzVqWlM1c2IyY29MaTR1WVhKbmN5azdYRzRnSUgwcE8xeHVmVnh1SWwxOVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvb2t1cCcsIGZ1bmN0aW9uIChvYmosIGZpZWxkLCBvcHRpb25zKSB7XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIC8vIE5vdGUgZm9yIDUuMDogQ2hhbmdlIHRvIFwib2JqID09IG51bGxcIiBpbiA1LjBcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zLmxvb2t1cFByb3BlcnR5KG9iaiwgZmllbGQpO1xuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwyeHBZaTlvWVc1a2JHVmlZWEp6TDJobGJIQmxjbk12Ykc5dmEzVndMbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN2NVSkJRV1VzVlVGQlV5eFJRVUZSTEVWQlFVVTdRVUZEYUVNc1ZVRkJVU3hEUVVGRExHTkJRV01zUTBGQlF5eFJRVUZSTEVWQlFVVXNWVUZCVXl4SFFVRkhMRVZCUVVVc1MwRkJTeXhGUVVGRkxFOUJRVThzUlVGQlJUdEJRVU01UkN4UlFVRkpMRU5CUVVNc1IwRkJSeXhGUVVGRk96dEJRVVZTTEdGQlFVOHNSMEZCUnl4RFFVRkRPMHRCUTFvN1FVRkRSQ3hYUVVGUExFOUJRVThzUTBGQlF5eGpRVUZqTEVOQlFVTXNSMEZCUnl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wZEJRek5ETEVOQlFVTXNRMEZCUXp0RFFVTktJaXdpWm1sc1pTSTZJbXh2YjJ0MWNDNXFjeUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1WNGNHOXlkQ0JrWldaaGRXeDBJR1oxYm1OMGFXOXVLR2x1YzNSaGJtTmxLU0I3WEc0Z0lHbHVjM1JoYm1ObExuSmxaMmx6ZEdWeVNHVnNjR1Z5S0Nkc2IyOXJkWEFuTENCbWRXNWpkR2x2Ymlodlltb3NJR1pwWld4a0xDQnZjSFJwYjI1ektTQjdYRzRnSUNBZ2FXWWdLQ0Z2WW1vcElIdGNiaUFnSUNBZ0lDOHZJRTV2ZEdVZ1ptOXlJRFV1TURvZ1EyaGhibWRsSUhSdklGd2liMkpxSUQwOUlHNTFiR3hjSWlCcGJpQTFMakJjYmlBZ0lDQWdJSEpsZEhWeWJpQnZZbW83WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCdmNIUnBiMjV6TG14dmIydDFjRkJ5YjNCbGNuUjVLRzlpYWl3Z1ptbGxiR1FwTzF4dUlDQjlLVHRjYm4xY2JpSmRmUT09XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG4vLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscycpO1xuXG52YXIgX2V4Y2VwdGlvbiA9IHJlcXVpcmUoJy4uL2V4Y2VwdGlvbicpO1xuXG52YXIgX2V4Y2VwdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9leGNlcHRpb24pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ3dpdGgnLCBmdW5jdGlvbiAoY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoICE9IDIpIHtcbiAgICAgIHRocm93IG5ldyBfZXhjZXB0aW9uMlsnZGVmYXVsdCddKCcjd2l0aCByZXF1aXJlcyBleGFjdGx5IG9uZSBhcmd1bWVudCcpO1xuICAgIH1cbiAgICBpZiAoX3V0aWxzLmlzRnVuY3Rpb24oY29udGV4dCkpIHtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgdmFyIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmICghX3V0aWxzLmlzRW1wdHkoY29udGV4dCkpIHtcbiAgICAgIHZhciBkYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgICAgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmlkcykge1xuICAgICAgICBkYXRhID0gX3V0aWxzLmNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgICAgIGRhdGEuY29udGV4dFBhdGggPSBfdXRpbHMuYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmbihjb250ZXh0LCB7XG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJsb2NrUGFyYW1zOiBfdXRpbHMuYmxvY2tQYXJhbXMoW2NvbnRleHRdLCBbZGF0YSAmJiBkYXRhLmNvbnRleHRQYXRoXSlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5pbnZlcnNlKHRoaXMpO1xuICAgIH1cbiAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMMnhwWWk5b1lXNWtiR1ZpWVhKekwyaGxiSEJsY25NdmQybDBhQzVxY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPM0ZDUVUxUExGVkJRVlU3TzNsQ1FVTkxMR05CUVdNN096czdjVUpCUlhKQ0xGVkJRVk1zVVVGQlVTeEZRVUZGTzBGQlEyaERMRlZCUVZFc1EwRkJReXhqUVVGakxFTkJRVU1zVFVGQlRTeEZRVUZGTEZWQlFWTXNUMEZCVHl4RlFVRkZMRTlCUVU4c1JVRkJSVHRCUVVONlJDeFJRVUZKTEZOQlFWTXNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhGUVVGRk8wRkJRM3BDTEZsQlFVMHNNa0pCUVdNc2NVTkJRWEZETEVOQlFVTXNRMEZCUXp0TFFVTTFSRHRCUVVORUxGRkJRVWtzYTBKQlFWY3NUMEZCVHl4RFFVRkRMRVZCUVVVN1FVRkRka0lzWVVGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRE9VSTdPMEZCUlVRc1VVRkJTU3hGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXpzN1FVRkZjRUlzVVVGQlNTeERRVUZETEdWQlFWRXNUMEZCVHl4RFFVRkRMRVZCUVVVN1FVRkRja0lzVlVGQlNTeEpRVUZKTEVkQlFVY3NUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJRenRCUVVONFFpeFZRVUZKTEU5QlFVOHNRMEZCUXl4SlFVRkpMRWxCUVVrc1QwRkJUeXhEUVVGRExFZEJRVWNzUlVGQlJUdEJRVU12UWl4WlFVRkpMRWRCUVVjc2JVSkJRVmtzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTJwRExGbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NlVUpCUTJwQ0xFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RlFVTjRRaXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVTm1MRU5CUVVNN1QwRkRTRHM3UVVGRlJDeGhRVUZQTEVWQlFVVXNRMEZCUXl4UFFVRlBMRVZCUVVVN1FVRkRha0lzV1VGQlNTeEZRVUZGTEVsQlFVazdRVUZEVml4dFFrRkJWeXhGUVVGRkxHMUNRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMDlCUTJoRkxFTkJRVU1zUTBGQlF6dExRVU5LTEUxQlFVMDdRVUZEVEN4aFFVRlBMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTMEZET1VJN1IwRkRSaXhEUVVGRExFTkJRVU03UTBGRFNpSXNJbVpwYkdVaU9pSjNhWFJvTG1weklpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdGNiaUFnWVhCd1pXNWtRMjl1ZEdWNGRGQmhkR2dzWEc0Z0lHSnNiMk5yVUdGeVlXMXpMRnh1SUNCamNtVmhkR1ZHY21GdFpTeGNiaUFnYVhORmJYQjBlU3hjYmlBZ2FYTkdkVzVqZEdsdmJseHVmU0JtY205dElDY3VMaTkxZEdsc2N5YzdYRzVwYlhCdmNuUWdSWGhqWlhCMGFXOXVJR1p5YjIwZ0p5NHVMMlY0WTJWd2RHbHZiaWM3WEc1Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUdaMWJtTjBhVzl1S0dsdWMzUmhibU5sS1NCN1hHNGdJR2x1YzNSaGJtTmxMbkpsWjJsemRHVnlTR1ZzY0dWeUtDZDNhWFJvSnl3Z1puVnVZM1JwYjI0b1kyOXVkR1Y0ZEN3Z2IzQjBhVzl1Y3lrZ2UxeHVJQ0FnSUdsbUlDaGhjbWQxYldWdWRITXViR1Z1WjNSb0lDRTlJRElwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmVHTmxjSFJwYjI0b0p5TjNhWFJvSUhKbGNYVnBjbVZ6SUdWNFlXTjBiSGtnYjI1bElHRnlaM1Z0Wlc1MEp5azdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHBjMFoxYm1OMGFXOXVLR052Ym5SbGVIUXBLU0I3WEc0Z0lDQWdJQ0JqYjI1MFpYaDBJRDBnWTI5dWRHVjRkQzVqWVd4c0tIUm9hWE1wTzF4dUlDQWdJSDFjYmx4dUlDQWdJR3hsZENCbWJpQTlJRzl3ZEdsdmJuTXVabTQ3WEc1Y2JpQWdJQ0JwWmlBb0lXbHpSVzF3ZEhrb1kyOXVkR1Y0ZENrcElIdGNiaUFnSUNBZ0lHeGxkQ0JrWVhSaElEMGdiM0IwYVc5dWN5NWtZWFJoTzF4dUlDQWdJQ0FnYVdZZ0tHOXdkR2x2Ym5NdVpHRjBZU0FtSmlCdmNIUnBiMjV6TG1sa2N5a2dlMXh1SUNBZ0lDQWdJQ0JrWVhSaElEMGdZM0psWVhSbFJuSmhiV1VvYjNCMGFXOXVjeTVrWVhSaEtUdGNiaUFnSUNBZ0lDQWdaR0YwWVM1amIyNTBaWGgwVUdGMGFDQTlJR0Z3Y0dWdVpFTnZiblJsZUhSUVlYUm9LRnh1SUNBZ0lDQWdJQ0FnSUc5d2RHbHZibk11WkdGMFlTNWpiMjUwWlhoMFVHRjBhQ3hjYmlBZ0lDQWdJQ0FnSUNCdmNIUnBiMjV6TG1sa2Mxc3dYVnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCeVpYUjFjbTRnWm00b1kyOXVkR1Y0ZEN3Z2UxeHVJQ0FnSUNBZ0lDQmtZWFJoT2lCa1lYUmhMRnh1SUNBZ0lDQWdJQ0JpYkc5amExQmhjbUZ0Y3pvZ1lteHZZMnRRWVhKaGJYTW9XMk52Ym5SbGVIUmRMQ0JiWkdGMFlTQW1KaUJrWVhSaExtTnZiblJsZUhSUVlYUm9YU2xjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2IzQjBhVzl1Y3k1cGJuWmxjbk5sS0hSb2FYTXBPMXh1SUNBZ0lIMWNiaUFnZlNrN1hHNTlYRzRpWFgwPVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5yZWdpc3RlckRlZmF1bHRIZWxwZXJzID0gcmVnaXN0ZXJEZWZhdWx0SGVscGVycztcbmV4cG9ydHMubW92ZUhlbHBlclRvSG9va3MgPSBtb3ZlSGVscGVyVG9Ib29rcztcbi8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9oZWxwZXJzQmxvY2tIZWxwZXJNaXNzaW5nID0gcmVxdWlyZSgnLi9oZWxwZXJzL2Jsb2NrLWhlbHBlci1taXNzaW5nJyk7XG5cbnZhciBfaGVscGVyc0Jsb2NrSGVscGVyTWlzc2luZzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9oZWxwZXJzQmxvY2tIZWxwZXJNaXNzaW5nKTtcblxudmFyIF9oZWxwZXJzRWFjaCA9IHJlcXVpcmUoJy4vaGVscGVycy9lYWNoJyk7XG5cbnZhciBfaGVscGVyc0VhY2gyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaGVscGVyc0VhY2gpO1xuXG52YXIgX2hlbHBlcnNIZWxwZXJNaXNzaW5nID0gcmVxdWlyZSgnLi9oZWxwZXJzL2hlbHBlci1taXNzaW5nJyk7XG5cbnZhciBfaGVscGVyc0hlbHBlck1pc3NpbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaGVscGVyc0hlbHBlck1pc3NpbmcpO1xuXG52YXIgX2hlbHBlcnNJZiA9IHJlcXVpcmUoJy4vaGVscGVycy9pZicpO1xuXG52YXIgX2hlbHBlcnNJZjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9oZWxwZXJzSWYpO1xuXG52YXIgX2hlbHBlcnNMb2cgPSByZXF1aXJlKCcuL2hlbHBlcnMvbG9nJyk7XG5cbnZhciBfaGVscGVyc0xvZzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9oZWxwZXJzTG9nKTtcblxudmFyIF9oZWxwZXJzTG9va3VwID0gcmVxdWlyZSgnLi9oZWxwZXJzL2xvb2t1cCcpO1xuXG52YXIgX2hlbHBlcnNMb29rdXAyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaGVscGVyc0xvb2t1cCk7XG5cbnZhciBfaGVscGVyc1dpdGggPSByZXF1aXJlKCcuL2hlbHBlcnMvd2l0aCcpO1xuXG52YXIgX2hlbHBlcnNXaXRoMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2hlbHBlcnNXaXRoKTtcblxuZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0SGVscGVycyhpbnN0YW5jZSkge1xuICBfaGVscGVyc0Jsb2NrSGVscGVyTWlzc2luZzJbJ2RlZmF1bHQnXShpbnN0YW5jZSk7XG4gIF9oZWxwZXJzRWFjaDJbJ2RlZmF1bHQnXShpbnN0YW5jZSk7XG4gIF9oZWxwZXJzSGVscGVyTWlzc2luZzJbJ2RlZmF1bHQnXShpbnN0YW5jZSk7XG4gIF9oZWxwZXJzSWYyWydkZWZhdWx0J10oaW5zdGFuY2UpO1xuICBfaGVscGVyc0xvZzJbJ2RlZmF1bHQnXShpbnN0YW5jZSk7XG4gIF9oZWxwZXJzTG9va3VwMlsnZGVmYXVsdCddKGluc3RhbmNlKTtcbiAgX2hlbHBlcnNXaXRoMlsnZGVmYXVsdCddKGluc3RhbmNlKTtcbn1cblxuZnVuY3Rpb24gbW92ZUhlbHBlclRvSG9va3MoaW5zdGFuY2UsIGhlbHBlck5hbWUsIGtlZXBIZWxwZXIpIHtcbiAgaWYgKGluc3RhbmNlLmhlbHBlcnNbaGVscGVyTmFtZV0pIHtcbiAgICBpbnN0YW5jZS5ob29rc1toZWxwZXJOYW1lXSA9IGluc3RhbmNlLmhlbHBlcnNbaGVscGVyTmFtZV07XG4gICAgaWYgKCFrZWVwSGVscGVyKSB7XG4gICAgICBkZWxldGUgaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXTtcbiAgICB9XG4gIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUwyeHBZaTlvWVc1a2JHVmlZWEp6TDJobGJIQmxjbk11YW5NaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3TzNsRFFVRjFReXhuUTBGQlowTTdPenM3TWtKQlF6bERMR2RDUVVGblFqczdPenR2UTBGRFVDd3dRa0ZCTUVJN096czdlVUpCUTNKRExHTkJRV003T3pzN01FSkJRMklzWlVGQlpUczdPenMyUWtGRFdpeHJRa0ZCYTBJN096czdNa0pCUTNCQ0xHZENRVUZuUWpzN096dEJRVVZzUXl4VFFVRlRMSE5DUVVGelFpeERRVUZETEZGQlFWRXNSVUZCUlR0QlFVTXZReXg1UTBGQk1rSXNVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkRja01zTWtKQlFXRXNVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkRka0lzYjBOQlFYTkNMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRMmhETEhsQ1FVRlhMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRM0pDTERCQ1FVRlpMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRM1JDTERaQ1FVRmxMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRM3BDTERKQ1FVRmhMRkZCUVZFc1EwRkJReXhEUVVGRE8wTkJRM2hDT3p0QlFVVk5MRk5CUVZNc2FVSkJRV2xDTEVOQlFVTXNVVUZCVVN4RlFVRkZMRlZCUVZVc1JVRkJSU3hWUVVGVkxFVkJRVVU3UVVGRGJFVXNUVUZCU1N4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTzBGQlEyaERMRmxCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dEJRVU14UkN4UlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRk8wRkJRMllzWVVGQlR5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wdEJRM0pETzBkQlEwWTdRMEZEUmlJc0ltWnBiR1VpT2lKb1pXeHdaWEp6TG1weklpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElISmxaMmx6ZEdWeVFteHZZMnRJWld4d1pYSk5hWE56YVc1bklHWnliMjBnSnk0dmFHVnNjR1Z5Y3k5aWJHOWpheTFvWld4d1pYSXRiV2x6YzJsdVp5YzdYRzVwYlhCdmNuUWdjbVZuYVhOMFpYSkZZV05vSUdaeWIyMGdKeTR2YUdWc2NHVnljeTlsWVdOb0p6dGNibWx0Y0c5eWRDQnlaV2RwYzNSbGNraGxiSEJsY2sxcGMzTnBibWNnWm5KdmJTQW5MaTlvWld4d1pYSnpMMmhsYkhCbGNpMXRhWE56YVc1bkp6dGNibWx0Y0c5eWRDQnlaV2RwYzNSbGNrbG1JR1p5YjIwZ0p5NHZhR1ZzY0dWeWN5OXBaaWM3WEc1cGJYQnZjblFnY21WbmFYTjBaWEpNYjJjZ1puSnZiU0FuTGk5b1pXeHdaWEp6TDJ4dlp5YzdYRzVwYlhCdmNuUWdjbVZuYVhOMFpYSk1iMjlyZFhBZ1puSnZiU0FuTGk5b1pXeHdaWEp6TDJ4dmIydDFjQ2M3WEc1cGJYQnZjblFnY21WbmFYTjBaWEpYYVhSb0lHWnliMjBnSnk0dmFHVnNjR1Z5Y3k5M2FYUm9KenRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhKbFoybHpkR1Z5UkdWbVlYVnNkRWhsYkhCbGNuTW9hVzV6ZEdGdVkyVXBJSHRjYmlBZ2NtVm5hWE4wWlhKQ2JHOWphMGhsYkhCbGNrMXBjM05wYm1jb2FXNXpkR0Z1WTJVcE8xeHVJQ0J5WldkcGMzUmxja1ZoWTJnb2FXNXpkR0Z1WTJVcE8xeHVJQ0J5WldkcGMzUmxja2hsYkhCbGNrMXBjM05wYm1jb2FXNXpkR0Z1WTJVcE8xeHVJQ0J5WldkcGMzUmxja2xtS0dsdWMzUmhibU5sS1R0Y2JpQWdjbVZuYVhOMFpYSk1iMmNvYVc1emRHRnVZMlVwTzF4dUlDQnlaV2RwYzNSbGNreHZiMnQxY0NocGJuTjBZVzVqWlNrN1hHNGdJSEpsWjJsemRHVnlWMmwwYUNocGJuTjBZVzVqWlNrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ0YjNabFNHVnNjR1Z5Vkc5SWIyOXJjeWhwYm5OMFlXNWpaU3dnYUdWc2NHVnlUbUZ0WlN3Z2EyVmxjRWhsYkhCbGNpa2dlMXh1SUNCcFppQW9hVzV6ZEdGdVkyVXVhR1ZzY0dWeWMxdG9aV3h3WlhKT1lXMWxYU2tnZTF4dUlDQWdJR2x1YzNSaGJtTmxMbWh2YjJ0elcyaGxiSEJsY2s1aGJXVmRJRDBnYVc1emRHRnVZMlV1YUdWc2NHVnljMXRvWld4d1pYSk9ZVzFsWFR0Y2JpQWdJQ0JwWmlBb0lXdGxaWEJJWld4d1pYSXBJSHRjYmlBZ0lDQWdJR1JsYkdWMFpTQnBibk4wWVc1alpTNW9aV3h3WlhKelcyaGxiSEJsY2s1aGJXVmRPMXh1SUNBZ0lIMWNiaUFnZlZ4dWZWeHVJbDE5XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscycpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJEZWNvcmF0b3IoJ2lubGluZScsIGZ1bmN0aW9uIChmbiwgcHJvcHMsIGNvbnRhaW5lciwgb3B0aW9ucykge1xuICAgIHZhciByZXQgPSBmbjtcbiAgICBpZiAoIXByb3BzLnBhcnRpYWxzKSB7XG4gICAgICBwcm9wcy5wYXJ0aWFscyA9IHt9O1xuICAgICAgcmV0ID0gZnVuY3Rpb24gKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHBhcnRpYWxzIHN0YWNrIGZyYW1lIHByaW9yIHRvIGV4ZWMuXG4gICAgICAgIHZhciBvcmlnaW5hbCA9IGNvbnRhaW5lci5wYXJ0aWFscztcbiAgICAgICAgY29udGFpbmVyLnBhcnRpYWxzID0gX3V0aWxzLmV4dGVuZCh7fSwgb3JpZ2luYWwsIHByb3BzLnBhcnRpYWxzKTtcbiAgICAgICAgdmFyIHJldCA9IGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBvcmlnaW5hbDtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMucGFydGlhbHNbb3B0aW9ucy5hcmdzWzBdXSA9IG9wdGlvbnMuZm47XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwyeHBZaTlvWVc1a2JHVmlZWEp6TDJSbFkyOXlZWFJ2Y25NdmFXNXNhVzVsTG1weklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN096czdjVUpCUVhWQ0xGVkJRVlU3TzNGQ1FVVnNRaXhWUVVGVExGRkJRVkVzUlVGQlJUdEJRVU5vUXl4VlFVRlJMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNVVUZCVVN4RlFVRkZMRlZCUVZNc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeFRRVUZUTEVWQlFVVXNUMEZCVHl4RlFVRkZPMEZCUXpORkxGRkJRVWtzUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXp0QlFVTmlMRkZCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeEZRVUZGTzBGQlEyNUNMRmRCUVVzc1EwRkJReXhSUVVGUkxFZEJRVWNzUlVGQlJTeERRVUZETzBGQlEzQkNMRk5CUVVjc1IwRkJSeXhWUVVGVExFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlFVVTdPMEZCUlM5Q0xGbEJRVWtzVVVGQlVTeEhRVUZITEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNN1FVRkRiRU1zYVVKQlFWTXNRMEZCUXl4UlFVRlJMRWRCUVVjc1kwRkJUeXhGUVVGRkxFVkJRVVVzVVVGQlVTeEZRVUZGTEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVNeFJDeFpRVUZKTEVkQlFVY3NSMEZCUnl4RlFVRkZMRU5CUVVNc1QwRkJUeXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzBGQlF5OUNMR2xDUVVGVExFTkJRVU1zVVVGQlVTeEhRVUZITEZGQlFWRXNRMEZCUXp0QlFVTTVRaXhsUVVGUExFZEJRVWNzUTBGQlF6dFBRVU5hTEVOQlFVTTdTMEZEU0RzN1FVRkZSQ3hUUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRPenRCUVVVM1F5eFhRVUZQTEVkQlFVY3NRMEZCUXp0SFFVTmFMRU5CUVVNc1EwRkJRenREUVVOS0lpd2labWxzWlNJNkltbHViR2x1WlM1cWN5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJR1Y0ZEdWdVpDQjlJR1p5YjIwZ0p5NHVMM1YwYVd4ekp6dGNibHh1Wlhod2IzSjBJR1JsWm1GMWJIUWdablZ1WTNScGIyNG9hVzV6ZEdGdVkyVXBJSHRjYmlBZ2FXNXpkR0Z1WTJVdWNtVm5hWE4wWlhKRVpXTnZjbUYwYjNJb0oybHViR2x1WlNjc0lHWjFibU4wYVc5dUtHWnVMQ0J3Y205d2N5d2dZMjl1ZEdGcGJtVnlMQ0J2Y0hScGIyNXpLU0I3WEc0Z0lDQWdiR1YwSUhKbGRDQTlJR1p1TzF4dUlDQWdJR2xtSUNnaGNISnZjSE11Y0dGeWRHbGhiSE1wSUh0Y2JpQWdJQ0FnSUhCeWIzQnpMbkJoY25ScFlXeHpJRDBnZTMwN1hHNGdJQ0FnSUNCeVpYUWdQU0JtZFc1amRHbHZiaWhqYjI1MFpYaDBMQ0J2Y0hScGIyNXpLU0I3WEc0Z0lDQWdJQ0FnSUM4dklFTnlaV0YwWlNCaElHNWxkeUJ3WVhKMGFXRnNjeUJ6ZEdGamF5Qm1jbUZ0WlNCd2NtbHZjaUIwYnlCbGVHVmpMbHh1SUNBZ0lDQWdJQ0JzWlhRZ2IzSnBaMmx1WVd3Z1BTQmpiMjUwWVdsdVpYSXVjR0Z5ZEdsaGJITTdYRzRnSUNBZ0lDQWdJR052Ym5SaGFXNWxjaTV3WVhKMGFXRnNjeUE5SUdWNGRHVnVaQ2g3ZlN3Z2IzSnBaMmx1WVd3c0lIQnliM0J6TG5CaGNuUnBZV3h6S1R0Y2JpQWdJQ0FnSUNBZ2JHVjBJSEpsZENBOUlHWnVLR052Ym5SbGVIUXNJRzl3ZEdsdmJuTXBPMXh1SUNBZ0lDQWdJQ0JqYjI1MFlXbHVaWEl1Y0dGeWRHbGhiSE1nUFNCdmNtbG5hVzVoYkR0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhKbGREdGNiaUFnSUNBZ0lIMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NISnZjSE11Y0dGeWRHbGhiSE5iYjNCMGFXOXVjeTVoY21keld6QmRYU0E5SUc5d2RHbHZibk11Wm00N1hHNWNiaUFnSUNCeVpYUjFjbTRnY21WME8xeHVJQ0I5S1R0Y2JuMWNiaUpkZlE9PVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5yZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzID0gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycztcbi8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9kZWNvcmF0b3JzSW5saW5lID0gcmVxdWlyZSgnLi9kZWNvcmF0b3JzL2lubGluZScpO1xuXG52YXIgX2RlY29yYXRvcnNJbmxpbmUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZGVjb3JhdG9yc0lubGluZSk7XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnMoaW5zdGFuY2UpIHtcbiAgX2RlY29yYXRvcnNJbmxpbmUyWydkZWZhdWx0J10oaW5zdGFuY2UpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDJ4cFlpOW9ZVzVrYkdWaVlYSnpMMlJsWTI5eVlYUnZjbk11YW5NaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3WjBOQlFUSkNMSEZDUVVGeFFqczdPenRCUVVWNlF5eFRRVUZUTEhsQ1FVRjVRaXhEUVVGRExGRkJRVkVzUlVGQlJUdEJRVU5zUkN4blEwRkJaU3hSUVVGUkxFTkJRVU1zUTBGQlF6dERRVU14UWlJc0ltWnBiR1VpT2lKa1pXTnZjbUYwYjNKekxtcHpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSEpsWjJsemRHVnlTVzVzYVc1bElHWnliMjBnSnk0dlpHVmpiM0poZEc5eWN5OXBibXhwYm1Vbk8xeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbVZuYVhOMFpYSkVaV1poZFd4MFJHVmpiM0poZEc5eWN5aHBibk4wWVc1alpTa2dlMXh1SUNCeVpXZHBjM1JsY2tsdWJHbHVaU2hwYm5OMFlXNWpaU2s3WEc1OVhHNGlYWDA9XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG5cbnZhciBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbiBsb29rdXBMZXZlbChsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YXIgbGV2ZWxNYXAgPSBfdXRpbHMuaW5kZXhPZihsb2dnZXIubWV0aG9kTWFwLCBsZXZlbC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGlmIChsZXZlbE1hcCA+PSAwKSB7XG4gICAgICAgIGxldmVsID0gbGV2ZWxNYXA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXZlbCA9IHBhcnNlSW50KGxldmVsLCAxMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxldmVsO1xuICB9LFxuXG4gIC8vIENhbiBiZSBvdmVycmlkZGVuIGluIHRoZSBob3N0IGVudmlyb25tZW50XG4gIGxvZzogZnVuY3Rpb24gbG9nKGxldmVsKSB7XG4gICAgbGV2ZWwgPSBsb2dnZXIubG9va3VwTGV2ZWwobGV2ZWwpO1xuXG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJiBsb2dnZXIubG9va3VwTGV2ZWwobG9nZ2VyLmxldmVsKSA8PSBsZXZlbCkge1xuICAgICAgdmFyIG1ldGhvZCA9IGxvZ2dlci5tZXRob2RNYXBbbGV2ZWxdO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGlmICghY29uc29sZVttZXRob2RdKSB7XG4gICAgICAgIG1ldGhvZCA9ICdsb2cnO1xuICAgICAgfVxuXG4gICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgbWVzc2FnZSA9IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgbWVzc2FnZVtfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICB9XG5cbiAgICAgIGNvbnNvbGVbbWV0aG9kXS5hcHBseShjb25zb2xlLCBtZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBsb2dnZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUwyeHBZaTlvWVc1a2JHVmlZWEp6TDJ4dloyZGxjaTVxY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN08zRkNRVUYzUWl4VFFVRlRPenRCUVVWcVF5eEpRVUZKTEUxQlFVMHNSMEZCUnp0QlFVTllMRmRCUVZNc1JVRkJSU3hEUVVGRExFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRTlCUVU4c1EwRkJRenRCUVVNM1F5eFBRVUZMTEVWQlFVVXNUVUZCVFRzN08wRkJSMklzWVVGQlZ5eEZRVUZGTEhGQ1FVRlRMRXRCUVVzc1JVRkJSVHRCUVVNelFpeFJRVUZKTEU5QlFVOHNTMEZCU3l4TFFVRkxMRkZCUVZFc1JVRkJSVHRCUVVNM1FpeFZRVUZKTEZGQlFWRXNSMEZCUnl4bFFVRlJMRTFCUVUwc1EwRkJReXhUUVVGVExFVkJRVVVzUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRPVVFzVlVGQlNTeFJRVUZSTEVsQlFVa3NRMEZCUXl4RlFVRkZPMEZCUTJwQ0xHRkJRVXNzUjBGQlJ5eFJRVUZSTEVOQlFVTTdUMEZEYkVJc1RVRkJUVHRCUVVOTUxHRkJRVXNzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8wOUJRemRDTzB0QlEwWTdPMEZCUlVRc1YwRkJUeXhMUVVGTExFTkJRVU03UjBGRFpEczdPMEZCUjBRc1MwRkJSeXhGUVVGRkxHRkJRVk1zUzBGQlN5eEZRVUZqTzBGQlF5OUNMRk5CUVVzc1IwRkJSeXhOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPenRCUVVWc1F5eFJRVU5GTEU5QlFVOHNUMEZCVHl4TFFVRkxMRmRCUVZjc1NVRkRPVUlzVFVGQlRTeERRVUZETEZkQlFWY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUzBGQlN5eEZRVU42UXp0QlFVTkJMRlZCUVVrc1RVRkJUU3hIUVVGSExFMUJRVTBzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN08wRkJSWEpETEZWQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVU3UVVGRGNFSXNZMEZCVFN4SFFVRkhMRXRCUVVzc1EwRkJRenRQUVVOb1FqczdkME5CV0cxQ0xFOUJRVTg3UVVGQlVDeGxRVUZQT3pzN1FVRlpNMElzWVVGQlR5eERRVUZETEUxQlFVMHNUMEZCUXl4RFFVRm1MRTlCUVU4c1JVRkJXU3hQUVVGUExFTkJRVU1zUTBGQlF6dExRVU0zUWp0SFFVTkdPME5CUTBZc1EwRkJRenM3Y1VKQlJXRXNUVUZCVFNJc0ltWnBiR1VpT2lKc2IyZG5aWEl1YW5NaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QnBibVJsZUU5bUlIMGdabkp2YlNBbkxpOTFkR2xzY3ljN1hHNWNibXhsZENCc2IyZG5aWElnUFNCN1hHNGdJRzFsZEdodlpFMWhjRG9nV3lka1pXSjFaeWNzSUNkcGJtWnZKeXdnSjNkaGNtNG5MQ0FuWlhKeWIzSW5YU3hjYmlBZ2JHVjJaV3c2SUNkcGJtWnZKeXhjYmx4dUlDQXZMeUJOWVhCeklHRWdaMmwyWlc0Z2JHVjJaV3dnZG1Gc2RXVWdkRzhnZEdobElHQnRaWFJvYjJSTllYQmdJR2x1WkdWNFpYTWdZV0p2ZG1VdVhHNGdJR3h2YjJ0MWNFeGxkbVZzT2lCbWRXNWpkR2x2Ymloc1pYWmxiQ2tnZTF4dUlDQWdJR2xtSUNoMGVYQmxiMllnYkdWMlpXd2dQVDA5SUNkemRISnBibWNuS1NCN1hHNGdJQ0FnSUNCc1pYUWdiR1YyWld4TllYQWdQU0JwYm1SbGVFOW1LR3h2WjJkbGNpNXRaWFJvYjJSTllYQXNJR3hsZG1Wc0xuUnZURzkzWlhKRFlYTmxLQ2twTzF4dUlDQWdJQ0FnYVdZZ0tHeGxkbVZzVFdGd0lENDlJREFwSUh0Y2JpQWdJQ0FnSUNBZ2JHVjJaV3dnUFNCc1pYWmxiRTFoY0R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUd4bGRtVnNJRDBnY0dGeWMyVkpiblFvYkdWMlpXd3NJREV3S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdiR1YyWld3N1hHNGdJSDBzWEc1Y2JpQWdMeThnUTJGdUlHSmxJRzkyWlhKeWFXUmtaVzRnYVc0Z2RHaGxJR2h2YzNRZ1pXNTJhWEp2Ym0xbGJuUmNiaUFnYkc5bk9pQm1kVzVqZEdsdmJpaHNaWFpsYkN3Z0xpNHViV1Z6YzJGblpTa2dlMXh1SUNBZ0lHeGxkbVZzSUQwZ2JHOW5aMlZ5TG14dmIydDFjRXhsZG1Wc0tHeGxkbVZzS1R0Y2JseHVJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lIUjVjR1Z2WmlCamIyNXpiMnhsSUNFOVBTQW5kVzVrWldacGJtVmtKeUFtSmx4dUlDQWdJQ0FnYkc5bloyVnlMbXh2YjJ0MWNFeGxkbVZzS0d4dloyZGxjaTVzWlhabGJDa2dQRDBnYkdWMlpXeGNiaUFnSUNBcElIdGNiaUFnSUNBZ0lHeGxkQ0J0WlhSb2IyUWdQU0JzYjJkblpYSXViV1YwYUc5a1RXRndXMnhsZG1Wc1hUdGNiaUFnSUNBZ0lDOHZJR1Z6YkdsdWRDMWthWE5oWW14bExXNWxlSFF0YkdsdVpTQnVieTFqYjI1emIyeGxYRzRnSUNBZ0lDQnBaaUFvSVdOdmJuTnZiR1ZiYldWMGFHOWtYU2tnZTF4dUlDQWdJQ0FnSUNCdFpYUm9iMlFnUFNBbmJHOW5KenRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR052Ym5OdmJHVmJiV1YwYUc5a1hTZ3VMaTV0WlhOellXZGxLVHNnTHk4Z1pYTnNhVzUwTFdScGMyRmliR1V0YkdsdVpTQnVieTFqYjI1emIyeGxYRzRnSUNBZ2ZWeHVJQ0I5WEc1OU8xeHVYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQnNiMmRuWlhJN1hHNGlYWDA9XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmNyZWF0ZU5ld0xvb2t1cE9iamVjdCA9IGNyZWF0ZU5ld0xvb2t1cE9iamVjdDtcblxudmFyIF91dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzJyk7XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IG9iamVjdCB3aXRoIFwibnVsbFwiLXByb3RvdHlwZSB0byBhdm9pZCB0cnV0aHkgcmVzdWx0cyBvbiBwcm90b3R5cGUgcHJvcGVydGllcy5cbiAqIFRoZSByZXN1bHRpbmcgb2JqZWN0IGNhbiBiZSB1c2VkIHdpdGggXCJvYmplY3RbcHJvcGVydHldXCIgdG8gY2hlY2sgaWYgYSBwcm9wZXJ0eSBleGlzdHNcbiAqIEBwYXJhbSB7Li4ub2JqZWN0fSBzb3VyY2VzIGEgdmFyYXJncyBwYXJhbWV0ZXIgb2Ygc291cmNlIG9iamVjdHMgdGhhdCB3aWxsIGJlIG1lcmdlZFxuICogQHJldHVybnMge29iamVjdH1cbiAqL1xuXG5mdW5jdGlvbiBjcmVhdGVOZXdMb29rdXBPYmplY3QoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBzb3VyY2VzID0gQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgc291cmNlc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIHJldHVybiBfdXRpbHMuZXh0ZW5kLmFwcGx5KHVuZGVmaW5lZCwgW09iamVjdC5jcmVhdGUobnVsbCldLmNvbmNhdChzb3VyY2VzKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDJ4cFlpOW9ZVzVrYkdWaVlYSnpMMmx1ZEdWeWJtRnNMMk55WldGMFpTMXVaWGN0Ykc5dmEzVndMVzlpYW1WamRDNXFjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3p0eFFrRkJkVUlzVlVGQlZUczdPenM3T3pzN08wRkJVVEZDTEZOQlFWTXNjVUpCUVhGQ0xFZEJRV0U3YjBOQlFWUXNUMEZCVHp0QlFVRlFMRmRCUVU4N096dEJRVU01UXl4VFFVRlBMR2REUVVGUExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVVzc1QwRkJUeXhGUVVGRExFTkJRVU03UTBGRGFFUWlMQ0ptYVd4bElqb2lZM0psWVhSbExXNWxkeTFzYjI5cmRYQXRiMkpxWldOMExtcHpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnWlhoMFpXNWtJSDBnWm5KdmJTQW5MaTR2ZFhScGJITW5PMXh1WEc0dktpcGNiaUFxSUVOeVpXRjBaU0JoSUc1bGR5QnZZbXBsWTNRZ2QybDBhQ0JjSW01MWJHeGNJaTF3Y205MGIzUjVjR1VnZEc4Z1lYWnZhV1FnZEhKMWRHaDVJSEpsYzNWc2RITWdiMjRnY0hKdmRHOTBlWEJsSUhCeWIzQmxjblJwWlhNdVhHNGdLaUJVYUdVZ2NtVnpkV3gwYVc1bklHOWlhbVZqZENCallXNGdZbVVnZFhObFpDQjNhWFJvSUZ3aWIySnFaV04wVzNCeWIzQmxjblI1WFZ3aUlIUnZJR05vWldOcklHbG1JR0VnY0hKdmNHVnlkSGtnWlhocGMzUnpYRzRnS2lCQWNHRnlZVzBnZXk0dUxtOWlhbVZqZEgwZ2MyOTFjbU5sY3lCaElIWmhjbUZ5WjNNZ2NHRnlZVzFsZEdWeUlHOW1JSE52ZFhKalpTQnZZbXBsWTNSeklIUm9ZWFFnZDJsc2JDQmlaU0J0WlhKblpXUmNiaUFxSUVCeVpYUjFjbTV6SUh0dlltcGxZM1I5WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmpjbVZoZEdWT1pYZE1iMjlyZFhCUFltcGxZM1FvTGk0dWMyOTFjbU5sY3lrZ2UxeHVJQ0J5WlhSMWNtNGdaWGgwWlc1a0tFOWlhbVZqZEM1amNtVmhkR1VvYm5Wc2JDa3NJQzR1TG5OdmRYSmpaWE1wTzF4dWZWeHVJbDE5XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbCA9IGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbDtcbmV4cG9ydHMucmVzdWx0SXNBbGxvd2VkID0gcmVzdWx0SXNBbGxvd2VkO1xuZXhwb3J0cy5yZXNldExvZ2dlZFByb3BlcnRpZXMgPSByZXNldExvZ2dlZFByb3BlcnRpZXM7XG4vLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGVsc2UgeyB2YXIgbmV3T2JqID0ge307IGlmIChvYmogIT0gbnVsbCkgeyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gbmV3T2JqWydkZWZhdWx0J10gPSBvYmo7IHJldHVybiBuZXdPYmo7IH0gfVxuXG52YXIgX2NyZWF0ZU5ld0xvb2t1cE9iamVjdCA9IHJlcXVpcmUoJy4vY3JlYXRlLW5ldy1sb29rdXAtb2JqZWN0Jyk7XG5cbnZhciBfbG9nZ2VyID0gcmVxdWlyZSgnLi4vbG9nZ2VyJyk7XG5cbnZhciBsb2dnZXIgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChfbG9nZ2VyKTtcblxudmFyIGxvZ2dlZFByb3BlcnRpZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG5mdW5jdGlvbiBjcmVhdGVQcm90b0FjY2Vzc0NvbnRyb2wocnVudGltZU9wdGlvbnMpIHtcbiAgdmFyIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3QgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0Wydjb25zdHJ1Y3RvciddID0gZmFsc2U7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ19fZGVmaW5lR2V0dGVyX18nXSA9IGZhbHNlO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0WydfX2RlZmluZVNldHRlcl9fJ10gPSBmYWxzZTtcbiAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdFsnX19sb29rdXBHZXR0ZXJfXyddID0gZmFsc2U7XG5cbiAgdmFyIGRlZmF1bHRQcm9wZXJ0eVdoaXRlTGlzdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b1xuICBkZWZhdWx0UHJvcGVydHlXaGl0ZUxpc3RbJ19fcHJvdG9fXyddID0gZmFsc2U7XG5cbiAgcmV0dXJuIHtcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICB3aGl0ZWxpc3Q6IF9jcmVhdGVOZXdMb29rdXBPYmplY3QuY3JlYXRlTmV3TG9va3VwT2JqZWN0KGRlZmF1bHRQcm9wZXJ0eVdoaXRlTGlzdCwgcnVudGltZU9wdGlvbnMuYWxsb3dlZFByb3RvUHJvcGVydGllcyksXG4gICAgICBkZWZhdWx0VmFsdWU6IHJ1bnRpbWVPcHRpb25zLmFsbG93UHJvdG9Qcm9wZXJ0aWVzQnlEZWZhdWx0XG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICB3aGl0ZWxpc3Q6IF9jcmVhdGVOZXdMb29rdXBPYmplY3QuY3JlYXRlTmV3TG9va3VwT2JqZWN0KGRlZmF1bHRNZXRob2RXaGl0ZUxpc3QsIHJ1bnRpbWVPcHRpb25zLmFsbG93ZWRQcm90b01ldGhvZHMpLFxuICAgICAgZGVmYXVsdFZhbHVlOiBydW50aW1lT3B0aW9ucy5hbGxvd1Byb3RvTWV0aG9kc0J5RGVmYXVsdFxuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gcmVzdWx0SXNBbGxvd2VkKHJlc3VsdCwgcHJvdG9BY2Nlc3NDb250cm9sLCBwcm9wZXJ0eU5hbWUpIHtcbiAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sLm1ldGhvZHMsIHByb3BlcnR5TmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNoZWNrV2hpdGVMaXN0KHByb3RvQWNjZXNzQ29udHJvbC5wcm9wZXJ0aWVzLCBwcm9wZXJ0eU5hbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrV2hpdGVMaXN0KHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUsIHByb3BlcnR5TmFtZSkge1xuICBpZiAocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS53aGl0ZWxpc3RbcHJvcGVydHlOYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUud2hpdGVsaXN0W3Byb3BlcnR5TmFtZV0gPT09IHRydWU7XG4gIH1cbiAgaWYgKHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS5kZWZhdWx0VmFsdWU7XG4gIH1cbiAgbG9nVW5leHBlY2VkUHJvcGVydHlBY2Nlc3NPbmNlKHByb3BlcnR5TmFtZSk7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gbG9nVW5leHBlY2VkUHJvcGVydHlBY2Nlc3NPbmNlKHByb3BlcnR5TmFtZSkge1xuICBpZiAobG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdICE9PSB0cnVlKSB7XG4gICAgbG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdID0gdHJ1ZTtcbiAgICBsb2dnZXIubG9nKCdlcnJvcicsICdIYW5kbGViYXJzOiBBY2Nlc3MgaGFzIGJlZW4gZGVuaWVkIHRvIHJlc29sdmUgdGhlIHByb3BlcnR5IFwiJyArIHByb3BlcnR5TmFtZSArICdcIiBiZWNhdXNlIGl0IGlzIG5vdCBhbiBcIm93biBwcm9wZXJ0eVwiIG9mIGl0cyBwYXJlbnQuXFxuJyArICdZb3UgY2FuIGFkZCBhIHJ1bnRpbWUgb3B0aW9uIHRvIGRpc2FibGUgdGhlIGNoZWNrIG9yIHRoaXMgd2FybmluZzpcXG4nICsgJ1NlZSBodHRwczovL2hhbmRsZWJhcnNqcy5jb20vYXBpLXJlZmVyZW5jZS9ydW50aW1lLW9wdGlvbnMuaHRtbCNvcHRpb25zLXRvLWNvbnRyb2wtcHJvdG90eXBlLWFjY2VzcyBmb3IgZGV0YWlscycpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc2V0TG9nZ2VkUHJvcGVydGllcygpIHtcbiAgT2JqZWN0LmtleXMobG9nZ2VkUHJvcGVydGllcykuZm9yRWFjaChmdW5jdGlvbiAocHJvcGVydHlOYW1lKSB7XG4gICAgZGVsZXRlIGxvZ2dlZFByb3BlcnRpZXNbcHJvcGVydHlOYW1lXTtcbiAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDJ4cFlpOW9ZVzVrYkdWaVlYSnpMMmx1ZEdWeWJtRnNMM0J5YjNSdkxXRmpZMlZ6Y3k1cWN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN08zRkRRVUZ6UXl3MFFrRkJORUk3TzNOQ1FVTXhReXhYUVVGWE96dEpRVUYyUWl4TlFVRk5PenRCUVVWc1FpeEpRVUZOTEdkQ1FVRm5RaXhIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN08wRkJSWFJETEZOQlFWTXNkMEpCUVhkQ0xFTkJRVU1zWTBGQll5eEZRVUZGTzBGQlEzWkVMRTFCUVVrc2MwSkJRWE5DTEVkQlFVY3NUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU5xUkN4M1FrRkJjMElzUTBGQlF5eGhRVUZoTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNN1FVRkRPVU1zZDBKQlFYTkNMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNN1FVRkRia1FzZDBKQlFYTkNMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNN1FVRkRia1FzZDBKQlFYTkNMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNN08wRkJSVzVFTEUxQlFVa3NkMEpCUVhkQ0xFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenM3UVVGRmJrUXNNRUpCUVhkQ0xFTkJRVU1zVjBGQlZ5eERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRPenRCUVVVNVF5eFRRVUZQTzBGQlEwd3NZMEZCVlN4RlFVRkZPMEZCUTFZc1pVRkJVeXhGUVVGRkxEWkRRVU5VTEhkQ1FVRjNRaXhGUVVONFFpeGpRVUZqTEVOQlFVTXNjMEpCUVhOQ0xFTkJRM1JETzBGQlEwUXNhMEpCUVZrc1JVRkJSU3hqUVVGakxFTkJRVU1zTmtKQlFUWkNPMHRCUXpORU8wRkJRMFFzVjBGQlR5eEZRVUZGTzBGQlExQXNaVUZCVXl4RlFVRkZMRFpEUVVOVUxITkNRVUZ6UWl4RlFVTjBRaXhqUVVGakxFTkJRVU1zYlVKQlFXMUNMRU5CUTI1RE8wRkJRMFFzYTBKQlFWa3NSVUZCUlN4alFVRmpMRU5CUVVNc01FSkJRVEJDTzB0QlEzaEVPMGRCUTBZc1EwRkJRenREUVVOSU96dEJRVVZOTEZOQlFWTXNaVUZCWlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4WlFVRlpMRVZCUVVVN1FVRkRlRVVzVFVGQlNTeFBRVUZQTEUxQlFVMHNTMEZCU3l4VlFVRlZMRVZCUVVVN1FVRkRhRU1zVjBGQlR5eGpRVUZqTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVDBGQlR5eEZRVUZGTEZsQlFWa3NRMEZCUXl4RFFVRkRPMGRCUTJwRkxFMUJRVTA3UVVGRFRDeFhRVUZQTEdOQlFXTXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eFZRVUZWTEVWQlFVVXNXVUZCV1N4RFFVRkRMRU5CUVVNN1IwRkRjRVU3UTBGRFJqczdRVUZGUkN4VFFVRlRMR05CUVdNc1EwRkJReXg1UWtGQmVVSXNSVUZCUlN4WlFVRlpMRVZCUVVVN1FVRkRMMFFzVFVGQlNTeDVRa0ZCZVVJc1EwRkJReXhUUVVGVExFTkJRVU1zV1VGQldTeERRVUZETEV0QlFVc3NVMEZCVXl4RlFVRkZPMEZCUTI1RkxGZEJRVThzZVVKQlFYbENMRU5CUVVNc1UwRkJVeXhEUVVGRExGbEJRVmtzUTBGQlF5eExRVUZMTEVsQlFVa3NRMEZCUXp0SFFVTnVSVHRCUVVORUxFMUJRVWtzZVVKQlFYbENMRU5CUVVNc1dVRkJXU3hMUVVGTExGTkJRVk1zUlVGQlJUdEJRVU40UkN4WFFVRlBMSGxDUVVGNVFpeERRVUZETEZsQlFWa3NRMEZCUXp0SFFVTXZRenRCUVVORUxHZERRVUU0UWl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8wRkJRemRETEZOQlFVOHNTMEZCU3l4RFFVRkRPME5CUTJRN08wRkJSVVFzVTBGQlV5dzRRa0ZCT0VJc1EwRkJReXhaUVVGWkxFVkJRVVU3UVVGRGNFUXNUVUZCU1N4blFrRkJaMElzUTBGQlF5eFpRVUZaTEVOQlFVTXNTMEZCU3l4SlFVRkpMRVZCUVVVN1FVRkRNME1zYjBKQlFXZENMRU5CUVVNc1dVRkJXU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETzBGQlEzUkRMRlZCUVUwc1EwRkJReXhIUVVGSExFTkJRMUlzVDBGQlR5eEZRVU5RTEdsRlFVRXJSQ3haUVVGWkxHOUpRVU5JTEc5SVFVTXlReXhEUVVOd1NDeERRVUZETzBkQlEwZzdRMEZEUmpzN1FVRkZUU3hUUVVGVExIRkNRVUZ4UWl4SFFVRkhPMEZCUTNSRExGRkJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCUVN4WlFVRlpMRVZCUVVrN1FVRkRjRVFzVjBGQlR5eG5Ra0ZCWjBJc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dEhRVU4yUXl4RFFVRkRMRU5CUVVNN1EwRkRTaUlzSW1acGJHVWlPaUp3Y205MGJ5MWhZMk5sYzNNdWFuTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJqY21WaGRHVk9aWGRNYjI5cmRYQlBZbXBsWTNRZ2ZTQm1jbTl0SUNjdUwyTnlaV0YwWlMxdVpYY3RiRzl2YTNWd0xXOWlhbVZqZENjN1hHNXBiWEJ2Y25RZ0tpQmhjeUJzYjJkblpYSWdabkp2YlNBbkxpNHZiRzluWjJWeUp6dGNibHh1WTI5dWMzUWdiRzluWjJWa1VISnZjR1Z5ZEdsbGN5QTlJRTlpYW1WamRDNWpjbVZoZEdVb2JuVnNiQ2s3WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCamNtVmhkR1ZRY205MGIwRmpZMlZ6YzBOdmJuUnliMndvY25WdWRHbHRaVTl3ZEdsdmJuTXBJSHRjYmlBZ2JHVjBJR1JsWm1GMWJIUk5aWFJvYjJSWGFHbDBaVXhwYzNRZ1BTQlBZbXBsWTNRdVkzSmxZWFJsS0c1MWJHd3BPMXh1SUNCa1pXWmhkV3gwVFdWMGFHOWtWMmhwZEdWTWFYTjBXeWRqYjI1emRISjFZM1J2Y2lkZElEMGdabUZzYzJVN1hHNGdJR1JsWm1GMWJIUk5aWFJvYjJSWGFHbDBaVXhwYzNSYkoxOWZaR1ZtYVc1bFIyVjBkR1Z5WDE4blhTQTlJR1poYkhObE8xeHVJQ0JrWldaaGRXeDBUV1YwYUc5a1YyaHBkR1ZNYVhOMFd5ZGZYMlJsWm1sdVpWTmxkSFJsY2w5ZkoxMGdQU0JtWVd4elpUdGNiaUFnWkdWbVlYVnNkRTFsZEdodlpGZG9hWFJsVEdsemRGc25YMTlzYjI5cmRYQkhaWFIwWlhKZlh5ZGRJRDBnWm1Gc2MyVTdYRzVjYmlBZ2JHVjBJR1JsWm1GMWJIUlFjbTl3WlhKMGVWZG9hWFJsVEdsemRDQTlJRTlpYW1WamRDNWpjbVZoZEdVb2JuVnNiQ2s3WEc0Z0lDOHZJR1Z6YkdsdWRDMWthWE5oWW14bExXNWxlSFF0YkdsdVpTQnVieTF3Y205MGIxeHVJQ0JrWldaaGRXeDBVSEp2Y0dWeWRIbFhhR2wwWlV4cGMzUmJKMTlmY0hKdmRHOWZYeWRkSUQwZ1ptRnNjMlU3WEc1Y2JpQWdjbVYwZFhKdUlIdGNiaUFnSUNCd2NtOXdaWEowYVdWek9pQjdYRzRnSUNBZ0lDQjNhR2wwWld4cGMzUTZJR055WldGMFpVNWxkMHh2YjJ0MWNFOWlhbVZqZENoY2JpQWdJQ0FnSUNBZ1pHVm1ZWFZzZEZCeWIzQmxjblI1VjJocGRHVk1hWE4wTEZ4dUlDQWdJQ0FnSUNCeWRXNTBhVzFsVDNCMGFXOXVjeTVoYkd4dmQyVmtVSEp2ZEc5UWNtOXdaWEowYVdWelhHNGdJQ0FnSUNBcExGeHVJQ0FnSUNBZ1pHVm1ZWFZzZEZaaGJIVmxPaUJ5ZFc1MGFXMWxUM0IwYVc5dWN5NWhiR3h2ZDFCeWIzUnZVSEp2Y0dWeWRHbGxjMEo1UkdWbVlYVnNkRnh1SUNBZ0lIMHNYRzRnSUNBZ2JXVjBhRzlrY3pvZ2UxeHVJQ0FnSUNBZ2QyaHBkR1ZzYVhOME9pQmpjbVZoZEdWT1pYZE1iMjlyZFhCUFltcGxZM1FvWEc0Z0lDQWdJQ0FnSUdSbFptRjFiSFJOWlhSb2IyUlhhR2wwWlV4cGMzUXNYRzRnSUNBZ0lDQWdJSEoxYm5ScGJXVlBjSFJwYjI1ekxtRnNiRzkzWldSUWNtOTBiMDFsZEdodlpITmNiaUFnSUNBZ0lDa3NYRzRnSUNBZ0lDQmtaV1poZFd4MFZtRnNkV1U2SUhKMWJuUnBiV1ZQY0hScGIyNXpMbUZzYkc5M1VISnZkRzlOWlhSb2IyUnpRbmxFWldaaGRXeDBYRzRnSUNBZ2ZWeHVJQ0I5TzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbVZ6ZFd4MFNYTkJiR3h2ZDJWa0tISmxjM1ZzZEN3Z2NISnZkRzlCWTJObGMzTkRiMjUwY205c0xDQndjbTl3WlhKMGVVNWhiV1VwSUh0Y2JpQWdhV1lnS0hSNWNHVnZaaUJ5WlhOMWJIUWdQVDA5SUNkbWRXNWpkR2x2YmljcElIdGNiaUFnSUNCeVpYUjFjbTRnWTJobFkydFhhR2wwWlV4cGMzUW9jSEp2ZEc5QlkyTmxjM05EYjI1MGNtOXNMbTFsZEdodlpITXNJSEJ5YjNCbGNuUjVUbUZ0WlNrN1hHNGdJSDBnWld4elpTQjdYRzRnSUNBZ2NtVjBkWEp1SUdOb1pXTnJWMmhwZEdWTWFYTjBLSEJ5YjNSdlFXTmpaWE56UTI5dWRISnZiQzV3Y205d1pYSjBhV1Z6TENCd2NtOXdaWEowZVU1aGJXVXBPMXh1SUNCOVhHNTlYRzVjYm1aMWJtTjBhVzl1SUdOb1pXTnJWMmhwZEdWTWFYTjBLSEJ5YjNSdlFXTmpaWE56UTI5dWRISnZiRVp2Y2xSNWNHVXNJSEJ5YjNCbGNuUjVUbUZ0WlNrZ2UxeHVJQ0JwWmlBb2NISnZkRzlCWTJObGMzTkRiMjUwY205c1JtOXlWSGx3WlM1M2FHbDBaV3hwYzNSYmNISnZjR1Z5ZEhsT1lXMWxYU0FoUFQwZ2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhCeWIzUnZRV05qWlhOelEyOXVkSEp2YkVadmNsUjVjR1V1ZDJocGRHVnNhWE4wVzNCeWIzQmxjblI1VG1GdFpWMGdQVDA5SUhSeWRXVTdYRzRnSUgxY2JpQWdhV1lnS0hCeWIzUnZRV05qWlhOelEyOXVkSEp2YkVadmNsUjVjR1V1WkdWbVlYVnNkRlpoYkhWbElDRTlQU0IxYm1SbFptbHVaV1FwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdjSEp2ZEc5QlkyTmxjM05EYjI1MGNtOXNSbTl5Vkhsd1pTNWtaV1poZFd4MFZtRnNkV1U3WEc0Z0lIMWNiaUFnYkc5blZXNWxlSEJsWTJWa1VISnZjR1Z5ZEhsQlkyTmxjM05QYm1ObEtIQnliM0JsY25SNVRtRnRaU2s3WEc0Z0lISmxkSFZ5YmlCbVlXeHpaVHRjYm4xY2JseHVablZ1WTNScGIyNGdiRzluVlc1bGVIQmxZMlZrVUhKdmNHVnlkSGxCWTJObGMzTlBibU5sS0hCeWIzQmxjblI1VG1GdFpTa2dlMXh1SUNCcFppQW9iRzluWjJWa1VISnZjR1Z5ZEdsbGMxdHdjbTl3WlhKMGVVNWhiV1ZkSUNFOVBTQjBjblZsS1NCN1hHNGdJQ0FnYkc5bloyVmtVSEp2Y0dWeWRHbGxjMXR3Y205d1pYSjBlVTVoYldWZElEMGdkSEoxWlR0Y2JpQWdJQ0JzYjJkblpYSXViRzluS0Z4dUlDQWdJQ0FnSjJWeWNtOXlKeXhjYmlBZ0lDQWdJR0JJWVc1a2JHVmlZWEp6T2lCQlkyTmxjM01nYUdGeklHSmxaVzRnWkdWdWFXVmtJSFJ2SUhKbGMyOXNkbVVnZEdobElIQnliM0JsY25SNUlGd2lKSHR3Y205d1pYSjBlVTVoYldWOVhDSWdZbVZqWVhWelpTQnBkQ0JwY3lCdWIzUWdZVzRnWENKdmQyNGdjSEp2Y0dWeWRIbGNJaUJ2WmlCcGRITWdjR0Z5Wlc1MExseGNibUFnSzF4dUlDQWdJQ0FnSUNCZ1dXOTFJR05oYmlCaFpHUWdZU0J5ZFc1MGFXMWxJRzl3ZEdsdmJpQjBieUJrYVhOaFlteGxJSFJvWlNCamFHVmpheUJ2Y2lCMGFHbHpJSGRoY201cGJtYzZYRnh1WUNBclhHNGdJQ0FnSUNBZ0lHQlRaV1VnYUhSMGNITTZMeTlvWVc1a2JHVmlZWEp6YW5NdVkyOXRMMkZ3YVMxeVpXWmxjbVZ1WTJVdmNuVnVkR2x0WlMxdmNIUnBiMjV6TG1oMGJXd2piM0IwYVc5dWN5MTBieTFqYjI1MGNtOXNMWEJ5YjNSdmRIbHdaUzFoWTJObGMzTWdabTl5SUdSbGRHRnBiSE5nWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY21WelpYUk1iMmRuWldSUWNtOXdaWEowYVdWektDa2dlMXh1SUNCUFltcGxZM1F1YTJWNWN5aHNiMmRuWldSUWNtOXdaWEowYVdWektTNW1iM0pGWVdOb0tIQnliM0JsY25SNVRtRnRaU0E5UGlCN1hHNGdJQ0FnWkdWc1pYUmxJR3h2WjJkbFpGQnliM0JsY25ScFpYTmJjSEp2Y0dWeWRIbE9ZVzFsWFR0Y2JpQWdmU2s3WEc1OVhHNGlYWDA9XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLkhhbmRsZWJhcnNFbnZpcm9ubWVudCA9IEhhbmRsZWJhcnNFbnZpcm9ubWVudDtcbi8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF91dGlscyA9IHJlcXVpcmUoJy4vdXRpbHMnKTtcblxudmFyIF9leGNlcHRpb24gPSByZXF1aXJlKCcuL2V4Y2VwdGlvbicpO1xuXG52YXIgX2V4Y2VwdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9leGNlcHRpb24pO1xuXG52YXIgX2hlbHBlcnMgPSByZXF1aXJlKCcuL2hlbHBlcnMnKTtcblxudmFyIF9kZWNvcmF0b3JzID0gcmVxdWlyZSgnLi9kZWNvcmF0b3JzJyk7XG5cbnZhciBfbG9nZ2VyID0gcmVxdWlyZSgnLi9sb2dnZXInKTtcblxudmFyIF9sb2dnZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbG9nZ2VyKTtcblxudmFyIF9pbnRlcm5hbFByb3RvQWNjZXNzID0gcmVxdWlyZSgnLi9pbnRlcm5hbC9wcm90by1hY2Nlc3MnKTtcblxudmFyIFZFUlNJT04gPSAnNC43LjYnO1xuZXhwb3J0cy5WRVJTSU9OID0gVkVSU0lPTjtcbnZhciBDT01QSUxFUl9SRVZJU0lPTiA9IDg7XG5leHBvcnRzLkNPTVBJTEVSX1JFVklTSU9OID0gQ09NUElMRVJfUkVWSVNJT047XG52YXIgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0cy5MQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04gPSBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT047XG52YXIgUkVWSVNJT05fQ0hBTkdFUyA9IHtcbiAgMTogJzw9IDEuMC5yYy4yJywgLy8gMS4wLnJjLjIgaXMgYWN0dWFsbHkgcmV2MiBidXQgZG9lc24ndCByZXBvcnQgaXRcbiAgMjogJz09IDEuMC4wLXJjLjMnLFxuICAzOiAnPT0gMS4wLjAtcmMuNCcsXG4gIDQ6ICc9PSAxLngueCcsXG4gIDU6ICc9PSAyLjAuMC1hbHBoYS54JyxcbiAgNjogJz49IDIuMC4wLWJldGEuMScsXG4gIDc6ICc+PSA0LjAuMCA8NC4zLjAnLFxuICA4OiAnPj0gNC4zLjAnXG59O1xuXG5leHBvcnRzLlJFVklTSU9OX0NIQU5HRVMgPSBSRVZJU0lPTl9DSEFOR0VTO1xudmFyIG9iamVjdFR5cGUgPSAnW29iamVjdCBPYmplY3RdJztcblxuZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICBfaGVscGVycy5yZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICBfZGVjb3JhdG9ycy5yZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogX2xvZ2dlcjJbJ2RlZmF1bHQnXSxcbiAgbG9nOiBfbG9nZ2VyMlsnZGVmYXVsdCddLmxvZyxcblxuICByZWdpc3RlckhlbHBlcjogZnVuY3Rpb24gcmVnaXN0ZXJIZWxwZXIobmFtZSwgZm4pIHtcbiAgICBpZiAoX3V0aWxzLnRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikge1xuICAgICAgICB0aHJvdyBuZXcgX2V4Y2VwdGlvbjJbJ2RlZmF1bHQnXSgnQXJnIG5vdCBzdXBwb3J0ZWQgd2l0aCBtdWx0aXBsZSBoZWxwZXJzJyk7XG4gICAgICB9XG4gICAgICBfdXRpbHMuZXh0ZW5kKHRoaXMuaGVscGVycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGVscGVyc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckhlbHBlcjogZnVuY3Rpb24gdW5yZWdpc3RlckhlbHBlcihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMuaGVscGVyc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uIHJlZ2lzdGVyUGFydGlhbChuYW1lLCBwYXJ0aWFsKSB7XG4gICAgaWYgKF91dGlscy50b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBfdXRpbHMuZXh0ZW5kKHRoaXMucGFydGlhbHMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIHBhcnRpYWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRocm93IG5ldyBfZXhjZXB0aW9uMlsnZGVmYXVsdCddKCdBdHRlbXB0aW5nIHRvIHJlZ2lzdGVyIGEgcGFydGlhbCBjYWxsZWQgXCInICsgbmFtZSArICdcIiBhcyB1bmRlZmluZWQnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uIHVucmVnaXN0ZXJQYXJ0aWFsKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24gcmVnaXN0ZXJEZWNvcmF0b3IobmFtZSwgZm4pIHtcbiAgICBpZiAoX3V0aWxzLnRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikge1xuICAgICAgICB0aHJvdyBuZXcgX2V4Y2VwdGlvbjJbJ2RlZmF1bHQnXSgnQXJnIG5vdCBzdXBwb3J0ZWQgd2l0aCBtdWx0aXBsZSBkZWNvcmF0b3JzJyk7XG4gICAgICB9XG4gICAgICBfdXRpbHMuZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24gdW5yZWdpc3RlckRlY29yYXRvcihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMuZGVjb3JhdG9yc1tuYW1lXTtcbiAgfSxcbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBtZW1vcnkgb2YgaWxsZWdhbCBwcm9wZXJ0eSBhY2Nlc3NlcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIGxvZ2dlZC5cbiAgICogQGRlcHJlY2F0ZWQgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbiBoYW5kbGViYXJzIHRlc3QtY2FzZXNcbiAgICovXG4gIHJlc2V0TG9nZ2VkUHJvcGVydHlBY2Nlc3NlczogZnVuY3Rpb24gcmVzZXRMb2dnZWRQcm9wZXJ0eUFjY2Vzc2VzKCkge1xuICAgIF9pbnRlcm5hbFByb3RvQWNjZXNzLnJlc2V0TG9nZ2VkUHJvcGVydGllcygpO1xuICB9XG59O1xuXG52YXIgbG9nID0gX2xvZ2dlcjJbJ2RlZmF1bHQnXS5sb2c7XG5cbmV4cG9ydHMubG9nID0gbG9nO1xuZXhwb3J0cy5jcmVhdGVGcmFtZSA9IF91dGlscy5jcmVhdGVGcmFtZTtcbmV4cG9ydHMubG9nZ2VyID0gX2xvZ2dlcjJbJ2RlZmF1bHQnXTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUwyeHBZaTlvWVc1a2JHVmlZWEp6TDJKaGMyVXVhbk1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdjVUpCUVRoRExGTkJRVk03TzNsQ1FVTnFReXhoUVVGaE96czdPM1ZDUVVOSkxGZEJRVmM3T3pCQ1FVTlNMR05CUVdNN08zTkNRVU55UXl4VlFVRlZPenM3TzIxRFFVTlRMSGxDUVVGNVFqczdRVUZGZUVRc1NVRkJUU3hQUVVGUExFZEJRVWNzVDBGQlR5eERRVUZET3p0QlFVTjRRaXhKUVVGTkxHbENRVUZwUWl4SFFVRkhMRU5CUVVNc1EwRkJRenM3UVVGRE5VSXNTVUZCVFN4cFEwRkJhVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdPenRCUVVVMVF5eEpRVUZOTEdkQ1FVRm5RaXhIUVVGSE8wRkJRemxDTEVkQlFVTXNSVUZCUlN4aFFVRmhPMEZCUTJoQ0xFZEJRVU1zUlVGQlJTeGxRVUZsTzBGQlEyeENMRWRCUVVNc1JVRkJSU3hsUVVGbE8wRkJRMnhDTEVkQlFVTXNSVUZCUlN4VlFVRlZPMEZCUTJJc1IwRkJReXhGUVVGRkxHdENRVUZyUWp0QlFVTnlRaXhIUVVGRExFVkJRVVVzYVVKQlFXbENPMEZCUTNCQ0xFZEJRVU1zUlVGQlJTeHBRa0ZCYVVJN1FVRkRjRUlzUjBGQlF5eEZRVUZGTEZWQlFWVTdRMEZEWkN4RFFVRkRPenM3UVVGRlJpeEpRVUZOTEZWQlFWVXNSMEZCUnl4cFFrRkJhVUlzUTBGQlF6czdRVUZGT1VJc1UwRkJVeXh4UWtGQmNVSXNRMEZCUXl4UFFVRlBMRVZCUVVVc1VVRkJVU3hGUVVGRkxGVkJRVlVzUlVGQlJUdEJRVU51UlN4TlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFOUJRVThzU1VGQlNTeEZRVUZGTEVOQlFVTTdRVUZETjBJc1RVRkJTU3hEUVVGRExGRkJRVkVzUjBGQlJ5eFJRVUZSTEVsQlFVa3NSVUZCUlN4RFFVRkRPMEZCUXk5Q0xFMUJRVWtzUTBGQlF5eFZRVUZWTEVkQlFVY3NWVUZCVlN4SlFVRkpMRVZCUVVVc1EwRkJRenM3UVVGRmJrTXNhME5CUVhWQ0xFbEJRVWtzUTBGQlF5eERRVUZETzBGQlF6ZENMSGREUVVFd1FpeEpRVUZKTEVOQlFVTXNRMEZCUXp0RFFVTnFRenM3UVVGRlJDeHhRa0ZCY1VJc1EwRkJReXhUUVVGVExFZEJRVWM3UVVGRGFFTXNZVUZCVnl4RlFVRkZMSEZDUVVGeFFqczdRVUZGYkVNc1VVRkJUU3h4UWtGQlVUdEJRVU5rTEV0QlFVY3NSVUZCUlN4dlFrRkJUeXhIUVVGSE96dEJRVVZtTEdkQ1FVRmpMRVZCUVVVc2QwSkJRVk1zU1VGQlNTeEZRVUZGTEVWQlFVVXNSVUZCUlR0QlFVTnFReXhSUVVGSkxHZENRVUZUTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhWUVVGVkxFVkJRVVU3UVVGRGRFTXNWVUZCU1N4RlFVRkZMRVZCUVVVN1FVRkRUaXhqUVVGTkxESkNRVUZqTEhsRFFVRjVReXhEUVVGRExFTkJRVU03VDBGRGFFVTdRVUZEUkN4dlFrRkJUeXhKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMHRCUXpWQ0xFMUJRVTA3UVVGRFRDeFZRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dExRVU42UWp0SFFVTkdPMEZCUTBRc2EwSkJRV2RDTEVWQlFVVXNNRUpCUVZNc1NVRkJTU3hGUVVGRk8wRkJReTlDTEZkQlFVOHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEhRVU16UWpzN1FVRkZSQ3hwUWtGQlpTeEZRVUZGTEhsQ1FVRlRMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVU3UVVGRGRrTXNVVUZCU1N4blFrRkJVeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NWVUZCVlN4RlFVRkZPMEZCUTNSRExHOUNRVUZQTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRE4wSXNUVUZCVFR0QlFVTk1MRlZCUVVrc1QwRkJUeXhQUVVGUExFdEJRVXNzVjBGQlZ5eEZRVUZGTzBGQlEyeERMR05CUVUwc2VVVkJRM2RETEVsQlFVa3NiMEpCUTJwRUxFTkJRVU03VDBGRFNEdEJRVU5FTEZWQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETzB0QlF5OUNPMGRCUTBZN1FVRkRSQ3h0UWtGQmFVSXNSVUZCUlN3eVFrRkJVeXhKUVVGSkxFVkJRVVU3UVVGRGFFTXNWMEZCVHl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBkQlF6VkNPenRCUVVWRUxHMUNRVUZwUWl4RlFVRkZMREpDUVVGVExFbEJRVWtzUlVGQlJTeEZRVUZGTEVWQlFVVTdRVUZEY0VNc1VVRkJTU3huUWtGQlV5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1ZVRkJWU3hGUVVGRk8wRkJRM1JETEZWQlFVa3NSVUZCUlN4RlFVRkZPMEZCUTA0c1kwRkJUU3d5UWtGQll5dzBRMEZCTkVNc1EwRkJReXhEUVVGRE8wOUJRMjVGTzBGQlEwUXNiMEpCUVU4c1NVRkJTU3hEUVVGRExGVkJRVlVzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0TFFVTXZRaXhOUVVGTk8wRkJRMHdzVlVGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03UzBGRE5VSTdSMEZEUmp0QlFVTkVMSEZDUVVGdFFpeEZRVUZGTERaQ1FVRlRMRWxCUVVrc1JVRkJSVHRCUVVOc1F5eFhRVUZQTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UjBGRE9VSTdPenM3TzBGQlMwUXNOa0pCUVRKQ0xFVkJRVUVzZFVOQlFVYzdRVUZETlVJc1owUkJRWFZDTEVOQlFVTTdSMEZEZWtJN1EwRkRSaXhEUVVGRE96dEJRVVZMTEVsQlFVa3NSMEZCUnl4SFFVRkhMRzlDUVVGUExFZEJRVWNzUTBGQlF6czdPMUZCUlc1Q0xGZEJRVmM3VVVGQlJTeE5RVUZOSWl3aVptbHNaU0k2SW1KaGMyVXVhbk1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZXlCamNtVmhkR1ZHY21GdFpTd2daWGgwWlc1a0xDQjBiMU4wY21sdVp5QjlJR1p5YjIwZ0p5NHZkWFJwYkhNbk8xeHVhVzF3YjNKMElFVjRZMlZ3ZEdsdmJpQm1jbTl0SUNjdUwyVjRZMlZ3ZEdsdmJpYzdYRzVwYlhCdmNuUWdleUJ5WldkcGMzUmxja1JsWm1GMWJIUklaV3h3WlhKeklIMGdabkp2YlNBbkxpOW9aV3h3WlhKekp6dGNibWx0Y0c5eWRDQjdJSEpsWjJsemRHVnlSR1ZtWVhWc2RFUmxZMjl5WVhSdmNuTWdmU0JtY205dElDY3VMMlJsWTI5eVlYUnZjbk1uTzF4dWFXMXdiM0owSUd4dloyZGxjaUJtY205dElDY3VMMnh2WjJkbGNpYzdYRzVwYlhCdmNuUWdleUJ5WlhObGRFeHZaMmRsWkZCeWIzQmxjblJwWlhNZ2ZTQm1jbTl0SUNjdUwybHVkR1Z5Ym1Gc0wzQnliM1J2TFdGalkyVnpjeWM3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JXUlZKVFNVOU9JRDBnSnpRdU55NDJKenRjYm1WNGNHOXlkQ0JqYjI1emRDQkRUMDFRU1V4RlVsOVNSVlpKVTBsUFRpQTlJRGc3WEc1bGVIQnZjblFnWTI5dWMzUWdURUZUVkY5RFQwMVFRVlJKUWt4RlgwTlBUVkJKVEVWU1gxSkZWa2xUU1U5T0lEMGdOenRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRkpGVmtsVFNVOU9YME5JUVU1SFJWTWdQU0I3WEc0Z0lERTZJQ2M4UFNBeExqQXVjbU11TWljc0lDOHZJREV1TUM1eVl5NHlJR2x6SUdGamRIVmhiR3g1SUhKbGRqSWdZblYwSUdSdlpYTnVKM1FnY21Wd2IzSjBJR2wwWEc0Z0lESTZJQ2M5UFNBeExqQXVNQzF5WXk0ekp5eGNiaUFnTXpvZ0p6MDlJREV1TUM0d0xYSmpMalFuTEZ4dUlDQTBPaUFuUFQwZ01TNTRMbmduTEZ4dUlDQTFPaUFuUFQwZ01pNHdMakF0WVd4d2FHRXVlQ2NzWEc0Z0lEWTZJQ2MrUFNBeUxqQXVNQzFpWlhSaExqRW5MRnh1SUNBM09pQW5QajBnTkM0d0xqQWdQRFF1TXk0d0p5eGNiaUFnT0RvZ0p6NDlJRFF1TXk0d0oxeHVmVHRjYmx4dVkyOXVjM1FnYjJKcVpXTjBWSGx3WlNBOUlDZGJiMkpxWldOMElFOWlhbVZqZEYwbk8xeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdTR0Z1Wkd4bFltRnljMFZ1ZG1seWIyNXRaVzUwS0dobGJIQmxjbk1zSUhCaGNuUnBZV3h6TENCa1pXTnZjbUYwYjNKektTQjdYRzRnSUhSb2FYTXVhR1ZzY0dWeWN5QTlJR2hsYkhCbGNuTWdmSHdnZTMwN1hHNGdJSFJvYVhNdWNHRnlkR2xoYkhNZ1BTQndZWEowYVdGc2N5QjhmQ0I3ZlR0Y2JpQWdkR2hwY3k1a1pXTnZjbUYwYjNKeklEMGdaR1ZqYjNKaGRHOXljeUI4ZkNCN2ZUdGNibHh1SUNCeVpXZHBjM1JsY2tSbFptRjFiSFJJWld4d1pYSnpLSFJvYVhNcE8xeHVJQ0J5WldkcGMzUmxja1JsWm1GMWJIUkVaV052Y21GMGIzSnpLSFJvYVhNcE8xeHVmVnh1WEc1SVlXNWtiR1ZpWVhKelJXNTJhWEp2Ym0xbGJuUXVjSEp2ZEc5MGVYQmxJRDBnZTF4dUlDQmpiMjV6ZEhKMVkzUnZjam9nU0dGdVpHeGxZbUZ5YzBWdWRtbHliMjV0Wlc1MExGeHVYRzRnSUd4dloyZGxjam9nYkc5bloyVnlMRnh1SUNCc2IyYzZJR3h2WjJkbGNpNXNiMmNzWEc1Y2JpQWdjbVZuYVhOMFpYSklaV3h3WlhJNklHWjFibU4wYVc5dUtHNWhiV1VzSUdadUtTQjdYRzRnSUNBZ2FXWWdLSFJ2VTNSeWFXNW5MbU5oYkd3b2JtRnRaU2tnUFQwOUlHOWlhbVZqZEZSNWNHVXBJSHRjYmlBZ0lDQWdJR2xtSUNobWJpa2dlMXh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhoalpYQjBhVzl1S0NkQmNtY2dibTkwSUhOMWNIQnZjblJsWkNCM2FYUm9JRzExYkhScGNHeGxJR2hsYkhCbGNuTW5LVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR1Y0ZEdWdVpDaDBhR2x6TG1obGJIQmxjbk1zSUc1aGJXVXBPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCMGFHbHpMbWhsYkhCbGNuTmJibUZ0WlYwZ1BTQm1ianRjYmlBZ0lDQjlYRzRnSUgwc1hHNGdJSFZ1Y21WbmFYTjBaWEpJWld4d1pYSTZJR1oxYm1OMGFXOXVLRzVoYldVcElIdGNiaUFnSUNCa1pXeGxkR1VnZEdocGN5NW9aV3h3WlhKelcyNWhiV1ZkTzF4dUlDQjlMRnh1WEc0Z0lISmxaMmx6ZEdWeVVHRnlkR2xoYkRvZ1puVnVZM1JwYjI0b2JtRnRaU3dnY0dGeWRHbGhiQ2tnZTF4dUlDQWdJR2xtSUNoMGIxTjBjbWx1Wnk1allXeHNLRzVoYldVcElEMDlQU0J2WW1wbFkzUlVlWEJsS1NCN1hHNGdJQ0FnSUNCbGVIUmxibVFvZEdocGN5NXdZWEowYVdGc2N5d2dibUZ0WlNrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR2xtSUNoMGVYQmxiMllnY0dGeWRHbGhiQ0E5UFQwZ0ozVnVaR1ZtYVc1bFpDY3BJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWNFkyVndkR2x2YmloY2JpQWdJQ0FnSUNBZ0lDQmdRWFIwWlcxd2RHbHVaeUIwYnlCeVpXZHBjM1JsY2lCaElIQmhjblJwWVd3Z1kyRnNiR1ZrSUZ3aUpIdHVZVzFsZlZ3aUlHRnpJSFZ1WkdWbWFXNWxaR0JjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhSb2FYTXVjR0Z5ZEdsaGJITmJibUZ0WlYwZ1BTQndZWEowYVdGc08xeHVJQ0FnSUgxY2JpQWdmU3hjYmlBZ2RXNXlaV2RwYzNSbGNsQmhjblJwWVd3NklHWjFibU4wYVc5dUtHNWhiV1VwSUh0Y2JpQWdJQ0JrWld4bGRHVWdkR2hwY3k1d1lYSjBhV0ZzYzF0dVlXMWxYVHRjYmlBZ2ZTeGNibHh1SUNCeVpXZHBjM1JsY2tSbFkyOXlZWFJ2Y2pvZ1puVnVZM1JwYjI0b2JtRnRaU3dnWm00cElIdGNiaUFnSUNCcFppQW9kRzlUZEhKcGJtY3VZMkZzYkNodVlXMWxLU0E5UFQwZ2IySnFaV04wVkhsd1pTa2dlMXh1SUNBZ0lDQWdhV1lnS0dadUtTQjdYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGZUdObGNIUnBiMjRvSjBGeVp5QnViM1FnYzNWd2NHOXlkR1ZrSUhkcGRHZ2diWFZzZEdsd2JHVWdaR1ZqYjNKaGRHOXljeWNwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnWlhoMFpXNWtLSFJvYVhNdVpHVmpiM0poZEc5eWN5d2dibUZ0WlNrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSFJvYVhNdVpHVmpiM0poZEc5eWMxdHVZVzFsWFNBOUlHWnVPMXh1SUNBZ0lIMWNiaUFnZlN4Y2JpQWdkVzV5WldkcGMzUmxja1JsWTI5eVlYUnZjam9nWm5WdVkzUnBiMjRvYm1GdFpTa2dlMXh1SUNBZ0lHUmxiR1YwWlNCMGFHbHpMbVJsWTI5eVlYUnZjbk5iYm1GdFpWMDdYRzRnSUgwc1hHNGdJQzhxS2x4dUlDQWdLaUJTWlhObGRDQjBhR1VnYldWdGIzSjVJRzltSUdsc2JHVm5ZV3dnY0hKdmNHVnlkSGtnWVdOalpYTnpaWE1nZEdoaGRDQm9ZWFpsSUdGc2NtVmhaSGtnWW1WbGJpQnNiMmRuWldRdVhHNGdJQ0FxSUVCa1pYQnlaV05oZEdWa0lITm9iM1ZzWkNCdmJteDVJR0psSUhWelpXUWdhVzRnYUdGdVpHeGxZbUZ5Y3lCMFpYTjBMV05oYzJWelhHNGdJQ0FxTDF4dUlDQnlaWE5sZEV4dloyZGxaRkJ5YjNCbGNuUjVRV05qWlhOelpYTW9LU0I3WEc0Z0lDQWdjbVZ6WlhSTWIyZG5aV1JRY205d1pYSjBhV1Z6S0NrN1hHNGdJSDFjYm4wN1hHNWNibVY0Y0c5eWRDQnNaWFFnYkc5bklEMGdiRzluWjJWeUxteHZaenRjYmx4dVpYaHdiM0owSUhzZ1kzSmxZWFJsUm5KaGJXVXNJR3h2WjJkbGNpQjlPMXh1SWwxOVxuIiwiLy8gQnVpbGQgb3V0IG91ciBiYXNpYyBTYWZlU3RyaW5nIHR5cGVcbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmZ1bmN0aW9uIFNhZmVTdHJpbmcoc3RyaW5nKSB7XG4gIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xufVxuXG5TYWZlU3RyaW5nLnByb3RvdHlwZS50b1N0cmluZyA9IFNhZmVTdHJpbmcucHJvdG90eXBlLnRvSFRNTCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICcnICsgdGhpcy5zdHJpbmc7XG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBTYWZlU3RyaW5nO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMMnhwWWk5b1lXNWtiR1ZpWVhKekwzTmhabVV0YzNSeWFXNW5MbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN1FVRkRRU3hUUVVGVExGVkJRVlVzUTBGQlF5eE5RVUZOTEVWQlFVVTdRVUZETVVJc1RVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eE5RVUZOTEVOQlFVTTdRMEZEZEVJN08wRkJSVVFzVlVGQlZTeERRVUZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRWRCUVVjc1ZVRkJWU3hEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVkQlFVY3NXVUZCVnp0QlFVTjJSU3hUUVVGUExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRPME5CUTNwQ0xFTkJRVU03TzNGQ1FVVmhMRlZCUVZVaUxDSm1hV3hsSWpvaWMyRm1aUzF6ZEhKcGJtY3Vhbk1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdkx5QkNkV2xzWkNCdmRYUWdiM1Z5SUdKaGMybGpJRk5oWm1WVGRISnBibWNnZEhsd1pWeHVablZ1WTNScGIyNGdVMkZtWlZOMGNtbHVaeWh6ZEhKcGJtY3BJSHRjYmlBZ2RHaHBjeTV6ZEhKcGJtY2dQU0J6ZEhKcGJtYzdYRzU5WEc1Y2JsTmhabVZUZEhKcGJtY3VjSEp2ZEc5MGVYQmxMblJ2VTNSeWFXNW5JRDBnVTJGbVpWTjBjbWx1Wnk1d2NtOTBiM1I1Y0dVdWRHOUlWRTFNSUQwZ1puVnVZM1JwYjI0b0tTQjdYRzRnSUhKbGRIVnliaUFuSnlBcklIUm9hWE11YzNSeWFXNW5PMXh1ZlR0Y2JseHVaWGh3YjNKMElHUmxabUYxYkhRZ1UyRm1aVk4wY21sdVp6dGNiaUpkZlE9PVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy53cmFwSGVscGVyID0gd3JhcEhlbHBlcjtcblxuZnVuY3Rpb24gd3JhcEhlbHBlcihoZWxwZXIsIHRyYW5zZm9ybU9wdGlvbnNGbikge1xuICBpZiAodHlwZW9mIGhlbHBlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4sIGJ1dCBhcHBhcmVudGx5IGl0IGRvZXMgaW4gaHR0cHM6Ly9naXRodWIuY29tL3d5Y2F0cy9oYW5kbGViYXJzLmpzL2lzc3Vlcy8xNjM5XG4gICAgLy8gV2UgdHJ5IHRvIG1ha2UgdGhlIHdyYXBwZXIgbGVhc3QtaW52YXNpdmUgYnkgbm90IHdyYXBwaW5nIGl0LCBpZiB0aGUgaGVscGVyIGlzIG5vdCBhIGZ1bmN0aW9uLlxuICAgIHJldHVybiBoZWxwZXI7XG4gIH1cbiAgdmFyIHdyYXBwZXIgPSBmdW5jdGlvbiB3cmFwcGVyKCkgLyogZHluYW1pYyBhcmd1bWVudHMgKi97XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdO1xuICAgIGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV0gPSB0cmFuc2Zvcm1PcHRpb25zRm4ob3B0aW9ucyk7XG4gICAgcmV0dXJuIGhlbHBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xuICByZXR1cm4gd3JhcHBlcjtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMMnhwWWk5b1lXNWtiR1ZpWVhKekwybHVkR1Z5Ym1Gc0wzZHlZWEJJWld4d1pYSXVhbk1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN1FVRkJUeXhUUVVGVExGVkJRVlVzUTBGQlF5eE5RVUZOTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVU3UVVGRGNrUXNUVUZCU1N4UFFVRlBMRTFCUVUwc1MwRkJTeXhWUVVGVkxFVkJRVVU3T3p0QlFVZG9ReXhYUVVGUExFMUJRVTBzUTBGQlF6dEhRVU5tTzBGQlEwUXNUVUZCU1N4UFFVRlBMRWRCUVVjc1UwRkJWaXhQUVVGUExEQkNRVUZ4UXp0QlFVTTVReXhSUVVGTkxFOUJRVThzUjBGQlJ5eFRRVUZUTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5vUkN4aFFVRlRMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4clFrRkJhMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTTVSQ3hYUVVGUExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8wZEJRM1JETEVOQlFVTTdRVUZEUml4VFFVRlBMRTlCUVU4c1EwRkJRenREUVVOb1FpSXNJbVpwYkdVaU9pSjNjbUZ3U0dWc2NHVnlMbXB6SWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaVpYaHdiM0owSUdaMWJtTjBhVzl1SUhkeVlYQklaV3h3WlhJb2FHVnNjR1Z5TENCMGNtRnVjMlp2Y20xUGNIUnBiMjV6Um00cElIdGNiaUFnYVdZZ0tIUjVjR1Z2WmlCb1pXeHdaWElnSVQwOUlDZG1kVzVqZEdsdmJpY3BJSHRjYmlBZ0lDQXZMeUJVYUdseklITm9iM1ZzWkNCdWIzUWdhR0Z3Y0dWdUxDQmlkWFFnWVhCd1lYSmxiblJzZVNCcGRDQmtiMlZ6SUdsdUlHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOTNlV05oZEhNdmFHRnVaR3hsWW1GeWN5NXFjeTlwYzNOMVpYTXZNVFl6T1Z4dUlDQWdJQzh2SUZkbElIUnllU0IwYnlCdFlXdGxJSFJvWlNCM2NtRndjR1Z5SUd4bFlYTjBMV2x1ZG1GemFYWmxJR0o1SUc1dmRDQjNjbUZ3Y0dsdVp5QnBkQ3dnYVdZZ2RHaGxJR2hsYkhCbGNpQnBjeUJ1YjNRZ1lTQm1kVzVqZEdsdmJpNWNiaUFnSUNCeVpYUjFjbTRnYUdWc2NHVnlPMXh1SUNCOVhHNGdJR3hsZENCM2NtRndjR1Z5SUQwZ1puVnVZM1JwYjI0b0x5b2daSGx1WVcxcFl5QmhjbWQxYldWdWRITWdLaThwSUh0Y2JpQWdJQ0JqYjI1emRDQnZjSFJwYjI1eklEMGdZWEpuZFcxbGJuUnpXMkZ5WjNWdFpXNTBjeTVzWlc1bmRHZ2dMU0F4WFR0Y2JpQWdJQ0JoY21kMWJXVnVkSE5iWVhKbmRXMWxiblJ6TG14bGJtZDBhQ0F0SURGZElEMGdkSEpoYm5ObWIzSnRUM0IwYVc5dWMwWnVLRzl3ZEdsdmJuTXBPMXh1SUNBZ0lISmxkSFZ5YmlCb1pXeHdaWEl1WVhCd2JIa29kR2hwY3l3Z1lYSm5kVzFsYm5SektUdGNiaUFnZlR0Y2JpQWdjbVYwZFhKdUlIZHlZWEJ3WlhJN1hHNTlYRzRpWFgwPVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5jaGVja1JldmlzaW9uID0gY2hlY2tSZXZpc2lvbjtcbmV4cG9ydHMudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbmV4cG9ydHMud3JhcFByb2dyYW0gPSB3cmFwUHJvZ3JhbTtcbmV4cG9ydHMucmVzb2x2ZVBhcnRpYWwgPSByZXNvbHZlUGFydGlhbDtcbmV4cG9ydHMuaW52b2tlUGFydGlhbCA9IGludm9rZVBhcnRpYWw7XG5leHBvcnRzLm5vb3AgPSBub29wO1xuLy8gaXN0YW5idWwgaWdub3JlIG5leHRcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG4vLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGVsc2UgeyB2YXIgbmV3T2JqID0ge307IGlmIChvYmogIT0gbnVsbCkgeyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gbmV3T2JqWydkZWZhdWx0J10gPSBvYmo7IHJldHVybiBuZXdPYmo7IH0gfVxuXG52YXIgX3V0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xuXG52YXIgVXRpbHMgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChfdXRpbHMpO1xuXG52YXIgX2V4Y2VwdGlvbiA9IHJlcXVpcmUoJy4vZXhjZXB0aW9uJyk7XG5cbnZhciBfZXhjZXB0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2V4Y2VwdGlvbik7XG5cbnZhciBfYmFzZSA9IHJlcXVpcmUoJy4vYmFzZScpO1xuXG52YXIgX2hlbHBlcnMgPSByZXF1aXJlKCcuL2hlbHBlcnMnKTtcblxudmFyIF9pbnRlcm5hbFdyYXBIZWxwZXIgPSByZXF1aXJlKCcuL2ludGVybmFsL3dyYXBIZWxwZXInKTtcblxudmFyIF9pbnRlcm5hbFByb3RvQWNjZXNzID0gcmVxdWlyZSgnLi9pbnRlcm5hbC9wcm90by1hY2Nlc3MnKTtcblxuZnVuY3Rpb24gY2hlY2tSZXZpc2lvbihjb21waWxlckluZm8pIHtcbiAgdmFyIGNvbXBpbGVyUmV2aXNpb24gPSBjb21waWxlckluZm8gJiYgY29tcGlsZXJJbmZvWzBdIHx8IDEsXG4gICAgICBjdXJyZW50UmV2aXNpb24gPSBfYmFzZS5DT01QSUxFUl9SRVZJU0lPTjtcblxuICBpZiAoY29tcGlsZXJSZXZpc2lvbiA+PSBfYmFzZS5MQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04gJiYgY29tcGlsZXJSZXZpc2lvbiA8PSBfYmFzZS5DT01QSUxFUl9SRVZJU0lPTikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChjb21waWxlclJldmlzaW9uIDwgX2Jhc2UuTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OKSB7XG4gICAgdmFyIHJ1bnRpbWVWZXJzaW9ucyA9IF9iYXNlLlJFVklTSU9OX0NIQU5HRVNbY3VycmVudFJldmlzaW9uXSxcbiAgICAgICAgY29tcGlsZXJWZXJzaW9ucyA9IF9iYXNlLlJFVklTSU9OX0NIQU5HRVNbY29tcGlsZXJSZXZpc2lvbl07XG4gICAgdGhyb3cgbmV3IF9leGNlcHRpb24yWydkZWZhdWx0J10oJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGFuIG9sZGVyIHZlcnNpb24gb2YgSGFuZGxlYmFycyB0aGFuIHRoZSBjdXJyZW50IHJ1bnRpbWUuICcgKyAnUGxlYXNlIHVwZGF0ZSB5b3VyIHByZWNvbXBpbGVyIHRvIGEgbmV3ZXIgdmVyc2lvbiAoJyArIHJ1bnRpbWVWZXJzaW9ucyArICcpIG9yIGRvd25ncmFkZSB5b3VyIHJ1bnRpbWUgdG8gYW4gb2xkZXIgdmVyc2lvbiAoJyArIGNvbXBpbGVyVmVyc2lvbnMgKyAnKS4nKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBVc2UgdGhlIGVtYmVkZGVkIHZlcnNpb24gaW5mbyBzaW5jZSB0aGUgcnVudGltZSBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyByZXZpc2lvbiB5ZXRcbiAgICB0aHJvdyBuZXcgX2V4Y2VwdGlvbjJbJ2RlZmF1bHQnXSgnVGVtcGxhdGUgd2FzIHByZWNvbXBpbGVkIHdpdGggYSBuZXdlciB2ZXJzaW9uIG9mIEhhbmRsZWJhcnMgdGhhbiB0aGUgY3VycmVudCBydW50aW1lLiAnICsgJ1BsZWFzZSB1cGRhdGUgeW91ciBydW50aW1lIHRvIGEgbmV3ZXIgdmVyc2lvbiAoJyArIGNvbXBpbGVySW5mb1sxXSArICcpLicpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRlbXBsYXRlKHRlbXBsYXRlU3BlYywgZW52KSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmICghZW52KSB7XG4gICAgdGhyb3cgbmV3IF9leGNlcHRpb24yWydkZWZhdWx0J10oJ05vIGVudmlyb25tZW50IHBhc3NlZCB0byB0ZW1wbGF0ZScpO1xuICB9XG4gIGlmICghdGVtcGxhdGVTcGVjIHx8ICF0ZW1wbGF0ZVNwZWMubWFpbikge1xuICAgIHRocm93IG5ldyBfZXhjZXB0aW9uMlsnZGVmYXVsdCddKCdVbmtub3duIHRlbXBsYXRlIG9iamVjdDogJyArIHR5cGVvZiB0ZW1wbGF0ZVNwZWMpO1xuICB9XG5cbiAgdGVtcGxhdGVTcGVjLm1haW4uZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjLm1haW5fZDtcblxuICAvLyBOb3RlOiBVc2luZyBlbnYuVk0gcmVmZXJlbmNlcyByYXRoZXIgdGhhbiBsb2NhbCB2YXIgcmVmZXJlbmNlcyB0aHJvdWdob3V0IHRoaXMgc2VjdGlvbiB0byBhbGxvd1xuICAvLyBmb3IgZXh0ZXJuYWwgdXNlcnMgdG8gb3ZlcnJpZGUgdGhlc2UgYXMgcHNldWRvLXN1cHBvcnRlZCBBUElzLlxuICBlbnYuVk0uY2hlY2tSZXZpc2lvbih0ZW1wbGF0ZVNwZWMuY29tcGlsZXIpO1xuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBwcmVjb21waWxlZCB0ZW1wbGF0ZXMgd2l0aCBjb21waWxlci12ZXJzaW9uIDcgKDw0LjMuMClcbiAgdmFyIHRlbXBsYXRlV2FzUHJlY29tcGlsZWRXaXRoQ29tcGlsZXJWNyA9IHRlbXBsYXRlU3BlYy5jb21waWxlciAmJiB0ZW1wbGF0ZVNwZWMuY29tcGlsZXJbMF0gPT09IDc7XG5cbiAgZnVuY3Rpb24gaW52b2tlUGFydGlhbFdyYXBwZXIocGFydGlhbCwgY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICAgIGNvbnRleHQgPSBVdGlscy5leHRlbmQoe30sIGNvbnRleHQsIG9wdGlvbnMuaGFzaCk7XG4gICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgb3B0aW9ucy5pZHNbMF0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBwYXJ0aWFsID0gZW52LlZNLnJlc29sdmVQYXJ0aWFsLmNhbGwodGhpcywgcGFydGlhbCwgY29udGV4dCwgb3B0aW9ucyk7XG5cbiAgICB2YXIgZXh0ZW5kZWRPcHRpb25zID0gVXRpbHMuZXh0ZW5kKHt9LCBvcHRpb25zLCB7XG4gICAgICBob29rczogdGhpcy5ob29rcyxcbiAgICAgIHByb3RvQWNjZXNzQ29udHJvbDogdGhpcy5wcm90b0FjY2Vzc0NvbnRyb2xcbiAgICB9KTtcblxuICAgIHZhciByZXN1bHQgPSBlbnYuVk0uaW52b2tlUGFydGlhbC5jYWxsKHRoaXMsIHBhcnRpYWwsIGNvbnRleHQsIGV4dGVuZGVkT3B0aW9ucyk7XG5cbiAgICBpZiAocmVzdWx0ID09IG51bGwgJiYgZW52LmNvbXBpbGUpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXSA9IGVudi5jb21waWxlKHBhcnRpYWwsIHRlbXBsYXRlU3BlYy5jb21waWxlck9wdGlvbnMsIGVudik7XG4gICAgICByZXN1bHQgPSBvcHRpb25zLnBhcnRpYWxzW29wdGlvbnMubmFtZV0oY29udGV4dCwgZXh0ZW5kZWRPcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICBpZiAob3B0aW9ucy5pbmRlbnQpIHtcbiAgICAgICAgdmFyIGxpbmVzID0gcmVzdWx0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBsaW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBpZiAoIWxpbmVzW2ldICYmIGkgKyAxID09PSBsKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaW5lc1tpXSA9IG9wdGlvbnMuaW5kZW50ICsgbGluZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgX2V4Y2VwdGlvbjJbJ2RlZmF1bHQnXSgnVGhlIHBhcnRpYWwgJyArIG9wdGlvbnMubmFtZSArICcgY291bGQgbm90IGJlIGNvbXBpbGVkIHdoZW4gcnVubmluZyBpbiBydW50aW1lLW9ubHkgbW9kZScpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEp1c3QgYWRkIHdhdGVyXG4gIHZhciBjb250YWluZXIgPSB7XG4gICAgc3RyaWN0OiBmdW5jdGlvbiBzdHJpY3Qob2JqLCBuYW1lLCBsb2MpIHtcbiAgICAgIGlmICghb2JqIHx8ICEobmFtZSBpbiBvYmopKSB7XG4gICAgICAgIHRocm93IG5ldyBfZXhjZXB0aW9uMlsnZGVmYXVsdCddKCdcIicgKyBuYW1lICsgJ1wiIG5vdCBkZWZpbmVkIGluICcgKyBvYmosIHtcbiAgICAgICAgICBsb2M6IGxvY1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvYmpbbmFtZV07XG4gICAgfSxcbiAgICBsb29rdXBQcm9wZXJ0eTogZnVuY3Rpb24gbG9va3VwUHJvcGVydHkocGFyZW50LCBwcm9wZXJ0eU5hbWUpIHtcbiAgICAgIHZhciByZXN1bHQgPSBwYXJlbnRbcHJvcGVydHlOYW1lXTtcbiAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJlbnQsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgaWYgKF9pbnRlcm5hbFByb3RvQWNjZXNzLnJlc3VsdElzQWxsb3dlZChyZXN1bHQsIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSxcbiAgICBsb29rdXA6IGZ1bmN0aW9uIGxvb2t1cChkZXB0aHMsIG5hbWUpIHtcbiAgICAgIHZhciBsZW4gPSBkZXB0aHMubGVuZ3RoO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICB2YXIgcmVzdWx0ID0gZGVwdGhzW2ldICYmIGNvbnRhaW5lci5sb29rdXBQcm9wZXJ0eShkZXB0aHNbaV0sIG5hbWUpO1xuICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZGVwdGhzW2ldW25hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBsYW1iZGE6IGZ1bmN0aW9uIGxhbWJkYShjdXJyZW50LCBjb250ZXh0KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGN1cnJlbnQgPT09ICdmdW5jdGlvbicgPyBjdXJyZW50LmNhbGwoY29udGV4dCkgOiBjdXJyZW50O1xuICAgIH0sXG5cbiAgICBlc2NhcGVFeHByZXNzaW9uOiBVdGlscy5lc2NhcGVFeHByZXNzaW9uLFxuICAgIGludm9rZVBhcnRpYWw6IGludm9rZVBhcnRpYWxXcmFwcGVyLFxuXG4gICAgZm46IGZ1bmN0aW9uIGZuKGkpIHtcbiAgICAgIHZhciByZXQgPSB0ZW1wbGF0ZVNwZWNbaV07XG4gICAgICByZXQuZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjW2kgKyAnX2QnXTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSxcblxuICAgIHByb2dyYW1zOiBbXSxcbiAgICBwcm9ncmFtOiBmdW5jdGlvbiBwcm9ncmFtKGksIGRhdGEsIGRlY2xhcmVkQmxvY2tQYXJhbXMsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICAgIHZhciBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0sXG4gICAgICAgICAgZm4gPSB0aGlzLmZuKGkpO1xuICAgICAgaWYgKGRhdGEgfHwgZGVwdGhzIHx8IGJsb2NrUGFyYW1zIHx8IGRlY2xhcmVkQmxvY2tQYXJhbXMpIHtcbiAgICAgICAgcHJvZ3JhbVdyYXBwZXIgPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbiwgZGF0YSwgZGVjbGFyZWRCbG9ja1BhcmFtcywgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gICAgICB9IGVsc2UgaWYgKCFwcm9ncmFtV3JhcHBlcikge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0gPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvZ3JhbVdyYXBwZXI7XG4gICAgfSxcblxuICAgIGRhdGE6IGZ1bmN0aW9uIGRhdGEodmFsdWUsIGRlcHRoKSB7XG4gICAgICB3aGlsZSAodmFsdWUgJiYgZGVwdGgtLSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLl9wYXJlbnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSxcbiAgICBtZXJnZUlmTmVlZGVkOiBmdW5jdGlvbiBtZXJnZUlmTmVlZGVkKHBhcmFtLCBjb21tb24pIHtcbiAgICAgIHZhciBvYmogPSBwYXJhbSB8fCBjb21tb247XG5cbiAgICAgIGlmIChwYXJhbSAmJiBjb21tb24gJiYgcGFyYW0gIT09IGNvbW1vbikge1xuICAgICAgICBvYmogPSBVdGlscy5leHRlbmQoe30sIGNvbW1vbiwgcGFyYW0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2JqO1xuICAgIH0sXG4gICAgLy8gQW4gZW1wdHkgb2JqZWN0IHRvIHVzZSBhcyByZXBsYWNlbWVudCBmb3IgbnVsbC1jb250ZXh0c1xuICAgIG51bGxDb250ZXh0OiBPYmplY3Quc2VhbCh7fSksXG5cbiAgICBub29wOiBlbnYuVk0ubm9vcCxcbiAgICBjb21waWxlckluZm86IHRlbXBsYXRlU3BlYy5jb21waWxlclxuICB9O1xuXG4gIGZ1bmN0aW9uIHJldChjb250ZXh0KSB7XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1sxXTtcblxuICAgIHZhciBkYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgcmV0Ll9zZXR1cChvcHRpb25zKTtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCAmJiB0ZW1wbGF0ZVNwZWMudXNlRGF0YSkge1xuICAgICAgZGF0YSA9IGluaXREYXRhKGNvbnRleHQsIGRhdGEpO1xuICAgIH1cbiAgICB2YXIgZGVwdGhzID0gdW5kZWZpbmVkLFxuICAgICAgICBibG9ja1BhcmFtcyA9IHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyA/IFtdIDogdW5kZWZpbmVkO1xuICAgIGlmICh0ZW1wbGF0ZVNwZWMudXNlRGVwdGhzKSB7XG4gICAgICBpZiAob3B0aW9ucy5kZXB0aHMpIHtcbiAgICAgICAgZGVwdGhzID0gY29udGV4dCAhPSBvcHRpb25zLmRlcHRoc1swXSA/IFtjb250ZXh0XS5jb25jYXQob3B0aW9ucy5kZXB0aHMpIDogb3B0aW9ucy5kZXB0aHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZXB0aHMgPSBbY29udGV4dF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFpbihjb250ZXh0IC8qLCBvcHRpb25zKi8pIHtcbiAgICAgIHJldHVybiAnJyArIHRlbXBsYXRlU3BlYy5tYWluKGNvbnRhaW5lciwgY29udGV4dCwgY29udGFpbmVyLmhlbHBlcnMsIGNvbnRhaW5lci5wYXJ0aWFscywgZGF0YSwgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gICAgfVxuXG4gICAgbWFpbiA9IGV4ZWN1dGVEZWNvcmF0b3JzKHRlbXBsYXRlU3BlYy5tYWluLCBtYWluLCBjb250YWluZXIsIG9wdGlvbnMuZGVwdGhzIHx8IFtdLCBkYXRhLCBibG9ja1BhcmFtcyk7XG4gICAgcmV0dXJuIG1haW4oY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cblxuICByZXQuaXNUb3AgPSB0cnVlO1xuXG4gIHJldC5fc2V0dXAgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIGlmICghb3B0aW9ucy5wYXJ0aWFsKSB7XG4gICAgICB2YXIgbWVyZ2VkSGVscGVycyA9IFV0aWxzLmV4dGVuZCh7fSwgZW52LmhlbHBlcnMsIG9wdGlvbnMuaGVscGVycyk7XG4gICAgICB3cmFwSGVscGVyc1RvUGFzc0xvb2t1cFByb3BlcnR5KG1lcmdlZEhlbHBlcnMsIGNvbnRhaW5lcik7XG4gICAgICBjb250YWluZXIuaGVscGVycyA9IG1lcmdlZEhlbHBlcnM7XG5cbiAgICAgIGlmICh0ZW1wbGF0ZVNwZWMudXNlUGFydGlhbCkge1xuICAgICAgICAvLyBVc2UgbWVyZ2VJZk5lZWRlZCBoZXJlIHRvIHByZXZlbnQgY29tcGlsaW5nIGdsb2JhbCBwYXJ0aWFscyBtdWx0aXBsZSB0aW1lc1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBjb250YWluZXIubWVyZ2VJZk5lZWRlZChvcHRpb25zLnBhcnRpYWxzLCBlbnYucGFydGlhbHMpO1xuICAgICAgfVxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsIHx8IHRlbXBsYXRlU3BlYy51c2VEZWNvcmF0b3JzKSB7XG4gICAgICAgIGNvbnRhaW5lci5kZWNvcmF0b3JzID0gVXRpbHMuZXh0ZW5kKHt9LCBlbnYuZGVjb3JhdG9ycywgb3B0aW9ucy5kZWNvcmF0b3JzKTtcbiAgICAgIH1cblxuICAgICAgY29udGFpbmVyLmhvb2tzID0ge307XG4gICAgICBjb250YWluZXIucHJvdG9BY2Nlc3NDb250cm9sID0gX2ludGVybmFsUHJvdG9BY2Nlc3MuY3JlYXRlUHJvdG9BY2Nlc3NDb250cm9sKG9wdGlvbnMpO1xuXG4gICAgICB2YXIga2VlcEhlbHBlckluSGVscGVycyA9IG9wdGlvbnMuYWxsb3dDYWxsc1RvSGVscGVyTWlzc2luZyB8fCB0ZW1wbGF0ZVdhc1ByZWNvbXBpbGVkV2l0aENvbXBpbGVyVjc7XG4gICAgICBfaGVscGVycy5tb3ZlSGVscGVyVG9Ib29rcyhjb250YWluZXIsICdoZWxwZXJNaXNzaW5nJywga2VlcEhlbHBlckluSGVscGVycyk7XG4gICAgICBfaGVscGVycy5tb3ZlSGVscGVyVG9Ib29rcyhjb250YWluZXIsICdibG9ja0hlbHBlck1pc3NpbmcnLCBrZWVwSGVscGVySW5IZWxwZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGFpbmVyLnByb3RvQWNjZXNzQ29udHJvbCA9IG9wdGlvbnMucHJvdG9BY2Nlc3NDb250cm9sOyAvLyBpbnRlcm5hbCBvcHRpb25cbiAgICAgIGNvbnRhaW5lci5oZWxwZXJzID0gb3B0aW9ucy5oZWxwZXJzO1xuICAgICAgY29udGFpbmVyLnBhcnRpYWxzID0gb3B0aW9ucy5wYXJ0aWFscztcbiAgICAgIGNvbnRhaW5lci5kZWNvcmF0b3JzID0gb3B0aW9ucy5kZWNvcmF0b3JzO1xuICAgICAgY29udGFpbmVyLmhvb2tzID0gb3B0aW9ucy5ob29rcztcbiAgICB9XG4gIH07XG5cbiAgcmV0Ll9jaGlsZCA9IGZ1bmN0aW9uIChpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyAmJiAhYmxvY2tQYXJhbXMpIHtcbiAgICAgIHRocm93IG5ldyBfZXhjZXB0aW9uMlsnZGVmYXVsdCddKCdtdXN0IHBhc3MgYmxvY2sgcGFyYW1zJyk7XG4gICAgfVxuICAgIGlmICh0ZW1wbGF0ZVNwZWMudXNlRGVwdGhzICYmICFkZXB0aHMpIHtcbiAgICAgIHRocm93IG5ldyBfZXhjZXB0aW9uMlsnZGVmYXVsdCddKCdtdXN0IHBhc3MgcGFyZW50IGRlcHRocycpO1xuICAgIH1cblxuICAgIHJldHVybiB3cmFwUHJvZ3JhbShjb250YWluZXIsIGksIHRlbXBsYXRlU3BlY1tpXSwgZGF0YSwgMCwgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIHdyYXBQcm9ncmFtKGNvbnRhaW5lciwgaSwgZm4sIGRhdGEsIGRlY2xhcmVkQmxvY2tQYXJhbXMsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgZnVuY3Rpb24gcHJvZyhjb250ZXh0KSB7XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1sxXTtcblxuICAgIHZhciBjdXJyZW50RGVwdGhzID0gZGVwdGhzO1xuICAgIGlmIChkZXB0aHMgJiYgY29udGV4dCAhPSBkZXB0aHNbMF0gJiYgIShjb250ZXh0ID09PSBjb250YWluZXIubnVsbENvbnRleHQgJiYgZGVwdGhzWzBdID09PSBudWxsKSkge1xuICAgICAgY3VycmVudERlcHRocyA9IFtjb250ZXh0XS5jb25jYXQoZGVwdGhzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm4oY29udGFpbmVyLCBjb250ZXh0LCBjb250YWluZXIuaGVscGVycywgY29udGFpbmVyLnBhcnRpYWxzLCBvcHRpb25zLmRhdGEgfHwgZGF0YSwgYmxvY2tQYXJhbXMgJiYgW29wdGlvbnMuYmxvY2tQYXJhbXNdLmNvbmNhdChibG9ja1BhcmFtcyksIGN1cnJlbnREZXB0aHMpO1xuICB9XG5cbiAgcHJvZyA9IGV4ZWN1dGVEZWNvcmF0b3JzKGZuLCBwcm9nLCBjb250YWluZXIsIGRlcHRocywgZGF0YSwgYmxvY2tQYXJhbXMpO1xuXG4gIHByb2cucHJvZ3JhbSA9IGk7XG4gIHByb2cuZGVwdGggPSBkZXB0aHMgPyBkZXB0aHMubGVuZ3RoIDogMDtcbiAgcHJvZy5ibG9ja1BhcmFtcyA9IGRlY2xhcmVkQmxvY2tQYXJhbXMgfHwgMDtcbiAgcmV0dXJuIHByb2c7XG59XG5cbi8qKlxuICogVGhpcyBpcyBjdXJyZW50bHkgcGFydCBvZiB0aGUgb2ZmaWNpYWwgQVBJLCB0aGVyZWZvcmUgaW1wbGVtZW50YXRpb24gZGV0YWlscyBzaG91bGQgbm90IGJlIGNoYW5nZWQuXG4gKi9cblxuZnVuY3Rpb24gcmVzb2x2ZVBhcnRpYWwocGFydGlhbCwgY29udGV4dCwgb3B0aW9ucykge1xuICBpZiAoIXBhcnRpYWwpIHtcbiAgICBpZiAob3B0aW9ucy5uYW1lID09PSAnQHBhcnRpYWwtYmxvY2snKSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ107XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW29wdGlvbnMubmFtZV07XG4gICAgfVxuICB9IGVsc2UgaWYgKCFwYXJ0aWFsLmNhbGwgJiYgIW9wdGlvbnMubmFtZSkge1xuICAgIC8vIFRoaXMgaXMgYSBkeW5hbWljIHBhcnRpYWwgdGhhdCByZXR1cm5lZCBhIHN0cmluZ1xuICAgIG9wdGlvbnMubmFtZSA9IHBhcnRpYWw7XG4gICAgcGFydGlhbCA9IG9wdGlvbnMucGFydGlhbHNbcGFydGlhbF07XG4gIH1cbiAgcmV0dXJuIHBhcnRpYWw7XG59XG5cbmZ1bmN0aW9uIGludm9rZVBhcnRpYWwocGFydGlhbCwgY29udGV4dCwgb3B0aW9ucykge1xuICAvLyBVc2UgdGhlIGN1cnJlbnQgY2xvc3VyZSBjb250ZXh0IHRvIHNhdmUgdGhlIHBhcnRpYWwtYmxvY2sgaWYgdGhpcyBwYXJ0aWFsXG4gIHZhciBjdXJyZW50UGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICBvcHRpb25zLnBhcnRpYWwgPSB0cnVlO1xuICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICBvcHRpb25zLmRhdGEuY29udGV4dFBhdGggPSBvcHRpb25zLmlkc1swXSB8fCBvcHRpb25zLmRhdGEuY29udGV4dFBhdGg7XG4gIH1cblxuICB2YXIgcGFydGlhbEJsb2NrID0gdW5kZWZpbmVkO1xuICBpZiAob3B0aW9ucy5mbiAmJiBvcHRpb25zLmZuICE9PSBub29wKSB7XG4gICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgIG9wdGlvbnMuZGF0YSA9IF9iYXNlLmNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgICAvLyBXcmFwcGVyIGZ1bmN0aW9uIHRvIGdldCBhY2Nlc3MgdG8gY3VycmVudFBhcnRpYWxCbG9jayBmcm9tIHRoZSBjbG9zdXJlXG4gICAgICB2YXIgZm4gPSBvcHRpb25zLmZuO1xuICAgICAgcGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBmdW5jdGlvbiBwYXJ0aWFsQmxvY2tXcmFwcGVyKGNvbnRleHQpIHtcbiAgICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICAvLyBSZXN0b3JlIHRoZSBwYXJ0aWFsLWJsb2NrIGZyb20gdGhlIGNsb3N1cmUgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhlIGJsb2NrXG4gICAgICAgIC8vIGkuZS4gdGhlIHBhcnQgaW5zaWRlIHRoZSBibG9jayBvZiB0aGUgcGFydGlhbCBjYWxsLlxuICAgICAgICBvcHRpb25zLmRhdGEgPSBfYmFzZS5jcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgICBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXSA9IGN1cnJlbnRQYXJ0aWFsQmxvY2s7XG4gICAgICAgIHJldHVybiBmbihjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH07XG4gICAgICBpZiAoZm4ucGFydGlhbHMpIHtcbiAgICAgICAgb3B0aW9ucy5wYXJ0aWFscyA9IFV0aWxzLmV4dGVuZCh7fSwgb3B0aW9ucy5wYXJ0aWFscywgZm4ucGFydGlhbHMpO1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkICYmIHBhcnRpYWxCbG9jaykge1xuICAgIHBhcnRpYWwgPSBwYXJ0aWFsQmxvY2s7XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IF9leGNlcHRpb24yWydkZWZhdWx0J10oJ1RoZSBwYXJ0aWFsICcgKyBvcHRpb25zLm5hbWUgKyAnIGNvdWxkIG5vdCBiZSBmb3VuZCcpO1xuICB9IGVsc2UgaWYgKHBhcnRpYWwgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgIHJldHVybiBwYXJ0aWFsKGNvbnRleHQsIG9wdGlvbnMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5vb3AoKSB7XG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gaW5pdERhdGEoY29udGV4dCwgZGF0YSkge1xuICBpZiAoIWRhdGEgfHwgISgncm9vdCcgaW4gZGF0YSkpIHtcbiAgICBkYXRhID0gZGF0YSA/IF9iYXNlLmNyZWF0ZUZyYW1lKGRhdGEpIDoge307XG4gICAgZGF0YS5yb290ID0gY29udGV4dDtcbiAgfVxuICByZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcykge1xuICBpZiAoZm4uZGVjb3JhdG9yKSB7XG4gICAgdmFyIHByb3BzID0ge307XG4gICAgcHJvZyA9IGZuLmRlY29yYXRvcihwcm9nLCBwcm9wcywgY29udGFpbmVyLCBkZXB0aHMgJiYgZGVwdGhzWzBdLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKTtcbiAgICBVdGlscy5leHRlbmQocHJvZywgcHJvcHMpO1xuICB9XG4gIHJldHVybiBwcm9nO1xufVxuXG5mdW5jdGlvbiB3cmFwSGVscGVyc1RvUGFzc0xvb2t1cFByb3BlcnR5KG1lcmdlZEhlbHBlcnMsIGNvbnRhaW5lcikge1xuICBPYmplY3Qua2V5cyhtZXJnZWRIZWxwZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChoZWxwZXJOYW1lKSB7XG4gICAgdmFyIGhlbHBlciA9IG1lcmdlZEhlbHBlcnNbaGVscGVyTmFtZV07XG4gICAgbWVyZ2VkSGVscGVyc1toZWxwZXJOYW1lXSA9IHBhc3NMb29rdXBQcm9wZXJ0eU9wdGlvbihoZWxwZXIsIGNvbnRhaW5lcik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwYXNzTG9va3VwUHJvcGVydHlPcHRpb24oaGVscGVyLCBjb250YWluZXIpIHtcbiAgdmFyIGxvb2t1cFByb3BlcnR5ID0gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5O1xuICByZXR1cm4gX2ludGVybmFsV3JhcEhlbHBlci53cmFwSGVscGVyKGhlbHBlciwgZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICByZXR1cm4gVXRpbHMuZXh0ZW5kKHsgbG9va3VwUHJvcGVydHk6IGxvb2t1cFByb3BlcnR5IH0sIG9wdGlvbnMpO1xuICB9KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUwyeHBZaTlvWVc1a2JHVmlZWEp6TDNKMWJuUnBiV1V1YW5NaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN096czdPenM3Y1VKQlFYVkNMRk5CUVZNN08wbEJRWEJDTEV0QlFVczdPM2xDUVVOTExHRkJRV0U3T3pzN2IwSkJUVFZDTEZGQlFWRTdPM1ZDUVVOdFFpeFhRVUZYT3p0clEwRkRiRUlzZFVKQlFYVkNPenR0UTBGSk0wTXNlVUpCUVhsQ096dEJRVVY2UWl4VFFVRlRMR0ZCUVdFc1EwRkJReXhaUVVGWkxFVkJRVVU3UVVGRE1VTXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eEJRVUZETEZsQlFWa3NTVUZCU1N4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVXNzUTBGQlF6dE5RVU0zUkN4bFFVRmxMREJDUVVGdlFpeERRVUZET3p0QlFVVjBReXhOUVVORkxHZENRVUZuUWl3eVEwRkJjVU1zU1VGRGNrUXNaMEpCUVdkQ0xESkNRVUZ4UWl4RlFVTnlRenRCUVVOQkxGZEJRVTg3UjBGRFVqczdRVUZGUkN4TlFVRkpMR2RDUVVGblFpd3dRMEZCYjBNc1JVRkJSVHRCUVVONFJDeFJRVUZOTEdWQlFXVXNSMEZCUnl4MVFrRkJhVUlzWlVGQlpTeERRVUZETzFGQlEzWkVMR2RDUVVGblFpeEhRVUZITEhWQ1FVRnBRaXhuUWtGQlowSXNRMEZCUXl4RFFVRkRPMEZCUTNoRUxGVkJRVTBzTWtKQlEwb3NlVVpCUVhsR0xFZEJRM1pHTEhGRVFVRnhSQ3hIUVVOeVJDeGxRVUZsTEVkQlEyWXNiVVJCUVcxRUxFZEJRMjVFTEdkQ1FVRm5RaXhIUVVOb1FpeEpRVUZKTEVOQlExQXNRMEZCUXp0SFFVTklMRTFCUVUwN08wRkJSVXdzVlVGQlRTd3lRa0ZEU2l4M1JrRkJkMFlzUjBGRGRFWXNhVVJCUVdsRUxFZEJRMnBFTEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkRaaXhKUVVGSkxFTkJRMUFzUTBGQlF6dEhRVU5JTzBOQlEwWTdPMEZCUlUwc1UwRkJVeXhSUVVGUkxFTkJRVU1zV1VGQldTeEZRVUZGTEVkQlFVY3NSVUZCUlRzN1FVRkZNVU1zVFVGQlNTeERRVUZETEVkQlFVY3NSVUZCUlR0QlFVTlNMRlZCUVUwc01rSkJRV01zYlVOQlFXMURMRU5CUVVNc1EwRkJRenRIUVVNeFJEdEJRVU5FTEUxQlFVa3NRMEZCUXl4WlFVRlpMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeEZRVUZGTzBGQlEzWkRMRlZCUVUwc01rSkJRV01zTWtKQlFUSkNMRWRCUVVjc1QwRkJUeXhaUVVGWkxFTkJRVU1zUTBGQlF6dEhRVU40UlRzN1FVRkZSQ3hqUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNSMEZCUnl4WlFVRlpMRU5CUVVNc1RVRkJUU3hEUVVGRE96czdPMEZCU1d4RUxFdEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNZVUZCWVN4RFFVRkRMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6czdPMEZCUnpWRExFMUJRVTBzYjBOQlFXOURMRWRCUTNoRExGbEJRVmtzUTBGQlF5eFJRVUZSTEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdPMEZCUlRGRUxGZEJRVk1zYjBKQlFXOUNMRU5CUVVNc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlFVVTdRVUZEZGtRc1VVRkJTU3hQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTzBGQlEyaENMR0ZCUVU4c1IwRkJSeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEyeEVMRlZCUVVrc1QwRkJUeXhEUVVGRExFZEJRVWNzUlVGQlJUdEJRVU5tTEdWQlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETzA5QlEzWkNPMHRCUTBZN1FVRkRSQ3hYUVVGUExFZEJRVWNzUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNUMEZCVHl4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE96dEJRVVYwUlN4UlFVRkpMR1ZCUVdVc1IwRkJSeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4UFFVRlBMRVZCUVVVN1FVRkRPVU1zVjBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxPMEZCUTJwQ0xIZENRVUZyUWl4RlFVRkZMRWxCUVVrc1EwRkJReXhyUWtGQmEwSTdTMEZETlVNc1EwRkJReXhEUVVGRE96dEJRVVZJTEZGQlFVa3NUVUZCVFN4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZEY0VNc1NVRkJTU3hGUVVOS0xFOUJRVThzUlVGRFVDeFBRVUZQTEVWQlExQXNaVUZCWlN4RFFVTm9RaXhEUVVGRE96dEJRVVZHTEZGQlFVa3NUVUZCVFN4SlFVRkpMRWxCUVVrc1NVRkJTU3hIUVVGSExFTkJRVU1zVDBGQlR5eEZRVUZGTzBGQlEycERMR0ZCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRekZETEU5QlFVOHNSVUZEVUN4WlFVRlpMRU5CUVVNc1pVRkJaU3hGUVVNMVFpeEhRVUZITEVOQlEwb3NRMEZCUXp0QlFVTkdMRmxCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzWlVGQlpTeERRVUZETEVOQlFVTTdTMEZEYmtVN1FVRkRSQ3hSUVVGSkxFMUJRVTBzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEYkVJc1ZVRkJTU3hQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTzBGQlEyeENMRmxCUVVrc1MwRkJTeXhIUVVGSExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRMMElzWVVGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdEJRVU0xUXl4alFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRk8wRkJRelZDTEd0Q1FVRk5PMWRCUTFBN08wRkJSVVFzWlVGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUTNSRE8wRkJRMFFzWTBGQlRTeEhRVUZITEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VDBGRE0wSTdRVUZEUkN4aFFVRlBMRTFCUVUwc1EwRkJRenRMUVVObUxFMUJRVTA3UVVGRFRDeFpRVUZOTERKQ1FVTktMR05CUVdNc1IwRkRXaXhQUVVGUExFTkJRVU1zU1VGQlNTeEhRVU5hTERCRVFVRXdSQ3hEUVVNM1JDeERRVUZETzB0QlEwZzdSMEZEUmpzN08wRkJSMFFzVFVGQlNTeFRRVUZUTEVkQlFVYzdRVUZEWkN4VlFVRk5MRVZCUVVVc1owSkJRVk1zUjBGQlJ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4SFFVRkhMRVZCUVVVN1FVRkRMMElzVlVGQlNTeERRVUZETEVkQlFVY3NTVUZCU1N4RlFVRkZMRWxCUVVrc1NVRkJTU3hIUVVGSExFTkJRVUVzUVVGQlF5eEZRVUZGTzBGQlF6RkNMR05CUVUwc01rSkJRV01zUjBGQlJ5eEhRVUZITEVsQlFVa3NSMEZCUnl4dFFrRkJiVUlzUjBGQlJ5eEhRVUZITEVWQlFVVTdRVUZETVVRc1lVRkJSeXhGUVVGRkxFZEJRVWM3VTBGRFZDeERRVUZETEVOQlFVTTdUMEZEU2p0QlFVTkVMR0ZCUVU4c1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzB0QlEyeENPMEZCUTBRc2EwSkJRV01zUlVGQlJTeDNRa0ZCVXl4TlFVRk5MRVZCUVVVc1dVRkJXU3hGUVVGRk8wRkJRemRETEZWQlFVa3NUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dEJRVU5zUXl4VlFVRkpMRTFCUVUwc1NVRkJTU3hKUVVGSkxFVkJRVVU3UVVGRGJFSXNaVUZCVHl4TlFVRk5MRU5CUVVNN1QwRkRaanRCUVVORUxGVkJRVWtzVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeFpRVUZaTEVOQlFVTXNSVUZCUlR0QlFVTTVSQ3hsUVVGUExFMUJRVTBzUTBGQlF6dFBRVU5tT3p0QlFVVkVMRlZCUVVrc2NVTkJRV2RDTEUxQlFVMHNSVUZCUlN4VFFVRlRMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNXVUZCV1N4RFFVRkRMRVZCUVVVN1FVRkRka1VzWlVGQlR5eE5RVUZOTEVOQlFVTTdUMEZEWmp0QlFVTkVMR0ZCUVU4c1UwRkJVeXhEUVVGRE8wdEJRMnhDTzBGQlEwUXNWVUZCVFN4RlFVRkZMR2RDUVVGVExFMUJRVTBzUlVGQlJTeEpRVUZKTEVWQlFVVTdRVUZETjBJc1ZVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTXhRaXhYUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzBGQlF6VkNMRmxCUVVrc1RVRkJUU3hIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4VFFVRlRMRU5CUVVNc1kwRkJZeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVOd1JTeFpRVUZKTEUxQlFVMHNTVUZCU1N4SlFVRkpMRVZCUVVVN1FVRkRiRUlzYVVKQlFVOHNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFOQlEzaENPMDlCUTBZN1MwRkRSanRCUVVORUxGVkJRVTBzUlVGQlJTeG5Ra0ZCVXl4UFFVRlBMRVZCUVVVc1QwRkJUeXhGUVVGRk8wRkJRMnBETEdGQlFVOHNUMEZCVHl4UFFVRlBMRXRCUVVzc1ZVRkJWU3hIUVVGSExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRE8wdEJRM2hGT3p0QlFVVkVMRzlDUVVGblFpeEZRVUZGTEV0QlFVc3NRMEZCUXl4blFrRkJaMEk3UVVGRGVFTXNhVUpCUVdFc1JVRkJSU3h2UWtGQmIwSTdPMEZCUlc1RExFMUJRVVVzUlVGQlJTeFpRVUZUTEVOQlFVTXNSVUZCUlR0QlFVTmtMRlZCUVVrc1IwRkJSeXhIUVVGSExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXhRaXhUUVVGSExFTkJRVU1zVTBGQlV5eEhRVUZITEZsQlFWa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRGRrTXNZVUZCVHl4SFFVRkhMRU5CUVVNN1MwRkRXanM3UVVGRlJDeFpRVUZSTEVWQlFVVXNSVUZCUlR0QlFVTmFMRmRCUVU4c1JVRkJSU3hwUWtGQlV5eERRVUZETEVWQlFVVXNTVUZCU1N4RlFVRkZMRzFDUVVGdFFpeEZRVUZGTEZkQlFWY3NSVUZCUlN4TlFVRk5MRVZCUVVVN1FVRkRia1VzVlVGQlNTeGpRVUZqTEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU03VlVGRGJrTXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYkVJc1ZVRkJTU3hKUVVGSkxFbEJRVWtzVFVGQlRTeEpRVUZKTEZkQlFWY3NTVUZCU1N4dFFrRkJiVUlzUlVGQlJUdEJRVU40UkN4elFrRkJZeXhIUVVGSExGZEJRVmNzUTBGRE1VSXNTVUZCU1N4RlFVTktMRU5CUVVNc1JVRkRSQ3hGUVVGRkxFVkJRMFlzU1VGQlNTeEZRVU5LTEcxQ1FVRnRRaXhGUVVOdVFpeFhRVUZYTEVWQlExZ3NUVUZCVFN4RFFVTlFMRU5CUVVNN1QwRkRTQ3hOUVVGTkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVWQlFVVTdRVUZETVVJc2MwSkJRV01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExGZEJRVmNzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8wOUJRemxFTzBGQlEwUXNZVUZCVHl4alFVRmpMRU5CUVVNN1MwRkRka0k3TzBGQlJVUXNVVUZCU1N4RlFVRkZMR05CUVZNc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGQlJUdEJRVU16UWl4aFFVRlBMRXRCUVVzc1NVRkJTU3hMUVVGTExFVkJRVVVzUlVGQlJUdEJRVU4yUWl4aFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF6dFBRVU4yUWp0QlFVTkVMR0ZCUVU4c1MwRkJTeXhEUVVGRE8wdEJRMlE3UVVGRFJDeHBRa0ZCWVN4RlFVRkZMSFZDUVVGVExFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVTdRVUZEY2tNc1ZVRkJTU3hIUVVGSExFZEJRVWNzUzBGQlN5eEpRVUZKTEUxQlFVMHNRMEZCUXpzN1FVRkZNVUlzVlVGQlNTeExRVUZMTEVsQlFVa3NUVUZCVFN4SlFVRkpMRXRCUVVzc1MwRkJTeXhOUVVGTkxFVkJRVVU3UVVGRGRrTXNWMEZCUnl4SFFVRkhMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRQUVVOMlF6czdRVUZGUkN4aFFVRlBMRWRCUVVjc1EwRkJRenRMUVVOYU96dEJRVVZFTEdWQlFWY3NSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF6czdRVUZGTlVJc1VVRkJTU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1R0QlFVTnFRaXhuUWtGQldTeEZRVUZGTEZsQlFWa3NRMEZCUXl4UlFVRlJPMGRCUTNCRExFTkJRVU03TzBGQlJVWXNWMEZCVXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhGUVVGblFqdFJRVUZrTEU5QlFVOHNlVVJCUVVjc1JVRkJSVHM3UVVGRGFFTXNVVUZCU1N4SlFVRkpMRWRCUVVjc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF6czdRVUZGZUVJc1QwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTndRaXhSUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNTVUZCU1N4WlFVRlpMRU5CUVVNc1QwRkJUeXhGUVVGRk8wRkJRelZETEZWQlFVa3NSMEZCUnl4UlFVRlJMRU5CUVVNc1QwRkJUeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzB0QlEyaERPMEZCUTBRc1VVRkJTU3hOUVVGTkxGbEJRVUU3VVVGRFVpeFhRVUZYTEVkQlFVY3NXVUZCV1N4RFFVRkRMR05CUVdNc1IwRkJSeXhGUVVGRkxFZEJRVWNzVTBGQlV5eERRVUZETzBGQlF6ZEVMRkZCUVVrc1dVRkJXU3hEUVVGRExGTkJRVk1zUlVGQlJUdEJRVU14UWl4VlFVRkpMRTlCUVU4c1EwRkJReXhOUVVGTkxFVkJRVVU3UVVGRGJFSXNZMEZCVFN4SFFVTktMRTlCUVU4c1NVRkJTU3hQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVTjRRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRMmhETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNN1QwRkRkRUlzVFVGQlRUdEJRVU5NTEdOQlFVMHNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wOUJRM0JDTzB0QlEwWTdPMEZCUlVRc1lVRkJVeXhKUVVGSkxFTkJRVU1zVDBGQlR5eG5Ra0ZCWjBJN1FVRkRia01zWVVGRFJTeEZRVUZGTEVkQlEwWXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkRaaXhUUVVGVExFVkJRMVFzVDBGQlR5eEZRVU5RTEZOQlFWTXNRMEZCUXl4UFFVRlBMRVZCUTJwQ0xGTkJRVk1zUTBGQlF5eFJRVUZSTEVWQlEyeENMRWxCUVVrc1JVRkRTaXhYUVVGWExFVkJRMWdzVFVGQlRTeERRVU5RTEVOQlEwUTdTMEZEU0RzN1FVRkZSQ3hSUVVGSkxFZEJRVWNzYVVKQlFXbENMRU5CUTNSQ0xGbEJRVmtzUTBGQlF5eEpRVUZKTEVWQlEycENMRWxCUVVrc1JVRkRTaXhUUVVGVExFVkJRMVFzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4RlFVRkZMRVZCUTNCQ0xFbEJRVWtzUlVGRFNpeFhRVUZYTEVOQlExb3NRMEZCUXp0QlFVTkdMRmRCUVU4c1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0SFFVTXZRanM3UVVGRlJDeExRVUZITEVOQlFVTXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJRenM3UVVGRmFrSXNTMEZCUnl4RFFVRkRMRTFCUVUwc1IwRkJSeXhWUVVGVExFOUJRVThzUlVGQlJUdEJRVU0zUWl4UlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUlVGQlJUdEJRVU53UWl4VlFVRkpMR0ZCUVdFc1IwRkJSeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4SFFVRkhMRU5CUVVNc1QwRkJUeXhGUVVGRkxFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTnVSU3h4UTBGQkswSXNRMEZCUXl4aFFVRmhMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03UVVGRE1VUXNaVUZCVXl4RFFVRkRMRTlCUVU4c1IwRkJSeXhoUVVGaExFTkJRVU03TzBGQlJXeERMRlZCUVVrc1dVRkJXU3hEUVVGRExGVkJRVlVzUlVGQlJUczdRVUZGTTBJc2FVSkJRVk1zUTBGQlF5eFJRVUZSTEVkQlFVY3NVMEZCVXl4RFFVRkRMR0ZCUVdFc1EwRkRNVU1zVDBGQlR5eERRVUZETEZGQlFWRXNSVUZEYUVJc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGRFlpeERRVUZETzA5QlEwZzdRVUZEUkN4VlFVRkpMRmxCUVZrc1EwRkJReXhWUVVGVkxFbEJRVWtzV1VGQldTeERRVUZETEdGQlFXRXNSVUZCUlR0QlFVTjZSQ3hwUWtGQlV5eERRVUZETEZWQlFWVXNSMEZCUnl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVOcVF5eEZRVUZGTEVWQlEwWXNSMEZCUnl4RFFVRkRMRlZCUVZVc1JVRkRaQ3hQUVVGUExFTkJRVU1zVlVGQlZTeERRVU51UWl4RFFVRkRPMDlCUTBnN08wRkJSVVFzWlVGQlV5eERRVUZETEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNN1FVRkRja0lzWlVGQlV5eERRVUZETEd0Q1FVRnJRaXhIUVVGSExEaERRVUY1UWl4UFFVRlBMRU5CUVVNc1EwRkJRenM3UVVGRmFrVXNWVUZCU1N4dFFrRkJiVUlzUjBGRGNrSXNUMEZCVHl4RFFVRkRMSGxDUVVGNVFpeEpRVU5xUXl4dlEwRkJiME1zUTBGQlF6dEJRVU4yUXl4cFEwRkJhMElzVTBGQlV5eEZRVUZGTEdWQlFXVXNSVUZCUlN4dFFrRkJiVUlzUTBGQlF5eERRVUZETzBGQlEyNUZMR2xEUVVGclFpeFRRVUZUTEVWQlFVVXNiMEpCUVc5Q0xFVkJRVVVzYlVKQlFXMUNMRU5CUVVNc1EwRkJRenRMUVVONlJTeE5RVUZOTzBGQlEwd3NaVUZCVXl4RFFVRkRMR3RDUVVGclFpeEhRVUZITEU5QlFVOHNRMEZCUXl4clFrRkJhMElzUTBGQlF6dEJRVU14UkN4bFFVRlRMRU5CUVVNc1QwRkJUeXhIUVVGSExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTTdRVUZEY0VNc1pVRkJVeXhEUVVGRExGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRPMEZCUTNSRExHVkJRVk1zUTBGQlF5eFZRVUZWTEVkQlFVY3NUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJRenRCUVVNeFF5eGxRVUZUTEVOQlFVTXNTMEZCU3l4SFFVRkhMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU03UzBGRGFrTTdSMEZEUml4RFFVRkRPenRCUVVWR0xFdEJRVWNzUTBGQlF5eE5RVUZOTEVkQlFVY3NWVUZCVXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hGUVVGRkxGZEJRVmNzUlVGQlJTeE5RVUZOTEVWQlFVVTdRVUZEYkVRc1VVRkJTU3haUVVGWkxFTkJRVU1zWTBGQll5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RlFVRkZPMEZCUXk5RExGbEJRVTBzTWtKQlFXTXNkMEpCUVhkQ0xFTkJRVU1zUTBGQlF6dExRVU12UXp0QlFVTkVMRkZCUVVrc1dVRkJXU3hEUVVGRExGTkJRVk1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlR0QlFVTnlReXhaUVVGTkxESkNRVUZqTEhsQ1FVRjVRaXhEUVVGRExFTkJRVU03UzBGRGFFUTdPMEZCUlVRc1YwRkJUeXhYUVVGWExFTkJRMmhDTEZOQlFWTXNSVUZEVkN4RFFVRkRMRVZCUTBRc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVU5tTEVsQlFVa3NSVUZEU2l4RFFVRkRMRVZCUTBRc1YwRkJWeXhGUVVOWUxFMUJRVTBzUTBGRFVDeERRVUZETzBkQlEwZ3NRMEZCUXp0QlFVTkdMRk5CUVU4c1IwRkJSeXhEUVVGRE8wTkJRMW83TzBGQlJVMHNVMEZCVXl4WFFVRlhMRU5CUTNwQ0xGTkJRVk1zUlVGRFZDeERRVUZETEVWQlEwUXNSVUZCUlN4RlFVTkdMRWxCUVVrc1JVRkRTaXh0UWtGQmJVSXNSVUZEYmtJc1YwRkJWeXhGUVVOWUxFMUJRVTBzUlVGRFRqdEJRVU5CTEZkQlFWTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJaMEk3VVVGQlpDeFBRVUZQTEhsRVFVRkhMRVZCUVVVN08wRkJRMnBETEZGQlFVa3NZVUZCWVN4SFFVRkhMRTFCUVUwc1EwRkJRenRCUVVNelFpeFJRVU5GTEUxQlFVMHNTVUZEVGl4UFFVRlBMRWxCUVVrc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVU53UWl4RlFVRkZMRTlCUVU4c1MwRkJTeXhUUVVGVExFTkJRVU1zVjBGQlZ5eEpRVUZKTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhKUVVGSkxFTkJRVUVzUVVGQlF5eEZRVU14UkR0QlFVTkJMRzFDUVVGaExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03UzBGRE1VTTdPMEZCUlVRc1YwRkJUeXhGUVVGRkxFTkJRMUFzVTBGQlV5eEZRVU5VTEU5QlFVOHNSVUZEVUN4VFFVRlRMRU5CUVVNc1QwRkJUeXhGUVVOcVFpeFRRVUZUTEVOQlFVTXNVVUZCVVN4RlFVTnNRaXhQUVVGUExFTkJRVU1zU1VGQlNTeEpRVUZKTEVsQlFVa3NSVUZEY0VJc1YwRkJWeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU1zUlVGRGVFUXNZVUZCWVN4RFFVTmtMRU5CUVVNN1IwRkRTRHM3UVVGRlJDeE5RVUZKTEVkQlFVY3NhVUpCUVdsQ0xFTkJRVU1zUlVGQlJTeEZRVUZGTEVsQlFVa3NSVUZCUlN4VFFVRlRMRVZCUVVVc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXpzN1FVRkZla1VzVFVGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRha0lzVFVGQlNTeERRVUZETEV0QlFVc3NSMEZCUnl4TlFVRk5MRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZEZUVNc1RVRkJTU3hEUVVGRExGZEJRVmNzUjBGQlJ5eHRRa0ZCYlVJc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRE5VTXNVMEZCVHl4SlFVRkpMRU5CUVVNN1EwRkRZanM3T3pzN08wRkJTMDBzVTBGQlV5eGpRVUZqTEVOQlFVTXNUMEZCVHl4RlFVRkZMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVU3UVVGRGVFUXNUVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSVHRCUVVOYUxGRkJRVWtzVDBGQlR5eERRVUZETEVsQlFVa3NTMEZCU3l4blFrRkJaMElzUlVGQlJUdEJRVU55UXl4aFFVRlBMRWRCUVVjc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0TFFVTjZReXhOUVVGTk8wRkJRMHdzWVVGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzB0QlF6RkRPMGRCUTBZc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVU3TzBGQlJYcERMRmRCUVU4c1EwRkJReXhKUVVGSkxFZEJRVWNzVDBGQlR5eERRVUZETzBGQlEzWkNMRmRCUVU4c1IwRkJSeXhQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGRCUTNKRE8wRkJRMFFzVTBGQlR5eFBRVUZQTEVOQlFVTTdRMEZEYUVJN08wRkJSVTBzVTBGQlV5eGhRVUZoTEVOQlFVTXNUMEZCVHl4RlFVRkZMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVU3TzBGQlJYWkVMRTFCUVUwc2JVSkJRVzFDTEVkQlFVY3NUMEZCVHl4RFFVRkRMRWxCUVVrc1NVRkJTU3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRPMEZCUXpGRkxGTkJRVThzUTBGQlF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRPMEZCUTNaQ0xFMUJRVWtzVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlR0QlFVTm1MRmRCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNN1IwRkRka1U3TzBGQlJVUXNUVUZCU1N4WlFVRlpMRmxCUVVFc1EwRkJRenRCUVVOcVFpeE5RVUZKTEU5QlFVOHNRMEZCUXl4RlFVRkZMRWxCUVVrc1QwRkJUeXhEUVVGRExFVkJRVVVzUzBGQlN5eEpRVUZKTEVWQlFVVTdPMEZCUTNKRExHRkJRVThzUTBGQlF5eEpRVUZKTEVkQlFVY3NhMEpCUVZrc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZET3p0QlFVVjZReXhWUVVGSkxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRPMEZCUTNCQ0xHdENRVUZaTEVkQlFVY3NUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zUjBGQlJ5eFRRVUZUTEcxQ1FVRnRRaXhEUVVONlJTeFBRVUZQTEVWQlJWQTdXVUZFUVN4UFFVRlBMSGxFUVVGSExFVkJRVVU3T3pzN1FVRkpXaXhsUVVGUExFTkJRVU1zU1VGQlNTeEhRVUZITEd0Q1FVRlpMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU42UXl4bFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eEhRVUZITEcxQ1FVRnRRaXhEUVVGRE8wRkJRM0JFTEdWQlFVOHNSVUZCUlN4RFFVRkRMRTlCUVU4c1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dFBRVU0zUWl4RFFVRkRPMEZCUTBZc1ZVRkJTU3hGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTzBGQlEyWXNaVUZCVHl4RFFVRkRMRkZCUVZFc1IwRkJSeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1VVRkJVU3hGUVVGRkxFVkJRVVVzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UFFVTndSVHM3UjBGRFJqczdRVUZGUkN4TlFVRkpMRTlCUVU4c1MwRkJTeXhUUVVGVExFbEJRVWtzV1VGQldTeEZRVUZGTzBGQlEzcERMRmRCUVU4c1IwRkJSeXhaUVVGWkxFTkJRVU03UjBGRGVFSTdPMEZCUlVRc1RVRkJTU3hQUVVGUExFdEJRVXNzVTBGQlV5eEZRVUZGTzBGQlEzcENMRlZCUVUwc01rSkJRV01zWTBGQll5eEhRVUZITEU5QlFVOHNRMEZCUXl4SlFVRkpMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0SFFVTTFSU3hOUVVGTkxFbEJRVWtzVDBGQlR5eFpRVUZaTEZGQlFWRXNSVUZCUlR0QlFVTjBReXhYUVVGUExFOUJRVThzUTBGQlF5eFBRVUZQTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1IwRkRiRU03UTBGRFJqczdRVUZGVFN4VFFVRlRMRWxCUVVrc1IwRkJSenRCUVVOeVFpeFRRVUZQTEVWQlFVVXNRMEZCUXp0RFFVTllPenRCUVVWRUxGTkJRVk1zVVVGQlVTeERRVUZETEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVN1FVRkRMMElzVFVGQlNTeERRVUZETEVsQlFVa3NTVUZCU1N4RlFVRkZMRTFCUVUwc1NVRkJTU3hKUVVGSkxFTkJRVUVzUVVGQlF5eEZRVUZGTzBGQlF6bENMRkZCUVVrc1IwRkJSeXhKUVVGSkxFZEJRVWNzYTBKQlFWa3NTVUZCU1N4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRE8wRkJRM0pETEZGQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1QwRkJUeXhEUVVGRE8wZEJRM0pDTzBGQlEwUXNVMEZCVHl4SlFVRkpMRU5CUVVNN1EwRkRZanM3UVVGRlJDeFRRVUZUTEdsQ1FVRnBRaXhEUVVGRExFVkJRVVVzUlVGQlJTeEpRVUZKTEVWQlFVVXNVMEZCVXl4RlFVRkZMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzVjBGQlZ5eEZRVUZGTzBGQlEzcEZMRTFCUVVrc1JVRkJSU3hEUVVGRExGTkJRVk1zUlVGQlJUdEJRVU5vUWl4UlFVRkpMRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU03UVVGRFppeFJRVUZKTEVkQlFVY3NSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkRha0lzU1VGQlNTeEZRVU5LTEV0QlFVc3NSVUZEVEN4VFFVRlRMRVZCUTFRc1RVRkJUU3hKUVVGSkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZEYmtJc1NVRkJTU3hGUVVOS0xGZEJRVmNzUlVGRFdDeE5RVUZOTEVOQlExQXNRMEZCUXp0QlFVTkdMRk5CUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMGRCUXpOQ08wRkJRMFFzVTBGQlR5eEpRVUZKTEVOQlFVTTdRMEZEWWpzN1FVRkZSQ3hUUVVGVExDdENRVUVyUWl4RFFVRkRMR0ZCUVdFc1JVRkJSU3hUUVVGVExFVkJRVVU3UVVGRGFrVXNVVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCUVN4VlFVRlZMRVZCUVVrN1FVRkRMME1zVVVGQlNTeE5RVUZOTEVkQlFVY3NZVUZCWVN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wRkJRM1pETEdsQ1FVRmhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFZEJRVWNzZDBKQlFYZENMRU5CUVVNc1RVRkJUU3hGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZETzBkQlEzcEZMRU5CUVVNc1EwRkJRenREUVVOS096dEJRVVZFTEZOQlFWTXNkMEpCUVhkQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTEZOQlFWTXNSVUZCUlR0QlFVTnVSQ3hOUVVGTkxHTkJRV01zUjBGQlJ5eFRRVUZUTEVOQlFVTXNZMEZCWXl4RFFVRkRPMEZCUTJoRUxGTkJRVThzSzBKQlFWY3NUVUZCVFN4RlFVRkZMRlZCUVVFc1QwRkJUeXhGUVVGSk8wRkJRMjVETEZkQlFVOHNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxHTkJRV01zUlVGQlpDeGpRVUZqTEVWQlFVVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRIUVVOc1JDeERRVUZETEVOQlFVTTdRMEZEU2lJc0ltWnBiR1VpT2lKeWRXNTBhVzFsTG1weklpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nVlhScGJITWdabkp2YlNBbkxpOTFkR2xzY3ljN1hHNXBiWEJ2Y25RZ1JYaGpaWEIwYVc5dUlHWnliMjBnSnk0dlpYaGpaWEIwYVc5dUp6dGNibWx0Y0c5eWRDQjdYRzRnSUVOUFRWQkpURVZTWDFKRlZrbFRTVTlPTEZ4dUlDQmpjbVZoZEdWR2NtRnRaU3hjYmlBZ1RFRlRWRjlEVDAxUVFWUkpRa3hGWDBOUFRWQkpURVZTWDFKRlZrbFRTVTlPTEZ4dUlDQlNSVlpKVTBsUFRsOURTRUZPUjBWVFhHNTlJR1p5YjIwZ0p5NHZZbUZ6WlNjN1hHNXBiWEJ2Y25RZ2V5QnRiM1psU0dWc2NHVnlWRzlJYjI5cmN5QjlJR1p5YjIwZ0p5NHZhR1ZzY0dWeWN5YzdYRzVwYlhCdmNuUWdleUIzY21Gd1NHVnNjR1Z5SUgwZ1puSnZiU0FuTGk5cGJuUmxjbTVoYkM5M2NtRndTR1ZzY0dWeUp6dGNibWx0Y0c5eWRDQjdYRzRnSUdOeVpXRjBaVkJ5YjNSdlFXTmpaWE56UTI5dWRISnZiQ3hjYmlBZ2NtVnpkV3gwU1hOQmJHeHZkMlZrWEc1OUlHWnliMjBnSnk0dmFXNTBaWEp1WVd3dmNISnZkRzh0WVdOalpYTnpKenRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdOb1pXTnJVbVYyYVhOcGIyNG9ZMjl0Y0dsc1pYSkpibVp2S1NCN1hHNGdJR052Ym5OMElHTnZiWEJwYkdWeVVtVjJhWE5wYjI0Z1BTQW9ZMjl0Y0dsc1pYSkpibVp2SUNZbUlHTnZiWEJwYkdWeVNXNW1iMXN3WFNrZ2ZId2dNU3hjYmlBZ0lDQmpkWEp5Wlc1MFVtVjJhWE5wYjI0Z1BTQkRUMDFRU1V4RlVsOVNSVlpKVTBsUFRqdGNibHh1SUNCcFppQW9YRzRnSUNBZ1kyOXRjR2xzWlhKU1pYWnBjMmx2YmlBK1BTQk1RVk5VWDBOUFRWQkJWRWxDVEVWZlEwOU5VRWxNUlZKZlVrVldTVk5KVDA0Z0ppWmNiaUFnSUNCamIyMXdhV3hsY2xKbGRtbHphVzl1SUR3OUlFTlBUVkJKVEVWU1gxSkZWa2xUU1U5T1hHNGdJQ2tnZTF4dUlDQWdJSEpsZEhWeWJqdGNiaUFnZlZ4dVhHNGdJR2xtSUNoamIyMXdhV3hsY2xKbGRtbHphVzl1SUR3Z1RFRlRWRjlEVDAxUVFWUkpRa3hGWDBOUFRWQkpURVZTWDFKRlZrbFRTVTlPS1NCN1hHNGdJQ0FnWTI5dWMzUWdjblZ1ZEdsdFpWWmxjbk5wYjI1eklEMGdVa1ZXU1ZOSlQwNWZRMGhCVGtkRlUxdGpkWEp5Wlc1MFVtVjJhWE5wYjI1ZExGeHVJQ0FnSUNBZ1kyOXRjR2xzWlhKV1pYSnphVzl1Y3lBOUlGSkZWa2xUU1U5T1gwTklRVTVIUlZOYlkyOXRjR2xzWlhKU1pYWnBjMmx2YmwwN1hHNGdJQ0FnZEdoeWIzY2dibVYzSUVWNFkyVndkR2x2YmloY2JpQWdJQ0FnSUNkVVpXMXdiR0YwWlNCM1lYTWdjSEpsWTI5dGNHbHNaV1FnZDJsMGFDQmhiaUJ2YkdSbGNpQjJaWEp6YVc5dUlHOW1JRWhoYm1Sc1pXSmhjbk1nZEdoaGJpQjBhR1VnWTNWeWNtVnVkQ0J5ZFc1MGFXMWxMaUFuSUN0Y2JpQWdJQ0FnSUNBZ0oxQnNaV0Z6WlNCMWNHUmhkR1VnZVc5MWNpQndjbVZqYjIxd2FXeGxjaUIwYnlCaElHNWxkMlZ5SUhabGNuTnBiMjRnS0NjZ0sxeHVJQ0FnSUNBZ0lDQnlkVzUwYVcxbFZtVnljMmx2Ym5NZ0sxeHVJQ0FnSUNBZ0lDQW5LU0J2Y2lCa2IzZHVaM0poWkdVZ2VXOTFjaUJ5ZFc1MGFXMWxJSFJ2SUdGdUlHOXNaR1Z5SUhabGNuTnBiMjRnS0NjZ0sxeHVJQ0FnSUNBZ0lDQmpiMjF3YVd4bGNsWmxjbk5wYjI1eklDdGNiaUFnSUNBZ0lDQWdKeWt1SjF4dUlDQWdJQ2s3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnTHk4Z1ZYTmxJSFJvWlNCbGJXSmxaR1JsWkNCMlpYSnphVzl1SUdsdVptOGdjMmx1WTJVZ2RHaGxJSEoxYm5ScGJXVWdaRzlsYzI0bmRDQnJibTkzSUdGaWIzVjBJSFJvYVhNZ2NtVjJhWE5wYjI0Z2VXVjBYRzRnSUNBZ2RHaHliM2NnYm1WM0lFVjRZMlZ3ZEdsdmJpaGNiaUFnSUNBZ0lDZFVaVzF3YkdGMFpTQjNZWE1nY0hKbFkyOXRjR2xzWldRZ2QybDBhQ0JoSUc1bGQyVnlJSFpsY25OcGIyNGdiMllnU0dGdVpHeGxZbUZ5Y3lCMGFHRnVJSFJvWlNCamRYSnlaVzUwSUhKMWJuUnBiV1V1SUNjZ0sxeHVJQ0FnSUNBZ0lDQW5VR3hsWVhObElIVndaR0YwWlNCNWIzVnlJSEoxYm5ScGJXVWdkRzhnWVNCdVpYZGxjaUIyWlhKemFXOXVJQ2duSUN0Y2JpQWdJQ0FnSUNBZ1kyOXRjR2xzWlhKSmJtWnZXekZkSUN0Y2JpQWdJQ0FnSUNBZ0p5a3VKMXh1SUNBZ0lDazdYRzRnSUgxY2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSFJsYlhCc1lYUmxLSFJsYlhCc1lYUmxVM0JsWXl3Z1pXNTJLU0I3WEc0Z0lDOHFJR2x6ZEdGdVluVnNJR2xuYm05eVpTQnVaWGgwSUNvdlhHNGdJR2xtSUNnaFpXNTJLU0I3WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRVY0WTJWd2RHbHZiaWduVG04Z1pXNTJhWEp2Ym0xbGJuUWdjR0Z6YzJWa0lIUnZJSFJsYlhCc1lYUmxKeWs3WEc0Z0lIMWNiaUFnYVdZZ0tDRjBaVzF3YkdGMFpWTndaV01nZkh3Z0lYUmxiWEJzWVhSbFUzQmxZeTV0WVdsdUtTQjdYRzRnSUNBZ2RHaHliM2NnYm1WM0lFVjRZMlZ3ZEdsdmJpZ25WVzVyYm05M2JpQjBaVzF3YkdGMFpTQnZZbXBsWTNRNklDY2dLeUIwZVhCbGIyWWdkR1Z0Y0d4aGRHVlRjR1ZqS1R0Y2JpQWdmVnh1WEc0Z0lIUmxiWEJzWVhSbFUzQmxZeTV0WVdsdUxtUmxZMjl5WVhSdmNpQTlJSFJsYlhCc1lYUmxVM0JsWXk1dFlXbHVYMlE3WEc1Y2JpQWdMeThnVG05MFpUb2dWWE5wYm1jZ1pXNTJMbFpOSUhKbFptVnlaVzVqWlhNZ2NtRjBhR1Z5SUhSb1lXNGdiRzlqWVd3Z2RtRnlJSEpsWm1WeVpXNWpaWE1nZEdoeWIzVm5hRzkxZENCMGFHbHpJSE5sWTNScGIyNGdkRzhnWVd4c2IzZGNiaUFnTHk4Z1ptOXlJR1Y0ZEdWeWJtRnNJSFZ6WlhKeklIUnZJRzkyWlhKeWFXUmxJSFJvWlhObElHRnpJSEJ6WlhWa2J5MXpkWEJ3YjNKMFpXUWdRVkJKY3k1Y2JpQWdaVzUyTGxaTkxtTm9aV05yVW1WMmFYTnBiMjRvZEdWdGNHeGhkR1ZUY0dWakxtTnZiWEJwYkdWeUtUdGNibHh1SUNBdkx5QmlZV05yZDJGeVpITWdZMjl0Y0dGMGFXSnBiR2wwZVNCbWIzSWdjSEpsWTI5dGNHbHNaV1FnZEdWdGNHeGhkR1Z6SUhkcGRHZ2dZMjl0Y0dsc1pYSXRkbVZ5YzJsdmJpQTNJQ2c4TkM0ekxqQXBYRzRnSUdOdmJuTjBJSFJsYlhCc1lYUmxWMkZ6VUhKbFkyOXRjR2xzWldSWGFYUm9RMjl0Y0dsc1pYSldOeUE5WEc0Z0lDQWdkR1Z0Y0d4aGRHVlRjR1ZqTG1OdmJYQnBiR1Z5SUNZbUlIUmxiWEJzWVhSbFUzQmxZeTVqYjIxd2FXeGxjbHN3WFNBOVBUMGdOenRjYmx4dUlDQm1kVzVqZEdsdmJpQnBiblp2YTJWUVlYSjBhV0ZzVjNKaGNIQmxjaWh3WVhKMGFXRnNMQ0JqYjI1MFpYaDBMQ0J2Y0hScGIyNXpLU0I3WEc0Z0lDQWdhV1lnS0c5d2RHbHZibk11YUdGemFDa2dlMXh1SUNBZ0lDQWdZMjl1ZEdWNGRDQTlJRlYwYVd4ekxtVjRkR1Z1WkNoN2ZTd2dZMjl1ZEdWNGRDd2diM0IwYVc5dWN5NW9ZWE5vS1R0Y2JpQWdJQ0FnSUdsbUlDaHZjSFJwYjI1ekxtbGtjeWtnZTF4dUlDQWdJQ0FnSUNCdmNIUnBiMjV6TG1sa2Mxc3dYU0E5SUhSeWRXVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhCaGNuUnBZV3dnUFNCbGJuWXVWazB1Y21WemIyeDJaVkJoY25ScFlXd3VZMkZzYkNoMGFHbHpMQ0J3WVhKMGFXRnNMQ0JqYjI1MFpYaDBMQ0J2Y0hScGIyNXpLVHRjYmx4dUlDQWdJR3hsZENCbGVIUmxibVJsWkU5d2RHbHZibk1nUFNCVmRHbHNjeTVsZUhSbGJtUW9lMzBzSUc5d2RHbHZibk1zSUh0Y2JpQWdJQ0FnSUdodmIydHpPaUIwYUdsekxtaHZiMnR6TEZ4dUlDQWdJQ0FnY0hKdmRHOUJZMk5sYzNORGIyNTBjbTlzT2lCMGFHbHpMbkJ5YjNSdlFXTmpaWE56UTI5dWRISnZiRnh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdiR1YwSUhKbGMzVnNkQ0E5SUdWdWRpNVdUUzVwYm5admEyVlFZWEowYVdGc0xtTmhiR3dvWEc0Z0lDQWdJQ0IwYUdsekxGeHVJQ0FnSUNBZ2NHRnlkR2xoYkN4Y2JpQWdJQ0FnSUdOdmJuUmxlSFFzWEc0Z0lDQWdJQ0JsZUhSbGJtUmxaRTl3ZEdsdmJuTmNiaUFnSUNBcE8xeHVYRzRnSUNBZ2FXWWdLSEpsYzNWc2RDQTlQU0J1ZFd4c0lDWW1JR1Z1ZGk1amIyMXdhV3hsS1NCN1hHNGdJQ0FnSUNCdmNIUnBiMjV6TG5CaGNuUnBZV3h6VzI5d2RHbHZibk11Ym1GdFpWMGdQU0JsYm5ZdVkyOXRjR2xzWlNoY2JpQWdJQ0FnSUNBZ2NHRnlkR2xoYkN4Y2JpQWdJQ0FnSUNBZ2RHVnRjR3hoZEdWVGNHVmpMbU52YlhCcGJHVnlUM0IwYVc5dWN5eGNiaUFnSUNBZ0lDQWdaVzUyWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnY21WemRXeDBJRDBnYjNCMGFXOXVjeTV3WVhKMGFXRnNjMXR2Y0hScGIyNXpMbTVoYldWZEtHTnZiblJsZUhRc0lHVjRkR1Z1WkdWa1QzQjBhVzl1Y3lrN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoeVpYTjFiSFFnSVQwZ2JuVnNiQ2tnZTF4dUlDQWdJQ0FnYVdZZ0tHOXdkR2x2Ym5NdWFXNWtaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JzYVc1bGN5QTlJSEpsYzNWc2RDNXpjR3hwZENnblhGeHVKeWs3WEc0Z0lDQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdMQ0JzSUQwZ2JHbHVaWE11YkdWdVozUm9PeUJwSUR3Z2JEc2dhU3NyS1NCN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0NGc2FXNWxjMXRwWFNBbUppQnBJQ3NnTVNBOVBUMGdiQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUNBZ2JHbHVaWE5iYVYwZ1BTQnZjSFJwYjI1ekxtbHVaR1Z1ZENBcklHeHBibVZ6VzJsZE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSEpsYzNWc2RDQTlJR3hwYm1WekxtcHZhVzRvSjF4Y2JpY3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVY0WTJWd2RHbHZiaWhjYmlBZ0lDQWdJQ0FnSjFSb1pTQndZWEowYVdGc0lDY2dLMXh1SUNBZ0lDQWdJQ0FnSUc5d2RHbHZibk11Ym1GdFpTQXJYRzRnSUNBZ0lDQWdJQ0FnSnlCamIzVnNaQ0J1YjNRZ1ltVWdZMjl0Y0dsc1pXUWdkMmhsYmlCeWRXNXVhVzVuSUdsdUlISjFiblJwYldVdGIyNXNlU0J0YjJSbEoxeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZMeUJLZFhOMElHRmtaQ0IzWVhSbGNseHVJQ0JzWlhRZ1kyOXVkR0ZwYm1WeUlEMGdlMXh1SUNBZ0lITjBjbWxqZERvZ1puVnVZM1JwYjI0b2IySnFMQ0J1WVcxbExDQnNiMk1wSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hiMkpxSUh4OElDRW9ibUZ0WlNCcGJpQnZZbW9wS1NCN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZlR05sY0hScGIyNG9KMXdpSnlBcklHNWhiV1VnS3lBblhDSWdibTkwSUdSbFptbHVaV1FnYVc0Z0p5QXJJRzlpYWl3Z2UxeHVJQ0FnSUNBZ0lDQWdJR3h2WXpvZ2JHOWpYRzRnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJRzlpYWx0dVlXMWxYVHRjYmlBZ0lDQjlMRnh1SUNBZ0lHeHZiMnQxY0ZCeWIzQmxjblI1T2lCbWRXNWpkR2x2Ymlod1lYSmxiblFzSUhCeWIzQmxjblI1VG1GdFpTa2dlMXh1SUNBZ0lDQWdiR1YwSUhKbGMzVnNkQ0E5SUhCaGNtVnVkRnR3Y205d1pYSjBlVTVoYldWZE8xeHVJQ0FnSUNBZ2FXWWdLSEpsYzNWc2RDQTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9UMkpxWldOMExuQnliM1J2ZEhsd1pTNW9ZWE5QZDI1UWNtOXdaWEowZVM1allXeHNLSEJoY21WdWRDd2djSEp2Y0dWeWRIbE9ZVzFsS1NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCcFppQW9jbVZ6ZFd4MFNYTkJiR3h2ZDJWa0tISmxjM1ZzZEN3Z1kyOXVkR0ZwYm1WeUxuQnliM1J2UVdOalpYTnpRMjl1ZEhKdmJDd2djSEp2Y0dWeWRIbE9ZVzFsS1NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjlMRnh1SUNBZ0lHeHZiMnQxY0RvZ1puVnVZM1JwYjI0b1pHVndkR2h6TENCdVlXMWxLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnNaVzRnUFNCa1pYQjBhSE11YkdWdVozUm9PMXh1SUNBZ0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JzWlc0N0lHa3JLeWtnZTF4dUlDQWdJQ0FnSUNCc1pYUWdjbVZ6ZFd4MElEMGdaR1Z3ZEdoelcybGRJQ1ltSUdOdmJuUmhhVzVsY2k1c2IyOXJkWEJRY205d1pYSjBlU2hrWlhCMGFITmJhVjBzSUc1aGJXVXBPMXh1SUNBZ0lDQWdJQ0JwWmlBb2NtVnpkV3gwSUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1pHVndkR2h6VzJsZFcyNWhiV1ZkTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnZlN4Y2JpQWdJQ0JzWVcxaVpHRTZJR1oxYm1OMGFXOXVLR04xY25KbGJuUXNJR052Ym5SbGVIUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBlWEJsYjJZZ1kzVnljbVZ1ZENBOVBUMGdKMloxYm1OMGFXOXVKeUEvSUdOMWNuSmxiblF1WTJGc2JDaGpiMjUwWlhoMEtTQTZJR04xY25KbGJuUTdYRzRnSUNBZ2ZTeGNibHh1SUNBZ0lHVnpZMkZ3WlVWNGNISmxjM05wYjI0NklGVjBhV3h6TG1WelkyRndaVVY0Y0hKbGMzTnBiMjRzWEc0Z0lDQWdhVzUyYjJ0bFVHRnlkR2xoYkRvZ2FXNTJiMnRsVUdGeWRHbGhiRmR5WVhCd1pYSXNYRzVjYmlBZ0lDQm1iam9nWm5WdVkzUnBiMjRvYVNrZ2UxeHVJQ0FnSUNBZ2JHVjBJSEpsZENBOUlIUmxiWEJzWVhSbFUzQmxZMXRwWFR0Y2JpQWdJQ0FnSUhKbGRDNWtaV052Y21GMGIzSWdQU0IwWlcxd2JHRjBaVk53WldOYmFTQXJJQ2RmWkNkZE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGREdGNiaUFnSUNCOUxGeHVYRzRnSUNBZ2NISnZaM0poYlhNNklGdGRMRnh1SUNBZ0lIQnliMmR5WVcwNklHWjFibU4wYVc5dUtHa3NJR1JoZEdFc0lHUmxZMnhoY21Wa1FteHZZMnRRWVhKaGJYTXNJR0pzYjJOclVHRnlZVzF6TENCa1pYQjBhSE1wSUh0Y2JpQWdJQ0FnSUd4bGRDQndjbTluY21GdFYzSmhjSEJsY2lBOUlIUm9hWE11Y0hKdlozSmhiWE5iYVYwc1hHNGdJQ0FnSUNBZ0lHWnVJRDBnZEdocGN5NW1iaWhwS1R0Y2JpQWdJQ0FnSUdsbUlDaGtZWFJoSUh4OElHUmxjSFJvY3lCOGZDQmliRzlqYTFCaGNtRnRjeUI4ZkNCa1pXTnNZWEpsWkVKc2IyTnJVR0Z5WVcxektTQjdYRzRnSUNBZ0lDQWdJSEJ5YjJkeVlXMVhjbUZ3Y0dWeUlEMGdkM0poY0ZCeWIyZHlZVzBvWEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeXhjYmlBZ0lDQWdJQ0FnSUNCcExGeHVJQ0FnSUNBZ0lDQWdJR1p1TEZ4dUlDQWdJQ0FnSUNBZ0lHUmhkR0VzWEc0Z0lDQWdJQ0FnSUNBZ1pHVmpiR0Z5WldSQ2JHOWphMUJoY21GdGN5eGNiaUFnSUNBZ0lDQWdJQ0JpYkc5amExQmhjbUZ0Y3l4Y2JpQWdJQ0FnSUNBZ0lDQmtaWEIwYUhOY2JpQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCcFppQW9JWEJ5YjJkeVlXMVhjbUZ3Y0dWeUtTQjdYRzRnSUNBZ0lDQWdJSEJ5YjJkeVlXMVhjbUZ3Y0dWeUlEMGdkR2hwY3k1d2NtOW5jbUZ0YzF0cFhTQTlJSGR5WVhCUWNtOW5jbUZ0S0hSb2FYTXNJR2tzSUdadUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCd2NtOW5jbUZ0VjNKaGNIQmxjanRjYmlBZ0lDQjlMRnh1WEc0Z0lDQWdaR0YwWVRvZ1puVnVZM1JwYjI0b2RtRnNkV1VzSUdSbGNIUm9LU0I3WEc0Z0lDQWdJQ0IzYUdsc1pTQW9kbUZzZFdVZ0ppWWdaR1Z3ZEdndExTa2dlMXh1SUNBZ0lDQWdJQ0IyWVd4MVpTQTlJSFpoYkhWbExsOXdZWEpsYm5RN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnZG1Gc2RXVTdYRzRnSUNBZ2ZTeGNiaUFnSUNCdFpYSm5aVWxtVG1WbFpHVmtPaUJtZFc1amRHbHZiaWh3WVhKaGJTd2dZMjl0Ylc5dUtTQjdYRzRnSUNBZ0lDQnNaWFFnYjJKcUlEMGdjR0Z5WVcwZ2ZId2dZMjl0Ylc5dU8xeHVYRzRnSUNBZ0lDQnBaaUFvY0dGeVlXMGdKaVlnWTI5dGJXOXVJQ1ltSUhCaGNtRnRJQ0U5UFNCamIyMXRiMjRwSUh0Y2JpQWdJQ0FnSUNBZ2IySnFJRDBnVlhScGJITXVaWGgwWlc1a0tIdDlMQ0JqYjIxdGIyNHNJSEJoY21GdEtUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdjbVYwZFhKdUlHOWlhanRjYmlBZ0lDQjlMRnh1SUNBZ0lDOHZJRUZ1SUdWdGNIUjVJRzlpYW1WamRDQjBieUIxYzJVZ1lYTWdjbVZ3YkdGalpXMWxiblFnWm05eUlHNTFiR3d0WTI5dWRHVjRkSE5jYmlBZ0lDQnVkV3hzUTI5dWRHVjRkRG9nVDJKcVpXTjBMbk5sWVd3b2UzMHBMRnh1WEc0Z0lDQWdibTl2Y0RvZ1pXNTJMbFpOTG01dmIzQXNYRzRnSUNBZ1kyOXRjR2xzWlhKSmJtWnZPaUIwWlcxd2JHRjBaVk53WldNdVkyOXRjR2xzWlhKY2JpQWdmVHRjYmx4dUlDQm1kVzVqZEdsdmJpQnlaWFFvWTI5dWRHVjRkQ3dnYjNCMGFXOXVjeUE5SUh0OUtTQjdYRzRnSUNBZ2JHVjBJR1JoZEdFZ1BTQnZjSFJwYjI1ekxtUmhkR0U3WEc1Y2JpQWdJQ0J5WlhRdVgzTmxkSFZ3S0c5d2RHbHZibk1wTzF4dUlDQWdJR2xtSUNnaGIzQjBhVzl1Y3k1d1lYSjBhV0ZzSUNZbUlIUmxiWEJzWVhSbFUzQmxZeTUxYzJWRVlYUmhLU0I3WEc0Z0lDQWdJQ0JrWVhSaElEMGdhVzVwZEVSaGRHRW9ZMjl1ZEdWNGRDd2daR0YwWVNrN1hHNGdJQ0FnZlZ4dUlDQWdJR3hsZENCa1pYQjBhSE1zWEc0Z0lDQWdJQ0JpYkc5amExQmhjbUZ0Y3lBOUlIUmxiWEJzWVhSbFUzQmxZeTUxYzJWQ2JHOWphMUJoY21GdGN5QS9JRnRkSURvZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUdsbUlDaDBaVzF3YkdGMFpWTndaV011ZFhObFJHVndkR2h6S1NCN1hHNGdJQ0FnSUNCcFppQW9iM0IwYVc5dWN5NWtaWEIwYUhNcElIdGNiaUFnSUNBZ0lDQWdaR1Z3ZEdoeklEMWNiaUFnSUNBZ0lDQWdJQ0JqYjI1MFpYaDBJQ0U5SUc5d2RHbHZibk11WkdWd2RHaHpXekJkWEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JRnRqYjI1MFpYaDBYUzVqYjI1allYUW9iM0IwYVc5dWN5NWtaWEIwYUhNcFhHNGdJQ0FnSUNBZ0lDQWdJQ0E2SUc5d2RHbHZibk11WkdWd2RHaHpPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdaR1Z3ZEdoeklEMGdXMk52Ym5SbGVIUmRPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lHWjFibU4wYVc5dUlHMWhhVzRvWTI5dWRHVjRkQ0F2S2l3Z2IzQjBhVzl1Y3lvdktTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ0lDQW5KeUFyWEc0Z0lDQWdJQ0FnSUhSbGJYQnNZWFJsVTNCbFl5NXRZV2x1S0Z4dUlDQWdJQ0FnSUNBZ0lHTnZiblJoYVc1bGNpeGNiaUFnSUNBZ0lDQWdJQ0JqYjI1MFpYaDBMRnh1SUNBZ0lDQWdJQ0FnSUdOdmJuUmhhVzVsY2k1b1pXeHdaWEp6TEZ4dUlDQWdJQ0FnSUNBZ0lHTnZiblJoYVc1bGNpNXdZWEowYVdGc2N5eGNiaUFnSUNBZ0lDQWdJQ0JrWVhSaExGeHVJQ0FnSUNBZ0lDQWdJR0pzYjJOclVHRnlZVzF6TEZ4dUlDQWdJQ0FnSUNBZ0lHUmxjSFJvYzF4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUcxaGFXNGdQU0JsZUdWamRYUmxSR1ZqYjNKaGRHOXljeWhjYmlBZ0lDQWdJSFJsYlhCc1lYUmxVM0JsWXk1dFlXbHVMRnh1SUNBZ0lDQWdiV0ZwYml4Y2JpQWdJQ0FnSUdOdmJuUmhhVzVsY2l4Y2JpQWdJQ0FnSUc5d2RHbHZibk11WkdWd2RHaHpJSHg4SUZ0ZExGeHVJQ0FnSUNBZ1pHRjBZU3hjYmlBZ0lDQWdJR0pzYjJOclVHRnlZVzF6WEc0Z0lDQWdLVHRjYmlBZ0lDQnlaWFIxY200Z2JXRnBiaWhqYjI1MFpYaDBMQ0J2Y0hScGIyNXpLVHRjYmlBZ2ZWeHVYRzRnSUhKbGRDNXBjMVJ2Y0NBOUlIUnlkV1U3WEc1Y2JpQWdjbVYwTGw5elpYUjFjQ0E5SUdaMWJtTjBhVzl1S0c5d2RHbHZibk1wSUh0Y2JpQWdJQ0JwWmlBb0lXOXdkR2x2Ym5NdWNHRnlkR2xoYkNrZ2UxeHVJQ0FnSUNBZ2JHVjBJRzFsY21kbFpFaGxiSEJsY25NZ1BTQlZkR2xzY3k1bGVIUmxibVFvZTMwc0lHVnVkaTVvWld4d1pYSnpMQ0J2Y0hScGIyNXpMbWhsYkhCbGNuTXBPMXh1SUNBZ0lDQWdkM0poY0VobGJIQmxjbk5VYjFCaGMzTk1iMjlyZFhCUWNtOXdaWEowZVNodFpYSm5aV1JJWld4d1pYSnpMQ0JqYjI1MFlXbHVaWElwTzF4dUlDQWdJQ0FnWTI5dWRHRnBibVZ5TG1obGJIQmxjbk1nUFNCdFpYSm5aV1JJWld4d1pYSnpPMXh1WEc0Z0lDQWdJQ0JwWmlBb2RHVnRjR3hoZEdWVGNHVmpMblZ6WlZCaGNuUnBZV3dwSUh0Y2JpQWdJQ0FnSUNBZ0x5OGdWWE5sSUcxbGNtZGxTV1pPWldWa1pXUWdhR1Z5WlNCMGJ5QndjbVYyWlc1MElHTnZiWEJwYkdsdVp5Qm5iRzlpWVd3Z2NHRnlkR2xoYkhNZ2JYVnNkR2x3YkdVZ2RHbHRaWE5jYmlBZ0lDQWdJQ0FnWTI5dWRHRnBibVZ5TG5CaGNuUnBZV3h6SUQwZ1kyOXVkR0ZwYm1WeUxtMWxjbWRsU1daT1pXVmtaV1FvWEc0Z0lDQWdJQ0FnSUNBZ2IzQjBhVzl1Y3k1d1lYSjBhV0ZzY3l4Y2JpQWdJQ0FnSUNBZ0lDQmxibll1Y0dGeWRHbGhiSE5jYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdsbUlDaDBaVzF3YkdGMFpWTndaV011ZFhObFVHRnlkR2xoYkNCOGZDQjBaVzF3YkdGMFpWTndaV011ZFhObFJHVmpiM0poZEc5eWN5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1MFlXbHVaWEl1WkdWamIzSmhkRzl5Y3lBOUlGVjBhV3h6TG1WNGRHVnVaQ2hjYmlBZ0lDQWdJQ0FnSUNCN2ZTeGNiaUFnSUNBZ0lDQWdJQ0JsYm5ZdVpHVmpiM0poZEc5eWN5eGNiaUFnSUNBZ0lDQWdJQ0J2Y0hScGIyNXpMbVJsWTI5eVlYUnZjbk5jYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1kyOXVkR0ZwYm1WeUxtaHZiMnR6SUQwZ2UzMDdYRzRnSUNBZ0lDQmpiMjUwWVdsdVpYSXVjSEp2ZEc5QlkyTmxjM05EYjI1MGNtOXNJRDBnWTNKbFlYUmxVSEp2ZEc5QlkyTmxjM05EYjI1MGNtOXNLRzl3ZEdsdmJuTXBPMXh1WEc0Z0lDQWdJQ0JzWlhRZ2EyVmxjRWhsYkhCbGNrbHVTR1ZzY0dWeWN5QTlYRzRnSUNBZ0lDQWdJRzl3ZEdsdmJuTXVZV3hzYjNkRFlXeHNjMVJ2U0dWc2NHVnlUV2x6YzJsdVp5QjhmRnh1SUNBZ0lDQWdJQ0IwWlcxd2JHRjBaVmRoYzFCeVpXTnZiWEJwYkdWa1YybDBhRU52YlhCcGJHVnlWamM3WEc0Z0lDQWdJQ0J0YjNabFNHVnNjR1Z5Vkc5SWIyOXJjeWhqYjI1MFlXbHVaWElzSUNkb1pXeHdaWEpOYVhOemFXNW5KeXdnYTJWbGNFaGxiSEJsY2tsdVNHVnNjR1Z5Y3lrN1hHNGdJQ0FnSUNCdGIzWmxTR1ZzY0dWeVZHOUliMjlyY3loamIyNTBZV2x1WlhJc0lDZGliRzlqYTBobGJIQmxjazFwYzNOcGJtY25MQ0JyWldWd1NHVnNjR1Z5U1c1SVpXeHdaWEp6S1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdZMjl1ZEdGcGJtVnlMbkJ5YjNSdlFXTmpaWE56UTI5dWRISnZiQ0E5SUc5d2RHbHZibk11Y0hKdmRHOUJZMk5sYzNORGIyNTBjbTlzT3lBdkx5QnBiblJsY201aGJDQnZjSFJwYjI1Y2JpQWdJQ0FnSUdOdmJuUmhhVzVsY2k1b1pXeHdaWEp6SUQwZ2IzQjBhVzl1Y3k1b1pXeHdaWEp6TzF4dUlDQWdJQ0FnWTI5dWRHRnBibVZ5TG5CaGNuUnBZV3h6SUQwZ2IzQjBhVzl1Y3k1d1lYSjBhV0ZzY3p0Y2JpQWdJQ0FnSUdOdmJuUmhhVzVsY2k1a1pXTnZjbUYwYjNKeklEMGdiM0IwYVc5dWN5NWtaV052Y21GMGIzSnpPMXh1SUNBZ0lDQWdZMjl1ZEdGcGJtVnlMbWh2YjJ0eklEMGdiM0IwYVc5dWN5NW9iMjlyY3p0Y2JpQWdJQ0I5WEc0Z0lIMDdYRzVjYmlBZ2NtVjBMbDlqYUdsc1pDQTlJR1oxYm1OMGFXOXVLR2tzSUdSaGRHRXNJR0pzYjJOclVHRnlZVzF6TENCa1pYQjBhSE1wSUh0Y2JpQWdJQ0JwWmlBb2RHVnRjR3hoZEdWVGNHVmpMblZ6WlVKc2IyTnJVR0Z5WVcxeklDWW1JQ0ZpYkc5amExQmhjbUZ0Y3lrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVjRZMlZ3ZEdsdmJpZ25iWFZ6ZENCd1lYTnpJR0pzYjJOcklIQmhjbUZ0Y3ljcE8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb2RHVnRjR3hoZEdWVGNHVmpMblZ6WlVSbGNIUm9jeUFtSmlBaFpHVndkR2h6S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYaGpaWEIwYVc5dUtDZHRkWE4wSUhCaGMzTWdjR0Z5Wlc1MElHUmxjSFJvY3ljcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUIzY21Gd1VISnZaM0poYlNoY2JpQWdJQ0FnSUdOdmJuUmhhVzVsY2l4Y2JpQWdJQ0FnSUdrc1hHNGdJQ0FnSUNCMFpXMXdiR0YwWlZOd1pXTmJhVjBzWEc0Z0lDQWdJQ0JrWVhSaExGeHVJQ0FnSUNBZ01DeGNiaUFnSUNBZ0lHSnNiMk5yVUdGeVlXMXpMRnh1SUNBZ0lDQWdaR1Z3ZEdoelhHNGdJQ0FnS1R0Y2JpQWdmVHRjYmlBZ2NtVjBkWEp1SUhKbGREdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhkeVlYQlFjbTluY21GdEtGeHVJQ0JqYjI1MFlXbHVaWElzWEc0Z0lHa3NYRzRnSUdadUxGeHVJQ0JrWVhSaExGeHVJQ0JrWldOc1lYSmxaRUpzYjJOclVHRnlZVzF6TEZ4dUlDQmliRzlqYTFCaGNtRnRjeXhjYmlBZ1pHVndkR2h6WEc0cElIdGNiaUFnWm5WdVkzUnBiMjRnY0hKdlp5aGpiMjUwWlhoMExDQnZjSFJwYjI1eklEMGdlMzBwSUh0Y2JpQWdJQ0JzWlhRZ1kzVnljbVZ1ZEVSbGNIUm9jeUE5SUdSbGNIUm9jenRjYmlBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0JrWlhCMGFITWdKaVpjYmlBZ0lDQWdJR052Ym5SbGVIUWdJVDBnWkdWd2RHaHpXekJkSUNZbVhHNGdJQ0FnSUNBaEtHTnZiblJsZUhRZ1BUMDlJR052Ym5SaGFXNWxjaTV1ZFd4c1EyOXVkR1Y0ZENBbUppQmtaWEIwYUhOYk1GMGdQVDA5SUc1MWJHd3BYRzRnSUNBZ0tTQjdYRzRnSUNBZ0lDQmpkWEp5Wlc1MFJHVndkR2h6SUQwZ1cyTnZiblJsZUhSZExtTnZibU5oZENoa1pYQjBhSE1wTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQm1iaWhjYmlBZ0lDQWdJR052Ym5SaGFXNWxjaXhjYmlBZ0lDQWdJR052Ym5SbGVIUXNYRzRnSUNBZ0lDQmpiMjUwWVdsdVpYSXVhR1ZzY0dWeWN5eGNiaUFnSUNBZ0lHTnZiblJoYVc1bGNpNXdZWEowYVdGc2N5eGNiaUFnSUNBZ0lHOXdkR2x2Ym5NdVpHRjBZU0I4ZkNCa1lYUmhMRnh1SUNBZ0lDQWdZbXh2WTJ0UVlYSmhiWE1nSmlZZ1cyOXdkR2x2Ym5NdVlteHZZMnRRWVhKaGJYTmRMbU52Ym1OaGRDaGliRzlqYTFCaGNtRnRjeWtzWEc0Z0lDQWdJQ0JqZFhKeVpXNTBSR1Z3ZEdoelhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lIQnliMmNnUFNCbGVHVmpkWFJsUkdWamIzSmhkRzl5Y3lobWJpd2djSEp2Wnl3Z1kyOXVkR0ZwYm1WeUxDQmtaWEIwYUhNc0lHUmhkR0VzSUdKc2IyTnJVR0Z5WVcxektUdGNibHh1SUNCd2NtOW5MbkJ5YjJkeVlXMGdQU0JwTzF4dUlDQndjbTluTG1SbGNIUm9JRDBnWkdWd2RHaHpJRDhnWkdWd2RHaHpMbXhsYm1kMGFDQTZJREE3WEc0Z0lIQnliMmN1WW14dlkydFFZWEpoYlhNZ1BTQmtaV05zWVhKbFpFSnNiMk5yVUdGeVlXMXpJSHg4SURBN1hHNGdJSEpsZEhWeWJpQndjbTluTzF4dWZWeHVYRzR2S2lwY2JpQXFJRlJvYVhNZ2FYTWdZM1Z5Y21WdWRHeDVJSEJoY25RZ2IyWWdkR2hsSUc5bVptbGphV0ZzSUVGUVNTd2dkR2hsY21WbWIzSmxJR2x0Y0d4bGJXVnVkR0YwYVc5dUlHUmxkR0ZwYkhNZ2MyaHZkV3hrSUc1dmRDQmlaU0JqYUdGdVoyVmtMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NtVnpiMngyWlZCaGNuUnBZV3dvY0dGeWRHbGhiQ3dnWTI5dWRHVjRkQ3dnYjNCMGFXOXVjeWtnZTF4dUlDQnBaaUFvSVhCaGNuUnBZV3dwSUh0Y2JpQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1dVlXMWxJRDA5UFNBblFIQmhjblJwWVd3dFlteHZZMnNuS1NCN1hHNGdJQ0FnSUNCd1lYSjBhV0ZzSUQwZ2IzQjBhVzl1Y3k1a1lYUmhXeWR3WVhKMGFXRnNMV0pzYjJOckoxMDdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhCaGNuUnBZV3dnUFNCdmNIUnBiMjV6TG5CaGNuUnBZV3h6VzI5d2RHbHZibk11Ym1GdFpWMDdYRzRnSUNBZ2ZWeHVJQ0I5SUdWc2MyVWdhV1lnS0NGd1lYSjBhV0ZzTG1OaGJHd2dKaVlnSVc5d2RHbHZibk11Ym1GdFpTa2dlMXh1SUNBZ0lDOHZJRlJvYVhNZ2FYTWdZU0JrZVc1aGJXbGpJSEJoY25ScFlXd2dkR2hoZENCeVpYUjFjbTVsWkNCaElITjBjbWx1WjF4dUlDQWdJRzl3ZEdsdmJuTXVibUZ0WlNBOUlIQmhjblJwWVd3N1hHNGdJQ0FnY0dGeWRHbGhiQ0E5SUc5d2RHbHZibk11Y0dGeWRHbGhiSE5iY0dGeWRHbGhiRjA3WEc0Z0lIMWNiaUFnY21WMGRYSnVJSEJoY25ScFlXdzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGJuWnZhMlZRWVhKMGFXRnNLSEJoY25ScFlXd3NJR052Ym5SbGVIUXNJRzl3ZEdsdmJuTXBJSHRjYmlBZ0x5OGdWWE5sSUhSb1pTQmpkWEp5Wlc1MElHTnNiM04xY21VZ1kyOXVkR1Y0ZENCMGJ5QnpZWFpsSUhSb1pTQndZWEowYVdGc0xXSnNiMk5ySUdsbUlIUm9hWE1nY0dGeWRHbGhiRnh1SUNCamIyNXpkQ0JqZFhKeVpXNTBVR0Z5ZEdsaGJFSnNiMk5ySUQwZ2IzQjBhVzl1Y3k1a1lYUmhJQ1ltSUc5d2RHbHZibk11WkdGMFlWc25jR0Z5ZEdsaGJDMWliRzlqYXlkZE8xeHVJQ0J2Y0hScGIyNXpMbkJoY25ScFlXd2dQU0IwY25WbE8xeHVJQ0JwWmlBb2IzQjBhVzl1Y3k1cFpITXBJSHRjYmlBZ0lDQnZjSFJwYjI1ekxtUmhkR0V1WTI5dWRHVjRkRkJoZEdnZ1BTQnZjSFJwYjI1ekxtbGtjMXN3WFNCOGZDQnZjSFJwYjI1ekxtUmhkR0V1WTI5dWRHVjRkRkJoZEdnN1hHNGdJSDFjYmx4dUlDQnNaWFFnY0dGeWRHbGhiRUpzYjJOck8xeHVJQ0JwWmlBb2IzQjBhVzl1Y3k1bWJpQW1KaUJ2Y0hScGIyNXpMbVp1SUNFOVBTQnViMjl3S1NCN1hHNGdJQ0FnYjNCMGFXOXVjeTVrWVhSaElEMGdZM0psWVhSbFJuSmhiV1VvYjNCMGFXOXVjeTVrWVhSaEtUdGNiaUFnSUNBdkx5QlhjbUZ3Y0dWeUlHWjFibU4wYVc5dUlIUnZJR2RsZENCaFkyTmxjM01nZEc4Z1kzVnljbVZ1ZEZCaGNuUnBZV3hDYkc5amF5Qm1jbTl0SUhSb1pTQmpiRzl6ZFhKbFhHNGdJQ0FnYkdWMElHWnVJRDBnYjNCMGFXOXVjeTVtYmp0Y2JpQWdJQ0J3WVhKMGFXRnNRbXh2WTJzZ1BTQnZjSFJwYjI1ekxtUmhkR0ZiSjNCaGNuUnBZV3d0WW14dlkyc25YU0E5SUdaMWJtTjBhVzl1SUhCaGNuUnBZV3hDYkc5amExZHlZWEJ3WlhJb1hHNGdJQ0FnSUNCamIyNTBaWGgwTEZ4dUlDQWdJQ0FnYjNCMGFXOXVjeUE5SUh0OVhHNGdJQ0FnS1NCN1hHNGdJQ0FnSUNBdkx5QlNaWE4wYjNKbElIUm9aU0J3WVhKMGFXRnNMV0pzYjJOcklHWnliMjBnZEdobElHTnNiM04xY21VZ1ptOXlJSFJvWlNCbGVHVmpkWFJwYjI0Z2IyWWdkR2hsSUdKc2IyTnJYRzRnSUNBZ0lDQXZMeUJwTG1VdUlIUm9aU0J3WVhKMElHbHVjMmxrWlNCMGFHVWdZbXh2WTJzZ2IyWWdkR2hsSUhCaGNuUnBZV3dnWTJGc2JDNWNiaUFnSUNBZ0lHOXdkR2x2Ym5NdVpHRjBZU0E5SUdOeVpXRjBaVVp5WVcxbEtHOXdkR2x2Ym5NdVpHRjBZU2s3WEc0Z0lDQWdJQ0J2Y0hScGIyNXpMbVJoZEdGYkozQmhjblJwWVd3dFlteHZZMnNuWFNBOUlHTjFjbkpsYm5SUVlYSjBhV0ZzUW14dlkyczdYRzRnSUNBZ0lDQnlaWFIxY200Z1ptNG9ZMjl1ZEdWNGRDd2diM0IwYVc5dWN5azdYRzRnSUNBZ2ZUdGNiaUFnSUNCcFppQW9abTR1Y0dGeWRHbGhiSE1wSUh0Y2JpQWdJQ0FnSUc5d2RHbHZibk11Y0dGeWRHbGhiSE1nUFNCVmRHbHNjeTVsZUhSbGJtUW9lMzBzSUc5d2RHbHZibk11Y0dGeWRHbGhiSE1zSUdadUxuQmhjblJwWVd4ektUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQnBaaUFvY0dGeWRHbGhiQ0E5UFQwZ2RXNWtaV1pwYm1Wa0lDWW1JSEJoY25ScFlXeENiRzlqYXlrZ2UxeHVJQ0FnSUhCaGNuUnBZV3dnUFNCd1lYSjBhV0ZzUW14dlkyczdYRzRnSUgxY2JseHVJQ0JwWmlBb2NHRnlkR2xoYkNBOVBUMGdkVzVrWldacGJtVmtLU0I3WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRVY0WTJWd2RHbHZiaWduVkdobElIQmhjblJwWVd3Z0p5QXJJRzl3ZEdsdmJuTXVibUZ0WlNBcklDY2dZMjkxYkdRZ2JtOTBJR0psSUdadmRXNWtKeWs3WEc0Z0lIMGdaV3h6WlNCcFppQW9jR0Z5ZEdsaGJDQnBibk4wWVc1alpXOW1JRVoxYm1OMGFXOXVLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIQmhjblJwWVd3b1kyOXVkR1Y0ZEN3Z2IzQjBhVzl1Y3lrN1hHNGdJSDFjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHNXZiM0FvS1NCN1hHNGdJSEpsZEhWeWJpQW5KenRjYm4xY2JseHVablZ1WTNScGIyNGdhVzVwZEVSaGRHRW9ZMjl1ZEdWNGRDd2daR0YwWVNrZ2UxeHVJQ0JwWmlBb0lXUmhkR0VnZkh3Z0lTZ25jbTl2ZENjZ2FXNGdaR0YwWVNrcElIdGNiaUFnSUNCa1lYUmhJRDBnWkdGMFlTQS9JR055WldGMFpVWnlZVzFsS0dSaGRHRXBJRG9nZTMwN1hHNGdJQ0FnWkdGMFlTNXliMjkwSUQwZ1kyOXVkR1Y0ZER0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnWkdGMFlUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z1pYaGxZM1YwWlVSbFkyOXlZWFJ2Y25Nb1ptNHNJSEJ5YjJjc0lHTnZiblJoYVc1bGNpd2daR1Z3ZEdoekxDQmtZWFJoTENCaWJHOWphMUJoY21GdGN5a2dlMXh1SUNCcFppQW9abTR1WkdWamIzSmhkRzl5S1NCN1hHNGdJQ0FnYkdWMElIQnliM0J6SUQwZ2UzMDdYRzRnSUNBZ2NISnZaeUE5SUdadUxtUmxZMjl5WVhSdmNpaGNiaUFnSUNBZ0lIQnliMmNzWEc0Z0lDQWdJQ0J3Y205d2N5eGNiaUFnSUNBZ0lHTnZiblJoYVc1bGNpeGNiaUFnSUNBZ0lHUmxjSFJvY3lBbUppQmtaWEIwYUhOYk1GMHNYRzRnSUNBZ0lDQmtZWFJoTEZ4dUlDQWdJQ0FnWW14dlkydFFZWEpoYlhNc1hHNGdJQ0FnSUNCa1pYQjBhSE5jYmlBZ0lDQXBPMXh1SUNBZ0lGVjBhV3h6TG1WNGRHVnVaQ2h3Y205bkxDQndjbTl3Y3lrN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUhCeWIyYzdYRzU5WEc1Y2JtWjFibU4wYVc5dUlIZHlZWEJJWld4d1pYSnpWRzlRWVhOelRHOXZhM1Z3VUhKdmNHVnlkSGtvYldWeVoyVmtTR1ZzY0dWeWN5d2dZMjl1ZEdGcGJtVnlLU0I3WEc0Z0lFOWlhbVZqZEM1clpYbHpLRzFsY21kbFpFaGxiSEJsY25NcExtWnZja1ZoWTJnb2FHVnNjR1Z5VG1GdFpTQTlQaUI3WEc0Z0lDQWdiR1YwSUdobGJIQmxjaUE5SUcxbGNtZGxaRWhsYkhCbGNuTmJhR1ZzY0dWeVRtRnRaVjA3WEc0Z0lDQWdiV1Z5WjJWa1NHVnNjR1Z5YzF0b1pXeHdaWEpPWVcxbFhTQTlJSEJoYzNOTWIyOXJkWEJRY205d1pYSjBlVTl3ZEdsdmJpaG9aV3h3WlhJc0lHTnZiblJoYVc1bGNpazdYRzRnSUgwcE8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCd1lYTnpURzl2YTNWd1VISnZjR1Z5ZEhsUGNIUnBiMjRvYUdWc2NHVnlMQ0JqYjI1MFlXbHVaWElwSUh0Y2JpQWdZMjl1YzNRZ2JHOXZhM1Z3VUhKdmNHVnlkSGtnUFNCamIyNTBZV2x1WlhJdWJHOXZhM1Z3VUhKdmNHVnlkSGs3WEc0Z0lISmxkSFZ5YmlCM2NtRndTR1ZzY0dWeUtHaGxiSEJsY2l3Z2IzQjBhVzl1Y3lBOVBpQjdYRzRnSUNBZ2NtVjBkWEp1SUZWMGFXeHpMbVY0ZEdWdVpDaDdJR3h2YjJ0MWNGQnliM0JsY25SNUlIMHNJRzl3ZEdsdmJuTXBPMXh1SUNCOUtUdGNibjFjYmlKZGZRPT1cbiIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gZnVuY3Rpb24gKEhhbmRsZWJhcnMpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgdmFyIHJvb3QgPSB0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyA/IGdsb2JhbCA6IHdpbmRvdyxcbiAgICAgICRIYW5kbGViYXJzID0gcm9vdC5IYW5kbGViYXJzO1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBIYW5kbGViYXJzLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHJvb3QuSGFuZGxlYmFycyA9PT0gSGFuZGxlYmFycykge1xuICAgICAgcm9vdC5IYW5kbGViYXJzID0gJEhhbmRsZWJhcnM7XG4gICAgfVxuICAgIHJldHVybiBIYW5kbGViYXJzO1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMMnhwWWk5b1lXNWtiR1ZpWVhKekwyNXZMV052Ym1ac2FXTjBMbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN2NVSkJRV1VzVlVGQlV5eFZRVUZWTEVWQlFVVTdPMEZCUld4RExFMUJRVWtzU1VGQlNTeEhRVUZITEU5QlFVOHNUVUZCVFN4TFFVRkxMRmRCUVZjc1IwRkJSeXhOUVVGTkxFZEJRVWNzVFVGQlRUdE5RVU40UkN4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF6czdRVUZGYUVNc1dVRkJWU3hEUVVGRExGVkJRVlVzUjBGQlJ5eFpRVUZYTzBGQlEycERMRkZCUVVrc1NVRkJTU3hEUVVGRExGVkJRVlVzUzBGQlN5eFZRVUZWTEVWQlFVVTdRVUZEYkVNc1ZVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eFhRVUZYTEVOQlFVTTdTMEZETDBJN1FVRkRSQ3hYUVVGUExGVkJRVlVzUTBGQlF6dEhRVU51UWl4RFFVRkRPME5CUTBnaUxDSm1hV3hsSWpvaWJtOHRZMjl1Wm14cFkzUXVhbk1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKbGVIQnZjblFnWkdWbVlYVnNkQ0JtZFc1amRHbHZiaWhJWVc1a2JHVmlZWEp6S1NCN1hHNGdJQzhxSUdsemRHRnVZblZzSUdsbmJtOXlaU0J1WlhoMElDb3ZYRzRnSUd4bGRDQnliMjkwSUQwZ2RIbHdaVzltSUdkc2IySmhiQ0FoUFQwZ0ozVnVaR1ZtYVc1bFpDY2dQeUJuYkc5aVlXd2dPaUIzYVc1a2IzY3NYRzRnSUNBZ0pFaGhibVJzWldKaGNuTWdQU0J5YjI5MExraGhibVJzWldKaGNuTTdYRzRnSUM4cUlHbHpkR0Z1WW5Wc0lHbG5ibTl5WlNCdVpYaDBJQ292WEc0Z0lFaGhibVJzWldKaGNuTXVibTlEYjI1bWJHbGpkQ0E5SUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUdsbUlDaHliMjkwTGtoaGJtUnNaV0poY25NZ1BUMDlJRWhoYm1Sc1pXSmhjbk1wSUh0Y2JpQWdJQ0FnSUhKdmIzUXVTR0Z1Wkd4bFltRnljeUE5SUNSSVlXNWtiR1ZpWVhKek8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdTR0Z1Wkd4bFltRnljenRjYmlBZ2ZUdGNibjFjYmlKZGZRPT1cbiIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbi8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuLy8gaXN0YW5idWwgaWdub3JlIG5leHRcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBlbHNlIHsgdmFyIG5ld09iaiA9IHt9OyBpZiAob2JqICE9IG51bGwpIHsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IG5ld09ialsnZGVmYXVsdCddID0gb2JqOyByZXR1cm4gbmV3T2JqOyB9IH1cblxudmFyIF9oYW5kbGViYXJzQmFzZSA9IHJlcXVpcmUoJy4vaGFuZGxlYmFycy9iYXNlJyk7XG5cbnZhciBiYXNlID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQoX2hhbmRsZWJhcnNCYXNlKTtcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcblxudmFyIF9oYW5kbGViYXJzU2FmZVN0cmluZyA9IHJlcXVpcmUoJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZycpO1xuXG52YXIgX2hhbmRsZWJhcnNTYWZlU3RyaW5nMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2hhbmRsZWJhcnNTYWZlU3RyaW5nKTtcblxudmFyIF9oYW5kbGViYXJzRXhjZXB0aW9uID0gcmVxdWlyZSgnLi9oYW5kbGViYXJzL2V4Y2VwdGlvbicpO1xuXG52YXIgX2hhbmRsZWJhcnNFeGNlcHRpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaGFuZGxlYmFyc0V4Y2VwdGlvbik7XG5cbnZhciBfaGFuZGxlYmFyc1V0aWxzID0gcmVxdWlyZSgnLi9oYW5kbGViYXJzL3V0aWxzJyk7XG5cbnZhciBVdGlscyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKF9oYW5kbGViYXJzVXRpbHMpO1xuXG52YXIgX2hhbmRsZWJhcnNSdW50aW1lID0gcmVxdWlyZSgnLi9oYW5kbGViYXJzL3J1bnRpbWUnKTtcblxudmFyIHJ1bnRpbWUgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChfaGFuZGxlYmFyc1J1bnRpbWUpO1xuXG52YXIgX2hhbmRsZWJhcnNOb0NvbmZsaWN0ID0gcmVxdWlyZSgnLi9oYW5kbGViYXJzL25vLWNvbmZsaWN0Jyk7XG5cbnZhciBfaGFuZGxlYmFyc05vQ29uZmxpY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaGFuZGxlYmFyc05vQ29uZmxpY3QpO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgdmFyIGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IF9oYW5kbGViYXJzU2FmZVN0cmluZzJbJ2RlZmF1bHQnXTtcbiAgaGIuRXhjZXB0aW9uID0gX2hhbmRsZWJhcnNFeGNlcHRpb24yWydkZWZhdWx0J107XG4gIGhiLlV0aWxzID0gVXRpbHM7XG4gIGhiLmVzY2FwZUV4cHJlc3Npb24gPSBVdGlscy5lc2NhcGVFeHByZXNzaW9uO1xuXG4gIGhiLlZNID0gcnVudGltZTtcbiAgaGIudGVtcGxhdGUgPSBmdW5jdGlvbiAoc3BlYykge1xuICAgIHJldHVybiBydW50aW1lLnRlbXBsYXRlKHNwZWMsIGhiKTtcbiAgfTtcblxuICByZXR1cm4gaGI7XG59XG5cbnZhciBpbnN0ID0gY3JlYXRlKCk7XG5pbnN0LmNyZWF0ZSA9IGNyZWF0ZTtcblxuX2hhbmRsZWJhcnNOb0NvbmZsaWN0MlsnZGVmYXVsdCddKGluc3QpO1xuXG5pbnN0WydkZWZhdWx0J10gPSBpbnN0O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBpbnN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwyeHBZaTlvWVc1a2JHVmlZWEp6TG5KMWJuUnBiV1V1YW5NaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN09FSkJRWE5DTEcxQ1FVRnRRanM3U1VGQk4wSXNTVUZCU1RzN096czdiME5CU1U4c01FSkJRVEJDT3pzN08yMURRVU16UWl4M1FrRkJkMEk3T3pzN0swSkJRM1pDTEc5Q1FVRnZRanM3U1VGQkwwSXNTMEZCU3pzN2FVTkJRMUVzYzBKQlFYTkNPenRKUVVGdVF5eFBRVUZQT3p0dlEwRkZTU3d3UWtGQk1FSTdPenM3TzBGQlIycEVMRk5CUVZNc1RVRkJUU3hIUVVGSE8wRkJRMmhDTEUxQlFVa3NSVUZCUlN4SFFVRkhMRWxCUVVrc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RlFVRkZMRU5CUVVNN08wRkJSVEZETEU5QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEzWkNMRWxCUVVVc1EwRkJReXhWUVVGVkxHOURRVUZoTEVOQlFVTTdRVUZETTBJc1NVRkJSU3hEUVVGRExGTkJRVk1zYlVOQlFWa3NRMEZCUXp0QlFVTjZRaXhKUVVGRkxFTkJRVU1zUzBGQlN5eEhRVUZITEV0QlFVc3NRMEZCUXp0QlFVTnFRaXhKUVVGRkxFTkJRVU1zWjBKQlFXZENMRWRCUVVjc1MwRkJTeXhEUVVGRExHZENRVUZuUWl4RFFVRkRPenRCUVVVM1F5eEpRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJRenRCUVVOb1FpeEpRVUZGTEVOQlFVTXNVVUZCVVN4SFFVRkhMRlZCUVZNc1NVRkJTU3hGUVVGRk8wRkJRek5DTEZkQlFVOHNUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdSMEZEYmtNc1EwRkJRenM3UVVGRlJpeFRRVUZQTEVWQlFVVXNRMEZCUXp0RFFVTllPenRCUVVWRUxFbEJRVWtzU1VGQlNTeEhRVUZITEUxQlFVMHNSVUZCUlN4RFFVRkRPMEZCUTNCQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NUVUZCVFN4RFFVRkRPenRCUVVWeVFpeHJRMEZCVnl4SlFVRkpMRU5CUVVNc1EwRkJRenM3UVVGRmFrSXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF6czdjVUpCUlZJc1NVRkJTU0lzSW1acGJHVWlPaUpvWVc1a2JHVmlZWEp6TG5KMWJuUnBiV1V1YW5NaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJpWVhObElHWnliMjBnSnk0dmFHRnVaR3hsWW1GeWN5OWlZWE5sSnp0Y2JseHVMeThnUldGamFDQnZaaUIwYUdWelpTQmhkV2R0Wlc1MElIUm9aU0JJWVc1a2JHVmlZWEp6SUc5aWFtVmpkQzRnVG04Z2JtVmxaQ0IwYnlCelpYUjFjQ0JvWlhKbExseHVMeThnS0ZSb2FYTWdhWE1nWkc5dVpTQjBieUJsWVhOcGJIa2djMmhoY21VZ1kyOWtaU0JpWlhSM1pXVnVJR052YlcxdmJtcHpJR0Z1WkNCaWNtOTNjMlVnWlc1MmN5bGNibWx0Y0c5eWRDQlRZV1psVTNSeWFXNW5JR1p5YjIwZ0p5NHZhR0Z1Wkd4bFltRnljeTl6WVdabExYTjBjbWx1WnljN1hHNXBiWEJ2Y25RZ1JYaGpaWEIwYVc5dUlHWnliMjBnSnk0dmFHRnVaR3hsWW1GeWN5OWxlR05sY0hScGIyNG5PMXh1YVcxd2IzSjBJQ29nWVhNZ1ZYUnBiSE1nWm5KdmJTQW5MaTlvWVc1a2JHVmlZWEp6TDNWMGFXeHpKenRjYm1sdGNHOXlkQ0FxSUdGeklISjFiblJwYldVZ1puSnZiU0FuTGk5b1lXNWtiR1ZpWVhKekwzSjFiblJwYldVbk8xeHVYRzVwYlhCdmNuUWdibTlEYjI1bWJHbGpkQ0JtY205dElDY3VMMmhoYm1Sc1pXSmhjbk12Ym04dFkyOXVabXhwWTNRbk8xeHVYRzR2THlCR2IzSWdZMjl0Y0dGMGFXSnBiR2wwZVNCaGJtUWdkWE5oWjJVZ2IzVjBjMmxrWlNCdlppQnRiMlIxYkdVZ2MzbHpkR1Z0Y3l3Z2JXRnJaU0IwYUdVZ1NHRnVaR3hsWW1GeWN5QnZZbXBsWTNRZ1lTQnVZVzFsYzNCaFkyVmNibVoxYm1OMGFXOXVJR055WldGMFpTZ3BJSHRjYmlBZ2JHVjBJR2hpSUQwZ2JtVjNJR0poYzJVdVNHRnVaR3hsWW1GeWMwVnVkbWx5YjI1dFpXNTBLQ2s3WEc1Y2JpQWdWWFJwYkhNdVpYaDBaVzVrS0doaUxDQmlZWE5sS1R0Y2JpQWdhR0l1VTJGbVpWTjBjbWx1WnlBOUlGTmhabVZUZEhKcGJtYzdYRzRnSUdoaUxrVjRZMlZ3ZEdsdmJpQTlJRVY0WTJWd2RHbHZianRjYmlBZ2FHSXVWWFJwYkhNZ1BTQlZkR2xzY3p0Y2JpQWdhR0l1WlhOallYQmxSWGh3Y21WemMybHZiaUE5SUZWMGFXeHpMbVZ6WTJGd1pVVjRjSEpsYzNOcGIyNDdYRzVjYmlBZ2FHSXVWazBnUFNCeWRXNTBhVzFsTzF4dUlDQm9ZaTUwWlcxd2JHRjBaU0E5SUdaMWJtTjBhVzl1S0hOd1pXTXBJSHRjYmlBZ0lDQnlaWFIxY200Z2NuVnVkR2x0WlM1MFpXMXdiR0YwWlNoemNHVmpMQ0JvWWlrN1hHNGdJSDA3WEc1Y2JpQWdjbVYwZFhKdUlHaGlPMXh1ZlZ4dVhHNXNaWFFnYVc1emRDQTlJR055WldGMFpTZ3BPMXh1YVc1emRDNWpjbVZoZEdVZ1BTQmpjbVZoZEdVN1hHNWNibTV2UTI5dVpteHBZM1FvYVc1emRDazdYRzVjYm1sdWMzUmJKMlJsWm1GMWJIUW5YU0E5SUdsdWMzUTdYRzVjYm1WNGNHOXlkQ0JrWldaaGRXeDBJR2x1YzNRN1hHNGlYWDA9XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG52YXIgQVNUID0ge1xuICAvLyBQdWJsaWMgQVBJIHVzZWQgdG8gZXZhbHVhdGUgZGVyaXZlZCBhdHRyaWJ1dGVzIHJlZ2FyZGluZyBBU1Qgbm9kZXNcbiAgaGVscGVyczoge1xuICAgIC8vIGEgbXVzdGFjaGUgaXMgZGVmaW5pdGVseSBhIGhlbHBlciBpZjpcbiAgICAvLyAqIGl0IGlzIGFuIGVsaWdpYmxlIGhlbHBlciwgYW5kXG4gICAgLy8gKiBpdCBoYXMgYXQgbGVhc3Qgb25lIHBhcmFtZXRlciBvciBoYXNoIHNlZ21lbnRcbiAgICBoZWxwZXJFeHByZXNzaW9uOiBmdW5jdGlvbiBoZWxwZXJFeHByZXNzaW9uKG5vZGUpIHtcbiAgICAgIHJldHVybiBub2RlLnR5cGUgPT09ICdTdWJFeHByZXNzaW9uJyB8fCAobm9kZS50eXBlID09PSAnTXVzdGFjaGVTdGF0ZW1lbnQnIHx8IG5vZGUudHlwZSA9PT0gJ0Jsb2NrU3RhdGVtZW50JykgJiYgISEobm9kZS5wYXJhbXMgJiYgbm9kZS5wYXJhbXMubGVuZ3RoIHx8IG5vZGUuaGFzaCk7XG4gICAgfSxcblxuICAgIHNjb3BlZElkOiBmdW5jdGlvbiBzY29wZWRJZChwYXRoKSB7XG4gICAgICByZXR1cm4gKC9eXFwufHRoaXNcXGIvLnRlc3QocGF0aC5vcmlnaW5hbClcbiAgICAgICk7XG4gICAgfSxcblxuICAgIC8vIGFuIElEIGlzIHNpbXBsZSBpZiBpdCBvbmx5IGhhcyBvbmUgcGFydCwgYW5kIHRoYXQgcGFydCBpcyBub3RcbiAgICAvLyBgLi5gIG9yIGB0aGlzYC5cbiAgICBzaW1wbGVJZDogZnVuY3Rpb24gc2ltcGxlSWQocGF0aCkge1xuICAgICAgcmV0dXJuIHBhdGgucGFydHMubGVuZ3RoID09PSAxICYmICFBU1QuaGVscGVycy5zY29wZWRJZChwYXRoKSAmJiAhcGF0aC5kZXB0aDtcbiAgICB9XG4gIH1cbn07XG5cbi8vIE11c3QgYmUgZXhwb3J0ZWQgYXMgYW4gb2JqZWN0IHJhdGhlciB0aGFuIHRoZSByb290IG9mIHRoZSBtb2R1bGUgYXMgdGhlIGppc29uIGxleGVyXG4vLyBtdXN0IG1vZGlmeSB0aGUgb2JqZWN0IHRvIG9wZXJhdGUgcHJvcGVybHkuXG5leHBvcnRzWydkZWZhdWx0J10gPSBBU1Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMMnhwWWk5b1lXNWtiR1ZpWVhKekwyTnZiWEJwYkdWeUwyRnpkQzVxY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN1FVRkJRU3hKUVVGSkxFZEJRVWNzUjBGQlJ6czdRVUZGVWl4VFFVRlBMRVZCUVVVN096czdRVUZKVUN4dlFrRkJaMElzUlVGQlJTd3dRa0ZCVXl4SlFVRkpMRVZCUVVVN1FVRkRMMElzWVVGRFJTeEpRVUZKTEVOQlFVTXNTVUZCU1N4TFFVRkxMR1ZCUVdVc1NVRkROVUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4TFFVRkxMRzFDUVVGdFFpeEpRVU5xUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hMUVVGTExHZENRVUZuUWl4RFFVRkJMRWxCUXpsQ0xFTkJRVU1zUlVGQlJTeEJRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVsQlFVc3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJRU3hCUVVGRExFRkJRVU1zUTBGRGRrUTdTMEZEU0RzN1FVRkZSQ3haUVVGUkxFVkJRVVVzYTBKQlFWTXNTVUZCU1N4RlFVRkZPMEZCUTNaQ0xHRkJRVThzWVVGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8xRkJRVU03UzBGRGVrTTdPenM3UVVGSlJDeFpRVUZSTEVWQlFVVXNhMEpCUVZNc1NVRkJTU3hGUVVGRk8wRkJRM1pDTEdGQlEwVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVOeVJUdExRVU5JTzBkQlEwWTdRMEZEUml4RFFVRkRPenM3TzNGQ1FVbGhMRWRCUVVjaUxDSm1hV3hsSWpvaVlYTjBMbXB6SWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWJHVjBJRUZUVkNBOUlIdGNiaUFnTHk4Z1VIVmliR2xqSUVGUVNTQjFjMlZrSUhSdklHVjJZV3gxWVhSbElHUmxjbWwyWldRZ1lYUjBjbWxpZFhSbGN5QnlaV2RoY21ScGJtY2dRVk5VSUc1dlpHVnpYRzRnSUdobGJIQmxjbk02SUh0Y2JpQWdJQ0F2THlCaElHMTFjM1JoWTJobElHbHpJR1JsWm1sdWFYUmxiSGtnWVNCb1pXeHdaWElnYVdZNlhHNGdJQ0FnTHk4Z0tpQnBkQ0JwY3lCaGJpQmxiR2xuYVdKc1pTQm9aV3h3WlhJc0lHRnVaRnh1SUNBZ0lDOHZJQ29nYVhRZ2FHRnpJR0YwSUd4bFlYTjBJRzl1WlNCd1lYSmhiV1YwWlhJZ2IzSWdhR0Z6YUNCelpXZHRaVzUwWEc0Z0lDQWdhR1ZzY0dWeVJYaHdjbVZ6YzJsdmJqb2dablZ1WTNScGIyNG9ibTlrWlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUNBZ2JtOWtaUzUwZVhCbElEMDlQU0FuVTNWaVJYaHdjbVZ6YzJsdmJpY2dmSHhjYmlBZ0lDQWdJQ0FnS0NodWIyUmxMblI1Y0dVZ1BUMDlJQ2ROZFhOMFlXTm9aVk4wWVhSbGJXVnVkQ2NnZkh4Y2JpQWdJQ0FnSUNBZ0lDQnViMlJsTG5SNWNHVWdQVDA5SUNkQ2JHOWphMU4wWVhSbGJXVnVkQ2NwSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJU0VvS0c1dlpHVXVjR0Z5WVcxeklDWW1JRzV2WkdVdWNHRnlZVzF6TG14bGJtZDBhQ2tnZkh3Z2JtOWtaUzVvWVhOb0tTbGNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZTeGNibHh1SUNBZ0lITmpiM0JsWkVsa09pQm1kVzVqZEdsdmJpaHdZWFJvS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnTDE1Y1hDNThkR2hwYzF4Y1lpOHVkR1Z6ZENod1lYUm9MbTl5YVdkcGJtRnNLVHRjYmlBZ0lDQjlMRnh1WEc0Z0lDQWdMeThnWVc0Z1NVUWdhWE1nYzJsdGNHeGxJR2xtSUdsMElHOXViSGtnYUdGeklHOXVaU0J3WVhKMExDQmhibVFnZEdoaGRDQndZWEowSUdseklHNXZkRnh1SUNBZ0lDOHZJR0F1TG1BZ2IzSWdZSFJvYVhOZ0xseHVJQ0FnSUhOcGJYQnNaVWxrT2lCbWRXNWpkR2x2Ymlod1lYUm9LU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lDQWdJQ0J3WVhSb0xuQmhjblJ6TG14bGJtZDBhQ0E5UFQwZ01TQW1KaUFoUVZOVUxtaGxiSEJsY25NdWMyTnZjR1ZrU1dRb2NHRjBhQ2tnSmlZZ0lYQmhkR2d1WkdWd2RHaGNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1OU8xeHVYRzR2THlCTmRYTjBJR0psSUdWNGNHOXlkR1ZrSUdGeklHRnVJRzlpYW1WamRDQnlZWFJvWlhJZ2RHaGhiaUIwYUdVZ2NtOXZkQ0J2WmlCMGFHVWdiVzlrZFd4bElHRnpJSFJvWlNCcWFYTnZiaUJzWlhobGNseHVMeThnYlhWemRDQnRiMlJwWm5rZ2RHaGxJRzlpYW1WamRDQjBieUJ2Y0dWeVlYUmxJSEJ5YjNCbGNteDVMbHh1Wlhod2IzSjBJR1JsWm1GMWJIUWdRVk5VTzF4dUlsMTlcbiIsIi8vIEZpbGUgaWdub3JlZCBpbiBjb3ZlcmFnZSB0ZXN0cyB2aWEgc2V0dGluZyBpbiAuaXN0YW5idWwueW1sXG4vKiBKaXNvbiBnZW5lcmF0ZWQgcGFyc2VyICovXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbnZhciBoYW5kbGViYXJzID0gKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcGFyc2VyID0geyB0cmFjZTogZnVuY3Rpb24gdHJhY2UoKSB7fSxcbiAgICAgICAgeXk6IHt9LFxuICAgICAgICBzeW1ib2xzXzogeyBcImVycm9yXCI6IDIsIFwicm9vdFwiOiAzLCBcInByb2dyYW1cIjogNCwgXCJFT0ZcIjogNSwgXCJwcm9ncmFtX3JlcGV0aXRpb24wXCI6IDYsIFwic3RhdGVtZW50XCI6IDcsIFwibXVzdGFjaGVcIjogOCwgXCJibG9ja1wiOiA5LCBcInJhd0Jsb2NrXCI6IDEwLCBcInBhcnRpYWxcIjogMTEsIFwicGFydGlhbEJsb2NrXCI6IDEyLCBcImNvbnRlbnRcIjogMTMsIFwiQ09NTUVOVFwiOiAxNCwgXCJDT05URU5UXCI6IDE1LCBcIm9wZW5SYXdCbG9ja1wiOiAxNiwgXCJyYXdCbG9ja19yZXBldGl0aW9uMFwiOiAxNywgXCJFTkRfUkFXX0JMT0NLXCI6IDE4LCBcIk9QRU5fUkFXX0JMT0NLXCI6IDE5LCBcImhlbHBlck5hbWVcIjogMjAsIFwib3BlblJhd0Jsb2NrX3JlcGV0aXRpb24wXCI6IDIxLCBcIm9wZW5SYXdCbG9ja19vcHRpb24wXCI6IDIyLCBcIkNMT1NFX1JBV19CTE9DS1wiOiAyMywgXCJvcGVuQmxvY2tcIjogMjQsIFwiYmxvY2tfb3B0aW9uMFwiOiAyNSwgXCJjbG9zZUJsb2NrXCI6IDI2LCBcIm9wZW5JbnZlcnNlXCI6IDI3LCBcImJsb2NrX29wdGlvbjFcIjogMjgsIFwiT1BFTl9CTE9DS1wiOiAyOSwgXCJvcGVuQmxvY2tfcmVwZXRpdGlvbjBcIjogMzAsIFwib3BlbkJsb2NrX29wdGlvbjBcIjogMzEsIFwib3BlbkJsb2NrX29wdGlvbjFcIjogMzIsIFwiQ0xPU0VcIjogMzMsIFwiT1BFTl9JTlZFUlNFXCI6IDM0LCBcIm9wZW5JbnZlcnNlX3JlcGV0aXRpb24wXCI6IDM1LCBcIm9wZW5JbnZlcnNlX29wdGlvbjBcIjogMzYsIFwib3BlbkludmVyc2Vfb3B0aW9uMVwiOiAzNywgXCJvcGVuSW52ZXJzZUNoYWluXCI6IDM4LCBcIk9QRU5fSU5WRVJTRV9DSEFJTlwiOiAzOSwgXCJvcGVuSW52ZXJzZUNoYWluX3JlcGV0aXRpb24wXCI6IDQwLCBcIm9wZW5JbnZlcnNlQ2hhaW5fb3B0aW9uMFwiOiA0MSwgXCJvcGVuSW52ZXJzZUNoYWluX29wdGlvbjFcIjogNDIsIFwiaW52ZXJzZUFuZFByb2dyYW1cIjogNDMsIFwiSU5WRVJTRVwiOiA0NCwgXCJpbnZlcnNlQ2hhaW5cIjogNDUsIFwiaW52ZXJzZUNoYWluX29wdGlvbjBcIjogNDYsIFwiT1BFTl9FTkRCTE9DS1wiOiA0NywgXCJPUEVOXCI6IDQ4LCBcIm11c3RhY2hlX3JlcGV0aXRpb24wXCI6IDQ5LCBcIm11c3RhY2hlX29wdGlvbjBcIjogNTAsIFwiT1BFTl9VTkVTQ0FQRURcIjogNTEsIFwibXVzdGFjaGVfcmVwZXRpdGlvbjFcIjogNTIsIFwibXVzdGFjaGVfb3B0aW9uMVwiOiA1MywgXCJDTE9TRV9VTkVTQ0FQRURcIjogNTQsIFwiT1BFTl9QQVJUSUFMXCI6IDU1LCBcInBhcnRpYWxOYW1lXCI6IDU2LCBcInBhcnRpYWxfcmVwZXRpdGlvbjBcIjogNTcsIFwicGFydGlhbF9vcHRpb24wXCI6IDU4LCBcIm9wZW5QYXJ0aWFsQmxvY2tcIjogNTksIFwiT1BFTl9QQVJUSUFMX0JMT0NLXCI6IDYwLCBcIm9wZW5QYXJ0aWFsQmxvY2tfcmVwZXRpdGlvbjBcIjogNjEsIFwib3BlblBhcnRpYWxCbG9ja19vcHRpb24wXCI6IDYyLCBcInBhcmFtXCI6IDYzLCBcInNleHByXCI6IDY0LCBcIk9QRU5fU0VYUFJcIjogNjUsIFwic2V4cHJfcmVwZXRpdGlvbjBcIjogNjYsIFwic2V4cHJfb3B0aW9uMFwiOiA2NywgXCJDTE9TRV9TRVhQUlwiOiA2OCwgXCJoYXNoXCI6IDY5LCBcImhhc2hfcmVwZXRpdGlvbl9wbHVzMFwiOiA3MCwgXCJoYXNoU2VnbWVudFwiOiA3MSwgXCJJRFwiOiA3MiwgXCJFUVVBTFNcIjogNzMsIFwiYmxvY2tQYXJhbXNcIjogNzQsIFwiT1BFTl9CTE9DS19QQVJBTVNcIjogNzUsIFwiYmxvY2tQYXJhbXNfcmVwZXRpdGlvbl9wbHVzMFwiOiA3NiwgXCJDTE9TRV9CTE9DS19QQVJBTVNcIjogNzcsIFwicGF0aFwiOiA3OCwgXCJkYXRhTmFtZVwiOiA3OSwgXCJTVFJJTkdcIjogODAsIFwiTlVNQkVSXCI6IDgxLCBcIkJPT0xFQU5cIjogODIsIFwiVU5ERUZJTkVEXCI6IDgzLCBcIk5VTExcIjogODQsIFwiREFUQVwiOiA4NSwgXCJwYXRoU2VnbWVudHNcIjogODYsIFwiU0VQXCI6IDg3LCBcIiRhY2NlcHRcIjogMCwgXCIkZW5kXCI6IDEgfSxcbiAgICAgICAgdGVybWluYWxzXzogeyAyOiBcImVycm9yXCIsIDU6IFwiRU9GXCIsIDE0OiBcIkNPTU1FTlRcIiwgMTU6IFwiQ09OVEVOVFwiLCAxODogXCJFTkRfUkFXX0JMT0NLXCIsIDE5OiBcIk9QRU5fUkFXX0JMT0NLXCIsIDIzOiBcIkNMT1NFX1JBV19CTE9DS1wiLCAyOTogXCJPUEVOX0JMT0NLXCIsIDMzOiBcIkNMT1NFXCIsIDM0OiBcIk9QRU5fSU5WRVJTRVwiLCAzOTogXCJPUEVOX0lOVkVSU0VfQ0hBSU5cIiwgNDQ6IFwiSU5WRVJTRVwiLCA0NzogXCJPUEVOX0VOREJMT0NLXCIsIDQ4OiBcIk9QRU5cIiwgNTE6IFwiT1BFTl9VTkVTQ0FQRURcIiwgNTQ6IFwiQ0xPU0VfVU5FU0NBUEVEXCIsIDU1OiBcIk9QRU5fUEFSVElBTFwiLCA2MDogXCJPUEVOX1BBUlRJQUxfQkxPQ0tcIiwgNjU6IFwiT1BFTl9TRVhQUlwiLCA2ODogXCJDTE9TRV9TRVhQUlwiLCA3MjogXCJJRFwiLCA3MzogXCJFUVVBTFNcIiwgNzU6IFwiT1BFTl9CTE9DS19QQVJBTVNcIiwgNzc6IFwiQ0xPU0VfQkxPQ0tfUEFSQU1TXCIsIDgwOiBcIlNUUklOR1wiLCA4MTogXCJOVU1CRVJcIiwgODI6IFwiQk9PTEVBTlwiLCA4MzogXCJVTkRFRklORURcIiwgODQ6IFwiTlVMTFwiLCA4NTogXCJEQVRBXCIsIDg3OiBcIlNFUFwiIH0sXG4gICAgICAgIHByb2R1Y3Rpb25zXzogWzAsIFszLCAyXSwgWzQsIDFdLCBbNywgMV0sIFs3LCAxXSwgWzcsIDFdLCBbNywgMV0sIFs3LCAxXSwgWzcsIDFdLCBbNywgMV0sIFsxMywgMV0sIFsxMCwgM10sIFsxNiwgNV0sIFs5LCA0XSwgWzksIDRdLCBbMjQsIDZdLCBbMjcsIDZdLCBbMzgsIDZdLCBbNDMsIDJdLCBbNDUsIDNdLCBbNDUsIDFdLCBbMjYsIDNdLCBbOCwgNV0sIFs4LCA1XSwgWzExLCA1XSwgWzEyLCAzXSwgWzU5LCA1XSwgWzYzLCAxXSwgWzYzLCAxXSwgWzY0LCA1XSwgWzY5LCAxXSwgWzcxLCAzXSwgWzc0LCAzXSwgWzIwLCAxXSwgWzIwLCAxXSwgWzIwLCAxXSwgWzIwLCAxXSwgWzIwLCAxXSwgWzIwLCAxXSwgWzIwLCAxXSwgWzU2LCAxXSwgWzU2LCAxXSwgWzc5LCAyXSwgWzc4LCAxXSwgWzg2LCAzXSwgWzg2LCAxXSwgWzYsIDBdLCBbNiwgMl0sIFsxNywgMF0sIFsxNywgMl0sIFsyMSwgMF0sIFsyMSwgMl0sIFsyMiwgMF0sIFsyMiwgMV0sIFsyNSwgMF0sIFsyNSwgMV0sIFsyOCwgMF0sIFsyOCwgMV0sIFszMCwgMF0sIFszMCwgMl0sIFszMSwgMF0sIFszMSwgMV0sIFszMiwgMF0sIFszMiwgMV0sIFszNSwgMF0sIFszNSwgMl0sIFszNiwgMF0sIFszNiwgMV0sIFszNywgMF0sIFszNywgMV0sIFs0MCwgMF0sIFs0MCwgMl0sIFs0MSwgMF0sIFs0MSwgMV0sIFs0MiwgMF0sIFs0MiwgMV0sIFs0NiwgMF0sIFs0NiwgMV0sIFs0OSwgMF0sIFs0OSwgMl0sIFs1MCwgMF0sIFs1MCwgMV0sIFs1MiwgMF0sIFs1MiwgMl0sIFs1MywgMF0sIFs1MywgMV0sIFs1NywgMF0sIFs1NywgMl0sIFs1OCwgMF0sIFs1OCwgMV0sIFs2MSwgMF0sIFs2MSwgMl0sIFs2MiwgMF0sIFs2MiwgMV0sIFs2NiwgMF0sIFs2NiwgMl0sIFs2NywgMF0sIFs2NywgMV0sIFs3MCwgMV0sIFs3MCwgMl0sIFs3NiwgMV0sIFs3NiwgMl1dLFxuICAgICAgICBwZXJmb3JtQWN0aW9uOiBmdW5jdGlvbiBhbm9ueW1vdXMoeXl0ZXh0LCB5eWxlbmcsIHl5bGluZW5vLCB5eSwgeXlzdGF0ZSwgJCQsIF8kKSB7XG5cbiAgICAgICAgICAgIHZhciAkMCA9ICQkLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBzd2l0Y2ggKHl5c3RhdGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAkJFskMCAtIDFdO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IHl5LnByZXBhcmVQcm9ncmFtKCQkWyQwXSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ0NvbW1lbnRTdGF0ZW1lbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHl5LnN0cmlwQ29tbWVudCgkJFskMF0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXA6IHl5LnN0cmlwRmxhZ3MoJCRbJDBdLCAkJFskMF0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jOiB5eS5sb2NJbmZvKHRoaXMuXyQpXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ0NvbnRlbnRTdGF0ZW1lbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWw6ICQkWyQwXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAkJFskMF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2M6IHl5LmxvY0luZm8odGhpcy5fJClcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSB5eS5wcmVwYXJlUmF3QmxvY2soJCRbJDAgLSAyXSwgJCRbJDAgLSAxXSwgJCRbJDBdLCB0aGlzLl8kKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0geyBwYXRoOiAkJFskMCAtIDNdLCBwYXJhbXM6ICQkWyQwIC0gMl0sIGhhc2g6ICQkWyQwIC0gMV0gfTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0geXkucHJlcGFyZUJsb2NrKCQkWyQwIC0gM10sICQkWyQwIC0gMl0sICQkWyQwIC0gMV0sICQkWyQwXSwgZmFsc2UsIHRoaXMuXyQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDE0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSB5eS5wcmVwYXJlQmxvY2soJCRbJDAgLSAzXSwgJCRbJDAgLSAyXSwgJCRbJDAgLSAxXSwgJCRbJDBdLCB0cnVlLCB0aGlzLl8kKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0geyBvcGVuOiAkJFskMCAtIDVdLCBwYXRoOiAkJFskMCAtIDRdLCBwYXJhbXM6ICQkWyQwIC0gM10sIGhhc2g6ICQkWyQwIC0gMl0sIGJsb2NrUGFyYW1zOiAkJFskMCAtIDFdLCBzdHJpcDogeXkuc3RyaXBGbGFncygkJFskMCAtIDVdLCAkJFskMF0pIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IHsgcGF0aDogJCRbJDAgLSA0XSwgcGFyYW1zOiAkJFskMCAtIDNdLCBoYXNoOiAkJFskMCAtIDJdLCBibG9ja1BhcmFtczogJCRbJDAgLSAxXSwgc3RyaXA6IHl5LnN0cmlwRmxhZ3MoJCRbJDAgLSA1XSwgJCRbJDBdKSB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDE3OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSB7IHBhdGg6ICQkWyQwIC0gNF0sIHBhcmFtczogJCRbJDAgLSAzXSwgaGFzaDogJCRbJDAgLSAyXSwgYmxvY2tQYXJhbXM6ICQkWyQwIC0gMV0sIHN0cmlwOiB5eS5zdHJpcEZsYWdzKCQkWyQwIC0gNV0sICQkWyQwXSkgfTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAxODpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0geyBzdHJpcDogeXkuc3RyaXBGbGFncygkJFskMCAtIDFdLCAkJFskMCAtIDFdKSwgcHJvZ3JhbTogJCRbJDBdIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMTk6XG4gICAgICAgICAgICAgICAgICAgIHZhciBpbnZlcnNlID0geXkucHJlcGFyZUJsb2NrKCQkWyQwIC0gMl0sICQkWyQwIC0gMV0sICQkWyQwXSwgJCRbJDBdLCBmYWxzZSwgdGhpcy5fJCksXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtID0geXkucHJlcGFyZVByb2dyYW0oW2ludmVyc2VdLCAkJFskMCAtIDFdLmxvYyk7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyYW0uY2hhaW5lZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0geyBzdHJpcDogJCRbJDAgLSAyXS5zdHJpcCwgcHJvZ3JhbTogcHJvZ3JhbSwgY2hhaW46IHRydWUgfTtcblxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDIwOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMjE6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IHsgcGF0aDogJCRbJDAgLSAxXSwgc3RyaXA6IHl5LnN0cmlwRmxhZ3MoJCRbJDAgLSAyXSwgJCRbJDBdKSB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSB5eS5wcmVwYXJlTXVzdGFjaGUoJCRbJDAgLSAzXSwgJCRbJDAgLSAyXSwgJCRbJDAgLSAxXSwgJCRbJDAgLSA0XSwgeXkuc3RyaXBGbGFncygkJFskMCAtIDRdLCAkJFskMF0pLCB0aGlzLl8kKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAyMzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0geXkucHJlcGFyZU11c3RhY2hlKCQkWyQwIC0gM10sICQkWyQwIC0gMl0sICQkWyQwIC0gMV0sICQkWyQwIC0gNF0sIHl5LnN0cmlwRmxhZ3MoJCRbJDAgLSA0XSwgJCRbJDBdKSwgdGhpcy5fJCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdQYXJ0aWFsU3RhdGVtZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICQkWyQwIC0gM10sXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6ICQkWyQwIC0gMl0sXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNoOiAkJFskMCAtIDFdLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZW50OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwOiB5eS5zdHJpcEZsYWdzKCQkWyQwIC0gNF0sICQkWyQwXSksXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2M6IHl5LmxvY0luZm8odGhpcy5fJClcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSB5eS5wcmVwYXJlUGFydGlhbEJsb2NrKCQkWyQwIC0gMl0sICQkWyQwIC0gMV0sICQkWyQwXSwgdGhpcy5fJCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMjY6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IHsgcGF0aDogJCRbJDAgLSAzXSwgcGFyYW1zOiAkJFskMCAtIDJdLCBoYXNoOiAkJFskMCAtIDFdLCBzdHJpcDogeXkuc3RyaXBGbGFncygkJFskMCAtIDRdLCAkJFskMF0pIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAyODpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDI5OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnU3ViRXhwcmVzc2lvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAkJFskMCAtIDNdLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiAkJFskMCAtIDJdLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzaDogJCRbJDAgLSAxXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYzogeXkubG9jSW5mbyh0aGlzLl8kKVxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0hhc2gnLCBwYWlyczogJCRbJDBdLCBsb2M6IHl5LmxvY0luZm8odGhpcy5fJCkgfTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0geyB0eXBlOiAnSGFzaFBhaXInLCBrZXk6IHl5LmlkKCQkWyQwIC0gMl0pLCB2YWx1ZTogJCRbJDBdLCBsb2M6IHl5LmxvY0luZm8odGhpcy5fJCkgfTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0geXkuaWQoJCRbJDAgLSAxXSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMzM6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9ICQkWyQwXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAzNDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDM1OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdTdHJpbmdMaXRlcmFsJywgdmFsdWU6ICQkWyQwXSwgb3JpZ2luYWw6ICQkWyQwXSwgbG9jOiB5eS5sb2NJbmZvKHRoaXMuXyQpIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMzY6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ051bWJlckxpdGVyYWwnLCB2YWx1ZTogTnVtYmVyKCQkWyQwXSksIG9yaWdpbmFsOiBOdW1iZXIoJCRbJDBdKSwgbG9jOiB5eS5sb2NJbmZvKHRoaXMuXyQpIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMzc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ0Jvb2xlYW5MaXRlcmFsJywgdmFsdWU6ICQkWyQwXSA9PT0gJ3RydWUnLCBvcmlnaW5hbDogJCRbJDBdID09PSAndHJ1ZScsIGxvYzogeXkubG9jSW5mbyh0aGlzLl8kKSB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDM4OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSB7IHR5cGU6ICdVbmRlZmluZWRMaXRlcmFsJywgb3JpZ2luYWw6IHVuZGVmaW5lZCwgdmFsdWU6IHVuZGVmaW5lZCwgbG9jOiB5eS5sb2NJbmZvKHRoaXMuXyQpIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMzk6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IHsgdHlwZTogJ051bGxMaXRlcmFsJywgb3JpZ2luYWw6IG51bGwsIHZhbHVlOiBudWxsLCBsb2M6IHl5LmxvY0luZm8odGhpcy5fJCkgfTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0MDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0gJCRbJDBdO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQxOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSAkJFskMF07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IHl5LnByZXBhcmVQYXRoKHRydWUsICQkWyQwXSwgdGhpcy5fJCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDM6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IHl5LnByZXBhcmVQYXRoKGZhbHNlLCAkJFskMF0sIHRoaXMuXyQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ0OlxuICAgICAgICAgICAgICAgICAgICAkJFskMCAtIDJdLnB1c2goeyBwYXJ0OiB5eS5pZCgkJFskMF0pLCBvcmlnaW5hbDogJCRbJDBdLCBzZXBhcmF0b3I6ICQkWyQwIC0gMV0gfSk7dGhpcy4kID0gJCRbJDAgLSAyXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0NTpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0gW3sgcGFydDogeXkuaWQoJCRbJDBdKSwgb3JpZ2luYWw6ICQkWyQwXSB9XTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0NjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0gW107XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDc6XG4gICAgICAgICAgICAgICAgICAgICQkWyQwIC0gMV0ucHVzaCgkJFskMF0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ4OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OTpcbiAgICAgICAgICAgICAgICAgICAgJCRbJDAgLSAxXS5wdXNoKCQkWyQwXSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNTA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDUxOlxuICAgICAgICAgICAgICAgICAgICAkJFskMCAtIDFdLnB1c2goJCRbJDBdKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA1ODpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0gW107XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNTk6XG4gICAgICAgICAgICAgICAgICAgICQkWyQwIC0gMV0ucHVzaCgkJFskMF0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDY0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA2NTpcbiAgICAgICAgICAgICAgICAgICAgJCRbJDAgLSAxXS5wdXNoKCQkWyQwXSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNzA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDcxOlxuICAgICAgICAgICAgICAgICAgICAkJFskMCAtIDFdLnB1c2goJCRbJDBdKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA3ODpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0gW107XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNzk6XG4gICAgICAgICAgICAgICAgICAgICQkWyQwIC0gMV0ucHVzaCgkJFskMF0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDgyOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA4MzpcbiAgICAgICAgICAgICAgICAgICAgJCRbJDAgLSAxXS5wdXNoKCQkWyQwXSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgODY6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDg3OlxuICAgICAgICAgICAgICAgICAgICAkJFskMCAtIDFdLnB1c2goJCRbJDBdKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA5MDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kID0gW107XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgOTE6XG4gICAgICAgICAgICAgICAgICAgICQkWyQwIC0gMV0ucHVzaCgkJFskMF0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDk0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLiQgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA5NTpcbiAgICAgICAgICAgICAgICAgICAgJCRbJDAgLSAxXS5wdXNoKCQkWyQwXSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgOTg6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IFskJFskMF1dO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDk5OlxuICAgICAgICAgICAgICAgICAgICAkJFskMCAtIDFdLnB1c2goJCRbJDBdKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAxMDA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJCA9IFskJFskMF1dO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDEwMTpcbiAgICAgICAgICAgICAgICAgICAgJCRbJDAgLSAxXS5wdXNoKCQkWyQwXSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0YWJsZTogW3sgMzogMSwgNDogMiwgNTogWzIsIDQ2XSwgNjogMywgMTQ6IFsyLCA0Nl0sIDE1OiBbMiwgNDZdLCAxOTogWzIsIDQ2XSwgMjk6IFsyLCA0Nl0sIDM0OiBbMiwgNDZdLCA0ODogWzIsIDQ2XSwgNTE6IFsyLCA0Nl0sIDU1OiBbMiwgNDZdLCA2MDogWzIsIDQ2XSB9LCB7IDE6IFszXSB9LCB7IDU6IFsxLCA0XSB9LCB7IDU6IFsyLCAyXSwgNzogNSwgODogNiwgOTogNywgMTA6IDgsIDExOiA5LCAxMjogMTAsIDEzOiAxMSwgMTQ6IFsxLCAxMl0sIDE1OiBbMSwgMjBdLCAxNjogMTcsIDE5OiBbMSwgMjNdLCAyNDogMTUsIDI3OiAxNiwgMjk6IFsxLCAyMV0sIDM0OiBbMSwgMjJdLCAzOTogWzIsIDJdLCA0NDogWzIsIDJdLCA0NzogWzIsIDJdLCA0ODogWzEsIDEzXSwgNTE6IFsxLCAxNF0sIDU1OiBbMSwgMThdLCA1OTogMTksIDYwOiBbMSwgMjRdIH0sIHsgMTogWzIsIDFdIH0sIHsgNTogWzIsIDQ3XSwgMTQ6IFsyLCA0N10sIDE1OiBbMiwgNDddLCAxOTogWzIsIDQ3XSwgMjk6IFsyLCA0N10sIDM0OiBbMiwgNDddLCAzOTogWzIsIDQ3XSwgNDQ6IFsyLCA0N10sIDQ3OiBbMiwgNDddLCA0ODogWzIsIDQ3XSwgNTE6IFsyLCA0N10sIDU1OiBbMiwgNDddLCA2MDogWzIsIDQ3XSB9LCB7IDU6IFsyLCAzXSwgMTQ6IFsyLCAzXSwgMTU6IFsyLCAzXSwgMTk6IFsyLCAzXSwgMjk6IFsyLCAzXSwgMzQ6IFsyLCAzXSwgMzk6IFsyLCAzXSwgNDQ6IFsyLCAzXSwgNDc6IFsyLCAzXSwgNDg6IFsyLCAzXSwgNTE6IFsyLCAzXSwgNTU6IFsyLCAzXSwgNjA6IFsyLCAzXSB9LCB7IDU6IFsyLCA0XSwgMTQ6IFsyLCA0XSwgMTU6IFsyLCA0XSwgMTk6IFsyLCA0XSwgMjk6IFsyLCA0XSwgMzQ6IFsyLCA0XSwgMzk6IFsyLCA0XSwgNDQ6IFsyLCA0XSwgNDc6IFsyLCA0XSwgNDg6IFsyLCA0XSwgNTE6IFsyLCA0XSwgNTU6IFsyLCA0XSwgNjA6IFsyLCA0XSB9LCB7IDU6IFsyLCA1XSwgMTQ6IFsyLCA1XSwgMTU6IFsyLCA1XSwgMTk6IFsyLCA1XSwgMjk6IFsyLCA1XSwgMzQ6IFsyLCA1XSwgMzk6IFsyLCA1XSwgNDQ6IFsyLCA1XSwgNDc6IFsyLCA1XSwgNDg6IFsyLCA1XSwgNTE6IFsyLCA1XSwgNTU6IFsyLCA1XSwgNjA6IFsyLCA1XSB9LCB7IDU6IFsyLCA2XSwgMTQ6IFsyLCA2XSwgMTU6IFsyLCA2XSwgMTk6IFsyLCA2XSwgMjk6IFsyLCA2XSwgMzQ6IFsyLCA2XSwgMzk6IFsyLCA2XSwgNDQ6IFsyLCA2XSwgNDc6IFsyLCA2XSwgNDg6IFsyLCA2XSwgNTE6IFsyLCA2XSwgNTU6IFsyLCA2XSwgNjA6IFsyLCA2XSB9LCB7IDU6IFsyLCA3XSwgMTQ6IFsyLCA3XSwgMTU6IFsyLCA3XSwgMTk6IFsyLCA3XSwgMjk6IFsyLCA3XSwgMzQ6IFsyLCA3XSwgMzk6IFsyLCA3XSwgNDQ6IFsyLCA3XSwgNDc6IFsyLCA3XSwgNDg6IFsyLCA3XSwgNTE6IFsyLCA3XSwgNTU6IFsyLCA3XSwgNjA6IFsyLCA3XSB9LCB7IDU6IFsyLCA4XSwgMTQ6IFsyLCA4XSwgMTU6IFsyLCA4XSwgMTk6IFsyLCA4XSwgMjk6IFsyLCA4XSwgMzQ6IFsyLCA4XSwgMzk6IFsyLCA4XSwgNDQ6IFsyLCA4XSwgNDc6IFsyLCA4XSwgNDg6IFsyLCA4XSwgNTE6IFsyLCA4XSwgNTU6IFsyLCA4XSwgNjA6IFsyLCA4XSB9LCB7IDU6IFsyLCA5XSwgMTQ6IFsyLCA5XSwgMTU6IFsyLCA5XSwgMTk6IFsyLCA5XSwgMjk6IFsyLCA5XSwgMzQ6IFsyLCA5XSwgMzk6IFsyLCA5XSwgNDQ6IFsyLCA5XSwgNDc6IFsyLCA5XSwgNDg6IFsyLCA5XSwgNTE6IFsyLCA5XSwgNTU6IFsyLCA5XSwgNjA6IFsyLCA5XSB9LCB7IDIwOiAyNSwgNzI6IFsxLCAzNV0sIDc4OiAyNiwgNzk6IDI3LCA4MDogWzEsIDI4XSwgODE6IFsxLCAyOV0sIDgyOiBbMSwgMzBdLCA4MzogWzEsIDMxXSwgODQ6IFsxLCAzMl0sIDg1OiBbMSwgMzRdLCA4NjogMzMgfSwgeyAyMDogMzYsIDcyOiBbMSwgMzVdLCA3ODogMjYsIDc5OiAyNywgODA6IFsxLCAyOF0sIDgxOiBbMSwgMjldLCA4MjogWzEsIDMwXSwgODM6IFsxLCAzMV0sIDg0OiBbMSwgMzJdLCA4NTogWzEsIDM0XSwgODY6IDMzIH0sIHsgNDogMzcsIDY6IDMsIDE0OiBbMiwgNDZdLCAxNTogWzIsIDQ2XSwgMTk6IFsyLCA0Nl0sIDI5OiBbMiwgNDZdLCAzNDogWzIsIDQ2XSwgMzk6IFsyLCA0Nl0sIDQ0OiBbMiwgNDZdLCA0NzogWzIsIDQ2XSwgNDg6IFsyLCA0Nl0sIDUxOiBbMiwgNDZdLCA1NTogWzIsIDQ2XSwgNjA6IFsyLCA0Nl0gfSwgeyA0OiAzOCwgNjogMywgMTQ6IFsyLCA0Nl0sIDE1OiBbMiwgNDZdLCAxOTogWzIsIDQ2XSwgMjk6IFsyLCA0Nl0sIDM0OiBbMiwgNDZdLCA0NDogWzIsIDQ2XSwgNDc6IFsyLCA0Nl0sIDQ4OiBbMiwgNDZdLCA1MTogWzIsIDQ2XSwgNTU6IFsyLCA0Nl0sIDYwOiBbMiwgNDZdIH0sIHsgMTU6IFsyLCA0OF0sIDE3OiAzOSwgMTg6IFsyLCA0OF0gfSwgeyAyMDogNDEsIDU2OiA0MCwgNjQ6IDQyLCA2NTogWzEsIDQzXSwgNzI6IFsxLCAzNV0sIDc4OiAyNiwgNzk6IDI3LCA4MDogWzEsIDI4XSwgODE6IFsxLCAyOV0sIDgyOiBbMSwgMzBdLCA4MzogWzEsIDMxXSwgODQ6IFsxLCAzMl0sIDg1OiBbMSwgMzRdLCA4NjogMzMgfSwgeyA0OiA0NCwgNjogMywgMTQ6IFsyLCA0Nl0sIDE1OiBbMiwgNDZdLCAxOTogWzIsIDQ2XSwgMjk6IFsyLCA0Nl0sIDM0OiBbMiwgNDZdLCA0NzogWzIsIDQ2XSwgNDg6IFsyLCA0Nl0sIDUxOiBbMiwgNDZdLCA1NTogWzIsIDQ2XSwgNjA6IFsyLCA0Nl0gfSwgeyA1OiBbMiwgMTBdLCAxNDogWzIsIDEwXSwgMTU6IFsyLCAxMF0sIDE4OiBbMiwgMTBdLCAxOTogWzIsIDEwXSwgMjk6IFsyLCAxMF0sIDM0OiBbMiwgMTBdLCAzOTogWzIsIDEwXSwgNDQ6IFsyLCAxMF0sIDQ3OiBbMiwgMTBdLCA0ODogWzIsIDEwXSwgNTE6IFsyLCAxMF0sIDU1OiBbMiwgMTBdLCA2MDogWzIsIDEwXSB9LCB7IDIwOiA0NSwgNzI6IFsxLCAzNV0sIDc4OiAyNiwgNzk6IDI3LCA4MDogWzEsIDI4XSwgODE6IFsxLCAyOV0sIDgyOiBbMSwgMzBdLCA4MzogWzEsIDMxXSwgODQ6IFsxLCAzMl0sIDg1OiBbMSwgMzRdLCA4NjogMzMgfSwgeyAyMDogNDYsIDcyOiBbMSwgMzVdLCA3ODogMjYsIDc5OiAyNywgODA6IFsxLCAyOF0sIDgxOiBbMSwgMjldLCA4MjogWzEsIDMwXSwgODM6IFsxLCAzMV0sIDg0OiBbMSwgMzJdLCA4NTogWzEsIDM0XSwgODY6IDMzIH0sIHsgMjA6IDQ3LCA3MjogWzEsIDM1XSwgNzg6IDI2LCA3OTogMjcsIDgwOiBbMSwgMjhdLCA4MTogWzEsIDI5XSwgODI6IFsxLCAzMF0sIDgzOiBbMSwgMzFdLCA4NDogWzEsIDMyXSwgODU6IFsxLCAzNF0sIDg2OiAzMyB9LCB7IDIwOiA0MSwgNTY6IDQ4LCA2NDogNDIsIDY1OiBbMSwgNDNdLCA3MjogWzEsIDM1XSwgNzg6IDI2LCA3OTogMjcsIDgwOiBbMSwgMjhdLCA4MTogWzEsIDI5XSwgODI6IFsxLCAzMF0sIDgzOiBbMSwgMzFdLCA4NDogWzEsIDMyXSwgODU6IFsxLCAzNF0sIDg2OiAzMyB9LCB7IDMzOiBbMiwgNzhdLCA0OTogNDksIDY1OiBbMiwgNzhdLCA3MjogWzIsIDc4XSwgODA6IFsyLCA3OF0sIDgxOiBbMiwgNzhdLCA4MjogWzIsIDc4XSwgODM6IFsyLCA3OF0sIDg0OiBbMiwgNzhdLCA4NTogWzIsIDc4XSB9LCB7IDIzOiBbMiwgMzNdLCAzMzogWzIsIDMzXSwgNTQ6IFsyLCAzM10sIDY1OiBbMiwgMzNdLCA2ODogWzIsIDMzXSwgNzI6IFsyLCAzM10sIDc1OiBbMiwgMzNdLCA4MDogWzIsIDMzXSwgODE6IFsyLCAzM10sIDgyOiBbMiwgMzNdLCA4MzogWzIsIDMzXSwgODQ6IFsyLCAzM10sIDg1OiBbMiwgMzNdIH0sIHsgMjM6IFsyLCAzNF0sIDMzOiBbMiwgMzRdLCA1NDogWzIsIDM0XSwgNjU6IFsyLCAzNF0sIDY4OiBbMiwgMzRdLCA3MjogWzIsIDM0XSwgNzU6IFsyLCAzNF0sIDgwOiBbMiwgMzRdLCA4MTogWzIsIDM0XSwgODI6IFsyLCAzNF0sIDgzOiBbMiwgMzRdLCA4NDogWzIsIDM0XSwgODU6IFsyLCAzNF0gfSwgeyAyMzogWzIsIDM1XSwgMzM6IFsyLCAzNV0sIDU0OiBbMiwgMzVdLCA2NTogWzIsIDM1XSwgNjg6IFsyLCAzNV0sIDcyOiBbMiwgMzVdLCA3NTogWzIsIDM1XSwgODA6IFsyLCAzNV0sIDgxOiBbMiwgMzVdLCA4MjogWzIsIDM1XSwgODM6IFsyLCAzNV0sIDg0OiBbMiwgMzVdLCA4NTogWzIsIDM1XSB9LCB7IDIzOiBbMiwgMzZdLCAzMzogWzIsIDM2XSwgNTQ6IFsyLCAzNl0sIDY1OiBbMiwgMzZdLCA2ODogWzIsIDM2XSwgNzI6IFsyLCAzNl0sIDc1OiBbMiwgMzZdLCA4MDogWzIsIDM2XSwgODE6IFsyLCAzNl0sIDgyOiBbMiwgMzZdLCA4MzogWzIsIDM2XSwgODQ6IFsyLCAzNl0sIDg1OiBbMiwgMzZdIH0sIHsgMjM6IFsyLCAzN10sIDMzOiBbMiwgMzddLCA1NDogWzIsIDM3XSwgNjU6IFsyLCAzN10sIDY4OiBbMiwgMzddLCA3MjogWzIsIDM3XSwgNzU6IFsyLCAzN10sIDgwOiBbMiwgMzddLCA4MTogWzIsIDM3XSwgODI6IFsyLCAzN10sIDgzOiBbMiwgMzddLCA4NDogWzIsIDM3XSwgODU6IFsyLCAzN10gfSwgeyAyMzogWzIsIDM4XSwgMzM6IFsyLCAzOF0sIDU0OiBbMiwgMzhdLCA2NTogWzIsIDM4XSwgNjg6IFsyLCAzOF0sIDcyOiBbMiwgMzhdLCA3NTogWzIsIDM4XSwgODA6IFsyLCAzOF0sIDgxOiBbMiwgMzhdLCA4MjogWzIsIDM4XSwgODM6IFsyLCAzOF0sIDg0OiBbMiwgMzhdLCA4NTogWzIsIDM4XSB9LCB7IDIzOiBbMiwgMzldLCAzMzogWzIsIDM5XSwgNTQ6IFsyLCAzOV0sIDY1OiBbMiwgMzldLCA2ODogWzIsIDM5XSwgNzI6IFsyLCAzOV0sIDc1OiBbMiwgMzldLCA4MDogWzIsIDM5XSwgODE6IFsyLCAzOV0sIDgyOiBbMiwgMzldLCA4MzogWzIsIDM5XSwgODQ6IFsyLCAzOV0sIDg1OiBbMiwgMzldIH0sIHsgMjM6IFsyLCA0M10sIDMzOiBbMiwgNDNdLCA1NDogWzIsIDQzXSwgNjU6IFsyLCA0M10sIDY4OiBbMiwgNDNdLCA3MjogWzIsIDQzXSwgNzU6IFsyLCA0M10sIDgwOiBbMiwgNDNdLCA4MTogWzIsIDQzXSwgODI6IFsyLCA0M10sIDgzOiBbMiwgNDNdLCA4NDogWzIsIDQzXSwgODU6IFsyLCA0M10sIDg3OiBbMSwgNTBdIH0sIHsgNzI6IFsxLCAzNV0sIDg2OiA1MSB9LCB7IDIzOiBbMiwgNDVdLCAzMzogWzIsIDQ1XSwgNTQ6IFsyLCA0NV0sIDY1OiBbMiwgNDVdLCA2ODogWzIsIDQ1XSwgNzI6IFsyLCA0NV0sIDc1OiBbMiwgNDVdLCA4MDogWzIsIDQ1XSwgODE6IFsyLCA0NV0sIDgyOiBbMiwgNDVdLCA4MzogWzIsIDQ1XSwgODQ6IFsyLCA0NV0sIDg1OiBbMiwgNDVdLCA4NzogWzIsIDQ1XSB9LCB7IDUyOiA1MiwgNTQ6IFsyLCA4Ml0sIDY1OiBbMiwgODJdLCA3MjogWzIsIDgyXSwgODA6IFsyLCA4Ml0sIDgxOiBbMiwgODJdLCA4MjogWzIsIDgyXSwgODM6IFsyLCA4Ml0sIDg0OiBbMiwgODJdLCA4NTogWzIsIDgyXSB9LCB7IDI1OiA1MywgMzg6IDU1LCAzOTogWzEsIDU3XSwgNDM6IDU2LCA0NDogWzEsIDU4XSwgNDU6IDU0LCA0NzogWzIsIDU0XSB9LCB7IDI4OiA1OSwgNDM6IDYwLCA0NDogWzEsIDU4XSwgNDc6IFsyLCA1Nl0gfSwgeyAxMzogNjIsIDE1OiBbMSwgMjBdLCAxODogWzEsIDYxXSB9LCB7IDMzOiBbMiwgODZdLCA1NzogNjMsIDY1OiBbMiwgODZdLCA3MjogWzIsIDg2XSwgODA6IFsyLCA4Nl0sIDgxOiBbMiwgODZdLCA4MjogWzIsIDg2XSwgODM6IFsyLCA4Nl0sIDg0OiBbMiwgODZdLCA4NTogWzIsIDg2XSB9LCB7IDMzOiBbMiwgNDBdLCA2NTogWzIsIDQwXSwgNzI6IFsyLCA0MF0sIDgwOiBbMiwgNDBdLCA4MTogWzIsIDQwXSwgODI6IFsyLCA0MF0sIDgzOiBbMiwgNDBdLCA4NDogWzIsIDQwXSwgODU6IFsyLCA0MF0gfSwgeyAzMzogWzIsIDQxXSwgNjU6IFsyLCA0MV0sIDcyOiBbMiwgNDFdLCA4MDogWzIsIDQxXSwgODE6IFsyLCA0MV0sIDgyOiBbMiwgNDFdLCA4MzogWzIsIDQxXSwgODQ6IFsyLCA0MV0sIDg1OiBbMiwgNDFdIH0sIHsgMjA6IDY0LCA3MjogWzEsIDM1XSwgNzg6IDI2LCA3OTogMjcsIDgwOiBbMSwgMjhdLCA4MTogWzEsIDI5XSwgODI6IFsxLCAzMF0sIDgzOiBbMSwgMzFdLCA4NDogWzEsIDMyXSwgODU6IFsxLCAzNF0sIDg2OiAzMyB9LCB7IDI2OiA2NSwgNDc6IFsxLCA2Nl0gfSwgeyAzMDogNjcsIDMzOiBbMiwgNThdLCA2NTogWzIsIDU4XSwgNzI6IFsyLCA1OF0sIDc1OiBbMiwgNThdLCA4MDogWzIsIDU4XSwgODE6IFsyLCA1OF0sIDgyOiBbMiwgNThdLCA4MzogWzIsIDU4XSwgODQ6IFsyLCA1OF0sIDg1OiBbMiwgNThdIH0sIHsgMzM6IFsyLCA2NF0sIDM1OiA2OCwgNjU6IFsyLCA2NF0sIDcyOiBbMiwgNjRdLCA3NTogWzIsIDY0XSwgODA6IFsyLCA2NF0sIDgxOiBbMiwgNjRdLCA4MjogWzIsIDY0XSwgODM6IFsyLCA2NF0sIDg0OiBbMiwgNjRdLCA4NTogWzIsIDY0XSB9LCB7IDIxOiA2OSwgMjM6IFsyLCA1MF0sIDY1OiBbMiwgNTBdLCA3MjogWzIsIDUwXSwgODA6IFsyLCA1MF0sIDgxOiBbMiwgNTBdLCA4MjogWzIsIDUwXSwgODM6IFsyLCA1MF0sIDg0OiBbMiwgNTBdLCA4NTogWzIsIDUwXSB9LCB7IDMzOiBbMiwgOTBdLCA2MTogNzAsIDY1OiBbMiwgOTBdLCA3MjogWzIsIDkwXSwgODA6IFsyLCA5MF0sIDgxOiBbMiwgOTBdLCA4MjogWzIsIDkwXSwgODM6IFsyLCA5MF0sIDg0OiBbMiwgOTBdLCA4NTogWzIsIDkwXSB9LCB7IDIwOiA3NCwgMzM6IFsyLCA4MF0sIDUwOiA3MSwgNjM6IDcyLCA2NDogNzUsIDY1OiBbMSwgNDNdLCA2OTogNzMsIDcwOiA3NiwgNzE6IDc3LCA3MjogWzEsIDc4XSwgNzg6IDI2LCA3OTogMjcsIDgwOiBbMSwgMjhdLCA4MTogWzEsIDI5XSwgODI6IFsxLCAzMF0sIDgzOiBbMSwgMzFdLCA4NDogWzEsIDMyXSwgODU6IFsxLCAzNF0sIDg2OiAzMyB9LCB7IDcyOiBbMSwgNzldIH0sIHsgMjM6IFsyLCA0Ml0sIDMzOiBbMiwgNDJdLCA1NDogWzIsIDQyXSwgNjU6IFsyLCA0Ml0sIDY4OiBbMiwgNDJdLCA3MjogWzIsIDQyXSwgNzU6IFsyLCA0Ml0sIDgwOiBbMiwgNDJdLCA4MTogWzIsIDQyXSwgODI6IFsyLCA0Ml0sIDgzOiBbMiwgNDJdLCA4NDogWzIsIDQyXSwgODU6IFsyLCA0Ml0sIDg3OiBbMSwgNTBdIH0sIHsgMjA6IDc0LCA1MzogODAsIDU0OiBbMiwgODRdLCA2MzogODEsIDY0OiA3NSwgNjU6IFsxLCA0M10sIDY5OiA4MiwgNzA6IDc2LCA3MTogNzcsIDcyOiBbMSwgNzhdLCA3ODogMjYsIDc5OiAyNywgODA6IFsxLCAyOF0sIDgxOiBbMSwgMjldLCA4MjogWzEsIDMwXSwgODM6IFsxLCAzMV0sIDg0OiBbMSwgMzJdLCA4NTogWzEsIDM0XSwgODY6IDMzIH0sIHsgMjY6IDgzLCA0NzogWzEsIDY2XSB9LCB7IDQ3OiBbMiwgNTVdIH0sIHsgNDogODQsIDY6IDMsIDE0OiBbMiwgNDZdLCAxNTogWzIsIDQ2XSwgMTk6IFsyLCA0Nl0sIDI5OiBbMiwgNDZdLCAzNDogWzIsIDQ2XSwgMzk6IFsyLCA0Nl0sIDQ0OiBbMiwgNDZdLCA0NzogWzIsIDQ2XSwgNDg6IFsyLCA0Nl0sIDUxOiBbMiwgNDZdLCA1NTogWzIsIDQ2XSwgNjA6IFsyLCA0Nl0gfSwgeyA0NzogWzIsIDIwXSB9LCB7IDIwOiA4NSwgNzI6IFsxLCAzNV0sIDc4OiAyNiwgNzk6IDI3LCA4MDogWzEsIDI4XSwgODE6IFsxLCAyOV0sIDgyOiBbMSwgMzBdLCA4MzogWzEsIDMxXSwgODQ6IFsxLCAzMl0sIDg1OiBbMSwgMzRdLCA4NjogMzMgfSwgeyA0OiA4NiwgNjogMywgMTQ6IFsyLCA0Nl0sIDE1OiBbMiwgNDZdLCAxOTogWzIsIDQ2XSwgMjk6IFsyLCA0Nl0sIDM0OiBbMiwgNDZdLCA0NzogWzIsIDQ2XSwgNDg6IFsyLCA0Nl0sIDUxOiBbMiwgNDZdLCA1NTogWzIsIDQ2XSwgNjA6IFsyLCA0Nl0gfSwgeyAyNjogODcsIDQ3OiBbMSwgNjZdIH0sIHsgNDc6IFsyLCA1N10gfSwgeyA1OiBbMiwgMTFdLCAxNDogWzIsIDExXSwgMTU6IFsyLCAxMV0sIDE5OiBbMiwgMTFdLCAyOTogWzIsIDExXSwgMzQ6IFsyLCAxMV0sIDM5OiBbMiwgMTFdLCA0NDogWzIsIDExXSwgNDc6IFsyLCAxMV0sIDQ4OiBbMiwgMTFdLCA1MTogWzIsIDExXSwgNTU6IFsyLCAxMV0sIDYwOiBbMiwgMTFdIH0sIHsgMTU6IFsyLCA0OV0sIDE4OiBbMiwgNDldIH0sIHsgMjA6IDc0LCAzMzogWzIsIDg4XSwgNTg6IDg4LCA2MzogODksIDY0OiA3NSwgNjU6IFsxLCA0M10sIDY5OiA5MCwgNzA6IDc2LCA3MTogNzcsIDcyOiBbMSwgNzhdLCA3ODogMjYsIDc5OiAyNywgODA6IFsxLCAyOF0sIDgxOiBbMSwgMjldLCA4MjogWzEsIDMwXSwgODM6IFsxLCAzMV0sIDg0OiBbMSwgMzJdLCA4NTogWzEsIDM0XSwgODY6IDMzIH0sIHsgNjU6IFsyLCA5NF0sIDY2OiA5MSwgNjg6IFsyLCA5NF0sIDcyOiBbMiwgOTRdLCA4MDogWzIsIDk0XSwgODE6IFsyLCA5NF0sIDgyOiBbMiwgOTRdLCA4MzogWzIsIDk0XSwgODQ6IFsyLCA5NF0sIDg1OiBbMiwgOTRdIH0sIHsgNTogWzIsIDI1XSwgMTQ6IFsyLCAyNV0sIDE1OiBbMiwgMjVdLCAxOTogWzIsIDI1XSwgMjk6IFsyLCAyNV0sIDM0OiBbMiwgMjVdLCAzOTogWzIsIDI1XSwgNDQ6IFsyLCAyNV0sIDQ3OiBbMiwgMjVdLCA0ODogWzIsIDI1XSwgNTE6IFsyLCAyNV0sIDU1OiBbMiwgMjVdLCA2MDogWzIsIDI1XSB9LCB7IDIwOiA5MiwgNzI6IFsxLCAzNV0sIDc4OiAyNiwgNzk6IDI3LCA4MDogWzEsIDI4XSwgODE6IFsxLCAyOV0sIDgyOiBbMSwgMzBdLCA4MzogWzEsIDMxXSwgODQ6IFsxLCAzMl0sIDg1OiBbMSwgMzRdLCA4NjogMzMgfSwgeyAyMDogNzQsIDMxOiA5MywgMzM6IFsyLCA2MF0sIDYzOiA5NCwgNjQ6IDc1LCA2NTogWzEsIDQzXSwgNjk6IDk1LCA3MDogNzYsIDcxOiA3NywgNzI6IFsxLCA3OF0sIDc1OiBbMiwgNjBdLCA3ODogMjYsIDc5OiAyNywgODA6IFsxLCAyOF0sIDgxOiBbMSwgMjldLCA4MjogWzEsIDMwXSwgODM6IFsxLCAzMV0sIDg0OiBbMSwgMzJdLCA4NTogWzEsIDM0XSwgODY6IDMzIH0sIHsgMjA6IDc0LCAzMzogWzIsIDY2XSwgMzY6IDk2LCA2MzogOTcsIDY0OiA3NSwgNjU6IFsxLCA0M10sIDY5OiA5OCwgNzA6IDc2LCA3MTogNzcsIDcyOiBbMSwgNzhdLCA3NTogWzIsIDY2XSwgNzg6IDI2LCA3OTogMjcsIDgwOiBbMSwgMjhdLCA4MTogWzEsIDI5XSwgODI6IFsxLCAzMF0sIDgzOiBbMSwgMzFdLCA4NDogWzEsIDMyXSwgODU6IFsxLCAzNF0sIDg2OiAzMyB9LCB7IDIwOiA3NCwgMjI6IDk5LCAyMzogWzIsIDUyXSwgNjM6IDEwMCwgNjQ6IDc1LCA2NTogWzEsIDQzXSwgNjk6IDEwMSwgNzA6IDc2LCA3MTogNzcsIDcyOiBbMSwgNzhdLCA3ODogMjYsIDc5OiAyNywgODA6IFsxLCAyOF0sIDgxOiBbMSwgMjldLCA4MjogWzEsIDMwXSwgODM6IFsxLCAzMV0sIDg0OiBbMSwgMzJdLCA4NTogWzEsIDM0XSwgODY6IDMzIH0sIHsgMjA6IDc0LCAzMzogWzIsIDkyXSwgNjI6IDEwMiwgNjM6IDEwMywgNjQ6IDc1LCA2NTogWzEsIDQzXSwgNjk6IDEwNCwgNzA6IDc2LCA3MTogNzcsIDcyOiBbMSwgNzhdLCA3ODogMjYsIDc5OiAyNywgODA6IFsxLCAyOF0sIDgxOiBbMSwgMjldLCA4MjogWzEsIDMwXSwgODM6IFsxLCAzMV0sIDg0OiBbMSwgMzJdLCA4NTogWzEsIDM0XSwgODY6IDMzIH0sIHsgMzM6IFsxLCAxMDVdIH0sIHsgMzM6IFsyLCA3OV0sIDY1OiBbMiwgNzldLCA3MjogWzIsIDc5XSwgODA6IFsyLCA3OV0sIDgxOiBbMiwgNzldLCA4MjogWzIsIDc5XSwgODM6IFsyLCA3OV0sIDg0OiBbMiwgNzldLCA4NTogWzIsIDc5XSB9LCB7IDMzOiBbMiwgODFdIH0sIHsgMjM6IFsyLCAyN10sIDMzOiBbMiwgMjddLCA1NDogWzIsIDI3XSwgNjU6IFsyLCAyN10sIDY4OiBbMiwgMjddLCA3MjogWzIsIDI3XSwgNzU6IFsyLCAyN10sIDgwOiBbMiwgMjddLCA4MTogWzIsIDI3XSwgODI6IFsyLCAyN10sIDgzOiBbMiwgMjddLCA4NDogWzIsIDI3XSwgODU6IFsyLCAyN10gfSwgeyAyMzogWzIsIDI4XSwgMzM6IFsyLCAyOF0sIDU0OiBbMiwgMjhdLCA2NTogWzIsIDI4XSwgNjg6IFsyLCAyOF0sIDcyOiBbMiwgMjhdLCA3NTogWzIsIDI4XSwgODA6IFsyLCAyOF0sIDgxOiBbMiwgMjhdLCA4MjogWzIsIDI4XSwgODM6IFsyLCAyOF0sIDg0OiBbMiwgMjhdLCA4NTogWzIsIDI4XSB9LCB7IDIzOiBbMiwgMzBdLCAzMzogWzIsIDMwXSwgNTQ6IFsyLCAzMF0sIDY4OiBbMiwgMzBdLCA3MTogMTA2LCA3MjogWzEsIDEwN10sIDc1OiBbMiwgMzBdIH0sIHsgMjM6IFsyLCA5OF0sIDMzOiBbMiwgOThdLCA1NDogWzIsIDk4XSwgNjg6IFsyLCA5OF0sIDcyOiBbMiwgOThdLCA3NTogWzIsIDk4XSB9LCB7IDIzOiBbMiwgNDVdLCAzMzogWzIsIDQ1XSwgNTQ6IFsyLCA0NV0sIDY1OiBbMiwgNDVdLCA2ODogWzIsIDQ1XSwgNzI6IFsyLCA0NV0sIDczOiBbMSwgMTA4XSwgNzU6IFsyLCA0NV0sIDgwOiBbMiwgNDVdLCA4MTogWzIsIDQ1XSwgODI6IFsyLCA0NV0sIDgzOiBbMiwgNDVdLCA4NDogWzIsIDQ1XSwgODU6IFsyLCA0NV0sIDg3OiBbMiwgNDVdIH0sIHsgMjM6IFsyLCA0NF0sIDMzOiBbMiwgNDRdLCA1NDogWzIsIDQ0XSwgNjU6IFsyLCA0NF0sIDY4OiBbMiwgNDRdLCA3MjogWzIsIDQ0XSwgNzU6IFsyLCA0NF0sIDgwOiBbMiwgNDRdLCA4MTogWzIsIDQ0XSwgODI6IFsyLCA0NF0sIDgzOiBbMiwgNDRdLCA4NDogWzIsIDQ0XSwgODU6IFsyLCA0NF0sIDg3OiBbMiwgNDRdIH0sIHsgNTQ6IFsxLCAxMDldIH0sIHsgNTQ6IFsyLCA4M10sIDY1OiBbMiwgODNdLCA3MjogWzIsIDgzXSwgODA6IFsyLCA4M10sIDgxOiBbMiwgODNdLCA4MjogWzIsIDgzXSwgODM6IFsyLCA4M10sIDg0OiBbMiwgODNdLCA4NTogWzIsIDgzXSB9LCB7IDU0OiBbMiwgODVdIH0sIHsgNTogWzIsIDEzXSwgMTQ6IFsyLCAxM10sIDE1OiBbMiwgMTNdLCAxOTogWzIsIDEzXSwgMjk6IFsyLCAxM10sIDM0OiBbMiwgMTNdLCAzOTogWzIsIDEzXSwgNDQ6IFsyLCAxM10sIDQ3OiBbMiwgMTNdLCA0ODogWzIsIDEzXSwgNTE6IFsyLCAxM10sIDU1OiBbMiwgMTNdLCA2MDogWzIsIDEzXSB9LCB7IDM4OiA1NSwgMzk6IFsxLCA1N10sIDQzOiA1NiwgNDQ6IFsxLCA1OF0sIDQ1OiAxMTEsIDQ2OiAxMTAsIDQ3OiBbMiwgNzZdIH0sIHsgMzM6IFsyLCA3MF0sIDQwOiAxMTIsIDY1OiBbMiwgNzBdLCA3MjogWzIsIDcwXSwgNzU6IFsyLCA3MF0sIDgwOiBbMiwgNzBdLCA4MTogWzIsIDcwXSwgODI6IFsyLCA3MF0sIDgzOiBbMiwgNzBdLCA4NDogWzIsIDcwXSwgODU6IFsyLCA3MF0gfSwgeyA0NzogWzIsIDE4XSB9LCB7IDU6IFsyLCAxNF0sIDE0OiBbMiwgMTRdLCAxNTogWzIsIDE0XSwgMTk6IFsyLCAxNF0sIDI5OiBbMiwgMTRdLCAzNDogWzIsIDE0XSwgMzk6IFsyLCAxNF0sIDQ0OiBbMiwgMTRdLCA0NzogWzIsIDE0XSwgNDg6IFsyLCAxNF0sIDUxOiBbMiwgMTRdLCA1NTogWzIsIDE0XSwgNjA6IFsyLCAxNF0gfSwgeyAzMzogWzEsIDExM10gfSwgeyAzMzogWzIsIDg3XSwgNjU6IFsyLCA4N10sIDcyOiBbMiwgODddLCA4MDogWzIsIDg3XSwgODE6IFsyLCA4N10sIDgyOiBbMiwgODddLCA4MzogWzIsIDg3XSwgODQ6IFsyLCA4N10sIDg1OiBbMiwgODddIH0sIHsgMzM6IFsyLCA4OV0gfSwgeyAyMDogNzQsIDYzOiAxMTUsIDY0OiA3NSwgNjU6IFsxLCA0M10sIDY3OiAxMTQsIDY4OiBbMiwgOTZdLCA2OTogMTE2LCA3MDogNzYsIDcxOiA3NywgNzI6IFsxLCA3OF0sIDc4OiAyNiwgNzk6IDI3LCA4MDogWzEsIDI4XSwgODE6IFsxLCAyOV0sIDgyOiBbMSwgMzBdLCA4MzogWzEsIDMxXSwgODQ6IFsxLCAzMl0sIDg1OiBbMSwgMzRdLCA4NjogMzMgfSwgeyAzMzogWzEsIDExN10gfSwgeyAzMjogMTE4LCAzMzogWzIsIDYyXSwgNzQ6IDExOSwgNzU6IFsxLCAxMjBdIH0sIHsgMzM6IFsyLCA1OV0sIDY1OiBbMiwgNTldLCA3MjogWzIsIDU5XSwgNzU6IFsyLCA1OV0sIDgwOiBbMiwgNTldLCA4MTogWzIsIDU5XSwgODI6IFsyLCA1OV0sIDgzOiBbMiwgNTldLCA4NDogWzIsIDU5XSwgODU6IFsyLCA1OV0gfSwgeyAzMzogWzIsIDYxXSwgNzU6IFsyLCA2MV0gfSwgeyAzMzogWzIsIDY4XSwgMzc6IDEyMSwgNzQ6IDEyMiwgNzU6IFsxLCAxMjBdIH0sIHsgMzM6IFsyLCA2NV0sIDY1OiBbMiwgNjVdLCA3MjogWzIsIDY1XSwgNzU6IFsyLCA2NV0sIDgwOiBbMiwgNjVdLCA4MTogWzIsIDY1XSwgODI6IFsyLCA2NV0sIDgzOiBbMiwgNjVdLCA4NDogWzIsIDY1XSwgODU6IFsyLCA2NV0gfSwgeyAzMzogWzIsIDY3XSwgNzU6IFsyLCA2N10gfSwgeyAyMzogWzEsIDEyM10gfSwgeyAyMzogWzIsIDUxXSwgNjU6IFsyLCA1MV0sIDcyOiBbMiwgNTFdLCA4MDogWzIsIDUxXSwgODE6IFsyLCA1MV0sIDgyOiBbMiwgNTFdLCA4MzogWzIsIDUxXSwgODQ6IFsyLCA1MV0sIDg1OiBbMiwgNTFdIH0sIHsgMjM6IFsyLCA1M10gfSwgeyAzMzogWzEsIDEyNF0gfSwgeyAzMzogWzIsIDkxXSwgNjU6IFsyLCA5MV0sIDcyOiBbMiwgOTFdLCA4MDogWzIsIDkxXSwgODE6IFsyLCA5MV0sIDgyOiBbMiwgOTFdLCA4MzogWzIsIDkxXSwgODQ6IFsyLCA5MV0sIDg1OiBbMiwgOTFdIH0sIHsgMzM6IFsyLCA5M10gfSwgeyA1OiBbMiwgMjJdLCAxNDogWzIsIDIyXSwgMTU6IFsyLCAyMl0sIDE5OiBbMiwgMjJdLCAyOTogWzIsIDIyXSwgMzQ6IFsyLCAyMl0sIDM5OiBbMiwgMjJdLCA0NDogWzIsIDIyXSwgNDc6IFsyLCAyMl0sIDQ4OiBbMiwgMjJdLCA1MTogWzIsIDIyXSwgNTU6IFsyLCAyMl0sIDYwOiBbMiwgMjJdIH0sIHsgMjM6IFsyLCA5OV0sIDMzOiBbMiwgOTldLCA1NDogWzIsIDk5XSwgNjg6IFsyLCA5OV0sIDcyOiBbMiwgOTldLCA3NTogWzIsIDk5XSB9LCB7IDczOiBbMSwgMTA4XSB9LCB7IDIwOiA3NCwgNjM6IDEyNSwgNjQ6IDc1LCA2NTogWzEsIDQzXSwgNzI6IFsxLCAzNV0sIDc4OiAyNiwgNzk6IDI3LCA4MDogWzEsIDI4XSwgODE6IFsxLCAyOV0sIDgyOiBbMSwgMzBdLCA4MzogWzEsIDMxXSwgODQ6IFsxLCAzMl0sIDg1OiBbMSwgMzRdLCA4NjogMzMgfSwgeyA1OiBbMiwgMjNdLCAxNDogWzIsIDIzXSwgMTU6IFsyLCAyM10sIDE5OiBbMiwgMjNdLCAyOTogWzIsIDIzXSwgMzQ6IFsyLCAyM10sIDM5OiBbMiwgMjNdLCA0NDogWzIsIDIzXSwgNDc6IFsyLCAyM10sIDQ4OiBbMiwgMjNdLCA1MTogWzIsIDIzXSwgNTU6IFsyLCAyM10sIDYwOiBbMiwgMjNdIH0sIHsgNDc6IFsyLCAxOV0gfSwgeyA0NzogWzIsIDc3XSB9LCB7IDIwOiA3NCwgMzM6IFsyLCA3Ml0sIDQxOiAxMjYsIDYzOiAxMjcsIDY0OiA3NSwgNjU6IFsxLCA0M10sIDY5OiAxMjgsIDcwOiA3NiwgNzE6IDc3LCA3MjogWzEsIDc4XSwgNzU6IFsyLCA3Ml0sIDc4OiAyNiwgNzk6IDI3LCA4MDogWzEsIDI4XSwgODE6IFsxLCAyOV0sIDgyOiBbMSwgMzBdLCA4MzogWzEsIDMxXSwgODQ6IFsxLCAzMl0sIDg1OiBbMSwgMzRdLCA4NjogMzMgfSwgeyA1OiBbMiwgMjRdLCAxNDogWzIsIDI0XSwgMTU6IFsyLCAyNF0sIDE5OiBbMiwgMjRdLCAyOTogWzIsIDI0XSwgMzQ6IFsyLCAyNF0sIDM5OiBbMiwgMjRdLCA0NDogWzIsIDI0XSwgNDc6IFsyLCAyNF0sIDQ4OiBbMiwgMjRdLCA1MTogWzIsIDI0XSwgNTU6IFsyLCAyNF0sIDYwOiBbMiwgMjRdIH0sIHsgNjg6IFsxLCAxMjldIH0sIHsgNjU6IFsyLCA5NV0sIDY4OiBbMiwgOTVdLCA3MjogWzIsIDk1XSwgODA6IFsyLCA5NV0sIDgxOiBbMiwgOTVdLCA4MjogWzIsIDk1XSwgODM6IFsyLCA5NV0sIDg0OiBbMiwgOTVdLCA4NTogWzIsIDk1XSB9LCB7IDY4OiBbMiwgOTddIH0sIHsgNTogWzIsIDIxXSwgMTQ6IFsyLCAyMV0sIDE1OiBbMiwgMjFdLCAxOTogWzIsIDIxXSwgMjk6IFsyLCAyMV0sIDM0OiBbMiwgMjFdLCAzOTogWzIsIDIxXSwgNDQ6IFsyLCAyMV0sIDQ3OiBbMiwgMjFdLCA0ODogWzIsIDIxXSwgNTE6IFsyLCAyMV0sIDU1OiBbMiwgMjFdLCA2MDogWzIsIDIxXSB9LCB7IDMzOiBbMSwgMTMwXSB9LCB7IDMzOiBbMiwgNjNdIH0sIHsgNzI6IFsxLCAxMzJdLCA3NjogMTMxIH0sIHsgMzM6IFsxLCAxMzNdIH0sIHsgMzM6IFsyLCA2OV0gfSwgeyAxNTogWzIsIDEyXSwgMTg6IFsyLCAxMl0gfSwgeyAxNDogWzIsIDI2XSwgMTU6IFsyLCAyNl0sIDE5OiBbMiwgMjZdLCAyOTogWzIsIDI2XSwgMzQ6IFsyLCAyNl0sIDQ3OiBbMiwgMjZdLCA0ODogWzIsIDI2XSwgNTE6IFsyLCAyNl0sIDU1OiBbMiwgMjZdLCA2MDogWzIsIDI2XSB9LCB7IDIzOiBbMiwgMzFdLCAzMzogWzIsIDMxXSwgNTQ6IFsyLCAzMV0sIDY4OiBbMiwgMzFdLCA3MjogWzIsIDMxXSwgNzU6IFsyLCAzMV0gfSwgeyAzMzogWzIsIDc0XSwgNDI6IDEzNCwgNzQ6IDEzNSwgNzU6IFsxLCAxMjBdIH0sIHsgMzM6IFsyLCA3MV0sIDY1OiBbMiwgNzFdLCA3MjogWzIsIDcxXSwgNzU6IFsyLCA3MV0sIDgwOiBbMiwgNzFdLCA4MTogWzIsIDcxXSwgODI6IFsyLCA3MV0sIDgzOiBbMiwgNzFdLCA4NDogWzIsIDcxXSwgODU6IFsyLCA3MV0gfSwgeyAzMzogWzIsIDczXSwgNzU6IFsyLCA3M10gfSwgeyAyMzogWzIsIDI5XSwgMzM6IFsyLCAyOV0sIDU0OiBbMiwgMjldLCA2NTogWzIsIDI5XSwgNjg6IFsyLCAyOV0sIDcyOiBbMiwgMjldLCA3NTogWzIsIDI5XSwgODA6IFsyLCAyOV0sIDgxOiBbMiwgMjldLCA4MjogWzIsIDI5XSwgODM6IFsyLCAyOV0sIDg0OiBbMiwgMjldLCA4NTogWzIsIDI5XSB9LCB7IDE0OiBbMiwgMTVdLCAxNTogWzIsIDE1XSwgMTk6IFsyLCAxNV0sIDI5OiBbMiwgMTVdLCAzNDogWzIsIDE1XSwgMzk6IFsyLCAxNV0sIDQ0OiBbMiwgMTVdLCA0NzogWzIsIDE1XSwgNDg6IFsyLCAxNV0sIDUxOiBbMiwgMTVdLCA1NTogWzIsIDE1XSwgNjA6IFsyLCAxNV0gfSwgeyA3MjogWzEsIDEzN10sIDc3OiBbMSwgMTM2XSB9LCB7IDcyOiBbMiwgMTAwXSwgNzc6IFsyLCAxMDBdIH0sIHsgMTQ6IFsyLCAxNl0sIDE1OiBbMiwgMTZdLCAxOTogWzIsIDE2XSwgMjk6IFsyLCAxNl0sIDM0OiBbMiwgMTZdLCA0NDogWzIsIDE2XSwgNDc6IFsyLCAxNl0sIDQ4OiBbMiwgMTZdLCA1MTogWzIsIDE2XSwgNTU6IFsyLCAxNl0sIDYwOiBbMiwgMTZdIH0sIHsgMzM6IFsxLCAxMzhdIH0sIHsgMzM6IFsyLCA3NV0gfSwgeyAzMzogWzIsIDMyXSB9LCB7IDcyOiBbMiwgMTAxXSwgNzc6IFsyLCAxMDFdIH0sIHsgMTQ6IFsyLCAxN10sIDE1OiBbMiwgMTddLCAxOTogWzIsIDE3XSwgMjk6IFsyLCAxN10sIDM0OiBbMiwgMTddLCAzOTogWzIsIDE3XSwgNDQ6IFsyLCAxN10sIDQ3OiBbMiwgMTddLCA0ODogWzIsIDE3XSwgNTE6IFsyLCAxN10sIDU1OiBbMiwgMTddLCA2MDogWzIsIDE3XSB9XSxcbiAgICAgICAgZGVmYXVsdEFjdGlvbnM6IHsgNDogWzIsIDFdLCA1NDogWzIsIDU1XSwgNTY6IFsyLCAyMF0sIDYwOiBbMiwgNTddLCA3MzogWzIsIDgxXSwgODI6IFsyLCA4NV0sIDg2OiBbMiwgMThdLCA5MDogWzIsIDg5XSwgMTAxOiBbMiwgNTNdLCAxMDQ6IFsyLCA5M10sIDExMDogWzIsIDE5XSwgMTExOiBbMiwgNzddLCAxMTY6IFsyLCA5N10sIDExOTogWzIsIDYzXSwgMTIyOiBbMiwgNjldLCAxMzU6IFsyLCA3NV0sIDEzNjogWzIsIDMyXSB9LFxuICAgICAgICBwYXJzZUVycm9yOiBmdW5jdGlvbiBwYXJzZUVycm9yKHN0ciwgaGFzaCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHN0cik7XG4gICAgICAgIH0sXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiBwYXJzZShpbnB1dCkge1xuICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICAgICAgICAgIHN0YWNrID0gWzBdLFxuICAgICAgICAgICAgICAgIHZzdGFjayA9IFtudWxsXSxcbiAgICAgICAgICAgICAgICBsc3RhY2sgPSBbXSxcbiAgICAgICAgICAgICAgICB0YWJsZSA9IHRoaXMudGFibGUsXG4gICAgICAgICAgICAgICAgeXl0ZXh0ID0gXCJcIixcbiAgICAgICAgICAgICAgICB5eWxpbmVubyA9IDAsXG4gICAgICAgICAgICAgICAgeXlsZW5nID0gMCxcbiAgICAgICAgICAgICAgICByZWNvdmVyaW5nID0gMCxcbiAgICAgICAgICAgICAgICBURVJST1IgPSAyLFxuICAgICAgICAgICAgICAgIEVPRiA9IDE7XG4gICAgICAgICAgICB0aGlzLmxleGVyLnNldElucHV0KGlucHV0KTtcbiAgICAgICAgICAgIHRoaXMubGV4ZXIueXkgPSB0aGlzLnl5O1xuICAgICAgICAgICAgdGhpcy55eS5sZXhlciA9IHRoaXMubGV4ZXI7XG4gICAgICAgICAgICB0aGlzLnl5LnBhcnNlciA9IHRoaXM7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMubGV4ZXIueXlsbG9jID09IFwidW5kZWZpbmVkXCIpIHRoaXMubGV4ZXIueXlsbG9jID0ge307XG4gICAgICAgICAgICB2YXIgeXlsb2MgPSB0aGlzLmxleGVyLnl5bGxvYztcbiAgICAgICAgICAgIGxzdGFjay5wdXNoKHl5bG9jKTtcbiAgICAgICAgICAgIHZhciByYW5nZXMgPSB0aGlzLmxleGVyLm9wdGlvbnMgJiYgdGhpcy5sZXhlci5vcHRpb25zLnJhbmdlcztcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy55eS5wYXJzZUVycm9yID09PSBcImZ1bmN0aW9uXCIpIHRoaXMucGFyc2VFcnJvciA9IHRoaXMueXkucGFyc2VFcnJvcjtcbiAgICAgICAgICAgIGZ1bmN0aW9uIHBvcFN0YWNrKG4pIHtcbiAgICAgICAgICAgICAgICBzdGFjay5sZW5ndGggPSBzdGFjay5sZW5ndGggLSAyICogbjtcbiAgICAgICAgICAgICAgICB2c3RhY2subGVuZ3RoID0gdnN0YWNrLmxlbmd0aCAtIG47XG4gICAgICAgICAgICAgICAgbHN0YWNrLmxlbmd0aCA9IGxzdGFjay5sZW5ndGggLSBuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gbGV4KCkge1xuICAgICAgICAgICAgICAgIHZhciB0b2tlbjtcbiAgICAgICAgICAgICAgICB0b2tlbiA9IHNlbGYubGV4ZXIubGV4KCkgfHwgMTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRva2VuICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRva2VuID0gc2VsZi5zeW1ib2xzX1t0b2tlbl0gfHwgdG9rZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBzeW1ib2wsXG4gICAgICAgICAgICAgICAgcHJlRXJyb3JTeW1ib2wsXG4gICAgICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgICAgICAgIGEsXG4gICAgICAgICAgICAgICAgcixcbiAgICAgICAgICAgICAgICB5eXZhbCA9IHt9LFxuICAgICAgICAgICAgICAgIHAsXG4gICAgICAgICAgICAgICAgbGVuLFxuICAgICAgICAgICAgICAgIG5ld1N0YXRlLFxuICAgICAgICAgICAgICAgIGV4cGVjdGVkO1xuICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgICAgICBzdGF0ZSA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlZmF1bHRBY3Rpb25zW3N0YXRlXSkge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSB0aGlzLmRlZmF1bHRBY3Rpb25zW3N0YXRlXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3ltYm9sID09PSBudWxsIHx8IHR5cGVvZiBzeW1ib2wgPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sID0gbGV4KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gdGFibGVbc3RhdGVdICYmIHRhYmxlW3N0YXRlXVtzeW1ib2xdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFjdGlvbiA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhYWN0aW9uLmxlbmd0aCB8fCAhYWN0aW9uWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBlcnJTdHIgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlY292ZXJpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHAgaW4gdGFibGVbc3RhdGVdKSBpZiAodGhpcy50ZXJtaW5hbHNfW3BdICYmIHAgPiAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQucHVzaChcIidcIiArIHRoaXMudGVybWluYWxzX1twXSArIFwiJ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxleGVyLnNob3dQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyclN0ciA9IFwiUGFyc2UgZXJyb3Igb24gbGluZSBcIiArICh5eWxpbmVubyArIDEpICsgXCI6XFxuXCIgKyB0aGlzLmxleGVyLnNob3dQb3NpdGlvbigpICsgXCJcXG5FeHBlY3RpbmcgXCIgKyBleHBlY3RlZC5qb2luKFwiLCBcIikgKyBcIiwgZ290ICdcIiArICh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpICsgXCInXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyclN0ciA9IFwiUGFyc2UgZXJyb3Igb24gbGluZSBcIiArICh5eWxpbmVubyArIDEpICsgXCI6IFVuZXhwZWN0ZWQgXCIgKyAoc3ltYm9sID09IDEgPyBcImVuZCBvZiBpbnB1dFwiIDogXCInXCIgKyAodGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sKSArIFwiJ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFyc2VFcnJvcihlcnJTdHIsIHsgdGV4dDogdGhpcy5sZXhlci5tYXRjaCwgdG9rZW46IHRoaXMudGVybWluYWxzX1tzeW1ib2xdIHx8IHN5bWJvbCwgbGluZTogdGhpcy5sZXhlci55eWxpbmVubywgbG9jOiB5eWxvYywgZXhwZWN0ZWQ6IGV4cGVjdGVkIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChhY3Rpb25bMF0gaW5zdGFuY2VvZiBBcnJheSAmJiBhY3Rpb24ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXJzZSBFcnJvcjogbXVsdGlwbGUgYWN0aW9ucyBwb3NzaWJsZSBhdCBzdGF0ZTogXCIgKyBzdGF0ZSArIFwiLCB0b2tlbjogXCIgKyBzeW1ib2wpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGFjdGlvblswXSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKHN5bWJvbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2c3RhY2sucHVzaCh0aGlzLmxleGVyLnl5dGV4dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsc3RhY2sucHVzaCh0aGlzLmxleGVyLnl5bGxvYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKGFjdGlvblsxXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2wgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmVFcnJvclN5bWJvbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHl5bGVuZyA9IHRoaXMubGV4ZXIueXlsZW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHl5dGV4dCA9IHRoaXMubGV4ZXIueXl0ZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHl5bGluZW5vID0gdGhpcy5sZXhlci55eWxpbmVubztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5eWxvYyA9IHRoaXMubGV4ZXIueXlsbG9jO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWNvdmVyaW5nID4gMCkgcmVjb3ZlcmluZy0tO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2wgPSBwcmVFcnJvclN5bWJvbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVFcnJvclN5bWJvbCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gdGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVsxXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHl5dmFsLiQgPSB2c3RhY2tbdnN0YWNrLmxlbmd0aCAtIGxlbl07XG4gICAgICAgICAgICAgICAgICAgICAgICB5eXZhbC5fJCA9IHsgZmlyc3RfbGluZTogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAobGVuIHx8IDEpXS5maXJzdF9saW5lLCBsYXN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ubGFzdF9saW5lLCBmaXJzdF9jb2x1bW46IGxzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0uZmlyc3RfY29sdW1uLCBsYXN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGggLSAxXS5sYXN0X2NvbHVtbiB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJhbmdlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHl5dmFsLl8kLnJhbmdlID0gW2xzdGFja1tsc3RhY2subGVuZ3RoIC0gKGxlbiB8fCAxKV0ucmFuZ2VbMF0sIGxzdGFja1tsc3RhY2subGVuZ3RoIC0gMV0ucmFuZ2VbMV1dO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMucGVyZm9ybUFjdGlvbi5jYWxsKHl5dmFsLCB5eXRleHQsIHl5bGVuZywgeXlsaW5lbm8sIHRoaXMueXksIGFjdGlvblsxXSwgdnN0YWNrLCBsc3RhY2spO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2sgPSBzdGFjay5zbGljZSgwLCAtMSAqIGxlbiAqIDIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZzdGFjayA9IHZzdGFjay5zbGljZSgwLCAtMSAqIGxlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbHN0YWNrID0gbHN0YWNrLnNsaWNlKDAsIC0xICogbGVuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrLnB1c2godGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVswXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2c3RhY2sucHVzaCh5eXZhbC4kKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxzdGFjay5wdXNoKHl5dmFsLl8kKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0gdGFibGVbc3RhY2tbc3RhY2subGVuZ3RoIC0gMl1dW3N0YWNrW3N0YWNrLmxlbmd0aCAtIDFdXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrLnB1c2gobmV3U3RhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvKiBKaXNvbiBnZW5lcmF0ZWQgbGV4ZXIgKi9cbiAgICB2YXIgbGV4ZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbGV4ZXIgPSB7IEVPRjogMSxcbiAgICAgICAgICAgIHBhcnNlRXJyb3I6IGZ1bmN0aW9uIHBhcnNlRXJyb3Ioc3RyLCBoYXNoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMueXkucGFyc2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMueXkucGFyc2VyLnBhcnNlRXJyb3Ioc3RyLCBoYXNoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Ioc3RyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0SW5wdXQ6IGZ1bmN0aW9uIHNldElucHV0KGlucHV0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb3JlID0gdGhpcy5fbGVzcyA9IHRoaXMuZG9uZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMueXlsaW5lbm8gPSB0aGlzLnl5bGVuZyA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLm1hdGNoZWQgPSB0aGlzLm1hdGNoID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjayA9IFsnSU5JVElBTCddO1xuICAgICAgICAgICAgICAgIHRoaXMueXlsbG9jID0geyBmaXJzdF9saW5lOiAxLCBmaXJzdF9jb2x1bW46IDAsIGxhc3RfbGluZTogMSwgbGFzdF9jb2x1bW46IDAgfTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykgdGhpcy55eWxsb2MucmFuZ2UgPSBbMCwgMF07XG4gICAgICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSAwO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlucHV0OiBmdW5jdGlvbiBpbnB1dCgpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2ggPSB0aGlzLl9pbnB1dFswXTtcbiAgICAgICAgICAgICAgICB0aGlzLnl5dGV4dCArPSBjaDtcbiAgICAgICAgICAgICAgICB0aGlzLnl5bGVuZysrO1xuICAgICAgICAgICAgICAgIHRoaXMub2Zmc2V0Kys7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXRjaCArPSBjaDtcbiAgICAgICAgICAgICAgICB0aGlzLm1hdGNoZWQgKz0gY2g7XG4gICAgICAgICAgICAgICAgdmFyIGxpbmVzID0gY2gubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICAgICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnl5bGluZW5vKys7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfbGluZSsrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMueXlsbG9jLmxhc3RfY29sdW1uKys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmFuZ2VzKSB0aGlzLnl5bGxvYy5yYW5nZVsxXSsrO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZSgxKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2g7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdW5wdXQ6IGZ1bmN0aW9uIHVucHV0KGNoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGxlbiA9IGNoLmxlbmd0aDtcbiAgICAgICAgICAgICAgICB2YXIgbGluZXMgPSBjaC5zcGxpdCgvKD86XFxyXFxuP3xcXG4pL2cpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5faW5wdXQgPSBjaCArIHRoaXMuX2lucHV0O1xuICAgICAgICAgICAgICAgIHRoaXMueXl0ZXh0ID0gdGhpcy55eXRleHQuc3Vic3RyKDAsIHRoaXMueXl0ZXh0Lmxlbmd0aCAtIGxlbiAtIDEpO1xuICAgICAgICAgICAgICAgIC8vdGhpcy55eWxlbmcgLT0gbGVuO1xuICAgICAgICAgICAgICAgIHRoaXMub2Zmc2V0IC09IGxlbjtcbiAgICAgICAgICAgICAgICB2YXIgb2xkTGluZXMgPSB0aGlzLm1hdGNoLnNwbGl0KC8oPzpcXHJcXG4/fFxcbikvZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXRjaCA9IHRoaXMubWF0Y2guc3Vic3RyKDAsIHRoaXMubWF0Y2gubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXRjaGVkID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gMSk7XG5cbiAgICAgICAgICAgICAgICBpZiAobGluZXMubGVuZ3RoIC0gMSkgdGhpcy55eWxpbmVubyAtPSBsaW5lcy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIHZhciByID0gdGhpcy55eWxsb2MucmFuZ2U7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnl5bGxvYyA9IHsgZmlyc3RfbGluZTogdGhpcy55eWxsb2MuZmlyc3RfbGluZSxcbiAgICAgICAgICAgICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgIGxhc3RfY29sdW1uOiBsaW5lcyA/IChsaW5lcy5sZW5ndGggPT09IG9sZExpbmVzLmxlbmd0aCA/IHRoaXMueXlsbG9jLmZpcnN0X2NvbHVtbiA6IDApICsgb2xkTGluZXNbb2xkTGluZXMubGVuZ3RoIC0gbGluZXMubGVuZ3RoXS5sZW5ndGggLSBsaW5lc1swXS5sZW5ndGggOiB0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4gLSBsZW5cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYW5nZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbclswXSwgclswXSArIHRoaXMueXlsZW5nIC0gbGVuXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbW9yZTogZnVuY3Rpb24gbW9yZSgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb3JlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsZXNzOiBmdW5jdGlvbiBsZXNzKG4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVucHV0KHRoaXMubWF0Y2guc2xpY2UobikpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhc3RJbnB1dDogZnVuY3Rpb24gcGFzdElucHV0KCkge1xuICAgICAgICAgICAgICAgIHZhciBwYXN0ID0gdGhpcy5tYXRjaGVkLnN1YnN0cigwLCB0aGlzLm1hdGNoZWQubGVuZ3RoIC0gdGhpcy5tYXRjaC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHJldHVybiAocGFzdC5sZW5ndGggPiAyMCA/ICcuLi4nIDogJycpICsgcGFzdC5zdWJzdHIoLTIwKS5yZXBsYWNlKC9cXG4vZywgXCJcIik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXBjb21pbmdJbnB1dDogZnVuY3Rpb24gdXBjb21pbmdJbnB1dCgpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IHRoaXMubWF0Y2g7XG4gICAgICAgICAgICAgICAgaWYgKG5leHQubGVuZ3RoIDwgMjApIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dCArPSB0aGlzLl9pbnB1dC5zdWJzdHIoMCwgMjAgLSBuZXh0Lmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAobmV4dC5zdWJzdHIoMCwgMjApICsgKG5leHQubGVuZ3RoID4gMjAgPyAnLi4uJyA6ICcnKSkucmVwbGFjZSgvXFxuL2csIFwiXCIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNob3dQb3NpdGlvbjogZnVuY3Rpb24gc2hvd1Bvc2l0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBwcmUgPSB0aGlzLnBhc3RJbnB1dCgpO1xuICAgICAgICAgICAgICAgIHZhciBjID0gbmV3IEFycmF5KHByZS5sZW5ndGggKyAxKS5qb2luKFwiLVwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJlICsgdGhpcy51cGNvbWluZ0lucHV0KCkgKyBcIlxcblwiICsgYyArIFwiXlwiO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5faW5wdXQpIHRoaXMuZG9uZSA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICB2YXIgdG9rZW4sIG1hdGNoLCB0ZW1wTWF0Y2gsIGluZGV4LCBjb2wsIGxpbmVzO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fbW9yZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnl5dGV4dCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdGNoID0gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBydWxlcyA9IHRoaXMuX2N1cnJlbnRSdWxlcygpO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgdGVtcE1hdGNoID0gdGhpcy5faW5wdXQubWF0Y2godGhpcy5ydWxlc1tydWxlc1tpXV0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGVtcE1hdGNoICYmICghbWF0Y2ggfHwgdGVtcE1hdGNoWzBdLmxlbmd0aCA+IG1hdGNoWzBdLmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoID0gdGVtcE1hdGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuZmxleCkgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVzID0gbWF0Y2hbMF0ubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobGluZXMpIHRoaXMueXlsaW5lbm8gKz0gbGluZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnl5bGxvYyA9IHsgZmlyc3RfbGluZTogdGhpcy55eWxsb2MubGFzdF9saW5lLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X2NvbHVtbjogdGhpcy55eWxsb2MubGFzdF9jb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogbGluZXMgPyBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGggLSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5tYXRjaCgvXFxyP1xcbj8vKVswXS5sZW5ndGggOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbiArIG1hdGNoWzBdLmxlbmd0aCB9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnl5dGV4dCArPSBtYXRjaFswXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRjaCArPSBtYXRjaFswXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRjaGVzID0gbWF0Y2g7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMueXlsZW5nID0gdGhpcy55eXRleHQubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhbmdlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy55eWxsb2MucmFuZ2UgPSBbdGhpcy5vZmZzZXQsIHRoaXMub2Zmc2V0ICs9IHRoaXMueXlsZW5nXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb3JlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lucHV0ID0gdGhpcy5faW5wdXQuc2xpY2UobWF0Y2hbMF0ubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRjaGVkICs9IG1hdGNoWzBdO1xuICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IHRoaXMucGVyZm9ybUFjdGlvbi5jYWxsKHRoaXMsIHRoaXMueXksIHRoaXMsIHJ1bGVzW2luZGV4XSwgdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZG9uZSAmJiB0aGlzLl9pbnB1dCkgdGhpcy5kb25lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbikgcmV0dXJuIHRva2VuO2Vsc2UgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faW5wdXQgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuRU9GO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlRXJyb3IoJ0xleGljYWwgZXJyb3Igb24gbGluZSAnICsgKHRoaXMueXlsaW5lbm8gKyAxKSArICcuIFVucmVjb2duaXplZCB0ZXh0LlxcbicgKyB0aGlzLnNob3dQb3NpdGlvbigpLCB7IHRleHQ6IFwiXCIsIHRva2VuOiBudWxsLCBsaW5lOiB0aGlzLnl5bGluZW5vIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsZXg6IGZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgICAgICAgICB2YXIgciA9IHRoaXMubmV4dCgpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubGV4KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJlZ2luOiBmdW5jdGlvbiBiZWdpbihjb25kaXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblN0YWNrLnB1c2goY29uZGl0aW9uKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwb3BTdGF0ZTogZnVuY3Rpb24gcG9wU3RhdGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2sucG9wKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2N1cnJlbnRSdWxlczogZnVuY3Rpb24gX2N1cnJlbnRSdWxlcygpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW3RoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGggLSAxXV0ucnVsZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdG9wU3RhdGU6IGZ1bmN0aW9uIHRvcFN0YXRlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoIC0gMl07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHVzaFN0YXRlOiBmdW5jdGlvbiBiZWdpbihjb25kaXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJlZ2luKGNvbmRpdGlvbik7XG4gICAgICAgICAgICB9IH07XG4gICAgICAgIGxleGVyLm9wdGlvbnMgPSB7fTtcbiAgICAgICAgbGV4ZXIucGVyZm9ybUFjdGlvbiA9IGZ1bmN0aW9uIGFub255bW91cyh5eSwgeXlfLCAkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zLCBZWV9TVEFSVCkge1xuXG4gICAgICAgICAgICBmdW5jdGlvbiBzdHJpcChzdGFydCwgZW5kKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHl5Xy55eXRleHQgPSB5eV8ueXl0ZXh0LnN1YnN0cmluZyhzdGFydCwgeXlfLnl5bGVuZyAtIGVuZCArIHN0YXJ0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIFlZU1RBVEUgPSBZWV9TVEFSVDtcbiAgICAgICAgICAgIHN3aXRjaCAoJGF2b2lkaW5nX25hbWVfY29sbGlzaW9ucykge1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKHl5Xy55eXRleHQuc2xpY2UoLTIpID09PSBcIlxcXFxcXFxcXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwKDAsIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iZWdpbihcIm11XCIpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHl5Xy55eXRleHQuc2xpY2UoLTEpID09PSBcIlxcXFxcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXAoMCwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJlZ2luKFwiZW11XCIpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iZWdpbihcIm11XCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh5eV8ueXl0ZXh0KSByZXR1cm4gMTU7XG5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTU7XG5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJlZ2luKCdyYXcnKTtyZXR1cm4gMTU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAvLyBTaG91bGQgYmUgdXNpbmcgYHRoaXMudG9wU3RhdGUoKWAgYmVsb3csIGJ1dCBpdCBjdXJyZW50bHlcbiAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJucyB0aGUgc2Vjb25kIHRvcCBpbnN0ZWFkIG9mIHRoZSBmaXJzdCB0b3AuIE9wZW5lZCBhblxuICAgICAgICAgICAgICAgICAgICAvLyBpc3N1ZSBhYm91dCBpdCBhdCBodHRwczovL2dpdGh1Yi5jb20vemFhY2gvamlzb24vaXNzdWVzLzI5MVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aCAtIDFdID09PSAncmF3Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE1O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXAoNSwgOSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0VORF9SQVdfQkxPQ0snO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTQ7XG5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gNjU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDY4O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAxOTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJlZ2luKCdyYXcnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDIzO1xuXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA1NTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDYwO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMTQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA0NztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO3JldHVybiA0NDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BTdGF0ZSgpO3JldHVybiA0NDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAxNzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDM0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDE4OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMzk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMTk6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA1MTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAyMDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDQ4O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDIxOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVucHV0KHl5Xy55eXRleHQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmVnaW4oJ2NvbScpO1xuXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9wU3RhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE0O1xuXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA0ODtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAyNDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDczO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gNzI7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMjY6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA3MjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDg3O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDI4OlxuICAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDI5OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7cmV0dXJuIDU0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDMwOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcFN0YXRlKCk7cmV0dXJuIDMzO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDMxOlxuICAgICAgICAgICAgICAgICAgICB5eV8ueXl0ZXh0ID0gc3RyaXAoMSwgMikucmVwbGFjZSgvXFxcXFwiL2csICdcIicpO3JldHVybiA4MDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICAgICAgICAgICAgeXlfLnl5dGV4dCA9IHN0cmlwKDEsIDIpLnJlcGxhY2UoL1xcXFwnL2csIFwiJ1wiKTtyZXR1cm4gODA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMzM6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA4NTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAzNDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDgyO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDM1OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gODI7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMzY6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA4MztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAzNzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDg0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDM4OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gODE7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMzk6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA3NTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0MDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDc3O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQxOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gNzI7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDI6XG4gICAgICAgICAgICAgICAgICAgIHl5Xy55eXRleHQgPSB5eV8ueXl0ZXh0LnJlcGxhY2UoL1xcXFwoW1xcXFxcXF1dKS9nLCAnJDEnKTtyZXR1cm4gNzI7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDM6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnSU5WQUxJRCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA1O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgbGV4ZXIucnVsZXMgPSBbL14oPzpbXlxceDAwXSo/KD89KFxce1xceykpKS8sIC9eKD86W15cXHgwMF0rKS8sIC9eKD86W15cXHgwMF17Mix9Pyg/PShcXHtcXHt8XFxcXFxce1xce3xcXFxcXFxcXFxce1xce3wkKSkpLywgL14oPzpcXHtcXHtcXHtcXHsoPz1bXlxcL10pKS8sIC9eKD86XFx7XFx7XFx7XFx7XFwvW15cXHMhXCIjJS0sXFwuXFwvOy0+QFxcWy1cXF5gXFx7LX5dKyg/PVs9fVxcc1xcLy5dKVxcfVxcfVxcfVxcfSkvLCAvXig/OlteXFx4MDBdKz8oPz0oXFx7XFx7XFx7XFx7KSkpLywgL14oPzpbXFxzXFxTXSo/LS0ofik/XFx9XFx9KS8sIC9eKD86XFwoKS8sIC9eKD86XFwpKS8sIC9eKD86XFx7XFx7XFx7XFx7KS8sIC9eKD86XFx9XFx9XFx9XFx9KS8sIC9eKD86XFx7XFx7KH4pPz4pLywgL14oPzpcXHtcXHsofik/Iz4pLywgL14oPzpcXHtcXHsofik/I1xcKj8pLywgL14oPzpcXHtcXHsofik/XFwvKS8sIC9eKD86XFx7XFx7KH4pP1xcXlxccyoofik/XFx9XFx9KS8sIC9eKD86XFx7XFx7KH4pP1xccyplbHNlXFxzKih+KT9cXH1cXH0pLywgL14oPzpcXHtcXHsofik/XFxeKS8sIC9eKD86XFx7XFx7KH4pP1xccyplbHNlXFxiKS8sIC9eKD86XFx7XFx7KH4pP1xceykvLCAvXig/Olxce1xceyh+KT8mKS8sIC9eKD86XFx7XFx7KH4pPyEtLSkvLCAvXig/Olxce1xceyh+KT8hW1xcc1xcU10qP1xcfVxcfSkvLCAvXig/Olxce1xceyh+KT9cXCo/KS8sIC9eKD86PSkvLCAvXig/OlxcLlxcLikvLCAvXig/OlxcLig/PShbPX59XFxzXFwvLil8XSkpKS8sIC9eKD86W1xcLy5dKS8sIC9eKD86XFxzKykvLCAvXig/OlxcfSh+KT9cXH1cXH0pLywgL14oPzoofik/XFx9XFx9KS8sIC9eKD86XCIoXFxcXFtcIl18W15cIl0pKlwiKS8sIC9eKD86JyhcXFxcWyddfFteJ10pKicpLywgL14oPzpAKS8sIC9eKD86dHJ1ZSg/PShbfn1cXHMpXSkpKS8sIC9eKD86ZmFsc2UoPz0oW359XFxzKV0pKSkvLCAvXig/OnVuZGVmaW5lZCg/PShbfn1cXHMpXSkpKS8sIC9eKD86bnVsbCg/PShbfn1cXHMpXSkpKS8sIC9eKD86LT9bMC05XSsoPzpcXC5bMC05XSspPyg/PShbfn1cXHMpXSkpKS8sIC9eKD86YXNcXHMrXFx8KS8sIC9eKD86XFx8KS8sIC9eKD86KFteXFxzIVwiIyUtLFxcLlxcLzstPkBcXFstXFxeYFxcey1+XSsoPz0oWz1+fVxcc1xcLy4pfF0pKSkpLywgL14oPzpcXFsoXFxcXFxcXXxbXlxcXV0pKlxcXSkvLCAvXig/Oi4pLywgL14oPzokKS9dO1xuICAgICAgICBsZXhlci5jb25kaXRpb25zID0geyBcIm11XCI6IHsgXCJydWxlc1wiOiBbNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJlbXVcIjogeyBcInJ1bGVzXCI6IFsyXSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJjb21cIjogeyBcInJ1bGVzXCI6IFs2XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJyYXdcIjogeyBcInJ1bGVzXCI6IFszLCA0LCA1XSwgXCJpbmNsdXNpdmVcIjogZmFsc2UgfSwgXCJJTklUSUFMXCI6IHsgXCJydWxlc1wiOiBbMCwgMSwgNDRdLCBcImluY2x1c2l2ZVwiOiB0cnVlIH0gfTtcbiAgICAgICAgcmV0dXJuIGxleGVyO1xuICAgIH0pKCk7XG4gICAgcGFyc2VyLmxleGVyID0gbGV4ZXI7XG4gICAgZnVuY3Rpb24gUGFyc2VyKCkge1xuICAgICAgICB0aGlzLnl5ID0ge307XG4gICAgfVBhcnNlci5wcm90b3R5cGUgPSBwYXJzZXI7cGFyc2VyLlBhcnNlciA9IFBhcnNlcjtcbiAgICByZXR1cm4gbmV3IFBhcnNlcigpO1xufSkoKTtleHBvcnRzW1wiZGVmYXVsdFwiXSA9IGhhbmRsZWJhcnM7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwyeHBZaTlvWVc1a2JHVmlZWEp6TDJOdmJYQnBiR1Z5TDNCaGNuTmxjaTVxY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096dEJRVVZCTEVsQlFVa3NWVUZCVlN4SFFVRkhMRU5CUVVNc1dVRkJWVHRCUVVNMVFpeFJRVUZKTEUxQlFVMHNSMEZCUnl4RlFVRkRMRXRCUVVzc1JVRkJSU3hUUVVGVExFdEJRVXNzUjBGQlNTeEZRVUZITzBGQlF6RkRMRlZCUVVVc1JVRkJSU3hGUVVGRk8wRkJRMDRzWjBKQlFWRXNSVUZCUlN4RlFVRkRMRTlCUVU4c1JVRkJReXhEUVVGRExFVkJRVU1zVFVGQlRTeEZRVUZETEVOQlFVTXNSVUZCUXl4VFFVRlRMRVZCUVVNc1EwRkJReXhGUVVGRExFdEJRVXNzUlVGQlF5eERRVUZETEVWQlFVTXNjVUpCUVhGQ0xFVkJRVU1zUTBGQlF5eEZRVUZETEZkQlFWY3NSVUZCUXl4RFFVRkRMRVZCUVVNc1ZVRkJWU3hGUVVGRExFTkJRVU1zUlVGQlF5eFBRVUZQTEVWQlFVTXNRMEZCUXl4RlFVRkRMRlZCUVZVc1JVRkJReXhGUVVGRkxFVkJRVU1zVTBGQlV5eEZRVUZETEVWQlFVVXNSVUZCUXl4alFVRmpMRVZCUVVNc1JVRkJSU3hGUVVGRExGTkJRVk1zUlVGQlF5eEZRVUZGTEVWQlFVTXNVMEZCVXl4RlFVRkRMRVZCUVVVc1JVRkJReXhUUVVGVExFVkJRVU1zUlVGQlJTeEZRVUZETEdOQlFXTXNSVUZCUXl4RlFVRkZMRVZCUVVNc2MwSkJRWE5DTEVWQlFVTXNSVUZCUlN4RlFVRkRMR1ZCUVdVc1JVRkJReXhGUVVGRkxFVkJRVU1zWjBKQlFXZENMRVZCUVVNc1JVRkJSU3hGUVVGRExGbEJRVmtzUlVGQlF5eEZRVUZGTEVWQlFVTXNNRUpCUVRCQ0xFVkJRVU1zUlVGQlJTeEZRVUZETEhOQ1FVRnpRaXhGUVVGRExFVkJRVVVzUlVGQlF5eHBRa0ZCYVVJc1JVRkJReXhGUVVGRkxFVkJRVU1zVjBGQlZ5eEZRVUZETEVWQlFVVXNSVUZCUXl4bFFVRmxMRVZCUVVNc1JVRkJSU3hGUVVGRExGbEJRVmtzUlVGQlF5eEZRVUZGTEVWQlFVTXNZVUZCWVN4RlFVRkRMRVZCUVVVc1JVRkJReXhsUVVGbExFVkJRVU1zUlVGQlJTeEZRVUZETEZsQlFWa3NSVUZCUXl4RlFVRkZMRVZCUVVNc2RVSkJRWFZDTEVWQlFVTXNSVUZCUlN4RlFVRkRMRzFDUVVGdFFpeEZRVUZETEVWQlFVVXNSVUZCUXl4dFFrRkJiVUlzUlVGQlF5eEZRVUZGTEVWQlFVTXNUMEZCVHl4RlFVRkRMRVZCUVVVc1JVRkJReXhqUVVGakxFVkJRVU1zUlVGQlJTeEZRVUZETEhsQ1FVRjVRaXhGUVVGRExFVkJRVVVzUlVGQlF5eHhRa0ZCY1VJc1JVRkJReXhGUVVGRkxFVkJRVU1zY1VKQlFYRkNMRVZCUVVNc1JVRkJSU3hGUVVGRExHdENRVUZyUWl4RlFVRkRMRVZCUVVVc1JVRkJReXh2UWtGQmIwSXNSVUZCUXl4RlFVRkZMRVZCUVVNc09FSkJRVGhDTEVWQlFVTXNSVUZCUlN4RlFVRkRMREJDUVVFd1FpeEZRVUZETEVWQlFVVXNSVUZCUXl3d1FrRkJNRUlzUlVGQlF5eEZRVUZGTEVWQlFVTXNiVUpCUVcxQ0xFVkJRVU1zUlVGQlJTeEZRVUZETEZOQlFWTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1kwRkJZeXhGUVVGRExFVkJRVVVzUlVGQlF5eHpRa0ZCYzBJc1JVRkJReXhGUVVGRkxFVkJRVU1zWlVGQlpTeEZRVUZETEVWQlFVVXNSVUZCUXl4TlFVRk5MRVZCUVVNc1JVRkJSU3hGUVVGRExITkNRVUZ6UWl4RlFVRkRMRVZCUVVVc1JVRkJReXhyUWtGQmEwSXNSVUZCUXl4RlFVRkZMRVZCUVVNc1owSkJRV2RDTEVWQlFVTXNSVUZCUlN4RlFVRkRMSE5DUVVGelFpeEZRVUZETEVWQlFVVXNSVUZCUXl4clFrRkJhMElzUlVGQlF5eEZRVUZGTEVWQlFVTXNhVUpCUVdsQ0xFVkJRVU1zUlVGQlJTeEZRVUZETEdOQlFXTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1lVRkJZU3hGUVVGRExFVkJRVVVzUlVGQlF5eHhRa0ZCY1VJc1JVRkJReXhGUVVGRkxFVkJRVU1zYVVKQlFXbENMRVZCUVVNc1JVRkJSU3hGUVVGRExHdENRVUZyUWl4RlFVRkRMRVZCUVVVc1JVRkJReXh2UWtGQmIwSXNSVUZCUXl4RlFVRkZMRVZCUVVNc09FSkJRVGhDTEVWQlFVTXNSVUZCUlN4RlFVRkRMREJDUVVFd1FpeEZRVUZETEVWQlFVVXNSVUZCUXl4UFFVRlBMRVZCUVVNc1JVRkJSU3hGUVVGRExFOUJRVThzUlVGQlF5eEZRVUZGTEVWQlFVTXNXVUZCV1N4RlFVRkRMRVZCUVVVc1JVRkJReXh0UWtGQmJVSXNSVUZCUXl4RlFVRkZMRVZCUVVNc1pVRkJaU3hGUVVGRExFVkJRVVVzUlVGQlF5eGhRVUZoTEVWQlFVTXNSVUZCUlN4RlFVRkRMRTFCUVUwc1JVRkJReXhGUVVGRkxFVkJRVU1zZFVKQlFYVkNMRVZCUVVNc1JVRkJSU3hGUVVGRExHRkJRV0VzUlVGQlF5eEZRVUZGTEVWQlFVTXNTVUZCU1N4RlFVRkRMRVZCUVVVc1JVRkJReXhSUVVGUkxFVkJRVU1zUlVGQlJTeEZRVUZETEdGQlFXRXNSVUZCUXl4RlFVRkZMRVZCUVVNc2JVSkJRVzFDTEVWQlFVTXNSVUZCUlN4RlFVRkRMRGhDUVVFNFFpeEZRVUZETEVWQlFVVXNSVUZCUXl4dlFrRkJiMElzUlVGQlF5eEZRVUZGTEVWQlFVTXNUVUZCVFN4RlFVRkRMRVZCUVVVc1JVRkJReXhWUVVGVkxFVkJRVU1zUlVGQlJTeEZRVUZETEZGQlFWRXNSVUZCUXl4RlFVRkZMRVZCUVVNc1VVRkJVU3hGUVVGRExFVkJRVVVzUlVGQlF5eFRRVUZUTEVWQlFVTXNSVUZCUlN4RlFVRkRMRmRCUVZjc1JVRkJReXhGUVVGRkxFVkJRVU1zVFVGQlRTeEZRVUZETEVWQlFVVXNSVUZCUXl4TlFVRk5MRVZCUVVNc1JVRkJSU3hGUVVGRExHTkJRV01zUlVGQlF5eEZRVUZGTEVWQlFVTXNTMEZCU3l4RlFVRkRMRVZCUVVVc1JVRkJReXhUUVVGVExFVkJRVU1zUTBGQlF5eEZRVUZETEUxQlFVMHNSVUZCUXl4RFFVRkRMRVZCUVVNN1FVRkROVzFFTEd0Q1FVRlZMRVZCUVVVc1JVRkJReXhEUVVGRExFVkJRVU1zVDBGQlR5eEZRVUZETEVOQlFVTXNSVUZCUXl4TFFVRkxMRVZCUVVNc1JVRkJSU3hGUVVGRExGTkJRVk1zUlVGQlF5eEZRVUZGTEVWQlFVTXNVMEZCVXl4RlFVRkRMRVZCUVVVc1JVRkJReXhsUVVGbExFVkJRVU1zUlVGQlJTeEZRVUZETEdkQ1FVRm5RaXhGUVVGRExFVkJRVVVzUlVGQlF5eHBRa0ZCYVVJc1JVRkJReXhGUVVGRkxFVkJRVU1zV1VGQldTeEZRVUZETEVWQlFVVXNSVUZCUXl4UFFVRlBMRVZCUVVNc1JVRkJSU3hGUVVGRExHTkJRV01zUlVGQlF5eEZRVUZGTEVWQlFVTXNiMEpCUVc5Q0xFVkJRVU1zUlVGQlJTeEZRVUZETEZOQlFWTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1pVRkJaU3hGUVVGRExFVkJRVVVzUlVGQlF5eE5RVUZOTEVWQlFVTXNSVUZCUlN4RlFVRkRMR2RDUVVGblFpeEZRVUZETEVWQlFVVXNSVUZCUXl4cFFrRkJhVUlzUlVGQlF5eEZRVUZGTEVWQlFVTXNZMEZCWXl4RlFVRkRMRVZCUVVVc1JVRkJReXh2UWtGQmIwSXNSVUZCUXl4RlFVRkZMRVZCUVVNc1dVRkJXU3hGUVVGRExFVkJRVVVzUlVGQlF5eGhRVUZoTEVWQlFVTXNSVUZCUlN4RlFVRkRMRWxCUVVrc1JVRkJReXhGUVVGRkxFVkJRVU1zVVVGQlVTeEZRVUZETEVWQlFVVXNSVUZCUXl4dFFrRkJiVUlzUlVGQlF5eEZRVUZGTEVWQlFVTXNiMEpCUVc5Q0xFVkJRVU1zUlVGQlJTeEZRVUZETEZGQlFWRXNSVUZCUXl4RlFVRkZMRVZCUVVNc1VVRkJVU3hGUVVGRExFVkJRVVVzUlVGQlF5eFRRVUZUTEVWQlFVTXNSVUZCUlN4RlFVRkRMRmRCUVZjc1JVRkJReXhGUVVGRkxFVkJRVU1zVFVGQlRTeEZRVUZETEVWQlFVVXNSVUZCUXl4TlFVRk5MRVZCUVVNc1JVRkJSU3hGUVVGRExFdEJRVXNzUlVGQlF6dEJRVU0xWlN4dlFrRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNKelFpeHhRa0ZCWVN4RlFVRkZMRk5CUVZNc1UwRkJVeXhEUVVGRExFMUJRVTBzUlVGQlF5eE5RVUZOTEVWQlFVTXNVVUZCVVN4RlFVRkRMRVZCUVVVc1JVRkJReXhQUVVGUExFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZEZGtVN08wRkJSVVlzWjBKQlFVa3NSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETzBGQlEzWkNMRzlDUVVGUkxFOUJRVTg3UVVGRFppeHhRa0ZCU3l4RFFVRkRPMEZCUVVVc01rSkJRVThzUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONFFpd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUTBGQlF6dEJRVUZETEhkQ1FVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eGpRVUZqTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE1VTXNNRUpCUVUwN1FVRkJRU3hCUVVOT0xIRkNRVUZMTEVOQlFVTTdRVUZCUXl4M1FrRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRka0lzTUVKQlFVMDdRVUZCUVN4QlFVTk9MSEZDUVVGTExFTkJRVU03UVVGQlF5eDNRa0ZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdRVUZEZGtJc01FSkJRVTA3UVVGQlFTeEJRVU5PTEhGQ1FVRkxMRU5CUVVNN1FVRkJReXgzUWtGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03UVVGRGRrSXNNRUpCUVUwN1FVRkJRU3hCUVVOT0xIRkNRVUZMTEVOQlFVTTdRVUZCUXl4M1FrRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRka0lzTUVKQlFVMDdRVUZCUVN4QlFVTk9MSEZDUVVGTExFTkJRVU03UVVGQlF5eDNRa0ZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdRVUZEZGtJc01FSkJRVTA3UVVGQlFTeEJRVU5PTEhGQ1FVRkxMRU5CUVVNN1FVRkJReXgzUWtGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03UVVGRGRrSXNNRUpCUVUwN1FVRkJRU3hCUVVOT0xIRkNRVUZMTEVOQlFVTTdRVUZEUml4M1FrRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ6dEJRVU5RTERSQ1FVRkpMRVZCUVVVc2EwSkJRV3RDTzBGQlEzaENMRFpDUVVGTExFVkJRVVVzUlVGQlJTeERRVUZETEZsQlFWa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03UVVGRE9VSXNOa0pCUVVzc1JVRkJSU3hGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdRVUZEY0VNc01rSkJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU03Y1VKQlEzcENMRU5CUVVNN08wRkJSVTRzTUVKQlFVMDdRVUZCUVN4QlFVTk9MSEZDUVVGTExFVkJRVVU3UVVGRFNDeDNRa0ZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSenRCUVVOUUxEUkNRVUZKTEVWQlFVVXNhMEpCUVd0Q08wRkJRM2hDTEdkRFFVRlJMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF6dEJRVU5vUWl3MlFrRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTTdRVUZEWWl3eVFrRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJRenR4UWtGRGVrSXNRMEZCUXpzN1FVRkZUaXd3UWtGQlRUdEJRVUZCTEVGQlEwNHNjVUpCUVVzc1JVRkJSVHRCUVVGRExIZENRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhsUVVGbExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRla1VzTUVKQlFVMDdRVUZCUVN4QlFVTk9MSEZDUVVGTExFVkJRVVU3UVVGQlF5eDNRa0ZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFbEJRVWtzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFMUJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03UVVGRGRFVXNNRUpCUVUwN1FVRkJRU3hCUVVOT0xIRkNRVUZMTEVWQlFVVTdRVUZCUXl4M1FrRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNXVUZCV1N4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFZEJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEzWkdMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUVVNc2QwSkJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRmxCUVZrc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFZEJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTjBSaXd3UWtGQlRUdEJRVUZCTEVGQlEwNHNjVUpCUVVzc1JVRkJSVHRCUVVGRExIZENRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1YwRkJWeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wRkJRM0pLTERCQ1FVRk5PMEZCUVVFc1FVRkRUaXh4UWtGQlN5eEZRVUZGTzBGQlFVTXNkMEpCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEpRVUZKTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFhRVUZYTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdRVUZEY2trc01FSkJRVTA3UVVGQlFTeEJRVU5PTEhGQ1FVRkxMRVZCUVVVN1FVRkJReXgzUWtGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWxCUVVrc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRmRCUVZjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRWRCUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenRCUVVOeVNTd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUlVGQlJUdEJRVUZETEhkQ1FVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUjBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hIUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETzBGQlF5OUZMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUTBnc2QwSkJRVWtzVDBGQlR5eEhRVUZITEVWQlFVVXNRMEZCUXl4WlFVRlpMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUjBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hIUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU03ZDBKQlF6ZEZMRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVVzUjBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRCUVVONlJDd3lRa0ZCVHl4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU03TzBGQlJYWkNMSGRDUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFZEJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRPenRCUVVWMFJTd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUlVGQlJUdEJRVUZETEhkQ1FVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTjRRaXd3UWtGQlRUdEJRVUZCTEVGQlEwNHNjVUpCUVVzc1JVRkJSVHRCUVVGRExIZENRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRE8wRkJRekZGTERCQ1FVRk5PMEZCUVVFc1FVRkRUaXh4UWtGQlN5eEZRVUZGTzBGQlFVTXNkMEpCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEdWQlFXVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hIUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRWRCUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03UVVGRGRFZ3NNRUpCUVUwN1FVRkJRU3hCUVVOT0xIRkNRVUZMTEVWQlFVVTdRVUZCUXl4M1FrRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNaVUZCWlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFZEJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU4wU0N3d1FrRkJUVHRCUVVGQkxFRkJRMDRzY1VKQlFVc3NSVUZCUlR0QlFVTklMSGRDUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITzBGQlExQXNORUpCUVVrc1JVRkJSU3hyUWtGQmEwSTdRVUZEZUVJc05FSkJRVWtzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOa0xEaENRVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJReXhEUVVGRExFTkJRVU03UVVGRGFFSXNORUpCUVVrc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXp0QlFVTmtMRGhDUVVGTkxFVkJRVVVzUlVGQlJUdEJRVU5XTERaQ1FVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTjBReXd5UWtGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF6dHhRa0ZEZWtJc1EwRkJRenM3UVVGRlRpd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUlVGQlJUdEJRVUZETEhkQ1FVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFZEJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTTNSU3d3UWtGQlRUdEJRVUZCTEVGQlEwNHNjVUpCUVVzc1JVRkJSVHRCUVVGRExIZENRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wRkJRemxITERCQ1FVRk5PMEZCUVVFc1FVRkRUaXh4UWtGQlN5eEZRVUZGTzBGQlFVTXNkMEpCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTNoQ0xEQkNRVUZOTzBGQlFVRXNRVUZEVGl4eFFrRkJTeXhGUVVGRk8wRkJRVU1zZDBKQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEzaENMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUTBnc2QwSkJRVWtzUTBGQlF5eERRVUZETEVkQlFVYzdRVUZEVUN3MFFrRkJTU3hGUVVGRkxHVkJRV1U3UVVGRGNrSXNORUpCUVVrc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXp0QlFVTmtMRGhDUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRhRUlzTkVKQlFVa3NSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hIUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5rTERKQ1FVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRPM0ZDUVVONlFpeERRVUZET3p0QlFVVk9MREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUVVNc2QwSkJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFTkJRVU03UVVGRGVrVXNNRUpCUVUwN1FVRkJRU3hCUVVOT0xIRkNRVUZMTEVWQlFVVTdRVUZCUXl4M1FrRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZETEVsQlFVa3NSVUZCUlN4VlFVRlZMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVOQlFVTTdRVUZEYmtjc01FSkJRVTA3UVVGQlFTeEJRVU5PTEhGQ1FVRkxMRVZCUVVVN1FVRkJReXgzUWtGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOcVF5d3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUlVGQlJUdEJRVUZETEhkQ1FVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTjRRaXd3UWtGQlRUdEJRVUZCTEVGQlEwNHNjVUpCUVVzc1JVRkJSVHRCUVVGRExIZENRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVU40UWl3d1FrRkJUVHRCUVVGQkxFRkJRMDRzY1VKQlFVc3NSVUZCUlR0QlFVRkRMSGRDUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVTXNTVUZCU1N4RlFVRkZMR1ZCUVdVc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRU5CUVVNN1FVRkRjRWNzTUVKQlFVMDdRVUZCUVN4QlFVTk9MSEZDUVVGTExFVkJRVVU3UVVGQlF5eDNRa0ZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRExFbEJRVWtzUlVGQlJTeGxRVUZsTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVVc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhEUVVGRE8wRkJRM0JJTERCQ1FVRk5PMEZCUVVFc1FVRkRUaXh4UWtGQlN5eEZRVUZGTzBGQlFVTXNkMEpCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlF5eEpRVUZKTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhOUVVGTkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVOQlFVTTdRVUZETTBnc01FSkJRVTA3UVVGQlFTeEJRVU5PTEhGQ1FVRkxMRVZCUVVVN1FVRkJReXgzUWtGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkRMRWxCUVVrc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4UlFVRlJMRVZCUVVVc1UwRkJVeXhGUVVGRkxFdEJRVXNzUlVGQlJTeFRRVUZUTEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRU5CUVVNN1FVRkROMGNzTUVKQlFVMDdRVUZCUVN4QlFVTk9MSEZDUVVGTExFVkJRVVU3UVVGQlF5eDNRa0ZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRExFbEJRVWtzUlVGQlJTeGhRVUZoTEVWQlFVVXNVVUZCVVN4RlFVRkZMRWxCUVVrc1JVRkJSU3hMUVVGTExFVkJRVVVzU1VGQlNTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RFFVRkRPMEZCUXpsR0xEQkNRVUZOTzBGQlFVRXNRVUZEVGl4eFFrRkJTeXhGUVVGRk8wRkJRVU1zZDBKQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEzaENMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUVVNc2QwSkJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRM2hDTERCQ1FVRk5PMEZCUVVFc1FVRkRUaXh4UWtGQlN5eEZRVUZGTzBGQlFVTXNkMEpCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVVOMlJDd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUlVGQlJUdEJRVUZETEhkQ1FVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eFhRVUZYTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRlRVFzTUVKQlFVMDdRVUZCUVN4QlFVTk9MSEZDUVVGTExFVkJRVVU3UVVGQlJTeHpRa0ZCUlN4RFFVRkRMRVZCUVVVc1IwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhCUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU40Unl3d1FrRkJUVHRCUVVGQkxFRkJRMDRzY1VKQlFVc3NSVUZCUlR0QlFVRkRMSGRDUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJRenRCUVVNelJDd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUlVGQlJUdEJRVUZETEhkQ1FVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dEJRVU53UWl3d1FrRkJUVHRCUVVGQkxFRkJRMDRzY1VKQlFVc3NSVUZCUlR0QlFVRkRMSE5DUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTVRaXd3UWtGQlRUdEJRVUZCTEVGQlEwNHNjVUpCUVVzc1JVRkJSVHRCUVVGRExIZENRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRCUVVOd1Fpd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUlVGQlJUdEJRVUZETEhOQ1FVRkZMRU5CUVVNc1JVRkJSU3hIUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU01UWl3d1FrRkJUVHRCUVVGQkxFRkJRMDRzY1VKQlFVc3NSVUZCUlR0QlFVRkRMSGRDUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0QlFVTndRaXd3UWtGQlRUdEJRVUZCTEVGQlEwNHNjVUpCUVVzc1JVRkJSVHRCUVVGRExITkNRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNNVFpd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUlVGQlJUdEJRVUZETEhkQ1FVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dEJRVU53UWl3d1FrRkJUVHRCUVVGQkxFRkJRMDRzY1VKQlFVc3NSVUZCUlR0QlFVRkRMSE5DUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTVRaXd3UWtGQlRUdEJRVUZCTEVGQlEwNHNjVUpCUVVzc1JVRkJSVHRCUVVGRExIZENRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRCUVVOd1Fpd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUlVGQlJUdEJRVUZETEhOQ1FVRkZMRU5CUVVNc1JVRkJSU3hIUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU01UWl3d1FrRkJUVHRCUVVGQkxFRkJRMDRzY1VKQlFVc3NSVUZCUlR0QlFVRkRMSGRDUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0QlFVTndRaXd3UWtGQlRUdEJRVUZCTEVGQlEwNHNjVUpCUVVzc1JVRkJSVHRCUVVGRExITkNRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNNVFpd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUlVGQlJUdEJRVUZETEhkQ1FVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dEJRVU53UWl3d1FrRkJUVHRCUVVGQkxFRkJRMDRzY1VKQlFVc3NSVUZCUlR0QlFVRkRMSE5DUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTVRaXd3UWtGQlRUdEJRVUZCTEVGQlEwNHNjVUpCUVVzc1JVRkJSVHRCUVVGRExIZENRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRCUVVOd1Fpd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUlVGQlJUdEJRVUZETEhOQ1FVRkZMRU5CUVVNc1JVRkJSU3hIUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU01UWl3d1FrRkJUVHRCUVVGQkxFRkJRMDRzY1VKQlFVc3NSVUZCUlR0QlFVRkRMSGRDUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0QlFVTndRaXd3UWtGQlRUdEJRVUZCTEVGQlEwNHNjVUpCUVVzc1JVRkJSVHRCUVVGRExITkNRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNNVFpd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUlVGQlJUdEJRVUZETEhkQ1FVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dEJRVU53UWl3d1FrRkJUVHRCUVVGQkxFRkJRMDRzY1VKQlFVc3NSVUZCUlR0QlFVRkRMSE5DUVVGRkxFTkJRVU1zUlVGQlJTeEhRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTVRaXd3UWtGQlRUdEJRVUZCTEVGQlEwNHNjVUpCUVVzc1JVRkJSVHRCUVVGRExIZENRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRCUVVOd1Fpd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUlVGQlJUdEJRVUZETEhOQ1FVRkZMRU5CUVVNc1JVRkJSU3hIUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU01UWl3d1FrRkJUVHRCUVVGQkxFRkJRMDRzY1VKQlFVc3NSVUZCUlR0QlFVRkRMSGRDUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE1VSXNNRUpCUVUwN1FVRkJRU3hCUVVOT0xIRkNRVUZMTEVWQlFVVTdRVUZCUXl4elFrRkJSU3hEUVVGRExFVkJRVVVzUjBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZET1VJc01FSkJRVTA3UVVGQlFTeEJRVU5PTEhGQ1FVRkxMRWRCUVVjN1FVRkJReXgzUWtGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6TkNMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4SFFVRkhPMEZCUVVNc2MwSkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXk5Q0xEQkNRVUZOTzBGQlFVRXNZVUZEVER0VFFVTkJPMEZCUTBRc1lVRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVTXNSVUZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVTXNSVUZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRExFVkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRExFVkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVU1zUlVGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZETEVWQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRExFVkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVkQlFVY3NSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUjBGQlJ5eEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4SFFVRkhMRVZCUVVNc1JVRkJSU3hGUVVGRExFZEJRVWNzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1IwRkJSeXhGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEhRVUZITEVOQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSMEZCUnl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEhRVUZITEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4SFFVRkhMRVZCUVVNc1JVRkJSU3hGUVVGRExFZEJRVWNzUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSMEZCUnl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhIUVVGSExFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRWRCUVVjc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFZEJRVWNzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eEhRVUZITEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4SFFVRkhMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUjBGQlJ5eEZRVUZETEVWQlFVVXNSVUZCUXl4SFFVRkhMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4SFFVRkhMRU5CUVVNc1JVRkJReXhGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1IwRkJSeXhEUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFZEJRVWNzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlF5eEZRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhIUVVGSExFVkJRVU1zUlVGQlJTeEZRVUZETEVkQlFVY3NSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUjBGQlJ5eEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVNc1JVRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEhRVUZITEVOQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRExFVkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eEhRVUZITEVWQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEhRVUZITEVOQlFVTXNSVUZCUXl4RlFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRWRCUVVjc1JVRkJReXhGUVVGRkxFVkJRVU1zUjBGQlJ5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhIUVVGSExFTkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1IwRkJSeXhEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1IwRkJSeXhEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1IwRkJSeXhEUVVGRExFVkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZETEVWQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eERRVUZETzBGQlF5OHZWaXh6UWtGQll5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXl4SFFVRkhMRVZCUVVNc1EwRkJReXhEUVVGRExFVkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNSMEZCUnl4RlFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZETEVkQlFVY3NSVUZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhGUVVGRkxFTkJRVU1zUlVGQlF5eEhRVUZITEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hEUVVGRExFVkJRVU1zUjBGQlJ5eEZRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRExFZEJRVWNzUlVGQlF5eERRVUZETEVOQlFVTXNSVUZCUXl4RlFVRkZMRU5CUVVNc1JVRkJReXhIUVVGSExFVkJRVU1zUTBGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1IwRkJSeXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRWRCUVVjc1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUXp0QlFVTnNUU3hyUWtGQlZTeEZRVUZGTEZOQlFWTXNWVUZCVlN4RFFVRkZMRWRCUVVjc1JVRkJSU3hKUVVGSkxFVkJRVVU3UVVGRGVFTXNhMEpCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEZUVJN1FVRkRSQ3hoUVVGTExFVkJRVVVzVTBGQlV5eExRVUZMTEVOQlFVTXNTMEZCU3l4RlFVRkZPMEZCUTNwQ0xHZENRVUZKTEVsQlFVa3NSMEZCUnl4SlFVRkpPMmRDUVVGRkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkJSU3hOUVVGTkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTTdaMEpCUVVVc1RVRkJUU3hIUVVGSExFVkJRVVU3WjBKQlFVVXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTE8yZENRVUZGTEUxQlFVMHNSMEZCUnl4RlFVRkZPMmRDUVVGRkxGRkJRVkVzUjBGQlJ5eERRVUZETzJkQ1FVRkZMRTFCUVUwc1IwRkJSeXhEUVVGRE8yZENRVUZGTEZWQlFWVXNSMEZCUnl4RFFVRkRPMmRDUVVGRkxFMUJRVTBzUjBGQlJ5eERRVUZETzJkQ1FVRkZMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU03UVVGRE0wb3NaMEpCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUXpOQ0xHZENRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETzBGQlEzaENMR2RDUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8wRkJRek5DTEdkQ1FVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTTdRVUZEZEVJc1owSkJRVWtzVDBGQlR5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1NVRkJTU3hYUVVGWExFVkJRM1pETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hIUVVGSExFVkJRVVVzUTBGQlF6dEJRVU16UWl4blFrRkJTU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRPVUlzYTBKQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRGJrSXNaMEpCUVVrc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTTNSQ3huUWtGQlNTeFBRVUZQTEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1ZVRkJWU3hMUVVGTExGVkJRVlVzUlVGRGVFTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEZWQlFWVXNRMEZCUXp0QlFVTjZReXh4UWtGQlV5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RlFVRkZPMEZCUTJwQ0xIRkNRVUZMTEVOQlFVTXNUVUZCVFN4SFFVRkhMRXRCUVVzc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTndReXh6UWtGQlRTeERRVUZETEUxQlFVMHNSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU5zUXl4elFrRkJUU3hEUVVGRExFMUJRVTBzUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenRoUVVOeVF6dEJRVU5FTEhGQ1FVRlRMRWRCUVVjc1IwRkJSenRCUVVOWUxHOUNRVUZKTEV0QlFVc3NRMEZCUXp0QlFVTldMSEZDUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03UVVGRE9VSXNiMEpCUVVrc1QwRkJUeXhMUVVGTExFdEJRVXNzVVVGQlVTeEZRVUZGTzBGQlF6TkNMSGxDUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hMUVVGTExFTkJRVU03YVVKQlEzcERPMEZCUTBRc2RVSkJRVThzUzBGQlN5eERRVUZETzJGQlEyaENPMEZCUTBRc1owSkJRVWtzVFVGQlRUdG5Ra0ZCUlN4alFVRmpPMmRDUVVGRkxFdEJRVXM3WjBKQlFVVXNUVUZCVFR0blFrRkJSU3hEUVVGRE8yZENRVUZGTEVOQlFVTTdaMEpCUVVVc1MwRkJTeXhIUVVGSExFVkJRVVU3WjBKQlFVVXNRMEZCUXp0blFrRkJSU3hIUVVGSE8yZENRVUZGTEZGQlFWRTdaMEpCUVVVc1VVRkJVU3hEUVVGRE8wRkJRM2hHTEcxQ1FVRlBMRWxCUVVrc1JVRkJSVHRCUVVOVUxIRkNRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYUVNc2IwSkJRVWtzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSVHRCUVVNMVFpd3dRa0ZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdhVUpCUTNaRExFMUJRVTA3UVVGRFNDeDNRa0ZCU1N4TlFVRk5MRXRCUVVzc1NVRkJTU3hKUVVGSkxFOUJRVThzVFVGQlRTeEpRVUZKTEZkQlFWY3NSVUZCUlR0QlFVTnFSQ3c0UWtGQlRTeEhRVUZITEVkQlFVY3NSVUZCUlN4RFFVRkRPM0ZDUVVOc1FqdEJRVU5FTERCQ1FVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dHBRa0ZEYWtRN1FVRkRSQ3h2UWtGQlNTeFBRVUZQTEUxQlFVMHNTMEZCU3l4WFFVRlhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRk8wRkJReTlFTEhkQ1FVRkpMRTFCUVUwc1IwRkJSeXhGUVVGRkxFTkJRVU03UVVGRGFFSXNkMEpCUVVrc1EwRkJReXhWUVVGVkxFVkJRVVU3UVVGRFlpeG5RMEZCVVN4SFFVRkhMRVZCUVVVc1EwRkJRenRCUVVOa0xEWkNRVUZMTEVOQlFVTXNTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRMnhDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZPMEZCUXpkQ0xHOURRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRE8zbENRVU5xUkR0QlFVTk1MRFJDUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNXVUZCV1N4RlFVRkZPMEZCUTNwQ0xHdERRVUZOTEVkQlFVY3NjMEpCUVhOQ0xFbEJRVWtzVVVGQlVTeEhRVUZITEVOQlFVTXNRMEZCUVN4QlFVRkRMRWRCUVVjc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNXVUZCV1N4RlFVRkZMRWRCUVVjc1kwRkJZeXhIUVVGSExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1UwRkJVeXhKUVVGSkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGQkxFRkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdlVUpCUTNaTUxFMUJRVTA3UVVGRFNDeHJRMEZCVFN4SFFVRkhMSE5DUVVGelFpeEpRVUZKTEZGQlFWRXNSMEZCUnl4RFFVRkRMRU5CUVVFc1FVRkJReXhIUVVGSExHVkJRV1VzU1VGQlNTeE5RVUZOTEVsQlFVa3NRMEZCUXl4SFFVRkRMR05CUVdNc1IwRkJReXhIUVVGSExFbEJRVWtzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVUVzUVVGQlF5eEhRVUZITEVkQlFVY3NRMEZCUVN4QlFVRkRMRU5CUVVNN2VVSkJRM0pLTzBGQlEwUXNORUpCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVWQlFVVXNSMEZCUnl4RlFVRkZMRXRCUVVzc1JVRkJSU3hSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZETEVOQlFVTXNRMEZCUXp0eFFrRkRNVW83YVVKQlEwbzdRVUZEUkN4dlFrRkJTU3hOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEZsQlFWa3NTMEZCU3l4SlFVRkpMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzBGQlEycEVMREJDUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEcxRVFVRnRSQ3hIUVVGSExFdEJRVXNzUjBGQlJ5eFhRVUZYTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNN2FVSkJRM1pITzBGQlEwUXNkMEpCUVZFc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5xUWl4NVFrRkJTeXhEUVVGRE8wRkJRMFlzTmtKQlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRGJrSXNPRUpCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVNdlFpdzRRa0ZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUXk5Q0xEWkNRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzUkNMRGhDUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETzBGQlEyUXNORUpCUVVrc1EwRkJReXhqUVVGakxFVkJRVVU3UVVGRGFrSXNhME5CUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTXpRaXhyUTBGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRek5DTEc5RFFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTTdRVUZETDBJc2FVTkJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVNeFFpeG5RMEZCU1N4VlFVRlZMRWRCUVVjc1EwRkJReXhGUVVOa0xGVkJRVlVzUlVGQlJTeERRVUZETzNsQ1FVTndRaXhOUVVGTk8wRkJRMGdzYTBOQlFVMHNSMEZCUnl4alFVRmpMRU5CUVVNN1FVRkRlRUlzTUVOQlFXTXNSMEZCUnl4SlFVRkpMRU5CUVVNN2VVSkJRM3BDTzBGQlEwUXNPRUpCUVUwN1FVRkJRU3hCUVVOV0xIbENRVUZMTEVOQlFVTTdRVUZEUml3eVFrRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZEVNc05rSkJRVXNzUTBGQlF5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZEZEVNc05rSkJRVXNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUXl4VlFVRlZMRVZCUVVVc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRU3hCUVVGRExFTkJRVU1zUTBGQlF5eFZRVUZWTEVWQlFVVXNVMEZCVXl4RlFVRkZMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3haUVVGWkxFVkJRVVVzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlFTeEJRVUZETEVOQlFVTXNRMEZCUXl4WlFVRlpMRVZCUVVVc1YwRkJWeXhGUVVGRkxFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUlVGQlF5eERRVUZETzBGQlF6RlBMRFJDUVVGSkxFMUJRVTBzUlVGQlJUdEJRVU5TTEdsRFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRExFdEJRVXNzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVRXNRVUZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8zbENRVU4wUnp0QlFVTkVMSGxDUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhGUVVGRkxFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRTFCUVUwc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU5xUnl3MFFrRkJTU3hQUVVGUExFTkJRVU1zUzBGQlN5eFhRVUZYTEVWQlFVVTdRVUZETVVJc2JVTkJRVThzUTBGQlF5eERRVUZETzNsQ1FVTmFPMEZCUTBRc05FSkJRVWtzUjBGQlJ5eEZRVUZGTzBGQlEwd3NhVU5CUVVzc1IwRkJSeXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEY2tNc2EwTkJRVTBzUjBGQlJ5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXp0QlFVTnVReXhyUTBGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPM2xDUVVOMFF6dEJRVU5FTERaQ1FVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTFReXc0UWtGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGNrSXNPRUpCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTNSQ0xHZERRVUZSTEVkQlFVY3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOdVJTdzJRa0ZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU55UWl3NFFrRkJUVHRCUVVGQkxFRkJRMVlzZVVKQlFVc3NRMEZCUXp0QlFVTkdMQ3RDUVVGUExFbEJRVWtzUTBGQlF6dEJRVUZCTEdsQ1FVTm1PMkZCUTBvN1FVRkRSQ3h0UWtGQlR5eEpRVUZKTEVOQlFVTTdVMEZEWmp0TFFVTkJMRU5CUVVNN08wRkJSVVlzVVVGQlNTeExRVUZMTEVkQlFVY3NRMEZCUXl4WlFVRlZPMEZCUTNaQ0xGbEJRVWtzUzBGQlN5eEhRVUZKTEVWQlFVTXNSMEZCUnl4RlFVRkRMRU5CUVVNN1FVRkRia0lzYzBKQlFWVXNSVUZCUXl4VFFVRlRMRlZCUVZVc1EwRkJReXhIUVVGSExFVkJRVVVzU1VGQlNTeEZRVUZGTzBGQlEyeERMRzlDUVVGSkxFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZPMEZCUTJoQ0xIZENRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMmxDUVVONFF5eE5RVUZOTzBGQlEwZ3NNRUpCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdhVUpCUTNoQ08yRkJRMG83UVVGRFRDeHZRa0ZCVVN4RlFVRkRMR3RDUVVGVkxFdEJRVXNzUlVGQlJUdEJRVU5zUWl4dlFrRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZEY0VJc2IwSkJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeEhRVUZITEV0QlFVc3NRMEZCUXp0QlFVTTFReXh2UWtGQlNTeERRVUZETEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU5vUXl4dlFrRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzBGQlF6ZERMRzlDUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1FVRkRiRU1zYjBKQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1JVRkJReXhWUVVGVkxFVkJRVU1zUTBGQlF5eEZRVUZETEZsQlFWa3NSVUZCUXl4RFFVRkRMRVZCUVVNc1UwRkJVeXhGUVVGRExFTkJRVU1zUlVGQlF5eFhRVUZYTEVWQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNN1FVRkRkRVVzYjBKQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYmtRc2IwSkJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUTJoQ0xIVkNRVUZQTEVsQlFVa3NRMEZCUXp0aFFVTm1PMEZCUTB3c2FVSkJRVXNzUlVGQlF5eHBRa0ZCV1R0QlFVTldMRzlDUVVGSkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM2hDTEc5Q1FVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxFVkJRVVVzUTBGQlF6dEJRVU5zUWl4dlFrRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzBGQlEyUXNiMEpCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dEJRVU5rTEc5Q1FVRkpMRU5CUVVNc1MwRkJTeXhKUVVGSkxFVkJRVVVzUTBGQlF6dEJRVU5xUWl4dlFrRkJTU3hEUVVGRExFOUJRVThzU1VGQlNTeEZRVUZGTEVOQlFVTTdRVUZEYmtJc2IwSkJRVWtzUzBGQlN5eEhRVUZITEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXp0QlFVTjRReXh2UWtGQlNTeExRVUZMTEVWQlFVVTdRVUZEVUN4M1FrRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzBGQlEyaENMSGRDUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMmxDUVVNelFpeE5RVUZOTzBGQlEwZ3NkMEpCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdhVUpCUXpkQ08wRkJRMFFzYjBKQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6czdRVUZGYUVRc2IwSkJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYmtNc2RVSkJRVThzUlVGQlJTeERRVUZETzJGQlEySTdRVUZEVEN4cFFrRkJTeXhGUVVGRExHVkJRVlVzUlVGQlJTeEZRVUZGTzBGQlExb3NiMEpCUVVrc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZEY0VJc2IwSkJRVWtzUzBGQlN5eEhRVUZITEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03TzBGQlJYUkRMRzlDUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJReTlDTEc5Q1FVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNSMEZCUXl4SFFVRkhMRWRCUVVNc1EwRkJReXhEUVVGRExFTkJRVU03TzBGQlJUbEVMRzlDUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCUXp0QlFVTnVRaXh2UWtGQlNTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTTdRVUZEYWtRc2IwSkJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hIUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzWkVMRzlDUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1IwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6czdRVUZGTjBRc2IwSkJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNSMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzU1VGQlNTeExRVUZMTEVOQlFVTXNUVUZCVFN4SFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOd1JDeHZRa0ZCU1N4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTTdPMEZCUlRGQ0xHOUNRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRVZCUVVNc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNWVUZCVlR0QlFVTXZReXcyUWtGQlV5eEZRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVNc1EwRkJRenRCUVVNeFFpeG5RMEZCV1N4RlFVRkZMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldUdEJRVU4wUXl3clFrRkJWeXhGUVVGRkxFdEJRVXNzUjBGRFpDeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRXRCUVVzc1VVRkJVU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmxCUVZrc1IwRkJSeXhEUVVGRExFTkJRVUVzUjBGQlNTeFJRVUZSTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1IwRkJSeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVkQlEzSkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeEhRVUZITEVkQlFVYzdhVUpCUTJwRExFTkJRVU03TzBGQlJVb3NiMEpCUVVrc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVWQlFVVTdRVUZEY2tJc2QwSkJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMmxDUVVONFJEdEJRVU5FTEhWQ1FVRlBMRWxCUVVrc1EwRkJRenRoUVVObU8wRkJRMHdzWjBKQlFVa3NSVUZCUXl4blFrRkJXVHRCUVVOVUxHOUNRVUZKTEVOQlFVTXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJRenRCUVVOc1FpeDFRa0ZCVHl4SlFVRkpMRU5CUVVNN1lVRkRaanRCUVVOTUxHZENRVUZKTEVWQlFVTXNZMEZCVlN4RFFVRkRMRVZCUVVVN1FVRkRWaXh2UWtGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTI1RE8wRkJRMHdzY1VKQlFWTXNSVUZCUXl4eFFrRkJXVHRCUVVOa0xHOUNRVUZKTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVNelJTeDFRa0ZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzUlVGQlJTeEhRVUZITEV0QlFVc3NSMEZCUXl4RlFVRkZMRU5CUVVFc1IwRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0aFFVTTVSVHRCUVVOTUxIbENRVUZoTEVWQlFVTXNlVUpCUVZrN1FVRkRiRUlzYjBKQlFVa3NTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU03UVVGRGRFSXNiMEpCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEZRVUZGTEVWQlFVVTdRVUZEYkVJc2QwSkJRVWtzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeEhRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRwUWtGRGFrUTdRVUZEUkN4MVFrRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RlFVRkRMRVZCUVVVc1EwRkJReXhKUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NSVUZCUlN4SFFVRkhMRXRCUVVzc1IwRkJReXhGUVVGRkxFTkJRVUVzUTBGQlF5eERRVUZGTEU5QlFVOHNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03WVVGREwwVTdRVUZEVEN4M1FrRkJXU3hGUVVGRExIZENRVUZaTzBGQlEycENMRzlDUVVGSkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1FVRkRNMElzYjBKQlFVa3NRMEZCUXl4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBGQlF6VkRMSFZDUVVGUExFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RlFVRkZMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVU1zUjBGQlF5eEhRVUZITEVOQlFVTTdZVUZEY0VRN1FVRkRUQ3huUWtGQlNTeEZRVUZETEdkQ1FVRlpPMEZCUTFRc2IwSkJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlR0QlFVTllMREpDUVVGUExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTTdhVUpCUTI1Q08wRkJRMFFzYjBKQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRPenRCUVVWdVF5eHZRa0ZCU1N4TFFVRkxMRVZCUTB3c1MwRkJTeXhGUVVOTUxGTkJRVk1zUlVGRFZDeExRVUZMTEVWQlEwd3NSMEZCUnl4RlFVTklMRXRCUVVzc1EwRkJRenRCUVVOV0xHOUNRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSVHRCUVVOaUxIZENRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRVZCUVVVc1EwRkJRenRCUVVOcVFpeDNRa0ZCU1N4RFFVRkRMRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU03YVVKQlEyNUNPMEZCUTBRc2IwSkJRVWtzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRVZCUVVVc1EwRkJRenRCUVVOcVF5eHhRa0ZCU3l4SlFVRkpMRU5CUVVNc1IwRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3UVVGRGFFTXNOa0pCUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRjRVFzZDBKQlFVa3NVMEZCVXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhKUVVGSkxGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUVN4QlFVRkRMRVZCUVVVN1FVRkRhRVVzTmtKQlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNN1FVRkRiRUlzTmtKQlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkRWaXcwUWtGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hGUVVGRkxFMUJRVTA3Y1VKQlEycERPMmxDUVVOS08wRkJRMFFzYjBKQlFVa3NTMEZCU3l4RlFVRkZPMEZCUTFBc2VVSkJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1FVRkRNVU1zZDBKQlFVa3NTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFbEJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTjZReXgzUWtGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4RlFVRkRMRlZCUVZVc1JVRkJSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTTdRVUZEYWtNc2FVTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4SFFVRkRMRU5CUVVNN1FVRkRNVUlzYjBOQlFWa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGZEJRVmM3UVVGRGNrTXNiVU5CUVZjc1JVRkJSU3hMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRWRCUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEhRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hIUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJReXhEUVVGRE8wRkJRemxLTEhkQ1FVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjRRaXgzUWtGQlNTeERRVUZETEV0QlFVc3NTVUZCU1N4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGRrSXNkMEpCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzUzBGQlN5eERRVUZETzBGQlEzSkNMSGRDUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRMnBETEhkQ1FVRkpMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTzBGQlEzSkNMRFJDUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEUxQlFVMHNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03Y1VKQlEycEZPMEZCUTBRc2QwSkJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRPMEZCUTI1Q0xIZENRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU5xUkN4M1FrRkJTU3hEUVVGRExFOUJRVThzU1VGQlNTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRla0lzZVVKQlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRVZCUVVVc1JVRkJSU3hKUVVGSkxFVkJRVVVzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4TlFVRk5MRWRCUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU55U0N4M1FrRkJTU3hKUVVGSkxFTkJRVU1zU1VGQlNTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZEYUVRc2QwSkJRVWtzUzBGQlN5eEZRVUZGTEU5QlFVOHNTMEZCU3l4RFFVRkRMRXRCUTI1Q0xFOUJRVTg3YVVKQlEyWTdRVUZEUkN4dlFrRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeExRVUZMTEVWQlFVVXNSVUZCUlR0QlFVTndRaXd5UWtGQlR5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRPMmxDUVVOdVFpeE5RVUZOTzBGQlEwZ3NNa0pCUVU4c1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eDNRa0ZCZDBJc1NVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEhRVUZETEVOQlFVTXNRMEZCUVN4QlFVRkRMRWRCUVVNc2QwSkJRWGRDTEVkQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hGUVVOMFJ5eEZRVUZETEVsQlFVa3NSVUZCUlN4RlFVRkZMRVZCUVVVc1MwRkJTeXhGUVVGRkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJReXhEUVVGRExFTkJRVU03YVVKQlEzcEVPMkZCUTBvN1FVRkRUQ3hsUVVGSExFVkJRVU1zVTBGQlV5eEhRVUZITEVkQlFVazdRVUZEV2l4dlFrRkJTU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMEZCUTNCQ0xHOUNRVUZKTEU5QlFVOHNRMEZCUXl4TFFVRkxMRmRCUVZjc1JVRkJSVHRCUVVNeFFpd3lRa0ZCVHl4RFFVRkRMRU5CUVVNN2FVSkJRMW9zVFVGQlRUdEJRVU5JTERKQ1FVRlBMRWxCUVVrc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dHBRa0ZEY2tJN1lVRkRTanRCUVVOTUxHbENRVUZMTEVWQlFVTXNVMEZCVXl4TFFVRkxMRU5CUVVVc1UwRkJVeXhGUVVGRk8wRkJRM3BDTEc5Q1FVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0aFFVTjJRenRCUVVOTUxHOUNRVUZSTEVWQlFVTXNVMEZCVXl4UlFVRlJMRWRCUVVrN1FVRkRkRUlzZFVKQlFVOHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dGhRVU53UXp0QlFVTk1MSGxDUVVGaExFVkJRVU1zVTBGQlV5eGhRVUZoTEVkQlFVazdRVUZEYUVNc2RVSkJRVThzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNUVUZCVFN4SFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETzJGQlEyNUdPMEZCUTB3c2IwSkJRVkVzUlVGQlF5eHZRa0ZCV1R0QlFVTmlMSFZDUVVGUExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhOUVVGTkxFZEJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdZVUZETlVRN1FVRkRUQ3h4UWtGQlV5eEZRVUZETEZOQlFWTXNTMEZCU3l4RFFVRkZMRk5CUVZNc1JVRkJSVHRCUVVNM1FpeHZRa0ZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dGhRVU42UWl4RlFVRkRMRUZCUVVNc1EwRkJRenRCUVVOU0xHRkJRVXNzUTBGQlF5eFBRVUZQTEVkQlFVY3NSVUZCUlN4RFFVRkRPMEZCUTI1Q0xHRkJRVXNzUTBGQlF5eGhRVUZoTEVkQlFVY3NVMEZCVXl4VFFVRlRMRU5CUVVNc1JVRkJSU3hGUVVGRExFZEJRVWNzUlVGQlF5eDVRa0ZCZVVJc1JVRkJReXhSUVVGUkxFVkJRMmhHT3p0QlFVZEdMSEZDUVVGVExFdEJRVXNzUTBGQlF5eExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZPMEZCUTNwQ0xIVkNRVUZQTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1EwRkJReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEhRVUZITEV0QlFVc3NRMEZCUXl4RFFVRkRPMkZCUXpORk96dEJRVWRFTEdkQ1FVRkpMRTlCUVU4c1IwRkJReXhSUVVGUkxFTkJRVUU3UVVGRGNFSXNiMEpCUVU4c2VVSkJRWGxDTzBGQlEyaERMSEZDUVVGTExFTkJRVU03UVVGRE5rSXNkMEpCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhOUVVGTkxFVkJRVVU3UVVGRGJFTXNOa0pCUVVzc1EwRkJReXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEV0N3MFFrRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0eFFrRkRiRUlzVFVGQlRTeEpRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NTVUZCU1N4RlFVRkZPMEZCUTNaRExEWkNRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMWdzTkVKQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03Y1VKQlEyNUNMRTFCUVUwN1FVRkRUQ3cwUWtGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenR4UWtGRGJFSTdRVUZEUkN4M1FrRkJSeXhIUVVGSExFTkJRVU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4RFFVRkRPenRCUVVVMVJDd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUTBGQlF6dEJRVUZETERKQ1FVRlBMRVZCUVVVc1EwRkJRenRCUVVOcVFpd3dRa0ZCVFR0QlFVRkJMRUZCUTA0c2NVSkJRVXNzUTBGQlF6dEJRVU0yUWl4M1FrRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzBGQlEyaENMREpDUVVGUExFVkJRVVVzUTBGQlF6czdRVUZGTjBNc01FSkJRVTA3UVVGQlFTeEJRVU5PTEhGQ1FVRkxMRU5CUVVNN1FVRkJReXgzUWtGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhCUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzBGQlEzQkRMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RFFVRkRPMEZCUXpSQ0xIZENRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNN096czdRVUZKYUVJc2QwSkJRVWtzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFMUJRVTBzUjBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4TFFVRkxMRVZCUVVVN1FVRkRMMFFzSzBKQlFVOHNSVUZCUlN4RFFVRkRPM0ZDUVVOWUxFMUJRVTA3UVVGRFRDdzJRa0ZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5hTEN0Q1FVRlBMR1ZCUVdVc1EwRkJRenR4UWtGRGVFSTdPMEZCUlc1RExEQkNRVUZOTzBGQlFVRXNRVUZEVGl4eFFrRkJTeXhEUVVGRE8wRkJRVVVzTWtKQlFVOHNSVUZCUlN4RFFVRkRPMEZCUTJ4Q0xEQkNRVUZOTzBGQlFVRXNRVUZEVGl4eFFrRkJTeXhEUVVGRE8wRkJRMG9zZDBKQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJRenRCUVVOb1Fpd3lRa0ZCVHl4RlFVRkZMRU5CUVVNN08wRkJSVm9zTUVKQlFVMDdRVUZCUVN4QlFVTk9MSEZDUVVGTExFTkJRVU03UVVGQlF5d3lRa0ZCVHl4RlFVRkZMRU5CUVVNN1FVRkRha0lzTUVKQlFVMDdRVUZCUVN4QlFVTk9MSEZDUVVGTExFTkJRVU03UVVGQlF5d3lRa0ZCVHl4RlFVRkZMRU5CUVVNN1FVRkRha0lzTUVKQlFVMDdRVUZCUVN4QlFVTk9MSEZDUVVGTExFTkJRVU03UVVGQlJTd3lRa0ZCVHl4RlFVRkZMRU5CUVVNN1FVRkRiRUlzTUVKQlFVMDdRVUZCUVN4QlFVTk9MSEZDUVVGTExFVkJRVVU3UVVGRE1rSXNkMEpCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF6dEJRVU5vUWl4M1FrRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTnNRaXd5UWtGQlR5eEZRVUZGTEVOQlFVTTdPMEZCUlRWRExEQkNRVUZOTzBGQlFVRXNRVUZEVGl4eFFrRkJTeXhGUVVGRk8wRkJRVU1zTWtKQlFVOHNSVUZCUlN4RFFVRkRPMEZCUTJ4Q0xEQkNRVUZOTzBGQlFVRXNRVUZEVGl4eFFrRkJTeXhGUVVGRk8wRkJRVU1zTWtKQlFVOHNSVUZCUlN4RFFVRkRPMEZCUTJ4Q0xEQkNRVUZOTzBGQlFVRXNRVUZEVGl4eFFrRkJTeXhGUVVGRk8wRkJRVU1zTWtKQlFVOHNSVUZCUlN4RFFVRkRPMEZCUTJ4Q0xEQkNRVUZOTzBGQlFVRXNRVUZEVGl4eFFrRkJTeXhGUVVGRk8wRkJRVU1zTWtKQlFVOHNSVUZCUlN4RFFVRkRPMEZCUTJ4Q0xEQkNRVUZOTzBGQlFVRXNRVUZEVGl4eFFrRkJTeXhGUVVGRk8wRkJRVU1zZDBKQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhCUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzBGQlEyNURMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUVVNc2QwSkJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4QlFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wRkJRMjVETERCQ1FVRk5PMEZCUVVFc1FVRkRUaXh4UWtGQlN5eEZRVUZGTzBGQlFVTXNNa0pCUVU4c1JVRkJSU3hEUVVGRE8wRkJRMnhDTERCQ1FVRk5PMEZCUVVFc1FVRkRUaXh4UWtGQlN5eEZRVUZGTzBGQlFVTXNNa0pCUVU4c1JVRkJSU3hEUVVGRE8wRkJRMnhDTERCQ1FVRk5PMEZCUVVFc1FVRkRUaXh4UWtGQlN5eEZRVUZGTzBGQlFVTXNNa0pCUVU4c1JVRkJSU3hEUVVGRE8wRkJRMnhDTERCQ1FVRk5PMEZCUVVFc1FVRkRUaXh4UWtGQlN5eEZRVUZGTzBGQlFVTXNNa0pCUVU4c1JVRkJSU3hEUVVGRE8wRkJRMnhDTERCQ1FVRk5PMEZCUVVFc1FVRkRUaXh4UWtGQlN5eEZRVUZGTzBGQlEwd3NkMEpCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUTNaQ0xIZENRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNN1FVRkRhRUlzZDBKQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03TzBGQlJYQkNMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUTB3c2QwSkJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0QlFVTm9RaXd5UWtGQlR5eEZRVUZGTEVOQlFVTTdPMEZCUlZvc01FSkJRVTA3UVVGQlFTeEJRVU5PTEhGQ1FVRkxMRVZCUVVVN1FVRkJReXd5UWtGQlR5eEZRVUZGTEVOQlFVTTdRVUZEYkVJc01FSkJRVTA3UVVGQlFTeEJRVU5PTEhGQ1FVRkxMRVZCUVVVN1FVRkJReXd5UWtGQlR5eEZRVUZGTEVOQlFVTTdRVUZEYkVJc01FSkJRVTA3UVVGQlFTeEJRVU5PTEhGQ1FVRkxMRVZCUVVVN1FVRkJReXd5UWtGQlR5eEZRVUZGTEVOQlFVTTdRVUZEYkVJc01FSkJRVTA3UVVGQlFTeEJRVU5PTEhGQ1FVRkxMRVZCUVVVN1FVRkJReXd5UWtGQlR5eEZRVUZGTEVOQlFVTTdRVUZEYkVJc01FSkJRVTA3UVVGQlFTeEJRVU5PTEhGQ1FVRkxMRVZCUVVVN1FVRkJReXd5UWtGQlR5eEZRVUZGTEVOQlFVTTdRVUZEYkVJc01FSkJRVTA3UVVGQlFTeEJRVU5PTEhGQ1FVRkxMRVZCUVVVN08wRkJRMUFzTUVKQlFVMDdRVUZCUVN4QlFVTk9MSEZDUVVGTExFVkJRVVU3UVVGQlF5eDNRa0ZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRExFRkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdRVUZEYmtNc01FSkJRVTA3UVVGQlFTeEJRVU5PTEhGQ1FVRkxMRVZCUVVVN1FVRkJReXgzUWtGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRMRUZCUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRGJrTXNNRUpCUVUwN1FVRkJRU3hCUVVOT0xIRkNRVUZMTEVWQlFVVTdRVUZCUXl4MVFrRkJSeXhEUVVGRExFMUJRVTBzUjBGQlJ5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVWQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1FVRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dEJRVU12UkN3d1FrRkJUVHRCUVVGQkxFRkJRMDRzY1VKQlFVc3NSVUZCUlR0QlFVRkRMSFZDUVVGSExFTkJRVU1zVFVGQlRTeEhRVUZITEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhCUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzBGQlF5OUVMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUVVNc01rSkJRVThzUlVGQlJTeERRVUZETzBGQlEyeENMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUVVNc01rSkJRVThzUlVGQlJTeERRVUZETzBGQlEyeENMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUVVNc01rSkJRVThzUlVGQlJTeERRVUZETzBGQlEyeENMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUVVNc01rSkJRVThzUlVGQlJTeERRVUZETzBGQlEyeENMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUVVNc01rSkJRVThzUlVGQlJTeERRVUZETzBGQlEyeENMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUVVNc01rSkJRVThzUlVGQlJTeERRVUZETzBGQlEyeENMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUVVNc01rSkJRVThzUlVGQlJTeERRVUZETzBGQlEyeENMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUVVNc01rSkJRVThzUlVGQlJTeERRVUZETzBGQlEyeENMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUVVNc01rSkJRVThzUlVGQlJTeERRVUZETzBGQlEyeENMREJDUVVGTk8wRkJRVUVzUVVGRFRpeHhRa0ZCU3l4RlFVRkZPMEZCUVVNc2RVSkJRVWNzUTBGQlF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeEZRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRUZCUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03UVVGRGRrVXNNRUpCUVUwN1FVRkJRU3hCUVVOT0xIRkNRVUZMTEVWQlFVVTdRVUZCUXl3eVFrRkJUeXhUUVVGVExFTkJRVU03UVVGRGVrSXNNRUpCUVUwN1FVRkJRU3hCUVVOT0xIRkNRVUZMTEVWQlFVVTdRVUZCUXl3eVFrRkJUeXhEUVVGRExFTkJRVU03UVVGRGFrSXNNRUpCUVUwN1FVRkJRU3hoUVVOTU8xTkJRMEVzUTBGQlF6dEJRVU5HTEdGQlFVc3NRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXd3UWtGQk1FSXNSVUZCUXl4bFFVRmxMRVZCUVVNc0swTkJRU3RETEVWQlFVTXNkMEpCUVhkQ0xFVkJRVU1zYjBWQlFXOUZMRVZCUVVNc09FSkJRVGhDTEVWQlFVTXNlVUpCUVhsQ0xFVkJRVU1zVTBGQlV5eEZRVUZETEZOQlFWTXNSVUZCUXl4bFFVRmxMRVZCUVVNc1pVRkJaU3hGUVVGRExHZENRVUZuUWl4RlFVRkRMR2xDUVVGcFFpeEZRVUZETEcxQ1FVRnRRaXhGUVVGRExHbENRVUZwUWl4RlFVRkRMRFJDUVVFMFFpeEZRVUZETEdsRFFVRnBReXhGUVVGRExHbENRVUZwUWl4RlFVRkRMSGRDUVVGM1FpeEZRVUZETEdsQ1FVRnBRaXhGUVVGRExHZENRVUZuUWl4RlFVRkRMR3RDUVVGclFpeEZRVUZETERSQ1FVRTBRaXhGUVVGRExHdENRVUZyUWl4RlFVRkRMRkZCUVZFc1JVRkJReXhYUVVGWExFVkJRVU1zTWtKQlFUSkNMRVZCUVVNc1dVRkJXU3hGUVVGRExGVkJRVlVzUlVGQlF5eHBRa0ZCYVVJc1JVRkJReXhsUVVGbExFVkJRVU1zYzBKQlFYTkNMRVZCUVVNc2MwSkJRWE5DTEVWQlFVTXNVVUZCVVN4RlFVRkRMSGRDUVVGM1FpeEZRVUZETEhsQ1FVRjVRaXhGUVVGRExEWkNRVUUyUWl4RlFVRkRMSGRDUVVGM1FpeEZRVUZETEhsRFFVRjVReXhGUVVGRExHTkJRV01zUlVGQlF5eFRRVUZUTEVWQlFVTXNlVVJCUVhsRUxFVkJRVU1zZDBKQlFYZENMRVZCUVVNc1VVRkJVU3hGUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzBGQlEyNW5ReXhoUVVGTExFTkJRVU1zVlVGQlZTeEhRVUZITEVWQlFVTXNTVUZCU1N4RlFVRkRMRVZCUVVNc1QwRkJUeXhGUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUXl4RFFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNSVUZCUXl4RlFVRkZMRVZCUVVNc1JVRkJSU3hGUVVGRExFVkJRVVVzUlVGQlF5eEZRVUZGTEVWQlFVTXNSVUZCUlN4RlFVRkRMRVZCUVVVc1JVRkJReXhGUVVGRkxFVkJRVU1zUlVGQlJTeEZRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkRMRmRCUVZjc1JVRkJReXhMUVVGTExFVkJRVU1zUlVGQlF5eExRVUZMTEVWQlFVTXNSVUZCUXl4UFFVRlBMRVZCUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eFhRVUZYTEVWQlFVTXNTMEZCU3l4RlFVRkRMRVZCUVVNc1MwRkJTeXhGUVVGRExFVkJRVU1zVDBGQlR5eEZRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1YwRkJWeXhGUVVGRExFdEJRVXNzUlVGQlF5eEZRVUZETEV0QlFVc3NSVUZCUXl4RlFVRkRMRTlCUVU4c1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1YwRkJWeXhGUVVGRExFdEJRVXNzUlVGQlF5eEZRVUZETEZOQlFWTXNSVUZCUXl4RlFVRkRMRTlCUVU4c1JVRkJReXhEUVVGRExFTkJRVU1zUlVGQlF5eERRVUZETEVWQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVNc1YwRkJWeXhGUVVGRExFbEJRVWtzUlVGQlF5eEZRVUZETEVOQlFVTTdRVUZETTFVc1pVRkJUeXhMUVVGTExFTkJRVU03UzBGQlF5eERRVUZCTEVWQlFVY3NRMEZCUVR0QlFVTnFRaXhWUVVGTkxFTkJRVU1zUzBGQlN5eEhRVUZITEV0QlFVc3NRMEZCUXp0QlFVTnlRaXhoUVVGVExFMUJRVTBzUjBGQlNUdEJRVUZGTEZsQlFVa3NRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRE8wdEJRVVVzVFVGQlRTeERRVUZETEZOQlFWTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUjBGQlJ5eE5RVUZOTEVOQlFVTTdRVUZEY2tZc1YwRkJUeXhKUVVGSkxFMUJRVTBzUlVGQlFTeERRVUZETzBOQlEycENMRU5CUVVFc1JVRkJSeXhEUVVGRExIRkNRVUZsTEZWQlFWVWlMQ0ptYVd4bElqb2ljR0Z5YzJWeUxtcHpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHk4Z1JtbHNaU0JwWjI1dmNtVmtJR2x1SUdOdmRtVnlZV2RsSUhSbGMzUnpJSFpwWVNCelpYUjBhVzVuSUdsdUlDNXBjM1JoYm1KMWJDNTViV3hjYmk4cUlFcHBjMjl1SUdkbGJtVnlZWFJsWkNCd1lYSnpaWElnS2k5Y2JuWmhjaUJvWVc1a2JHVmlZWEp6SUQwZ0tHWjFibU4wYVc5dUtDbDdYRzUyWVhJZ2NHRnljMlZ5SUQwZ2UzUnlZV05sT2lCbWRXNWpkR2x2YmlCMGNtRmpaU0FvS1NCN0lIMHNYRzU1ZVRvZ2UzMHNYRzV6ZVcxaWIyeHpYem9nZTF3aVpYSnliM0pjSWpveUxGd2ljbTl2ZEZ3aU9qTXNYQ0p3Y205bmNtRnRYQ0k2TkN4Y0lrVlBSbHdpT2pVc1hDSndjbTluY21GdFgzSmxjR1YwYVhScGIyNHdYQ0k2Tml4Y0luTjBZWFJsYldWdWRGd2lPamNzWENKdGRYTjBZV05vWlZ3aU9qZ3NYQ0ppYkc5amExd2lPamtzWENKeVlYZENiRzlqYTF3aU9qRXdMRndpY0dGeWRHbGhiRndpT2pFeExGd2ljR0Z5ZEdsaGJFSnNiMk5yWENJNk1USXNYQ0pqYjI1MFpXNTBYQ0k2TVRNc1hDSkRUMDFOUlU1VVhDSTZNVFFzWENKRFQwNVVSVTVVWENJNk1UVXNYQ0p2Y0dWdVVtRjNRbXh2WTJ0Y0lqb3hOaXhjSW5KaGQwSnNiMk5yWDNKbGNHVjBhWFJwYjI0d1hDSTZNVGNzWENKRlRrUmZVa0ZYWDBKTVQwTkxYQ0k2TVRnc1hDSlBVRVZPWDFKQlYxOUNURTlEUzF3aU9qRTVMRndpYUdWc2NHVnlUbUZ0WlZ3aU9qSXdMRndpYjNCbGJsSmhkMEpzYjJOclgzSmxjR1YwYVhScGIyNHdYQ0k2TWpFc1hDSnZjR1Z1VW1GM1FteHZZMnRmYjNCMGFXOXVNRndpT2pJeUxGd2lRMHhQVTBWZlVrRlhYMEpNVDBOTFhDSTZNak1zWENKdmNHVnVRbXh2WTJ0Y0lqb3lOQ3hjSW1Kc2IyTnJYMjl3ZEdsdmJqQmNJam95TlN4Y0ltTnNiM05sUW14dlkydGNJam95Tml4Y0ltOXdaVzVKYm5abGNuTmxYQ0k2TWpjc1hDSmliRzlqYTE5dmNIUnBiMjR4WENJNk1qZ3NYQ0pQVUVWT1gwSk1UME5MWENJNk1qa3NYQ0p2Y0dWdVFteHZZMnRmY21Wd1pYUnBkR2x2YmpCY0lqb3pNQ3hjSW05d1pXNUNiRzlqYTE5dmNIUnBiMjR3WENJNk16RXNYQ0p2Y0dWdVFteHZZMnRmYjNCMGFXOXVNVndpT2pNeUxGd2lRMHhQVTBWY0lqb3pNeXhjSWs5UVJVNWZTVTVXUlZKVFJWd2lPak0wTEZ3aWIzQmxia2x1ZG1WeWMyVmZjbVZ3WlhScGRHbHZiakJjSWpvek5TeGNJbTl3Wlc1SmJuWmxjbk5sWDI5d2RHbHZiakJjSWpvek5peGNJbTl3Wlc1SmJuWmxjbk5sWDI5d2RHbHZiakZjSWpvek55eGNJbTl3Wlc1SmJuWmxjbk5sUTJoaGFXNWNJam96T0N4Y0lrOVFSVTVmU1U1V1JWSlRSVjlEU0VGSlRsd2lPak01TEZ3aWIzQmxia2x1ZG1WeWMyVkRhR0ZwYmw5eVpYQmxkR2wwYVc5dU1Gd2lPalF3TEZ3aWIzQmxia2x1ZG1WeWMyVkRhR0ZwYmw5dmNIUnBiMjR3WENJNk5ERXNYQ0p2Y0dWdVNXNTJaWEp6WlVOb1lXbHVYMjl3ZEdsdmJqRmNJam8wTWl4Y0ltbHVkbVZ5YzJWQmJtUlFjbTluY21GdFhDSTZORE1zWENKSlRsWkZVbE5GWENJNk5EUXNYQ0pwYm5abGNuTmxRMmhoYVc1Y0lqbzBOU3hjSW1sdWRtVnljMlZEYUdGcGJsOXZjSFJwYjI0d1hDSTZORFlzWENKUFVFVk9YMFZPUkVKTVQwTkxYQ0k2TkRjc1hDSlBVRVZPWENJNk5EZ3NYQ0p0ZFhOMFlXTm9aVjl5WlhCbGRHbDBhVzl1TUZ3aU9qUTVMRndpYlhWemRHRmphR1ZmYjNCMGFXOXVNRndpT2pVd0xGd2lUMUJGVGw5VlRrVlRRMEZRUlVSY0lqbzFNU3hjSW0xMWMzUmhZMmhsWDNKbGNHVjBhWFJwYjI0eFhDSTZOVElzWENKdGRYTjBZV05vWlY5dmNIUnBiMjR4WENJNk5UTXNYQ0pEVEU5VFJWOVZUa1ZUUTBGUVJVUmNJam8xTkN4Y0lrOVFSVTVmVUVGU1ZFbEJURndpT2pVMUxGd2ljR0Z5ZEdsaGJFNWhiV1ZjSWpvMU5peGNJbkJoY25ScFlXeGZjbVZ3WlhScGRHbHZiakJjSWpvMU55eGNJbkJoY25ScFlXeGZiM0IwYVc5dU1Gd2lPalU0TEZ3aWIzQmxibEJoY25ScFlXeENiRzlqYTF3aU9qVTVMRndpVDFCRlRsOVFRVkpVU1VGTVgwSk1UME5MWENJNk5qQXNYQ0p2Y0dWdVVHRnlkR2xoYkVKc2IyTnJYM0psY0dWMGFYUnBiMjR3WENJNk5qRXNYQ0p2Y0dWdVVHRnlkR2xoYkVKc2IyTnJYMjl3ZEdsdmJqQmNJam8yTWl4Y0luQmhjbUZ0WENJNk5qTXNYQ0p6Wlhod2Nsd2lPalkwTEZ3aVQxQkZUbDlUUlZoUVVsd2lPalkxTEZ3aWMyVjRjSEpmY21Wd1pYUnBkR2x2YmpCY0lqbzJOaXhjSW5ObGVIQnlYMjl3ZEdsdmJqQmNJam8yTnl4Y0lrTk1UMU5GWDFORldGQlNYQ0k2Tmpnc1hDSm9ZWE5vWENJNk5qa3NYQ0pvWVhOb1gzSmxjR1YwYVhScGIyNWZjR3gxY3pCY0lqbzNNQ3hjSW1oaGMyaFRaV2R0Wlc1MFhDSTZOekVzWENKSlJGd2lPamN5TEZ3aVJWRlZRVXhUWENJNk56TXNYQ0ppYkc5amExQmhjbUZ0YzF3aU9qYzBMRndpVDFCRlRsOUNURTlEUzE5UVFWSkJUVk5jSWpvM05TeGNJbUpzYjJOclVHRnlZVzF6WDNKbGNHVjBhWFJwYjI1ZmNHeDFjekJjSWpvM05peGNJa05NVDFORlgwSk1UME5MWDFCQlVrRk5VMXdpT2pjM0xGd2ljR0YwYUZ3aU9qYzRMRndpWkdGMFlVNWhiV1ZjSWpvM09TeGNJbE5VVWtsT1Ixd2lPamd3TEZ3aVRsVk5Ra1ZTWENJNk9ERXNYQ0pDVDA5TVJVRk9YQ0k2T0RJc1hDSlZUa1JGUmtsT1JVUmNJam80TXl4Y0lrNVZURXhjSWpvNE5DeGNJa1JCVkVGY0lqbzROU3hjSW5CaGRHaFRaV2R0Wlc1MGMxd2lPamcyTEZ3aVUwVlFYQ0k2T0Rjc1hDSWtZV05qWlhCMFhDSTZNQ3hjSWlSbGJtUmNJam94ZlN4Y2JuUmxjbTFwYm1Gc2MxODZJSHN5T2x3aVpYSnliM0pjSWl3MU9sd2lSVTlHWENJc01UUTZYQ0pEVDAxTlJVNVVYQ0lzTVRVNlhDSkRUMDVVUlU1VVhDSXNNVGc2WENKRlRrUmZVa0ZYWDBKTVQwTkxYQ0lzTVRrNlhDSlBVRVZPWDFKQlYxOUNURTlEUzF3aUxESXpPbHdpUTB4UFUwVmZVa0ZYWDBKTVQwTkxYQ0lzTWprNlhDSlBVRVZPWDBKTVQwTkxYQ0lzTXpNNlhDSkRURTlUUlZ3aUxETTBPbHdpVDFCRlRsOUpUbFpGVWxORlhDSXNNems2WENKUFVFVk9YMGxPVmtWU1UwVmZRMGhCU1U1Y0lpdzBORHBjSWtsT1ZrVlNVMFZjSWl3ME56cGNJazlRUlU1ZlJVNUVRa3hQUTB0Y0lpdzBPRHBjSWs5UVJVNWNJaXcxTVRwY0lrOVFSVTVmVlU1RlUwTkJVRVZFWENJc05UUTZYQ0pEVEU5VFJWOVZUa1ZUUTBGUVJVUmNJaXcxTlRwY0lrOVFSVTVmVUVGU1ZFbEJURndpTERZd09sd2lUMUJGVGw5UVFWSlVTVUZNWDBKTVQwTkxYQ0lzTmpVNlhDSlBVRVZPWDFORldGQlNYQ0lzTmpnNlhDSkRURTlUUlY5VFJWaFFVbHdpTERjeU9sd2lTVVJjSWl3M016cGNJa1ZSVlVGTVUxd2lMRGMxT2x3aVQxQkZUbDlDVEU5RFMxOVFRVkpCVFZOY0lpdzNOenBjSWtOTVQxTkZYMEpNVDBOTFgxQkJVa0ZOVTF3aUxEZ3dPbHdpVTFSU1NVNUhYQ0lzT0RFNlhDSk9WVTFDUlZKY0lpdzRNanBjSWtKUFQweEZRVTVjSWl3NE16cGNJbFZPUkVWR1NVNUZSRndpTERnME9sd2lUbFZNVEZ3aUxEZzFPbHdpUkVGVVFWd2lMRGczT2x3aVUwVlFYQ0o5TEZ4dWNISnZaSFZqZEdsdmJuTmZPaUJiTUN4Yk15d3lYU3hiTkN3eFhTeGJOeXd4WFN4Yk55d3hYU3hiTnl3eFhTeGJOeXd4WFN4Yk55d3hYU3hiTnl3eFhTeGJOeXd4WFN4Yk1UTXNNVjBzV3pFd0xETmRMRnN4Tml3MVhTeGJPU3cwWFN4Yk9TdzBYU3hiTWpRc05sMHNXekkzTERaZExGc3pPQ3cyWFN4Yk5ETXNNbDBzV3pRMUxETmRMRnMwTlN3eFhTeGJNallzTTEwc1d6Z3NOVjBzV3pnc05WMHNXekV4TERWZExGc3hNaXd6WFN4Yk5Ua3NOVjBzV3pZekxERmRMRnMyTXl3eFhTeGJOalFzTlYwc1d6WTVMREZkTEZzM01Td3pYU3hiTnpRc00xMHNXekl3TERGZExGc3lNQ3d4WFN4Yk1qQXNNVjBzV3pJd0xERmRMRnN5TUN3eFhTeGJNakFzTVYwc1d6SXdMREZkTEZzMU5pd3hYU3hiTlRZc01WMHNXemM1TERKZExGczNPQ3d4WFN4Yk9EWXNNMTBzV3pnMkxERmRMRnMyTERCZExGczJMREpkTEZzeE55d3dYU3hiTVRjc01sMHNXekl4TERCZExGc3lNU3d5WFN4Yk1qSXNNRjBzV3pJeUxERmRMRnN5TlN3d1hTeGJNalVzTVYwc1d6STRMREJkTEZzeU9Dd3hYU3hiTXpBc01GMHNXek13TERKZExGc3pNU3d3WFN4Yk16RXNNVjBzV3pNeUxEQmRMRnN6TWl3eFhTeGJNelVzTUYwc1d6TTFMREpkTEZzek5pd3dYU3hiTXpZc01WMHNXek0zTERCZExGc3pOeXd4WFN4Yk5EQXNNRjBzV3pRd0xESmRMRnMwTVN3d1hTeGJOREVzTVYwc1d6UXlMREJkTEZzME1pd3hYU3hiTkRZc01GMHNXelEyTERGZExGczBPU3d3WFN4Yk5Ea3NNbDBzV3pVd0xEQmRMRnMxTUN3eFhTeGJOVElzTUYwc1d6VXlMREpkTEZzMU15d3dYU3hiTlRNc01WMHNXelUzTERCZExGczFOeXd5WFN4Yk5UZ3NNRjBzV3pVNExERmRMRnMyTVN3d1hTeGJOakVzTWwwc1d6WXlMREJkTEZzMk1pd3hYU3hiTmpZc01GMHNXelkyTERKZExGczJOeXd3WFN4Yk5qY3NNVjBzV3pjd0xERmRMRnMzTUN3eVhTeGJOellzTVYwc1d6YzJMREpkWFN4Y2JuQmxjbVp2Y20xQlkzUnBiMjQ2SUdaMWJtTjBhVzl1SUdGdWIyNTViVzkxY3loNWVYUmxlSFFzZVhsc1pXNW5MSGw1YkdsdVpXNXZMSGw1TEhsNWMzUmhkR1VzSkNRc1h5UmNiaWtnZTF4dVhHNTJZWElnSkRBZ1BTQWtKQzVzWlc1bmRHZ2dMU0F4TzF4dWMzZHBkR05vSUNoNWVYTjBZWFJsS1NCN1hHNWpZWE5sSURFNklISmxkSFZ5YmlBa0pGc2tNQzB4WFRzZ1hHNWljbVZoYXp0Y2JtTmhjMlVnTWpwMGFHbHpMaVFnUFNCNWVTNXdjbVZ3WVhKbFVISnZaM0poYlNna0pGc2tNRjBwTzF4dVluSmxZV3M3WEc1allYTmxJRE02ZEdocGN5NGtJRDBnSkNSYkpEQmRPMXh1WW5KbFlXczdYRzVqWVhObElEUTZkR2hwY3k0a0lEMGdKQ1JiSkRCZE8xeHVZbkpsWVdzN1hHNWpZWE5sSURVNmRHaHBjeTRrSUQwZ0pDUmJKREJkTzF4dVluSmxZV3M3WEc1allYTmxJRFk2ZEdocGN5NGtJRDBnSkNSYkpEQmRPMXh1WW5KbFlXczdYRzVqWVhObElEYzZkR2hwY3k0a0lEMGdKQ1JiSkRCZE8xeHVZbkpsWVdzN1hHNWpZWE5sSURnNmRHaHBjeTRrSUQwZ0pDUmJKREJkTzF4dVluSmxZV3M3WEc1allYTmxJRGs2WEc0Z0lDQWdkR2hwY3k0a0lEMGdlMXh1SUNBZ0lDQWdkSGx3WlRvZ0owTnZiVzFsYm5SVGRHRjBaVzFsYm5RbkxGeHVJQ0FnSUNBZ2RtRnNkV1U2SUhsNUxuTjBjbWx3UTI5dGJXVnVkQ2drSkZza01GMHBMRnh1SUNBZ0lDQWdjM1J5YVhBNklIbDVMbk4wY21sd1JteGhaM01vSkNSYkpEQmRMQ0FrSkZza01GMHBMRnh1SUNBZ0lDQWdiRzlqT2lCNWVTNXNiMk5KYm1adktIUm9hWE11WHlRcFhHNGdJQ0FnZlR0Y2JpQWdYRzVpY21WaGF6dGNibU5oYzJVZ01UQTZYRzRnSUNBZ2RHaHBjeTRrSUQwZ2UxeHVJQ0FnSUNBZ2RIbHdaVG9nSjBOdmJuUmxiblJUZEdGMFpXMWxiblFuTEZ4dUlDQWdJQ0FnYjNKcFoybHVZV3c2SUNRa1d5UXdYU3hjYmlBZ0lDQWdJSFpoYkhWbE9pQWtKRnNrTUYwc1hHNGdJQ0FnSUNCc2IyTTZJSGw1TG14dlkwbHVabThvZEdocGN5NWZKQ2xjYmlBZ0lDQjlPMXh1SUNCY2JtSnlaV0ZyTzF4dVkyRnpaU0F4TVRwMGFHbHpMaVFnUFNCNWVTNXdjbVZ3WVhKbFVtRjNRbXh2WTJzb0pDUmJKREF0TWwwc0lDUWtXeVF3TFRGZExDQWtKRnNrTUYwc0lIUm9hWE11WHlRcE8xeHVZbkpsWVdzN1hHNWpZWE5sSURFeU9uUm9hWE11SkNBOUlIc2djR0YwYURvZ0pDUmJKREF0TTEwc0lIQmhjbUZ0Y3pvZ0pDUmJKREF0TWwwc0lHaGhjMmc2SUNRa1d5UXdMVEZkSUgwN1hHNWljbVZoYXp0Y2JtTmhjMlVnTVRNNmRHaHBjeTRrSUQwZ2VYa3VjSEpsY0dGeVpVSnNiMk5yS0NRa1d5UXdMVE5kTENBa0pGc2tNQzB5WFN3Z0pDUmJKREF0TVYwc0lDUWtXeVF3WFN3Z1ptRnNjMlVzSUhSb2FYTXVYeVFwTzF4dVluSmxZV3M3WEc1allYTmxJREUwT25Sb2FYTXVKQ0E5SUhsNUxuQnlaWEJoY21WQ2JHOWpheWdrSkZza01DMHpYU3dnSkNSYkpEQXRNbDBzSUNRa1d5UXdMVEZkTENBa0pGc2tNRjBzSUhSeWRXVXNJSFJvYVhNdVh5UXBPMXh1WW5KbFlXczdYRzVqWVhObElERTFPblJvYVhNdUpDQTlJSHNnYjNCbGJqb2dKQ1JiSkRBdE5WMHNJSEJoZEdnNklDUWtXeVF3TFRSZExDQndZWEpoYlhNNklDUWtXeVF3TFROZExDQm9ZWE5vT2lBa0pGc2tNQzB5WFN3Z1lteHZZMnRRWVhKaGJYTTZJQ1FrV3lRd0xURmRMQ0J6ZEhKcGNEb2dlWGt1YzNSeWFYQkdiR0ZuY3lna0pGc2tNQzAxWFN3Z0pDUmJKREJkS1NCOU8xeHVZbkpsWVdzN1hHNWpZWE5sSURFMk9uUm9hWE11SkNBOUlIc2djR0YwYURvZ0pDUmJKREF0TkYwc0lIQmhjbUZ0Y3pvZ0pDUmJKREF0TTEwc0lHaGhjMmc2SUNRa1d5UXdMVEpkTENCaWJHOWphMUJoY21GdGN6b2dKQ1JiSkRBdE1WMHNJSE4wY21sd09pQjVlUzV6ZEhKcGNFWnNZV2R6S0NRa1d5UXdMVFZkTENBa0pGc2tNRjBwSUgwN1hHNWljbVZoYXp0Y2JtTmhjMlVnTVRjNmRHaHBjeTRrSUQwZ2V5QndZWFJvT2lBa0pGc2tNQzAwWFN3Z2NHRnlZVzF6T2lBa0pGc2tNQzB6WFN3Z2FHRnphRG9nSkNSYkpEQXRNbDBzSUdKc2IyTnJVR0Z5WVcxek9pQWtKRnNrTUMweFhTd2djM1J5YVhBNklIbDVMbk4wY21sd1JteGhaM01vSkNSYkpEQXROVjBzSUNRa1d5UXdYU2tnZlR0Y2JtSnlaV0ZyTzF4dVkyRnpaU0F4T0RwMGFHbHpMaVFnUFNCN0lITjBjbWx3T2lCNWVTNXpkSEpwY0Vac1lXZHpLQ1FrV3lRd0xURmRMQ0FrSkZza01DMHhYU2tzSUhCeWIyZHlZVzA2SUNRa1d5UXdYU0I5TzF4dVluSmxZV3M3WEc1allYTmxJREU1T2x4dUlDQWdJSFpoY2lCcGJuWmxjbk5sSUQwZ2VYa3VjSEpsY0dGeVpVSnNiMk5yS0NRa1d5UXdMVEpkTENBa0pGc2tNQzB4WFN3Z0pDUmJKREJkTENBa0pGc2tNRjBzSUdaaGJITmxMQ0IwYUdsekxsOGtLU3hjYmlBZ0lDQWdJQ0FnY0hKdlozSmhiU0E5SUhsNUxuQnlaWEJoY21WUWNtOW5jbUZ0S0Z0cGJuWmxjbk5sWFN3Z0pDUmJKREF0TVYwdWJHOWpLVHRjYmlBZ0lDQndjbTluY21GdExtTm9ZV2x1WldRZ1BTQjBjblZsTzF4dVhHNGdJQ0FnZEdocGN5NGtJRDBnZXlCemRISnBjRG9nSkNSYkpEQXRNbDB1YzNSeWFYQXNJSEJ5YjJkeVlXMDZJSEJ5YjJkeVlXMHNJR05vWVdsdU9pQjBjblZsSUgwN1hHNGdJRnh1WW5KbFlXczdYRzVqWVhObElESXdPblJvYVhNdUpDQTlJQ1FrV3lRd1hUdGNibUp5WldGck8xeHVZMkZ6WlNBeU1UcDBhR2x6TGlRZ1BTQjdjR0YwYURvZ0pDUmJKREF0TVYwc0lITjBjbWx3T2lCNWVTNXpkSEpwY0Vac1lXZHpLQ1FrV3lRd0xUSmRMQ0FrSkZza01GMHBmVHRjYm1KeVpXRnJPMXh1WTJGelpTQXlNanAwYUdsekxpUWdQU0I1ZVM1d2NtVndZWEpsVFhWemRHRmphR1VvSkNSYkpEQXRNMTBzSUNRa1d5UXdMVEpkTENBa0pGc2tNQzB4WFN3Z0pDUmJKREF0TkYwc0lIbDVMbk4wY21sd1JteGhaM01vSkNSYkpEQXRORjBzSUNRa1d5UXdYU2tzSUhSb2FYTXVYeVFwTzF4dVluSmxZV3M3WEc1allYTmxJREl6T25Sb2FYTXVKQ0E5SUhsNUxuQnlaWEJoY21WTmRYTjBZV05vWlNna0pGc2tNQzB6WFN3Z0pDUmJKREF0TWwwc0lDUWtXeVF3TFRGZExDQWtKRnNrTUMwMFhTd2dlWGt1YzNSeWFYQkdiR0ZuY3lna0pGc2tNQzAwWFN3Z0pDUmJKREJkS1N3Z2RHaHBjeTVmSkNrN1hHNWljbVZoYXp0Y2JtTmhjMlVnTWpRNlhHNGdJQ0FnZEdocGN5NGtJRDBnZTF4dUlDQWdJQ0FnZEhsd1pUb2dKMUJoY25ScFlXeFRkR0YwWlcxbGJuUW5MRnh1SUNBZ0lDQWdibUZ0WlRvZ0pDUmJKREF0TTEwc1hHNGdJQ0FnSUNCd1lYSmhiWE02SUNRa1d5UXdMVEpkTEZ4dUlDQWdJQ0FnYUdGemFEb2dKQ1JiSkRBdE1WMHNYRzRnSUNBZ0lDQnBibVJsYm5RNklDY25MRnh1SUNBZ0lDQWdjM1J5YVhBNklIbDVMbk4wY21sd1JteGhaM01vSkNSYkpEQXRORjBzSUNRa1d5UXdYU2tzWEc0Z0lDQWdJQ0JzYjJNNklIbDVMbXh2WTBsdVptOG9kR2hwY3k1ZkpDbGNiaUFnSUNCOU8xeHVJQ0JjYm1KeVpXRnJPMXh1WTJGelpTQXlOVHAwYUdsekxpUWdQU0I1ZVM1d2NtVndZWEpsVUdGeWRHbGhiRUpzYjJOcktDUWtXeVF3TFRKZExDQWtKRnNrTUMweFhTd2dKQ1JiSkRCZExDQjBhR2x6TGw4a0tUdGNibUp5WldGck8xeHVZMkZ6WlNBeU5qcDBhR2x6TGlRZ1BTQjdJSEJoZEdnNklDUWtXeVF3TFROZExDQndZWEpoYlhNNklDUWtXeVF3TFRKZExDQm9ZWE5vT2lBa0pGc2tNQzB4WFN3Z2MzUnlhWEE2SUhsNUxuTjBjbWx3Um14aFozTW9KQ1JiSkRBdE5GMHNJQ1FrV3lRd1hTa2dmVHRjYm1KeVpXRnJPMXh1WTJGelpTQXlOenAwYUdsekxpUWdQU0FrSkZza01GMDdYRzVpY21WaGF6dGNibU5oYzJVZ01qZzZkR2hwY3k0a0lEMGdKQ1JiSkRCZE8xeHVZbkpsWVdzN1hHNWpZWE5sSURJNU9seHVJQ0FnSUhSb2FYTXVKQ0E5SUh0Y2JpQWdJQ0FnSUhSNWNHVTZJQ2RUZFdKRmVIQnlaWE56YVc5dUp5eGNiaUFnSUNBZ0lIQmhkR2c2SUNRa1d5UXdMVE5kTEZ4dUlDQWdJQ0FnY0dGeVlXMXpPaUFrSkZza01DMHlYU3hjYmlBZ0lDQWdJR2hoYzJnNklDUWtXeVF3TFRGZExGeHVJQ0FnSUNBZ2JHOWpPaUI1ZVM1c2IyTkpibVp2S0hSb2FYTXVYeVFwWEc0Z0lDQWdmVHRjYmlBZ1hHNWljbVZoYXp0Y2JtTmhjMlVnTXpBNmRHaHBjeTRrSUQwZ2UzUjVjR1U2SUNkSVlYTm9KeXdnY0dGcGNuTTZJQ1FrV3lRd1hTd2diRzlqT2lCNWVTNXNiMk5KYm1adktIUm9hWE11WHlRcGZUdGNibUp5WldGck8xeHVZMkZ6WlNBek1UcDBhR2x6TGlRZ1BTQjdkSGx3WlRvZ0owaGhjMmhRWVdseUp5d2dhMlY1T2lCNWVTNXBaQ2drSkZza01DMHlYU2tzSUhaaGJIVmxPaUFrSkZza01GMHNJR3h2WXpvZ2VYa3ViRzlqU1c1bWJ5aDBhR2x6TGw4a0tYMDdYRzVpY21WaGF6dGNibU5oYzJVZ016STZkR2hwY3k0a0lEMGdlWGt1YVdRb0pDUmJKREF0TVYwcE8xeHVZbkpsWVdzN1hHNWpZWE5sSURNek9uUm9hWE11SkNBOUlDUWtXeVF3WFR0Y2JtSnlaV0ZyTzF4dVkyRnpaU0F6TkRwMGFHbHpMaVFnUFNBa0pGc2tNRjA3WEc1aWNtVmhhenRjYm1OaGMyVWdNelU2ZEdocGN5NGtJRDBnZTNSNWNHVTZJQ2RUZEhKcGJtZE1hWFJsY21Gc0p5d2dkbUZzZFdVNklDUWtXeVF3WFN3Z2IzSnBaMmx1WVd3NklDUWtXeVF3WFN3Z2JHOWpPaUI1ZVM1c2IyTkpibVp2S0hSb2FYTXVYeVFwZlR0Y2JtSnlaV0ZyTzF4dVkyRnpaU0F6TmpwMGFHbHpMaVFnUFNCN2RIbHdaVG9nSjA1MWJXSmxja3hwZEdWeVlXd25MQ0IyWVd4MVpUb2dUblZ0WW1WeUtDUWtXeVF3WFNrc0lHOXlhV2RwYm1Gc09pQk9kVzFpWlhJb0pDUmJKREJkS1N3Z2JHOWpPaUI1ZVM1c2IyTkpibVp2S0hSb2FYTXVYeVFwZlR0Y2JtSnlaV0ZyTzF4dVkyRnpaU0F6TnpwMGFHbHpMaVFnUFNCN2RIbHdaVG9nSjBKdmIyeGxZVzVNYVhSbGNtRnNKeXdnZG1Gc2RXVTZJQ1FrV3lRd1hTQTlQVDBnSjNSeWRXVW5MQ0J2Y21sbmFXNWhiRG9nSkNSYkpEQmRJRDA5UFNBbmRISjFaU2NzSUd4dll6b2dlWGt1Ykc5alNXNW1ieWgwYUdsekxsOGtLWDA3WEc1aWNtVmhhenRjYm1OaGMyVWdNemc2ZEdocGN5NGtJRDBnZTNSNWNHVTZJQ2RWYm1SbFptbHVaV1JNYVhSbGNtRnNKeXdnYjNKcFoybHVZV3c2SUhWdVpHVm1hVzVsWkN3Z2RtRnNkV1U2SUhWdVpHVm1hVzVsWkN3Z2JHOWpPaUI1ZVM1c2IyTkpibVp2S0hSb2FYTXVYeVFwZlR0Y2JtSnlaV0ZyTzF4dVkyRnpaU0F6T1RwMGFHbHpMaVFnUFNCN2RIbHdaVG9nSjA1MWJHeE1hWFJsY21Gc0p5d2diM0pwWjJsdVlXdzZJRzUxYkd3c0lIWmhiSFZsT2lCdWRXeHNMQ0JzYjJNNklIbDVMbXh2WTBsdVptOG9kR2hwY3k1ZkpDbDlPMXh1WW5KbFlXczdYRzVqWVhObElEUXdPblJvYVhNdUpDQTlJQ1FrV3lRd1hUdGNibUp5WldGck8xeHVZMkZ6WlNBME1UcDBhR2x6TGlRZ1BTQWtKRnNrTUYwN1hHNWljbVZoYXp0Y2JtTmhjMlVnTkRJNmRHaHBjeTRrSUQwZ2VYa3VjSEpsY0dGeVpWQmhkR2dvZEhKMVpTd2dKQ1JiSkRCZExDQjBhR2x6TGw4a0tUdGNibUp5WldGck8xeHVZMkZ6WlNBME16cDBhR2x6TGlRZ1BTQjVlUzV3Y21Wd1lYSmxVR0YwYUNobVlXeHpaU3dnSkNSYkpEQmRMQ0IwYUdsekxsOGtLVHRjYm1KeVpXRnJPMXh1WTJGelpTQTBORG9nSkNSYkpEQXRNbDB1Y0hWemFDaDdjR0Z5ZERvZ2VYa3VhV1FvSkNSYkpEQmRLU3dnYjNKcFoybHVZV3c2SUNRa1d5UXdYU3dnYzJWd1lYSmhkRzl5T2lBa0pGc2tNQzB4WFgwcE95QjBhR2x6TGlRZ1BTQWtKRnNrTUMweVhUc2dYRzVpY21WaGF6dGNibU5oYzJVZ05EVTZkR2hwY3k0a0lEMGdXM3R3WVhKME9pQjVlUzVwWkNna0pGc2tNRjBwTENCdmNtbG5hVzVoYkRvZ0pDUmJKREJkZlYwN1hHNWljbVZoYXp0Y2JtTmhjMlVnTkRZNmRHaHBjeTRrSUQwZ1cxMDdYRzVpY21WaGF6dGNibU5oYzJVZ05EYzZKQ1JiSkRBdE1WMHVjSFZ6YUNna0pGc2tNRjBwTzF4dVluSmxZV3M3WEc1allYTmxJRFE0T25Sb2FYTXVKQ0E5SUZ0ZE8xeHVZbkpsWVdzN1hHNWpZWE5sSURRNU9pUWtXeVF3TFRGZExuQjFjMmdvSkNSYkpEQmRLVHRjYm1KeVpXRnJPMXh1WTJGelpTQTFNRHAwYUdsekxpUWdQU0JiWFR0Y2JtSnlaV0ZyTzF4dVkyRnpaU0ExTVRva0pGc2tNQzB4WFM1d2RYTm9LQ1FrV3lRd1hTazdYRzVpY21WaGF6dGNibU5oYzJVZ05UZzZkR2hwY3k0a0lEMGdXMTA3WEc1aWNtVmhhenRjYm1OaGMyVWdOVGs2SkNSYkpEQXRNVjB1Y0hWemFDZ2tKRnNrTUYwcE8xeHVZbkpsWVdzN1hHNWpZWE5sSURZME9uUm9hWE11SkNBOUlGdGRPMXh1WW5KbFlXczdYRzVqWVhObElEWTFPaVFrV3lRd0xURmRMbkIxYzJnb0pDUmJKREJkS1R0Y2JtSnlaV0ZyTzF4dVkyRnpaU0EzTURwMGFHbHpMaVFnUFNCYlhUdGNibUp5WldGck8xeHVZMkZ6WlNBM01Ub2tKRnNrTUMweFhTNXdkWE5vS0NRa1d5UXdYU2s3WEc1aWNtVmhhenRjYm1OaGMyVWdOemc2ZEdocGN5NGtJRDBnVzEwN1hHNWljbVZoYXp0Y2JtTmhjMlVnTnprNkpDUmJKREF0TVYwdWNIVnphQ2drSkZza01GMHBPMXh1WW5KbFlXczdYRzVqWVhObElEZ3lPblJvYVhNdUpDQTlJRnRkTzF4dVluSmxZV3M3WEc1allYTmxJRGd6T2lRa1d5UXdMVEZkTG5CMWMyZ29KQ1JiSkRCZEtUdGNibUp5WldGck8xeHVZMkZ6WlNBNE5qcDBhR2x6TGlRZ1BTQmJYVHRjYm1KeVpXRnJPMXh1WTJGelpTQTROem9rSkZza01DMHhYUzV3ZFhOb0tDUWtXeVF3WFNrN1hHNWljbVZoYXp0Y2JtTmhjMlVnT1RBNmRHaHBjeTRrSUQwZ1cxMDdYRzVpY21WaGF6dGNibU5oYzJVZ09URTZKQ1JiSkRBdE1WMHVjSFZ6YUNna0pGc2tNRjBwTzF4dVluSmxZV3M3WEc1allYTmxJRGswT25Sb2FYTXVKQ0E5SUZ0ZE8xeHVZbkpsWVdzN1hHNWpZWE5sSURrMU9pUWtXeVF3TFRGZExuQjFjMmdvSkNSYkpEQmRLVHRjYm1KeVpXRnJPMXh1WTJGelpTQTVPRHAwYUdsekxpUWdQU0JiSkNSYkpEQmRYVHRjYm1KeVpXRnJPMXh1WTJGelpTQTVPVG9rSkZza01DMHhYUzV3ZFhOb0tDUWtXeVF3WFNrN1hHNWljbVZoYXp0Y2JtTmhjMlVnTVRBd09uUm9hWE11SkNBOUlGc2tKRnNrTUYxZE8xeHVZbkpsWVdzN1hHNWpZWE5sSURFd01Ub2tKRnNrTUMweFhTNXdkWE5vS0NRa1d5UXdYU2s3WEc1aWNtVmhhenRjYm4xY2JuMHNYRzUwWVdKc1pUb2dXM3N6T2pFc05Eb3lMRFU2V3pJc05EWmRMRFk2TXl3eE5EcGJNaXcwTmwwc01UVTZXeklzTkRaZExERTVPbHN5TERRMlhTd3lPVHBiTWl3ME5sMHNNelE2V3pJc05EWmRMRFE0T2xzeUxEUTJYU3cxTVRwYk1pdzBObDBzTlRVNld6SXNORFpkTERZd09sc3lMRFEyWFgwc2V6RTZXek5kZlN4N05UcGJNU3cwWFgwc2V6VTZXeklzTWwwc056bzFMRGc2Tml3NU9qY3NNVEE2T0N3eE1UbzVMREV5T2pFd0xERXpPakV4TERFME9sc3hMREV5WFN3eE5UcGJNU3d5TUYwc01UWTZNVGNzTVRrNld6RXNNak5kTERJME9qRTFMREkzT2pFMkxESTVPbHN4TERJeFhTd3pORHBiTVN3eU1sMHNNems2V3pJc01sMHNORFE2V3pJc01sMHNORGM2V3pJc01sMHNORGc2V3pFc01UTmRMRFV4T2xzeExERTBYU3cxTlRwYk1Td3hPRjBzTlRrNk1Ua3NOakE2V3pFc01qUmRmU3g3TVRwYk1pd3hYWDBzZXpVNld6SXNORGRkTERFME9sc3lMRFEzWFN3eE5UcGJNaXcwTjEwc01UazZXeklzTkRkZExESTVPbHN5TERRM1hTd3pORHBiTWl3ME4xMHNNems2V3pJc05EZGRMRFEwT2xzeUxEUTNYU3cwTnpwYk1pdzBOMTBzTkRnNld6SXNORGRkTERVeE9sc3lMRFEzWFN3MU5UcGJNaXcwTjEwc05qQTZXeklzTkRkZGZTeDdOVHBiTWl3elhTd3hORHBiTWl3elhTd3hOVHBiTWl3elhTd3hPVHBiTWl3elhTd3lPVHBiTWl3elhTd3pORHBiTWl3elhTd3pPVHBiTWl3elhTdzBORHBiTWl3elhTdzBOenBiTWl3elhTdzBPRHBiTWl3elhTdzFNVHBiTWl3elhTdzFOVHBiTWl3elhTdzJNRHBiTWl3elhYMHNlelU2V3pJc05GMHNNVFE2V3pJc05GMHNNVFU2V3pJc05GMHNNVGs2V3pJc05GMHNNams2V3pJc05GMHNNelE2V3pJc05GMHNNems2V3pJc05GMHNORFE2V3pJc05GMHNORGM2V3pJc05GMHNORGc2V3pJc05GMHNOVEU2V3pJc05GMHNOVFU2V3pJc05GMHNOakE2V3pJc05GMTlMSHMxT2xzeUxEVmRMREUwT2xzeUxEVmRMREUxT2xzeUxEVmRMREU1T2xzeUxEVmRMREk1T2xzeUxEVmRMRE0wT2xzeUxEVmRMRE01T2xzeUxEVmRMRFEwT2xzeUxEVmRMRFEzT2xzeUxEVmRMRFE0T2xzeUxEVmRMRFV4T2xzeUxEVmRMRFUxT2xzeUxEVmRMRFl3T2xzeUxEVmRmU3g3TlRwYk1pdzJYU3d4TkRwYk1pdzJYU3d4TlRwYk1pdzJYU3d4T1RwYk1pdzJYU3d5T1RwYk1pdzJYU3d6TkRwYk1pdzJYU3d6T1RwYk1pdzJYU3cwTkRwYk1pdzJYU3cwTnpwYk1pdzJYU3cwT0RwYk1pdzJYU3cxTVRwYk1pdzJYU3cxTlRwYk1pdzJYU3cyTURwYk1pdzJYWDBzZXpVNld6SXNOMTBzTVRRNld6SXNOMTBzTVRVNld6SXNOMTBzTVRrNld6SXNOMTBzTWprNld6SXNOMTBzTXpRNld6SXNOMTBzTXprNld6SXNOMTBzTkRRNld6SXNOMTBzTkRjNld6SXNOMTBzTkRnNld6SXNOMTBzTlRFNld6SXNOMTBzTlRVNld6SXNOMTBzTmpBNld6SXNOMTE5TEhzMU9sc3lMRGhkTERFME9sc3lMRGhkTERFMU9sc3lMRGhkTERFNU9sc3lMRGhkTERJNU9sc3lMRGhkTERNME9sc3lMRGhkTERNNU9sc3lMRGhkTERRME9sc3lMRGhkTERRM09sc3lMRGhkTERRNE9sc3lMRGhkTERVeE9sc3lMRGhkTERVMU9sc3lMRGhkTERZd09sc3lMRGhkZlN4N05UcGJNaXc1WFN3eE5EcGJNaXc1WFN3eE5UcGJNaXc1WFN3eE9UcGJNaXc1WFN3eU9UcGJNaXc1WFN3ek5EcGJNaXc1WFN3ek9UcGJNaXc1WFN3ME5EcGJNaXc1WFN3ME56cGJNaXc1WFN3ME9EcGJNaXc1WFN3MU1UcGJNaXc1WFN3MU5UcGJNaXc1WFN3Mk1EcGJNaXc1WFgwc2V6SXdPakkxTERjeU9sc3hMRE0xWFN3M09Eb3lOaXczT1RveU55dzRNRHBiTVN3eU9GMHNPREU2V3pFc01qbGRMRGd5T2xzeExETXdYU3c0TXpwYk1Td3pNVjBzT0RRNld6RXNNekpkTERnMU9sc3hMRE0wWFN3NE5qb3pNMzBzZXpJd09qTTJMRGN5T2xzeExETTFYU3czT0RveU5pdzNPVG95Tnl3NE1EcGJNU3d5T0Ywc09ERTZXekVzTWpsZExEZ3lPbHN4TERNd1hTdzRNenBiTVN3ek1WMHNPRFE2V3pFc016SmRMRGcxT2xzeExETTBYU3c0Tmpvek0zMHNlelE2TXpjc05qb3pMREUwT2xzeUxEUTJYU3d4TlRwYk1pdzBObDBzTVRrNld6SXNORFpkTERJNU9sc3lMRFEyWFN3ek5EcGJNaXcwTmwwc016azZXeklzTkRaZExEUTBPbHN5TERRMlhTdzBOenBiTWl3ME5sMHNORGc2V3pJc05EWmRMRFV4T2xzeUxEUTJYU3cxTlRwYk1pdzBObDBzTmpBNld6SXNORFpkZlN4N05Eb3pPQ3cyT2pNc01UUTZXeklzTkRaZExERTFPbHN5TERRMlhTd3hPVHBiTWl3ME5sMHNNams2V3pJc05EWmRMRE0wT2xzeUxEUTJYU3cwTkRwYk1pdzBObDBzTkRjNld6SXNORFpkTERRNE9sc3lMRFEyWFN3MU1UcGJNaXcwTmwwc05UVTZXeklzTkRaZExEWXdPbHN5TERRMlhYMHNlekUxT2xzeUxEUTRYU3d4Tnpvek9Td3hPRHBiTWl3ME9GMTlMSHN5TURvME1TdzFOam8wTUN3Mk5EbzBNaXcyTlRwYk1TdzBNMTBzTnpJNld6RXNNelZkTERjNE9qSTJMRGM1T2pJM0xEZ3dPbHN4TERJNFhTdzRNVHBiTVN3eU9WMHNPREk2V3pFc016QmRMRGd6T2xzeExETXhYU3c0TkRwYk1Td3pNbDBzT0RVNld6RXNNelJkTERnMk9qTXpmU3g3TkRvME5DdzJPak1zTVRRNld6SXNORFpkTERFMU9sc3lMRFEyWFN3eE9UcGJNaXcwTmwwc01qazZXeklzTkRaZExETTBPbHN5TERRMlhTdzBOenBiTWl3ME5sMHNORGc2V3pJc05EWmRMRFV4T2xzeUxEUTJYU3cxTlRwYk1pdzBObDBzTmpBNld6SXNORFpkZlN4N05UcGJNaXd4TUYwc01UUTZXeklzTVRCZExERTFPbHN5TERFd1hTd3hPRHBiTWl3eE1GMHNNVGs2V3pJc01UQmRMREk1T2xzeUxERXdYU3d6TkRwYk1pd3hNRjBzTXprNld6SXNNVEJkTERRME9sc3lMREV3WFN3ME56cGJNaXd4TUYwc05EZzZXeklzTVRCZExEVXhPbHN5TERFd1hTdzFOVHBiTWl3eE1GMHNOakE2V3pJc01UQmRmU3g3TWpBNk5EVXNOekk2V3pFc016VmRMRGM0T2pJMkxEYzVPakkzTERnd09sc3hMREk0WFN3NE1UcGJNU3d5T1Ywc09ESTZXekVzTXpCZExEZ3pPbHN4TERNeFhTdzRORHBiTVN3ek1sMHNPRFU2V3pFc016UmRMRGcyT2pNemZTeDdNakE2TkRZc056STZXekVzTXpWZExEYzRPakkyTERjNU9qSTNMRGd3T2xzeExESTRYU3c0TVRwYk1Td3lPVjBzT0RJNld6RXNNekJkTERnek9sc3hMRE14WFN3NE5EcGJNU3d6TWwwc09EVTZXekVzTXpSZExEZzJPak16ZlN4N01qQTZORGNzTnpJNld6RXNNelZkTERjNE9qSTJMRGM1T2pJM0xEZ3dPbHN4TERJNFhTdzRNVHBiTVN3eU9WMHNPREk2V3pFc016QmRMRGd6T2xzeExETXhYU3c0TkRwYk1Td3pNbDBzT0RVNld6RXNNelJkTERnMk9qTXpmU3g3TWpBNk5ERXNOVFk2TkRnc05qUTZORElzTmpVNld6RXNORE5kTERjeU9sc3hMRE0xWFN3M09Eb3lOaXczT1RveU55dzRNRHBiTVN3eU9GMHNPREU2V3pFc01qbGRMRGd5T2xzeExETXdYU3c0TXpwYk1Td3pNVjBzT0RRNld6RXNNekpkTERnMU9sc3hMRE0wWFN3NE5qb3pNMzBzZXpNek9sc3lMRGM0WFN3ME9UbzBPU3cyTlRwYk1pdzNPRjBzTnpJNld6SXNOemhkTERnd09sc3lMRGM0WFN3NE1UcGJNaXczT0Ywc09ESTZXeklzTnpoZExEZ3pPbHN5TERjNFhTdzRORHBiTWl3M09GMHNPRFU2V3pJc056aGRmU3g3TWpNNld6SXNNek5kTERNek9sc3lMRE16WFN3MU5EcGJNaXd6TTEwc05qVTZXeklzTXpOZExEWTRPbHN5TERNelhTdzNNanBiTWl3ek0xMHNOelU2V3pJc016TmRMRGd3T2xzeUxETXpYU3c0TVRwYk1pd3pNMTBzT0RJNld6SXNNek5kTERnek9sc3lMRE16WFN3NE5EcGJNaXd6TTEwc09EVTZXeklzTXpOZGZTeDdNak02V3pJc016UmRMRE16T2xzeUxETTBYU3cxTkRwYk1pd3pORjBzTmpVNld6SXNNelJkTERZNE9sc3lMRE0wWFN3M01qcGJNaXd6TkYwc056VTZXeklzTXpSZExEZ3dPbHN5TERNMFhTdzRNVHBiTWl3ek5GMHNPREk2V3pJc016UmRMRGd6T2xzeUxETTBYU3c0TkRwYk1pd3pORjBzT0RVNld6SXNNelJkZlN4N01qTTZXeklzTXpWZExETXpPbHN5TERNMVhTdzFORHBiTWl3ek5WMHNOalU2V3pJc016VmRMRFk0T2xzeUxETTFYU3czTWpwYk1pd3pOVjBzTnpVNld6SXNNelZkTERnd09sc3lMRE0xWFN3NE1UcGJNaXd6TlYwc09ESTZXeklzTXpWZExEZ3pPbHN5TERNMVhTdzRORHBiTWl3ek5WMHNPRFU2V3pJc016VmRmU3g3TWpNNld6SXNNelpkTERNek9sc3lMRE0yWFN3MU5EcGJNaXd6Tmwwc05qVTZXeklzTXpaZExEWTRPbHN5TERNMlhTdzNNanBiTWl3ek5sMHNOelU2V3pJc016WmRMRGd3T2xzeUxETTJYU3c0TVRwYk1pd3pObDBzT0RJNld6SXNNelpkTERnek9sc3lMRE0yWFN3NE5EcGJNaXd6Tmwwc09EVTZXeklzTXpaZGZTeDdNak02V3pJc016ZGRMRE16T2xzeUxETTNYU3cxTkRwYk1pd3pOMTBzTmpVNld6SXNNemRkTERZNE9sc3lMRE0zWFN3M01qcGJNaXd6TjEwc056VTZXeklzTXpkZExEZ3dPbHN5TERNM1hTdzRNVHBiTWl3ek4xMHNPREk2V3pJc016ZGRMRGd6T2xzeUxETTNYU3c0TkRwYk1pd3pOMTBzT0RVNld6SXNNemRkZlN4N01qTTZXeklzTXpoZExETXpPbHN5TERNNFhTdzFORHBiTWl3ek9GMHNOalU2V3pJc016aGRMRFk0T2xzeUxETTRYU3czTWpwYk1pd3pPRjBzTnpVNld6SXNNemhkTERnd09sc3lMRE00WFN3NE1UcGJNaXd6T0Ywc09ESTZXeklzTXpoZExEZ3pPbHN5TERNNFhTdzRORHBiTWl3ek9GMHNPRFU2V3pJc016aGRmU3g3TWpNNld6SXNNemxkTERNek9sc3lMRE01WFN3MU5EcGJNaXd6T1Ywc05qVTZXeklzTXpsZExEWTRPbHN5TERNNVhTdzNNanBiTWl3ek9WMHNOelU2V3pJc016bGRMRGd3T2xzeUxETTVYU3c0TVRwYk1pd3pPVjBzT0RJNld6SXNNemxkTERnek9sc3lMRE01WFN3NE5EcGJNaXd6T1Ywc09EVTZXeklzTXpsZGZTeDdNak02V3pJc05ETmRMRE16T2xzeUxEUXpYU3cxTkRwYk1pdzBNMTBzTmpVNld6SXNORE5kTERZNE9sc3lMRFF6WFN3M01qcGJNaXcwTTEwc056VTZXeklzTkROZExEZ3dPbHN5TERRelhTdzRNVHBiTWl3ME0xMHNPREk2V3pJc05ETmRMRGd6T2xzeUxEUXpYU3c0TkRwYk1pdzBNMTBzT0RVNld6SXNORE5kTERnM09sc3hMRFV3WFgwc2V6Y3lPbHN4TERNMVhTdzROam8xTVgwc2V6SXpPbHN5TERRMVhTd3pNenBiTWl3ME5WMHNOVFE2V3pJc05EVmRMRFkxT2xzeUxEUTFYU3cyT0RwYk1pdzBOVjBzTnpJNld6SXNORFZkTERjMU9sc3lMRFExWFN3NE1EcGJNaXcwTlYwc09ERTZXeklzTkRWZExEZ3lPbHN5TERRMVhTdzRNenBiTWl3ME5WMHNPRFE2V3pJc05EVmRMRGcxT2xzeUxEUTFYU3c0TnpwYk1pdzBOVjE5TEhzMU1qbzFNaXcxTkRwYk1pdzRNbDBzTmpVNld6SXNPREpkTERjeU9sc3lMRGd5WFN3NE1EcGJNaXc0TWwwc09ERTZXeklzT0RKZExEZ3lPbHN5TERneVhTdzRNenBiTWl3NE1sMHNPRFE2V3pJc09ESmRMRGcxT2xzeUxEZ3lYWDBzZXpJMU9qVXpMRE00T2pVMUxETTVPbHN4TERVM1hTdzBNem8xTml3ME5EcGJNU3cxT0Ywc05EVTZOVFFzTkRjNld6SXNOVFJkZlN4N01qZzZOVGtzTkRNNk5qQXNORFE2V3pFc05UaGRMRFEzT2xzeUxEVTJYWDBzZXpFek9qWXlMREUxT2xzeExESXdYU3d4T0RwYk1TdzJNVjE5TEhzek16cGJNaXc0Tmwwc05UYzZOak1zTmpVNld6SXNPRFpkTERjeU9sc3lMRGcyWFN3NE1EcGJNaXc0Tmwwc09ERTZXeklzT0RaZExEZ3lPbHN5TERnMlhTdzRNenBiTWl3NE5sMHNPRFE2V3pJc09EWmRMRGcxT2xzeUxEZzJYWDBzZXpNek9sc3lMRFF3WFN3Mk5UcGJNaXcwTUYwc056STZXeklzTkRCZExEZ3dPbHN5TERRd1hTdzRNVHBiTWl3ME1GMHNPREk2V3pJc05EQmRMRGd6T2xzeUxEUXdYU3c0TkRwYk1pdzBNRjBzT0RVNld6SXNOREJkZlN4N016TTZXeklzTkRGZExEWTFPbHN5TERReFhTdzNNanBiTWl3ME1WMHNPREE2V3pJc05ERmRMRGd4T2xzeUxEUXhYU3c0TWpwYk1pdzBNVjBzT0RNNld6SXNOREZkTERnME9sc3lMRFF4WFN3NE5UcGJNaXcwTVYxOUxIc3lNRG8yTkN3M01qcGJNU3d6TlYwc056ZzZNallzTnprNk1qY3NPREE2V3pFc01qaGRMRGd4T2xzeExESTVYU3c0TWpwYk1Td3pNRjBzT0RNNld6RXNNekZkTERnME9sc3hMRE15WFN3NE5UcGJNU3d6TkYwc09EWTZNek45TEhzeU5qbzJOU3cwTnpwYk1TdzJObDE5TEhzek1EbzJOeXd6TXpwYk1pdzFPRjBzTmpVNld6SXNOVGhkTERjeU9sc3lMRFU0WFN3M05UcGJNaXcxT0Ywc09EQTZXeklzTlRoZExEZ3hPbHN5TERVNFhTdzRNanBiTWl3MU9GMHNPRE02V3pJc05UaGRMRGcwT2xzeUxEVTRYU3c0TlRwYk1pdzFPRjE5TEhzek16cGJNaXcyTkYwc016VTZOamdzTmpVNld6SXNOalJkTERjeU9sc3lMRFkwWFN3M05UcGJNaXcyTkYwc09EQTZXeklzTmpSZExEZ3hPbHN5TERZMFhTdzRNanBiTWl3Mk5GMHNPRE02V3pJc05qUmRMRGcwT2xzeUxEWTBYU3c0TlRwYk1pdzJORjE5TEhzeU1UbzJPU3d5TXpwYk1pdzFNRjBzTmpVNld6SXNOVEJkTERjeU9sc3lMRFV3WFN3NE1EcGJNaXcxTUYwc09ERTZXeklzTlRCZExEZ3lPbHN5TERVd1hTdzRNenBiTWl3MU1GMHNPRFE2V3pJc05UQmRMRGcxT2xzeUxEVXdYWDBzZXpNek9sc3lMRGt3WFN3Mk1UbzNNQ3cyTlRwYk1pdzVNRjBzTnpJNld6SXNPVEJkTERnd09sc3lMRGt3WFN3NE1UcGJNaXc1TUYwc09ESTZXeklzT1RCZExEZ3pPbHN5TERrd1hTdzRORHBiTWl3NU1GMHNPRFU2V3pJc09UQmRmU3g3TWpBNk56UXNNek02V3pJc09EQmRMRFV3T2pjeExEWXpPamN5TERZME9qYzFMRFkxT2xzeExEUXpYU3cyT1RvM015dzNNRG8zTml3M01UbzNOeXczTWpwYk1TdzNPRjBzTnpnNk1qWXNOems2TWpjc09EQTZXekVzTWpoZExEZ3hPbHN4TERJNVhTdzRNanBiTVN3ek1GMHNPRE02V3pFc016RmRMRGcwT2xzeExETXlYU3c0TlRwYk1Td3pORjBzT0RZNk16TjlMSHMzTWpwYk1TdzNPVjE5TEhzeU16cGJNaXcwTWwwc016TTZXeklzTkRKZExEVTBPbHN5TERReVhTdzJOVHBiTWl3ME1sMHNOamc2V3pJc05ESmRMRGN5T2xzeUxEUXlYU3czTlRwYk1pdzBNbDBzT0RBNld6SXNOREpkTERneE9sc3lMRFF5WFN3NE1qcGJNaXcwTWwwc09ETTZXeklzTkRKZExEZzBPbHN5TERReVhTdzROVHBiTWl3ME1sMHNPRGM2V3pFc05UQmRmU3g3TWpBNk56UXNOVE02T0RBc05UUTZXeklzT0RSZExEWXpPamd4TERZME9qYzFMRFkxT2xzeExEUXpYU3cyT1RvNE1pdzNNRG8zTml3M01UbzNOeXczTWpwYk1TdzNPRjBzTnpnNk1qWXNOems2TWpjc09EQTZXekVzTWpoZExEZ3hPbHN4TERJNVhTdzRNanBiTVN3ek1GMHNPRE02V3pFc016RmRMRGcwT2xzeExETXlYU3c0TlRwYk1Td3pORjBzT0RZNk16TjlMSHN5TmpvNE15dzBOenBiTVN3Mk5sMTlMSHMwTnpwYk1pdzFOVjE5TEhzME9qZzBMRFk2TXl3eE5EcGJNaXcwTmwwc01UVTZXeklzTkRaZExERTVPbHN5TERRMlhTd3lPVHBiTWl3ME5sMHNNelE2V3pJc05EWmRMRE01T2xzeUxEUTJYU3cwTkRwYk1pdzBObDBzTkRjNld6SXNORFpkTERRNE9sc3lMRFEyWFN3MU1UcGJNaXcwTmwwc05UVTZXeklzTkRaZExEWXdPbHN5TERRMlhYMHNlelEzT2xzeUxESXdYWDBzZXpJd09qZzFMRGN5T2xzeExETTFYU3czT0RveU5pdzNPVG95Tnl3NE1EcGJNU3d5T0Ywc09ERTZXekVzTWpsZExEZ3lPbHN4TERNd1hTdzRNenBiTVN3ek1WMHNPRFE2V3pFc016SmRMRGcxT2xzeExETTBYU3c0Tmpvek0zMHNlelE2T0RZc05qb3pMREUwT2xzeUxEUTJYU3d4TlRwYk1pdzBObDBzTVRrNld6SXNORFpkTERJNU9sc3lMRFEyWFN3ek5EcGJNaXcwTmwwc05EYzZXeklzTkRaZExEUTRPbHN5TERRMlhTdzFNVHBiTWl3ME5sMHNOVFU2V3pJc05EWmRMRFl3T2xzeUxEUTJYWDBzZXpJMk9qZzNMRFEzT2xzeExEWTJYWDBzZXpRM09sc3lMRFUzWFgwc2V6VTZXeklzTVRGZExERTBPbHN5TERFeFhTd3hOVHBiTWl3eE1WMHNNVGs2V3pJc01URmRMREk1T2xzeUxERXhYU3d6TkRwYk1pd3hNVjBzTXprNld6SXNNVEZkTERRME9sc3lMREV4WFN3ME56cGJNaXd4TVYwc05EZzZXeklzTVRGZExEVXhPbHN5TERFeFhTdzFOVHBiTWl3eE1WMHNOakE2V3pJc01URmRmU3g3TVRVNld6SXNORGxkTERFNE9sc3lMRFE1WFgwc2V6SXdPamMwTERNek9sc3lMRGc0WFN3MU9EbzRPQ3cyTXpvNE9TdzJORG8zTlN3Mk5UcGJNU3cwTTEwc05qazZPVEFzTnpBNk56WXNOekU2Tnpjc056STZXekVzTnpoZExEYzRPakkyTERjNU9qSTNMRGd3T2xzeExESTRYU3c0TVRwYk1Td3lPVjBzT0RJNld6RXNNekJkTERnek9sc3hMRE14WFN3NE5EcGJNU3d6TWwwc09EVTZXekVzTXpSZExEZzJPak16ZlN4N05qVTZXeklzT1RSZExEWTJPamt4TERZNE9sc3lMRGswWFN3M01qcGJNaXc1TkYwc09EQTZXeklzT1RSZExEZ3hPbHN5TERrMFhTdzRNanBiTWl3NU5GMHNPRE02V3pJc09UUmRMRGcwT2xzeUxEazBYU3c0TlRwYk1pdzVORjE5TEhzMU9sc3lMREkxWFN3eE5EcGJNaXd5TlYwc01UVTZXeklzTWpWZExERTVPbHN5TERJMVhTd3lPVHBiTWl3eU5WMHNNelE2V3pJc01qVmRMRE01T2xzeUxESTFYU3cwTkRwYk1pd3lOVjBzTkRjNld6SXNNalZkTERRNE9sc3lMREkxWFN3MU1UcGJNaXd5TlYwc05UVTZXeklzTWpWZExEWXdPbHN5TERJMVhYMHNlekl3T2preUxEY3lPbHN4TERNMVhTdzNPRG95Tml3M09Ub3lOeXc0TURwYk1Td3lPRjBzT0RFNld6RXNNamxkTERneU9sc3hMRE13WFN3NE16cGJNU3d6TVYwc09EUTZXekVzTXpKZExEZzFPbHN4TERNMFhTdzROam96TTMwc2V6SXdPamMwTERNeE9qa3pMRE16T2xzeUxEWXdYU3cyTXpvNU5DdzJORG8zTlN3Mk5UcGJNU3cwTTEwc05qazZPVFVzTnpBNk56WXNOekU2Tnpjc056STZXekVzTnpoZExEYzFPbHN5TERZd1hTdzNPRG95Tml3M09Ub3lOeXc0TURwYk1Td3lPRjBzT0RFNld6RXNNamxkTERneU9sc3hMRE13WFN3NE16cGJNU3d6TVYwc09EUTZXekVzTXpKZExEZzFPbHN4TERNMFhTdzROam96TTMwc2V6SXdPamMwTERNek9sc3lMRFkyWFN3ek5qbzVOaXcyTXpvNU55dzJORG8zTlN3Mk5UcGJNU3cwTTEwc05qazZPVGdzTnpBNk56WXNOekU2Tnpjc056STZXekVzTnpoZExEYzFPbHN5TERZMlhTdzNPRG95Tml3M09Ub3lOeXc0TURwYk1Td3lPRjBzT0RFNld6RXNNamxkTERneU9sc3hMRE13WFN3NE16cGJNU3d6TVYwc09EUTZXekVzTXpKZExEZzFPbHN4TERNMFhTdzROam96TTMwc2V6SXdPamMwTERJeU9qazVMREl6T2xzeUxEVXlYU3cyTXpveE1EQXNOalE2TnpVc05qVTZXekVzTkROZExEWTVPakV3TVN3M01EbzNOaXczTVRvM055dzNNanBiTVN3M09GMHNOemc2TWpZc056azZNamNzT0RBNld6RXNNamhkTERneE9sc3hMREk1WFN3NE1qcGJNU3d6TUYwc09ETTZXekVzTXpGZExEZzBPbHN4TERNeVhTdzROVHBiTVN3ek5GMHNPRFk2TXpOOUxIc3lNRG8zTkN3ek16cGJNaXc1TWwwc05qSTZNVEF5TERZek9qRXdNeXcyTkRvM05TdzJOVHBiTVN3ME0xMHNOams2TVRBMExEY3dPamMyTERjeE9qYzNMRGN5T2xzeExEYzRYU3czT0RveU5pdzNPVG95Tnl3NE1EcGJNU3d5T0Ywc09ERTZXekVzTWpsZExEZ3lPbHN4TERNd1hTdzRNenBiTVN3ek1WMHNPRFE2V3pFc016SmRMRGcxT2xzeExETTBYU3c0Tmpvek0zMHNlek16T2xzeExERXdOVjE5TEhzek16cGJNaXczT1Ywc05qVTZXeklzTnpsZExEY3lPbHN5TERjNVhTdzRNRHBiTWl3M09WMHNPREU2V3pJc056bGRMRGd5T2xzeUxEYzVYU3c0TXpwYk1pdzNPVjBzT0RRNld6SXNOemxkTERnMU9sc3lMRGM1WFgwc2V6TXpPbHN5TERneFhYMHNlekl6T2xzeUxESTNYU3d6TXpwYk1pd3lOMTBzTlRRNld6SXNNamRkTERZMU9sc3lMREkzWFN3Mk9EcGJNaXd5TjEwc056STZXeklzTWpkZExEYzFPbHN5TERJM1hTdzRNRHBiTWl3eU4xMHNPREU2V3pJc01qZGRMRGd5T2xzeUxESTNYU3c0TXpwYk1pd3lOMTBzT0RRNld6SXNNamRkTERnMU9sc3lMREkzWFgwc2V6SXpPbHN5TERJNFhTd3pNenBiTWl3eU9GMHNOVFE2V3pJc01qaGRMRFkxT2xzeUxESTRYU3cyT0RwYk1pd3lPRjBzTnpJNld6SXNNamhkTERjMU9sc3lMREk0WFN3NE1EcGJNaXd5T0Ywc09ERTZXeklzTWpoZExEZ3lPbHN5TERJNFhTdzRNenBiTWl3eU9GMHNPRFE2V3pJc01qaGRMRGcxT2xzeUxESTRYWDBzZXpJek9sc3lMRE13WFN3ek16cGJNaXd6TUYwc05UUTZXeklzTXpCZExEWTRPbHN5TERNd1hTdzNNVG94TURZc056STZXekVzTVRBM1hTdzNOVHBiTWl3ek1GMTlMSHN5TXpwYk1pdzVPRjBzTXpNNld6SXNPVGhkTERVME9sc3lMRGs0WFN3Mk9EcGJNaXc1T0Ywc056STZXeklzT1RoZExEYzFPbHN5TERrNFhYMHNlekl6T2xzeUxEUTFYU3d6TXpwYk1pdzBOVjBzTlRRNld6SXNORFZkTERZMU9sc3lMRFExWFN3Mk9EcGJNaXcwTlYwc056STZXeklzTkRWZExEY3pPbHN4TERFd09GMHNOelU2V3pJc05EVmRMRGd3T2xzeUxEUTFYU3c0TVRwYk1pdzBOVjBzT0RJNld6SXNORFZkTERnek9sc3lMRFExWFN3NE5EcGJNaXcwTlYwc09EVTZXeklzTkRWZExEZzNPbHN5TERRMVhYMHNlekl6T2xzeUxEUTBYU3d6TXpwYk1pdzBORjBzTlRRNld6SXNORFJkTERZMU9sc3lMRFEwWFN3Mk9EcGJNaXcwTkYwc056STZXeklzTkRSZExEYzFPbHN5TERRMFhTdzRNRHBiTWl3ME5GMHNPREU2V3pJc05EUmRMRGd5T2xzeUxEUTBYU3c0TXpwYk1pdzBORjBzT0RRNld6SXNORFJkTERnMU9sc3lMRFEwWFN3NE56cGJNaXcwTkYxOUxIczFORHBiTVN3eE1EbGRmU3g3TlRRNld6SXNPRE5kTERZMU9sc3lMRGd6WFN3M01qcGJNaXc0TTEwc09EQTZXeklzT0ROZExEZ3hPbHN5TERnelhTdzRNanBiTWl3NE0xMHNPRE02V3pJc09ETmRMRGcwT2xzeUxEZ3pYU3c0TlRwYk1pdzRNMTE5TEhzMU5EcGJNaXc0TlYxOUxIczFPbHN5TERFelhTd3hORHBiTWl3eE0xMHNNVFU2V3pJc01UTmRMREU1T2xzeUxERXpYU3d5T1RwYk1pd3hNMTBzTXpRNld6SXNNVE5kTERNNU9sc3lMREV6WFN3ME5EcGJNaXd4TTEwc05EYzZXeklzTVROZExEUTRPbHN5TERFelhTdzFNVHBiTWl3eE0xMHNOVFU2V3pJc01UTmRMRFl3T2xzeUxERXpYWDBzZXpNNE9qVTFMRE01T2xzeExEVTNYU3cwTXpvMU5pdzBORHBiTVN3MU9GMHNORFU2TVRFeExEUTJPakV4TUN3ME56cGJNaXczTmwxOUxIc3pNenBiTWl3M01GMHNOREE2TVRFeUxEWTFPbHN5TERjd1hTdzNNanBiTWl3M01GMHNOelU2V3pJc056QmRMRGd3T2xzeUxEY3dYU3c0TVRwYk1pdzNNRjBzT0RJNld6SXNOekJkTERnek9sc3lMRGN3WFN3NE5EcGJNaXczTUYwc09EVTZXeklzTnpCZGZTeDdORGM2V3pJc01UaGRmU3g3TlRwYk1pd3hORjBzTVRRNld6SXNNVFJkTERFMU9sc3lMREUwWFN3eE9UcGJNaXd4TkYwc01qazZXeklzTVRSZExETTBPbHN5TERFMFhTd3pPVHBiTWl3eE5GMHNORFE2V3pJc01UUmRMRFEzT2xzeUxERTBYU3cwT0RwYk1pd3hORjBzTlRFNld6SXNNVFJkTERVMU9sc3lMREUwWFN3Mk1EcGJNaXd4TkYxOUxIc3pNenBiTVN3eE1UTmRmU3g3TXpNNld6SXNPRGRkTERZMU9sc3lMRGczWFN3M01qcGJNaXc0TjEwc09EQTZXeklzT0RkZExEZ3hPbHN5TERnM1hTdzRNanBiTWl3NE4xMHNPRE02V3pJc09EZGRMRGcwT2xzeUxEZzNYU3c0TlRwYk1pdzROMTE5TEhzek16cGJNaXc0T1YxOUxIc3lNRG8zTkN3Mk16b3hNVFVzTmpRNk56VXNOalU2V3pFc05ETmRMRFkzT2pFeE5DdzJPRHBiTWl3NU5sMHNOams2TVRFMkxEY3dPamMyTERjeE9qYzNMRGN5T2xzeExEYzRYU3czT0RveU5pdzNPVG95Tnl3NE1EcGJNU3d5T0Ywc09ERTZXekVzTWpsZExEZ3lPbHN4TERNd1hTdzRNenBiTVN3ek1WMHNPRFE2V3pFc016SmRMRGcxT2xzeExETTBYU3c0Tmpvek0zMHNlek16T2xzeExERXhOMTE5TEhzek1qb3hNVGdzTXpNNld6SXNOakpkTERjME9qRXhPU3czTlRwYk1Td3hNakJkZlN4N016TTZXeklzTlRsZExEWTFPbHN5TERVNVhTdzNNanBiTWl3MU9WMHNOelU2V3pJc05UbGRMRGd3T2xzeUxEVTVYU3c0TVRwYk1pdzFPVjBzT0RJNld6SXNOVGxkTERnek9sc3lMRFU1WFN3NE5EcGJNaXcxT1Ywc09EVTZXeklzTlRsZGZTeDdNek02V3pJc05qRmRMRGMxT2xzeUxEWXhYWDBzZXpNek9sc3lMRFk0WFN3ek56b3hNakVzTnpRNk1USXlMRGMxT2xzeExERXlNRjE5TEhzek16cGJNaXcyTlYwc05qVTZXeklzTmpWZExEY3lPbHN5TERZMVhTdzNOVHBiTWl3Mk5WMHNPREE2V3pJc05qVmRMRGd4T2xzeUxEWTFYU3c0TWpwYk1pdzJOVjBzT0RNNld6SXNOalZkTERnME9sc3lMRFkxWFN3NE5UcGJNaXcyTlYxOUxIc3pNenBiTWl3Mk4xMHNOelU2V3pJc05qZGRmU3g3TWpNNld6RXNNVEl6WFgwc2V6SXpPbHN5TERVeFhTdzJOVHBiTWl3MU1WMHNOekk2V3pJc05URmRMRGd3T2xzeUxEVXhYU3c0TVRwYk1pdzFNVjBzT0RJNld6SXNOVEZkTERnek9sc3lMRFV4WFN3NE5EcGJNaXcxTVYwc09EVTZXeklzTlRGZGZTeDdNak02V3pJc05UTmRmU3g3TXpNNld6RXNNVEkwWFgwc2V6TXpPbHN5TERreFhTdzJOVHBiTWl3NU1WMHNOekk2V3pJc09URmRMRGd3T2xzeUxEa3hYU3c0TVRwYk1pdzVNVjBzT0RJNld6SXNPVEZkTERnek9sc3lMRGt4WFN3NE5EcGJNaXc1TVYwc09EVTZXeklzT1RGZGZTeDdNek02V3pJc09UTmRmU3g3TlRwYk1pd3lNbDBzTVRRNld6SXNNakpkTERFMU9sc3lMREl5WFN3eE9UcGJNaXd5TWwwc01qazZXeklzTWpKZExETTBPbHN5TERJeVhTd3pPVHBiTWl3eU1sMHNORFE2V3pJc01qSmRMRFEzT2xzeUxESXlYU3cwT0RwYk1pd3lNbDBzTlRFNld6SXNNakpkTERVMU9sc3lMREl5WFN3Mk1EcGJNaXd5TWwxOUxIc3lNenBiTWl3NU9WMHNNek02V3pJc09UbGRMRFUwT2xzeUxEazVYU3cyT0RwYk1pdzVPVjBzTnpJNld6SXNPVGxkTERjMU9sc3lMRGs1WFgwc2V6Y3pPbHN4TERFd09GMTlMSHN5TURvM05DdzJNem94TWpVc05qUTZOelVzTmpVNld6RXNORE5kTERjeU9sc3hMRE0xWFN3M09Eb3lOaXczT1RveU55dzRNRHBiTVN3eU9GMHNPREU2V3pFc01qbGRMRGd5T2xzeExETXdYU3c0TXpwYk1Td3pNVjBzT0RRNld6RXNNekpkTERnMU9sc3hMRE0wWFN3NE5qb3pNMzBzZXpVNld6SXNNak5kTERFME9sc3lMREl6WFN3eE5UcGJNaXd5TTEwc01UazZXeklzTWpOZExESTVPbHN5TERJelhTd3pORHBiTWl3eU0xMHNNems2V3pJc01qTmRMRFEwT2xzeUxESXpYU3cwTnpwYk1pd3lNMTBzTkRnNld6SXNNak5kTERVeE9sc3lMREl6WFN3MU5UcGJNaXd5TTEwc05qQTZXeklzTWpOZGZTeDdORGM2V3pJc01UbGRmU3g3TkRjNld6SXNOemRkZlN4N01qQTZOelFzTXpNNld6SXNOekpkTERReE9qRXlOaXcyTXpveE1qY3NOalE2TnpVc05qVTZXekVzTkROZExEWTVPakV5T0N3M01EbzNOaXczTVRvM055dzNNanBiTVN3M09GMHNOelU2V3pJc056SmRMRGM0T2pJMkxEYzVPakkzTERnd09sc3hMREk0WFN3NE1UcGJNU3d5T1Ywc09ESTZXekVzTXpCZExEZ3pPbHN4TERNeFhTdzRORHBiTVN3ek1sMHNPRFU2V3pFc016UmRMRGcyT2pNemZTeDdOVHBiTWl3eU5GMHNNVFE2V3pJc01qUmRMREUxT2xzeUxESTBYU3d4T1RwYk1pd3lORjBzTWprNld6SXNNalJkTERNME9sc3lMREkwWFN3ek9UcGJNaXd5TkYwc05EUTZXeklzTWpSZExEUTNPbHN5TERJMFhTdzBPRHBiTWl3eU5GMHNOVEU2V3pJc01qUmRMRFUxT2xzeUxESTBYU3cyTURwYk1pd3lORjE5TEhzMk9EcGJNU3d4TWpsZGZTeDdOalU2V3pJc09UVmRMRFk0T2xzeUxEazFYU3czTWpwYk1pdzVOVjBzT0RBNld6SXNPVFZkTERneE9sc3lMRGsxWFN3NE1qcGJNaXc1TlYwc09ETTZXeklzT1RWZExEZzBPbHN5TERrMVhTdzROVHBiTWl3NU5WMTlMSHMyT0RwYk1pdzVOMTE5TEhzMU9sc3lMREl4WFN3eE5EcGJNaXd5TVYwc01UVTZXeklzTWpGZExERTVPbHN5TERJeFhTd3lPVHBiTWl3eU1WMHNNelE2V3pJc01qRmRMRE01T2xzeUxESXhYU3cwTkRwYk1pd3lNVjBzTkRjNld6SXNNakZkTERRNE9sc3lMREl4WFN3MU1UcGJNaXd5TVYwc05UVTZXeklzTWpGZExEWXdPbHN5TERJeFhYMHNlek16T2xzeExERXpNRjE5TEhzek16cGJNaXcyTTExOUxIczNNanBiTVN3eE16SmRMRGMyT2pFek1YMHNlek16T2xzeExERXpNMTE5TEhzek16cGJNaXcyT1YxOUxIc3hOVHBiTWl3eE1sMHNNVGc2V3pJc01USmRmU3g3TVRRNld6SXNNalpkTERFMU9sc3lMREkyWFN3eE9UcGJNaXd5Tmwwc01qazZXeklzTWpaZExETTBPbHN5TERJMlhTdzBOenBiTWl3eU5sMHNORGc2V3pJc01qWmRMRFV4T2xzeUxESTJYU3cxTlRwYk1pd3lObDBzTmpBNld6SXNNalpkZlN4N01qTTZXeklzTXpGZExETXpPbHN5TERNeFhTdzFORHBiTWl3ek1WMHNOamc2V3pJc016RmRMRGN5T2xzeUxETXhYU3czTlRwYk1pd3pNVjE5TEhzek16cGJNaXczTkYwc05ESTZNVE0wTERjME9qRXpOU3czTlRwYk1Td3hNakJkZlN4N016TTZXeklzTnpGZExEWTFPbHN5TERjeFhTdzNNanBiTWl3M01WMHNOelU2V3pJc056RmRMRGd3T2xzeUxEY3hYU3c0TVRwYk1pdzNNVjBzT0RJNld6SXNOekZkTERnek9sc3lMRGN4WFN3NE5EcGJNaXczTVYwc09EVTZXeklzTnpGZGZTeDdNek02V3pJc056TmRMRGMxT2xzeUxEY3pYWDBzZXpJek9sc3lMREk1WFN3ek16cGJNaXd5T1Ywc05UUTZXeklzTWpsZExEWTFPbHN5TERJNVhTdzJPRHBiTWl3eU9WMHNOekk2V3pJc01qbGRMRGMxT2xzeUxESTVYU3c0TURwYk1pd3lPVjBzT0RFNld6SXNNamxkTERneU9sc3lMREk1WFN3NE16cGJNaXd5T1Ywc09EUTZXeklzTWpsZExEZzFPbHN5TERJNVhYMHNlekUwT2xzeUxERTFYU3d4TlRwYk1pd3hOVjBzTVRrNld6SXNNVFZkTERJNU9sc3lMREUxWFN3ek5EcGJNaXd4TlYwc016azZXeklzTVRWZExEUTBPbHN5TERFMVhTdzBOenBiTWl3eE5WMHNORGc2V3pJc01UVmRMRFV4T2xzeUxERTFYU3cxTlRwYk1pd3hOVjBzTmpBNld6SXNNVFZkZlN4N056STZXekVzTVRNM1hTdzNOenBiTVN3eE16WmRmU3g3TnpJNld6SXNNVEF3WFN3M056cGJNaXd4TURCZGZTeDdNVFE2V3pJc01UWmRMREUxT2xzeUxERTJYU3d4T1RwYk1pd3hObDBzTWprNld6SXNNVFpkTERNME9sc3lMREUyWFN3ME5EcGJNaXd4Tmwwc05EYzZXeklzTVRaZExEUTRPbHN5TERFMlhTdzFNVHBiTWl3eE5sMHNOVFU2V3pJc01UWmRMRFl3T2xzeUxERTJYWDBzZXpNek9sc3hMREV6T0YxOUxIc3pNenBiTWl3M05WMTlMSHN6TXpwYk1pd3pNbDE5TEhzM01qcGJNaXd4TURGZExEYzNPbHN5TERFd01WMTlMSHN4TkRwYk1pd3hOMTBzTVRVNld6SXNNVGRkTERFNU9sc3lMREUzWFN3eU9UcGJNaXd4TjEwc016UTZXeklzTVRkZExETTVPbHN5TERFM1hTdzBORHBiTWl3eE4xMHNORGM2V3pJc01UZGRMRFE0T2xzeUxERTNYU3cxTVRwYk1pd3hOMTBzTlRVNld6SXNNVGRkTERZd09sc3lMREUzWFgxZExGeHVaR1ZtWVhWc2RFRmpkR2x2Ym5NNklIczBPbHN5TERGZExEVTBPbHN5TERVMVhTdzFOanBiTWl3eU1GMHNOakE2V3pJc05UZGRMRGN6T2xzeUxEZ3hYU3c0TWpwYk1pdzROVjBzT0RZNld6SXNNVGhkTERrd09sc3lMRGc1WFN3eE1ERTZXeklzTlROZExERXdORHBiTWl3NU0xMHNNVEV3T2xzeUxERTVYU3d4TVRFNld6SXNOemRkTERFeE5qcGJNaXc1TjEwc01URTVPbHN5TERZelhTd3hNakk2V3pJc05qbGRMREV6TlRwYk1pdzNOVjBzTVRNMk9sc3lMRE15WFgwc1hHNXdZWEp6WlVWeWNtOXlPaUJtZFc1amRHbHZiaUJ3WVhKelpVVnljbTl5SUNoemRISXNJR2hoYzJncElIdGNiaUFnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvYzNSeUtUdGNibjBzWEc1d1lYSnpaVG9nWm5WdVkzUnBiMjRnY0dGeWMyVW9hVzV3ZFhRcElIdGNiaUFnSUNCMllYSWdjMlZzWmlBOUlIUm9hWE1zSUhOMFlXTnJJRDBnV3pCZExDQjJjM1JoWTJzZ1BTQmJiblZzYkYwc0lHeHpkR0ZqYXlBOUlGdGRMQ0IwWVdKc1pTQTlJSFJvYVhNdWRHRmliR1VzSUhsNWRHVjRkQ0E5SUZ3aVhDSXNJSGw1YkdsdVpXNXZJRDBnTUN3Z2VYbHNaVzVuSUQwZ01Dd2djbVZqYjNabGNtbHVaeUE5SURBc0lGUkZVbEpQVWlBOUlESXNJRVZQUmlBOUlERTdYRzRnSUNBZ2RHaHBjeTVzWlhobGNpNXpaWFJKYm5CMWRDaHBibkIxZENrN1hHNGdJQ0FnZEdocGN5NXNaWGhsY2k1NWVTQTlJSFJvYVhNdWVYazdYRzRnSUNBZ2RHaHBjeTU1ZVM1c1pYaGxjaUE5SUhSb2FYTXViR1Y0WlhJN1hHNGdJQ0FnZEdocGN5NTVlUzV3WVhKelpYSWdQU0IwYUdsek8xeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ2RHaHBjeTVzWlhobGNpNTVlV3hzYjJNZ1BUMGdYQ0oxYm1SbFptbHVaV1JjSWlsY2JpQWdJQ0FnSUNBZ2RHaHBjeTVzWlhobGNpNTVlV3hzYjJNZ1BTQjdmVHRjYmlBZ0lDQjJZWElnZVhsc2IyTWdQU0IwYUdsekxteGxlR1Z5TG5sNWJHeHZZenRjYmlBZ0lDQnNjM1JoWTJzdWNIVnphQ2g1ZVd4dll5azdYRzRnSUNBZ2RtRnlJSEpoYm1kbGN5QTlJSFJvYVhNdWJHVjRaWEl1YjNCMGFXOXVjeUFtSmlCMGFHbHpMbXhsZUdWeUxtOXdkR2x2Ym5NdWNtRnVaMlZ6TzF4dUlDQWdJR2xtSUNoMGVYQmxiMllnZEdocGN5NTVlUzV3WVhKelpVVnljbTl5SUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lwWEc0Z0lDQWdJQ0FnSUhSb2FYTXVjR0Z5YzJWRmNuSnZjaUE5SUhSb2FYTXVlWGt1Y0dGeWMyVkZjbkp2Y2p0Y2JpQWdJQ0JtZFc1amRHbHZiaUJ3YjNCVGRHRmpheWh1S1NCN1hHNGdJQ0FnSUNBZ0lITjBZV05yTG14bGJtZDBhQ0E5SUhOMFlXTnJMbXhsYm1kMGFDQXRJRElnS2lCdU8xeHVJQ0FnSUNBZ0lDQjJjM1JoWTJzdWJHVnVaM1JvSUQwZ2RuTjBZV05yTG14bGJtZDBhQ0F0SUc0N1hHNGdJQ0FnSUNBZ0lHeHpkR0ZqYXk1c1pXNW5kR2dnUFNCc2MzUmhZMnN1YkdWdVozUm9JQzBnYmp0Y2JpQWdJQ0I5WEc0Z0lDQWdablZ1WTNScGIyNGdiR1Y0S0NrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnZEc5clpXNDdYRzRnSUNBZ0lDQWdJSFJ2YTJWdUlEMGdjMlZzWmk1c1pYaGxjaTVzWlhnb0tTQjhmQ0F4TzF4dUlDQWdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlIUnZhMlZ1SUNFOVBTQmNJbTUxYldKbGNsd2lLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBiMnRsYmlBOUlITmxiR1l1YzNsdFltOXNjMTliZEc5clpXNWRJSHg4SUhSdmEyVnVPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYjJ0bGJqdGNiaUFnSUNCOVhHNGdJQ0FnZG1GeUlITjViV0p2YkN3Z2NISmxSWEp5YjNKVGVXMWliMndzSUhOMFlYUmxMQ0JoWTNScGIyNHNJR0VzSUhJc0lIbDVkbUZzSUQwZ2UzMHNJSEFzSUd4bGJpd2dibVYzVTNSaGRHVXNJR1Y0Y0dWamRHVmtPMXh1SUNBZ0lIZG9hV3hsSUNoMGNuVmxLU0I3WEc0Z0lDQWdJQ0FnSUhOMFlYUmxJRDBnYzNSaFkydGJjM1JoWTJzdWJHVnVaM1JvSUMwZ01WMDdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbVJsWm1GMWJIUkJZM1JwYjI1elczTjBZWFJsWFNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWVdOMGFXOXVJRDBnZEdocGN5NWtaV1poZFd4MFFXTjBhVzl1YzF0emRHRjBaVjA3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYzNsdFltOXNJRDA5UFNCdWRXeHNJSHg4SUhSNWNHVnZaaUJ6ZVcxaWIyd2dQVDBnWENKMWJtUmxabWx1WldSY0lpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE41YldKdmJDQTlJR3hsZUNncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZV04wYVc5dUlEMGdkR0ZpYkdWYmMzUmhkR1ZkSUNZbUlIUmhZbXhsVzNOMFlYUmxYVnR6ZVcxaWIyeGRPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDaDBlWEJsYjJZZ1lXTjBhVzl1SUQwOVBTQmNJblZ1WkdWbWFXNWxaRndpSUh4OElDRmhZM1JwYjI0dWJHVnVaM1JvSUh4OElDRmhZM1JwYjI1Yk1GMHBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJsY25KVGRISWdQU0JjSWx3aU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRnlaV052ZG1WeWFXNW5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWlhod1pXTjBaV1FnUFNCYlhUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm1iM0lnS0hBZ2FXNGdkR0ZpYkdWYmMzUmhkR1ZkS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NTBaWEp0YVc1aGJITmZXM0JkSUNZbUlIQWdQaUF5S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCbGVIQmxZM1JsWkM1d2RYTm9LRndpSjF3aUlDc2dkR2hwY3k1MFpYSnRhVzVoYkhOZlczQmRJQ3NnWENJblhDSXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWJHVjRaWEl1YzJodmQxQnZjMmwwYVc5dUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdWeWNsTjBjaUE5SUZ3aVVHRnljMlVnWlhKeWIzSWdiMjRnYkdsdVpTQmNJaUFySUNoNWVXeHBibVZ1YnlBcklERXBJQ3NnWENJNlhGeHVYQ0lnS3lCMGFHbHpMbXhsZUdWeUxuTm9iM2RRYjNOcGRHbHZiaWdwSUNzZ1hDSmNYRzVGZUhCbFkzUnBibWNnWENJZ0t5QmxlSEJsWTNSbFpDNXFiMmx1S0Z3aUxDQmNJaWtnS3lCY0lpd2daMjkwSUNkY0lpQXJJQ2gwYUdsekxuUmxjbTFwYm1Gc2MxOWJjM2x0WW05c1hTQjhmQ0J6ZVcxaWIyd3BJQ3NnWENJblhDSTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWlhKeVUzUnlJRDBnWENKUVlYSnpaU0JsY25KdmNpQnZiaUJzYVc1bElGd2lJQ3NnS0hsNWJHbHVaVzV2SUNzZ01Ta2dLeUJjSWpvZ1ZXNWxlSEJsWTNSbFpDQmNJaUFySUNoemVXMWliMndnUFQwZ01UOWNJbVZ1WkNCdlppQnBibkIxZEZ3aU9sd2lKMXdpSUNzZ0tIUm9hWE11ZEdWeWJXbHVZV3h6WDF0emVXMWliMnhkSUh4OElITjViV0p2YkNrZ0t5QmNJaWRjSWlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11Y0dGeWMyVkZjbkp2Y2lobGNuSlRkSElzSUh0MFpYaDBPaUIwYUdsekxteGxlR1Z5TG0xaGRHTm9MQ0IwYjJ0bGJqb2dkR2hwY3k1MFpYSnRhVzVoYkhOZlczTjViV0p2YkYwZ2ZId2djM2x0WW05c0xDQnNhVzVsT2lCMGFHbHpMbXhsZUdWeUxubDViR2x1Wlc1dkxDQnNiMk02SUhsNWJHOWpMQ0JsZUhCbFkzUmxaRG9nWlhod1pXTjBaV1I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9ZV04wYVc5dVd6QmRJR2x1YzNSaGJtTmxiMllnUVhKeVlYa2dKaVlnWVdOMGFXOXVMbXhsYm1kMGFDQStJREVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGNJbEJoY25ObElFVnljbTl5T2lCdGRXeDBhWEJzWlNCaFkzUnBiMjV6SUhCdmMzTnBZbXhsSUdGMElITjBZWFJsT2lCY0lpQXJJSE4wWVhSbElDc2dYQ0lzSUhSdmEyVnVPaUJjSWlBcklITjViV0p2YkNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjM2RwZEdOb0lDaGhZM1JwYjI1Yk1GMHBJSHRjYmlBZ0lDQWdJQ0FnWTJGelpTQXhPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2MzUmhZMnN1Y0hWemFDaHplVzFpYjJ3cE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZG5OMFlXTnJMbkIxYzJnb2RHaHBjeTVzWlhobGNpNTVlWFJsZUhRcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYkhOMFlXTnJMbkIxYzJnb2RHaHBjeTVzWlhobGNpNTVlV3hzYjJNcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSaFkyc3VjSFZ6YUNoaFkzUnBiMjViTVYwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNsdFltOXNJRDBnYm5Wc2JEdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDZ2hjSEpsUlhKeWIzSlRlVzFpYjJ3cElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVlV3hsYm1jZ1BTQjBhR2x6TG14bGVHVnlMbmw1YkdWdVp6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVlWFJsZUhRZ1BTQjBhR2x6TG14bGVHVnlMbmw1ZEdWNGREdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVlV3hwYm1WdWJ5QTlJSFJvYVhNdWJHVjRaWEl1ZVhsc2FXNWxibTg3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZVhsc2IyTWdQU0IwYUdsekxteGxlR1Z5TG5sNWJHeHZZenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NtVmpiM1psY21sdVp5QStJREFwWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxZMjkyWlhKcGJtY3RMVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2MzbHRZbTlzSUQwZ2NISmxSWEp5YjNKVGVXMWliMnc3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0hKbFJYSnliM0pUZVcxaWIyd2dQU0J1ZFd4c08xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lHTmhjMlVnTWpwY2JpQWdJQ0FnSUNBZ0lDQWdJR3hsYmlBOUlIUm9hWE11Y0hKdlpIVmpkR2x2Ym5OZlcyRmpkR2x2YmxzeFhWMWJNVjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjVlWFpoYkM0a0lEMGdkbk4wWVdOclczWnpkR0ZqYXk1c1pXNW5kR2dnTFNCc1pXNWRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2VYbDJZV3d1WHlRZ1BTQjdabWx5YzNSZmJHbHVaVG9nYkhOMFlXTnJXMnh6ZEdGamF5NXNaVzVuZEdnZ0xTQW9iR1Z1SUh4OElERXBYUzVtYVhKemRGOXNhVzVsTENCc1lYTjBYMnhwYm1VNklHeHpkR0ZqYTF0c2MzUmhZMnN1YkdWdVozUm9JQzBnTVYwdWJHRnpkRjlzYVc1bExDQm1hWEp6ZEY5amIyeDFiVzQ2SUd4emRHRmphMXRzYzNSaFkyc3ViR1Z1WjNSb0lDMGdLR3hsYmlCOGZDQXhLVjB1Wm1seWMzUmZZMjlzZFcxdUxDQnNZWE4wWDJOdmJIVnRiam9nYkhOMFlXTnJXMnh6ZEdGamF5NXNaVzVuZEdnZ0xTQXhYUzVzWVhOMFgyTnZiSFZ0Ym4wN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2NtRnVaMlZ6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2VYbDJZV3d1WHlRdWNtRnVaMlVnUFNCYmJITjBZV05yVzJ4emRHRmpheTVzWlc1bmRHZ2dMU0FvYkdWdUlIeDhJREVwWFM1eVlXNW5aVnN3WFN3Z2JITjBZV05yVzJ4emRHRmpheTVzWlc1bmRHZ2dMU0F4WFM1eVlXNW5aVnN4WFYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlJRDBnZEdocGN5NXdaWEptYjNKdFFXTjBhVzl1TG1OaGJHd29lWGwyWVd3c0lIbDVkR1Y0ZEN3Z2VYbHNaVzVuTENCNWVXeHBibVZ1Ynl3Z2RHaHBjeTU1ZVN3Z1lXTjBhVzl1V3pGZExDQjJjM1JoWTJzc0lHeHpkR0ZqYXlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RIbHdaVzltSUhJZ0lUMDlJRndpZFc1a1pXWnBibVZrWENJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NqdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoc1pXNHBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J6ZEdGamF5QTlJSE4wWVdOckxuTnNhV05sS0RBc0lDMHhJQ29nYkdWdUlDb2dNaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZG5OMFlXTnJJRDBnZG5OMFlXTnJMbk5zYVdObEtEQXNJQzB4SUNvZ2JHVnVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzYzNSaFkyc2dQU0JzYzNSaFkyc3VjMnhwWTJVb01Dd2dMVEVnS2lCc1pXNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSaFkyc3VjSFZ6YUNoMGFHbHpMbkJ5YjJSMVkzUnBiMjV6WDF0aFkzUnBiMjViTVYxZFd6QmRLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWnpkR0ZqYXk1d2RYTm9LSGw1ZG1Gc0xpUXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JITjBZV05yTG5CMWMyZ29lWGwyWVd3dVh5UXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JtVjNVM1JoZEdVZ1BTQjBZV0pzWlZ0emRHRmphMXR6ZEdGamF5NXNaVzVuZEdnZ0xTQXlYVjFiYzNSaFkydGJjM1JoWTJzdWJHVnVaM1JvSUMwZ01WMWRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MzUmhZMnN1Y0hWemFDaHVaWGRUZEdGMFpTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnWTJGelpTQXpPbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzU5WEc1OU8xeHVMeW9nU21semIyNGdaMlZ1WlhKaGRHVmtJR3hsZUdWeUlDb3ZYRzUyWVhJZ2JHVjRaWElnUFNBb1puVnVZM1JwYjI0b0tYdGNiblpoY2lCc1pYaGxjaUE5SUNoN1JVOUdPakVzWEc1d1lYSnpaVVZ5Y205eU9tWjFibU4wYVc5dUlIQmhjbk5sUlhKeWIzSW9jM1J5TENCb1lYTm9LU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG5sNUxuQmhjbk5sY2lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NTVlUzV3WVhKelpYSXVjR0Z5YzJWRmNuSnZjaWh6ZEhJc0lHaGhjMmdwTzF4dUlDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtITjBjaWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5TEZ4dWMyVjBTVzV3ZFhRNlpuVnVZM1JwYjI0Z0tHbHVjSFYwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WDJsdWNIVjBJRDBnYVc1d2RYUTdYRzRnSUNBZ0lDQWdJSFJvYVhNdVgyMXZjbVVnUFNCMGFHbHpMbDlzWlhOeklEMGdkR2hwY3k1a2IyNWxJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJSFJvYVhNdWVYbHNhVzVsYm04Z1BTQjBhR2x6TG5sNWJHVnVaeUE5SURBN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZVhsMFpYaDBJRDBnZEdocGN5NXRZWFJqYUdWa0lEMGdkR2hwY3k1dFlYUmphQ0E5SUNjbk8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG1OdmJtUnBkR2x2YmxOMFlXTnJJRDBnV3lkSlRrbFVTVUZNSjEwN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZVhsc2JHOWpJRDBnZTJacGNuTjBYMnhwYm1VNk1TeG1hWEp6ZEY5amIyeDFiVzQ2TUN4c1lYTjBYMnhwYm1VNk1TeHNZWE4wWDJOdmJIVnRiam93ZlR0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdWIzQjBhVzl1Y3k1eVlXNW5aWE1wSUhSb2FYTXVlWGxzYkc5akxuSmhibWRsSUQwZ1d6QXNNRjA3WEc0Z0lDQWdJQ0FnSUhSb2FYTXViMlptYzJWMElEMGdNRHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnZlN4Y2JtbHVjSFYwT21aMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUdOb0lEMGdkR2hwY3k1ZmFXNXdkWFJiTUYwN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZVhsMFpYaDBJQ3M5SUdOb08xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5sNWJHVnVaeXNyTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbTltWm5ObGRDc3JPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtMWhkR05vSUNzOUlHTm9PMXh1SUNBZ0lDQWdJQ0IwYUdsekxtMWhkR05vWldRZ0t6MGdZMmc3WEc0Z0lDQWdJQ0FnSUhaaGNpQnNhVzVsY3lBOUlHTm9MbTFoZEdOb0tDOG9QenBjWEhKY1hHNC9mRnhjYmlrdUtpOW5LVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHeHBibVZ6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxubDViR2x1Wlc1dkt5czdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbmw1Ykd4dll5NXNZWE4wWDJ4cGJtVXJLenRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11ZVhsc2JHOWpMbXhoYzNSZlkyOXNkVzF1S3lzN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0hSb2FYTXViM0IwYVc5dWN5NXlZVzVuWlhNcElIUm9hWE11ZVhsc2JHOWpMbkpoYm1kbFd6RmRLeXM3WEc1Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVmYVc1d2RYUWdQU0IwYUdsekxsOXBibkIxZEM1emJHbGpaU2d4S1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdOb08xeHVJQ0FnSUgwc1hHNTFibkIxZERwbWRXNWpkR2x2YmlBb1kyZ3BJSHRjYmlBZ0lDQWdJQ0FnZG1GeUlHeGxiaUE5SUdOb0xteGxibWQwYUR0Y2JpQWdJQ0FnSUNBZ2RtRnlJR3hwYm1WeklEMGdZMmd1YzNCc2FYUW9MeWcvT2x4Y2NseGNiajk4WEZ4dUtTOW5LVHRjYmx4dUlDQWdJQ0FnSUNCMGFHbHpMbDlwYm5CMWRDQTlJR05vSUNzZ2RHaHBjeTVmYVc1d2RYUTdYRzRnSUNBZ0lDQWdJSFJvYVhNdWVYbDBaWGgwSUQwZ2RHaHBjeTU1ZVhSbGVIUXVjM1ZpYzNSeUtEQXNJSFJvYVhNdWVYbDBaWGgwTG14bGJtZDBhQzFzWlc0dE1TazdYRzRnSUNBZ0lDQWdJQzh2ZEdocGN5NTVlV3hsYm1jZ0xUMGdiR1Z1TzF4dUlDQWdJQ0FnSUNCMGFHbHpMbTltWm5ObGRDQXRQU0JzWlc0N1hHNGdJQ0FnSUNBZ0lIWmhjaUJ2YkdSTWFXNWxjeUE5SUhSb2FYTXViV0YwWTJndWMzQnNhWFFvTHlnL09seGNjbHhjYmo5OFhGeHVLUzluS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV0WVhSamFDQTlJSFJvYVhNdWJXRjBZMmd1YzNWaWMzUnlLREFzSUhSb2FYTXViV0YwWTJndWJHVnVaM1JvTFRFcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG0xaGRHTm9aV1FnUFNCMGFHbHpMbTFoZEdOb1pXUXVjM1ZpYzNSeUtEQXNJSFJvYVhNdWJXRjBZMmhsWkM1c1pXNW5kR2d0TVNrN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0d4cGJtVnpMbXhsYm1kMGFDMHhLU0IwYUdsekxubDViR2x1Wlc1dklDMDlJR3hwYm1WekxteGxibWQwYUMweE8xeHVJQ0FnSUNBZ0lDQjJZWElnY2lBOUlIUm9hWE11ZVhsc2JHOWpMbkpoYm1kbE8xeHVYRzRnSUNBZ0lDQWdJSFJvYVhNdWVYbHNiRzlqSUQwZ2UyWnBjbk4wWDJ4cGJtVTZJSFJvYVhNdWVYbHNiRzlqTG1acGNuTjBYMnhwYm1Vc1hHNGdJQ0FnSUNBZ0lDQWdiR0Z6ZEY5c2FXNWxPaUIwYUdsekxubDViR2x1Wlc1dkt6RXNYRzRnSUNBZ0lDQWdJQ0FnWm1seWMzUmZZMjlzZFcxdU9pQjBhR2x6TG5sNWJHeHZZeTVtYVhKemRGOWpiMngxYlc0c1hHNGdJQ0FnSUNBZ0lDQWdiR0Z6ZEY5amIyeDFiVzQ2SUd4cGJtVnpJRDljYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdLR3hwYm1WekxteGxibWQwYUNBOVBUMGdiMnhrVEdsdVpYTXViR1Z1WjNSb0lEOGdkR2hwY3k1NWVXeHNiMk11Wm1seWMzUmZZMjlzZFcxdUlEb2dNQ2tnS3lCdmJHUk1hVzVsYzF0dmJHUk1hVzVsY3k1c1pXNW5kR2dnTFNCc2FXNWxjeTVzWlc1bmRHaGRMbXhsYm1kMGFDQXRJR3hwYm1Weld6QmRMbXhsYm1kMGFEcGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTU1ZVd4c2IyTXVabWx5YzNSZlkyOXNkVzF1SUMwZ2JHVnVYRzRnSUNBZ0lDQWdJQ0FnZlR0Y2JseHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NXZjSFJwYjI1ekxuSmhibWRsY3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NTVlV3hzYjJNdWNtRnVaMlVnUFNCYmNsc3dYU3dnY2xzd1hTQXJJSFJvYVhNdWVYbHNaVzVuSUMwZ2JHVnVYVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnSUNCOUxGeHViVzl5WlRwbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdVgyMXZjbVVnUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3p0Y2JpQWdJQ0I5TEZ4dWJHVnpjenBtZFc1amRHbHZiaUFvYmlrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5WdWNIVjBLSFJvYVhNdWJXRjBZMmd1YzJ4cFkyVW9iaWtwTzF4dUlDQWdJSDBzWEc1d1lYTjBTVzV3ZFhRNlpuVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ2NHRnpkQ0E5SUhSb2FYTXViV0YwWTJobFpDNXpkV0p6ZEhJb01Dd2dkR2hwY3k1dFlYUmphR1ZrTG14bGJtZDBhQ0F0SUhSb2FYTXViV0YwWTJndWJHVnVaM1JvS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNod1lYTjBMbXhsYm1kMGFDQStJREl3SUQ4Z0p5NHVMaWM2SnljcElDc2djR0Z6ZEM1emRXSnpkSElvTFRJd0tTNXlaWEJzWVdObEtDOWNYRzR2Wnl3Z1hDSmNJaWs3WEc0Z0lDQWdmU3hjYm5Wd1kyOXRhVzVuU1c1d2RYUTZablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCMllYSWdibVY0ZENBOUlIUm9hWE11YldGMFkyZzdYRzRnSUNBZ0lDQWdJR2xtSUNodVpYaDBMbXhsYm1kMGFDQThJREl3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhoMElDczlJSFJvYVhNdVgybHVjSFYwTG5OMVluTjBjaWd3TENBeU1DMXVaWGgwTG14bGJtZDBhQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNodVpYaDBMbk4xWW5OMGNpZ3dMREl3S1Nzb2JtVjRkQzVzWlc1bmRHZ2dQaUF5TUNBL0lDY3VMaTRuT2ljbktTa3VjbVZ3YkdGalpTZ3ZYRnh1TDJjc0lGd2lYQ0lwTzF4dUlDQWdJSDBzWEc1emFHOTNVRzl6YVhScGIyNDZablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCMllYSWdjSEpsSUQwZ2RHaHBjeTV3WVhOMFNXNXdkWFFvS1R0Y2JpQWdJQ0FnSUNBZ2RtRnlJR01nUFNCdVpYY2dRWEp5WVhrb2NISmxMbXhsYm1kMGFDQXJJREVwTG1wdmFXNG9YQ0l0WENJcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NISmxJQ3NnZEdocGN5NTFjR052YldsdVowbHVjSFYwS0NrZ0t5QmNJbHhjYmx3aUlDc2dZeXRjSWw1Y0lqdGNiaUFnSUNCOUxGeHVibVY0ZERwbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbVJ2Ym1VcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxrVlBSanRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCcFppQW9JWFJvYVhNdVgybHVjSFYwS1NCMGFHbHpMbVJ2Ym1VZ1BTQjBjblZsTzF4dVhHNGdJQ0FnSUNBZ0lIWmhjaUIwYjJ0bGJpeGNiaUFnSUNBZ0lDQWdJQ0FnSUcxaGRHTm9MRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHVnRjRTFoZEdOb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnYVc1a1pYZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyd3NYRzRnSUNBZ0lDQWdJQ0FnSUNCc2FXNWxjenRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRjBhR2x6TGw5dGIzSmxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5sNWRHVjRkQ0E5SUNjbk8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXRZWFJqYUNBOUlDY25PMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhaaGNpQnlkV3hsY3lBOUlIUm9hWE11WDJOMWNuSmxiblJTZFd4bGN5Z3BPMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tIWmhjaUJwUFRBN2FTQThJSEoxYkdWekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBaVzF3VFdGMFkyZ2dQU0IwYUdsekxsOXBibkIxZEM1dFlYUmphQ2gwYUdsekxuSjFiR1Z6VzNKMWJHVnpXMmxkWFNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RHVnRjRTFoZEdOb0lDWW1JQ2doYldGMFkyZ2dmSHdnZEdWdGNFMWhkR05vV3pCZExteGxibWQwYUNBK0lHMWhkR05vV3pCZExteGxibWQwYUNrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRZWFJqYUNBOUlIUmxiWEJOWVhSamFEdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBibVJsZUNBOUlHazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NGMGFHbHpMbTl3ZEdsdmJuTXVabXhsZUNrZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tHMWhkR05vS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzYVc1bGN5QTlJRzFoZEdOb1d6QmRMbTFoZEdOb0tDOG9QenBjWEhKY1hHNC9mRnhjYmlrdUtpOW5LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hzYVc1bGN5a2dkR2hwY3k1NWVXeHBibVZ1YnlBclBTQnNhVzVsY3k1c1pXNW5kR2c3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5sNWJHeHZZeUE5SUh0bWFYSnpkRjlzYVc1bE9pQjBhR2x6TG5sNWJHeHZZeTVzWVhOMFgyeHBibVVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1lYTjBYMnhwYm1VNklIUm9hWE11ZVhsc2FXNWxibThyTVN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHWnBjbk4wWDJOdmJIVnRiam9nZEdocGN5NTVlV3hzYjJNdWJHRnpkRjlqYjJ4MWJXNHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWVhOMFgyTnZiSFZ0YmpvZ2JHbHVaWE1nUHlCc2FXNWxjMXRzYVc1bGN5NXNaVzVuZEdndE1WMHViR1Z1WjNSb0xXeHBibVZ6VzJ4cGJtVnpMbXhsYm1kMGFDMHhYUzV0WVhSamFDZ3ZYRnh5UDF4Y2JqOHZLVnN3WFM1c1pXNW5kR2dnT2lCMGFHbHpMbmw1Ykd4dll5NXNZWE4wWDJOdmJIVnRiaUFySUcxaGRHTm9XekJkTG14bGJtZDBhSDA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5sNWRHVjRkQ0FyUFNCdFlYUmphRnN3WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWJXRjBZMmdnS3owZ2JXRjBZMmhiTUYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtMWhkR05vWlhNZ1BTQnRZWFJqYUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWVYbHNaVzVuSUQwZ2RHaHBjeTU1ZVhSbGVIUXViR1Z1WjNSb08xeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11YjNCMGFXOXVjeTV5WVc1blpYTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxubDViR3h2WXk1eVlXNW5aU0E5SUZ0MGFHbHpMbTltWm5ObGRDd2dkR2hwY3k1dlptWnpaWFFnS3owZ2RHaHBjeTU1ZVd4bGJtZGRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWZiVzl5WlNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1ZmFXNXdkWFFnUFNCMGFHbHpMbDlwYm5CMWRDNXpiR2xqWlNodFlYUmphRnN3WFM1c1pXNW5kR2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1dFlYUmphR1ZrSUNzOUlHMWhkR05vV3pCZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEc5clpXNGdQU0IwYUdsekxuQmxjbVp2Y20xQlkzUnBiMjR1WTJGc2JDaDBhR2x6TENCMGFHbHpMbmw1TENCMGFHbHpMQ0J5ZFd4bGMxdHBibVJsZUYwc2RHaHBjeTVqYjI1a2FYUnBiMjVUZEdGamExdDBhR2x6TG1OdmJtUnBkR2x2YmxOMFlXTnJMbXhsYm1kMGFDMHhYU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NWtiMjVsSUNZbUlIUm9hWE11WDJsdWNIVjBLU0IwYUdsekxtUnZibVVnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2gwYjJ0bGJpa2djbVYwZFhKdUlIUnZhMlZ1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdaV3h6WlNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdVgybHVjSFYwSUQwOVBTQmNJbHdpS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1RlQwWTdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NXdZWEp6WlVWeWNtOXlLQ2RNWlhocFkyRnNJR1Z5Y205eUlHOXVJR3hwYm1VZ0p5c29kR2hwY3k1NWVXeHBibVZ1YnlzeEtTc25MaUJWYm5KbFkyOW5ibWw2WldRZ2RHVjRkQzVjWEc0bkszUm9hWE11YzJodmQxQnZjMmwwYVc5dUtDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUh0MFpYaDBPaUJjSWx3aUxDQjBiMnRsYmpvZ2JuVnNiQ3dnYkdsdVpUb2dkR2hwY3k1NWVXeHBibVZ1YjMwcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZTeGNibXhsZURwbWRXNWpkR2x2YmlCc1pYZ2dLQ2tnZTF4dUlDQWdJQ0FnSUNCMllYSWdjaUE5SUhSb2FYTXVibVY0ZENncE8xeHVJQ0FnSUNBZ0lDQnBaaUFvZEhsd1pXOW1JSElnSVQwOUlDZDFibVJsWm1sdVpXUW5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2NqdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxteGxlQ2dwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlN4Y2JtSmxaMmx1T21aMWJtTjBhVzl1SUdKbFoybHVJQ2hqYjI1a2FYUnBiMjRwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVqYjI1a2FYUnBiMjVUZEdGamF5NXdkWE5vS0dOdmJtUnBkR2x2YmlrN1hHNGdJQ0FnZlN4Y2JuQnZjRk4wWVhSbE9tWjFibU4wYVc5dUlIQnZjRk4wWVhSbElDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVkyOXVaR2wwYVc5dVUzUmhZMnN1Y0c5d0tDazdYRzRnSUNBZ2ZTeGNibDlqZFhKeVpXNTBVblZzWlhNNlpuVnVZM1JwYjI0Z1gyTjFjbkpsYm5SU2RXeGxjeUFvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbU52Ym1ScGRHbHZibk5iZEdocGN5NWpiMjVrYVhScGIyNVRkR0ZqYTF0MGFHbHpMbU52Ym1ScGRHbHZibE4wWVdOckxteGxibWQwYUMweFhWMHVjblZzWlhNN1hHNGdJQ0FnZlN4Y2JuUnZjRk4wWVhSbE9tWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVkyOXVaR2wwYVc5dVUzUmhZMnRiZEdocGN5NWpiMjVrYVhScGIyNVRkR0ZqYXk1c1pXNW5kR2d0TWwwN1hHNGdJQ0FnZlN4Y2JuQjFjMmhUZEdGMFpUcG1kVzVqZEdsdmJpQmlaV2RwYmlBb1kyOXVaR2wwYVc5dUtTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdVltVm5hVzRvWTI5dVpHbDBhVzl1S1R0Y2JpQWdJQ0I5ZlNrN1hHNXNaWGhsY2k1dmNIUnBiMjV6SUQwZ2UzMDdYRzVzWlhobGNpNXdaWEptYjNKdFFXTjBhVzl1SUQwZ1puVnVZM1JwYjI0Z1lXNXZibmx0YjNWektIbDVMSGw1WHl3a1lYWnZhV1JwYm1kZmJtRnRaVjlqYjJ4c2FYTnBiMjV6TEZsWlgxTlVRVkpVWEc0cElIdGNibHh1WEc1bWRXNWpkR2x2YmlCemRISnBjQ2h6ZEdGeWRDd2daVzVrS1NCN1hHNGdJSEpsZEhWeWJpQjVlVjh1ZVhsMFpYaDBJRDBnZVhsZkxubDVkR1Y0ZEM1emRXSnpkSEpwYm1jb2MzUmhjblFzSUhsNVh5NTVlV3hsYm1jZ0xTQmxibVFnS3lCemRHRnlkQ2s3WEc1OVhHNWNibHh1ZG1GeUlGbFpVMVJCVkVVOVdWbGZVMVJCVWxSY2JuTjNhWFJqYUNna1lYWnZhV1JwYm1kZmJtRnRaVjlqYjJ4c2FYTnBiMjV6S1NCN1hHNWpZWE5sSURBNlhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1LSGw1WHk1NWVYUmxlSFF1YzJ4cFkyVW9MVElwSUQwOVBTQmNJbHhjWEZ4Y1hGeGNYQ0lwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpkSEpwY0Nnd0xERXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVZbVZuYVc0b1hDSnRkVndpS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUtIbDVYeTU1ZVhSbGVIUXVjMnhwWTJVb0xURXBJRDA5UFNCY0lseGNYRnhjSWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE4wY21sd0tEQXNNU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVpWldkcGJpaGNJbVZ0ZFZ3aUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtSmxaMmx1S0Z3aWJYVmNJaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWW9lWGxmTG5sNWRHVjRkQ2tnY21WMGRYSnVJREUxTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWEc1aWNtVmhhenRjYm1OaGMyVWdNVHB5WlhSMWNtNGdNVFU3WEc1aWNtVmhhenRjYm1OaGMyVWdNanBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXdiM0JUZEdGMFpTZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdNVFU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JjYm1KeVpXRnJPMXh1WTJGelpTQXpPblJvYVhNdVltVm5hVzRvSjNKaGR5Y3BPeUJ5WlhSMWNtNGdNVFU3WEc1aWNtVmhhenRjYm1OaGMyVWdORHBjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuQnZjRk4wWVhSbEtDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnVTJodmRXeGtJR0psSUhWemFXNW5JR0IwYUdsekxuUnZjRk4wWVhSbEtDbGdJR0psYkc5M0xDQmlkWFFnYVhRZ1kzVnljbVZ1ZEd4NVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdjbVYwZFhKdWN5QjBhR1VnYzJWamIyNWtJSFJ2Y0NCcGJuTjBaV0ZrSUc5bUlIUm9aU0JtYVhKemRDQjBiM0F1SUU5d1pXNWxaQ0JoYmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklHbHpjM1ZsSUdGaWIzVjBJR2wwSUdGMElHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOTZZV0ZqYUM5cWFYTnZiaTlwYzNOMVpYTXZNamt4WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11WTI5dVpHbDBhVzl1VTNSaFkydGJkR2hwY3k1amIyNWthWFJwYjI1VGRHRmpheTVzWlc1bmRHZ3RNVjBnUFQwOUlDZHlZWGNuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z01UVTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE4wY21sd0tEVXNJRGtwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNkRlRrUmZVa0ZYWDBKTVQwTkxKenRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JjYm1KeVpXRnJPMXh1WTJGelpTQTFPaUJ5WlhSMWNtNGdNVFU3SUZ4dVluSmxZV3M3WEc1allYTmxJRFk2WEc0Z0lIUm9hWE11Y0c5d1UzUmhkR1VvS1R0Y2JpQWdjbVYwZFhKdUlERTBPMXh1WEc1aWNtVmhhenRjYm1OaGMyVWdOenB5WlhSMWNtNGdOalU3WEc1aWNtVmhhenRjYm1OaGMyVWdPRHB5WlhSMWNtNGdOamc3WEc1aWNtVmhhenRjYm1OaGMyVWdPVG9nY21WMGRYSnVJREU1T3lCY2JtSnlaV0ZyTzF4dVkyRnpaU0F4TURwY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbkJ2Y0ZOMFlYUmxLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWlaV2RwYmlnbmNtRjNKeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJREl6TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWEc1aWNtVmhhenRjYm1OaGMyVWdNVEU2Y21WMGRYSnVJRFUxTzF4dVluSmxZV3M3WEc1allYTmxJREV5T25KbGRIVnliaUEyTUR0Y2JtSnlaV0ZyTzF4dVkyRnpaU0F4TXpweVpYUjFjbTRnTWprN1hHNWljbVZoYXp0Y2JtTmhjMlVnTVRRNmNtVjBkWEp1SURRM08xeHVZbkpsWVdzN1hHNWpZWE5sSURFMU9uUm9hWE11Y0c5d1UzUmhkR1VvS1RzZ2NtVjBkWEp1SURRME8xeHVZbkpsWVdzN1hHNWpZWE5sSURFMk9uUm9hWE11Y0c5d1UzUmhkR1VvS1RzZ2NtVjBkWEp1SURRME8xeHVZbkpsWVdzN1hHNWpZWE5sSURFM09uSmxkSFZ5YmlBek5EdGNibUp5WldGck8xeHVZMkZ6WlNBeE9EcHlaWFIxY200Z016azdYRzVpY21WaGF6dGNibU5oYzJVZ01UazZjbVYwZFhKdUlEVXhPMXh1WW5KbFlXczdYRzVqWVhObElESXdPbkpsZEhWeWJpQTBPRHRjYm1KeVpXRnJPMXh1WTJGelpTQXlNVHBjYmlBZ2RHaHBjeTUxYm5CMWRDaDVlVjh1ZVhsMFpYaDBLVHRjYmlBZ2RHaHBjeTV3YjNCVGRHRjBaU2dwTzF4dUlDQjBhR2x6TG1KbFoybHVLQ2RqYjIwbktUdGNibHh1WW5KbFlXczdYRzVqWVhObElESXlPbHh1SUNCMGFHbHpMbkJ2Y0ZOMFlYUmxLQ2s3WEc0Z0lISmxkSFZ5YmlBeE5EdGNibHh1WW5KbFlXczdYRzVqWVhObElESXpPbkpsZEhWeWJpQTBPRHRjYm1KeVpXRnJPMXh1WTJGelpTQXlORHB5WlhSMWNtNGdOek03WEc1aWNtVmhhenRjYm1OaGMyVWdNalU2Y21WMGRYSnVJRGN5TzF4dVluSmxZV3M3WEc1allYTmxJREkyT25KbGRIVnliaUEzTWp0Y2JtSnlaV0ZyTzF4dVkyRnpaU0F5TnpweVpYUjFjbTRnT0RjN1hHNWljbVZoYXp0Y2JtTmhjMlVnTWpnNkx5OGdhV2R1YjNKbElIZG9hWFJsYzNCaFkyVmNibUp5WldGck8xeHVZMkZ6WlNBeU9UcDBhR2x6TG5CdmNGTjBZWFJsS0NrN0lISmxkSFZ5YmlBMU5EdGNibUp5WldGck8xeHVZMkZ6WlNBek1EcDBhR2x6TG5CdmNGTjBZWFJsS0NrN0lISmxkSFZ5YmlBek16dGNibUp5WldGck8xeHVZMkZ6WlNBek1UcDVlVjh1ZVhsMFpYaDBJRDBnYzNSeWFYQW9NU3d5S1M1eVpYQnNZV05sS0M5Y1hGeGNYQ0l2Wnl3blhDSW5LVHNnY21WMGRYSnVJRGd3TzF4dVluSmxZV3M3WEc1allYTmxJRE15T25sNVh5NTVlWFJsZUhRZ1BTQnpkSEpwY0NneExESXBMbkpsY0d4aFkyVW9MMXhjWEZ3bkwyY3NYQ0luWENJcE95QnlaWFIxY200Z09EQTdYRzVpY21WaGF6dGNibU5oYzJVZ016TTZjbVYwZFhKdUlEZzFPMXh1WW5KbFlXczdYRzVqWVhObElETTBPbkpsZEhWeWJpQTRNanRjYm1KeVpXRnJPMXh1WTJGelpTQXpOVHB5WlhSMWNtNGdPREk3WEc1aWNtVmhhenRjYm1OaGMyVWdNelk2Y21WMGRYSnVJRGd6TzF4dVluSmxZV3M3WEc1allYTmxJRE0zT25KbGRIVnliaUE0TkR0Y2JtSnlaV0ZyTzF4dVkyRnpaU0F6T0RweVpYUjFjbTRnT0RFN1hHNWljbVZoYXp0Y2JtTmhjMlVnTXprNmNtVjBkWEp1SURjMU8xeHVZbkpsWVdzN1hHNWpZWE5sSURRd09uSmxkSFZ5YmlBM056dGNibUp5WldGck8xeHVZMkZ6WlNBME1UcHlaWFIxY200Z056STdYRzVpY21WaGF6dGNibU5oYzJVZ05ESTZlWGxmTG5sNWRHVjRkQ0E5SUhsNVh5NTVlWFJsZUhRdWNtVndiR0ZqWlNndlhGeGNYQ2hiWEZ4Y1hGeGNYVjBwTDJjc0p5UXhKeWs3SUhKbGRIVnliaUEzTWp0Y2JtSnlaV0ZyTzF4dVkyRnpaU0EwTXpweVpYUjFjbTRnSjBsT1ZrRk1TVVFuTzF4dVluSmxZV3M3WEc1allYTmxJRFEwT25KbGRIVnliaUExTzF4dVluSmxZV3M3WEc1OVhHNTlPMXh1YkdWNFpYSXVjblZzWlhNZ1BTQmJMMTRvUHpwYlhseGNlREF3WFNvL0tEODlLRnhjZTF4Y2V5a3BLUzhzTDE0b1B6cGJYbHhjZURBd1hTc3BMeXd2WGlnL09sdGVYRng0TURCZGV6SXNmVDhvUHowb1hGeDdYRng3ZkZ4Y1hGeGNYSHRjWEh0OFhGeGNYRnhjWEZ4Y1hIdGNYSHQ4SkNrcEtTOHNMMTRvUHpwY1hIdGNYSHRjWEh0Y1hIc29QejFiWGx4Y0wxMHBLUzhzTDE0b1B6cGNYSHRjWEh0Y1hIdGNYSHRjWEM5YlhseGNjeUZjSWlNbExTeGNYQzVjWEM4N0xUNUFYRnhiTFZ4Y1htQmNYSHN0ZmwwcktEODlXejE5WEZ4elhGd3ZMbDBwWEZ4OVhGeDlYRng5WEZ4OUtTOHNMMTRvUHpwYlhseGNlREF3WFNzL0tEODlLRnhjZTF4Y2UxeGNlMXhjZXlrcEtTOHNMMTRvUHpwYlhGeHpYRnhUWFNvL0xTMG9maWsvWEZ4OVhGeDlLUzhzTDE0b1B6cGNYQ2dwTHl3dlhpZy9PbHhjS1NrdkxDOWVLRDg2WEZ4N1hGeDdYRng3WEZ4N0tTOHNMMTRvUHpwY1hIMWNYSDFjWEgxY1hIMHBMeXd2WGlnL09seGNlMXhjZXloK0tUOCtLUzhzTDE0b1B6cGNYSHRjWEhzb2Zpay9JejRwTHl3dlhpZy9PbHhjZTF4Y2V5aCtLVDhqWEZ3cVB5a3ZMQzllS0Q4NlhGeDdYRng3S0g0cFAxeGNMeWt2TEM5ZUtEODZYRng3WEZ4N0tINHBQMXhjWGx4Y2N5b29maWsvWEZ4OVhGeDlLUzhzTDE0b1B6cGNYSHRjWEhzb2Zpay9YRnh6S21Wc2MyVmNYSE1xS0g0cFAxeGNmVnhjZlNrdkxDOWVLRDg2WEZ4N1hGeDdLSDRwUDF4Y1hpa3ZMQzllS0Q4NlhGeDdYRng3S0g0cFAxeGNjeXBsYkhObFhGeGlLUzhzTDE0b1B6cGNYSHRjWEhzb2Zpay9YRng3S1M4c0wxNG9QenBjWEh0Y1hIc29maWsvSmlrdkxDOWVLRDg2WEZ4N1hGeDdLSDRwUHlFdExTa3ZMQzllS0Q4NlhGeDdYRng3S0g0cFB5RmJYRnh6WEZ4VFhTby9YRng5WEZ4OUtTOHNMMTRvUHpwY1hIdGNYSHNvZmlrL1hGd3FQeWt2TEM5ZUtEODZQU2t2TEM5ZUtEODZYRnd1WEZ3dUtTOHNMMTRvUHpwY1hDNG9QejBvV3oxK2ZWeGNjMXhjTHk0cGZGMHBLU2t2TEM5ZUtEODZXMXhjTHk1ZEtTOHNMMTRvUHpwY1hITXJLUzhzTDE0b1B6cGNYSDBvZmlrL1hGeDlYRng5S1M4c0wxNG9Qem9vZmlrL1hGeDlYRng5S1M4c0wxNG9QenBjSWloY1hGeGNXMXdpWFh4Ylhsd2lYU2txWENJcEx5d3ZYaWcvT2ljb1hGeGNYRnNuWFh4YlhpZGRLU29uS1M4c0wxNG9QenBBS1M4c0wxNG9QenAwY25WbEtEODlLRnQrZlZ4Y2N5bGRLU2twTHl3dlhpZy9PbVpoYkhObEtEODlLRnQrZlZ4Y2N5bGRLU2twTHl3dlhpZy9PblZ1WkdWbWFXNWxaQ2cvUFNoYmZuMWNYSE1wWFNrcEtTOHNMMTRvUHpwdWRXeHNLRDg5S0Z0K2ZWeGNjeWxkS1NrcEx5d3ZYaWcvT2kwL1d6QXRPVjByS0Q4NlhGd3VXekF0T1YwcktUOG9QejBvVzM1OVhGeHpLVjBwS1NrdkxDOWVLRDg2WVhOY1hITXJYRng4S1M4c0wxNG9QenBjWEh3cEx5d3ZYaWcvT2loYlhseGNjeUZjSWlNbExTeGNYQzVjWEM4N0xUNUFYRnhiTFZ4Y1htQmNYSHN0ZmwwcktEODlLRnM5Zm4xY1hITmNYQzh1S1h4ZEtTa3BLUzhzTDE0b1B6cGNYRnNvWEZ4Y1hGeGNYWHhiWGx4Y1hWMHBLbHhjWFNrdkxDOWVLRDg2TGlrdkxDOWVLRDg2SkNrdlhUdGNibXhsZUdWeUxtTnZibVJwZEdsdmJuTWdQU0I3WENKdGRWd2lPbnRjSW5KMWJHVnpYQ0k2V3pjc09DdzVMREV3TERFeExERXlMREV6TERFMExERTFMREUyTERFM0xERTRMREU1TERJd0xESXhMREl5TERJekxESTBMREkxTERJMkxESTNMREk0TERJNUxETXdMRE14TERNeUxETXpMRE0wTERNMUxETTJMRE0zTERNNExETTVMRFF3TERReExEUXlMRFF6TERRMFhTeGNJbWx1WTJ4MWMybDJaVndpT21aaGJITmxmU3hjSW1WdGRWd2lPbnRjSW5KMWJHVnpYQ0k2V3pKZExGd2lhVzVqYkhWemFYWmxYQ0k2Wm1Gc2MyVjlMRndpWTI5dFhDSTZlMXdpY25Wc1pYTmNJanBiTmwwc1hDSnBibU5zZFhOcGRtVmNJanBtWVd4elpYMHNYQ0p5WVhkY0lqcDdYQ0p5ZFd4bGMxd2lPbHN6TERRc05WMHNYQ0pwYm1Oc2RYTnBkbVZjSWpwbVlXeHpaWDBzWENKSlRrbFVTVUZNWENJNmUxd2ljblZzWlhOY0lqcGJNQ3d4TERRMFhTeGNJbWx1WTJ4MWMybDJaVndpT25SeWRXVjlmVHRjYm5KbGRIVnliaUJzWlhobGNqdDlLU2dwWEc1d1lYSnpaWEl1YkdWNFpYSWdQU0JzWlhobGNqdGNibVoxYm1OMGFXOXVJRkJoY25ObGNpQW9LU0I3SUhSb2FYTXVlWGtnUFNCN2ZUc2dmVkJoY25ObGNpNXdjbTkwYjNSNWNHVWdQU0J3WVhKelpYSTdjR0Z5YzJWeUxsQmhjbk5sY2lBOUlGQmhjbk5sY2p0Y2JuSmxkSFZ5YmlCdVpYY2dVR0Z5YzJWeU8xeHVmU2tvS1R0bGVIQnZjblFnWkdWbVlYVnNkQ0JvWVc1a2JHVmlZWEp6TzF4dUlsMTlcbiIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbi8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9leGNlcHRpb24gPSByZXF1aXJlKCcuLi9leGNlcHRpb24nKTtcblxudmFyIF9leGNlcHRpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZXhjZXB0aW9uKTtcblxuZnVuY3Rpb24gVmlzaXRvcigpIHtcbiAgdGhpcy5wYXJlbnRzID0gW107XG59XG5cblZpc2l0b3IucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogVmlzaXRvcixcbiAgbXV0YXRpbmc6IGZhbHNlLFxuXG4gIC8vIFZpc2l0cyBhIGdpdmVuIHZhbHVlLiBJZiBtdXRhdGluZywgd2lsbCByZXBsYWNlIHRoZSB2YWx1ZSBpZiBuZWNlc3NhcnkuXG4gIGFjY2VwdEtleTogZnVuY3Rpb24gYWNjZXB0S2V5KG5vZGUsIG5hbWUpIHtcbiAgICB2YXIgdmFsdWUgPSB0aGlzLmFjY2VwdChub2RlW25hbWVdKTtcbiAgICBpZiAodGhpcy5tdXRhdGluZykge1xuICAgICAgLy8gSGFja3kgc2FuaXR5IGNoZWNrOiBUaGlzIG1heSBoYXZlIGEgZmV3IGZhbHNlIHBvc2l0aXZlcyBmb3IgdHlwZSBmb3IgdGhlIGhlbHBlclxuICAgICAgLy8gbWV0aG9kcyBidXQgd2lsbCBnZW5lcmFsbHkgZG8gdGhlIHJpZ2h0IHRoaW5nIHdpdGhvdXQgYSBsb3Qgb2Ygb3ZlcmhlYWQuXG4gICAgICBpZiAodmFsdWUgJiYgIVZpc2l0b3IucHJvdG90eXBlW3ZhbHVlLnR5cGVdKSB7XG4gICAgICAgIHRocm93IG5ldyBfZXhjZXB0aW9uMlsnZGVmYXVsdCddKCdVbmV4cGVjdGVkIG5vZGUgdHlwZSBcIicgKyB2YWx1ZS50eXBlICsgJ1wiIGZvdW5kIHdoZW4gYWNjZXB0aW5nICcgKyBuYW1lICsgJyBvbiAnICsgbm9kZS50eXBlKTtcbiAgICAgIH1cbiAgICAgIG5vZGVbbmFtZV0gPSB2YWx1ZTtcbiAgICB9XG4gIH0sXG5cbiAgLy8gUGVyZm9ybXMgYW4gYWNjZXB0IG9wZXJhdGlvbiB3aXRoIGFkZGVkIHNhbml0eSBjaGVjayB0byBlbnN1cmVcbiAgLy8gcmVxdWlyZWQga2V5cyBhcmUgbm90IHJlbW92ZWQuXG4gIGFjY2VwdFJlcXVpcmVkOiBmdW5jdGlvbiBhY2NlcHRSZXF1aXJlZChub2RlLCBuYW1lKSB7XG4gICAgdGhpcy5hY2NlcHRLZXkobm9kZSwgbmFtZSk7XG5cbiAgICBpZiAoIW5vZGVbbmFtZV0pIHtcbiAgICAgIHRocm93IG5ldyBfZXhjZXB0aW9uMlsnZGVmYXVsdCddKG5vZGUudHlwZSArICcgcmVxdWlyZXMgJyArIG5hbWUpO1xuICAgIH1cbiAgfSxcblxuICAvLyBUcmF2ZXJzZXMgYSBnaXZlbiBhcnJheS4gSWYgbXV0YXRpbmcsIGVtcHR5IHJlc3Buc2VzIHdpbGwgYmUgcmVtb3ZlZFxuICAvLyBmb3IgY2hpbGQgZWxlbWVudHMuXG4gIGFjY2VwdEFycmF5OiBmdW5jdGlvbiBhY2NlcHRBcnJheShhcnJheSkge1xuICAgIGZvciAodmFyIGkgPSAwLCBsID0gYXJyYXkubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICB0aGlzLmFjY2VwdEtleShhcnJheSwgaSk7XG5cbiAgICAgIGlmICghYXJyYXlbaV0pIHtcbiAgICAgICAgYXJyYXkuc3BsaWNlKGksIDEpO1xuICAgICAgICBpLS07XG4gICAgICAgIGwtLTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgYWNjZXB0OiBmdW5jdGlvbiBhY2NlcHQob2JqZWN0KSB7XG4gICAgaWYgKCFvYmplY3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDogU2FuaXR5IGNvZGUgKi9cbiAgICBpZiAoIXRoaXNbb2JqZWN0LnR5cGVdKSB7XG4gICAgICB0aHJvdyBuZXcgX2V4Y2VwdGlvbjJbJ2RlZmF1bHQnXSgnVW5rbm93biB0eXBlOiAnICsgb2JqZWN0LnR5cGUsIG9iamVjdCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VycmVudCkge1xuICAgICAgdGhpcy5wYXJlbnRzLnVuc2hpZnQodGhpcy5jdXJyZW50KTtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50ID0gb2JqZWN0O1xuXG4gICAgdmFyIHJldCA9IHRoaXNbb2JqZWN0LnR5cGVdKG9iamVjdCk7XG5cbiAgICB0aGlzLmN1cnJlbnQgPSB0aGlzLnBhcmVudHMuc2hpZnQoKTtcblxuICAgIGlmICghdGhpcy5tdXRhdGluZyB8fCByZXQpIHtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSBlbHNlIGlmIChyZXQgIT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cbiAgfSxcblxuICBQcm9ncmFtOiBmdW5jdGlvbiBQcm9ncmFtKHByb2dyYW0pIHtcbiAgICB0aGlzLmFjY2VwdEFycmF5KHByb2dyYW0uYm9keSk7XG4gIH0sXG5cbiAgTXVzdGFjaGVTdGF0ZW1lbnQ6IHZpc2l0U3ViRXhwcmVzc2lvbixcbiAgRGVjb3JhdG9yOiB2aXNpdFN1YkV4cHJlc3Npb24sXG5cbiAgQmxvY2tTdGF0ZW1lbnQ6IHZpc2l0QmxvY2ssXG4gIERlY29yYXRvckJsb2NrOiB2aXNpdEJsb2NrLFxuXG4gIFBhcnRpYWxTdGF0ZW1lbnQ6IHZpc2l0UGFydGlhbCxcbiAgUGFydGlhbEJsb2NrU3RhdGVtZW50OiBmdW5jdGlvbiBQYXJ0aWFsQmxvY2tTdGF0ZW1lbnQocGFydGlhbCkge1xuICAgIHZpc2l0UGFydGlhbC5jYWxsKHRoaXMsIHBhcnRpYWwpO1xuXG4gICAgdGhpcy5hY2NlcHRLZXkocGFydGlhbCwgJ3Byb2dyYW0nKTtcbiAgfSxcblxuICBDb250ZW50U3RhdGVtZW50OiBmdW5jdGlvbiBDb250ZW50U3RhdGVtZW50KCkgLyogY29udGVudCAqL3t9LFxuICBDb21tZW50U3RhdGVtZW50OiBmdW5jdGlvbiBDb21tZW50U3RhdGVtZW50KCkgLyogY29tbWVudCAqL3t9LFxuXG4gIFN1YkV4cHJlc3Npb246IHZpc2l0U3ViRXhwcmVzc2lvbixcblxuICBQYXRoRXhwcmVzc2lvbjogZnVuY3Rpb24gUGF0aEV4cHJlc3Npb24oKSAvKiBwYXRoICove30sXG5cbiAgU3RyaW5nTGl0ZXJhbDogZnVuY3Rpb24gU3RyaW5nTGl0ZXJhbCgpIC8qIHN0cmluZyAqL3t9LFxuICBOdW1iZXJMaXRlcmFsOiBmdW5jdGlvbiBOdW1iZXJMaXRlcmFsKCkgLyogbnVtYmVyICove30sXG4gIEJvb2xlYW5MaXRlcmFsOiBmdW5jdGlvbiBCb29sZWFuTGl0ZXJhbCgpIC8qIGJvb2wgKi97fSxcbiAgVW5kZWZpbmVkTGl0ZXJhbDogZnVuY3Rpb24gVW5kZWZpbmVkTGl0ZXJhbCgpIC8qIGxpdGVyYWwgKi97fSxcbiAgTnVsbExpdGVyYWw6IGZ1bmN0aW9uIE51bGxMaXRlcmFsKCkgLyogbGl0ZXJhbCAqL3t9LFxuXG4gIEhhc2g6IGZ1bmN0aW9uIEhhc2goaGFzaCkge1xuICAgIHRoaXMuYWNjZXB0QXJyYXkoaGFzaC5wYWlycyk7XG4gIH0sXG4gIEhhc2hQYWlyOiBmdW5jdGlvbiBIYXNoUGFpcihwYWlyKSB7XG4gICAgdGhpcy5hY2NlcHRSZXF1aXJlZChwYWlyLCAndmFsdWUnKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gdmlzaXRTdWJFeHByZXNzaW9uKG11c3RhY2hlKSB7XG4gIHRoaXMuYWNjZXB0UmVxdWlyZWQobXVzdGFjaGUsICdwYXRoJyk7XG4gIHRoaXMuYWNjZXB0QXJyYXkobXVzdGFjaGUucGFyYW1zKTtcbiAgdGhpcy5hY2NlcHRLZXkobXVzdGFjaGUsICdoYXNoJyk7XG59XG5mdW5jdGlvbiB2aXNpdEJsb2NrKGJsb2NrKSB7XG4gIHZpc2l0U3ViRXhwcmVzc2lvbi5jYWxsKHRoaXMsIGJsb2NrKTtcblxuICB0aGlzLmFjY2VwdEtleShibG9jaywgJ3Byb2dyYW0nKTtcbiAgdGhpcy5hY2NlcHRLZXkoYmxvY2ssICdpbnZlcnNlJyk7XG59XG5mdW5jdGlvbiB2aXNpdFBhcnRpYWwocGFydGlhbCkge1xuICB0aGlzLmFjY2VwdFJlcXVpcmVkKHBhcnRpYWwsICduYW1lJyk7XG4gIHRoaXMuYWNjZXB0QXJyYXkocGFydGlhbC5wYXJhbXMpO1xuICB0aGlzLmFjY2VwdEtleShwYXJ0aWFsLCAnaGFzaCcpO1xufVxuXG5leHBvcnRzWydkZWZhdWx0J10gPSBWaXNpdG9yO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDJ4cFlpOW9ZVzVrYkdWaVlYSnpMMk52YlhCcGJHVnlMM1pwYzJsMGIzSXVhbk1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096dDVRa0ZCYzBJc1kwRkJZenM3T3p0QlFVVndReXhUUVVGVExFOUJRVThzUjBGQlJ6dEJRVU5xUWl4TlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFVkJRVVVzUTBGQlF6dERRVU51UWpzN1FVRkZSQ3hQUVVGUExFTkJRVU1zVTBGQlV5eEhRVUZITzBGQlEyeENMR0ZCUVZjc1JVRkJSU3hQUVVGUE8wRkJRM0JDTEZWQlFWRXNSVUZCUlN4TFFVRkxPenM3UVVGSFppeFhRVUZUTEVWQlFVVXNiVUpCUVZNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJUdEJRVU01UWl4UlFVRkpMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM0JETEZGQlFVa3NTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSVHM3TzBGQlIycENMRlZCUVVrc1MwRkJTeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3UVVGRE0wTXNZMEZCVFN3eVFrRkRTaXgzUWtGQmQwSXNSMEZEZEVJc1MwRkJTeXhEUVVGRExFbEJRVWtzUjBGRFZpeDVRa0ZCZVVJc1IwRkRla0lzU1VGQlNTeEhRVU5LTEUxQlFVMHNSMEZEVGl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVOYUxFTkJRVU03VDBGRFNEdEJRVU5FTEZWQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU03UzBGRGNFSTdSMEZEUmpzN096dEJRVWxFTEdkQ1FVRmpMRVZCUVVVc2QwSkJRVk1zU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlR0QlFVTnVReXhSUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenM3UVVGRk0wSXNVVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJUdEJRVU5tTEZsQlFVMHNNa0pCUVdNc1NVRkJTU3hEUVVGRExFbEJRVWtzUjBGQlJ5eFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRkRVE3UjBGRFJqczdPenRCUVVsRUxHRkJRVmNzUlVGQlJTeHhRa0ZCVXl4TFFVRkxMRVZCUVVVN1FVRkRNMElzVTBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdEJRVU0xUXl4VlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXpzN1FVRkZla0lzVlVGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSVHRCUVVOaUxHRkJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMjVDTEZOQlFVTXNSVUZCUlN4RFFVRkRPMEZCUTBvc1UwRkJReXhGUVVGRkxFTkJRVU03VDBGRFREdExRVU5HTzBkQlEwWTdPMEZCUlVRc1VVRkJUU3hGUVVGRkxHZENRVUZUTEUxQlFVMHNSVUZCUlR0QlFVTjJRaXhSUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTzBGQlExZ3NZVUZCVHp0TFFVTlNPenM3UVVGSFJDeFJRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJUdEJRVU4wUWl4WlFVRk5MREpDUVVGakxHZENRVUZuUWl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdTMEZETjBRN08wRkJSVVFzVVVGQlNTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZPMEZCUTJoQ0xGVkJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dExRVU53UXp0QlFVTkVMRkZCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZET3p0QlFVVjBRaXhSUVVGSkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZET3p0QlFVVndReXhSUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03TzBGQlJYQkRMRkZCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeEpRVUZKTEVkQlFVY3NSVUZCUlR0QlFVTjZRaXhoUVVGUExFZEJRVWNzUTBGQlF6dExRVU5hTEUxQlFVMHNTVUZCU1N4SFFVRkhMRXRCUVVzc1MwRkJTeXhGUVVGRk8wRkJRM2hDTEdGQlFVOHNUVUZCVFN4RFFVRkRPMHRCUTJZN1IwRkRSanM3UVVGRlJDeFRRVUZQTEVWQlFVVXNhVUpCUVZNc1QwRkJUeXhGUVVGRk8wRkJRM3BDTEZGQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBkQlEyaERPenRCUVVWRUxHMUNRVUZwUWl4RlFVRkZMR3RDUVVGclFqdEJRVU55UXl4WFFVRlRMRVZCUVVVc2EwSkJRV3RDT3p0QlFVVTNRaXhuUWtGQll5eEZRVUZGTEZWQlFWVTdRVUZETVVJc1owSkJRV01zUlVGQlJTeFZRVUZWT3p0QlFVVXhRaXhyUWtGQlowSXNSVUZCUlN4WlFVRlpPMEZCUXpsQ0xIVkNRVUZ4UWl4RlFVRkZMQ3RDUVVGVExFOUJRVThzUlVGQlJUdEJRVU4yUXl4blFrRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN08wRkJSV3BETEZGQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZETzBkQlEzQkRPenRCUVVWRUxHdENRVUZuUWl4RlFVRkZMSGxEUVVGM1FpeEZRVUZGTzBGQlF6VkRMR3RDUVVGblFpeEZRVUZGTEhsRFFVRjNRaXhGUVVGRk96dEJRVVUxUXl4bFFVRmhMRVZCUVVVc2EwSkJRV3RDT3p0QlFVVnFReXhuUWtGQll5eEZRVUZGTEc5RFFVRnhRaXhGUVVGRk96dEJRVVYyUXl4bFFVRmhMRVZCUVVVc2NVTkJRWFZDTEVWQlFVVTdRVUZEZUVNc1pVRkJZU3hGUVVGRkxIRkRRVUYxUWl4RlFVRkZPMEZCUTNoRExHZENRVUZqTEVWQlFVVXNiME5CUVhGQ0xFVkJRVVU3UVVGRGRrTXNhMEpCUVdkQ0xFVkJRVVVzZVVOQlFYZENMRVZCUVVVN1FVRkROVU1zWVVGQlZ5eEZRVUZGTEc5RFFVRjNRaXhGUVVGRk96dEJRVVYyUXl4TlFVRkpMRVZCUVVVc1kwRkJVeXhKUVVGSkxFVkJRVVU3UVVGRGJrSXNVVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdSMEZET1VJN1FVRkRSQ3hWUVVGUkxFVkJRVVVzYTBKQlFWTXNTVUZCU1N4RlFVRkZPMEZCUTNaQ0xGRkJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8wZEJRM0JETzBOQlEwWXNRMEZCUXpzN1FVRkZSaXhUUVVGVExHdENRVUZyUWl4RFFVRkRMRkZCUVZFc1JVRkJSVHRCUVVOd1F5eE5RVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRkZCUVZFc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU4wUXl4TlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTnNReXhOUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZGQlFWRXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenREUVVOc1F6dEJRVU5FTEZOQlFWTXNWVUZCVlN4RFFVRkRMRXRCUVVzc1JVRkJSVHRCUVVONlFpeHZRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPenRCUVVWeVF5eE5RVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dEJRVU5xUXl4TlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXp0RFFVTnNRenRCUVVORUxGTkJRVk1zV1VGQldTeERRVUZETEU5QlFVOHNSVUZCUlR0QlFVTTNRaXhOUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEU5QlFVOHNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVOeVF5eE5RVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU5xUXl4TlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0RFFVTnFRenM3Y1VKQlJXTXNUMEZCVHlJc0ltWnBiR1VpT2lKMmFYTnBkRzl5TG1weklpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElFVjRZMlZ3ZEdsdmJpQm1jbTl0SUNjdUxpOWxlR05sY0hScGIyNG5PMXh1WEc1bWRXNWpkR2x2YmlCV2FYTnBkRzl5S0NrZ2UxeHVJQ0IwYUdsekxuQmhjbVZ1ZEhNZ1BTQmJYVHRjYm4xY2JseHVWbWx6YVhSdmNpNXdjbTkwYjNSNWNHVWdQU0I3WEc0Z0lHTnZibk4wY25WamRHOXlPaUJXYVhOcGRHOXlMRnh1SUNCdGRYUmhkR2x1WnpvZ1ptRnNjMlVzWEc1Y2JpQWdMeThnVm1semFYUnpJR0VnWjJsMlpXNGdkbUZzZFdVdUlFbG1JRzExZEdGMGFXNW5MQ0IzYVd4c0lISmxjR3hoWTJVZ2RHaGxJSFpoYkhWbElHbG1JRzVsWTJWemMyRnllUzVjYmlBZ1lXTmpaWEIwUzJWNU9pQm1kVzVqZEdsdmJpaHViMlJsTENCdVlXMWxLU0I3WEc0Z0lDQWdiR1YwSUhaaGJIVmxJRDBnZEdocGN5NWhZMk5sY0hRb2JtOWtaVnR1WVcxbFhTazdYRzRnSUNBZ2FXWWdLSFJvYVhNdWJYVjBZWFJwYm1jcElIdGNiaUFnSUNBZ0lDOHZJRWhoWTJ0NUlITmhibWwwZVNCamFHVmphem9nVkdocGN5QnRZWGtnYUdGMlpTQmhJR1psZHlCbVlXeHpaU0J3YjNOcGRHbDJaWE1nWm05eUlIUjVjR1VnWm05eUlIUm9aU0JvWld4d1pYSmNiaUFnSUNBZ0lDOHZJRzFsZEdodlpITWdZblYwSUhkcGJHd2daMlZ1WlhKaGJHeDVJR1J2SUhSb1pTQnlhV2RvZENCMGFHbHVaeUIzYVhSb2IzVjBJR0VnYkc5MElHOW1JRzkyWlhKb1pXRmtMbHh1SUNBZ0lDQWdhV1lnS0haaGJIVmxJQ1ltSUNGV2FYTnBkRzl5TG5CeWIzUnZkSGx3WlZ0MllXeDFaUzUwZVhCbFhTa2dlMXh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhoalpYQjBhVzl1S0Z4dUlDQWdJQ0FnSUNBZ0lDZFZibVY0Y0dWamRHVmtJRzV2WkdVZ2RIbHdaU0JjSWljZ0sxeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVXVkSGx3WlNBclhHNGdJQ0FnSUNBZ0lDQWdJQ0FuWENJZ1ptOTFibVFnZDJobGJpQmhZMk5sY0hScGJtY2dKeUFyWEc0Z0lDQWdJQ0FnSUNBZ0lDQnVZVzFsSUN0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ2NnYjI0Z0p5QXJYRzRnSUNBZ0lDQWdJQ0FnSUNCdWIyUmxMblI1Y0dWY2JpQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHNXZaR1ZiYm1GdFpWMGdQU0IyWVd4MVpUdGNiaUFnSUNCOVhHNGdJSDBzWEc1Y2JpQWdMeThnVUdWeVptOXliWE1nWVc0Z1lXTmpaWEIwSUc5d1pYSmhkR2x2YmlCM2FYUm9JR0ZrWkdWa0lITmhibWwwZVNCamFHVmpheUIwYnlCbGJuTjFjbVZjYmlBZ0x5OGdjbVZ4ZFdseVpXUWdhMlY1Y3lCaGNtVWdibTkwSUhKbGJXOTJaV1F1WEc0Z0lHRmpZMlZ3ZEZKbGNYVnBjbVZrT2lCbWRXNWpkR2x2YmlodWIyUmxMQ0J1WVcxbEtTQjdYRzRnSUNBZ2RHaHBjeTVoWTJObGNIUkxaWGtvYm05a1pTd2dibUZ0WlNrN1hHNWNiaUFnSUNCcFppQW9JVzV2WkdWYmJtRnRaVjBwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmVHTmxjSFJwYjI0b2JtOWtaUzUwZVhCbElDc2dKeUJ5WlhGMWFYSmxjeUFuSUNzZ2JtRnRaU2s3WEc0Z0lDQWdmVnh1SUNCOUxGeHVYRzRnSUM4dklGUnlZWFpsY25ObGN5QmhJR2RwZG1WdUlHRnljbUY1TGlCSlppQnRkWFJoZEdsdVp5d2daVzF3ZEhrZ2NtVnpjRzV6WlhNZ2QybHNiQ0JpWlNCeVpXMXZkbVZrWEc0Z0lDOHZJR1p2Y2lCamFHbHNaQ0JsYkdWdFpXNTBjeTVjYmlBZ1lXTmpaWEIwUVhKeVlYazZJR1oxYm1OMGFXOXVLR0Z5Y21GNUtTQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREFzSUd3Z1BTQmhjbkpoZVM1c1pXNW5kR2c3SUdrZ1BDQnNPeUJwS3lzcElIdGNiaUFnSUNBZ0lIUm9hWE11WVdOalpYQjBTMlY1S0dGeWNtRjVMQ0JwS1R0Y2JseHVJQ0FnSUNBZ2FXWWdLQ0ZoY25KaGVWdHBYU2tnZTF4dUlDQWdJQ0FnSUNCaGNuSmhlUzV6Y0d4cFkyVW9hU3dnTVNrN1hHNGdJQ0FnSUNBZ0lHa3RMVHRjYmlBZ0lDQWdJQ0FnYkMwdE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmU3hjYmx4dUlDQmhZMk5sY0hRNklHWjFibU4wYVc5dUtHOWlhbVZqZENrZ2UxeHVJQ0FnSUdsbUlDZ2hiMkpxWldOMEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvZ2FYTjBZVzVpZFd3Z2FXZHViM0psSUc1bGVIUTZJRk5oYm1sMGVTQmpiMlJsSUNvdlhHNGdJQ0FnYVdZZ0tDRjBhR2x6VzI5aWFtVmpkQzUwZVhCbFhTa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVY0WTJWd2RHbHZiaWduVlc1cmJtOTNiaUIwZVhCbE9pQW5JQ3NnYjJKcVpXTjBMblI1Y0dVc0lHOWlhbVZqZENrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tIUm9hWE11WTNWeWNtVnVkQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NXdZWEpsYm5SekxuVnVjMmhwWm5Rb2RHaHBjeTVqZFhKeVpXNTBLVHRjYmlBZ0lDQjlYRzRnSUNBZ2RHaHBjeTVqZFhKeVpXNTBJRDBnYjJKcVpXTjBPMXh1WEc0Z0lDQWdiR1YwSUhKbGRDQTlJSFJvYVhOYmIySnFaV04wTG5SNWNHVmRLRzlpYW1WamRDazdYRzVjYmlBZ0lDQjBhR2x6TG1OMWNuSmxiblFnUFNCMGFHbHpMbkJoY21WdWRITXVjMmhwWm5Rb0tUdGNibHh1SUNBZ0lHbG1JQ2doZEdocGN5NXRkWFJoZEdsdVp5QjhmQ0J5WlhRcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYUTdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaHlaWFFnSVQwOUlHWmhiSE5sS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYjJKcVpXTjBPMXh1SUNBZ0lIMWNiaUFnZlN4Y2JseHVJQ0JRY205bmNtRnRPaUJtZFc1amRHbHZiaWh3Y205bmNtRnRLU0I3WEc0Z0lDQWdkR2hwY3k1aFkyTmxjSFJCY25KaGVTaHdjbTluY21GdExtSnZaSGtwTzF4dUlDQjlMRnh1WEc0Z0lFMTFjM1JoWTJobFUzUmhkR1Z0Wlc1ME9pQjJhWE5wZEZOMVlrVjRjSEpsYzNOcGIyNHNYRzRnSUVSbFkyOXlZWFJ2Y2pvZ2RtbHphWFJUZFdKRmVIQnlaWE56YVc5dUxGeHVYRzRnSUVKc2IyTnJVM1JoZEdWdFpXNTBPaUIyYVhOcGRFSnNiMk5yTEZ4dUlDQkVaV052Y21GMGIzSkNiRzlqYXpvZ2RtbHphWFJDYkc5amF5eGNibHh1SUNCUVlYSjBhV0ZzVTNSaGRHVnRaVzUwT2lCMmFYTnBkRkJoY25ScFlXd3NYRzRnSUZCaGNuUnBZV3hDYkc5amExTjBZWFJsYldWdWREb2dablZ1WTNScGIyNG9jR0Z5ZEdsaGJDa2dlMXh1SUNBZ0lIWnBjMmwwVUdGeWRHbGhiQzVqWVd4c0tIUm9hWE1zSUhCaGNuUnBZV3dwTzF4dVhHNGdJQ0FnZEdocGN5NWhZMk5sY0hSTFpYa29jR0Z5ZEdsaGJDd2dKM0J5YjJkeVlXMG5LVHRjYmlBZ2ZTeGNibHh1SUNCRGIyNTBaVzUwVTNSaGRHVnRaVzUwT2lCbWRXNWpkR2x2YmlndktpQmpiMjUwWlc1MElDb3ZLU0I3ZlN4Y2JpQWdRMjl0YldWdWRGTjBZWFJsYldWdWREb2dablZ1WTNScGIyNG9MeW9nWTI5dGJXVnVkQ0FxTHlrZ2UzMHNYRzVjYmlBZ1UzVmlSWGh3Y21WemMybHZiam9nZG1semFYUlRkV0pGZUhCeVpYTnphVzl1TEZ4dVhHNGdJRkJoZEdoRmVIQnlaWE56YVc5dU9pQm1kVzVqZEdsdmJpZ3ZLaUJ3WVhSb0lDb3ZLU0I3ZlN4Y2JseHVJQ0JUZEhKcGJtZE1hWFJsY21Gc09pQm1kVzVqZEdsdmJpZ3ZLaUJ6ZEhKcGJtY2dLaThwSUh0OUxGeHVJQ0JPZFcxaVpYSk1hWFJsY21Gc09pQm1kVzVqZEdsdmJpZ3ZLaUJ1ZFcxaVpYSWdLaThwSUh0OUxGeHVJQ0JDYjI5c1pXRnVUR2wwWlhKaGJEb2dablZ1WTNScGIyNG9MeW9nWW05dmJDQXFMeWtnZTMwc1hHNGdJRlZ1WkdWbWFXNWxaRXhwZEdWeVlXdzZJR1oxYm1OMGFXOXVLQzhxSUd4cGRHVnlZV3dnS2k4cElIdDlMRnh1SUNCT2RXeHNUR2wwWlhKaGJEb2dablZ1WTNScGIyNG9MeW9nYkdsMFpYSmhiQ0FxTHlrZ2UzMHNYRzVjYmlBZ1NHRnphRG9nWm5WdVkzUnBiMjRvYUdGemFDa2dlMXh1SUNBZ0lIUm9hWE11WVdOalpYQjBRWEp5WVhrb2FHRnphQzV3WVdseWN5azdYRzRnSUgwc1hHNGdJRWhoYzJoUVlXbHlPaUJtZFc1amRHbHZiaWh3WVdseUtTQjdYRzRnSUNBZ2RHaHBjeTVoWTJObGNIUlNaWEYxYVhKbFpDaHdZV2x5TENBbmRtRnNkV1VuS1R0Y2JpQWdmVnh1ZlR0Y2JseHVablZ1WTNScGIyNGdkbWx6YVhSVGRXSkZlSEJ5WlhOemFXOXVLRzExYzNSaFkyaGxLU0I3WEc0Z0lIUm9hWE11WVdOalpYQjBVbVZ4ZFdseVpXUW9iWFZ6ZEdGamFHVXNJQ2R3WVhSb0p5azdYRzRnSUhSb2FYTXVZV05qWlhCMFFYSnlZWGtvYlhWemRHRmphR1V1Y0dGeVlXMXpLVHRjYmlBZ2RHaHBjeTVoWTJObGNIUkxaWGtvYlhWemRHRmphR1VzSUNkb1lYTm9KeWs3WEc1OVhHNW1kVzVqZEdsdmJpQjJhWE5wZEVKc2IyTnJLR0pzYjJOcktTQjdYRzRnSUhacGMybDBVM1ZpUlhod2NtVnpjMmx2Ymk1allXeHNLSFJvYVhNc0lHSnNiMk5yS1R0Y2JseHVJQ0IwYUdsekxtRmpZMlZ3ZEV0bGVTaGliRzlqYXl3Z0ozQnliMmR5WVcwbktUdGNiaUFnZEdocGN5NWhZMk5sY0hSTFpYa29ZbXh2WTJzc0lDZHBiblpsY25ObEp5azdYRzU5WEc1bWRXNWpkR2x2YmlCMmFYTnBkRkJoY25ScFlXd29jR0Z5ZEdsaGJDa2dlMXh1SUNCMGFHbHpMbUZqWTJWd2RGSmxjWFZwY21Wa0tIQmhjblJwWVd3c0lDZHVZVzFsSnlrN1hHNGdJSFJvYVhNdVlXTmpaWEIwUVhKeVlYa29jR0Z5ZEdsaGJDNXdZWEpoYlhNcE8xeHVJQ0IwYUdsekxtRmpZMlZ3ZEV0bGVTaHdZWEowYVdGc0xDQW5hR0Z6YUNjcE8xeHVmVnh1WEc1bGVIQnZjblFnWkdWbVlYVnNkQ0JXYVhOcGRHOXlPMXh1SWwxOVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuLy8gaXN0YW5idWwgaWdub3JlIG5leHRcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX3Zpc2l0b3IgPSByZXF1aXJlKCcuL3Zpc2l0b3InKTtcblxudmFyIF92aXNpdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Zpc2l0b3IpO1xuXG5mdW5jdGlvbiBXaGl0ZXNwYWNlQ29udHJvbCgpIHtcbiAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1swXTtcblxuICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xufVxuV2hpdGVzcGFjZUNvbnRyb2wucHJvdG90eXBlID0gbmV3IF92aXNpdG9yMlsnZGVmYXVsdCddKCk7XG5cbldoaXRlc3BhY2VDb250cm9sLnByb3RvdHlwZS5Qcm9ncmFtID0gZnVuY3Rpb24gKHByb2dyYW0pIHtcbiAgdmFyIGRvU3RhbmRhbG9uZSA9ICF0aGlzLm9wdGlvbnMuaWdub3JlU3RhbmRhbG9uZTtcblxuICB2YXIgaXNSb290ID0gIXRoaXMuaXNSb290U2VlbjtcbiAgdGhpcy5pc1Jvb3RTZWVuID0gdHJ1ZTtcblxuICB2YXIgYm9keSA9IHByb2dyYW0uYm9keTtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBib2R5Lmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIHZhciBjdXJyZW50ID0gYm9keVtpXSxcbiAgICAgICAgc3RyaXAgPSB0aGlzLmFjY2VwdChjdXJyZW50KTtcblxuICAgIGlmICghc3RyaXApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHZhciBfaXNQcmV2V2hpdGVzcGFjZSA9IGlzUHJldldoaXRlc3BhY2UoYm9keSwgaSwgaXNSb290KSxcbiAgICAgICAgX2lzTmV4dFdoaXRlc3BhY2UgPSBpc05leHRXaGl0ZXNwYWNlKGJvZHksIGksIGlzUm9vdCksXG4gICAgICAgIG9wZW5TdGFuZGFsb25lID0gc3RyaXAub3BlblN0YW5kYWxvbmUgJiYgX2lzUHJldldoaXRlc3BhY2UsXG4gICAgICAgIGNsb3NlU3RhbmRhbG9uZSA9IHN0cmlwLmNsb3NlU3RhbmRhbG9uZSAmJiBfaXNOZXh0V2hpdGVzcGFjZSxcbiAgICAgICAgaW5saW5lU3RhbmRhbG9uZSA9IHN0cmlwLmlubGluZVN0YW5kYWxvbmUgJiYgX2lzUHJldldoaXRlc3BhY2UgJiYgX2lzTmV4dFdoaXRlc3BhY2U7XG5cbiAgICBpZiAoc3RyaXAuY2xvc2UpIHtcbiAgICAgIG9taXRSaWdodChib2R5LCBpLCB0cnVlKTtcbiAgICB9XG4gICAgaWYgKHN0cmlwLm9wZW4pIHtcbiAgICAgIG9taXRMZWZ0KGJvZHksIGksIHRydWUpO1xuICAgIH1cblxuICAgIGlmIChkb1N0YW5kYWxvbmUgJiYgaW5saW5lU3RhbmRhbG9uZSkge1xuICAgICAgb21pdFJpZ2h0KGJvZHksIGkpO1xuXG4gICAgICBpZiAob21pdExlZnQoYm9keSwgaSkpIHtcbiAgICAgICAgLy8gSWYgd2UgYXJlIG9uIGEgc3RhbmRhbG9uZSBub2RlLCBzYXZlIHRoZSBpbmRlbnQgaW5mbyBmb3IgcGFydGlhbHNcbiAgICAgICAgaWYgKGN1cnJlbnQudHlwZSA9PT0gJ1BhcnRpYWxTdGF0ZW1lbnQnKSB7XG4gICAgICAgICAgLy8gUHVsbCBvdXQgdGhlIHdoaXRlc3BhY2UgZnJvbSB0aGUgZmluYWwgbGluZVxuICAgICAgICAgIGN1cnJlbnQuaW5kZW50ID0gLyhbIFxcdF0rJCkvLmV4ZWMoYm9keVtpIC0gMV0ub3JpZ2luYWwpWzFdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkb1N0YW5kYWxvbmUgJiYgb3BlblN0YW5kYWxvbmUpIHtcbiAgICAgIG9taXRSaWdodCgoY3VycmVudC5wcm9ncmFtIHx8IGN1cnJlbnQuaW52ZXJzZSkuYm9keSk7XG5cbiAgICAgIC8vIFN0cmlwIG91dCB0aGUgcHJldmlvdXMgY29udGVudCBub2RlIGlmIGl0J3Mgd2hpdGVzcGFjZSBvbmx5XG4gICAgICBvbWl0TGVmdChib2R5LCBpKTtcbiAgICB9XG4gICAgaWYgKGRvU3RhbmRhbG9uZSAmJiBjbG9zZVN0YW5kYWxvbmUpIHtcbiAgICAgIC8vIEFsd2F5cyBzdHJpcCB0aGUgbmV4dCBub2RlXG4gICAgICBvbWl0UmlnaHQoYm9keSwgaSk7XG5cbiAgICAgIG9taXRMZWZ0KChjdXJyZW50LmludmVyc2UgfHwgY3VycmVudC5wcm9ncmFtKS5ib2R5KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcHJvZ3JhbTtcbn07XG5cbldoaXRlc3BhY2VDb250cm9sLnByb3RvdHlwZS5CbG9ja1N0YXRlbWVudCA9IFdoaXRlc3BhY2VDb250cm9sLnByb3RvdHlwZS5EZWNvcmF0b3JCbG9jayA9IFdoaXRlc3BhY2VDb250cm9sLnByb3RvdHlwZS5QYXJ0aWFsQmxvY2tTdGF0ZW1lbnQgPSBmdW5jdGlvbiAoYmxvY2spIHtcbiAgdGhpcy5hY2NlcHQoYmxvY2sucHJvZ3JhbSk7XG4gIHRoaXMuYWNjZXB0KGJsb2NrLmludmVyc2UpO1xuXG4gIC8vIEZpbmQgdGhlIGludmVyc2UgcHJvZ3JhbSB0aGF0IGlzIGludm9sZWQgd2l0aCB3aGl0ZXNwYWNlIHN0cmlwcGluZy5cbiAgdmFyIHByb2dyYW0gPSBibG9jay5wcm9ncmFtIHx8IGJsb2NrLmludmVyc2UsXG4gICAgICBpbnZlcnNlID0gYmxvY2sucHJvZ3JhbSAmJiBibG9jay5pbnZlcnNlLFxuICAgICAgZmlyc3RJbnZlcnNlID0gaW52ZXJzZSxcbiAgICAgIGxhc3RJbnZlcnNlID0gaW52ZXJzZTtcblxuICBpZiAoaW52ZXJzZSAmJiBpbnZlcnNlLmNoYWluZWQpIHtcbiAgICBmaXJzdEludmVyc2UgPSBpbnZlcnNlLmJvZHlbMF0ucHJvZ3JhbTtcblxuICAgIC8vIFdhbGsgdGhlIGludmVyc2UgY2hhaW4gdG8gZmluZCB0aGUgbGFzdCBpbnZlcnNlIHRoYXQgaXMgYWN0dWFsbHkgaW4gdGhlIGNoYWluLlxuICAgIHdoaWxlIChsYXN0SW52ZXJzZS5jaGFpbmVkKSB7XG4gICAgICBsYXN0SW52ZXJzZSA9IGxhc3RJbnZlcnNlLmJvZHlbbGFzdEludmVyc2UuYm9keS5sZW5ndGggLSAxXS5wcm9ncmFtO1xuICAgIH1cbiAgfVxuXG4gIHZhciBzdHJpcCA9IHtcbiAgICBvcGVuOiBibG9jay5vcGVuU3RyaXAub3BlbixcbiAgICBjbG9zZTogYmxvY2suY2xvc2VTdHJpcC5jbG9zZSxcblxuICAgIC8vIERldGVybWluZSB0aGUgc3RhbmRhbG9uZSBjYW5kaWFjeS4gQmFzaWNhbGx5IGZsYWcgb3VyIGNvbnRlbnQgYXMgYmVpbmcgcG9zc2libHkgc3RhbmRhbG9uZVxuICAgIC8vIHNvIG91ciBwYXJlbnQgY2FuIGRldGVybWluZSBpZiB3ZSBhY3R1YWxseSBhcmUgc3RhbmRhbG9uZVxuICAgIG9wZW5TdGFuZGFsb25lOiBpc05leHRXaGl0ZXNwYWNlKHByb2dyYW0uYm9keSksXG4gICAgY2xvc2VTdGFuZGFsb25lOiBpc1ByZXZXaGl0ZXNwYWNlKChmaXJzdEludmVyc2UgfHwgcHJvZ3JhbSkuYm9keSlcbiAgfTtcblxuICBpZiAoYmxvY2sub3BlblN0cmlwLmNsb3NlKSB7XG4gICAgb21pdFJpZ2h0KHByb2dyYW0uYm9keSwgbnVsbCwgdHJ1ZSk7XG4gIH1cblxuICBpZiAoaW52ZXJzZSkge1xuICAgIHZhciBpbnZlcnNlU3RyaXAgPSBibG9jay5pbnZlcnNlU3RyaXA7XG5cbiAgICBpZiAoaW52ZXJzZVN0cmlwLm9wZW4pIHtcbiAgICAgIG9taXRMZWZ0KHByb2dyYW0uYm9keSwgbnVsbCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgaWYgKGludmVyc2VTdHJpcC5jbG9zZSkge1xuICAgICAgb21pdFJpZ2h0KGZpcnN0SW52ZXJzZS5ib2R5LCBudWxsLCB0cnVlKTtcbiAgICB9XG4gICAgaWYgKGJsb2NrLmNsb3NlU3RyaXAub3Blbikge1xuICAgICAgb21pdExlZnQobGFzdEludmVyc2UuYm9keSwgbnVsbCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gRmluZCBzdGFuZGFsb25lIGVsc2Ugc3RhdG1lbnRzXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuaWdub3JlU3RhbmRhbG9uZSAmJiBpc1ByZXZXaGl0ZXNwYWNlKHByb2dyYW0uYm9keSkgJiYgaXNOZXh0V2hpdGVzcGFjZShmaXJzdEludmVyc2UuYm9keSkpIHtcbiAgICAgIG9taXRMZWZ0KHByb2dyYW0uYm9keSk7XG4gICAgICBvbWl0UmlnaHQoZmlyc3RJbnZlcnNlLmJvZHkpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChibG9jay5jbG9zZVN0cmlwLm9wZW4pIHtcbiAgICBvbWl0TGVmdChwcm9ncmFtLmJvZHksIG51bGwsIHRydWUpO1xuICB9XG5cbiAgcmV0dXJuIHN0cmlwO1xufTtcblxuV2hpdGVzcGFjZUNvbnRyb2wucHJvdG90eXBlLkRlY29yYXRvciA9IFdoaXRlc3BhY2VDb250cm9sLnByb3RvdHlwZS5NdXN0YWNoZVN0YXRlbWVudCA9IGZ1bmN0aW9uIChtdXN0YWNoZSkge1xuICByZXR1cm4gbXVzdGFjaGUuc3RyaXA7XG59O1xuXG5XaGl0ZXNwYWNlQ29udHJvbC5wcm90b3R5cGUuUGFydGlhbFN0YXRlbWVudCA9IFdoaXRlc3BhY2VDb250cm9sLnByb3RvdHlwZS5Db21tZW50U3RhdGVtZW50ID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgdmFyIHN0cmlwID0gbm9kZS5zdHJpcCB8fCB7fTtcbiAgcmV0dXJuIHtcbiAgICBpbmxpbmVTdGFuZGFsb25lOiB0cnVlLFxuICAgIG9wZW46IHN0cmlwLm9wZW4sXG4gICAgY2xvc2U6IHN0cmlwLmNsb3NlXG4gIH07XG59O1xuXG5mdW5jdGlvbiBpc1ByZXZXaGl0ZXNwYWNlKGJvZHksIGksIGlzUm9vdCkge1xuICBpZiAoaSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaSA9IGJvZHkubGVuZ3RoO1xuICB9XG5cbiAgLy8gTm9kZXMgdGhhdCBlbmQgd2l0aCBuZXdsaW5lcyBhcmUgY29uc2lkZXJlZCB3aGl0ZXNwYWNlIChidXQgYXJlIHNwZWNpYWxcbiAgLy8gY2FzZWQgZm9yIHN0cmlwIG9wZXJhdGlvbnMpXG4gIHZhciBwcmV2ID0gYm9keVtpIC0gMV0sXG4gICAgICBzaWJsaW5nID0gYm9keVtpIC0gMl07XG4gIGlmICghcHJldikge1xuICAgIHJldHVybiBpc1Jvb3Q7XG4gIH1cblxuICBpZiAocHJldi50eXBlID09PSAnQ29udGVudFN0YXRlbWVudCcpIHtcbiAgICByZXR1cm4gKHNpYmxpbmcgfHwgIWlzUm9vdCA/IC9cXHI/XFxuXFxzKj8kLyA6IC8oXnxcXHI/XFxuKVxccyo/JC8pLnRlc3QocHJldi5vcmlnaW5hbCk7XG4gIH1cbn1cbmZ1bmN0aW9uIGlzTmV4dFdoaXRlc3BhY2UoYm9keSwgaSwgaXNSb290KSB7XG4gIGlmIChpID09PSB1bmRlZmluZWQpIHtcbiAgICBpID0gLTE7XG4gIH1cblxuICB2YXIgbmV4dCA9IGJvZHlbaSArIDFdLFxuICAgICAgc2libGluZyA9IGJvZHlbaSArIDJdO1xuICBpZiAoIW5leHQpIHtcbiAgICByZXR1cm4gaXNSb290O1xuICB9XG5cbiAgaWYgKG5leHQudHlwZSA9PT0gJ0NvbnRlbnRTdGF0ZW1lbnQnKSB7XG4gICAgcmV0dXJuIChzaWJsaW5nIHx8ICFpc1Jvb3QgPyAvXlxccyo/XFxyP1xcbi8gOiAvXlxccyo/KFxccj9cXG58JCkvKS50ZXN0KG5leHQub3JpZ2luYWwpO1xuICB9XG59XG5cbi8vIE1hcmtzIHRoZSBub2RlIHRvIHRoZSByaWdodCBvZiB0aGUgcG9zaXRpb24gYXMgb21pdHRlZC5cbi8vIEkuZS4ge3tmb299fScgJyB3aWxsIG1hcmsgdGhlICcgJyBub2RlIGFzIG9taXR0ZWQuXG4vL1xuLy8gSWYgaSBpcyB1bmRlZmluZWQsIHRoZW4gdGhlIGZpcnN0IGNoaWxkIHdpbGwgYmUgbWFya2VkIGFzIHN1Y2guXG4vL1xuLy8gSWYgbXVsaXRwbGUgaXMgdHJ1dGh5IHRoZW4gYWxsIHdoaXRlc3BhY2Ugd2lsbCBiZSBzdHJpcHBlZCBvdXQgdW50aWwgbm9uLXdoaXRlc3BhY2Vcbi8vIGNvbnRlbnQgaXMgbWV0LlxuZnVuY3Rpb24gb21pdFJpZ2h0KGJvZHksIGksIG11bHRpcGxlKSB7XG4gIHZhciBjdXJyZW50ID0gYm9keVtpID09IG51bGwgPyAwIDogaSArIDFdO1xuICBpZiAoIWN1cnJlbnQgfHwgY3VycmVudC50eXBlICE9PSAnQ29udGVudFN0YXRlbWVudCcgfHwgIW11bHRpcGxlICYmIGN1cnJlbnQucmlnaHRTdHJpcHBlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBvcmlnaW5hbCA9IGN1cnJlbnQudmFsdWU7XG4gIGN1cnJlbnQudmFsdWUgPSBjdXJyZW50LnZhbHVlLnJlcGxhY2UobXVsdGlwbGUgPyAvXlxccysvIDogL15bIFxcdF0qXFxyP1xcbj8vLCAnJyk7XG4gIGN1cnJlbnQucmlnaHRTdHJpcHBlZCA9IGN1cnJlbnQudmFsdWUgIT09IG9yaWdpbmFsO1xufVxuXG4vLyBNYXJrcyB0aGUgbm9kZSB0byB0aGUgbGVmdCBvZiB0aGUgcG9zaXRpb24gYXMgb21pdHRlZC5cbi8vIEkuZS4gJyAne3tmb299fSB3aWxsIG1hcmsgdGhlICcgJyBub2RlIGFzIG9taXR0ZWQuXG4vL1xuLy8gSWYgaSBpcyB1bmRlZmluZWQgdGhlbiB0aGUgbGFzdCBjaGlsZCB3aWxsIGJlIG1hcmtlZCBhcyBzdWNoLlxuLy9cbi8vIElmIG11bGl0cGxlIGlzIHRydXRoeSB0aGVuIGFsbCB3aGl0ZXNwYWNlIHdpbGwgYmUgc3RyaXBwZWQgb3V0IHVudGlsIG5vbi13aGl0ZXNwYWNlXG4vLyBjb250ZW50IGlzIG1ldC5cbmZ1bmN0aW9uIG9taXRMZWZ0KGJvZHksIGksIG11bHRpcGxlKSB7XG4gIHZhciBjdXJyZW50ID0gYm9keVtpID09IG51bGwgPyBib2R5Lmxlbmd0aCAtIDEgOiBpIC0gMV07XG4gIGlmICghY3VycmVudCB8fCBjdXJyZW50LnR5cGUgIT09ICdDb250ZW50U3RhdGVtZW50JyB8fCAhbXVsdGlwbGUgJiYgY3VycmVudC5sZWZ0U3RyaXBwZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBXZSBvbWl0IHRoZSBsYXN0IG5vZGUgaWYgaXQncyB3aGl0ZXNwYWNlIG9ubHkgYW5kIG5vdCBwcmVjZWRlZCBieSBhIG5vbi1jb250ZW50IG5vZGUuXG4gIHZhciBvcmlnaW5hbCA9IGN1cnJlbnQudmFsdWU7XG4gIGN1cnJlbnQudmFsdWUgPSBjdXJyZW50LnZhbHVlLnJlcGxhY2UobXVsdGlwbGUgPyAvXFxzKyQvIDogL1sgXFx0XSskLywgJycpO1xuICBjdXJyZW50LmxlZnRTdHJpcHBlZCA9IGN1cnJlbnQudmFsdWUgIT09IG9yaWdpbmFsO1xuICByZXR1cm4gY3VycmVudC5sZWZ0U3RyaXBwZWQ7XG59XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFdoaXRlc3BhY2VDb250cm9sO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDJ4cFlpOW9ZVzVrYkdWaVlYSnpMMk52YlhCcGJHVnlMM2RvYVhSbGMzQmhZMlV0WTI5dWRISnZiQzVxY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPM1ZDUVVGdlFpeFhRVUZYT3pzN08wRkJSUzlDTEZOQlFWTXNhVUpCUVdsQ0xFZEJRV1U3VFVGQlpDeFBRVUZQTEhsRVFVRkhMRVZCUVVVN08wRkJRM0pETEUxQlFVa3NRMEZCUXl4UFFVRlBMRWRCUVVjc1QwRkJUeXhEUVVGRE8wTkJRM2hDTzBGQlEwUXNhVUpCUVdsQ0xFTkJRVU1zVTBGQlV5eEhRVUZITERCQ1FVRmhMRU5CUVVNN08wRkJSVFZETEdsQ1FVRnBRaXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVkQlFVY3NWVUZCVXl4UFFVRlBMRVZCUVVVN1FVRkRkRVFzVFVGQlRTeFpRVUZaTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExHZENRVUZuUWl4RFFVRkRPenRCUVVWd1JDeE5RVUZKTEUxQlFVMHNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU03UVVGRE9VSXNUVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhKUVVGSkxFTkJRVU03TzBGQlJYWkNMRTFCUVVrc1NVRkJTU3hIUVVGSExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZEZUVJc1QwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRCUVVNelF5eFJRVUZKTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMjVDTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZET3p0QlFVVXZRaXhSUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTzBGQlExWXNaVUZCVXp0TFFVTldPenRCUVVWRUxGRkJRVWtzYVVKQlFXbENMRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1JVRkJSU3hOUVVGTkxFTkJRVU03VVVGRGRrUXNhVUpCUVdsQ0xFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUlVGQlJTeE5RVUZOTEVOQlFVTTdVVUZEY2tRc1kwRkJZeXhIUVVGSExFdEJRVXNzUTBGQlF5eGpRVUZqTEVsQlFVa3NhVUpCUVdsQ08xRkJRekZFTEdWQlFXVXNSMEZCUnl4TFFVRkxMRU5CUVVNc1pVRkJaU3hKUVVGSkxHbENRVUZwUWp0UlFVTTFSQ3huUWtGQlowSXNSMEZEWkN4TFFVRkxMRU5CUVVNc1owSkJRV2RDTEVsQlFVa3NhVUpCUVdsQ0xFbEJRVWtzYVVKQlFXbENMRU5CUVVNN08wRkJSWEpGTEZGQlFVa3NTMEZCU3l4RFFVRkRMRXRCUVVzc1JVRkJSVHRCUVVObUxHVkJRVk1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wdEJRekZDTzBGQlEwUXNVVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRk8wRkJRMlFzWTBGQlVTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRGVrSTdPMEZCUlVRc1VVRkJTU3haUVVGWkxFbEJRVWtzWjBKQlFXZENMRVZCUVVVN1FVRkRjRU1zWlVGQlV5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenM3UVVGRmJrSXNWVUZCU1N4UlFVRlJMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZGT3p0QlFVVnlRaXhaUVVGSkxFOUJRVThzUTBGQlF5eEpRVUZKTEV0QlFVc3NhMEpCUVd0Q0xFVkJRVVU3TzBGQlJYWkRMR2xDUVVGUExFTkJRVU1zVFVGQlRTeEhRVUZITEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFRRVU0xUkR0UFFVTkdPMHRCUTBZN1FVRkRSQ3hSUVVGSkxGbEJRVmtzU1VGQlNTeGpRVUZqTEVWQlFVVTdRVUZEYkVNc1pVRkJVeXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNTVUZCU1N4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGQkxFTkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdPenRCUVVkeVJDeGpRVUZSTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wdEJRMjVDTzBGQlEwUXNVVUZCU1N4WlFVRlpMRWxCUVVrc1pVRkJaU3hGUVVGRk96dEJRVVZ1UXl4bFFVRlRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZET3p0QlFVVnVRaXhqUVVGUkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNUMEZCVHl4SlFVRkpMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVUVzUTBGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0TFFVTnlSRHRIUVVOR096dEJRVVZFTEZOQlFVOHNUMEZCVHl4RFFVRkRPME5CUTJoQ0xFTkJRVU03TzBGQlJVWXNhVUpCUVdsQ0xFTkJRVU1zVTBGQlV5eERRVUZETEdOQlFXTXNSMEZCUnl4cFFrRkJhVUlzUTBGQlF5eFRRVUZUTEVOQlFVTXNZMEZCWXl4SFFVRkhMR2xDUVVGcFFpeERRVUZETEZOQlFWTXNRMEZCUXl4eFFrRkJjVUlzUjBGQlJ5eFZRVU0xU1N4TFFVRkxMRVZCUTB3N1FVRkRRU3hOUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVNelFpeE5RVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6czdPMEZCUnpOQ0xFMUJRVWtzVDBGQlR5eEhRVUZITEV0QlFVc3NRMEZCUXl4UFFVRlBMRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVTg3VFVGRE1VTXNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhQUVVGUExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVODdUVUZEZUVNc1dVRkJXU3hIUVVGSExFOUJRVTg3VFVGRGRFSXNWMEZCVnl4SFFVRkhMRTlCUVU4c1EwRkJRenM3UVVGRmVFSXNUVUZCU1N4UFFVRlBMRWxCUVVrc1QwRkJUeXhEUVVGRExFOUJRVThzUlVGQlJUdEJRVU01UWl4blFrRkJXU3hIUVVGSExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRE96czdRVUZIZGtNc1YwRkJUeXhYUVVGWExFTkJRVU1zVDBGQlR5eEZRVUZGTzBGQlF6RkNMR2xDUVVGWExFZEJRVWNzVjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNN1MwRkRja1U3UjBGRFJqczdRVUZGUkN4TlFVRkpMRXRCUVVzc1IwRkJSenRCUVVOV0xGRkJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrN1FVRkRNVUlzVTBGQlN5eEZRVUZGTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1MwRkJTenM3T3p0QlFVazNRaXhyUWtGQll5eEZRVUZGTEdkQ1FVRm5RaXhEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTTdRVUZET1VNc2JVSkJRV1VzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExGbEJRVmtzU1VGQlNTeFBRVUZQTEVOQlFVRXNRMEZCUlN4SlFVRkpMRU5CUVVNN1IwRkRiRVVzUTBGQlF6czdRVUZGUml4TlFVRkpMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eEZRVUZGTzBGQlEzcENMR0ZCUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRIUVVOeVF6czdRVUZGUkN4TlFVRkpMRTlCUVU4c1JVRkJSVHRCUVVOWUxGRkJRVWtzV1VGQldTeEhRVUZITEV0QlFVc3NRMEZCUXl4WlFVRlpMRU5CUVVNN08wRkJSWFJETEZGQlFVa3NXVUZCV1N4RFFVRkRMRWxCUVVrc1JVRkJSVHRCUVVOeVFpeGpRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTMEZEY0VNN08wRkJSVVFzVVVGQlNTeFpRVUZaTEVOQlFVTXNTMEZCU3l4RlFVRkZPMEZCUTNSQ0xHVkJRVk1zUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dExRVU14UXp0QlFVTkVMRkZCUVVrc1MwRkJTeXhEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVWQlFVVTdRVUZEZWtJc1kwRkJVU3hEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wdEJRM2hET3pzN1FVRkhSQ3hSUVVORkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4blFrRkJaMElzU1VGRE9VSXNaMEpCUVdkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVTTVRaXhuUWtGQlowSXNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRMjVETzBGQlEwRXNZMEZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU4yUWl4bFFVRlRMRU5CUVVNc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzB0QlF6bENPMGRCUTBZc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RlFVRkZPMEZCUTJoRExGbEJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEhRVU53UXpzN1FVRkZSQ3hUUVVGUExFdEJRVXNzUTBGQlF6dERRVU5rTEVOQlFVTTdPMEZCUlVZc2FVSkJRV2xDTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhwUWtGQmFVSXNRMEZCUXl4VFFVRlRMRU5CUVVNc2FVSkJRV2xDTEVkQlFVY3NWVUZEZEVZc1VVRkJVU3hGUVVOU08wRkJRMEVzVTBGQlR5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRPME5CUTNaQ0xFTkJRVU03TzBGQlJVWXNhVUpCUVdsQ0xFTkJRVU1zVTBGQlV5eERRVUZETEdkQ1FVRm5RaXhIUVVGSExHbENRVUZwUWl4RFFVRkRMRk5CUVZNc1EwRkJReXhuUWtGQlowSXNSMEZCUnl4VlFVTTFSaXhKUVVGSkxFVkJRMG83TzBGQlJVRXNUVUZCU1N4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzU1VGQlNTeEZRVUZGTEVOQlFVTTdRVUZETjBJc1UwRkJUenRCUVVOTUxHOUNRVUZuUWl4RlFVRkZMRWxCUVVrN1FVRkRkRUlzVVVGQlNTeEZRVUZGTEV0QlFVc3NRMEZCUXl4SlFVRkpPMEZCUTJoQ0xGTkJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNTMEZCU3p0SFFVTnVRaXhEUVVGRE8wTkJRMGdzUTBGQlF6czdRVUZGUml4VFFVRlRMR2RDUVVGblFpeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRVZCUVVVc1RVRkJUU3hGUVVGRk8wRkJRM3BETEUxQlFVa3NRMEZCUXl4TFFVRkxMRk5CUVZNc1JVRkJSVHRCUVVOdVFpeExRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJRenRIUVVOcVFqczdPenRCUVVsRUxFMUJRVWtzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wMUJRM0JDTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzaENMRTFCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVU3UVVGRFZDeFhRVUZQTEUxQlFVMHNRMEZCUXp0SFFVTm1PenRCUVVWRUxFMUJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NTMEZCU3l4clFrRkJhMElzUlVGQlJUdEJRVU53UXl4WFFVRlBMRU5CUVVNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEZsQlFWa3NSMEZCUnl4blFrRkJaMElzUTBGQlFTeERRVUZGTEVsQlFVa3NRMEZEYUVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGRFpDeERRVUZETzBkQlEwZzdRMEZEUmp0QlFVTkVMRk5CUVZNc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1JVRkJSU3hOUVVGTkxFVkJRVVU3UVVGRGVrTXNUVUZCU1N4RFFVRkRMRXRCUVVzc1UwRkJVeXhGUVVGRk8wRkJRMjVDTEV0QlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRIUVVOU096dEJRVVZFTEUxQlFVa3NTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzAxQlEzQkNMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNoQ0xFMUJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVTdRVUZEVkN4WFFVRlBMRTFCUVUwc1EwRkJRenRIUVVObU96dEJRVVZFTEUxQlFVa3NTVUZCU1N4RFFVRkRMRWxCUVVrc1MwRkJTeXhyUWtGQmEwSXNSVUZCUlR0QlFVTndReXhYUVVGUExFTkJRVU1zVDBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRmxCUVZrc1IwRkJSeXhuUWtGQlowSXNRMEZCUVN4RFFVRkZMRWxCUVVrc1EwRkRhRVVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZEWkN4RFFVRkRPMGRCUTBnN1EwRkRSanM3T3pzN096czdPMEZCVTBRc1UwRkJVeXhUUVVGVExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVVN1FVRkRjRU1zVFVGQlNTeFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hKUVVGSkxFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNeFF5eE5RVU5GTEVOQlFVTXNUMEZCVHl4SlFVTlNMRTlCUVU4c1EwRkJReXhKUVVGSkxFdEJRVXNzYTBKQlFXdENMRWxCUTJ4RExFTkJRVU1zVVVGQlVTeEpRVUZKTEU5QlFVOHNRMEZCUXl4aFFVRmhMRUZCUVVNc1JVRkRjRU03UVVGRFFTeFhRVUZQTzBkQlExSTdPMEZCUlVRc1RVRkJTU3hSUVVGUkxFZEJRVWNzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXp0QlFVTTNRaXhUUVVGUExFTkJRVU1zUzBGQlN5eEhRVUZITEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVOdVF5eFJRVUZSTEVkQlFVY3NUVUZCVFN4SFFVRkhMR1ZCUVdVc1JVRkRia01zUlVGQlJTeERRVU5JTEVOQlFVTTdRVUZEUml4VFFVRlBMRU5CUVVNc1lVRkJZU3hIUVVGSExFOUJRVThzUTBGQlF5eExRVUZMTEV0QlFVc3NVVUZCVVN4RFFVRkRPME5CUTNCRU96czdPenM3T3pzN1FVRlRSQ3hUUVVGVExGRkJRVkVzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSVHRCUVVOdVF5eE5RVUZKTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhKUVVGSkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZUVRc1RVRkRSU3hEUVVGRExFOUJRVThzU1VGRFVpeFBRVUZQTEVOQlFVTXNTVUZCU1N4TFFVRkxMR3RDUVVGclFpeEpRVU5zUXl4RFFVRkRMRkZCUVZFc1NVRkJTU3hQUVVGUExFTkJRVU1zV1VGQldTeEJRVUZETEVWQlEyNURPMEZCUTBFc1YwRkJUenRIUVVOU096czdRVUZIUkN4TlFVRkpMRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETzBGQlF6ZENMRk5CUVU4c1EwRkJReXhMUVVGTExFZEJRVWNzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1VVRkJVU3hIUVVGSExFMUJRVTBzUjBGQlJ5eFRRVUZUTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRla1VzVTBGQlR5eERRVUZETEZsQlFWa3NSMEZCUnl4UFFVRlBMRU5CUVVNc1MwRkJTeXhMUVVGTExGRkJRVkVzUTBGQlF6dEJRVU5zUkN4VFFVRlBMRTlCUVU4c1EwRkJReXhaUVVGWkxFTkJRVU03UTBGRE4wSTdPM0ZDUVVWakxHbENRVUZwUWlJc0ltWnBiR1VpT2lKM2FHbDBaWE53WVdObExXTnZiblJ5YjJ3dWFuTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdWbWx6YVhSdmNpQm1jbTl0SUNjdUwzWnBjMmwwYjNJbk8xeHVYRzVtZFc1amRHbHZiaUJYYUdsMFpYTndZV05sUTI5dWRISnZiQ2h2Y0hScGIyNXpJRDBnZTMwcElIdGNiaUFnZEdocGN5NXZjSFJwYjI1eklEMGdiM0IwYVc5dWN6dGNibjFjYmxkb2FYUmxjM0JoWTJWRGIyNTBjbTlzTG5CeWIzUnZkSGx3WlNBOUlHNWxkeUJXYVhOcGRHOXlLQ2s3WEc1Y2JsZG9hWFJsYzNCaFkyVkRiMjUwY205c0xuQnliM1J2ZEhsd1pTNVFjbTluY21GdElEMGdablZ1WTNScGIyNG9jSEp2WjNKaGJTa2dlMXh1SUNCamIyNXpkQ0JrYjFOMFlXNWtZV3h2Ym1VZ1BTQWhkR2hwY3k1dmNIUnBiMjV6TG1sbmJtOXlaVk4wWVc1a1lXeHZibVU3WEc1Y2JpQWdiR1YwSUdselVtOXZkQ0E5SUNGMGFHbHpMbWx6VW05dmRGTmxaVzQ3WEc0Z0lIUm9hWE11YVhOU2IyOTBVMlZsYmlBOUlIUnlkV1U3WEc1Y2JpQWdiR1YwSUdKdlpIa2dQU0J3Y205bmNtRnRMbUp2WkhrN1hHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd0xDQnNJRDBnWW05a2VTNXNaVzVuZEdnN0lHa2dQQ0JzT3lCcEt5c3BJSHRjYmlBZ0lDQnNaWFFnWTNWeWNtVnVkQ0E5SUdKdlpIbGJhVjBzWEc0Z0lDQWdJQ0J6ZEhKcGNDQTlJSFJvYVhNdVlXTmpaWEIwS0dOMWNuSmxiblFwTzF4dVhHNGdJQ0FnYVdZZ0tDRnpkSEpwY0NrZ2UxeHVJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYkdWMElGOXBjMUJ5WlhaWGFHbDBaWE53WVdObElEMGdhWE5RY21WMlYyaHBkR1Z6Y0dGalpTaGliMlI1TENCcExDQnBjMUp2YjNRcExGeHVJQ0FnSUNBZ1gybHpUbVY0ZEZkb2FYUmxjM0JoWTJVZ1BTQnBjMDVsZUhSWGFHbDBaWE53WVdObEtHSnZaSGtzSUdrc0lHbHpVbTl2ZENrc1hHNGdJQ0FnSUNCdmNHVnVVM1JoYm1SaGJHOXVaU0E5SUhOMGNtbHdMbTl3Wlc1VGRHRnVaR0ZzYjI1bElDWW1JRjlwYzFCeVpYWlhhR2wwWlhOd1lXTmxMRnh1SUNBZ0lDQWdZMnh2YzJWVGRHRnVaR0ZzYjI1bElEMGdjM1J5YVhBdVkyeHZjMlZUZEdGdVpHRnNiMjVsSUNZbUlGOXBjMDVsZUhSWGFHbDBaWE53WVdObExGeHVJQ0FnSUNBZ2FXNXNhVzVsVTNSaGJtUmhiRzl1WlNBOVhHNGdJQ0FnSUNBZ0lITjBjbWx3TG1sdWJHbHVaVk4wWVc1a1lXeHZibVVnSmlZZ1gybHpVSEpsZGxkb2FYUmxjM0JoWTJVZ0ppWWdYMmx6VG1WNGRGZG9hWFJsYzNCaFkyVTdYRzVjYmlBZ0lDQnBaaUFvYzNSeWFYQXVZMnh2YzJVcElIdGNiaUFnSUNBZ0lHOXRhWFJTYVdkb2RDaGliMlI1TENCcExDQjBjblZsS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0hOMGNtbHdMbTl3Wlc0cElIdGNiaUFnSUNBZ0lHOXRhWFJNWldaMEtHSnZaSGtzSUdrc0lIUnlkV1VwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoa2IxTjBZVzVrWVd4dmJtVWdKaVlnYVc1c2FXNWxVM1JoYm1SaGJHOXVaU2tnZTF4dUlDQWdJQ0FnYjIxcGRGSnBaMmgwS0dKdlpIa3NJR2twTzF4dVhHNGdJQ0FnSUNCcFppQW9iMjFwZEV4bFpuUW9ZbTlrZVN3Z2FTa3BJSHRjYmlBZ0lDQWdJQ0FnTHk4Z1NXWWdkMlVnWVhKbElHOXVJR0VnYzNSaGJtUmhiRzl1WlNCdWIyUmxMQ0J6WVhabElIUm9aU0JwYm1SbGJuUWdhVzVtYnlCbWIzSWdjR0Z5ZEdsaGJITmNiaUFnSUNBZ0lDQWdhV1lnS0dOMWNuSmxiblF1ZEhsd1pTQTlQVDBnSjFCaGNuUnBZV3hUZEdGMFpXMWxiblFuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdMeThnVUhWc2JDQnZkWFFnZEdobElIZG9hWFJsYzNCaFkyVWdabkp2YlNCMGFHVWdabWx1WVd3Z2JHbHVaVnh1SUNBZ0lDQWdJQ0FnSUdOMWNuSmxiblF1YVc1a1pXNTBJRDBnTHloYklGeGNkRjBySkNrdkxtVjRaV01vWW05a2VWdHBJQzBnTVYwdWIzSnBaMmx1WVd3cFd6RmRPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hrYjFOMFlXNWtZV3h2Ym1VZ0ppWWdiM0JsYmxOMFlXNWtZV3h2Ym1VcElIdGNiaUFnSUNBZ0lHOXRhWFJTYVdkb2RDZ29ZM1Z5Y21WdWRDNXdjbTluY21GdElIeDhJR04xY25KbGJuUXVhVzUyWlhKelpTa3VZbTlrZVNrN1hHNWNiaUFnSUNBZ0lDOHZJRk4wY21sd0lHOTFkQ0IwYUdVZ2NISmxkbWx2ZFhNZ1kyOXVkR1Z1ZENCdWIyUmxJR2xtSUdsMEozTWdkMmhwZEdWemNHRmpaU0J2Ym14NVhHNGdJQ0FnSUNCdmJXbDBUR1ZtZENoaWIyUjVMQ0JwS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0dSdlUzUmhibVJoYkc5dVpTQW1KaUJqYkc5elpWTjBZVzVrWVd4dmJtVXBJSHRjYmlBZ0lDQWdJQzh2SUVGc2QyRjVjeUJ6ZEhKcGNDQjBhR1VnYm1WNGRDQnViMlJsWEc0Z0lDQWdJQ0J2YldsMFVtbG5hSFFvWW05a2VTd2dhU2s3WEc1Y2JpQWdJQ0FnSUc5dGFYUk1aV1owS0NoamRYSnlaVzUwTG1sdWRtVnljMlVnZkh3Z1kzVnljbVZ1ZEM1d2NtOW5jbUZ0S1M1aWIyUjVLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdjSEp2WjNKaGJUdGNibjA3WEc1Y2JsZG9hWFJsYzNCaFkyVkRiMjUwY205c0xuQnliM1J2ZEhsd1pTNUNiRzlqYTFOMFlYUmxiV1Z1ZENBOUlGZG9hWFJsYzNCaFkyVkRiMjUwY205c0xuQnliM1J2ZEhsd1pTNUVaV052Y21GMGIzSkNiRzlqYXlBOUlGZG9hWFJsYzNCaFkyVkRiMjUwY205c0xuQnliM1J2ZEhsd1pTNVFZWEowYVdGc1FteHZZMnRUZEdGMFpXMWxiblFnUFNCbWRXNWpkR2x2YmloY2JpQWdZbXh2WTJ0Y2Jpa2dlMXh1SUNCMGFHbHpMbUZqWTJWd2RDaGliRzlqYXk1d2NtOW5jbUZ0S1R0Y2JpQWdkR2hwY3k1aFkyTmxjSFFvWW14dlkyc3VhVzUyWlhKelpTazdYRzVjYmlBZ0x5OGdSbWx1WkNCMGFHVWdhVzUyWlhKelpTQndjbTluY21GdElIUm9ZWFFnYVhNZ2FXNTJiMnhsWkNCM2FYUm9JSGRvYVhSbGMzQmhZMlVnYzNSeWFYQndhVzVuTGx4dUlDQnNaWFFnY0hKdlozSmhiU0E5SUdKc2IyTnJMbkJ5YjJkeVlXMGdmSHdnWW14dlkyc3VhVzUyWlhKelpTeGNiaUFnSUNCcGJuWmxjbk5sSUQwZ1lteHZZMnN1Y0hKdlozSmhiU0FtSmlCaWJHOWpheTVwYm5abGNuTmxMRnh1SUNBZ0lHWnBjbk4wU1c1MlpYSnpaU0E5SUdsdWRtVnljMlVzWEc0Z0lDQWdiR0Z6ZEVsdWRtVnljMlVnUFNCcGJuWmxjbk5sTzF4dVhHNGdJR2xtSUNocGJuWmxjbk5sSUNZbUlHbHVkbVZ5YzJVdVkyaGhhVzVsWkNrZ2UxeHVJQ0FnSUdacGNuTjBTVzUyWlhKelpTQTlJR2x1ZG1WeWMyVXVZbTlrZVZzd1hTNXdjbTluY21GdE8xeHVYRzRnSUNBZ0x5OGdWMkZzYXlCMGFHVWdhVzUyWlhKelpTQmphR0ZwYmlCMGJ5Qm1hVzVrSUhSb1pTQnNZWE4wSUdsdWRtVnljMlVnZEdoaGRDQnBjeUJoWTNSMVlXeHNlU0JwYmlCMGFHVWdZMmhoYVc0dVhHNGdJQ0FnZDJocGJHVWdLR3hoYzNSSmJuWmxjbk5sTG1Ob1lXbHVaV1FwSUh0Y2JpQWdJQ0FnSUd4aGMzUkpiblpsY25ObElEMGdiR0Z6ZEVsdWRtVnljMlV1WW05a2VWdHNZWE4wU1c1MlpYSnpaUzVpYjJSNUxteGxibWQwYUNBdElERmRMbkJ5YjJkeVlXMDdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdiR1YwSUhOMGNtbHdJRDBnZTF4dUlDQWdJRzl3Wlc0NklHSnNiMk5yTG05d1pXNVRkSEpwY0M1dmNHVnVMRnh1SUNBZ0lHTnNiM05sT2lCaWJHOWpheTVqYkc5elpWTjBjbWx3TG1Oc2IzTmxMRnh1WEc0Z0lDQWdMeThnUkdWMFpYSnRhVzVsSUhSb1pTQnpkR0Z1WkdGc2IyNWxJR05oYm1ScFlXTjVMaUJDWVhOcFkyRnNiSGtnWm14aFp5QnZkWElnWTI5dWRHVnVkQ0JoY3lCaVpXbHVaeUJ3YjNOemFXSnNlU0J6ZEdGdVpHRnNiMjVsWEc0Z0lDQWdMeThnYzI4Z2IzVnlJSEJoY21WdWRDQmpZVzRnWkdWMFpYSnRhVzVsSUdsbUlIZGxJR0ZqZEhWaGJHeDVJR0Z5WlNCemRHRnVaR0ZzYjI1bFhHNGdJQ0FnYjNCbGJsTjBZVzVrWVd4dmJtVTZJR2x6VG1WNGRGZG9hWFJsYzNCaFkyVW9jSEp2WjNKaGJTNWliMlI1S1N4Y2JpQWdJQ0JqYkc5elpWTjBZVzVrWVd4dmJtVTZJR2x6VUhKbGRsZG9hWFJsYzNCaFkyVW9LR1pwY25OMFNXNTJaWEp6WlNCOGZDQndjbTluY21GdEtTNWliMlI1S1Z4dUlDQjlPMXh1WEc0Z0lHbG1JQ2hpYkc5amF5NXZjR1Z1VTNSeWFYQXVZMnh2YzJVcElIdGNiaUFnSUNCdmJXbDBVbWxuYUhRb2NISnZaM0poYlM1aWIyUjVMQ0J1ZFd4c0xDQjBjblZsS1R0Y2JpQWdmVnh1WEc0Z0lHbG1JQ2hwYm5abGNuTmxLU0I3WEc0Z0lDQWdiR1YwSUdsdWRtVnljMlZUZEhKcGNDQTlJR0pzYjJOckxtbHVkbVZ5YzJWVGRISnBjRHRjYmx4dUlDQWdJR2xtSUNocGJuWmxjbk5sVTNSeWFYQXViM0JsYmlrZ2UxeHVJQ0FnSUNBZ2IyMXBkRXhsWm5Rb2NISnZaM0poYlM1aWIyUjVMQ0J1ZFd4c0xDQjBjblZsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2FXNTJaWEp6WlZOMGNtbHdMbU5zYjNObEtTQjdYRzRnSUNBZ0lDQnZiV2wwVW1sbmFIUW9abWx5YzNSSmJuWmxjbk5sTG1KdlpIa3NJRzUxYkd3c0lIUnlkV1VwTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvWW14dlkyc3VZMnh2YzJWVGRISnBjQzV2Y0dWdUtTQjdYRzRnSUNBZ0lDQnZiV2wwVEdWbWRDaHNZWE4wU1c1MlpYSnpaUzVpYjJSNUxDQnVkV3hzTENCMGNuVmxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJHYVc1a0lITjBZVzVrWVd4dmJtVWdaV3h6WlNCemRHRjBiV1Z1ZEhOY2JpQWdJQ0JwWmlBb1hHNGdJQ0FnSUNBaGRHaHBjeTV2Y0hScGIyNXpMbWxuYm05eVpWTjBZVzVrWVd4dmJtVWdKaVpjYmlBZ0lDQWdJR2x6VUhKbGRsZG9hWFJsYzNCaFkyVW9jSEp2WjNKaGJTNWliMlI1S1NBbUpseHVJQ0FnSUNBZ2FYTk9aWGgwVjJocGRHVnpjR0ZqWlNobWFYSnpkRWx1ZG1WeWMyVXVZbTlrZVNsY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUc5dGFYUk1aV1owS0hCeWIyZHlZVzB1WW05a2VTazdYRzRnSUNBZ0lDQnZiV2wwVW1sbmFIUW9abWx5YzNSSmJuWmxjbk5sTG1KdlpIa3BPMXh1SUNBZ0lIMWNiaUFnZlNCbGJITmxJR2xtSUNoaWJHOWpheTVqYkc5elpWTjBjbWx3TG05d1pXNHBJSHRjYmlBZ0lDQnZiV2wwVEdWbWRDaHdjbTluY21GdExtSnZaSGtzSUc1MWJHd3NJSFJ5ZFdVcE8xeHVJQ0I5WEc1Y2JpQWdjbVYwZFhKdUlITjBjbWx3TzF4dWZUdGNibHh1VjJocGRHVnpjR0ZqWlVOdmJuUnliMnd1Y0hKdmRHOTBlWEJsTGtSbFkyOXlZWFJ2Y2lBOUlGZG9hWFJsYzNCaFkyVkRiMjUwY205c0xuQnliM1J2ZEhsd1pTNU5kWE4wWVdOb1pWTjBZWFJsYldWdWRDQTlJR1oxYm1OMGFXOXVLRnh1SUNCdGRYTjBZV05vWlZ4dUtTQjdYRzRnSUhKbGRIVnliaUJ0ZFhOMFlXTm9aUzV6ZEhKcGNEdGNibjA3WEc1Y2JsZG9hWFJsYzNCaFkyVkRiMjUwY205c0xuQnliM1J2ZEhsd1pTNVFZWEowYVdGc1UzUmhkR1Z0Wlc1MElEMGdWMmhwZEdWemNHRmpaVU52Ym5SeWIyd3VjSEp2ZEc5MGVYQmxMa052YlcxbGJuUlRkR0YwWlcxbGJuUWdQU0JtZFc1amRHbHZiaWhjYmlBZ2JtOWtaVnh1S1NCN1hHNGdJQzhxSUdsemRHRnVZblZzSUdsbmJtOXlaU0J1WlhoMElDb3ZYRzRnSUd4bGRDQnpkSEpwY0NBOUlHNXZaR1V1YzNSeWFYQWdmSHdnZTMwN1hHNGdJSEpsZEhWeWJpQjdYRzRnSUNBZ2FXNXNhVzVsVTNSaGJtUmhiRzl1WlRvZ2RISjFaU3hjYmlBZ0lDQnZjR1Z1T2lCemRISnBjQzV2Y0dWdUxGeHVJQ0FnSUdOc2IzTmxPaUJ6ZEhKcGNDNWpiRzl6WlZ4dUlDQjlPMXh1ZlR0Y2JseHVablZ1WTNScGIyNGdhWE5RY21WMlYyaHBkR1Z6Y0dGalpTaGliMlI1TENCcExDQnBjMUp2YjNRcElIdGNiaUFnYVdZZ0tHa2dQVDA5SUhWdVpHVm1hVzVsWkNrZ2UxeHVJQ0FnSUdrZ1BTQmliMlI1TG14bGJtZDBhRHRjYmlBZ2ZWeHVYRzRnSUM4dklFNXZaR1Z6SUhSb1lYUWdaVzVrSUhkcGRHZ2dibVYzYkdsdVpYTWdZWEpsSUdOdmJuTnBaR1Z5WldRZ2QyaHBkR1Z6Y0dGalpTQW9ZblYwSUdGeVpTQnpjR1ZqYVdGc1hHNGdJQzh2SUdOaGMyVmtJR1p2Y2lCemRISnBjQ0J2Y0dWeVlYUnBiMjV6S1Z4dUlDQnNaWFFnY0hKbGRpQTlJR0p2WkhsYmFTQXRJREZkTEZ4dUlDQWdJSE5wWW14cGJtY2dQU0JpYjJSNVcya2dMU0F5WFR0Y2JpQWdhV1lnS0NGd2NtVjJLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHbHpVbTl2ZER0Y2JpQWdmVnh1WEc0Z0lHbG1JQ2h3Y21WMkxuUjVjR1VnUFQwOUlDZERiMjUwWlc1MFUzUmhkR1Z0Wlc1MEp5a2dlMXh1SUNBZ0lISmxkSFZ5YmlBb2MybGliR2x1WnlCOGZDQWhhWE5TYjI5MElEOGdMMXhjY2o5Y1hHNWNYSE1xUHlRdklEb2dMeWhlZkZ4Y2NqOWNYRzRwWEZ4ektqOGtMeWt1ZEdWemRDaGNiaUFnSUNBZ0lIQnlaWFl1YjNKcFoybHVZV3hjYmlBZ0lDQXBPMXh1SUNCOVhHNTlYRzVtZFc1amRHbHZiaUJwYzA1bGVIUlhhR2wwWlhOd1lXTmxLR0p2Wkhrc0lHa3NJR2x6VW05dmRDa2dlMXh1SUNCcFppQW9hU0E5UFQwZ2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ2FTQTlJQzB4TzF4dUlDQjlYRzVjYmlBZ2JHVjBJRzVsZUhRZ1BTQmliMlI1VzJrZ0t5QXhYU3hjYmlBZ0lDQnphV0pzYVc1bklEMGdZbTlrZVZ0cElDc2dNbDA3WEc0Z0lHbG1JQ2doYm1WNGRDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCcGMxSnZiM1E3WEc0Z0lIMWNibHh1SUNCcFppQW9ibVY0ZEM1MGVYQmxJRDA5UFNBblEyOXVkR1Z1ZEZOMFlYUmxiV1Z1ZENjcElIdGNiaUFnSUNCeVpYUjFjbTRnS0hOcFlteHBibWNnZkh3Z0lXbHpVbTl2ZENBL0lDOWVYRnh6S2o5Y1hISS9YRnh1THlBNklDOWVYRnh6S2o4b1hGeHlQMXhjYm53a0tTOHBMblJsYzNRb1hHNGdJQ0FnSUNCdVpYaDBMbTl5YVdkcGJtRnNYRzRnSUNBZ0tUdGNiaUFnZlZ4dWZWeHVYRzR2THlCTllYSnJjeUIwYUdVZ2JtOWtaU0IwYnlCMGFHVWdjbWxuYUhRZ2IyWWdkR2hsSUhCdmMybDBhVzl1SUdGeklHOXRhWFIwWldRdVhHNHZMeUJKTG1VdUlIdDdabTl2ZlgwbklDY2dkMmxzYkNCdFlYSnJJSFJvWlNBbklDY2dibTlrWlNCaGN5QnZiV2wwZEdWa0xseHVMeTljYmk4dklFbG1JR2tnYVhNZ2RXNWtaV1pwYm1Wa0xDQjBhR1Z1SUhSb1pTQm1hWEp6ZENCamFHbHNaQ0IzYVd4c0lHSmxJRzFoY210bFpDQmhjeUJ6ZFdOb0xseHVMeTljYmk4dklFbG1JRzExYkdsMGNHeGxJR2x6SUhSeWRYUm9lU0IwYUdWdUlHRnNiQ0IzYUdsMFpYTndZV05sSUhkcGJHd2dZbVVnYzNSeWFYQndaV1FnYjNWMElIVnVkR2xzSUc1dmJpMTNhR2wwWlhOd1lXTmxYRzR2THlCamIyNTBaVzUwSUdseklHMWxkQzVjYm1aMWJtTjBhVzl1SUc5dGFYUlNhV2RvZENoaWIyUjVMQ0JwTENCdGRXeDBhWEJzWlNrZ2UxeHVJQ0JzWlhRZ1kzVnljbVZ1ZENBOUlHSnZaSGxiYVNBOVBTQnVkV3hzSUQ4Z01DQTZJR2tnS3lBeFhUdGNiaUFnYVdZZ0tGeHVJQ0FnSUNGamRYSnlaVzUwSUh4OFhHNGdJQ0FnWTNWeWNtVnVkQzUwZVhCbElDRTlQU0FuUTI5dWRHVnVkRk4wWVhSbGJXVnVkQ2NnZkh4Y2JpQWdJQ0FvSVcxMWJIUnBjR3hsSUNZbUlHTjFjbkpsYm5RdWNtbG5hSFJUZEhKcGNIQmxaQ2xjYmlBZ0tTQjdYRzRnSUNBZ2NtVjBkWEp1TzF4dUlDQjlYRzVjYmlBZ2JHVjBJRzl5YVdkcGJtRnNJRDBnWTNWeWNtVnVkQzUyWVd4MVpUdGNiaUFnWTNWeWNtVnVkQzUyWVd4MVpTQTlJR04xY25KbGJuUXVkbUZzZFdVdWNtVndiR0ZqWlNoY2JpQWdJQ0J0ZFd4MGFYQnNaU0EvSUM5ZVhGeHpLeThnT2lBdlhsc2dYRngwWFNwY1hISS9YRnh1UHk4c1hHNGdJQ0FnSnlkY2JpQWdLVHRjYmlBZ1kzVnljbVZ1ZEM1eWFXZG9kRk4wY21sd2NHVmtJRDBnWTNWeWNtVnVkQzUyWVd4MVpTQWhQVDBnYjNKcFoybHVZV3c3WEc1OVhHNWNiaTh2SUUxaGNtdHpJSFJvWlNCdWIyUmxJSFJ2SUhSb1pTQnNaV1owSUc5bUlIUm9aU0J3YjNOcGRHbHZiaUJoY3lCdmJXbDBkR1ZrTGx4dUx5OGdTUzVsTGlBbklDZDdlMlp2YjMxOUlIZHBiR3dnYldGeWF5QjBhR1VnSnlBbklHNXZaR1VnWVhNZ2IyMXBkSFJsWkM1Y2JpOHZYRzR2THlCSlppQnBJR2x6SUhWdVpHVm1hVzVsWkNCMGFHVnVJSFJvWlNCc1lYTjBJR05vYVd4a0lIZHBiR3dnWW1VZ2JXRnlhMlZrSUdGeklITjFZMmd1WEc0dkwxeHVMeThnU1dZZ2JYVnNhWFJ3YkdVZ2FYTWdkSEoxZEdoNUlIUm9aVzRnWVd4c0lIZG9hWFJsYzNCaFkyVWdkMmxzYkNCaVpTQnpkSEpwY0hCbFpDQnZkWFFnZFc1MGFXd2dibTl1TFhkb2FYUmxjM0JoWTJWY2JpOHZJR052Ym5SbGJuUWdhWE1nYldWMExseHVablZ1WTNScGIyNGdiMjFwZEV4bFpuUW9ZbTlrZVN3Z2FTd2diWFZzZEdsd2JHVXBJSHRjYmlBZ2JHVjBJR04xY25KbGJuUWdQU0JpYjJSNVcya2dQVDBnYm5Wc2JDQS9JR0p2WkhrdWJHVnVaM1JvSUMwZ01TQTZJR2tnTFNBeFhUdGNiaUFnYVdZZ0tGeHVJQ0FnSUNGamRYSnlaVzUwSUh4OFhHNGdJQ0FnWTNWeWNtVnVkQzUwZVhCbElDRTlQU0FuUTI5dWRHVnVkRk4wWVhSbGJXVnVkQ2NnZkh4Y2JpQWdJQ0FvSVcxMWJIUnBjR3hsSUNZbUlHTjFjbkpsYm5RdWJHVm1kRk4wY21sd2NHVmtLVnh1SUNBcElIdGNiaUFnSUNCeVpYUjFjbTQ3WEc0Z0lIMWNibHh1SUNBdkx5QlhaU0J2YldsMElIUm9aU0JzWVhOMElHNXZaR1VnYVdZZ2FYUW5jeUIzYUdsMFpYTndZV05sSUc5dWJIa2dZVzVrSUc1dmRDQndjbVZqWldSbFpDQmllU0JoSUc1dmJpMWpiMjUwWlc1MElHNXZaR1V1WEc0Z0lHeGxkQ0J2Y21sbmFXNWhiQ0E5SUdOMWNuSmxiblF1ZG1Gc2RXVTdYRzRnSUdOMWNuSmxiblF1ZG1Gc2RXVWdQU0JqZFhKeVpXNTBMblpoYkhWbExuSmxjR3hoWTJVb2JYVnNkR2x3YkdVZ1B5QXZYRnh6S3lRdklEb2dMMXNnWEZ4MFhTc2tMeXdnSnljcE8xeHVJQ0JqZFhKeVpXNTBMbXhsWm5SVGRISnBjSEJsWkNBOUlHTjFjbkpsYm5RdWRtRnNkV1VnSVQwOUlHOXlhV2RwYm1Gc08xeHVJQ0J5WlhSMWNtNGdZM1Z5Y21WdWRDNXNaV1owVTNSeWFYQndaV1E3WEc1OVhHNWNibVY0Y0c5eWRDQmtaV1poZFd4MElGZG9hWFJsYzNCaFkyVkRiMjUwY205c08xeHVJbDE5XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLlNvdXJjZUxvY2F0aW9uID0gU291cmNlTG9jYXRpb247XG5leHBvcnRzLmlkID0gaWQ7XG5leHBvcnRzLnN0cmlwRmxhZ3MgPSBzdHJpcEZsYWdzO1xuZXhwb3J0cy5zdHJpcENvbW1lbnQgPSBzdHJpcENvbW1lbnQ7XG5leHBvcnRzLnByZXBhcmVQYXRoID0gcHJlcGFyZVBhdGg7XG5leHBvcnRzLnByZXBhcmVNdXN0YWNoZSA9IHByZXBhcmVNdXN0YWNoZTtcbmV4cG9ydHMucHJlcGFyZVJhd0Jsb2NrID0gcHJlcGFyZVJhd0Jsb2NrO1xuZXhwb3J0cy5wcmVwYXJlQmxvY2sgPSBwcmVwYXJlQmxvY2s7XG5leHBvcnRzLnByZXBhcmVQcm9ncmFtID0gcHJlcGFyZVByb2dyYW07XG5leHBvcnRzLnByZXBhcmVQYXJ0aWFsQmxvY2sgPSBwcmVwYXJlUGFydGlhbEJsb2NrO1xuLy8gaXN0YW5idWwgaWdub3JlIG5leHRcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX2V4Y2VwdGlvbiA9IHJlcXVpcmUoJy4uL2V4Y2VwdGlvbicpO1xuXG52YXIgX2V4Y2VwdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9leGNlcHRpb24pO1xuXG5mdW5jdGlvbiB2YWxpZGF0ZUNsb3NlKG9wZW4sIGNsb3NlKSB7XG4gIGNsb3NlID0gY2xvc2UucGF0aCA/IGNsb3NlLnBhdGgub3JpZ2luYWwgOiBjbG9zZTtcblxuICBpZiAob3Blbi5wYXRoLm9yaWdpbmFsICE9PSBjbG9zZSkge1xuICAgIHZhciBlcnJvck5vZGUgPSB7IGxvYzogb3Blbi5wYXRoLmxvYyB9O1xuXG4gICAgdGhyb3cgbmV3IF9leGNlcHRpb24yWydkZWZhdWx0J10ob3Blbi5wYXRoLm9yaWdpbmFsICsgXCIgZG9lc24ndCBtYXRjaCBcIiArIGNsb3NlLCBlcnJvck5vZGUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIFNvdXJjZUxvY2F0aW9uKHNvdXJjZSwgbG9jSW5mbykge1xuICB0aGlzLnNvdXJjZSA9IHNvdXJjZTtcbiAgdGhpcy5zdGFydCA9IHtcbiAgICBsaW5lOiBsb2NJbmZvLmZpcnN0X2xpbmUsXG4gICAgY29sdW1uOiBsb2NJbmZvLmZpcnN0X2NvbHVtblxuICB9O1xuICB0aGlzLmVuZCA9IHtcbiAgICBsaW5lOiBsb2NJbmZvLmxhc3RfbGluZSxcbiAgICBjb2x1bW46IGxvY0luZm8ubGFzdF9jb2x1bW5cbiAgfTtcbn1cblxuZnVuY3Rpb24gaWQodG9rZW4pIHtcbiAgaWYgKC9eXFxbLipcXF0kLy50ZXN0KHRva2VuKSkge1xuICAgIHJldHVybiB0b2tlbi5zdWJzdHJpbmcoMSwgdG9rZW4ubGVuZ3RoIC0gMSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN0cmlwRmxhZ3Mob3BlbiwgY2xvc2UpIHtcbiAgcmV0dXJuIHtcbiAgICBvcGVuOiBvcGVuLmNoYXJBdCgyKSA9PT0gJ34nLFxuICAgIGNsb3NlOiBjbG9zZS5jaGFyQXQoY2xvc2UubGVuZ3RoIC0gMykgPT09ICd+J1xuICB9O1xufVxuXG5mdW5jdGlvbiBzdHJpcENvbW1lbnQoY29tbWVudCkge1xuICByZXR1cm4gY29tbWVudC5yZXBsYWNlKC9eXFx7XFx7fj8hLT8tPy8sICcnKS5yZXBsYWNlKC8tPy0/fj9cXH1cXH0kLywgJycpO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlUGF0aChkYXRhLCBwYXJ0cywgbG9jKSB7XG4gIGxvYyA9IHRoaXMubG9jSW5mbyhsb2MpO1xuXG4gIHZhciBvcmlnaW5hbCA9IGRhdGEgPyAnQCcgOiAnJyxcbiAgICAgIGRpZyA9IFtdLFxuICAgICAgZGVwdGggPSAwO1xuXG4gIGZvciAodmFyIGkgPSAwLCBsID0gcGFydHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgdmFyIHBhcnQgPSBwYXJ0c1tpXS5wYXJ0LFxuXG4gICAgLy8gSWYgd2UgaGF2ZSBbXSBzeW50YXggdGhlbiB3ZSBkbyBub3QgdHJlYXQgcGF0aCByZWZlcmVuY2VzIGFzIG9wZXJhdG9ycyxcbiAgICAvLyBpLmUuIGZvby5bdGhpc10gcmVzb2x2ZXMgdG8gYXBwcm94aW1hdGVseSBjb250ZXh0LmZvb1sndGhpcyddXG4gICAgaXNMaXRlcmFsID0gcGFydHNbaV0ub3JpZ2luYWwgIT09IHBhcnQ7XG4gICAgb3JpZ2luYWwgKz0gKHBhcnRzW2ldLnNlcGFyYXRvciB8fCAnJykgKyBwYXJ0O1xuXG4gICAgaWYgKCFpc0xpdGVyYWwgJiYgKHBhcnQgPT09ICcuLicgfHwgcGFydCA9PT0gJy4nIHx8IHBhcnQgPT09ICd0aGlzJykpIHtcbiAgICAgIGlmIChkaWcubGVuZ3RoID4gMCkge1xuICAgICAgICB0aHJvdyBuZXcgX2V4Y2VwdGlvbjJbJ2RlZmF1bHQnXSgnSW52YWxpZCBwYXRoOiAnICsgb3JpZ2luYWwsIHsgbG9jOiBsb2MgfSk7XG4gICAgICB9IGVsc2UgaWYgKHBhcnQgPT09ICcuLicpIHtcbiAgICAgICAgZGVwdGgrKztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZGlnLnB1c2gocGFydCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnUGF0aEV4cHJlc3Npb24nLFxuICAgIGRhdGE6IGRhdGEsXG4gICAgZGVwdGg6IGRlcHRoLFxuICAgIHBhcnRzOiBkaWcsXG4gICAgb3JpZ2luYWw6IG9yaWdpbmFsLFxuICAgIGxvYzogbG9jXG4gIH07XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVNdXN0YWNoZShwYXRoLCBwYXJhbXMsIGhhc2gsIG9wZW4sIHN0cmlwLCBsb2NJbmZvKSB7XG4gIC8vIE11c3QgdXNlIGNoYXJBdCB0byBzdXBwb3J0IElFIHByZS0xMFxuICB2YXIgZXNjYXBlRmxhZyA9IG9wZW4uY2hhckF0KDMpIHx8IG9wZW4uY2hhckF0KDIpLFxuICAgICAgZXNjYXBlZCA9IGVzY2FwZUZsYWcgIT09ICd7JyAmJiBlc2NhcGVGbGFnICE9PSAnJic7XG5cbiAgdmFyIGRlY29yYXRvciA9IC9cXCovLnRlc3Qob3Blbik7XG4gIHJldHVybiB7XG4gICAgdHlwZTogZGVjb3JhdG9yID8gJ0RlY29yYXRvcicgOiAnTXVzdGFjaGVTdGF0ZW1lbnQnLFxuICAgIHBhdGg6IHBhdGgsXG4gICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgaGFzaDogaGFzaCxcbiAgICBlc2NhcGVkOiBlc2NhcGVkLFxuICAgIHN0cmlwOiBzdHJpcCxcbiAgICBsb2M6IHRoaXMubG9jSW5mbyhsb2NJbmZvKVxuICB9O1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlUmF3QmxvY2sob3BlblJhd0Jsb2NrLCBjb250ZW50cywgY2xvc2UsIGxvY0luZm8pIHtcbiAgdmFsaWRhdGVDbG9zZShvcGVuUmF3QmxvY2ssIGNsb3NlKTtcblxuICBsb2NJbmZvID0gdGhpcy5sb2NJbmZvKGxvY0luZm8pO1xuICB2YXIgcHJvZ3JhbSA9IHtcbiAgICB0eXBlOiAnUHJvZ3JhbScsXG4gICAgYm9keTogY29udGVudHMsXG4gICAgc3RyaXA6IHt9LFxuICAgIGxvYzogbG9jSW5mb1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0Jsb2NrU3RhdGVtZW50JyxcbiAgICBwYXRoOiBvcGVuUmF3QmxvY2sucGF0aCxcbiAgICBwYXJhbXM6IG9wZW5SYXdCbG9jay5wYXJhbXMsXG4gICAgaGFzaDogb3BlblJhd0Jsb2NrLmhhc2gsXG4gICAgcHJvZ3JhbTogcHJvZ3JhbSxcbiAgICBvcGVuU3RyaXA6IHt9LFxuICAgIGludmVyc2VTdHJpcDoge30sXG4gICAgY2xvc2VTdHJpcDoge30sXG4gICAgbG9jOiBsb2NJbmZvXG4gIH07XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVCbG9jayhvcGVuQmxvY2ssIHByb2dyYW0sIGludmVyc2VBbmRQcm9ncmFtLCBjbG9zZSwgaW52ZXJ0ZWQsIGxvY0luZm8pIHtcbiAgaWYgKGNsb3NlICYmIGNsb3NlLnBhdGgpIHtcbiAgICB2YWxpZGF0ZUNsb3NlKG9wZW5CbG9jaywgY2xvc2UpO1xuICB9XG5cbiAgdmFyIGRlY29yYXRvciA9IC9cXCovLnRlc3Qob3BlbkJsb2NrLm9wZW4pO1xuXG4gIHByb2dyYW0uYmxvY2tQYXJhbXMgPSBvcGVuQmxvY2suYmxvY2tQYXJhbXM7XG5cbiAgdmFyIGludmVyc2UgPSB1bmRlZmluZWQsXG4gICAgICBpbnZlcnNlU3RyaXAgPSB1bmRlZmluZWQ7XG5cbiAgaWYgKGludmVyc2VBbmRQcm9ncmFtKSB7XG4gICAgaWYgKGRlY29yYXRvcikge1xuICAgICAgdGhyb3cgbmV3IF9leGNlcHRpb24yWydkZWZhdWx0J10oJ1VuZXhwZWN0ZWQgaW52ZXJzZSBibG9jayBvbiBkZWNvcmF0b3InLCBpbnZlcnNlQW5kUHJvZ3JhbSk7XG4gICAgfVxuXG4gICAgaWYgKGludmVyc2VBbmRQcm9ncmFtLmNoYWluKSB7XG4gICAgICBpbnZlcnNlQW5kUHJvZ3JhbS5wcm9ncmFtLmJvZHlbMF0uY2xvc2VTdHJpcCA9IGNsb3NlLnN0cmlwO1xuICAgIH1cblxuICAgIGludmVyc2VTdHJpcCA9IGludmVyc2VBbmRQcm9ncmFtLnN0cmlwO1xuICAgIGludmVyc2UgPSBpbnZlcnNlQW5kUHJvZ3JhbS5wcm9ncmFtO1xuICB9XG5cbiAgaWYgKGludmVydGVkKSB7XG4gICAgaW52ZXJ0ZWQgPSBpbnZlcnNlO1xuICAgIGludmVyc2UgPSBwcm9ncmFtO1xuICAgIHByb2dyYW0gPSBpbnZlcnRlZDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogZGVjb3JhdG9yID8gJ0RlY29yYXRvckJsb2NrJyA6ICdCbG9ja1N0YXRlbWVudCcsXG4gICAgcGF0aDogb3BlbkJsb2NrLnBhdGgsXG4gICAgcGFyYW1zOiBvcGVuQmxvY2sucGFyYW1zLFxuICAgIGhhc2g6IG9wZW5CbG9jay5oYXNoLFxuICAgIHByb2dyYW06IHByb2dyYW0sXG4gICAgaW52ZXJzZTogaW52ZXJzZSxcbiAgICBvcGVuU3RyaXA6IG9wZW5CbG9jay5zdHJpcCxcbiAgICBpbnZlcnNlU3RyaXA6IGludmVyc2VTdHJpcCxcbiAgICBjbG9zZVN0cmlwOiBjbG9zZSAmJiBjbG9zZS5zdHJpcCxcbiAgICBsb2M6IHRoaXMubG9jSW5mbyhsb2NJbmZvKVxuICB9O1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlUHJvZ3JhbShzdGF0ZW1lbnRzLCBsb2MpIHtcbiAgaWYgKCFsb2MgJiYgc3RhdGVtZW50cy5sZW5ndGgpIHtcbiAgICB2YXIgZmlyc3RMb2MgPSBzdGF0ZW1lbnRzWzBdLmxvYyxcbiAgICAgICAgbGFzdExvYyA9IHN0YXRlbWVudHNbc3RhdGVtZW50cy5sZW5ndGggLSAxXS5sb2M7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChmaXJzdExvYyAmJiBsYXN0TG9jKSB7XG4gICAgICBsb2MgPSB7XG4gICAgICAgIHNvdXJjZTogZmlyc3RMb2Muc291cmNlLFxuICAgICAgICBzdGFydDoge1xuICAgICAgICAgIGxpbmU6IGZpcnN0TG9jLnN0YXJ0LmxpbmUsXG4gICAgICAgICAgY29sdW1uOiBmaXJzdExvYy5zdGFydC5jb2x1bW5cbiAgICAgICAgfSxcbiAgICAgICAgZW5kOiB7XG4gICAgICAgICAgbGluZTogbGFzdExvYy5lbmQubGluZSxcbiAgICAgICAgICBjb2x1bW46IGxhc3RMb2MuZW5kLmNvbHVtblxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1Byb2dyYW0nLFxuICAgIGJvZHk6IHN0YXRlbWVudHMsXG4gICAgc3RyaXA6IHt9LFxuICAgIGxvYzogbG9jXG4gIH07XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVQYXJ0aWFsQmxvY2sob3BlbiwgcHJvZ3JhbSwgY2xvc2UsIGxvY0luZm8pIHtcbiAgdmFsaWRhdGVDbG9zZShvcGVuLCBjbG9zZSk7XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnUGFydGlhbEJsb2NrU3RhdGVtZW50JyxcbiAgICBuYW1lOiBvcGVuLnBhdGgsXG4gICAgcGFyYW1zOiBvcGVuLnBhcmFtcyxcbiAgICBoYXNoOiBvcGVuLmhhc2gsXG4gICAgcHJvZ3JhbTogcHJvZ3JhbSxcbiAgICBvcGVuU3RyaXA6IG9wZW4uc3RyaXAsXG4gICAgY2xvc2VTdHJpcDogY2xvc2UgJiYgY2xvc2Uuc3RyaXAsXG4gICAgbG9jOiB0aGlzLmxvY0luZm8obG9jSW5mbylcbiAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMMnhwWWk5b1lXNWtiR1ZpWVhKekwyTnZiWEJwYkdWeUwyaGxiSEJsY25NdWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3pzN2VVSkJRWE5DTEdOQlFXTTdPenM3UVVGRmNFTXNVMEZCVXl4aFFVRmhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJUdEJRVU5zUXl4UFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRExFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhMUVVGTExFTkJRVU03TzBGQlJXcEVMRTFCUVVrc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEV0QlFVc3NTMEZCU3l4RlFVRkZPMEZCUTJoRExGRkJRVWtzVTBGQlV5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdPMEZCUlhaRExGVkJRVTBzTWtKQlEwb3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzYVVKQlFXbENMRWRCUVVjc1MwRkJTeXhGUVVNNVF5eFRRVUZUTEVOQlExWXNRMEZCUXp0SFFVTklPME5CUTBZN08wRkJSVTBzVTBGQlV5eGpRVUZqTEVOQlFVTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSVHRCUVVNNVF5eE5RVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJRenRCUVVOeVFpeE5RVUZKTEVOQlFVTXNTMEZCU3l4SFFVRkhPMEZCUTFnc1VVRkJTU3hGUVVGRkxFOUJRVThzUTBGQlF5eFZRVUZWTzBGQlEzaENMRlZCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zV1VGQldUdEhRVU0zUWl4RFFVRkRPMEZCUTBZc1RVRkJTU3hEUVVGRExFZEJRVWNzUjBGQlJ6dEJRVU5VTEZGQlFVa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1UwRkJVenRCUVVOMlFpeFZRVUZOTEVWQlFVVXNUMEZCVHl4RFFVRkRMRmRCUVZjN1IwRkROVUlzUTBGQlF6dERRVU5JT3p0QlFVVk5MRk5CUVZNc1JVRkJSU3hEUVVGRExFdEJRVXNzUlVGQlJUdEJRVU40UWl4TlFVRkpMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVTdRVUZETVVJc1YwRkJUeXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBkQlF6ZERMRTFCUVUwN1FVRkRUQ3hYUVVGUExFdEJRVXNzUTBGQlF6dEhRVU5rTzBOQlEwWTdPMEZCUlUwc1UwRkJVeXhWUVVGVkxFTkJRVU1zU1VGQlNTeEZRVUZGTEV0QlFVc3NSVUZCUlR0QlFVTjBReXhUUVVGUE8wRkJRMHdzVVVGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUjBGQlJ6dEJRVU0xUWl4VFFVRkxMRVZCUVVVc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhMUVVGTExFZEJRVWM3UjBGRE9VTXNRMEZCUXp0RFFVTklPenRCUVVWTkxGTkJRVk1zV1VGQldTeERRVUZETEU5QlFVOHNSVUZCUlR0QlFVTndReXhUUVVGUExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNZMEZCWXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eGhRVUZoTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1EwRkRka1U3TzBGQlJVMHNVMEZCVXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVTdRVUZETlVNc1MwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN08wRkJSWGhDTEUxQlFVa3NVVUZCVVN4SFFVRkhMRWxCUVVrc1IwRkJSeXhIUVVGSExFZEJRVWNzUlVGQlJUdE5RVU0xUWl4SFFVRkhMRWRCUVVjc1JVRkJSVHROUVVOU0xFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTTdPMEZCUlZvc1QwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRCUVVNMVF5eFJRVUZKTEVsQlFVa3NSMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNUczdPenRCUVVkMFFpeGhRVUZUTEVkQlFVY3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUzBGQlN5eEpRVUZKTEVOQlFVTTdRVUZEZWtNc1dVRkJVU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1NVRkJTU3hGUVVGRkxFTkJRVUVzUjBGQlNTeEpRVUZKTEVOQlFVTTdPMEZCUlRsRExGRkJRVWtzUTBGQlF5eFRRVUZUTEV0QlFVc3NTVUZCU1N4TFFVRkxMRWxCUVVrc1NVRkJTU3hKUVVGSkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVsQlFVa3NTMEZCU3l4TlFVRk5MRU5CUVVFc1FVRkJReXhGUVVGRk8wRkJRM0JGTEZWQlFVa3NSMEZCUnl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVU3UVVGRGJFSXNZMEZCVFN3eVFrRkJZeXhuUWtGQlowSXNSMEZCUnl4UlFVRlJMRVZCUVVVc1JVRkJSU3hIUVVGSExFVkJRVWdzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0UFFVTXpSQ3hOUVVGTkxFbEJRVWtzU1VGQlNTeExRVUZMTEVsQlFVa3NSVUZCUlR0QlFVTjRRaXhoUVVGTExFVkJRVVVzUTBGQlF6dFBRVU5VTzB0QlEwWXNUVUZCVFR0QlFVTk1MRk5CUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTMEZEYUVJN1IwRkRSanM3UVVGRlJDeFRRVUZQTzBGQlEwd3NVVUZCU1N4RlFVRkZMR2RDUVVGblFqdEJRVU4wUWl4UlFVRkpMRVZCUVVvc1NVRkJTVHRCUVVOS0xGTkJRVXNzUlVGQlRDeExRVUZMTzBGQlEwd3NVMEZCU3l4RlFVRkZMRWRCUVVjN1FVRkRWaXhaUVVGUkxFVkJRVklzVVVGQlVUdEJRVU5TTEU5QlFVY3NSVUZCU0N4SFFVRkhPMGRCUTBvc1EwRkJRenREUVVOSU96dEJRVVZOTEZOQlFWTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4TFFVRkxMRVZCUVVVc1QwRkJUeXhGUVVGRk96dEJRVVY0UlN4TlFVRkpMRlZCUVZVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETzAxQlF5OURMRTlCUVU4c1IwRkJSeXhWUVVGVkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEZWQlFWVXNTMEZCU3l4SFFVRkhMRU5CUVVNN08wRkJSWEpFTEUxQlFVa3NVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdRVUZEYUVNc1UwRkJUenRCUVVOTUxGRkJRVWtzUlVGQlJTeFRRVUZUTEVkQlFVY3NWMEZCVnl4SFFVRkhMRzFDUVVGdFFqdEJRVU51UkN4UlFVRkpMRVZCUVVvc1NVRkJTVHRCUVVOS0xGVkJRVTBzUlVGQlRpeE5RVUZOTzBGQlEwNHNVVUZCU1N4RlFVRktMRWxCUVVrN1FVRkRTaXhYUVVGUExFVkJRVkFzVDBGQlR6dEJRVU5RTEZOQlFVc3NSVUZCVEN4TFFVRkxPMEZCUTB3c1QwRkJSeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRPMGRCUXpOQ0xFTkJRVU03UTBGRFNEczdRVUZGVFN4VFFVRlRMR1ZCUVdVc1EwRkJReXhaUVVGWkxFVkJRVVVzVVVGQlVTeEZRVUZGTEV0QlFVc3NSVUZCUlN4UFFVRlBMRVZCUVVVN1FVRkRkRVVzWlVGQllTeERRVUZETEZsQlFWa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenM3UVVGRmJrTXNVMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdRVUZEYUVNc1RVRkJTU3hQUVVGUExFZEJRVWM3UVVGRFdpeFJRVUZKTEVWQlFVVXNVMEZCVXp0QlFVTm1MRkZCUVVrc1JVRkJSU3hSUVVGUk8wRkJRMlFzVTBGQlN5eEZRVUZGTEVWQlFVVTdRVUZEVkN4UFFVRkhMRVZCUVVVc1QwRkJUenRIUVVOaUxFTkJRVU03TzBGQlJVWXNVMEZCVHp0QlFVTk1MRkZCUVVrc1JVRkJSU3huUWtGQlowSTdRVUZEZEVJc1VVRkJTU3hGUVVGRkxGbEJRVmtzUTBGQlF5eEpRVUZKTzBGQlEzWkNMRlZCUVUwc1JVRkJSU3haUVVGWkxFTkJRVU1zVFVGQlRUdEJRVU16UWl4UlFVRkpMRVZCUVVVc1dVRkJXU3hEUVVGRExFbEJRVWs3UVVGRGRrSXNWMEZCVHl4RlFVRlFMRTlCUVU4N1FVRkRVQ3hoUVVGVExFVkJRVVVzUlVGQlJUdEJRVU5pTEdkQ1FVRlpMRVZCUVVVc1JVRkJSVHRCUVVOb1FpeGpRVUZWTEVWQlFVVXNSVUZCUlR0QlFVTmtMRTlCUVVjc1JVRkJSU3hQUVVGUE8wZEJRMklzUTBGQlF6dERRVU5JT3p0QlFVVk5MRk5CUVZNc1dVRkJXU3hEUVVNeFFpeFRRVUZUTEVWQlExUXNUMEZCVHl4RlFVTlFMR2xDUVVGcFFpeEZRVU5xUWl4TFFVRkxMRVZCUTB3c1VVRkJVU3hGUVVOU0xFOUJRVThzUlVGRFVEdEJRVU5CTEUxQlFVa3NTMEZCU3l4SlFVRkpMRXRCUVVzc1EwRkJReXhKUVVGSkxFVkJRVVU3UVVGRGRrSXNhVUpCUVdFc1EwRkJReXhUUVVGVExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdSMEZEYWtNN08wRkJSVVFzVFVGQlNTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdPMEZCUlRGRExGTkJRVThzUTBGQlF5eFhRVUZYTEVkQlFVY3NVMEZCVXl4RFFVRkRMRmRCUVZjc1EwRkJRenM3UVVGRk5VTXNUVUZCU1N4UFFVRlBMRmxCUVVFN1RVRkJSU3haUVVGWkxGbEJRVUVzUTBGQlF6czdRVUZGTVVJc1RVRkJTU3hwUWtGQmFVSXNSVUZCUlR0QlFVTnlRaXhSUVVGSkxGTkJRVk1zUlVGQlJUdEJRVU5pTEZsQlFVMHNNa0pCUTBvc2RVTkJRWFZETEVWQlEzWkRMR2xDUVVGcFFpeERRVU5zUWl4RFFVRkRPMHRCUTBnN08wRkJSVVFzVVVGQlNTeHBRa0ZCYVVJc1EwRkJReXhMUVVGTExFVkJRVVU3UVVGRE0wSXNkVUpCUVdsQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhWUVVGVkxFZEJRVWNzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXp0TFFVTTFSRHM3UVVGRlJDeG5Ra0ZCV1N4SFFVRkhMR2xDUVVGcFFpeERRVUZETEV0QlFVc3NRMEZCUXp0QlFVTjJReXhYUVVGUExFZEJRVWNzYVVKQlFXbENMRU5CUVVNc1QwRkJUeXhEUVVGRE8wZEJRM0pET3p0QlFVVkVMRTFCUVVrc1VVRkJVU3hGUVVGRk8wRkJRMW9zV1VGQlVTeEhRVUZITEU5QlFVOHNRMEZCUXp0QlFVTnVRaXhYUVVGUExFZEJRVWNzVDBGQlR5eERRVUZETzBGQlEyeENMRmRCUVU4c1IwRkJSeXhSUVVGUkxFTkJRVU03UjBGRGNFSTdPMEZCUlVRc1UwRkJUenRCUVVOTUxGRkJRVWtzUlVGQlJTeFRRVUZUTEVkQlFVY3NaMEpCUVdkQ0xFZEJRVWNzWjBKQlFXZENPMEZCUTNKRUxGRkJRVWtzUlVGQlJTeFRRVUZUTEVOQlFVTXNTVUZCU1R0QlFVTndRaXhWUVVGTkxFVkJRVVVzVTBGQlV5eERRVUZETEUxQlFVMDdRVUZEZUVJc1VVRkJTU3hGUVVGRkxGTkJRVk1zUTBGQlF5eEpRVUZKTzBGQlEzQkNMRmRCUVU4c1JVRkJVQ3hQUVVGUE8wRkJRMUFzVjBGQlR5eEZRVUZRTEU5QlFVODdRVUZEVUN4aFFVRlRMRVZCUVVVc1UwRkJVeXhEUVVGRExFdEJRVXM3UVVGRE1VSXNaMEpCUVZrc1JVRkJXaXhaUVVGWk8wRkJRMW9zWTBGQlZTeEZRVUZGTEV0QlFVc3NTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTenRCUVVOb1F5eFBRVUZITEVWQlFVVXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU03UjBGRE0wSXNRMEZCUXp0RFFVTklPenRCUVVWTkxGTkJRVk1zWTBGQll5eERRVUZETEZWQlFWVXNSVUZCUlN4SFFVRkhMRVZCUVVVN1FVRkRPVU1zVFVGQlNTeERRVUZETEVkQlFVY3NTVUZCU1N4VlFVRlZMRU5CUVVNc1RVRkJUU3hGUVVGRk8wRkJRemRDTEZGQlFVMHNVVUZCVVN4SFFVRkhMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITzFGQlEyaERMRTlCUVU4c1IwRkJSeXhWUVVGVkxFTkJRVU1zVlVGQlZTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU03T3p0QlFVZHNSQ3hSUVVGSkxGRkJRVkVzU1VGQlNTeFBRVUZQTEVWQlFVVTdRVUZEZGtJc1UwRkJSeXhIUVVGSE8wRkJRMG9zWTBGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4TlFVRk5PMEZCUTNaQ0xHRkJRVXNzUlVGQlJUdEJRVU5NTEdOQlFVa3NSVUZCUlN4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWs3UVVGRGVrSXNaMEpCUVUwc1JVRkJSU3hSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMDdVMEZET1VJN1FVRkRSQ3hYUVVGSExFVkJRVVU3UVVGRFNDeGpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSk8wRkJRM1JDTEdkQ1FVRk5MRVZCUVVVc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTzFOQlF6TkNPMDlCUTBZc1EwRkJRenRMUVVOSU8wZEJRMFk3TzBGQlJVUXNVMEZCVHp0QlFVTk1MRkZCUVVrc1JVRkJSU3hUUVVGVE8wRkJRMllzVVVGQlNTeEZRVUZGTEZWQlFWVTdRVUZEYUVJc1UwRkJTeXhGUVVGRkxFVkJRVVU3UVVGRFZDeFBRVUZITEVWQlFVVXNSMEZCUnp0SFFVTlVMRU5CUVVNN1EwRkRTRHM3UVVGRlRTeFRRVUZUTEcxQ1FVRnRRaXhEUVVGRExFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTlCUVU4c1JVRkJSVHRCUVVOcVJTeGxRVUZoTEVOQlFVTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE96dEJRVVV6UWl4VFFVRlBPMEZCUTB3c1VVRkJTU3hGUVVGRkxIVkNRVUYxUWp0QlFVTTNRaXhSUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVsQlFVazdRVUZEWml4VlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFMUJRVTA3UVVGRGJrSXNVVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhKUVVGSk8wRkJRMllzVjBGQlR5eEZRVUZRTEU5QlFVODdRVUZEVUN4aFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXM3UVVGRGNrSXNZMEZCVlN4RlFVRkZMRXRCUVVzc1NVRkJTU3hMUVVGTExFTkJRVU1zUzBGQlN6dEJRVU5vUXl4UFFVRkhMRVZCUVVVc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTTdSMEZETTBJc1EwRkJRenREUVVOSUlpd2labWxzWlNJNkltaGxiSEJsY25NdWFuTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdSWGhqWlhCMGFXOXVJR1p5YjIwZ0p5NHVMMlY0WTJWd2RHbHZiaWM3WEc1Y2JtWjFibU4wYVc5dUlIWmhiR2xrWVhSbFEyeHZjMlVvYjNCbGJpd2dZMnh2YzJVcElIdGNiaUFnWTJ4dmMyVWdQU0JqYkc5elpTNXdZWFJvSUQ4Z1kyeHZjMlV1Y0dGMGFDNXZjbWxuYVc1aGJDQTZJR05zYjNObE8xeHVYRzRnSUdsbUlDaHZjR1Z1TG5CaGRHZ3ViM0pwWjJsdVlXd2dJVDA5SUdOc2IzTmxLU0I3WEc0Z0lDQWdiR1YwSUdWeWNtOXlUbTlrWlNBOUlIc2diRzlqT2lCdmNHVnVMbkJoZEdndWJHOWpJSDA3WEc1Y2JpQWdJQ0IwYUhKdmR5QnVaWGNnUlhoalpYQjBhVzl1S0Z4dUlDQWdJQ0FnYjNCbGJpNXdZWFJvTG05eWFXZHBibUZzSUNzZ1hDSWdaRzlsYzI0bmRDQnRZWFJqYUNCY0lpQXJJR05zYjNObExGeHVJQ0FnSUNBZ1pYSnliM0pPYjJSbFhHNGdJQ0FnS1R0Y2JpQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1UyOTFjbU5sVEc5allYUnBiMjRvYzI5MWNtTmxMQ0JzYjJOSmJtWnZLU0I3WEc0Z0lIUm9hWE11YzI5MWNtTmxJRDBnYzI5MWNtTmxPMXh1SUNCMGFHbHpMbk4wWVhKMElEMGdlMXh1SUNBZ0lHeHBibVU2SUd4dlkwbHVabTh1Wm1seWMzUmZiR2x1WlN4Y2JpQWdJQ0JqYjJ4MWJXNDZJR3h2WTBsdVptOHVabWx5YzNSZlkyOXNkVzF1WEc0Z0lIMDdYRzRnSUhSb2FYTXVaVzVrSUQwZ2UxeHVJQ0FnSUd4cGJtVTZJR3h2WTBsdVptOHViR0Z6ZEY5c2FXNWxMRnh1SUNBZ0lHTnZiSFZ0YmpvZ2JHOWpTVzVtYnk1c1lYTjBYMk52YkhWdGJseHVJQ0I5TzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhV1FvZEc5clpXNHBJSHRjYmlBZ2FXWWdLQzllWEZ4YkxpcGNYRjBrTHk1MFpYTjBLSFJ2YTJWdUtTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGIydGxiaTV6ZFdKemRISnBibWNvTVN3Z2RHOXJaVzR1YkdWdVozUm9JQzBnTVNrN1hHNGdJSDBnWld4elpTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSdmEyVnVPMXh1SUNCOVhHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ6ZEhKcGNFWnNZV2R6S0c5d1pXNHNJR05zYjNObEtTQjdYRzRnSUhKbGRIVnliaUI3WEc0Z0lDQWdiM0JsYmpvZ2IzQmxiaTVqYUdGeVFYUW9NaWtnUFQwOUlDZCtKeXhjYmlBZ0lDQmpiRzl6WlRvZ1kyeHZjMlV1WTJoaGNrRjBLR05zYjNObExteGxibWQwYUNBdElETXBJRDA5UFNBbmZpZGNiaUFnZlR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE4wY21sd1EyOXRiV1Z1ZENoamIyMXRaVzUwS1NCN1hHNGdJSEpsZEhWeWJpQmpiMjF0Wlc1MExuSmxjR3hoWTJVb0wxNWNYSHRjWEh0K1B5RXRQeTAvTHl3Z0p5Y3BMbkpsY0d4aFkyVW9MeTAvTFQ5K1AxeGNmVnhjZlNRdkxDQW5KeWs3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQndjbVZ3WVhKbFVHRjBhQ2hrWVhSaExDQndZWEowY3l3Z2JHOWpLU0I3WEc0Z0lHeHZZeUE5SUhSb2FYTXViRzlqU1c1bWJ5aHNiMk1wTzF4dVhHNGdJR3hsZENCdmNtbG5hVzVoYkNBOUlHUmhkR0VnUHlBblFDY2dPaUFuSnl4Y2JpQWdJQ0JrYVdjZ1BTQmJYU3hjYmlBZ0lDQmtaWEIwYUNBOUlEQTdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREFzSUd3Z1BTQndZWEowY3k1c1pXNW5kR2c3SUdrZ1BDQnNPeUJwS3lzcElIdGNiaUFnSUNCc1pYUWdjR0Z5ZENBOUlIQmhjblJ6VzJsZExuQmhjblFzWEc0Z0lDQWdJQ0F2THlCSlppQjNaU0JvWVhabElGdGRJSE41Ym5SaGVDQjBhR1Z1SUhkbElHUnZJRzV2ZENCMGNtVmhkQ0J3WVhSb0lISmxabVZ5Wlc1alpYTWdZWE1nYjNCbGNtRjBiM0p6TEZ4dUlDQWdJQ0FnTHk4Z2FTNWxMaUJtYjI4dVczUm9hWE5kSUhKbGMyOXNkbVZ6SUhSdklHRndjSEp2ZUdsdFlYUmxiSGtnWTI5dWRHVjRkQzVtYjI5YkozUm9hWE1uWFZ4dUlDQWdJQ0FnYVhOTWFYUmxjbUZzSUQwZ2NHRnlkSE5iYVYwdWIzSnBaMmx1WVd3Z0lUMDlJSEJoY25RN1hHNGdJQ0FnYjNKcFoybHVZV3dnS3owZ0tIQmhjblJ6VzJsZExuTmxjR0Z5WVhSdmNpQjhmQ0FuSnlrZ0t5QndZWEowTzF4dVhHNGdJQ0FnYVdZZ0tDRnBjMHhwZEdWeVlXd2dKaVlnS0hCaGNuUWdQVDA5SUNjdUxpY2dmSHdnY0dGeWRDQTlQVDBnSnk0bklIeDhJSEJoY25RZ1BUMDlJQ2QwYUdsekp5a3BJSHRjYmlBZ0lDQWdJR2xtSUNoa2FXY3ViR1Z1WjNSb0lENGdNQ2tnZTF4dUlDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYaGpaWEIwYVc5dUtDZEpiblpoYkdsa0lIQmhkR2c2SUNjZ0t5QnZjbWxuYVc1aGJDd2dleUJzYjJNZ2ZTazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLSEJoY25RZ1BUMDlJQ2N1TGljcElIdGNiaUFnSUNBZ0lDQWdaR1Z3ZEdnckt6dGNiaUFnSUNBZ0lIMWNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnWkdsbkxuQjFjMmdvY0dGeWRDazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjbVYwZFhKdUlIdGNiaUFnSUNCMGVYQmxPaUFuVUdGMGFFVjRjSEpsYzNOcGIyNG5MRnh1SUNBZ0lHUmhkR0VzWEc0Z0lDQWdaR1Z3ZEdnc1hHNGdJQ0FnY0dGeWRITTZJR1JwWnl4Y2JpQWdJQ0J2Y21sbmFXNWhiQ3hjYmlBZ0lDQnNiMk5jYmlBZ2ZUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhCeVpYQmhjbVZOZFhOMFlXTm9aU2h3WVhSb0xDQndZWEpoYlhNc0lHaGhjMmdzSUc5d1pXNHNJSE4wY21sd0xDQnNiMk5KYm1adktTQjdYRzRnSUM4dklFMTFjM1FnZFhObElHTm9ZWEpCZENCMGJ5QnpkWEJ3YjNKMElFbEZJSEJ5WlMweE1GeHVJQ0JzWlhRZ1pYTmpZWEJsUm14aFp5QTlJRzl3Wlc0dVkyaGhja0YwS0RNcElIeDhJRzl3Wlc0dVkyaGhja0YwS0RJcExGeHVJQ0FnSUdWelkyRndaV1FnUFNCbGMyTmhjR1ZHYkdGbklDRTlQU0FuZXljZ0ppWWdaWE5qWVhCbFJteGhaeUFoUFQwZ0p5WW5PMXh1WEc0Z0lHeGxkQ0JrWldOdmNtRjBiM0lnUFNBdlhGd3FMeTUwWlhOMEtHOXdaVzRwTzF4dUlDQnlaWFIxY200Z2UxeHVJQ0FnSUhSNWNHVTZJR1JsWTI5eVlYUnZjaUEvSUNkRVpXTnZjbUYwYjNJbklEb2dKMDExYzNSaFkyaGxVM1JoZEdWdFpXNTBKeXhjYmlBZ0lDQndZWFJvTEZ4dUlDQWdJSEJoY21GdGN5eGNiaUFnSUNCb1lYTm9MRnh1SUNBZ0lHVnpZMkZ3WldRc1hHNGdJQ0FnYzNSeWFYQXNYRzRnSUNBZ2JHOWpPaUIwYUdsekxteHZZMGx1Wm04b2JHOWpTVzVtYnlsY2JpQWdmVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIQnlaWEJoY21WU1lYZENiRzlqYXlodmNHVnVVbUYzUW14dlkyc3NJR052Ym5SbGJuUnpMQ0JqYkc5elpTd2diRzlqU1c1bWJ5a2dlMXh1SUNCMllXeHBaR0YwWlVOc2IzTmxLRzl3Wlc1U1lYZENiRzlqYXl3Z1kyeHZjMlVwTzF4dVhHNGdJR3h2WTBsdVptOGdQU0IwYUdsekxteHZZMGx1Wm04b2JHOWpTVzVtYnlrN1hHNGdJR3hsZENCd2NtOW5jbUZ0SUQwZ2UxeHVJQ0FnSUhSNWNHVTZJQ2RRY205bmNtRnRKeXhjYmlBZ0lDQmliMlI1T2lCamIyNTBaVzUwY3l4Y2JpQWdJQ0J6ZEhKcGNEb2dlMzBzWEc0Z0lDQWdiRzlqT2lCc2IyTkpibVp2WEc0Z0lIMDdYRzVjYmlBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0IwZVhCbE9pQW5RbXh2WTJ0VGRHRjBaVzFsYm5RbkxGeHVJQ0FnSUhCaGRHZzZJRzl3Wlc1U1lYZENiRzlqYXk1d1lYUm9MRnh1SUNBZ0lIQmhjbUZ0Y3pvZ2IzQmxibEpoZDBKc2IyTnJMbkJoY21GdGN5eGNiaUFnSUNCb1lYTm9PaUJ2Y0dWdVVtRjNRbXh2WTJzdWFHRnphQ3hjYmlBZ0lDQndjbTluY21GdExGeHVJQ0FnSUc5d1pXNVRkSEpwY0RvZ2UzMHNYRzRnSUNBZ2FXNTJaWEp6WlZOMGNtbHdPaUI3ZlN4Y2JpQWdJQ0JqYkc5elpWTjBjbWx3T2lCN2ZTeGNiaUFnSUNCc2IyTTZJR3h2WTBsdVptOWNiaUFnZlR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEJ5WlhCaGNtVkNiRzlqYXloY2JpQWdiM0JsYmtKc2IyTnJMRnh1SUNCd2NtOW5jbUZ0TEZ4dUlDQnBiblpsY25ObFFXNWtVSEp2WjNKaGJTeGNiaUFnWTJ4dmMyVXNYRzRnSUdsdWRtVnlkR1ZrTEZ4dUlDQnNiMk5KYm1adlhHNHBJSHRjYmlBZ2FXWWdLR05zYjNObElDWW1JR05zYjNObExuQmhkR2dwSUh0Y2JpQWdJQ0IyWVd4cFpHRjBaVU5zYjNObEtHOXdaVzVDYkc5amF5d2dZMnh2YzJVcE8xeHVJQ0I5WEc1Y2JpQWdiR1YwSUdSbFkyOXlZWFJ2Y2lBOUlDOWNYQ292TG5SbGMzUW9iM0JsYmtKc2IyTnJMbTl3Wlc0cE8xeHVYRzRnSUhCeWIyZHlZVzB1WW14dlkydFFZWEpoYlhNZ1BTQnZjR1Z1UW14dlkyc3VZbXh2WTJ0UVlYSmhiWE03WEc1Y2JpQWdiR1YwSUdsdWRtVnljMlVzSUdsdWRtVnljMlZUZEhKcGNEdGNibHh1SUNCcFppQW9hVzUyWlhKelpVRnVaRkJ5YjJkeVlXMHBJSHRjYmlBZ0lDQnBaaUFvWkdWamIzSmhkRzl5S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYaGpaWEIwYVc5dUtGeHVJQ0FnSUNBZ0lDQW5WVzVsZUhCbFkzUmxaQ0JwYm5abGNuTmxJR0pzYjJOcklHOXVJR1JsWTI5eVlYUnZjaWNzWEc0Z0lDQWdJQ0FnSUdsdWRtVnljMlZCYm1SUWNtOW5jbUZ0WEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNocGJuWmxjbk5sUVc1a1VISnZaM0poYlM1amFHRnBiaWtnZTF4dUlDQWdJQ0FnYVc1MlpYSnpaVUZ1WkZCeWIyZHlZVzB1Y0hKdlozSmhiUzVpYjJSNVd6QmRMbU5zYjNObFUzUnlhWEFnUFNCamJHOXpaUzV6ZEhKcGNEdGNiaUFnSUNCOVhHNWNiaUFnSUNCcGJuWmxjbk5sVTNSeWFYQWdQU0JwYm5abGNuTmxRVzVrVUhKdlozSmhiUzV6ZEhKcGNEdGNiaUFnSUNCcGJuWmxjbk5sSUQwZ2FXNTJaWEp6WlVGdVpGQnliMmR5WVcwdWNISnZaM0poYlR0Y2JpQWdmVnh1WEc0Z0lHbG1JQ2hwYm5abGNuUmxaQ2tnZTF4dUlDQWdJR2x1ZG1WeWRHVmtJRDBnYVc1MlpYSnpaVHRjYmlBZ0lDQnBiblpsY25ObElEMGdjSEp2WjNKaGJUdGNiaUFnSUNCd2NtOW5jbUZ0SUQwZ2FXNTJaWEowWldRN1hHNGdJSDFjYmx4dUlDQnlaWFIxY200Z2UxeHVJQ0FnSUhSNWNHVTZJR1JsWTI5eVlYUnZjaUEvSUNkRVpXTnZjbUYwYjNKQ2JHOWpheWNnT2lBblFteHZZMnRUZEdGMFpXMWxiblFuTEZ4dUlDQWdJSEJoZEdnNklHOXdaVzVDYkc5amF5NXdZWFJvTEZ4dUlDQWdJSEJoY21GdGN6b2diM0JsYmtKc2IyTnJMbkJoY21GdGN5eGNiaUFnSUNCb1lYTm9PaUJ2Y0dWdVFteHZZMnN1YUdGemFDeGNiaUFnSUNCd2NtOW5jbUZ0TEZ4dUlDQWdJR2x1ZG1WeWMyVXNYRzRnSUNBZ2IzQmxibE4wY21sd09pQnZjR1Z1UW14dlkyc3VjM1J5YVhBc1hHNGdJQ0FnYVc1MlpYSnpaVk4wY21sd0xGeHVJQ0FnSUdOc2IzTmxVM1J5YVhBNklHTnNiM05sSUNZbUlHTnNiM05sTG5OMGNtbHdMRnh1SUNBZ0lHeHZZem9nZEdocGN5NXNiMk5KYm1adktHeHZZMGx1Wm04cFhHNGdJSDA3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQndjbVZ3WVhKbFVISnZaM0poYlNoemRHRjBaVzFsYm5SekxDQnNiMk1wSUh0Y2JpQWdhV1lnS0NGc2IyTWdKaVlnYzNSaGRHVnRaVzUwY3k1c1pXNW5kR2dwSUh0Y2JpQWdJQ0JqYjI1emRDQm1hWEp6ZEV4dll5QTlJSE4wWVhSbGJXVnVkSE5iTUYwdWJHOWpMRnh1SUNBZ0lDQWdiR0Z6ZEV4dll5QTlJSE4wWVhSbGJXVnVkSE5iYzNSaGRHVnRaVzUwY3k1c1pXNW5kR2dnTFNBeFhTNXNiMk03WEc1Y2JpQWdJQ0F2S2lCcGMzUmhibUoxYkNCcFoyNXZjbVVnWld4elpTQXFMMXh1SUNBZ0lHbG1JQ2htYVhKemRFeHZZeUFtSmlCc1lYTjBURzlqS1NCN1hHNGdJQ0FnSUNCc2IyTWdQU0I3WEc0Z0lDQWdJQ0FnSUhOdmRYSmpaVG9nWm1seWMzUk1iMk11YzI5MWNtTmxMRnh1SUNBZ0lDQWdJQ0J6ZEdGeWREb2dlMXh1SUNBZ0lDQWdJQ0FnSUd4cGJtVTZJR1pwY25OMFRHOWpMbk4wWVhKMExteHBibVVzWEc0Z0lDQWdJQ0FnSUNBZ1kyOXNkVzF1T2lCbWFYSnpkRXh2WXk1emRHRnlkQzVqYjJ4MWJXNWNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnWlc1a09pQjdYRzRnSUNBZ0lDQWdJQ0FnYkdsdVpUb2diR0Z6ZEV4dll5NWxibVF1YkdsdVpTeGNiaUFnSUNBZ0lDQWdJQ0JqYjJ4MWJXNDZJR3hoYzNSTWIyTXVaVzVrTG1OdmJIVnRibHh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5TzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUI3WEc0Z0lDQWdkSGx3WlRvZ0oxQnliMmR5WVcwbkxGeHVJQ0FnSUdKdlpIazZJSE4wWVhSbGJXVnVkSE1zWEc0Z0lDQWdjM1J5YVhBNklIdDlMRnh1SUNBZ0lHeHZZem9nYkc5alhHNGdJSDA3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQndjbVZ3WVhKbFVHRnlkR2xoYkVKc2IyTnJLRzl3Wlc0c0lIQnliMmR5WVcwc0lHTnNiM05sTENCc2IyTkpibVp2S1NCN1hHNGdJSFpoYkdsa1lYUmxRMnh2YzJVb2IzQmxiaXdnWTJ4dmMyVXBPMXh1WEc0Z0lISmxkSFZ5YmlCN1hHNGdJQ0FnZEhsd1pUb2dKMUJoY25ScFlXeENiRzlqYTFOMFlYUmxiV1Z1ZENjc1hHNGdJQ0FnYm1GdFpUb2diM0JsYmk1d1lYUm9MRnh1SUNBZ0lIQmhjbUZ0Y3pvZ2IzQmxiaTV3WVhKaGJYTXNYRzRnSUNBZ2FHRnphRG9nYjNCbGJpNW9ZWE5vTEZ4dUlDQWdJSEJ5YjJkeVlXMHNYRzRnSUNBZ2IzQmxibE4wY21sd09pQnZjR1Z1TG5OMGNtbHdMRnh1SUNBZ0lHTnNiM05sVTNSeWFYQTZJR05zYjNObElDWW1JR05zYjNObExuTjBjbWx3TEZ4dUlDQWdJR3h2WXpvZ2RHaHBjeTVzYjJOSmJtWnZLR3h2WTBsdVptOHBYRzRnSUgwN1hHNTlYRzRpWFgwPVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5wYXJzZVdpdGhvdXRQcm9jZXNzaW5nID0gcGFyc2VXaXRob3V0UHJvY2Vzc2luZztcbmV4cG9ydHMucGFyc2UgPSBwYXJzZTtcbi8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gZWxzZSB7IHZhciBuZXdPYmogPSB7fTsgaWYgKG9iaiAhPSBudWxsKSB7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSBuZXdPYmpbJ2RlZmF1bHQnXSA9IG9iajsgcmV0dXJuIG5ld09iajsgfSB9XG5cbi8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9wYXJzZXIgPSByZXF1aXJlKCcuL3BhcnNlcicpO1xuXG52YXIgX3BhcnNlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wYXJzZXIpO1xuXG52YXIgX3doaXRlc3BhY2VDb250cm9sID0gcmVxdWlyZSgnLi93aGl0ZXNwYWNlLWNvbnRyb2wnKTtcblxudmFyIF93aGl0ZXNwYWNlQ29udHJvbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF93aGl0ZXNwYWNlQ29udHJvbCk7XG5cbnZhciBfaGVscGVycyA9IHJlcXVpcmUoJy4vaGVscGVycycpO1xuXG52YXIgSGVscGVycyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKF9oZWxwZXJzKTtcblxudmFyIF91dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzJyk7XG5cbmV4cG9ydHMucGFyc2VyID0gX3BhcnNlcjJbJ2RlZmF1bHQnXTtcblxudmFyIHl5ID0ge307XG5fdXRpbHMuZXh0ZW5kKHl5LCBIZWxwZXJzKTtcblxuZnVuY3Rpb24gcGFyc2VXaXRob3V0UHJvY2Vzc2luZyhpbnB1dCwgb3B0aW9ucykge1xuICAvLyBKdXN0IHJldHVybiBpZiBhbiBhbHJlYWR5LWNvbXBpbGVkIEFTVCB3YXMgcGFzc2VkIGluLlxuICBpZiAoaW5wdXQudHlwZSA9PT0gJ1Byb2dyYW0nKSB7XG4gICAgcmV0dXJuIGlucHV0O1xuICB9XG5cbiAgX3BhcnNlcjJbJ2RlZmF1bHQnXS55eSA9IHl5O1xuXG4gIC8vIEFsdGVyaW5nIHRoZSBzaGFyZWQgb2JqZWN0IGhlcmUsIGJ1dCB0aGlzIGlzIG9rIGFzIHBhcnNlciBpcyBhIHN5bmMgb3BlcmF0aW9uXG4gIHl5LmxvY0luZm8gPSBmdW5jdGlvbiAobG9jSW5mbykge1xuICAgIHJldHVybiBuZXcgeXkuU291cmNlTG9jYXRpb24ob3B0aW9ucyAmJiBvcHRpb25zLnNyY05hbWUsIGxvY0luZm8pO1xuICB9O1xuXG4gIHZhciBhc3QgPSBfcGFyc2VyMlsnZGVmYXVsdCddLnBhcnNlKGlucHV0KTtcblxuICByZXR1cm4gYXN0O1xufVxuXG5mdW5jdGlvbiBwYXJzZShpbnB1dCwgb3B0aW9ucykge1xuICB2YXIgYXN0ID0gcGFyc2VXaXRob3V0UHJvY2Vzc2luZyhpbnB1dCwgb3B0aW9ucyk7XG4gIHZhciBzdHJpcCA9IG5ldyBfd2hpdGVzcGFjZUNvbnRyb2wyWydkZWZhdWx0J10ob3B0aW9ucyk7XG5cbiAgcmV0dXJuIHN0cmlwLmFjY2VwdChhc3QpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwyeHBZaTlvWVc1a2JHVmlZWEp6TDJOdmJYQnBiR1Z5TDJKaGMyVXVhbk1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3p0elFrRkJiVUlzVlVGQlZUczdPenRwUTBGRFF5eHpRa0ZCYzBJN096czdkVUpCUXpOQ0xGZEJRVmM3TzBsQlFYaENMRTlCUVU4N08zRkNRVU5KTEZWQlFWVTdPMUZCUlhoQ0xFMUJRVTA3TzBGQlJXWXNTVUZCU1N4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRE8wRkJRMW9zWTBGQlR5eEZRVUZGTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN08wRkJSV0lzVTBGQlV5eHpRa0ZCYzBJc1EwRkJReXhMUVVGTExFVkJRVVVzVDBGQlR5eEZRVUZGT3p0QlFVVnlSQ3hOUVVGSkxFdEJRVXNzUTBGQlF5eEpRVUZKTEV0QlFVc3NVMEZCVXl4RlFVRkZPMEZCUXpWQ0xGZEJRVThzUzBGQlN5eERRVUZETzBkQlEyUTdPMEZCUlVRc2MwSkJRVThzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXpzN08wRkJSMllzU1VGQlJTeERRVUZETEU5QlFVOHNSMEZCUnl4VlFVRlRMRTlCUVU4c1JVRkJSVHRCUVVNM1FpeFhRVUZQTEVsQlFVa3NSVUZCUlN4RFFVRkRMR05CUVdNc1EwRkJReXhQUVVGUExFbEJRVWtzVDBGQlR5eERRVUZETEU5QlFVOHNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRIUVVOdVJTeERRVUZET3p0QlFVVkdMRTFCUVVrc1IwRkJSeXhIUVVGSExHOUNRVUZQTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenM3UVVGRk9VSXNVMEZCVHl4SFFVRkhMRU5CUVVNN1EwRkRXanM3UVVGRlRTeFRRVUZUTEV0QlFVc3NRMEZCUXl4TFFVRkxMRVZCUVVVc1QwRkJUeXhGUVVGRk8wRkJRM0JETEUxQlFVa3NSMEZCUnl4SFFVRkhMSE5DUVVGelFpeERRVUZETEV0QlFVc3NSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVOcVJDeE5RVUZKTEV0QlFVc3NSMEZCUnl4dFEwRkJjMElzVDBGQlR5eERRVUZETEVOQlFVTTdPMEZCUlRORExGTkJRVThzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenREUVVNeFFpSXNJbVpwYkdVaU9pSmlZWE5sTG1weklpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIQmhjbk5sY2lCbWNtOXRJQ2N1TDNCaGNuTmxjaWM3WEc1cGJYQnZjblFnVjJocGRHVnpjR0ZqWlVOdmJuUnliMndnWm5KdmJTQW5MaTkzYUdsMFpYTndZV05sTFdOdmJuUnliMnduTzF4dWFXMXdiM0owSUNvZ1lYTWdTR1ZzY0dWeWN5Qm1jbTl0SUNjdUwyaGxiSEJsY25Nbk8xeHVhVzF3YjNKMElIc2daWGgwWlc1a0lIMGdabkp2YlNBbkxpNHZkWFJwYkhNbk8xeHVYRzVsZUhCdmNuUWdleUJ3WVhKelpYSWdmVHRjYmx4dWJHVjBJSGw1SUQwZ2UzMDdYRzVsZUhSbGJtUW9lWGtzSUVobGJIQmxjbk1wTzF4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NHRnljMlZYYVhSb2IzVjBVSEp2WTJWemMybHVaeWhwYm5CMWRDd2diM0IwYVc5dWN5a2dlMXh1SUNBdkx5QktkWE4wSUhKbGRIVnliaUJwWmlCaGJpQmhiSEpsWVdSNUxXTnZiWEJwYkdWa0lFRlRWQ0IzWVhNZ2NHRnpjMlZrSUdsdUxseHVJQ0JwWmlBb2FXNXdkWFF1ZEhsd1pTQTlQVDBnSjFCeWIyZHlZVzBuS1NCN1hHNGdJQ0FnY21WMGRYSnVJR2x1Y0hWME8xeHVJQ0I5WEc1Y2JpQWdjR0Z5YzJWeUxubDVJRDBnZVhrN1hHNWNiaUFnTHk4Z1FXeDBaWEpwYm1jZ2RHaGxJSE5vWVhKbFpDQnZZbXBsWTNRZ2FHVnlaU3dnWW5WMElIUm9hWE1nYVhNZ2Iyc2dZWE1nY0dGeWMyVnlJR2x6SUdFZ2MzbHVZeUJ2Y0dWeVlYUnBiMjVjYmlBZ2VYa3ViRzlqU1c1bWJ5QTlJR1oxYm1OMGFXOXVLR3h2WTBsdVptOHBJSHRjYmlBZ0lDQnlaWFIxY200Z2JtVjNJSGw1TGxOdmRYSmpaVXh2WTJGMGFXOXVLRzl3ZEdsdmJuTWdKaVlnYjNCMGFXOXVjeTV6Y21OT1lXMWxMQ0JzYjJOSmJtWnZLVHRjYmlBZ2ZUdGNibHh1SUNCc1pYUWdZWE4wSUQwZ2NHRnljMlZ5TG5CaGNuTmxLR2x1Y0hWMEtUdGNibHh1SUNCeVpYUjFjbTRnWVhOME8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY0dGeWMyVW9hVzV3ZFhRc0lHOXdkR2x2Ym5NcElIdGNiaUFnYkdWMElHRnpkQ0E5SUhCaGNuTmxWMmwwYUc5MWRGQnliMk5sYzNOcGJtY29hVzV3ZFhRc0lHOXdkR2x2Ym5NcE8xeHVJQ0JzWlhRZ2MzUnlhWEFnUFNCdVpYY2dWMmhwZEdWemNHRmpaVU52Ym5SeWIyd29iM0IwYVc5dWN5azdYRzVjYmlBZ2NtVjBkWEp1SUhOMGNtbHdMbUZqWTJWd2RDaGhjM1FwTzF4dWZWeHVJbDE5XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSBuZXctY2FwICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuQ29tcGlsZXIgPSBDb21waWxlcjtcbmV4cG9ydHMucHJlY29tcGlsZSA9IHByZWNvbXBpbGU7XG5leHBvcnRzLmNvbXBpbGUgPSBjb21waWxlO1xuLy8gaXN0YW5idWwgaWdub3JlIG5leHRcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX2V4Y2VwdGlvbiA9IHJlcXVpcmUoJy4uL2V4Y2VwdGlvbicpO1xuXG52YXIgX2V4Y2VwdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9leGNlcHRpb24pO1xuXG52YXIgX3V0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMnKTtcblxudmFyIF9hc3QgPSByZXF1aXJlKCcuL2FzdCcpO1xuXG52YXIgX2FzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hc3QpO1xuXG52YXIgc2xpY2UgPSBbXS5zbGljZTtcblxuZnVuY3Rpb24gQ29tcGlsZXIoKSB7fVxuXG4vLyB0aGUgZm91bmRIZWxwZXIgcmVnaXN0ZXIgd2lsbCBkaXNhbWJpZ3VhdGUgaGVscGVyIGxvb2t1cCBmcm9tIGZpbmRpbmcgYVxuLy8gZnVuY3Rpb24gaW4gYSBjb250ZXh0LiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgbXVzdGFjaGUgY29tcGF0aWJpbGl0eSwgd2hpY2hcbi8vIHJlcXVpcmVzIHRoYXQgY29udGV4dCBmdW5jdGlvbnMgaW4gYmxvY2tzIGFyZSBldmFsdWF0ZWQgYnkgYmxvY2tIZWxwZXJNaXNzaW5nLFxuLy8gYW5kIHRoZW4gcHJvY2VlZCBhcyBpZiB0aGUgcmVzdWx0aW5nIHZhbHVlIHdhcyBwcm92aWRlZCB0byBibG9ja0hlbHBlck1pc3NpbmcuXG5cbkNvbXBpbGVyLnByb3RvdHlwZSA9IHtcbiAgY29tcGlsZXI6IENvbXBpbGVyLFxuXG4gIGVxdWFsczogZnVuY3Rpb24gZXF1YWxzKG90aGVyKSB7XG4gICAgdmFyIGxlbiA9IHRoaXMub3Bjb2Rlcy5sZW5ndGg7XG4gICAgaWYgKG90aGVyLm9wY29kZXMubGVuZ3RoICE9PSBsZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICB2YXIgb3Bjb2RlID0gdGhpcy5vcGNvZGVzW2ldLFxuICAgICAgICAgIG90aGVyT3Bjb2RlID0gb3RoZXIub3Bjb2Rlc1tpXTtcbiAgICAgIGlmIChvcGNvZGUub3Bjb2RlICE9PSBvdGhlck9wY29kZS5vcGNvZGUgfHwgIWFyZ0VxdWFscyhvcGNvZGUuYXJncywgb3RoZXJPcGNvZGUuYXJncykpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdlIGtub3cgdGhhdCBsZW5ndGggaXMgdGhlIHNhbWUgYmV0d2VlbiB0aGUgdHdvIGFycmF5cyBiZWNhdXNlIHRoZXkgYXJlIGRpcmVjdGx5IHRpZWRcbiAgICAvLyB0byB0aGUgb3Bjb2RlIGJlaGF2aW9yIGFib3ZlLlxuICAgIGxlbiA9IHRoaXMuY2hpbGRyZW4ubGVuZ3RoO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGlmICghdGhpcy5jaGlsZHJlbltpXS5lcXVhbHMob3RoZXIuY2hpbGRyZW5baV0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcblxuICBndWlkOiAwLFxuXG4gIGNvbXBpbGU6IGZ1bmN0aW9uIGNvbXBpbGUocHJvZ3JhbSwgb3B0aW9ucykge1xuICAgIHRoaXMuc291cmNlTm9kZSA9IFtdO1xuICAgIHRoaXMub3Bjb2RlcyA9IFtdO1xuICAgIHRoaXMuY2hpbGRyZW4gPSBbXTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuc3RyaW5nUGFyYW1zID0gb3B0aW9ucy5zdHJpbmdQYXJhbXM7XG4gICAgdGhpcy50cmFja0lkcyA9IG9wdGlvbnMudHJhY2tJZHM7XG5cbiAgICBvcHRpb25zLmJsb2NrUGFyYW1zID0gb3B0aW9ucy5ibG9ja1BhcmFtcyB8fCBbXTtcblxuICAgIG9wdGlvbnMua25vd25IZWxwZXJzID0gX3V0aWxzLmV4dGVuZChPYmplY3QuY3JlYXRlKG51bGwpLCB7XG4gICAgICBoZWxwZXJNaXNzaW5nOiB0cnVlLFxuICAgICAgYmxvY2tIZWxwZXJNaXNzaW5nOiB0cnVlLFxuICAgICAgZWFjaDogdHJ1ZSxcbiAgICAgICdpZic6IHRydWUsXG4gICAgICB1bmxlc3M6IHRydWUsXG4gICAgICAnd2l0aCc6IHRydWUsXG4gICAgICBsb2c6IHRydWUsXG4gICAgICBsb29rdXA6IHRydWVcbiAgICB9LCBvcHRpb25zLmtub3duSGVscGVycyk7XG5cbiAgICByZXR1cm4gdGhpcy5hY2NlcHQocHJvZ3JhbSk7XG4gIH0sXG5cbiAgY29tcGlsZVByb2dyYW06IGZ1bmN0aW9uIGNvbXBpbGVQcm9ncmFtKHByb2dyYW0pIHtcbiAgICB2YXIgY2hpbGRDb21waWxlciA9IG5ldyB0aGlzLmNvbXBpbGVyKCksXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbmV3LWNhcFxuICAgIHJlc3VsdCA9IGNoaWxkQ29tcGlsZXIuY29tcGlsZShwcm9ncmFtLCB0aGlzLm9wdGlvbnMpLFxuICAgICAgICBndWlkID0gdGhpcy5ndWlkKys7XG5cbiAgICB0aGlzLnVzZVBhcnRpYWwgPSB0aGlzLnVzZVBhcnRpYWwgfHwgcmVzdWx0LnVzZVBhcnRpYWw7XG5cbiAgICB0aGlzLmNoaWxkcmVuW2d1aWRdID0gcmVzdWx0O1xuICAgIHRoaXMudXNlRGVwdGhzID0gdGhpcy51c2VEZXB0aHMgfHwgcmVzdWx0LnVzZURlcHRocztcblxuICAgIHJldHVybiBndWlkO1xuICB9LFxuXG4gIGFjY2VwdDogZnVuY3Rpb24gYWNjZXB0KG5vZGUpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDogU2FuaXR5IGNvZGUgKi9cbiAgICBpZiAoIXRoaXNbbm9kZS50eXBlXSkge1xuICAgICAgdGhyb3cgbmV3IF9leGNlcHRpb24yWydkZWZhdWx0J10oJ1Vua25vd24gdHlwZTogJyArIG5vZGUudHlwZSwgbm9kZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zb3VyY2VOb2RlLnVuc2hpZnQobm9kZSk7XG4gICAgdmFyIHJldCA9IHRoaXNbbm9kZS50eXBlXShub2RlKTtcbiAgICB0aGlzLnNvdXJjZU5vZGUuc2hpZnQoKTtcbiAgICByZXR1cm4gcmV0O1xuICB9LFxuXG4gIFByb2dyYW06IGZ1bmN0aW9uIFByb2dyYW0ocHJvZ3JhbSkge1xuICAgIHRoaXMub3B0aW9ucy5ibG9ja1BhcmFtcy51bnNoaWZ0KHByb2dyYW0uYmxvY2tQYXJhbXMpO1xuXG4gICAgdmFyIGJvZHkgPSBwcm9ncmFtLmJvZHksXG4gICAgICAgIGJvZHlMZW5ndGggPSBib2R5Lmxlbmd0aDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJvZHlMZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5hY2NlcHQoYm9keVtpXSk7XG4gICAgfVxuXG4gICAgdGhpcy5vcHRpb25zLmJsb2NrUGFyYW1zLnNoaWZ0KCk7XG5cbiAgICB0aGlzLmlzU2ltcGxlID0gYm9keUxlbmd0aCA9PT0gMTtcbiAgICB0aGlzLmJsb2NrUGFyYW1zID0gcHJvZ3JhbS5ibG9ja1BhcmFtcyA/IHByb2dyYW0uYmxvY2tQYXJhbXMubGVuZ3RoIDogMDtcblxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuXG4gIEJsb2NrU3RhdGVtZW50OiBmdW5jdGlvbiBCbG9ja1N0YXRlbWVudChibG9jaykge1xuICAgIHRyYW5zZm9ybUxpdGVyYWxUb1BhdGgoYmxvY2spO1xuXG4gICAgdmFyIHByb2dyYW0gPSBibG9jay5wcm9ncmFtLFxuICAgICAgICBpbnZlcnNlID0gYmxvY2suaW52ZXJzZTtcblxuICAgIHByb2dyYW0gPSBwcm9ncmFtICYmIHRoaXMuY29tcGlsZVByb2dyYW0ocHJvZ3JhbSk7XG4gICAgaW52ZXJzZSA9IGludmVyc2UgJiYgdGhpcy5jb21waWxlUHJvZ3JhbShpbnZlcnNlKTtcblxuICAgIHZhciB0eXBlID0gdGhpcy5jbGFzc2lmeVNleHByKGJsb2NrKTtcblxuICAgIGlmICh0eXBlID09PSAnaGVscGVyJykge1xuICAgICAgdGhpcy5oZWxwZXJTZXhwcihibG9jaywgcHJvZ3JhbSwgaW52ZXJzZSk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnc2ltcGxlJykge1xuICAgICAgdGhpcy5zaW1wbGVTZXhwcihibG9jayk7XG5cbiAgICAgIC8vIG5vdyB0aGF0IHRoZSBzaW1wbGUgbXVzdGFjaGUgaXMgcmVzb2x2ZWQsIHdlIG5lZWQgdG9cbiAgICAgIC8vIGV2YWx1YXRlIGl0IGJ5IGV4ZWN1dGluZyBgYmxvY2tIZWxwZXJNaXNzaW5nYFxuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgcHJvZ3JhbSk7XG4gICAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBpbnZlcnNlKTtcbiAgICAgIHRoaXMub3Bjb2RlKCdlbXB0eUhhc2gnKTtcbiAgICAgIHRoaXMub3Bjb2RlKCdibG9ja1ZhbHVlJywgYmxvY2sucGF0aC5vcmlnaW5hbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYW1iaWd1b3VzU2V4cHIoYmxvY2ssIHByb2dyYW0sIGludmVyc2UpO1xuXG4gICAgICAvLyBub3cgdGhhdCB0aGUgc2ltcGxlIG11c3RhY2hlIGlzIHJlc29sdmVkLCB3ZSBuZWVkIHRvXG4gICAgICAvLyBldmFsdWF0ZSBpdCBieSBleGVjdXRpbmcgYGJsb2NrSGVscGVyTWlzc2luZ2BcbiAgICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIHByb2dyYW0pO1xuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgaW52ZXJzZSk7XG4gICAgICB0aGlzLm9wY29kZSgnZW1wdHlIYXNoJyk7XG4gICAgICB0aGlzLm9wY29kZSgnYW1iaWd1b3VzQmxvY2tWYWx1ZScpO1xuICAgIH1cblxuICAgIHRoaXMub3Bjb2RlKCdhcHBlbmQnKTtcbiAgfSxcblxuICBEZWNvcmF0b3JCbG9jazogZnVuY3Rpb24gRGVjb3JhdG9yQmxvY2soZGVjb3JhdG9yKSB7XG4gICAgdmFyIHByb2dyYW0gPSBkZWNvcmF0b3IucHJvZ3JhbSAmJiB0aGlzLmNvbXBpbGVQcm9ncmFtKGRlY29yYXRvci5wcm9ncmFtKTtcbiAgICB2YXIgcGFyYW1zID0gdGhpcy5zZXR1cEZ1bGxNdXN0YWNoZVBhcmFtcyhkZWNvcmF0b3IsIHByb2dyYW0sIHVuZGVmaW5lZCksXG4gICAgICAgIHBhdGggPSBkZWNvcmF0b3IucGF0aDtcblxuICAgIHRoaXMudXNlRGVjb3JhdG9ycyA9IHRydWU7XG4gICAgdGhpcy5vcGNvZGUoJ3JlZ2lzdGVyRGVjb3JhdG9yJywgcGFyYW1zLmxlbmd0aCwgcGF0aC5vcmlnaW5hbCk7XG4gIH0sXG5cbiAgUGFydGlhbFN0YXRlbWVudDogZnVuY3Rpb24gUGFydGlhbFN0YXRlbWVudChwYXJ0aWFsKSB7XG4gICAgdGhpcy51c2VQYXJ0aWFsID0gdHJ1ZTtcblxuICAgIHZhciBwcm9ncmFtID0gcGFydGlhbC5wcm9ncmFtO1xuICAgIGlmIChwcm9ncmFtKSB7XG4gICAgICBwcm9ncmFtID0gdGhpcy5jb21waWxlUHJvZ3JhbShwYXJ0aWFsLnByb2dyYW0pO1xuICAgIH1cblxuICAgIHZhciBwYXJhbXMgPSBwYXJ0aWFsLnBhcmFtcztcbiAgICBpZiAocGFyYW1zLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBfZXhjZXB0aW9uMlsnZGVmYXVsdCddKCdVbnN1cHBvcnRlZCBudW1iZXIgb2YgcGFydGlhbCBhcmd1bWVudHM6ICcgKyBwYXJhbXMubGVuZ3RoLCBwYXJ0aWFsKTtcbiAgICB9IGVsc2UgaWYgKCFwYXJhbXMubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmV4cGxpY2l0UGFydGlhbENvbnRleHQpIHtcbiAgICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgJ3VuZGVmaW5lZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyYW1zLnB1c2goeyB0eXBlOiAnUGF0aEV4cHJlc3Npb24nLCBwYXJ0czogW10sIGRlcHRoOiAwIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBwYXJ0aWFsTmFtZSA9IHBhcnRpYWwubmFtZS5vcmlnaW5hbCxcbiAgICAgICAgaXNEeW5hbWljID0gcGFydGlhbC5uYW1lLnR5cGUgPT09ICdTdWJFeHByZXNzaW9uJztcbiAgICBpZiAoaXNEeW5hbWljKSB7XG4gICAgICB0aGlzLmFjY2VwdChwYXJ0aWFsLm5hbWUpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0dXBGdWxsTXVzdGFjaGVQYXJhbXMocGFydGlhbCwgcHJvZ3JhbSwgdW5kZWZpbmVkLCB0cnVlKTtcblxuICAgIHZhciBpbmRlbnQgPSBwYXJ0aWFsLmluZGVudCB8fCAnJztcbiAgICBpZiAodGhpcy5vcHRpb25zLnByZXZlbnRJbmRlbnQgJiYgaW5kZW50KSB7XG4gICAgICB0aGlzLm9wY29kZSgnYXBwZW5kQ29udGVudCcsIGluZGVudCk7XG4gICAgICBpbmRlbnQgPSAnJztcbiAgICB9XG5cbiAgICB0aGlzLm9wY29kZSgnaW52b2tlUGFydGlhbCcsIGlzRHluYW1pYywgcGFydGlhbE5hbWUsIGluZGVudCk7XG4gICAgdGhpcy5vcGNvZGUoJ2FwcGVuZCcpO1xuICB9LFxuICBQYXJ0aWFsQmxvY2tTdGF0ZW1lbnQ6IGZ1bmN0aW9uIFBhcnRpYWxCbG9ja1N0YXRlbWVudChwYXJ0aWFsQmxvY2spIHtcbiAgICB0aGlzLlBhcnRpYWxTdGF0ZW1lbnQocGFydGlhbEJsb2NrKTtcbiAgfSxcblxuICBNdXN0YWNoZVN0YXRlbWVudDogZnVuY3Rpb24gTXVzdGFjaGVTdGF0ZW1lbnQobXVzdGFjaGUpIHtcbiAgICB0aGlzLlN1YkV4cHJlc3Npb24obXVzdGFjaGUpO1xuXG4gICAgaWYgKG11c3RhY2hlLmVzY2FwZWQgJiYgIXRoaXMub3B0aW9ucy5ub0VzY2FwZSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZEVzY2FwZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZCcpO1xuICAgIH1cbiAgfSxcbiAgRGVjb3JhdG9yOiBmdW5jdGlvbiBEZWNvcmF0b3IoZGVjb3JhdG9yKSB7XG4gICAgdGhpcy5EZWNvcmF0b3JCbG9jayhkZWNvcmF0b3IpO1xuICB9LFxuXG4gIENvbnRlbnRTdGF0ZW1lbnQ6IGZ1bmN0aW9uIENvbnRlbnRTdGF0ZW1lbnQoY29udGVudCkge1xuICAgIGlmIChjb250ZW50LnZhbHVlKSB7XG4gICAgICB0aGlzLm9wY29kZSgnYXBwZW5kQ29udGVudCcsIGNvbnRlbnQudmFsdWUpO1xuICAgIH1cbiAgfSxcblxuICBDb21tZW50U3RhdGVtZW50OiBmdW5jdGlvbiBDb21tZW50U3RhdGVtZW50KCkge30sXG5cbiAgU3ViRXhwcmVzc2lvbjogZnVuY3Rpb24gU3ViRXhwcmVzc2lvbihzZXhwcikge1xuICAgIHRyYW5zZm9ybUxpdGVyYWxUb1BhdGgoc2V4cHIpO1xuICAgIHZhciB0eXBlID0gdGhpcy5jbGFzc2lmeVNleHByKHNleHByKTtcblxuICAgIGlmICh0eXBlID09PSAnc2ltcGxlJykge1xuICAgICAgdGhpcy5zaW1wbGVTZXhwcihzZXhwcik7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnaGVscGVyJykge1xuICAgICAgdGhpcy5oZWxwZXJTZXhwcihzZXhwcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYW1iaWd1b3VzU2V4cHIoc2V4cHIpO1xuICAgIH1cbiAgfSxcbiAgYW1iaWd1b3VzU2V4cHI6IGZ1bmN0aW9uIGFtYmlndW91c1NleHByKHNleHByLCBwcm9ncmFtLCBpbnZlcnNlKSB7XG4gICAgdmFyIHBhdGggPSBzZXhwci5wYXRoLFxuICAgICAgICBuYW1lID0gcGF0aC5wYXJ0c1swXSxcbiAgICAgICAgaXNCbG9jayA9IHByb2dyYW0gIT0gbnVsbCB8fCBpbnZlcnNlICE9IG51bGw7XG5cbiAgICB0aGlzLm9wY29kZSgnZ2V0Q29udGV4dCcsIHBhdGguZGVwdGgpO1xuXG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgcHJvZ3JhbSk7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgaW52ZXJzZSk7XG5cbiAgICBwYXRoLnN0cmljdCA9IHRydWU7XG4gICAgdGhpcy5hY2NlcHQocGF0aCk7XG5cbiAgICB0aGlzLm9wY29kZSgnaW52b2tlQW1iaWd1b3VzJywgbmFtZSwgaXNCbG9jayk7XG4gIH0sXG5cbiAgc2ltcGxlU2V4cHI6IGZ1bmN0aW9uIHNpbXBsZVNleHByKHNleHByKSB7XG4gICAgdmFyIHBhdGggPSBzZXhwci5wYXRoO1xuICAgIHBhdGguc3RyaWN0ID0gdHJ1ZTtcbiAgICB0aGlzLmFjY2VwdChwYXRoKTtcbiAgICB0aGlzLm9wY29kZSgncmVzb2x2ZVBvc3NpYmxlTGFtYmRhJyk7XG4gIH0sXG5cbiAgaGVscGVyU2V4cHI6IGZ1bmN0aW9uIGhlbHBlclNleHByKHNleHByLCBwcm9ncmFtLCBpbnZlcnNlKSB7XG4gICAgdmFyIHBhcmFtcyA9IHRoaXMuc2V0dXBGdWxsTXVzdGFjaGVQYXJhbXMoc2V4cHIsIHByb2dyYW0sIGludmVyc2UpLFxuICAgICAgICBwYXRoID0gc2V4cHIucGF0aCxcbiAgICAgICAgbmFtZSA9IHBhdGgucGFydHNbMF07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmtub3duSGVscGVyc1tuYW1lXSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2ludm9rZUtub3duSGVscGVyJywgcGFyYW1zLmxlbmd0aCwgbmFtZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMua25vd25IZWxwZXJzT25seSkge1xuICAgICAgdGhyb3cgbmV3IF9leGNlcHRpb24yWydkZWZhdWx0J10oJ1lvdSBzcGVjaWZpZWQga25vd25IZWxwZXJzT25seSwgYnV0IHVzZWQgdGhlIHVua25vd24gaGVscGVyICcgKyBuYW1lLCBzZXhwcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhdGguc3RyaWN0ID0gdHJ1ZTtcbiAgICAgIHBhdGguZmFsc3kgPSB0cnVlO1xuXG4gICAgICB0aGlzLmFjY2VwdChwYXRoKTtcbiAgICAgIHRoaXMub3Bjb2RlKCdpbnZva2VIZWxwZXInLCBwYXJhbXMubGVuZ3RoLCBwYXRoLm9yaWdpbmFsLCBfYXN0MlsnZGVmYXVsdCddLmhlbHBlcnMuc2ltcGxlSWQocGF0aCkpO1xuICAgIH1cbiAgfSxcblxuICBQYXRoRXhwcmVzc2lvbjogZnVuY3Rpb24gUGF0aEV4cHJlc3Npb24ocGF0aCkge1xuICAgIHRoaXMuYWRkRGVwdGgocGF0aC5kZXB0aCk7XG4gICAgdGhpcy5vcGNvZGUoJ2dldENvbnRleHQnLCBwYXRoLmRlcHRoKTtcblxuICAgIHZhciBuYW1lID0gcGF0aC5wYXJ0c1swXSxcbiAgICAgICAgc2NvcGVkID0gX2FzdDJbJ2RlZmF1bHQnXS5oZWxwZXJzLnNjb3BlZElkKHBhdGgpLFxuICAgICAgICBibG9ja1BhcmFtSWQgPSAhcGF0aC5kZXB0aCAmJiAhc2NvcGVkICYmIHRoaXMuYmxvY2tQYXJhbUluZGV4KG5hbWUpO1xuXG4gICAgaWYgKGJsb2NrUGFyYW1JZCkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2xvb2t1cEJsb2NrUGFyYW0nLCBibG9ja1BhcmFtSWQsIHBhdGgucGFydHMpO1xuICAgIH0gZWxzZSBpZiAoIW5hbWUpIHtcbiAgICAgIC8vIENvbnRleHQgcmVmZXJlbmNlLCBpLmUuIGB7e2ZvbyAufX1gIG9yIGB7e2ZvbyAuLn19YFxuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hDb250ZXh0Jyk7XG4gICAgfSBlbHNlIGlmIChwYXRoLmRhdGEpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5kYXRhID0gdHJ1ZTtcbiAgICAgIHRoaXMub3Bjb2RlKCdsb29rdXBEYXRhJywgcGF0aC5kZXB0aCwgcGF0aC5wYXJ0cywgcGF0aC5zdHJpY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wY29kZSgnbG9va3VwT25Db250ZXh0JywgcGF0aC5wYXJ0cywgcGF0aC5mYWxzeSwgcGF0aC5zdHJpY3QsIHNjb3BlZCk7XG4gICAgfVxuICB9LFxuXG4gIFN0cmluZ0xpdGVyYWw6IGZ1bmN0aW9uIFN0cmluZ0xpdGVyYWwoc3RyaW5nKSB7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hTdHJpbmcnLCBzdHJpbmcudmFsdWUpO1xuICB9LFxuXG4gIE51bWJlckxpdGVyYWw6IGZ1bmN0aW9uIE51bWJlckxpdGVyYWwobnVtYmVyKSB7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgbnVtYmVyLnZhbHVlKTtcbiAgfSxcblxuICBCb29sZWFuTGl0ZXJhbDogZnVuY3Rpb24gQm9vbGVhbkxpdGVyYWwoYm9vbCkge1xuICAgIHRoaXMub3Bjb2RlKCdwdXNoTGl0ZXJhbCcsIGJvb2wudmFsdWUpO1xuICB9LFxuXG4gIFVuZGVmaW5lZExpdGVyYWw6IGZ1bmN0aW9uIFVuZGVmaW5lZExpdGVyYWwoKSB7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgJ3VuZGVmaW5lZCcpO1xuICB9LFxuXG4gIE51bGxMaXRlcmFsOiBmdW5jdGlvbiBOdWxsTGl0ZXJhbCgpIHtcbiAgICB0aGlzLm9wY29kZSgncHVzaExpdGVyYWwnLCAnbnVsbCcpO1xuICB9LFxuXG4gIEhhc2g6IGZ1bmN0aW9uIEhhc2goaGFzaCkge1xuICAgIHZhciBwYWlycyA9IGhhc2gucGFpcnMsXG4gICAgICAgIGkgPSAwLFxuICAgICAgICBsID0gcGFpcnMubGVuZ3RoO1xuXG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hIYXNoJyk7XG5cbiAgICBmb3IgKDsgaSA8IGw7IGkrKykge1xuICAgICAgdGhpcy5wdXNoUGFyYW0ocGFpcnNbaV0udmFsdWUpO1xuICAgIH1cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICB0aGlzLm9wY29kZSgnYXNzaWduVG9IYXNoJywgcGFpcnNbaV0ua2V5KTtcbiAgICB9XG4gICAgdGhpcy5vcGNvZGUoJ3BvcEhhc2gnKTtcbiAgfSxcblxuICAvLyBIRUxQRVJTXG4gIG9wY29kZTogZnVuY3Rpb24gb3Bjb2RlKG5hbWUpIHtcbiAgICB0aGlzLm9wY29kZXMucHVzaCh7XG4gICAgICBvcGNvZGU6IG5hbWUsXG4gICAgICBhcmdzOiBzbGljZS5jYWxsKGFyZ3VtZW50cywgMSksXG4gICAgICBsb2M6IHRoaXMuc291cmNlTm9kZVswXS5sb2NcbiAgICB9KTtcbiAgfSxcblxuICBhZGREZXB0aDogZnVuY3Rpb24gYWRkRGVwdGgoZGVwdGgpIHtcbiAgICBpZiAoIWRlcHRoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51c2VEZXB0aHMgPSB0cnVlO1xuICB9LFxuXG4gIGNsYXNzaWZ5U2V4cHI6IGZ1bmN0aW9uIGNsYXNzaWZ5U2V4cHIoc2V4cHIpIHtcbiAgICB2YXIgaXNTaW1wbGUgPSBfYXN0MlsnZGVmYXVsdCddLmhlbHBlcnMuc2ltcGxlSWQoc2V4cHIucGF0aCk7XG5cbiAgICB2YXIgaXNCbG9ja1BhcmFtID0gaXNTaW1wbGUgJiYgISF0aGlzLmJsb2NrUGFyYW1JbmRleChzZXhwci5wYXRoLnBhcnRzWzBdKTtcblxuICAgIC8vIGEgbXVzdGFjaGUgaXMgYW4gZWxpZ2libGUgaGVscGVyIGlmOlxuICAgIC8vICogaXRzIGlkIGlzIHNpbXBsZSAoYSBzaW5nbGUgcGFydCwgbm90IGB0aGlzYCBvciBgLi5gKVxuICAgIHZhciBpc0hlbHBlciA9ICFpc0Jsb2NrUGFyYW0gJiYgX2FzdDJbJ2RlZmF1bHQnXS5oZWxwZXJzLmhlbHBlckV4cHJlc3Npb24oc2V4cHIpO1xuXG4gICAgLy8gaWYgYSBtdXN0YWNoZSBpcyBhbiBlbGlnaWJsZSBoZWxwZXIgYnV0IG5vdCBhIGRlZmluaXRlXG4gICAgLy8gaGVscGVyLCBpdCBpcyBhbWJpZ3VvdXMsIGFuZCB3aWxsIGJlIHJlc29sdmVkIGluIGEgbGF0ZXJcbiAgICAvLyBwYXNzIG9yIGF0IHJ1bnRpbWUuXG4gICAgdmFyIGlzRWxpZ2libGUgPSAhaXNCbG9ja1BhcmFtICYmIChpc0hlbHBlciB8fCBpc1NpbXBsZSk7XG5cbiAgICAvLyBpZiBhbWJpZ3VvdXMsIHdlIGNhbiBwb3NzaWJseSByZXNvbHZlIHRoZSBhbWJpZ3VpdHkgbm93XG4gICAgLy8gQW4gZWxpZ2libGUgaGVscGVyIGlzIG9uZSB0aGF0IGRvZXMgbm90IGhhdmUgYSBjb21wbGV4IHBhdGgsIGkuZS4gYHRoaXMuZm9vYCwgYC4uL2Zvb2AgZXRjLlxuICAgIGlmIChpc0VsaWdpYmxlICYmICFpc0hlbHBlcikge1xuICAgICAgdmFyIF9uYW1lID0gc2V4cHIucGF0aC5wYXJ0c1swXSxcbiAgICAgICAgICBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgaWYgKG9wdGlvbnMua25vd25IZWxwZXJzW19uYW1lXSkge1xuICAgICAgICBpc0hlbHBlciA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKG9wdGlvbnMua25vd25IZWxwZXJzT25seSkge1xuICAgICAgICBpc0VsaWdpYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzSGVscGVyKSB7XG4gICAgICByZXR1cm4gJ2hlbHBlcic7XG4gICAgfSBlbHNlIGlmIChpc0VsaWdpYmxlKSB7XG4gICAgICByZXR1cm4gJ2FtYmlndW91cyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnc2ltcGxlJztcbiAgICB9XG4gIH0sXG5cbiAgcHVzaFBhcmFtczogZnVuY3Rpb24gcHVzaFBhcmFtcyhwYXJhbXMpIHtcbiAgICBmb3IgKHZhciBpID0gMCwgbCA9IHBhcmFtcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIHRoaXMucHVzaFBhcmFtKHBhcmFtc1tpXSk7XG4gICAgfVxuICB9LFxuXG4gIHB1c2hQYXJhbTogZnVuY3Rpb24gcHVzaFBhcmFtKHZhbCkge1xuICAgIHZhciB2YWx1ZSA9IHZhbC52YWx1ZSAhPSBudWxsID8gdmFsLnZhbHVlIDogdmFsLm9yaWdpbmFsIHx8ICcnO1xuXG4gICAgaWYgKHRoaXMuc3RyaW5nUGFyYW1zKSB7XG4gICAgICBpZiAodmFsdWUucmVwbGFjZSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL14oXFwuP1xcLlxcLykqL2csICcnKS5yZXBsYWNlKC9cXC8vZywgJy4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbC5kZXB0aCkge1xuICAgICAgICB0aGlzLmFkZERlcHRoKHZhbC5kZXB0aCk7XG4gICAgICB9XG4gICAgICB0aGlzLm9wY29kZSgnZ2V0Q29udGV4dCcsIHZhbC5kZXB0aCB8fCAwKTtcbiAgICAgIHRoaXMub3Bjb2RlKCdwdXNoU3RyaW5nUGFyYW0nLCB2YWx1ZSwgdmFsLnR5cGUpO1xuXG4gICAgICBpZiAodmFsLnR5cGUgPT09ICdTdWJFeHByZXNzaW9uJykge1xuICAgICAgICAvLyBTdWJFeHByZXNzaW9ucyBnZXQgZXZhbHVhdGVkIGFuZCBwYXNzZWQgaW5cbiAgICAgICAgLy8gaW4gc3RyaW5nIHBhcmFtcyBtb2RlLlxuICAgICAgICB0aGlzLmFjY2VwdCh2YWwpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy50cmFja0lkcykge1xuICAgICAgICB2YXIgYmxvY2tQYXJhbUluZGV4ID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAodmFsLnBhcnRzICYmICFfYXN0MlsnZGVmYXVsdCddLmhlbHBlcnMuc2NvcGVkSWQodmFsKSAmJiAhdmFsLmRlcHRoKSB7XG4gICAgICAgICAgYmxvY2tQYXJhbUluZGV4ID0gdGhpcy5ibG9ja1BhcmFtSW5kZXgodmFsLnBhcnRzWzBdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYmxvY2tQYXJhbUluZGV4KSB7XG4gICAgICAgICAgdmFyIGJsb2NrUGFyYW1DaGlsZCA9IHZhbC5wYXJ0cy5zbGljZSgxKS5qb2luKCcuJyk7XG4gICAgICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hJZCcsICdCbG9ja1BhcmFtJywgYmxvY2tQYXJhbUluZGV4LCBibG9ja1BhcmFtQ2hpbGQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlID0gdmFsLm9yaWdpbmFsIHx8IHZhbHVlO1xuICAgICAgICAgIGlmICh2YWx1ZS5yZXBsYWNlKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL150aGlzKD86XFwufCQpLywgJycpLnJlcGxhY2UoL15cXC5cXC8vLCAnJykucmVwbGFjZSgvXlxcLiQvLCAnJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hJZCcsIHZhbC50eXBlLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuYWNjZXB0KHZhbCk7XG4gICAgfVxuICB9LFxuXG4gIHNldHVwRnVsbE11c3RhY2hlUGFyYW1zOiBmdW5jdGlvbiBzZXR1cEZ1bGxNdXN0YWNoZVBhcmFtcyhzZXhwciwgcHJvZ3JhbSwgaW52ZXJzZSwgb21pdEVtcHR5KSB7XG4gICAgdmFyIHBhcmFtcyA9IHNleHByLnBhcmFtcztcbiAgICB0aGlzLnB1c2hQYXJhbXMocGFyYW1zKTtcblxuICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIHByb2dyYW0pO1xuICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIGludmVyc2UpO1xuXG4gICAgaWYgKHNleHByLmhhc2gpIHtcbiAgICAgIHRoaXMuYWNjZXB0KHNleHByLmhhc2gpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wY29kZSgnZW1wdHlIYXNoJywgb21pdEVtcHR5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9LFxuXG4gIGJsb2NrUGFyYW1JbmRleDogZnVuY3Rpb24gYmxvY2tQYXJhbUluZGV4KG5hbWUpIHtcbiAgICBmb3IgKHZhciBkZXB0aCA9IDAsIGxlbiA9IHRoaXMub3B0aW9ucy5ibG9ja1BhcmFtcy5sZW5ndGg7IGRlcHRoIDwgbGVuOyBkZXB0aCsrKSB7XG4gICAgICB2YXIgYmxvY2tQYXJhbXMgPSB0aGlzLm9wdGlvbnMuYmxvY2tQYXJhbXNbZGVwdGhdLFxuICAgICAgICAgIHBhcmFtID0gYmxvY2tQYXJhbXMgJiYgX3V0aWxzLmluZGV4T2YoYmxvY2tQYXJhbXMsIG5hbWUpO1xuICAgICAgaWYgKGJsb2NrUGFyYW1zICYmIHBhcmFtID49IDApIHtcbiAgICAgICAgcmV0dXJuIFtkZXB0aCwgcGFyYW1dO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gcHJlY29tcGlsZShpbnB1dCwgb3B0aW9ucywgZW52KSB7XG4gIGlmIChpbnB1dCA9PSBudWxsIHx8IHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycgJiYgaW5wdXQudHlwZSAhPT0gJ1Byb2dyYW0nKSB7XG4gICAgdGhyb3cgbmV3IF9leGNlcHRpb24yWydkZWZhdWx0J10oJ1lvdSBtdXN0IHBhc3MgYSBzdHJpbmcgb3IgSGFuZGxlYmFycyBBU1QgdG8gSGFuZGxlYmFycy5wcmVjb21waWxlLiBZb3UgcGFzc2VkICcgKyBpbnB1dCk7XG4gIH1cblxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgaWYgKCEoJ2RhdGEnIGluIG9wdGlvbnMpKSB7XG4gICAgb3B0aW9ucy5kYXRhID0gdHJ1ZTtcbiAgfVxuICBpZiAob3B0aW9ucy5jb21wYXQpIHtcbiAgICBvcHRpb25zLnVzZURlcHRocyA9IHRydWU7XG4gIH1cblxuICB2YXIgYXN0ID0gZW52LnBhcnNlKGlucHV0LCBvcHRpb25zKSxcbiAgICAgIGVudmlyb25tZW50ID0gbmV3IGVudi5Db21waWxlcigpLmNvbXBpbGUoYXN0LCBvcHRpb25zKTtcbiAgcmV0dXJuIG5ldyBlbnYuSmF2YVNjcmlwdENvbXBpbGVyKCkuY29tcGlsZShlbnZpcm9ubWVudCwgb3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIGNvbXBpbGUoaW5wdXQsIG9wdGlvbnMsIGVudikge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSBvcHRpb25zID0ge307XG5cbiAgaWYgKGlucHV0ID09IG51bGwgfHwgdHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJyAmJiBpbnB1dC50eXBlICE9PSAnUHJvZ3JhbScpIHtcbiAgICB0aHJvdyBuZXcgX2V4Y2VwdGlvbjJbJ2RlZmF1bHQnXSgnWW91IG11c3QgcGFzcyBhIHN0cmluZyBvciBIYW5kbGViYXJzIEFTVCB0byBIYW5kbGViYXJzLmNvbXBpbGUuIFlvdSBwYXNzZWQgJyArIGlucHV0KTtcbiAgfVxuXG4gIG9wdGlvbnMgPSBfdXRpbHMuZXh0ZW5kKHt9LCBvcHRpb25zKTtcbiAgaWYgKCEoJ2RhdGEnIGluIG9wdGlvbnMpKSB7XG4gICAgb3B0aW9ucy5kYXRhID0gdHJ1ZTtcbiAgfVxuICBpZiAob3B0aW9ucy5jb21wYXQpIHtcbiAgICBvcHRpb25zLnVzZURlcHRocyA9IHRydWU7XG4gIH1cblxuICB2YXIgY29tcGlsZWQgPSB1bmRlZmluZWQ7XG5cbiAgZnVuY3Rpb24gY29tcGlsZUlucHV0KCkge1xuICAgIHZhciBhc3QgPSBlbnYucGFyc2UoaW5wdXQsIG9wdGlvbnMpLFxuICAgICAgICBlbnZpcm9ubWVudCA9IG5ldyBlbnYuQ29tcGlsZXIoKS5jb21waWxlKGFzdCwgb3B0aW9ucyksXG4gICAgICAgIHRlbXBsYXRlU3BlYyA9IG5ldyBlbnYuSmF2YVNjcmlwdENvbXBpbGVyKCkuY29tcGlsZShlbnZpcm9ubWVudCwgb3B0aW9ucywgdW5kZWZpbmVkLCB0cnVlKTtcbiAgICByZXR1cm4gZW52LnRlbXBsYXRlKHRlbXBsYXRlU3BlYyk7XG4gIH1cblxuICAvLyBUZW1wbGF0ZSBpcyBvbmx5IGNvbXBpbGVkIG9uIGZpcnN0IHVzZSBhbmQgY2FjaGVkIGFmdGVyIHRoYXQgcG9pbnQuXG4gIGZ1bmN0aW9uIHJldChjb250ZXh0LCBleGVjT3B0aW9ucykge1xuICAgIGlmICghY29tcGlsZWQpIHtcbiAgICAgIGNvbXBpbGVkID0gY29tcGlsZUlucHV0KCk7XG4gICAgfVxuICAgIHJldHVybiBjb21waWxlZC5jYWxsKHRoaXMsIGNvbnRleHQsIGV4ZWNPcHRpb25zKTtcbiAgfVxuICByZXQuX3NldHVwID0gZnVuY3Rpb24gKHNldHVwT3B0aW9ucykge1xuICAgIGlmICghY29tcGlsZWQpIHtcbiAgICAgIGNvbXBpbGVkID0gY29tcGlsZUlucHV0KCk7XG4gICAgfVxuICAgIHJldHVybiBjb21waWxlZC5fc2V0dXAoc2V0dXBPcHRpb25zKTtcbiAgfTtcbiAgcmV0Ll9jaGlsZCA9IGZ1bmN0aW9uIChpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgaWYgKCFjb21waWxlZCkge1xuICAgICAgY29tcGlsZWQgPSBjb21waWxlSW5wdXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBpbGVkLl9jaGlsZChpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKTtcbiAgfTtcbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gYXJnRXF1YWxzKGEsIGIpIHtcbiAgaWYgKGEgPT09IGIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChfdXRpbHMuaXNBcnJheShhKSAmJiBfdXRpbHMuaXNBcnJheShiKSAmJiBhLmxlbmd0aCA9PT0gYi5sZW5ndGgpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghYXJnRXF1YWxzKGFbaV0sIGJbaV0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtTGl0ZXJhbFRvUGF0aChzZXhwcikge1xuICBpZiAoIXNleHByLnBhdGgucGFydHMpIHtcbiAgICB2YXIgbGl0ZXJhbCA9IHNleHByLnBhdGg7XG4gICAgLy8gQ2FzdGluZyB0byBzdHJpbmcgaGVyZSB0byBtYWtlIGZhbHNlIGFuZCAwIGxpdGVyYWwgdmFsdWVzIHBsYXkgbmljZWx5IHdpdGggdGhlIHJlc3RcbiAgICAvLyBvZiB0aGUgc3lzdGVtLlxuICAgIHNleHByLnBhdGggPSB7XG4gICAgICB0eXBlOiAnUGF0aEV4cHJlc3Npb24nLFxuICAgICAgZGF0YTogZmFsc2UsXG4gICAgICBkZXB0aDogMCxcbiAgICAgIHBhcnRzOiBbbGl0ZXJhbC5vcmlnaW5hbCArICcnXSxcbiAgICAgIG9yaWdpbmFsOiBsaXRlcmFsLm9yaWdpbmFsICsgJycsXG4gICAgICBsb2M6IGxpdGVyYWwubG9jXG4gICAgfTtcbiAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwyeHBZaTlvWVc1a2JHVmlZWEp6TDJOdmJYQnBiR1Z5TDJOdmJYQnBiR1Z5TG1weklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN096dDVRa0ZGYzBJc1kwRkJZenM3T3p0eFFrRkRTeXhWUVVGVk96dHRRa0ZEYmtNc1QwRkJUenM3T3p0QlFVVjJRaXhKUVVGTkxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRPenRCUVVWb1FpeFRRVUZUTEZGQlFWRXNSMEZCUnl4RlFVRkZPenM3T3pzN08wRkJUemRDTEZGQlFWRXNRMEZCUXl4VFFVRlRMRWRCUVVjN1FVRkRia0lzVlVGQlVTeEZRVUZGTEZGQlFWRTdPMEZCUld4Q0xGRkJRVTBzUlVGQlJTeG5Ra0ZCVXl4TFFVRkxMRVZCUVVVN1FVRkRkRUlzVVVGQlNTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU03UVVGRE9VSXNVVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUzBGQlN5eEhRVUZITEVWQlFVVTdRVUZEYUVNc1lVRkJUeXhMUVVGTExFTkJRVU03UzBGRFpEczdRVUZGUkN4VFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8wRkJRelZDTEZWQlFVa3NUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzFWQlF6RkNMRmRCUVZjc1IwRkJSeXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJwRExGVkJRMFVzVFVGQlRTeERRVUZETEUxQlFVMHNTMEZCU3l4WFFVRlhMRU5CUVVNc1RVRkJUU3hKUVVOd1F5eERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZEZWtNN1FVRkRRU3hsUVVGUExFdEJRVXNzUTBGQlF6dFBRVU5rTzB0QlEwWTdPenM3UVVGSlJDeFBRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU03UVVGRE0wSXNVMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRCUVVNMVFpeFZRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTzBGQlF5OURMR1ZCUVU4c1MwRkJTeXhEUVVGRE8wOUJRMlE3UzBGRFJqczdRVUZGUkN4WFFVRlBMRWxCUVVrc1EwRkJRenRIUVVOaU96dEJRVVZFTEUxQlFVa3NSVUZCUlN4RFFVRkRPenRCUVVWUUxGTkJRVThzUlVGQlJTeHBRa0ZCVXl4UFFVRlBMRVZCUVVVc1QwRkJUeXhGUVVGRk8wRkJRMnhETEZGQlFVa3NRMEZCUXl4VlFVRlZMRWRCUVVjc1JVRkJSU3hEUVVGRE8wRkJRM0pDTEZGQlFVa3NRMEZCUXl4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVGRE8wRkJRMnhDTEZGQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1JVRkJSU3hEUVVGRE8wRkJRMjVDTEZGQlFVa3NRMEZCUXl4UFFVRlBMRWRCUVVjc1QwRkJUeXhEUVVGRE8wRkJRM1pDTEZGQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF6dEJRVU42UXl4UlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTTdPMEZCUldwRExGZEJRVThzUTBGQlF5eFhRVUZYTEVkQlFVY3NUMEZCVHl4RFFVRkRMRmRCUVZjc1NVRkJTU3hGUVVGRkxFTkJRVU03TzBGQlJXaEVMRmRCUVU4c1EwRkJReXhaUVVGWkxFZEJRVWNzWTBGRGNrSXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGRGJrSTdRVUZEUlN4dFFrRkJZU3hGUVVGRkxFbEJRVWs3UVVGRGJrSXNkMEpCUVd0Q0xFVkJRVVVzU1VGQlNUdEJRVU40UWl4VlFVRkpMRVZCUVVVc1NVRkJTVHRCUVVOV0xGbEJRVWtzU1VGQlNUdEJRVU5TTEZsQlFVMHNSVUZCUlN4SlFVRkpPMEZCUTFvc1kwRkJUU3hKUVVGSk8wRkJRMVlzVTBGQlJ5eEZRVUZGTEVsQlFVazdRVUZEVkN4WlFVRk5MRVZCUVVVc1NVRkJTVHRMUVVOaUxFVkJRMFFzVDBGQlR5eERRVUZETEZsQlFWa3NRMEZEY2tJc1EwRkJRenM3UVVGRlJpeFhRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03UjBGRE4wSTdPMEZCUlVRc1owSkJRV01zUlVGQlJTeDNRa0ZCVXl4UFFVRlBMRVZCUVVVN1FVRkRhRU1zVVVGQlNTeGhRVUZoTEVkQlFVY3NTVUZCU1N4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRk96dEJRVU55UXl4VlFVRk5MRWRCUVVjc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eFBRVUZQTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJRenRSUVVOeVJDeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE96dEJRVVZ5UWl4UlFVRkpMRU5CUVVNc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eFZRVUZWTEVsQlFVa3NUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJRenM3UVVGRmRrUXNVVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTTdRVUZETjBJc1VVRkJTU3hEUVVGRExGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4SlFVRkpMRTFCUVUwc1EwRkJReXhUUVVGVExFTkJRVU03TzBGQlJYQkVMRmRCUVU4c1NVRkJTU3hEUVVGRE8wZEJRMkk3TzBGQlJVUXNVVUZCVFN4RlFVRkZMR2RDUVVGVExFbEJRVWtzUlVGQlJUczdRVUZGY2tJc1VVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVN1FVRkRjRUlzV1VGQlRTd3lRa0ZCWXl4blFrRkJaMElzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wdEJRM3BFT3p0QlFVVkVMRkZCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUXpsQ0xGRkJRVWtzUjBGQlJ5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdRVUZEYUVNc1VVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0QlFVTjRRaXhYUVVGUExFZEJRVWNzUTBGQlF6dEhRVU5hT3p0QlFVVkVMRk5CUVU4c1JVRkJSU3hwUWtGQlV5eFBRVUZQTEVWQlFVVTdRVUZEZWtJc1VVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6czdRVUZGZEVRc1VVRkJTU3hKUVVGSkxFZEJRVWNzVDBGQlR5eERRVUZETEVsQlFVazdVVUZEY2tJc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdRVUZETTBJc1UwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRlZCUVZVc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdEJRVU51UXl4VlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMHRCUTNSQ096dEJRVVZFTEZGQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZET3p0QlFVVnFReXhSUVVGSkxFTkJRVU1zVVVGQlVTeEhRVUZITEZWQlFWVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRha01zVVVGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4UFFVRlBMRU5CUVVNc1YwRkJWeXhIUVVGSExFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenM3UVVGRmVFVXNWMEZCVHl4SlFVRkpMRU5CUVVNN1IwRkRZanM3UVVGRlJDeG5Ra0ZCWXl4RlFVRkZMSGRDUVVGVExFdEJRVXNzUlVGQlJUdEJRVU01UWl3d1FrRkJjMElzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXpzN1FVRkZPVUlzVVVGQlNTeFBRVUZQTEVkQlFVY3NTMEZCU3l4RFFVRkRMRTlCUVU4N1VVRkRla0lzVDBGQlR5eEhRVUZITEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNN08wRkJSVEZDTEZkQlFVOHNSMEZCUnl4UFFVRlBMRWxCUVVrc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTnNSQ3hYUVVGUExFZEJRVWNzVDBGQlR5eEpRVUZKTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03TzBGQlJXeEVMRkZCUVVrc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN08wRkJSWEpETEZGQlFVa3NTVUZCU1N4TFFVRkxMRkZCUVZFc1JVRkJSVHRCUVVOeVFpeFZRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1JVRkJSU3hQUVVGUExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdTMEZETTBNc1RVRkJUU3hKUVVGSkxFbEJRVWtzUzBGQlN5eFJRVUZSTEVWQlFVVTdRVUZETlVJc1ZVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXpzN096dEJRVWw0UWl4VlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHRkJRV0VzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTndReXhWUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEdGQlFXRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVOd1F5eFZRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8wRkJRM3BDTEZWQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1dVRkJXU3hGUVVGRkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1MwRkRhRVFzVFVGQlRUdEJRVU5NTEZWQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFOUJRVThzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXpzN096dEJRVWszUXl4VlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHRkJRV0VzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTndReXhWUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEdGQlFXRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVOd1F5eFZRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8wRkJRM3BDTEZWQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0TFFVTndRenM3UVVGRlJDeFJRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wZEJRM1pDT3p0QlFVVkVMR2RDUVVGakxFVkJRVUVzZDBKQlFVTXNVMEZCVXl4RlFVRkZPMEZCUTNoQ0xGRkJRVWtzVDBGQlR5eEhRVUZITEZOQlFWTXNRMEZCUXl4UFFVRlBMRWxCUVVrc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkRNVVVzVVVGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeERRVUZETEZOQlFWTXNSVUZCUlN4UFFVRlBMRVZCUVVVc1UwRkJVeXhEUVVGRE8xRkJRM1JGTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRE96dEJRVVY0UWl4UlFVRkpMRU5CUVVNc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF6dEJRVU14UWl4UlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHMUNRVUZ0UWl4RlFVRkZMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMGRCUTJoRk96dEJRVVZFTEd0Q1FVRm5RaXhGUVVGRkxEQkNRVUZUTEU5QlFVOHNSVUZCUlR0QlFVTnNReXhSUVVGSkxFTkJRVU1zVlVGQlZTeEhRVUZITEVsQlFVa3NRMEZCUXpzN1FVRkZka0lzVVVGQlNTeFBRVUZQTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJRenRCUVVNNVFpeFJRVUZKTEU5QlFVOHNSVUZCUlR0QlFVTllMR0ZCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRMUVVOb1JEczdRVUZGUkN4UlFVRkpMRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETzBGQlF6VkNMRkZCUVVrc1RVRkJUU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVTdRVUZEY2tJc1dVRkJUU3d5UWtGRFNpd3lRMEZCTWtNc1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVU16UkN4UFFVRlBMRU5CUTFJc1EwRkJRenRMUVVOSUxFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRVZCUVVVN1FVRkRla0lzVlVGQlNTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMSE5DUVVGelFpeEZRVUZGTzBGQlEzWkRMRmxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zWVVGQllTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMDlCUTNwRExFMUJRVTA3UVVGRFRDeGpRVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1NVRkJTU3hGUVVGRkxHZENRVUZuUWl4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1QwRkRPVVE3UzBGRFJqczdRVUZGUkN4UlFVRkpMRmRCUVZjc1IwRkJSeXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRTdVVUZEY2tNc1UwRkJVeXhIUVVGSExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4TFFVRkxMR1ZCUVdVc1EwRkJRenRCUVVOd1JDeFJRVUZKTEZOQlFWTXNSVUZCUlR0QlFVTmlMRlZCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMHRCUXpOQ096dEJRVVZFTEZGQlFVa3NRMEZCUXl4MVFrRkJkVUlzUTBGQlF5eFBRVUZQTEVWQlFVVXNUMEZCVHl4RlFVRkZMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6czdRVUZGYUVVc1VVRkJTU3hOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4RlFVRkZMRU5CUVVNN1FVRkRiRU1zVVVGQlNTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1NVRkJTU3hOUVVGTkxFVkJRVVU3UVVGRGVFTXNWVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhsUVVGbExFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdRVUZEY2tNc1dVRkJUU3hIUVVGSExFVkJRVVVzUTBGQlF6dExRVU5pT3p0QlFVVkVMRkZCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zWlVGQlpTeEZRVUZGTEZOQlFWTXNSVUZCUlN4WFFVRlhMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03UVVGRE4wUXNVVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEhRVU4yUWp0QlFVTkVMSFZDUVVGeFFpeEZRVUZGTEN0Q1FVRlRMRmxCUVZrc1JVRkJSVHRCUVVNMVF5eFJRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdSMEZEY2tNN08wRkJSVVFzYlVKQlFXbENMRVZCUVVVc01rSkJRVk1zVVVGQlVTeEZRVUZGTzBGQlEzQkRMRkZCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdPMEZCUlRkQ0xGRkJRVWtzVVVGQlVTeERRVUZETEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVVVGQlVTeEZRVUZGTzBGQlF6bERMRlZCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTTdTMEZET1VJc1RVRkJUVHRCUVVOTUxGVkJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1MwRkRka0k3UjBGRFJqdEJRVU5FTEZkQlFWTXNSVUZCUVN4dFFrRkJReXhUUVVGVExFVkJRVVU3UVVGRGJrSXNVVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dEhRVU5vUXpzN1FVRkZSQ3hyUWtGQlowSXNSVUZCUlN3d1FrRkJVeXhQUVVGUExFVkJRVVU3UVVGRGJFTXNVVUZCU1N4UFFVRlBMRU5CUVVNc1MwRkJTeXhGUVVGRk8wRkJRMnBDTEZWQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1pVRkJaU3hGUVVGRkxFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0TFFVTTNRenRIUVVOR096dEJRVVZFTEd0Q1FVRm5RaXhGUVVGRkxEUkNRVUZYTEVWQlFVVTdPMEZCUlM5Q0xHVkJRV0VzUlVGQlJTeDFRa0ZCVXl4TFFVRkxMRVZCUVVVN1FVRkROMElzTUVKQlFYTkNMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRE9VSXNVVUZCU1N4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXpzN1FVRkZja01zVVVGQlNTeEpRVUZKTEV0QlFVc3NVVUZCVVN4RlFVRkZPMEZCUTNKQ0xGVkJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1MwRkRla0lzVFVGQlRTeEpRVUZKTEVsQlFVa3NTMEZCU3l4UlFVRlJMRVZCUVVVN1FVRkROVUlzVlVGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRMUVVONlFpeE5RVUZOTzBGQlEwd3NWVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dExRVU0xUWp0SFFVTkdPMEZCUTBRc1owSkJRV01zUlVGQlJTeDNRa0ZCVXl4TFFVRkxMRVZCUVVVc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQlJUdEJRVU5vUkN4UlFVRkpMRWxCUVVrc1IwRkJSeXhMUVVGTExFTkJRVU1zU1VGQlNUdFJRVU51UWl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY0VJc1QwRkJUeXhIUVVGSExFOUJRVThzU1VGQlNTeEpRVUZKTEVsQlFVa3NUMEZCVHl4SlFVRkpMRWxCUVVrc1EwRkJRenM3UVVGRkwwTXNVVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPenRCUVVWMFF5eFJRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMR0ZCUVdFc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU53UXl4UlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHRkJRV0VzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXpzN1FVRkZjRU1zVVVGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNN1FVRkRia0lzVVVGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenM3UVVGRmJFSXNVVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03UjBGREwwTTdPMEZCUlVRc1lVRkJWeXhGUVVGRkxIRkNRVUZUTEV0QlFVc3NSVUZCUlR0QlFVTXpRaXhSUVVGSkxFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRPMEZCUTNSQ0xGRkJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRPMEZCUTI1Q0xGRkJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRiRUlzVVVGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4MVFrRkJkVUlzUTBGQlF5eERRVUZETzBkQlEzUkRPenRCUVVWRUxHRkJRVmNzUlVGQlJTeHhRa0ZCVXl4TFFVRkxMRVZCUVVVc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQlJUdEJRVU0zUXl4UlFVRkpMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1MwRkJTeXhGUVVGRkxFOUJRVThzUlVGQlJTeFBRVUZQTEVOQlFVTTdVVUZEYUVVc1NVRkJTU3hIUVVGSExFdEJRVXNzUTBGQlF5eEpRVUZKTzFGQlEycENMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPenRCUVVWMlFpeFJRVUZKTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTzBGQlEyNURMRlZCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zYlVKQlFXMUNMRVZCUVVVc1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0TFFVTjJSQ3hOUVVGTkxFbEJRVWtzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4blFrRkJaMElzUlVGQlJUdEJRVU40UXl4WlFVRk5MREpDUVVOS0xEaEVRVUU0UkN4SFFVRkhMRWxCUVVrc1JVRkRja1VzUzBGQlN5eERRVU5PTEVOQlFVTTdTMEZEU0N4TlFVRk5PMEZCUTB3c1ZVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTTdRVUZEYmtJc1ZVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTTdPMEZCUld4Q0xGVkJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRiRUlzVlVGQlNTeERRVUZETEUxQlFVMHNRMEZEVkN4alFVRmpMRVZCUTJRc1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGRFlpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVTmlMR2xDUVVGSkxFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUXpOQ0xFTkJRVU03UzBGRFNEdEhRVU5HT3p0QlFVVkVMR2RDUVVGakxFVkJRVVVzZDBKQlFWTXNTVUZCU1N4RlFVRkZPMEZCUXpkQ0xGRkJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRekZDTEZGQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1dVRkJXU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXpzN1FVRkZkRU1zVVVGQlNTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGRFSXNUVUZCVFN4SFFVRkhMR2xDUVVGSkxFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUTI1RExGbEJRVmtzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRWxCUVVrc1EwRkJReXhOUVVGTkxFbEJRVWtzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenM3UVVGRmRFVXNVVUZCU1N4WlFVRlpMRVZCUVVVN1FVRkRhRUlzVlVGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4clFrRkJhMElzUlVGQlJTeFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wdEJRek5FTEUxQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSVHM3UVVGRmFFSXNWVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dExRVU0xUWl4TlFVRk5MRWxCUVVrc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJUdEJRVU53UWl4VlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTTdRVUZEZWtJc1ZVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRMUVVOb1JTeE5RVUZOTzBGQlEwd3NWVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkRWQ3hwUWtGQmFVSXNSVUZEYWtJc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGRFZpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVTldMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRMWdzVFVGQlRTeERRVU5RTEVOQlFVTTdTMEZEU0R0SFFVTkdPenRCUVVWRUxHVkJRV0VzUlVGQlJTeDFRa0ZCVXl4TlFVRk5MRVZCUVVVN1FVRkRPVUlzVVVGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRVZCUVVVc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBkQlEzcERPenRCUVVWRUxHVkJRV0VzUlVGQlJTeDFRa0ZCVXl4TlFVRk5MRVZCUVVVN1FVRkRPVUlzVVVGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4aFFVRmhMRVZCUVVVc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBkQlF6RkRPenRCUVVWRUxHZENRVUZqTEVWQlFVVXNkMEpCUVZNc1NVRkJTU3hGUVVGRk8wRkJRemRDTEZGQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1lVRkJZU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0SFFVTjRRenM3UVVGRlJDeHJRa0ZCWjBJc1JVRkJSU3cwUWtGQlZ6dEJRVU16UWl4UlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHRkJRV0VzUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXp0SFFVTjZRenM3UVVGRlJDeGhRVUZYTEVWQlFVVXNkVUpCUVZjN1FVRkRkRUlzVVVGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4aFFVRmhMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03UjBGRGNFTTdPMEZCUlVRc1RVRkJTU3hGUVVGRkxHTkJRVk1zU1VGQlNTeEZRVUZGTzBGQlEyNUNMRkZCUVVrc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTzFGQlEzQkNMRU5CUVVNc1IwRkJSeXhEUVVGRE8xRkJRMHdzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN08wRkJSVzVDTEZGQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03TzBGQlJYaENMRmRCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0QlFVTnFRaXhWUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dExRVU5vUXp0QlFVTkVMRmRCUVU4c1EwRkJReXhGUVVGRkxFVkJRVVU3UVVGRFZpeFZRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMR05CUVdNc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1MwRkRNME03UVVGRFJDeFJRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8wZEJRM2hDT3pzN1FVRkhSQ3hSUVVGTkxFVkJRVVVzWjBKQlFWTXNTVUZCU1N4RlFVRkZPMEZCUTNKQ0xGRkJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRPMEZCUTJoQ0xGbEJRVTBzUlVGQlJTeEpRVUZKTzBGQlExb3NWVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTTVRaXhUUVVGSExFVkJRVVVzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSE8wdEJRelZDTEVOQlFVTXNRMEZCUXp0SFFVTktPenRCUVVWRUxGVkJRVkVzUlVGQlJTeHJRa0ZCVXl4TFFVRkxMRVZCUVVVN1FVRkRlRUlzVVVGQlNTeERRVUZETEV0QlFVc3NSVUZCUlR0QlFVTldMR0ZCUVU4N1MwRkRVanM3UVVGRlJDeFJRVUZKTEVOQlFVTXNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJRenRIUVVOMlFqczdRVUZGUkN4bFFVRmhMRVZCUVVVc2RVSkJRVk1zUzBGQlN5eEZRVUZGTzBGQlF6ZENMRkZCUVVrc1VVRkJVU3hIUVVGSExHbENRVUZKTEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZET3p0QlFVVm9SQ3hSUVVGSkxGbEJRVmtzUjBGQlJ5eFJRVUZSTEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6czdPenRCUVVrelJTeFJRVUZKTEZGQlFWRXNSMEZCUnl4RFFVRkRMRmxCUVZrc1NVRkJTU3hwUWtGQlNTeFBRVUZQTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdPenM3TzBGQlMzQkZMRkZCUVVrc1ZVRkJWU3hIUVVGSExFTkJRVU1zV1VGQldTeExRVUZMTEZGQlFWRXNTVUZCU1N4UlFVRlJMRU5CUVVFc1FVRkJReXhEUVVGRE96czdPMEZCU1hwRUxGRkJRVWtzVlVGQlZTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZPMEZCUXpOQ0xGVkJRVWtzUzBGQlNTeEhRVUZITEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dFZRVU0xUWl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF6dEJRVU42UWl4VlFVRkpMRTlCUVU4c1EwRkJReXhaUVVGWkxFTkJRVU1zUzBGQlNTeERRVUZETEVWQlFVVTdRVUZET1VJc1owSkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTTdUMEZEYWtJc1RVRkJUU3hKUVVGSkxFOUJRVThzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSVHRCUVVOdVF5eHJRa0ZCVlN4SFFVRkhMRXRCUVVzc1EwRkJRenRQUVVOd1FqdExRVU5HT3p0QlFVVkVMRkZCUVVrc1VVRkJVU3hGUVVGRk8wRkJRMW9zWVVGQlR5eFJRVUZSTEVOQlFVTTdTMEZEYWtJc1RVRkJUU3hKUVVGSkxGVkJRVlVzUlVGQlJUdEJRVU55UWl4aFFVRlBMRmRCUVZjc1EwRkJRenRMUVVOd1FpeE5RVUZOTzBGQlEwd3NZVUZCVHl4UlFVRlJMRU5CUVVNN1MwRkRha0k3UjBGRFJqczdRVUZGUkN4WlFVRlZMRVZCUVVVc2IwSkJRVk1zVFVGQlRTeEZRVUZGTzBGQlF6TkNMRk5CUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1FVRkROME1zVlVGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU16UWp0SFFVTkdPenRCUVVWRUxGZEJRVk1zUlVGQlJTeHRRa0ZCVXl4SFFVRkhMRVZCUVVVN1FVRkRka0lzVVVGQlNTeExRVUZMTEVkQlFVY3NSMEZCUnl4RFFVRkRMRXRCUVVzc1NVRkJTU3hKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEV0QlFVc3NSMEZCUnl4SFFVRkhMRU5CUVVNc1VVRkJVU3hKUVVGSkxFVkJRVVVzUTBGQlF6czdRVUZGTDBRc1VVRkJTU3hKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTzBGQlEzSkNMRlZCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUlVGQlJUdEJRVU5xUWl4aFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eGpRVUZqTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UFFVTXZSRHM3UVVGRlJDeFZRVUZKTEVkQlFVY3NRMEZCUXl4TFFVRkxMRVZCUVVVN1FVRkRZaXhaUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRQUVVNeFFqdEJRVU5FTEZWQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1dVRkJXU3hGUVVGRkxFZEJRVWNzUTBGQlF5eExRVUZMTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRNVU1zVlVGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeExRVUZMTEVWQlFVVXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE96dEJRVVZvUkN4VlFVRkpMRWRCUVVjc1EwRkJReXhKUVVGSkxFdEJRVXNzWlVGQlpTeEZRVUZGT3pzN1FVRkhhRU1zV1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRQUVVOc1FqdExRVU5HTEUxQlFVMDdRVUZEVEN4VlFVRkpMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVU3UVVGRGFrSXNXVUZCU1N4bFFVRmxMRmxCUVVFc1EwRkJRenRCUVVOd1FpeFpRVUZKTEVkQlFVY3NRMEZCUXl4TFFVRkxMRWxCUVVrc1EwRkJReXhwUWtGQlNTeFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NSVUZCUlR0QlFVTjZSQ3g1UWtGQlpTeEhRVUZITEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUTNSRU8wRkJRMFFzV1VGQlNTeGxRVUZsTEVWQlFVVTdRVUZEYmtJc1kwRkJTU3hsUVVGbExFZEJRVWNzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUTI1RUxHTkJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RlFVRkZMRmxCUVZrc1JVRkJSU3hsUVVGbExFVkJRVVVzWlVGQlpTeERRVUZETEVOQlFVTTdVMEZEZGtVc1RVRkJUVHRCUVVOTUxHVkJRVXNzUjBGQlJ5eEhRVUZITEVOQlFVTXNVVUZCVVN4SlFVRkpMRXRCUVVzc1EwRkJRenRCUVVNNVFpeGpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVN1FVRkRha0lzYVVKQlFVc3NSMEZCUnl4TFFVRkxMRU5CUTFZc1QwRkJUeXhEUVVGRExHVkJRV1VzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZETlVJc1QwRkJUeXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZEY0VJc1QwRkJUeXhEUVVGRExFMUJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0WFFVTjRRanM3UVVGRlJDeGpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1JVRkJSU3hIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMU5CUTNoRE8wOUJRMFk3UVVGRFJDeFZRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wdEJRMnhDTzBkQlEwWTdPMEZCUlVRc2VVSkJRWFZDTEVWQlFVVXNhVU5CUVZNc1MwRkJTeXhGUVVGRkxFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlFVVXNVMEZCVXl4RlFVRkZPMEZCUTNCRkxGRkJRVWtzVFVGQlRTeEhRVUZITEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRNVUlzVVVGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenM3UVVGRmVFSXNVVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhoUVVGaExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdRVUZEY0VNc1VVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eGhRVUZoTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN08wRkJSWEJETEZGQlFVa3NTMEZCU3l4RFFVRkRMRWxCUVVrc1JVRkJSVHRCUVVOa0xGVkJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wdEJRM3BDTEUxQlFVMDdRVUZEVEN4VlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGZEJRVmNzUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXp0TFFVTnlRenM3UVVGRlJDeFhRVUZQTEUxQlFVMHNRMEZCUXp0SFFVTm1PenRCUVVWRUxHbENRVUZsTEVWQlFVVXNlVUpCUVZNc1NVRkJTU3hGUVVGRk8wRkJRemxDTEZOQlEwVXNTVUZCU1N4TFFVRkxMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmRCUVZjc1EwRkJReXhOUVVGTkxFVkJRM0JFTEV0QlFVc3NSMEZCUnl4SFFVRkhMRVZCUTFnc1MwRkJTeXhGUVVGRkxFVkJRMUE3UVVGRFFTeFZRVUZKTEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTTdWVUZETDBNc1MwRkJTeXhIUVVGSExGZEJRVmNzU1VGQlNTeGxRVUZSTEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVOd1JDeFZRVUZKTEZkQlFWY3NTVUZCU1N4TFFVRkxMRWxCUVVrc1EwRkJReXhGUVVGRk8wRkJRemRDTEdWQlFVOHNRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VDBGRGRrSTdTMEZEUmp0SFFVTkdPME5CUTBZc1EwRkJRenM3UVVGRlN5eFRRVUZUTEZWQlFWVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUlVGQlJUdEJRVU01UXl4TlFVTkZMRXRCUVVzc1NVRkJTU3hKUVVGSkxFbEJRMW9zVDBGQlR5eExRVUZMTEV0QlFVc3NVVUZCVVN4SlFVRkpMRXRCUVVzc1EwRkJReXhKUVVGSkxFdEJRVXNzVTBGQlV5eEJRVUZETEVWQlEzWkVPMEZCUTBFc1ZVRkJUU3d5UWtGRFNpeG5Sa0ZCWjBZc1IwRkRPVVVzUzBGQlN5eERRVU5TTEVOQlFVTTdSMEZEU0RzN1FVRkZSQ3hUUVVGUExFZEJRVWNzVDBGQlR5eEpRVUZKTEVWQlFVVXNRMEZCUXp0QlFVTjRRaXhOUVVGSkxFVkJRVVVzVFVGQlRTeEpRVUZKTEU5QlFVOHNRMEZCUVN4QlFVRkRMRVZCUVVVN1FVRkRlRUlzVjBGQlR5eERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1IwRkRja0k3UVVGRFJDeE5RVUZKTEU5QlFVOHNRMEZCUXl4TlFVRk5MRVZCUVVVN1FVRkRiRUlzVjBGQlR5eERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNN1IwRkRNVUk3TzBGQlJVUXNUVUZCU1N4SFFVRkhMRWRCUVVjc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVWQlFVVXNUMEZCVHl4RFFVRkRPMDFCUTJwRExGZEJRVmNzUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMEZCUTNwRUxGTkJRVThzU1VGQlNTeEhRVUZITEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8wTkJRMjVGT3p0QlFVVk5MRk5CUVZNc1QwRkJUeXhEUVVGRExFdEJRVXNzUlVGQlJTeFBRVUZQTEVWQlFVOHNSMEZCUnl4RlFVRkZPMDFCUVc1Q0xFOUJRVThzWjBKQlFWQXNUMEZCVHl4SFFVRkhMRVZCUVVVN08wRkJRM3BETEUxQlEwVXNTMEZCU3l4SlFVRkpMRWxCUVVrc1NVRkRXaXhQUVVGUExFdEJRVXNzUzBGQlN5eFJRVUZSTEVsQlFVa3NTMEZCU3l4RFFVRkRMRWxCUVVrc1MwRkJTeXhUUVVGVExFRkJRVU1zUlVGRGRrUTdRVUZEUVN4VlFVRk5MREpDUVVOS0xEWkZRVUUyUlN4SFFVTXpSU3hMUVVGTExFTkJRMUlzUTBGQlF6dEhRVU5JT3p0QlFVVkVMRk5CUVU4c1IwRkJSeXhqUVVGUExFVkJRVVVzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTTVRaXhOUVVGSkxFVkJRVVVzVFVGQlRTeEpRVUZKTEU5QlFVOHNRMEZCUVN4QlFVRkRMRVZCUVVVN1FVRkRlRUlzVjBGQlR5eERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1IwRkRja0k3UVVGRFJDeE5RVUZKTEU5QlFVOHNRMEZCUXl4TlFVRk5MRVZCUVVVN1FVRkRiRUlzVjBGQlR5eERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNN1IwRkRNVUk3TzBGQlJVUXNUVUZCU1N4UlFVRlJMRmxCUVVFc1EwRkJRenM3UVVGRllpeFhRVUZUTEZsQlFWa3NSMEZCUnp0QlFVTjBRaXhSUVVGSkxFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1JVRkJSU3hQUVVGUExFTkJRVU03VVVGRGFrTXNWMEZCVnl4SFFVRkhMRWxCUVVrc1IwRkJSeXhEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRVZCUVVVc1QwRkJUeXhEUVVGRE8xRkJRM1JFTEZsQlFWa3NSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkRha1FzVjBGQlZ5eEZRVU5ZTEU5QlFVOHNSVUZEVUN4VFFVRlRMRVZCUTFRc1NVRkJTU3hEUVVOTUxFTkJRVU03UVVGRFNpeFhRVUZQTEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03UjBGRGJrTTdPenRCUVVkRUxGZEJRVk1zUjBGQlJ5eERRVUZETEU5QlFVOHNSVUZCUlN4WFFVRlhMRVZCUVVVN1FVRkRha01zVVVGQlNTeERRVUZETEZGQlFWRXNSVUZCUlR0QlFVTmlMR05CUVZFc1IwRkJSeXhaUVVGWkxFVkJRVVVzUTBGQlF6dExRVU16UWp0QlFVTkVMRmRCUVU4c1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRE8wZEJRMnhFTzBGQlEwUXNTMEZCUnl4RFFVRkRMRTFCUVUwc1IwRkJSeXhWUVVGVExGbEJRVmtzUlVGQlJUdEJRVU5zUXl4UlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRk8wRkJRMklzWTBGQlVTeEhRVUZITEZsQlFWa3NSVUZCUlN4RFFVRkRPMHRCUXpOQ08wRkJRMFFzVjBGQlR5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8wZEJRM1JETEVOQlFVTTdRVUZEUml4TFFVRkhMRU5CUVVNc1RVRkJUU3hIUVVGSExGVkJRVk1zUTBGQlF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVc1RVRkJUU3hGUVVGRk8wRkJRMnhFTEZGQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVN1FVRkRZaXhqUVVGUkxFZEJRVWNzV1VGQldTeEZRVUZGTEVOQlFVTTdTMEZETTBJN1FVRkRSQ3hYUVVGUExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hYUVVGWExFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdSMEZEZEVRc1EwRkJRenRCUVVOR0xGTkJRVThzUjBGQlJ5eERRVUZETzBOQlExbzdPMEZCUlVRc1UwRkJVeXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlR0QlFVTjJRaXhOUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVTdRVUZEV0N4WFFVRlBMRWxCUVVrc1EwRkJRenRIUVVOaU96dEJRVVZFTEUxQlFVa3NaVUZCVVN4RFFVRkRMRU5CUVVNc1NVRkJTU3hsUVVGUkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJUdEJRVU55UkN4VFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdEJRVU5xUXl4VlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJUdEJRVU14UWl4bFFVRlBMRXRCUVVzc1EwRkJRenRQUVVOa08wdEJRMFk3UVVGRFJDeFhRVUZQTEVsQlFVa3NRMEZCUXp0SFFVTmlPME5CUTBZN08wRkJSVVFzVTBGQlV5eHpRa0ZCYzBJc1EwRkJReXhMUVVGTExFVkJRVVU3UVVGRGNrTXNUVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTzBGQlEzSkNMRkZCUVVrc1QwRkJUeXhIUVVGSExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTTdPenRCUVVkNlFpeFRRVUZMTEVOQlFVTXNTVUZCU1N4SFFVRkhPMEZCUTFnc1ZVRkJTU3hGUVVGRkxHZENRVUZuUWp0QlFVTjBRaXhWUVVGSkxFVkJRVVVzUzBGQlN6dEJRVU5ZTEZkQlFVc3NSVUZCUlN4RFFVRkRPMEZCUTFJc1YwRkJTeXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEZGQlFWRXNSMEZCUnl4RlFVRkZMRU5CUVVNN1FVRkRPVUlzWTBGQlVTeEZRVUZGTEU5QlFVOHNRMEZCUXl4UlFVRlJMRWRCUVVjc1JVRkJSVHRCUVVNdlFpeFRRVUZITEVWQlFVVXNUMEZCVHl4RFFVRkRMRWRCUVVjN1MwRkRha0lzUTBGQlF6dEhRVU5JTzBOQlEwWWlMQ0ptYVd4bElqb2lZMjl0Y0dsc1pYSXVhbk1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpQmxjMnhwYm5RdFpHbHpZV0pzWlNCdVpYY3RZMkZ3SUNvdlhHNWNibWx0Y0c5eWRDQkZlR05sY0hScGIyNGdabkp2YlNBbkxpNHZaWGhqWlhCMGFXOXVKenRjYm1sdGNHOXlkQ0I3SUdselFYSnlZWGtzSUdsdVpHVjRUMllzSUdWNGRHVnVaQ0I5SUdaeWIyMGdKeTR1TDNWMGFXeHpKenRjYm1sdGNHOXlkQ0JCVTFRZ1puSnZiU0FuTGk5aGMzUW5PMXh1WEc1amIyNXpkQ0J6YkdsalpTQTlJRnRkTG5Oc2FXTmxPMXh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnUTI5dGNHbHNaWElvS1NCN2ZWeHVYRzR2THlCMGFHVWdabTkxYm1SSVpXeHdaWElnY21WbmFYTjBaWElnZDJsc2JDQmthWE5oYldKcFozVmhkR1VnYUdWc2NHVnlJR3h2YjJ0MWNDQm1jbTl0SUdacGJtUnBibWNnWVZ4dUx5OGdablZ1WTNScGIyNGdhVzRnWVNCamIyNTBaWGgwTGlCVWFHbHpJR2x6SUc1bFkyVnpjMkZ5ZVNCbWIzSWdiWFZ6ZEdGamFHVWdZMjl0Y0dGMGFXSnBiR2wwZVN3Z2QyaHBZMmhjYmk4dklISmxjWFZwY21WeklIUm9ZWFFnWTI5dWRHVjRkQ0JtZFc1amRHbHZibk1nYVc0Z1lteHZZMnR6SUdGeVpTQmxkbUZzZFdGMFpXUWdZbmtnWW14dlkydElaV3h3WlhKTmFYTnphVzVuTEZ4dUx5OGdZVzVrSUhSb1pXNGdjSEp2WTJWbFpDQmhjeUJwWmlCMGFHVWdjbVZ6ZFd4MGFXNW5JSFpoYkhWbElIZGhjeUJ3Y205MmFXUmxaQ0IwYnlCaWJHOWphMGhsYkhCbGNrMXBjM05wYm1jdVhHNWNia052YlhCcGJHVnlMbkJ5YjNSdmRIbHdaU0E5SUh0Y2JpQWdZMjl0Y0dsc1pYSTZJRU52YlhCcGJHVnlMRnh1WEc0Z0lHVnhkV0ZzY3pvZ1puVnVZM1JwYjI0b2IzUm9aWElwSUh0Y2JpQWdJQ0JzWlhRZ2JHVnVJRDBnZEdocGN5NXZjR052WkdWekxteGxibWQwYUR0Y2JpQWdJQ0JwWmlBb2IzUm9aWEl1YjNCamIyUmxjeTVzWlc1bmRHZ2dJVDA5SUd4bGJpa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJSDFjYmx4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYkdWdU95QnBLeXNwSUh0Y2JpQWdJQ0FnSUd4bGRDQnZjR052WkdVZ1BTQjBhR2x6TG05d1kyOWtaWE5iYVYwc1hHNGdJQ0FnSUNBZ0lHOTBhR1Z5VDNCamIyUmxJRDBnYjNSb1pYSXViM0JqYjJSbGMxdHBYVHRjYmlBZ0lDQWdJR2xtSUNoY2JpQWdJQ0FnSUNBZ2IzQmpiMlJsTG05d1kyOWtaU0FoUFQwZ2IzUm9aWEpQY0dOdlpHVXViM0JqYjJSbElIeDhYRzRnSUNBZ0lDQWdJQ0ZoY21kRmNYVmhiSE1vYjNCamIyUmxMbUZ5WjNNc0lHOTBhR1Z5VDNCamIyUmxMbUZ5WjNNcFhHNGdJQ0FnSUNBcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUZkbElHdHViM2NnZEdoaGRDQnNaVzVuZEdnZ2FYTWdkR2hsSUhOaGJXVWdZbVYwZDJWbGJpQjBhR1VnZEhkdklHRnljbUY1Y3lCaVpXTmhkWE5sSUhSb1pYa2dZWEpsSUdScGNtVmpkR3g1SUhScFpXUmNiaUFnSUNBdkx5QjBieUIwYUdVZ2IzQmpiMlJsSUdKbGFHRjJhVzl5SUdGaWIzWmxMbHh1SUNBZ0lHeGxiaUE5SUhSb2FYTXVZMmhwYkdSeVpXNHViR1Z1WjNSb08xeHVJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2JHVnVPeUJwS3lzcElIdGNiaUFnSUNBZ0lHbG1JQ2doZEdocGN5NWphR2xzWkhKbGJsdHBYUzVsY1hWaGJITW9iM1JvWlhJdVkyaHBiR1J5Wlc1YmFWMHBLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnZlN4Y2JseHVJQ0JuZFdsa09pQXdMRnh1WEc0Z0lHTnZiWEJwYkdVNklHWjFibU4wYVc5dUtIQnliMmR5WVcwc0lHOXdkR2x2Ym5NcElIdGNiaUFnSUNCMGFHbHpMbk52ZFhKalpVNXZaR1VnUFNCYlhUdGNiaUFnSUNCMGFHbHpMbTl3WTI5a1pYTWdQU0JiWFR0Y2JpQWdJQ0IwYUdsekxtTm9hV3hrY21WdUlEMGdXMTA3WEc0Z0lDQWdkR2hwY3k1dmNIUnBiMjV6SUQwZ2IzQjBhVzl1Y3p0Y2JpQWdJQ0IwYUdsekxuTjBjbWx1WjFCaGNtRnRjeUE5SUc5d2RHbHZibk11YzNSeWFXNW5VR0Z5WVcxek8xeHVJQ0FnSUhSb2FYTXVkSEpoWTJ0SlpITWdQU0J2Y0hScGIyNXpMblJ5WVdOclNXUnpPMXh1WEc0Z0lDQWdiM0IwYVc5dWN5NWliRzlqYTFCaGNtRnRjeUE5SUc5d2RHbHZibk11WW14dlkydFFZWEpoYlhNZ2ZId2dXMTA3WEc1Y2JpQWdJQ0J2Y0hScGIyNXpMbXR1YjNkdVNHVnNjR1Z5Y3lBOUlHVjRkR1Z1WkNoY2JpQWdJQ0FnSUU5aWFtVmpkQzVqY21WaGRHVW9iblZzYkNrc1hHNGdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lHaGxiSEJsY2sxcGMzTnBibWM2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJR0pzYjJOclNHVnNjR1Z5VFdsemMybHVaem9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdaV0ZqYURvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnYVdZNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUhWdWJHVnpjem9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdkMmwwYURvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnYkc5bk9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNCc2IyOXJkWEE2SUhSeWRXVmNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQnZjSFJwYjI1ekxtdHViM2R1U0dWc2NHVnljMXh1SUNBZ0lDazdYRzVjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVoWTJObGNIUW9jSEp2WjNKaGJTazdYRzRnSUgwc1hHNWNiaUFnWTI5dGNHbHNaVkJ5YjJkeVlXMDZJR1oxYm1OMGFXOXVLSEJ5YjJkeVlXMHBJSHRjYmlBZ0lDQnNaWFFnWTJocGJHUkRiMjF3YVd4bGNpQTlJRzVsZHlCMGFHbHpMbU52YlhCcGJHVnlLQ2tzSUM4dklHVnpiR2x1ZEMxa2FYTmhZbXhsTFd4cGJtVWdibVYzTFdOaGNGeHVJQ0FnSUNBZ2NtVnpkV3gwSUQwZ1kyaHBiR1JEYjIxd2FXeGxjaTVqYjIxd2FXeGxLSEJ5YjJkeVlXMHNJSFJvYVhNdWIzQjBhVzl1Y3lrc1hHNGdJQ0FnSUNCbmRXbGtJRDBnZEdocGN5NW5kV2xrS3lzN1hHNWNiaUFnSUNCMGFHbHpMblZ6WlZCaGNuUnBZV3dnUFNCMGFHbHpMblZ6WlZCaGNuUnBZV3dnZkh3Z2NtVnpkV3gwTG5WelpWQmhjblJwWVd3N1hHNWNiaUFnSUNCMGFHbHpMbU5vYVd4a2NtVnVXMmQxYVdSZElEMGdjbVZ6ZFd4ME8xeHVJQ0FnSUhSb2FYTXVkWE5sUkdWd2RHaHpJRDBnZEdocGN5NTFjMlZFWlhCMGFITWdmSHdnY21WemRXeDBMblZ6WlVSbGNIUm9jenRjYmx4dUlDQWdJSEpsZEhWeWJpQm5kV2xrTzF4dUlDQjlMRnh1WEc0Z0lHRmpZMlZ3ZERvZ1puVnVZM1JwYjI0b2JtOWtaU2tnZTF4dUlDQWdJQzhxSUdsemRHRnVZblZzSUdsbmJtOXlaU0J1WlhoME9pQlRZVzVwZEhrZ1kyOWtaU0FxTDF4dUlDQWdJR2xtSUNnaGRHaHBjMXR1YjJSbExuUjVjR1ZkS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYaGpaWEIwYVc5dUtDZFZibXR1YjNkdUlIUjVjR1U2SUNjZ0t5QnViMlJsTG5SNWNHVXNJRzV2WkdVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhSb2FYTXVjMjkxY21ObFRtOWtaUzUxYm5Ob2FXWjBLRzV2WkdVcE8xeHVJQ0FnSUd4bGRDQnlaWFFnUFNCMGFHbHpXMjV2WkdVdWRIbHdaVjBvYm05a1pTazdYRzRnSUNBZ2RHaHBjeTV6YjNWeVkyVk9iMlJsTG5Ob2FXWjBLQ2s3WEc0Z0lDQWdjbVYwZFhKdUlISmxkRHRjYmlBZ2ZTeGNibHh1SUNCUWNtOW5jbUZ0T2lCbWRXNWpkR2x2Ymlod2NtOW5jbUZ0S1NCN1hHNGdJQ0FnZEdocGN5NXZjSFJwYjI1ekxtSnNiMk5yVUdGeVlXMXpMblZ1YzJocFpuUW9jSEp2WjNKaGJTNWliRzlqYTFCaGNtRnRjeWs3WEc1Y2JpQWdJQ0JzWlhRZ1ltOWtlU0E5SUhCeWIyZHlZVzB1WW05a2VTeGNiaUFnSUNBZ0lHSnZaSGxNWlc1bmRHZ2dQU0JpYjJSNUxteGxibWQwYUR0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdKdlpIbE1aVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnZEdocGN5NWhZMk5sY0hRb1ltOWtlVnRwWFNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZEdocGN5NXZjSFJwYjI1ekxtSnNiMk5yVUdGeVlXMXpMbk5vYVdaMEtDazdYRzVjYmlBZ0lDQjBhR2x6TG1selUybHRjR3hsSUQwZ1ltOWtlVXhsYm1kMGFDQTlQVDBnTVR0Y2JpQWdJQ0IwYUdsekxtSnNiMk5yVUdGeVlXMXpJRDBnY0hKdlozSmhiUzVpYkc5amExQmhjbUZ0Y3lBL0lIQnliMmR5WVcwdVlteHZZMnRRWVhKaGJYTXViR1Z1WjNSb0lEb2dNRHRjYmx4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQjlMRnh1WEc0Z0lFSnNiMk5yVTNSaGRHVnRaVzUwT2lCbWRXNWpkR2x2YmloaWJHOWpheWtnZTF4dUlDQWdJSFJ5WVc1elptOXliVXhwZEdWeVlXeFViMUJoZEdnb1lteHZZMnNwTzF4dVhHNGdJQ0FnYkdWMElIQnliMmR5WVcwZ1BTQmliRzlqYXk1d2NtOW5jbUZ0TEZ4dUlDQWdJQ0FnYVc1MlpYSnpaU0E5SUdKc2IyTnJMbWx1ZG1WeWMyVTdYRzVjYmlBZ0lDQndjbTluY21GdElEMGdjSEp2WjNKaGJTQW1KaUIwYUdsekxtTnZiWEJwYkdWUWNtOW5jbUZ0S0hCeWIyZHlZVzBwTzF4dUlDQWdJR2x1ZG1WeWMyVWdQU0JwYm5abGNuTmxJQ1ltSUhSb2FYTXVZMjl0Y0dsc1pWQnliMmR5WVcwb2FXNTJaWEp6WlNrN1hHNWNiaUFnSUNCc1pYUWdkSGx3WlNBOUlIUm9hWE11WTJ4aGMzTnBabmxUWlhod2NpaGliRzlqYXlrN1hHNWNiaUFnSUNCcFppQW9kSGx3WlNBOVBUMGdKMmhsYkhCbGNpY3BJSHRjYmlBZ0lDQWdJSFJvYVhNdWFHVnNjR1Z5VTJWNGNISW9ZbXh2WTJzc0lIQnliMmR5WVcwc0lHbHVkbVZ5YzJVcE8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb2RIbHdaU0E5UFQwZ0ozTnBiWEJzWlNjcElIdGNiaUFnSUNBZ0lIUm9hWE11YzJsdGNHeGxVMlY0Y0hJb1lteHZZMnNwTzF4dVhHNGdJQ0FnSUNBdkx5QnViM2NnZEdoaGRDQjBhR1VnYzJsdGNHeGxJRzExYzNSaFkyaGxJR2x6SUhKbGMyOXNkbVZrTENCM1pTQnVaV1ZrSUhSdlhHNGdJQ0FnSUNBdkx5QmxkbUZzZFdGMFpTQnBkQ0JpZVNCbGVHVmpkWFJwYm1jZ1lHSnNiMk5yU0dWc2NHVnlUV2x6YzJsdVoyQmNiaUFnSUNBZ0lIUm9hWE11YjNCamIyUmxLQ2R3ZFhOb1VISnZaM0poYlNjc0lIQnliMmR5WVcwcE8xeHVJQ0FnSUNBZ2RHaHBjeTV2Y0dOdlpHVW9KM0IxYzJoUWNtOW5jbUZ0Snl3Z2FXNTJaWEp6WlNrN1hHNGdJQ0FnSUNCMGFHbHpMbTl3WTI5a1pTZ25aVzF3ZEhsSVlYTm9KeWs3WEc0Z0lDQWdJQ0IwYUdsekxtOXdZMjlrWlNnbllteHZZMnRXWVd4MVpTY3NJR0pzYjJOckxuQmhkR2d1YjNKcFoybHVZV3dwTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQjBhR2x6TG1GdFltbG5kVzkxYzFObGVIQnlLR0pzYjJOckxDQndjbTluY21GdExDQnBiblpsY25ObEtUdGNibHh1SUNBZ0lDQWdMeThnYm05M0lIUm9ZWFFnZEdobElITnBiWEJzWlNCdGRYTjBZV05vWlNCcGN5QnlaWE52YkhabFpDd2dkMlVnYm1WbFpDQjBiMXh1SUNBZ0lDQWdMeThnWlhaaGJIVmhkR1VnYVhRZ1lua2daWGhsWTNWMGFXNW5JR0JpYkc5amEwaGxiSEJsY2sxcGMzTnBibWRnWEc0Z0lDQWdJQ0IwYUdsekxtOXdZMjlrWlNnbmNIVnphRkJ5YjJkeVlXMG5MQ0J3Y205bmNtRnRLVHRjYmlBZ0lDQWdJSFJvYVhNdWIzQmpiMlJsS0Nkd2RYTm9VSEp2WjNKaGJTY3NJR2x1ZG1WeWMyVXBPMXh1SUNBZ0lDQWdkR2hwY3k1dmNHTnZaR1VvSjJWdGNIUjVTR0Z6YUNjcE8xeHVJQ0FnSUNBZ2RHaHBjeTV2Y0dOdlpHVW9KMkZ0WW1sbmRXOTFjMEpzYjJOclZtRnNkV1VuS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IwYUdsekxtOXdZMjlrWlNnbllYQndaVzVrSnlrN1hHNGdJSDBzWEc1Y2JpQWdSR1ZqYjNKaGRHOXlRbXh2WTJzb1pHVmpiM0poZEc5eUtTQjdYRzRnSUNBZ2JHVjBJSEJ5YjJkeVlXMGdQU0JrWldOdmNtRjBiM0l1Y0hKdlozSmhiU0FtSmlCMGFHbHpMbU52YlhCcGJHVlFjbTluY21GdEtHUmxZMjl5WVhSdmNpNXdjbTluY21GdEtUdGNiaUFnSUNCc1pYUWdjR0Z5WVcxeklEMGdkR2hwY3k1elpYUjFjRVoxYkd4TmRYTjBZV05vWlZCaGNtRnRjeWhrWldOdmNtRjBiM0lzSUhCeWIyZHlZVzBzSUhWdVpHVm1hVzVsWkNrc1hHNGdJQ0FnSUNCd1lYUm9JRDBnWkdWamIzSmhkRzl5TG5CaGRHZzdYRzVjYmlBZ0lDQjBhR2x6TG5WelpVUmxZMjl5WVhSdmNuTWdQU0IwY25WbE8xeHVJQ0FnSUhSb2FYTXViM0JqYjJSbEtDZHlaV2RwYzNSbGNrUmxZMjl5WVhSdmNpY3NJSEJoY21GdGN5NXNaVzVuZEdnc0lIQmhkR2d1YjNKcFoybHVZV3dwTzF4dUlDQjlMRnh1WEc0Z0lGQmhjblJwWVd4VGRHRjBaVzFsYm5RNklHWjFibU4wYVc5dUtIQmhjblJwWVd3cElIdGNiaUFnSUNCMGFHbHpMblZ6WlZCaGNuUnBZV3dnUFNCMGNuVmxPMXh1WEc0Z0lDQWdiR1YwSUhCeWIyZHlZVzBnUFNCd1lYSjBhV0ZzTG5CeWIyZHlZVzA3WEc0Z0lDQWdhV1lnS0hCeWIyZHlZVzBwSUh0Y2JpQWdJQ0FnSUhCeWIyZHlZVzBnUFNCMGFHbHpMbU52YlhCcGJHVlFjbTluY21GdEtIQmhjblJwWVd3dWNISnZaM0poYlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYkdWMElIQmhjbUZ0Y3lBOUlIQmhjblJwWVd3dWNHRnlZVzF6TzF4dUlDQWdJR2xtSUNod1lYSmhiWE11YkdWdVozUm9JRDRnTVNrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVjRZMlZ3ZEdsdmJpaGNiaUFnSUNBZ0lDQWdKMVZ1YzNWd2NHOXlkR1ZrSUc1MWJXSmxjaUJ2WmlCd1lYSjBhV0ZzSUdGeVozVnRaVzUwY3pvZ0p5QXJJSEJoY21GdGN5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lIQmhjblJwWVd4Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNnaGNHRnlZVzF6TG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11YjNCMGFXOXVjeTVsZUhCc2FXTnBkRkJoY25ScFlXeERiMjUwWlhoMEtTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWIzQmpiMlJsS0Nkd2RYTm9UR2wwWlhKaGJDY3NJQ2QxYm1SbFptbHVaV1FuS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhCaGNtRnRjeTV3ZFhOb0tIc2dkSGx3WlRvZ0oxQmhkR2hGZUhCeVpYTnphVzl1Snl3Z2NHRnlkSE02SUZ0ZExDQmtaWEIwYURvZ01DQjlLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQnNaWFFnY0dGeWRHbGhiRTVoYldVZ1BTQndZWEowYVdGc0xtNWhiV1V1YjNKcFoybHVZV3dzWEc0Z0lDQWdJQ0JwYzBSNWJtRnRhV01nUFNCd1lYSjBhV0ZzTG01aGJXVXVkSGx3WlNBOVBUMGdKMU4xWWtWNGNISmxjM05wYjI0bk8xeHVJQ0FnSUdsbUlDaHBjMFI1Ym1GdGFXTXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVlXTmpaWEIwS0hCaGNuUnBZV3d1Ym1GdFpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTV6WlhSMWNFWjFiR3hOZFhOMFlXTm9aVkJoY21GdGN5aHdZWEowYVdGc0xDQndjbTluY21GdExDQjFibVJsWm1sdVpXUXNJSFJ5ZFdVcE8xeHVYRzRnSUNBZ2JHVjBJR2x1WkdWdWRDQTlJSEJoY25ScFlXd3VhVzVrWlc1MElIeDhJQ2NuTzF4dUlDQWdJR2xtSUNoMGFHbHpMbTl3ZEdsdmJuTXVjSEpsZG1WdWRFbHVaR1Z1ZENBbUppQnBibVJsYm5RcElIdGNiaUFnSUNBZ0lIUm9hWE11YjNCamIyUmxLQ2RoY0hCbGJtUkRiMjUwWlc1MEp5d2dhVzVrWlc1MEtUdGNiaUFnSUNBZ0lHbHVaR1Z1ZENBOUlDY25PMXh1SUNBZ0lIMWNibHh1SUNBZ0lIUm9hWE11YjNCamIyUmxLQ2RwYm5admEyVlFZWEowYVdGc0p5d2dhWE5FZVc1aGJXbGpMQ0J3WVhKMGFXRnNUbUZ0WlN3Z2FXNWtaVzUwS1R0Y2JpQWdJQ0IwYUdsekxtOXdZMjlrWlNnbllYQndaVzVrSnlrN1hHNGdJSDBzWEc0Z0lGQmhjblJwWVd4Q2JHOWphMU4wWVhSbGJXVnVkRG9nWm5WdVkzUnBiMjRvY0dGeWRHbGhiRUpzYjJOcktTQjdYRzRnSUNBZ2RHaHBjeTVRWVhKMGFXRnNVM1JoZEdWdFpXNTBLSEJoY25ScFlXeENiRzlqYXlrN1hHNGdJSDBzWEc1Y2JpQWdUWFZ6ZEdGamFHVlRkR0YwWlcxbGJuUTZJR1oxYm1OMGFXOXVLRzExYzNSaFkyaGxLU0I3WEc0Z0lDQWdkR2hwY3k1VGRXSkZlSEJ5WlhOemFXOXVLRzExYzNSaFkyaGxLVHRjYmx4dUlDQWdJR2xtSUNodGRYTjBZV05vWlM1bGMyTmhjR1ZrSUNZbUlDRjBhR2x6TG05d2RHbHZibk11Ym05RmMyTmhjR1VwSUh0Y2JpQWdJQ0FnSUhSb2FYTXViM0JqYjJSbEtDZGhjSEJsYm1SRmMyTmhjR1ZrSnlrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSFJvYVhNdWIzQmpiMlJsS0NkaGNIQmxibVFuS1R0Y2JpQWdJQ0I5WEc0Z0lIMHNYRzRnSUVSbFkyOXlZWFJ2Y2loa1pXTnZjbUYwYjNJcElIdGNiaUFnSUNCMGFHbHpMa1JsWTI5eVlYUnZja0pzYjJOcktHUmxZMjl5WVhSdmNpazdYRzRnSUgwc1hHNWNiaUFnUTI5dWRHVnVkRk4wWVhSbGJXVnVkRG9nWm5WdVkzUnBiMjRvWTI5dWRHVnVkQ2tnZTF4dUlDQWdJR2xtSUNoamIyNTBaVzUwTG5aaGJIVmxLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtOXdZMjlrWlNnbllYQndaVzVrUTI5dWRHVnVkQ2NzSUdOdmJuUmxiblF1ZG1Gc2RXVXBPMXh1SUNBZ0lIMWNiaUFnZlN4Y2JseHVJQ0JEYjIxdFpXNTBVM1JoZEdWdFpXNTBPaUJtZFc1amRHbHZiaWdwSUh0OUxGeHVYRzRnSUZOMVlrVjRjSEpsYzNOcGIyNDZJR1oxYm1OMGFXOXVLSE5sZUhCeUtTQjdYRzRnSUNBZ2RISmhibk5tYjNKdFRHbDBaWEpoYkZSdlVHRjBhQ2h6Wlhod2NpazdYRzRnSUNBZ2JHVjBJSFI1Y0dVZ1BTQjBhR2x6TG1Oc1lYTnphV1o1VTJWNGNISW9jMlY0Y0hJcE8xeHVYRzRnSUNBZ2FXWWdLSFI1Y0dVZ1BUMDlJQ2R6YVcxd2JHVW5LU0I3WEc0Z0lDQWdJQ0IwYUdsekxuTnBiWEJzWlZObGVIQnlLSE5sZUhCeUtUdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tIUjVjR1VnUFQwOUlDZG9aV3h3WlhJbktTQjdYRzRnSUNBZ0lDQjBhR2x6TG1obGJIQmxjbE5sZUhCeUtITmxlSEJ5S1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdkR2hwY3k1aGJXSnBaM1Z2ZFhOVFpYaHdjaWh6Wlhod2NpazdYRzRnSUNBZ2ZWeHVJQ0I5TEZ4dUlDQmhiV0pwWjNWdmRYTlRaWGh3Y2pvZ1puVnVZM1JwYjI0b2MyVjRjSElzSUhCeWIyZHlZVzBzSUdsdWRtVnljMlVwSUh0Y2JpQWdJQ0JzWlhRZ2NHRjBhQ0E5SUhObGVIQnlMbkJoZEdnc1hHNGdJQ0FnSUNCdVlXMWxJRDBnY0dGMGFDNXdZWEowYzFzd1hTeGNiaUFnSUNBZ0lHbHpRbXh2WTJzZ1BTQndjbTluY21GdElDRTlJRzUxYkd3Z2ZId2dhVzUyWlhKelpTQWhQU0J1ZFd4c08xeHVYRzRnSUNBZ2RHaHBjeTV2Y0dOdlpHVW9KMmRsZEVOdmJuUmxlSFFuTENCd1lYUm9MbVJsY0hSb0tUdGNibHh1SUNBZ0lIUm9hWE11YjNCamIyUmxLQ2R3ZFhOb1VISnZaM0poYlNjc0lIQnliMmR5WVcwcE8xeHVJQ0FnSUhSb2FYTXViM0JqYjJSbEtDZHdkWE5vVUhKdlozSmhiU2NzSUdsdWRtVnljMlVwTzF4dVhHNGdJQ0FnY0dGMGFDNXpkSEpwWTNRZ1BTQjBjblZsTzF4dUlDQWdJSFJvYVhNdVlXTmpaWEIwS0hCaGRHZ3BPMXh1WEc0Z0lDQWdkR2hwY3k1dmNHTnZaR1VvSjJsdWRtOXJaVUZ0WW1sbmRXOTFjeWNzSUc1aGJXVXNJR2x6UW14dlkyc3BPMXh1SUNCOUxGeHVYRzRnSUhOcGJYQnNaVk5sZUhCeU9pQm1kVzVqZEdsdmJpaHpaWGh3Y2lrZ2UxeHVJQ0FnSUd4bGRDQndZWFJvSUQwZ2MyVjRjSEl1Y0dGMGFEdGNiaUFnSUNCd1lYUm9Mbk4wY21samRDQTlJSFJ5ZFdVN1hHNGdJQ0FnZEdocGN5NWhZMk5sY0hRb2NHRjBhQ2s3WEc0Z0lDQWdkR2hwY3k1dmNHTnZaR1VvSjNKbGMyOXNkbVZRYjNOemFXSnNaVXhoYldKa1lTY3BPMXh1SUNCOUxGeHVYRzRnSUdobGJIQmxjbE5sZUhCeU9pQm1kVzVqZEdsdmJpaHpaWGh3Y2l3Z2NISnZaM0poYlN3Z2FXNTJaWEp6WlNrZ2UxeHVJQ0FnSUd4bGRDQndZWEpoYlhNZ1BTQjBhR2x6TG5ObGRIVndSblZzYkUxMWMzUmhZMmhsVUdGeVlXMXpLSE5sZUhCeUxDQndjbTluY21GdExDQnBiblpsY25ObEtTeGNiaUFnSUNBZ0lIQmhkR2dnUFNCelpYaHdjaTV3WVhSb0xGeHVJQ0FnSUNBZ2JtRnRaU0E5SUhCaGRHZ3VjR0Z5ZEhOYk1GMDdYRzVjYmlBZ0lDQnBaaUFvZEdocGN5NXZjSFJwYjI1ekxtdHViM2R1U0dWc2NHVnljMXR1WVcxbFhTa2dlMXh1SUNBZ0lDQWdkR2hwY3k1dmNHTnZaR1VvSjJsdWRtOXJaVXR1YjNkdVNHVnNjR1Z5Snl3Z2NHRnlZVzF6TG14bGJtZDBhQ3dnYm1GdFpTazdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaDBhR2x6TG05d2RHbHZibk11YTI1dmQyNUlaV3h3WlhKelQyNXNlU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWNFkyVndkR2x2YmloY2JpQWdJQ0FnSUNBZ0oxbHZkU0J6Y0dWamFXWnBaV1FnYTI1dmQyNUlaV3h3WlhKelQyNXNlU3dnWW5WMElIVnpaV1FnZEdobElIVnVhMjV2ZDI0Z2FHVnNjR1Z5SUNjZ0t5QnVZVzFsTEZ4dUlDQWdJQ0FnSUNCelpYaHdjbHh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2NHRjBhQzV6ZEhKcFkzUWdQU0IwY25WbE8xeHVJQ0FnSUNBZ2NHRjBhQzVtWVd4emVTQTlJSFJ5ZFdVN1hHNWNiaUFnSUNBZ0lIUm9hWE11WVdOalpYQjBLSEJoZEdncE8xeHVJQ0FnSUNBZ2RHaHBjeTV2Y0dOdlpHVW9YRzRnSUNBZ0lDQWdJQ2RwYm5admEyVklaV3h3WlhJbkxGeHVJQ0FnSUNBZ0lDQndZWEpoYlhNdWJHVnVaM1JvTEZ4dUlDQWdJQ0FnSUNCd1lYUm9MbTl5YVdkcGJtRnNMRnh1SUNBZ0lDQWdJQ0JCVTFRdWFHVnNjR1Z5Y3k1emFXMXdiR1ZKWkNod1lYUm9LVnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzRnSUgwc1hHNWNiaUFnVUdGMGFFVjRjSEpsYzNOcGIyNDZJR1oxYm1OMGFXOXVLSEJoZEdncElIdGNiaUFnSUNCMGFHbHpMbUZrWkVSbGNIUm9LSEJoZEdndVpHVndkR2dwTzF4dUlDQWdJSFJvYVhNdWIzQmpiMlJsS0NkblpYUkRiMjUwWlhoMEp5d2djR0YwYUM1a1pYQjBhQ2s3WEc1Y2JpQWdJQ0JzWlhRZ2JtRnRaU0E5SUhCaGRHZ3VjR0Z5ZEhOYk1GMHNYRzRnSUNBZ0lDQnpZMjl3WldRZ1BTQkJVMVF1YUdWc2NHVnljeTV6WTI5d1pXUkpaQ2h3WVhSb0tTeGNiaUFnSUNBZ0lHSnNiMk5yVUdGeVlXMUpaQ0E5SUNGd1lYUm9MbVJsY0hSb0lDWW1JQ0Z6WTI5d1pXUWdKaVlnZEdocGN5NWliRzlqYTFCaGNtRnRTVzVrWlhnb2JtRnRaU2s3WEc1Y2JpQWdJQ0JwWmlBb1lteHZZMnRRWVhKaGJVbGtLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtOXdZMjlrWlNnbmJHOXZhM1Z3UW14dlkydFFZWEpoYlNjc0lHSnNiMk5yVUdGeVlXMUpaQ3dnY0dGMGFDNXdZWEowY3lrN1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNnaGJtRnRaU2tnZTF4dUlDQWdJQ0FnTHk4Z1EyOXVkR1Y0ZENCeVpXWmxjbVZ1WTJVc0lHa3VaUzRnWUh0N1ptOXZJQzU5ZldBZ2IzSWdZSHQ3Wm05dklDNHVmWDFnWEc0Z0lDQWdJQ0IwYUdsekxtOXdZMjlrWlNnbmNIVnphRU52Ym5SbGVIUW5LVHRjYmlBZ0lDQjlJR1ZzYzJVZ2FXWWdLSEJoZEdndVpHRjBZU2tnZTF4dUlDQWdJQ0FnZEdocGN5NXZjSFJwYjI1ekxtUmhkR0VnUFNCMGNuVmxPMXh1SUNBZ0lDQWdkR2hwY3k1dmNHTnZaR1VvSjJ4dmIydDFjRVJoZEdFbkxDQndZWFJvTG1SbGNIUm9MQ0J3WVhSb0xuQmhjblJ6TENCd1lYUm9Mbk4wY21samRDazdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhSb2FYTXViM0JqYjJSbEtGeHVJQ0FnSUNBZ0lDQW5iRzl2YTNWd1QyNURiMjUwWlhoMEp5eGNiaUFnSUNBZ0lDQWdjR0YwYUM1d1lYSjBjeXhjYmlBZ0lDQWdJQ0FnY0dGMGFDNW1ZV3h6ZVN4Y2JpQWdJQ0FnSUNBZ2NHRjBhQzV6ZEhKcFkzUXNYRzRnSUNBZ0lDQWdJSE5qYjNCbFpGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJSDBzWEc1Y2JpQWdVM1J5YVc1blRHbDBaWEpoYkRvZ1puVnVZM1JwYjI0b2MzUnlhVzVuS1NCN1hHNGdJQ0FnZEdocGN5NXZjR052WkdVb0ozQjFjMmhUZEhKcGJtY25MQ0J6ZEhKcGJtY3VkbUZzZFdVcE8xeHVJQ0I5TEZ4dVhHNGdJRTUxYldKbGNreHBkR1Z5WVd3NklHWjFibU4wYVc5dUtHNTFiV0psY2lrZ2UxeHVJQ0FnSUhSb2FYTXViM0JqYjJSbEtDZHdkWE5vVEdsMFpYSmhiQ2NzSUc1MWJXSmxjaTUyWVd4MVpTazdYRzRnSUgwc1hHNWNiaUFnUW05dmJHVmhia3hwZEdWeVlXdzZJR1oxYm1OMGFXOXVLR0p2YjJ3cElIdGNiaUFnSUNCMGFHbHpMbTl3WTI5a1pTZ25jSFZ6YUV4cGRHVnlZV3duTENCaWIyOXNMblpoYkhWbEtUdGNiaUFnZlN4Y2JseHVJQ0JWYm1SbFptbHVaV1JNYVhSbGNtRnNPaUJtZFc1amRHbHZiaWdwSUh0Y2JpQWdJQ0IwYUdsekxtOXdZMjlrWlNnbmNIVnphRXhwZEdWeVlXd25MQ0FuZFc1a1pXWnBibVZrSnlrN1hHNGdJSDBzWEc1Y2JpQWdUblZzYkV4cGRHVnlZV3c2SUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUhSb2FYTXViM0JqYjJSbEtDZHdkWE5vVEdsMFpYSmhiQ2NzSUNkdWRXeHNKeWs3WEc0Z0lIMHNYRzVjYmlBZ1NHRnphRG9nWm5WdVkzUnBiMjRvYUdGemFDa2dlMXh1SUNBZ0lHeGxkQ0J3WVdseWN5QTlJR2hoYzJndWNHRnBjbk1zWEc0Z0lDQWdJQ0JwSUQwZ01DeGNiaUFnSUNBZ0lHd2dQU0J3WVdseWN5NXNaVzVuZEdnN1hHNWNiaUFnSUNCMGFHbHpMbTl3WTI5a1pTZ25jSFZ6YUVoaGMyZ25LVHRjYmx4dUlDQWdJR1p2Y2lBb095QnBJRHdnYkRzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuQjFjMmhRWVhKaGJTaHdZV2x5YzF0cFhTNTJZV3gxWlNrN1hHNGdJQ0FnZlZ4dUlDQWdJSGRvYVd4bElDaHBMUzBwSUh0Y2JpQWdJQ0FnSUhSb2FYTXViM0JqYjJSbEtDZGhjM05wWjI1VWIwaGhjMmduTENCd1lXbHljMXRwWFM1clpYa3BPMXh1SUNBZ0lIMWNiaUFnSUNCMGFHbHpMbTl3WTI5a1pTZ25jRzl3U0dGemFDY3BPMXh1SUNCOUxGeHVYRzRnSUM4dklFaEZURkJGVWxOY2JpQWdiM0JqYjJSbE9pQm1kVzVqZEdsdmJpaHVZVzFsS1NCN1hHNGdJQ0FnZEdocGN5NXZjR052WkdWekxuQjFjMmdvZTF4dUlDQWdJQ0FnYjNCamIyUmxPaUJ1WVcxbExGeHVJQ0FnSUNBZ1lYSm5jem9nYzJ4cFkyVXVZMkZzYkNoaGNtZDFiV1Z1ZEhNc0lERXBMRnh1SUNBZ0lDQWdiRzlqT2lCMGFHbHpMbk52ZFhKalpVNXZaR1ZiTUYwdWJHOWpYRzRnSUNBZ2ZTazdYRzRnSUgwc1hHNWNiaUFnWVdSa1JHVndkR2c2SUdaMWJtTjBhVzl1S0dSbGNIUm9LU0I3WEc0Z0lDQWdhV1lnS0NGa1pYQjBhQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIUm9hWE11ZFhObFJHVndkR2h6SUQwZ2RISjFaVHRjYmlBZ2ZTeGNibHh1SUNCamJHRnpjMmxtZVZObGVIQnlPaUJtZFc1amRHbHZiaWh6Wlhod2Npa2dlMXh1SUNBZ0lHeGxkQ0JwYzFOcGJYQnNaU0E5SUVGVFZDNW9aV3h3WlhKekxuTnBiWEJzWlVsa0tITmxlSEJ5TG5CaGRHZ3BPMXh1WEc0Z0lDQWdiR1YwSUdselFteHZZMnRRWVhKaGJTQTlJR2x6VTJsdGNHeGxJQ1ltSUNFaGRHaHBjeTVpYkc5amExQmhjbUZ0U1c1a1pYZ29jMlY0Y0hJdWNHRjBhQzV3WVhKMGMxc3dYU2s3WEc1Y2JpQWdJQ0F2THlCaElHMTFjM1JoWTJobElHbHpJR0Z1SUdWc2FXZHBZbXhsSUdobGJIQmxjaUJwWmpwY2JpQWdJQ0F2THlBcUlHbDBjeUJwWkNCcGN5QnphVzF3YkdVZ0tHRWdjMmx1WjJ4bElIQmhjblFzSUc1dmRDQmdkR2hwYzJBZ2IzSWdZQzR1WUNsY2JpQWdJQ0JzWlhRZ2FYTklaV3h3WlhJZ1BTQWhhWE5DYkc5amExQmhjbUZ0SUNZbUlFRlRWQzVvWld4d1pYSnpMbWhsYkhCbGNrVjRjSEpsYzNOcGIyNG9jMlY0Y0hJcE8xeHVYRzRnSUNBZ0x5OGdhV1lnWVNCdGRYTjBZV05vWlNCcGN5QmhiaUJsYkdsbmFXSnNaU0JvWld4d1pYSWdZblYwSUc1dmRDQmhJR1JsWm1sdWFYUmxYRzRnSUNBZ0x5OGdhR1ZzY0dWeUxDQnBkQ0JwY3lCaGJXSnBaM1Z2ZFhNc0lHRnVaQ0IzYVd4c0lHSmxJSEpsYzI5c2RtVmtJR2x1SUdFZ2JHRjBaWEpjYmlBZ0lDQXZMeUJ3WVhOeklHOXlJR0YwSUhKMWJuUnBiV1V1WEc0Z0lDQWdiR1YwSUdselJXeHBaMmxpYkdVZ1BTQWhhWE5DYkc5amExQmhjbUZ0SUNZbUlDaHBjMGhsYkhCbGNpQjhmQ0JwYzFOcGJYQnNaU2s3WEc1Y2JpQWdJQ0F2THlCcFppQmhiV0pwWjNWdmRYTXNJSGRsSUdOaGJpQndiM056YVdKc2VTQnlaWE52YkhabElIUm9aU0JoYldKcFozVnBkSGtnYm05M1hHNGdJQ0FnTHk4Z1FXNGdaV3hwWjJsaWJHVWdhR1ZzY0dWeUlHbHpJRzl1WlNCMGFHRjBJR1J2WlhNZ2JtOTBJR2hoZG1VZ1lTQmpiMjF3YkdWNElIQmhkR2dzSUdrdVpTNGdZSFJvYVhNdVptOXZZQ3dnWUM0dUwyWnZiMkFnWlhSakxseHVJQ0FnSUdsbUlDaHBjMFZzYVdkcFlteGxJQ1ltSUNGcGMwaGxiSEJsY2lrZ2UxeHVJQ0FnSUNBZ2JHVjBJRzVoYldVZ1BTQnpaWGh3Y2k1d1lYUm9MbkJoY25Seld6QmRMRnh1SUNBZ0lDQWdJQ0J2Y0hScGIyNXpJRDBnZEdocGN5NXZjSFJwYjI1ek8xeHVJQ0FnSUNBZ2FXWWdLRzl3ZEdsdmJuTXVhMjV2ZDI1SVpXeHdaWEp6VzI1aGJXVmRLU0I3WEc0Z0lDQWdJQ0FnSUdselNHVnNjR1Z5SUQwZ2RISjFaVHRjYmlBZ0lDQWdJSDBnWld4elpTQnBaaUFvYjNCMGFXOXVjeTVyYm05M2JraGxiSEJsY25OUGJteDVLU0I3WEc0Z0lDQWdJQ0FnSUdselJXeHBaMmxpYkdVZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2FYTklaV3h3WlhJcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlBbmFHVnNjR1Z5Snp0Y2JpQWdJQ0I5SUdWc2MyVWdhV1lnS0dselJXeHBaMmxpYkdVcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlBbllXMWlhV2QxYjNWekp6dGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnY21WMGRYSnVJQ2R6YVcxd2JHVW5PMXh1SUNBZ0lIMWNiaUFnZlN4Y2JseHVJQ0J3ZFhOb1VHRnlZVzF6T2lCbWRXNWpkR2x2Ymlod1lYSmhiWE1wSUh0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Dd2diQ0E5SUhCaGNtRnRjeTVzWlc1bmRHZzdJR2tnUENCc095QnBLeXNwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjSFZ6YUZCaGNtRnRLSEJoY21GdGMxdHBYU2s3WEc0Z0lDQWdmVnh1SUNCOUxGeHVYRzRnSUhCMWMyaFFZWEpoYlRvZ1puVnVZM1JwYjI0b2RtRnNLU0I3WEc0Z0lDQWdiR1YwSUhaaGJIVmxJRDBnZG1Gc0xuWmhiSFZsSUNFOUlHNTFiR3dnUHlCMllXd3VkbUZzZFdVZ09pQjJZV3d1YjNKcFoybHVZV3dnZkh3Z0p5YzdYRzVjYmlBZ0lDQnBaaUFvZEdocGN5NXpkSEpwYm1kUVlYSmhiWE1wSUh0Y2JpQWdJQ0FnSUdsbUlDaDJZV3gxWlM1eVpYQnNZV05sS1NCN1hHNGdJQ0FnSUNBZ0lIWmhiSFZsSUQwZ2RtRnNkV1V1Y21Wd2JHRmpaU2d2WGloY1hDNC9YRnd1WEZ3dktTb3ZaeXdnSnljcExuSmxjR3hoWTJVb0wxeGNMeTluTENBbkxpY3BPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2RtRnNMbVJsY0hSb0tTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdVlXUmtSR1Z3ZEdnb2RtRnNMbVJsY0hSb0tUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lIUm9hWE11YjNCamIyUmxLQ2RuWlhSRGIyNTBaWGgwSnl3Z2RtRnNMbVJsY0hSb0lIeDhJREFwTzF4dUlDQWdJQ0FnZEdocGN5NXZjR052WkdVb0ozQjFjMmhUZEhKcGJtZFFZWEpoYlNjc0lIWmhiSFZsTENCMllXd3VkSGx3WlNrN1hHNWNiaUFnSUNBZ0lHbG1JQ2gyWVd3dWRIbHdaU0E5UFQwZ0oxTjFZa1Y0Y0hKbGMzTnBiMjRuS1NCN1hHNGdJQ0FnSUNBZ0lDOHZJRk4xWWtWNGNISmxjM05wYjI1eklHZGxkQ0JsZG1Gc2RXRjBaV1FnWVc1a0lIQmhjM05sWkNCcGJseHVJQ0FnSUNBZ0lDQXZMeUJwYmlCemRISnBibWNnY0dGeVlXMXpJRzF2WkdVdVhHNGdJQ0FnSUNBZ0lIUm9hWE11WVdOalpYQjBLSFpoYkNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMblJ5WVdOclNXUnpLU0I3WEc0Z0lDQWdJQ0FnSUd4bGRDQmliRzlqYTFCaGNtRnRTVzVrWlhnN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gyWVd3dWNHRnlkSE1nSmlZZ0lVRlRWQzVvWld4d1pYSnpMbk5qYjNCbFpFbGtLSFpoYkNrZ0ppWWdJWFpoYkM1a1pYQjBhQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHSnNiMk5yVUdGeVlXMUpibVJsZUNBOUlIUm9hWE11WW14dlkydFFZWEpoYlVsdVpHVjRLSFpoYkM1d1lYSjBjMXN3WFNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0dKc2IyTnJVR0Z5WVcxSmJtUmxlQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHeGxkQ0JpYkc5amExQmhjbUZ0UTJocGJHUWdQU0IyWVd3dWNHRnlkSE11YzJ4cFkyVW9NU2t1YW05cGJpZ25MaWNwTzF4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11YjNCamIyUmxLQ2R3ZFhOb1NXUW5MQ0FuUW14dlkydFFZWEpoYlNjc0lHSnNiMk5yVUdGeVlXMUpibVJsZUN3Z1lteHZZMnRRWVhKaGJVTm9hV3hrS1R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQjJZV3gxWlNBOUlIWmhiQzV2Y21sbmFXNWhiQ0I4ZkNCMllXeDFaVHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9kbUZzZFdVdWNtVndiR0ZqWlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1Gc2RXVWdQU0IyWVd4MVpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBdWNtVndiR0ZqWlNndlhuUm9hWE1vUHpwY1hDNThKQ2t2TENBbkp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0xuSmxjR3hoWTJVb0wxNWNYQzVjWEM4dkxDQW5KeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdMbkpsY0d4aFkyVW9MMTVjWEM0a0x5d2dKeWNwTzF4dUlDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXViM0JqYjJSbEtDZHdkWE5vU1dRbkxDQjJZV3d1ZEhsd1pTd2dkbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQjBhR2x6TG1GalkyVndkQ2gyWVd3cE8xeHVJQ0FnSUgxY2JpQWdmU3hjYmx4dUlDQnpaWFIxY0VaMWJHeE5kWE4wWVdOb1pWQmhjbUZ0Y3pvZ1puVnVZM1JwYjI0b2MyVjRjSElzSUhCeWIyZHlZVzBzSUdsdWRtVnljMlVzSUc5dGFYUkZiWEIwZVNrZ2UxeHVJQ0FnSUd4bGRDQndZWEpoYlhNZ1BTQnpaWGh3Y2k1d1lYSmhiWE03WEc0Z0lDQWdkR2hwY3k1d2RYTm9VR0Z5WVcxektIQmhjbUZ0Y3lrN1hHNWNiaUFnSUNCMGFHbHpMbTl3WTI5a1pTZ25jSFZ6YUZCeWIyZHlZVzBuTENCd2NtOW5jbUZ0S1R0Y2JpQWdJQ0IwYUdsekxtOXdZMjlrWlNnbmNIVnphRkJ5YjJkeVlXMG5MQ0JwYm5abGNuTmxLVHRjYmx4dUlDQWdJR2xtSUNoelpYaHdjaTVvWVhOb0tTQjdYRzRnSUNBZ0lDQjBhR2x6TG1GalkyVndkQ2h6Wlhod2NpNW9ZWE5vS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdkR2hwY3k1dmNHTnZaR1VvSjJWdGNIUjVTR0Z6YUNjc0lHOXRhWFJGYlhCMGVTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhCaGNtRnRjenRjYmlBZ2ZTeGNibHh1SUNCaWJHOWphMUJoY21GdFNXNWtaWGc2SUdaMWJtTjBhVzl1S0c1aGJXVXBJSHRjYmlBZ0lDQm1iM0lnS0Z4dUlDQWdJQ0FnYkdWMElHUmxjSFJvSUQwZ01Dd2diR1Z1SUQwZ2RHaHBjeTV2Y0hScGIyNXpMbUpzYjJOclVHRnlZVzF6TG14bGJtZDBhRHRjYmlBZ0lDQWdJR1JsY0hSb0lEd2diR1Z1TzF4dUlDQWdJQ0FnWkdWd2RHZ3JLMXh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdiR1YwSUdKc2IyTnJVR0Z5WVcxeklEMGdkR2hwY3k1dmNIUnBiMjV6TG1Kc2IyTnJVR0Z5WVcxelcyUmxjSFJvWFN4Y2JpQWdJQ0FnSUNBZ2NHRnlZVzBnUFNCaWJHOWphMUJoY21GdGN5QW1KaUJwYm1SbGVFOW1LR0pzYjJOclVHRnlZVzF6TENCdVlXMWxLVHRjYmlBZ0lDQWdJR2xtSUNoaWJHOWphMUJoY21GdGN5QW1KaUJ3WVhKaGJTQStQU0F3S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCYlpHVndkR2dzSUhCaGNtRnRYVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JuMDdYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ3Y21WamIyMXdhV3hsS0dsdWNIVjBMQ0J2Y0hScGIyNXpMQ0JsYm5ZcElIdGNiaUFnYVdZZ0tGeHVJQ0FnSUdsdWNIVjBJRDA5SUc1MWJHd2dmSHhjYmlBZ0lDQW9kSGx3Wlc5bUlHbHVjSFYwSUNFOVBTQW5jM1J5YVc1bkp5QW1KaUJwYm5CMWRDNTBlWEJsSUNFOVBTQW5VSEp2WjNKaGJTY3BYRzRnSUNrZ2UxeHVJQ0FnSUhSb2NtOTNJRzVsZHlCRmVHTmxjSFJwYjI0b1hHNGdJQ0FnSUNBbldXOTFJRzExYzNRZ2NHRnpjeUJoSUhOMGNtbHVaeUJ2Y2lCSVlXNWtiR1ZpWVhKeklFRlRWQ0IwYnlCSVlXNWtiR1ZpWVhKekxuQnlaV052YlhCcGJHVXVJRmx2ZFNCd1lYTnpaV1FnSnlBclhHNGdJQ0FnSUNBZ0lHbHVjSFYwWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUc5d2RHbHZibk1nUFNCdmNIUnBiMjV6SUh4OElIdDlPMXh1SUNCcFppQW9JU2duWkdGMFlTY2dhVzRnYjNCMGFXOXVjeWtwSUh0Y2JpQWdJQ0J2Y0hScGIyNXpMbVJoZEdFZ1BTQjBjblZsTzF4dUlDQjlYRzRnSUdsbUlDaHZjSFJwYjI1ekxtTnZiWEJoZENrZ2UxeHVJQ0FnSUc5d2RHbHZibk11ZFhObFJHVndkR2h6SUQwZ2RISjFaVHRjYmlBZ2ZWeHVYRzRnSUd4bGRDQmhjM1FnUFNCbGJuWXVjR0Z5YzJVb2FXNXdkWFFzSUc5d2RHbHZibk1wTEZ4dUlDQWdJR1Z1ZG1seWIyNXRaVzUwSUQwZ2JtVjNJR1Z1ZGk1RGIyMXdhV3hsY2lncExtTnZiWEJwYkdVb1lYTjBMQ0J2Y0hScGIyNXpLVHRjYmlBZ2NtVjBkWEp1SUc1bGR5Qmxibll1U21GMllWTmpjbWx3ZEVOdmJYQnBiR1Z5S0NrdVkyOXRjR2xzWlNobGJuWnBjbTl1YldWdWRDd2diM0IwYVc5dWN5azdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCamIyMXdhV3hsS0dsdWNIVjBMQ0J2Y0hScGIyNXpJRDBnZTMwc0lHVnVkaWtnZTF4dUlDQnBaaUFvWEc0Z0lDQWdhVzV3ZFhRZ1BUMGdiblZzYkNCOGZGeHVJQ0FnSUNoMGVYQmxiMllnYVc1d2RYUWdJVDA5SUNkemRISnBibWNuSUNZbUlHbHVjSFYwTG5SNWNHVWdJVDA5SUNkUWNtOW5jbUZ0SnlsY2JpQWdLU0I3WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRVY0WTJWd2RHbHZiaWhjYmlBZ0lDQWdJQ2RaYjNVZ2JYVnpkQ0J3WVhOeklHRWdjM1J5YVc1bklHOXlJRWhoYm1Sc1pXSmhjbk1nUVZOVUlIUnZJRWhoYm1Sc1pXSmhjbk11WTI5dGNHbHNaUzRnV1c5MUlIQmhjM05sWkNBbklDdGNiaUFnSUNBZ0lDQWdhVzV3ZFhSY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ2IzQjBhVzl1Y3lBOUlHVjRkR1Z1WkNoN2ZTd2diM0IwYVc5dWN5azdYRzRnSUdsbUlDZ2hLQ2RrWVhSaEp5QnBiaUJ2Y0hScGIyNXpLU2tnZTF4dUlDQWdJRzl3ZEdsdmJuTXVaR0YwWVNBOUlIUnlkV1U3WEc0Z0lIMWNiaUFnYVdZZ0tHOXdkR2x2Ym5NdVkyOXRjR0YwS1NCN1hHNGdJQ0FnYjNCMGFXOXVjeTUxYzJWRVpYQjBhSE1nUFNCMGNuVmxPMXh1SUNCOVhHNWNiaUFnYkdWMElHTnZiWEJwYkdWa08xeHVYRzRnSUdaMWJtTjBhVzl1SUdOdmJYQnBiR1ZKYm5CMWRDZ3BJSHRjYmlBZ0lDQnNaWFFnWVhOMElEMGdaVzUyTG5CaGNuTmxLR2x1Y0hWMExDQnZjSFJwYjI1ektTeGNiaUFnSUNBZ0lHVnVkbWx5YjI1dFpXNTBJRDBnYm1WM0lHVnVkaTVEYjIxd2FXeGxjaWdwTG1OdmJYQnBiR1VvWVhOMExDQnZjSFJwYjI1ektTeGNiaUFnSUNBZ0lIUmxiWEJzWVhSbFUzQmxZeUE5SUc1bGR5Qmxibll1U21GMllWTmpjbWx3ZEVOdmJYQnBiR1Z5S0NrdVkyOXRjR2xzWlNoY2JpQWdJQ0FnSUNBZ1pXNTJhWEp2Ym0xbGJuUXNYRzRnSUNBZ0lDQWdJRzl3ZEdsdmJuTXNYRzRnSUNBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQ0FnZEhKMVpWeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCeVpYUjFjbTRnWlc1MkxuUmxiWEJzWVhSbEtIUmxiWEJzWVhSbFUzQmxZeWs3WEc0Z0lIMWNibHh1SUNBdkx5QlVaVzF3YkdGMFpTQnBjeUJ2Ym14NUlHTnZiWEJwYkdWa0lHOXVJR1pwY25OMElIVnpaU0JoYm1RZ1kyRmphR1ZrSUdGbWRHVnlJSFJvWVhRZ2NHOXBiblF1WEc0Z0lHWjFibU4wYVc5dUlISmxkQ2hqYjI1MFpYaDBMQ0JsZUdWalQzQjBhVzl1Y3lrZ2UxeHVJQ0FnSUdsbUlDZ2hZMjl0Y0dsc1pXUXBJSHRjYmlBZ0lDQWdJR052YlhCcGJHVmtJRDBnWTI5dGNHbHNaVWx1Y0hWMEtDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJqYjIxd2FXeGxaQzVqWVd4c0tIUm9hWE1zSUdOdmJuUmxlSFFzSUdWNFpXTlBjSFJwYjI1ektUdGNiaUFnZlZ4dUlDQnlaWFF1WDNObGRIVndJRDBnWm5WdVkzUnBiMjRvYzJWMGRYQlBjSFJwYjI1ektTQjdYRzRnSUNBZ2FXWWdLQ0ZqYjIxd2FXeGxaQ2tnZTF4dUlDQWdJQ0FnWTI5dGNHbHNaV1FnUFNCamIyMXdhV3hsU1c1d2RYUW9LVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdOdmJYQnBiR1ZrTGw5elpYUjFjQ2h6WlhSMWNFOXdkR2x2Ym5NcE8xeHVJQ0I5TzF4dUlDQnlaWFF1WDJOb2FXeGtJRDBnWm5WdVkzUnBiMjRvYVN3Z1pHRjBZU3dnWW14dlkydFFZWEpoYlhNc0lHUmxjSFJvY3lrZ2UxeHVJQ0FnSUdsbUlDZ2hZMjl0Y0dsc1pXUXBJSHRjYmlBZ0lDQWdJR052YlhCcGJHVmtJRDBnWTI5dGNHbHNaVWx1Y0hWMEtDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJqYjIxd2FXeGxaQzVmWTJocGJHUW9hU3dnWkdGMFlTd2dZbXh2WTJ0UVlYSmhiWE1zSUdSbGNIUm9jeWs3WEc0Z0lIMDdYRzRnSUhKbGRIVnliaUJ5WlhRN1hHNTlYRzVjYm1aMWJtTjBhVzl1SUdGeVowVnhkV0ZzY3loaExDQmlLU0I3WEc0Z0lHbG1JQ2hoSUQwOVBTQmlLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lIMWNibHh1SUNCcFppQW9hWE5CY25KaGVTaGhLU0FtSmlCcGMwRnljbUY1S0dJcElDWW1JR0V1YkdWdVozUm9JRDA5UFNCaUxteGxibWQwYUNrZ2UxeHVJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1lTNXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnYVdZZ0tDRmhjbWRGY1hWaGJITW9ZVnRwWFN3Z1lsdHBYU2twSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnZlZ4dWZWeHVYRzVtZFc1amRHbHZiaUIwY21GdWMyWnZjbTFNYVhSbGNtRnNWRzlRWVhSb0tITmxlSEJ5S1NCN1hHNGdJR2xtSUNnaGMyVjRjSEl1Y0dGMGFDNXdZWEowY3lrZ2UxeHVJQ0FnSUd4bGRDQnNhWFJsY21Gc0lEMGdjMlY0Y0hJdWNHRjBhRHRjYmlBZ0lDQXZMeUJEWVhOMGFXNW5JSFJ2SUhOMGNtbHVaeUJvWlhKbElIUnZJRzFoYTJVZ1ptRnNjMlVnWVc1a0lEQWdiR2wwWlhKaGJDQjJZV3gxWlhNZ2NHeGhlU0J1YVdObGJIa2dkMmwwYUNCMGFHVWdjbVZ6ZEZ4dUlDQWdJQzh2SUc5bUlIUm9aU0J6ZVhOMFpXMHVYRzRnSUNBZ2MyVjRjSEl1Y0dGMGFDQTlJSHRjYmlBZ0lDQWdJSFI1Y0dVNklDZFFZWFJvUlhod2NtVnpjMmx2Ymljc1hHNGdJQ0FnSUNCa1lYUmhPaUJtWVd4elpTeGNiaUFnSUNBZ0lHUmxjSFJvT2lBd0xGeHVJQ0FnSUNBZ2NHRnlkSE02SUZ0c2FYUmxjbUZzTG05eWFXZHBibUZzSUNzZ0p5ZGRMRnh1SUNBZ0lDQWdiM0pwWjJsdVlXdzZJR3hwZEdWeVlXd3ViM0pwWjJsdVlXd2dLeUFuSnl4Y2JpQWdJQ0FnSUd4dll6b2diR2wwWlhKaGJDNXNiMk5jYmlBZ0lDQjlPMXh1SUNCOVhHNTlYRzRpWFgwPVxuIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgaW50VG9DaGFyTWFwID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nLnNwbGl0KCcnKTtcblxuLyoqXG4gKiBFbmNvZGUgYW4gaW50ZWdlciBpbiB0aGUgcmFuZ2Ugb2YgMCB0byA2MyB0byBhIHNpbmdsZSBiYXNlIDY0IGRpZ2l0LlxuICovXG5leHBvcnRzLmVuY29kZSA9IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgaWYgKDAgPD0gbnVtYmVyICYmIG51bWJlciA8IGludFRvQ2hhck1hcC5sZW5ndGgpIHtcbiAgICByZXR1cm4gaW50VG9DaGFyTWFwW251bWJlcl07XG4gIH1cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk11c3QgYmUgYmV0d2VlbiAwIGFuZCA2MzogXCIgKyBudW1iZXIpO1xufTtcblxuLyoqXG4gKiBEZWNvZGUgYSBzaW5nbGUgYmFzZSA2NCBjaGFyYWN0ZXIgY29kZSBkaWdpdCB0byBhbiBpbnRlZ2VyLiBSZXR1cm5zIC0xIG9uXG4gKiBmYWlsdXJlLlxuICovXG5leHBvcnRzLmRlY29kZSA9IGZ1bmN0aW9uIChjaGFyQ29kZSkge1xuICB2YXIgYmlnQSA9IDY1OyAgICAgLy8gJ0EnXG4gIHZhciBiaWdaID0gOTA7ICAgICAvLyAnWidcblxuICB2YXIgbGl0dGxlQSA9IDk3OyAgLy8gJ2EnXG4gIHZhciBsaXR0bGVaID0gMTIyOyAvLyAneidcblxuICB2YXIgemVybyA9IDQ4OyAgICAgLy8gJzAnXG4gIHZhciBuaW5lID0gNTc7ICAgICAvLyAnOSdcblxuICB2YXIgcGx1cyA9IDQzOyAgICAgLy8gJysnXG4gIHZhciBzbGFzaCA9IDQ3OyAgICAvLyAnLydcblxuICB2YXIgbGl0dGxlT2Zmc2V0ID0gMjY7XG4gIHZhciBudW1iZXJPZmZzZXQgPSA1MjtcblxuICAvLyAwIC0gMjU6IEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaXG4gIGlmIChiaWdBIDw9IGNoYXJDb2RlICYmIGNoYXJDb2RlIDw9IGJpZ1opIHtcbiAgICByZXR1cm4gKGNoYXJDb2RlIC0gYmlnQSk7XG4gIH1cblxuICAvLyAyNiAtIDUxOiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5elxuICBpZiAobGl0dGxlQSA8PSBjaGFyQ29kZSAmJiBjaGFyQ29kZSA8PSBsaXR0bGVaKSB7XG4gICAgcmV0dXJuIChjaGFyQ29kZSAtIGxpdHRsZUEgKyBsaXR0bGVPZmZzZXQpO1xuICB9XG5cbiAgLy8gNTIgLSA2MTogMDEyMzQ1Njc4OVxuICBpZiAoemVybyA8PSBjaGFyQ29kZSAmJiBjaGFyQ29kZSA8PSBuaW5lKSB7XG4gICAgcmV0dXJuIChjaGFyQ29kZSAtIHplcm8gKyBudW1iZXJPZmZzZXQpO1xuICB9XG5cbiAgLy8gNjI6ICtcbiAgaWYgKGNoYXJDb2RlID09IHBsdXMpIHtcbiAgICByZXR1cm4gNjI7XG4gIH1cblxuICAvLyA2MzogL1xuICBpZiAoY2hhckNvZGUgPT0gc2xhc2gpIHtcbiAgICByZXR1cm4gNjM7XG4gIH1cblxuICAvLyBJbnZhbGlkIGJhc2U2NCBkaWdpdC5cbiAgcmV0dXJuIC0xO1xufTtcbiIsIi8qIC0qLSBNb2RlOiBqczsganMtaW5kZW50LWxldmVsOiAyOyAtKi0gKi9cbi8qXG4gKiBDb3B5cmlnaHQgMjAxMSBNb3ppbGxhIEZvdW5kYXRpb24gYW5kIGNvbnRyaWJ1dG9yc1xuICogTGljZW5zZWQgdW5kZXIgdGhlIE5ldyBCU0QgbGljZW5zZS4gU2VlIExJQ0VOU0Ugb3I6XG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlXG4gKlxuICogQmFzZWQgb24gdGhlIEJhc2UgNjQgVkxRIGltcGxlbWVudGF0aW9uIGluIENsb3N1cmUgQ29tcGlsZXI6XG4gKiBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nsb3N1cmUtY29tcGlsZXIvc291cmNlL2Jyb3dzZS90cnVuay9zcmMvY29tL2dvb2dsZS9kZWJ1Z2dpbmcvc291cmNlbWFwL0Jhc2U2NFZMUS5qYXZhXG4gKlxuICogQ29weXJpZ2h0IDIwMTEgVGhlIENsb3N1cmUgQ29tcGlsZXIgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dFxuICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZVxuICogbWV0OlxuICpcbiAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0XG4gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuXG4gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlXG4gKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZ1xuICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkXG4gKiAgICB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG4gKiAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzXG4gKiAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWRcbiAqICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi5cbiAqXG4gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTXG4gKiBcIkFTIElTXCIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UXG4gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1JcbiAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUXG4gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCxcbiAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1RcbiAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLFxuICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZXG4gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0VcbiAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKi9cblxudmFyIGJhc2U2NCA9IHJlcXVpcmUoJy4vYmFzZTY0Jyk7XG5cbi8vIEEgc2luZ2xlIGJhc2UgNjQgZGlnaXQgY2FuIGNvbnRhaW4gNiBiaXRzIG9mIGRhdGEuIEZvciB0aGUgYmFzZSA2NCB2YXJpYWJsZVxuLy8gbGVuZ3RoIHF1YW50aXRpZXMgd2UgdXNlIGluIHRoZSBzb3VyY2UgbWFwIHNwZWMsIHRoZSBmaXJzdCBiaXQgaXMgdGhlIHNpZ24sXG4vLyB0aGUgbmV4dCBmb3VyIGJpdHMgYXJlIHRoZSBhY3R1YWwgdmFsdWUsIGFuZCB0aGUgNnRoIGJpdCBpcyB0aGVcbi8vIGNvbnRpbnVhdGlvbiBiaXQuIFRoZSBjb250aW51YXRpb24gYml0IHRlbGxzIHVzIHdoZXRoZXIgdGhlcmUgYXJlIG1vcmVcbi8vIGRpZ2l0cyBpbiB0aGlzIHZhbHVlIGZvbGxvd2luZyB0aGlzIGRpZ2l0LlxuLy9cbi8vICAgQ29udGludWF0aW9uXG4vLyAgIHwgICAgU2lnblxuLy8gICB8ICAgIHxcbi8vICAgViAgICBWXG4vLyAgIDEwMTAxMVxuXG52YXIgVkxRX0JBU0VfU0hJRlQgPSA1O1xuXG4vLyBiaW5hcnk6IDEwMDAwMFxudmFyIFZMUV9CQVNFID0gMSA8PCBWTFFfQkFTRV9TSElGVDtcblxuLy8gYmluYXJ5OiAwMTExMTFcbnZhciBWTFFfQkFTRV9NQVNLID0gVkxRX0JBU0UgLSAxO1xuXG4vLyBiaW5hcnk6IDEwMDAwMFxudmFyIFZMUV9DT05USU5VQVRJT05fQklUID0gVkxRX0JBU0U7XG5cbi8qKlxuICogQ29udmVydHMgZnJvbSBhIHR3by1jb21wbGVtZW50IHZhbHVlIHRvIGEgdmFsdWUgd2hlcmUgdGhlIHNpZ24gYml0IGlzXG4gKiBwbGFjZWQgaW4gdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdC4gIEZvciBleGFtcGxlLCBhcyBkZWNpbWFsczpcbiAqICAgMSBiZWNvbWVzIDIgKDEwIGJpbmFyeSksIC0xIGJlY29tZXMgMyAoMTEgYmluYXJ5KVxuICogICAyIGJlY29tZXMgNCAoMTAwIGJpbmFyeSksIC0yIGJlY29tZXMgNSAoMTAxIGJpbmFyeSlcbiAqL1xuZnVuY3Rpb24gdG9WTFFTaWduZWQoYVZhbHVlKSB7XG4gIHJldHVybiBhVmFsdWUgPCAwXG4gICAgPyAoKC1hVmFsdWUpIDw8IDEpICsgMVxuICAgIDogKGFWYWx1ZSA8PCAxKSArIDA7XG59XG5cbi8qKlxuICogQ29udmVydHMgdG8gYSB0d28tY29tcGxlbWVudCB2YWx1ZSBmcm9tIGEgdmFsdWUgd2hlcmUgdGhlIHNpZ24gYml0IGlzXG4gKiBwbGFjZWQgaW4gdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdC4gIEZvciBleGFtcGxlLCBhcyBkZWNpbWFsczpcbiAqICAgMiAoMTAgYmluYXJ5KSBiZWNvbWVzIDEsIDMgKDExIGJpbmFyeSkgYmVjb21lcyAtMVxuICogICA0ICgxMDAgYmluYXJ5KSBiZWNvbWVzIDIsIDUgKDEwMSBiaW5hcnkpIGJlY29tZXMgLTJcbiAqL1xuZnVuY3Rpb24gZnJvbVZMUVNpZ25lZChhVmFsdWUpIHtcbiAgdmFyIGlzTmVnYXRpdmUgPSAoYVZhbHVlICYgMSkgPT09IDE7XG4gIHZhciBzaGlmdGVkID0gYVZhbHVlID4+IDE7XG4gIHJldHVybiBpc05lZ2F0aXZlXG4gICAgPyAtc2hpZnRlZFxuICAgIDogc2hpZnRlZDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIDY0IFZMUSBlbmNvZGVkIHZhbHVlLlxuICovXG5leHBvcnRzLmVuY29kZSA9IGZ1bmN0aW9uIGJhc2U2NFZMUV9lbmNvZGUoYVZhbHVlKSB7XG4gIHZhciBlbmNvZGVkID0gXCJcIjtcbiAgdmFyIGRpZ2l0O1xuXG4gIHZhciB2bHEgPSB0b1ZMUVNpZ25lZChhVmFsdWUpO1xuXG4gIGRvIHtcbiAgICBkaWdpdCA9IHZscSAmIFZMUV9CQVNFX01BU0s7XG4gICAgdmxxID4+Pj0gVkxRX0JBU0VfU0hJRlQ7XG4gICAgaWYgKHZscSA+IDApIHtcbiAgICAgIC8vIFRoZXJlIGFyZSBzdGlsbCBtb3JlIGRpZ2l0cyBpbiB0aGlzIHZhbHVlLCBzbyB3ZSBtdXN0IG1ha2Ugc3VyZSB0aGVcbiAgICAgIC8vIGNvbnRpbnVhdGlvbiBiaXQgaXMgbWFya2VkLlxuICAgICAgZGlnaXQgfD0gVkxRX0NPTlRJTlVBVElPTl9CSVQ7XG4gICAgfVxuICAgIGVuY29kZWQgKz0gYmFzZTY0LmVuY29kZShkaWdpdCk7XG4gIH0gd2hpbGUgKHZscSA+IDApO1xuXG4gIHJldHVybiBlbmNvZGVkO1xufTtcblxuLyoqXG4gKiBEZWNvZGVzIHRoZSBuZXh0IGJhc2UgNjQgVkxRIHZhbHVlIGZyb20gdGhlIGdpdmVuIHN0cmluZyBhbmQgcmV0dXJucyB0aGVcbiAqIHZhbHVlIGFuZCB0aGUgcmVzdCBvZiB0aGUgc3RyaW5nIHZpYSB0aGUgb3V0IHBhcmFtZXRlci5cbiAqL1xuZXhwb3J0cy5kZWNvZGUgPSBmdW5jdGlvbiBiYXNlNjRWTFFfZGVjb2RlKGFTdHIsIGFJbmRleCwgYU91dFBhcmFtKSB7XG4gIHZhciBzdHJMZW4gPSBhU3RyLmxlbmd0aDtcbiAgdmFyIHJlc3VsdCA9IDA7XG4gIHZhciBzaGlmdCA9IDA7XG4gIHZhciBjb250aW51YXRpb24sIGRpZ2l0O1xuXG4gIGRvIHtcbiAgICBpZiAoYUluZGV4ID49IHN0ckxlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgbW9yZSBkaWdpdHMgaW4gYmFzZSA2NCBWTFEgdmFsdWUuXCIpO1xuICAgIH1cblxuICAgIGRpZ2l0ID0gYmFzZTY0LmRlY29kZShhU3RyLmNoYXJDb2RlQXQoYUluZGV4KyspKTtcbiAgICBpZiAoZGlnaXQgPT09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGJhc2U2NCBkaWdpdDogXCIgKyBhU3RyLmNoYXJBdChhSW5kZXggLSAxKSk7XG4gICAgfVxuXG4gICAgY29udGludWF0aW9uID0gISEoZGlnaXQgJiBWTFFfQ09OVElOVUFUSU9OX0JJVCk7XG4gICAgZGlnaXQgJj0gVkxRX0JBU0VfTUFTSztcbiAgICByZXN1bHQgPSByZXN1bHQgKyAoZGlnaXQgPDwgc2hpZnQpO1xuICAgIHNoaWZ0ICs9IFZMUV9CQVNFX1NISUZUO1xuICB9IHdoaWxlIChjb250aW51YXRpb24pO1xuXG4gIGFPdXRQYXJhbS52YWx1ZSA9IGZyb21WTFFTaWduZWQocmVzdWx0KTtcbiAgYU91dFBhcmFtLnJlc3QgPSBhSW5kZXg7XG59O1xuIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG4vKipcbiAqIFRoaXMgaXMgYSBoZWxwZXIgZnVuY3Rpb24gZm9yIGdldHRpbmcgdmFsdWVzIGZyb20gcGFyYW1ldGVyL29wdGlvbnNcbiAqIG9iamVjdHMuXG4gKlxuICogQHBhcmFtIGFyZ3MgVGhlIG9iamVjdCB3ZSBhcmUgZXh0cmFjdGluZyB2YWx1ZXMgZnJvbVxuICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHdlIGFyZSBnZXR0aW5nLlxuICogQHBhcmFtIGRlZmF1bHRWYWx1ZSBBbiBvcHRpb25hbCB2YWx1ZSB0byByZXR1cm4gaWYgdGhlIHByb3BlcnR5IGlzIG1pc3NpbmdcbiAqIGZyb20gdGhlIG9iamVjdC4gSWYgdGhpcyBpcyBub3Qgc3BlY2lmaWVkIGFuZCB0aGUgcHJvcGVydHkgaXMgbWlzc2luZywgYW5cbiAqIGVycm9yIHdpbGwgYmUgdGhyb3duLlxuICovXG5mdW5jdGlvbiBnZXRBcmcoYUFyZ3MsIGFOYW1lLCBhRGVmYXVsdFZhbHVlKSB7XG4gIGlmIChhTmFtZSBpbiBhQXJncykge1xuICAgIHJldHVybiBhQXJnc1thTmFtZV07XG4gIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMykge1xuICAgIHJldHVybiBhRGVmYXVsdFZhbHVlO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcignXCInICsgYU5hbWUgKyAnXCIgaXMgYSByZXF1aXJlZCBhcmd1bWVudC4nKTtcbiAgfVxufVxuZXhwb3J0cy5nZXRBcmcgPSBnZXRBcmc7XG5cbnZhciB1cmxSZWdleHAgPSAvXig/OihbXFx3K1xcLS5dKyk6KT9cXC9cXC8oPzooXFx3KzpcXHcrKUApPyhbXFx3Li1dKikoPzo6KFxcZCspKT8oLiopJC87XG52YXIgZGF0YVVybFJlZ2V4cCA9IC9eZGF0YTouK1xcLC4rJC87XG5cbmZ1bmN0aW9uIHVybFBhcnNlKGFVcmwpIHtcbiAgdmFyIG1hdGNoID0gYVVybC5tYXRjaCh1cmxSZWdleHApO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBzY2hlbWU6IG1hdGNoWzFdLFxuICAgIGF1dGg6IG1hdGNoWzJdLFxuICAgIGhvc3Q6IG1hdGNoWzNdLFxuICAgIHBvcnQ6IG1hdGNoWzRdLFxuICAgIHBhdGg6IG1hdGNoWzVdXG4gIH07XG59XG5leHBvcnRzLnVybFBhcnNlID0gdXJsUGFyc2U7XG5cbmZ1bmN0aW9uIHVybEdlbmVyYXRlKGFQYXJzZWRVcmwpIHtcbiAgdmFyIHVybCA9ICcnO1xuICBpZiAoYVBhcnNlZFVybC5zY2hlbWUpIHtcbiAgICB1cmwgKz0gYVBhcnNlZFVybC5zY2hlbWUgKyAnOic7XG4gIH1cbiAgdXJsICs9ICcvLyc7XG4gIGlmIChhUGFyc2VkVXJsLmF1dGgpIHtcbiAgICB1cmwgKz0gYVBhcnNlZFVybC5hdXRoICsgJ0AnO1xuICB9XG4gIGlmIChhUGFyc2VkVXJsLmhvc3QpIHtcbiAgICB1cmwgKz0gYVBhcnNlZFVybC5ob3N0O1xuICB9XG4gIGlmIChhUGFyc2VkVXJsLnBvcnQpIHtcbiAgICB1cmwgKz0gXCI6XCIgKyBhUGFyc2VkVXJsLnBvcnRcbiAgfVxuICBpZiAoYVBhcnNlZFVybC5wYXRoKSB7XG4gICAgdXJsICs9IGFQYXJzZWRVcmwucGF0aDtcbiAgfVxuICByZXR1cm4gdXJsO1xufVxuZXhwb3J0cy51cmxHZW5lcmF0ZSA9IHVybEdlbmVyYXRlO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBwYXRoLCBvciB0aGUgcGF0aCBwb3J0aW9uIG9mIGEgVVJMOlxuICpcbiAqIC0gUmVwbGFjZXMgY29uc2VjdXRpdmUgc2xhc2hlcyB3aXRoIG9uZSBzbGFzaC5cbiAqIC0gUmVtb3ZlcyB1bm5lY2Vzc2FyeSAnLicgcGFydHMuXG4gKiAtIFJlbW92ZXMgdW5uZWNlc3NhcnkgJzxkaXI+Ly4uJyBwYXJ0cy5cbiAqXG4gKiBCYXNlZCBvbiBjb2RlIGluIHRoZSBOb2RlLmpzICdwYXRoJyBjb3JlIG1vZHVsZS5cbiAqXG4gKiBAcGFyYW0gYVBhdGggVGhlIHBhdGggb3IgdXJsIHRvIG5vcm1hbGl6ZS5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplKGFQYXRoKSB7XG4gIHZhciBwYXRoID0gYVBhdGg7XG4gIHZhciB1cmwgPSB1cmxQYXJzZShhUGF0aCk7XG4gIGlmICh1cmwpIHtcbiAgICBpZiAoIXVybC5wYXRoKSB7XG4gICAgICByZXR1cm4gYVBhdGg7XG4gICAgfVxuICAgIHBhdGggPSB1cmwucGF0aDtcbiAgfVxuICB2YXIgaXNBYnNvbHV0ZSA9IGV4cG9ydHMuaXNBYnNvbHV0ZShwYXRoKTtcblxuICB2YXIgcGFydHMgPSBwYXRoLnNwbGl0KC9cXC8rLyk7XG4gIGZvciAodmFyIHBhcnQsIHVwID0gMCwgaSA9IHBhcnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgcGFydCA9IHBhcnRzW2ldO1xuICAgIGlmIChwYXJ0ID09PSAnLicpIHtcbiAgICAgIHBhcnRzLnNwbGljZShpLCAxKTtcbiAgICB9IGVsc2UgaWYgKHBhcnQgPT09ICcuLicpIHtcbiAgICAgIHVwKys7XG4gICAgfSBlbHNlIGlmICh1cCA+IDApIHtcbiAgICAgIGlmIChwYXJ0ID09PSAnJykge1xuICAgICAgICAvLyBUaGUgZmlyc3QgcGFydCBpcyBibGFuayBpZiB0aGUgcGF0aCBpcyBhYnNvbHV0ZS4gVHJ5aW5nIHRvIGdvXG4gICAgICAgIC8vIGFib3ZlIHRoZSByb290IGlzIGEgbm8tb3AuIFRoZXJlZm9yZSB3ZSBjYW4gcmVtb3ZlIGFsbCAnLi4nIHBhcnRzXG4gICAgICAgIC8vIGRpcmVjdGx5IGFmdGVyIHRoZSByb290LlxuICAgICAgICBwYXJ0cy5zcGxpY2UoaSArIDEsIHVwKTtcbiAgICAgICAgdXAgPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFydHMuc3BsaWNlKGksIDIpO1xuICAgICAgICB1cC0tO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwYXRoID0gcGFydHMuam9pbignLycpO1xuXG4gIGlmIChwYXRoID09PSAnJykge1xuICAgIHBhdGggPSBpc0Fic29sdXRlID8gJy8nIDogJy4nO1xuICB9XG5cbiAgaWYgKHVybCkge1xuICAgIHVybC5wYXRoID0gcGF0aDtcbiAgICByZXR1cm4gdXJsR2VuZXJhdGUodXJsKTtcbiAgfVxuICByZXR1cm4gcGF0aDtcbn1cbmV4cG9ydHMubm9ybWFsaXplID0gbm9ybWFsaXplO1xuXG4vKipcbiAqIEpvaW5zIHR3byBwYXRocy9VUkxzLlxuICpcbiAqIEBwYXJhbSBhUm9vdCBUaGUgcm9vdCBwYXRoIG9yIFVSTC5cbiAqIEBwYXJhbSBhUGF0aCBUaGUgcGF0aCBvciBVUkwgdG8gYmUgam9pbmVkIHdpdGggdGhlIHJvb3QuXG4gKlxuICogLSBJZiBhUGF0aCBpcyBhIFVSTCBvciBhIGRhdGEgVVJJLCBhUGF0aCBpcyByZXR1cm5lZCwgdW5sZXNzIGFQYXRoIGlzIGFcbiAqICAgc2NoZW1lLXJlbGF0aXZlIFVSTDogVGhlbiB0aGUgc2NoZW1lIG9mIGFSb290LCBpZiBhbnksIGlzIHByZXBlbmRlZFxuICogICBmaXJzdC5cbiAqIC0gT3RoZXJ3aXNlIGFQYXRoIGlzIGEgcGF0aC4gSWYgYVJvb3QgaXMgYSBVUkwsIHRoZW4gaXRzIHBhdGggcG9ydGlvblxuICogICBpcyB1cGRhdGVkIHdpdGggdGhlIHJlc3VsdCBhbmQgYVJvb3QgaXMgcmV0dXJuZWQuIE90aGVyd2lzZSB0aGUgcmVzdWx0XG4gKiAgIGlzIHJldHVybmVkLlxuICogICAtIElmIGFQYXRoIGlzIGFic29sdXRlLCB0aGUgcmVzdWx0IGlzIGFQYXRoLlxuICogICAtIE90aGVyd2lzZSB0aGUgdHdvIHBhdGhzIGFyZSBqb2luZWQgd2l0aCBhIHNsYXNoLlxuICogLSBKb2luaW5nIGZvciBleGFtcGxlICdodHRwOi8vJyBhbmQgJ3d3dy5leGFtcGxlLmNvbScgaXMgYWxzbyBzdXBwb3J0ZWQuXG4gKi9cbmZ1bmN0aW9uIGpvaW4oYVJvb3QsIGFQYXRoKSB7XG4gIGlmIChhUm9vdCA9PT0gXCJcIikge1xuICAgIGFSb290ID0gXCIuXCI7XG4gIH1cbiAgaWYgKGFQYXRoID09PSBcIlwiKSB7XG4gICAgYVBhdGggPSBcIi5cIjtcbiAgfVxuICB2YXIgYVBhdGhVcmwgPSB1cmxQYXJzZShhUGF0aCk7XG4gIHZhciBhUm9vdFVybCA9IHVybFBhcnNlKGFSb290KTtcbiAgaWYgKGFSb290VXJsKSB7XG4gICAgYVJvb3QgPSBhUm9vdFVybC5wYXRoIHx8ICcvJztcbiAgfVxuXG4gIC8vIGBqb2luKGZvbywgJy8vd3d3LmV4YW1wbGUub3JnJylgXG4gIGlmIChhUGF0aFVybCAmJiAhYVBhdGhVcmwuc2NoZW1lKSB7XG4gICAgaWYgKGFSb290VXJsKSB7XG4gICAgICBhUGF0aFVybC5zY2hlbWUgPSBhUm9vdFVybC5zY2hlbWU7XG4gICAgfVxuICAgIHJldHVybiB1cmxHZW5lcmF0ZShhUGF0aFVybCk7XG4gIH1cblxuICBpZiAoYVBhdGhVcmwgfHwgYVBhdGgubWF0Y2goZGF0YVVybFJlZ2V4cCkpIHtcbiAgICByZXR1cm4gYVBhdGg7XG4gIH1cblxuICAvLyBgam9pbignaHR0cDovLycsICd3d3cuZXhhbXBsZS5jb20nKWBcbiAgaWYgKGFSb290VXJsICYmICFhUm9vdFVybC5ob3N0ICYmICFhUm9vdFVybC5wYXRoKSB7XG4gICAgYVJvb3RVcmwuaG9zdCA9IGFQYXRoO1xuICAgIHJldHVybiB1cmxHZW5lcmF0ZShhUm9vdFVybCk7XG4gIH1cblxuICB2YXIgam9pbmVkID0gYVBhdGguY2hhckF0KDApID09PSAnLydcbiAgICA/IGFQYXRoXG4gICAgOiBub3JtYWxpemUoYVJvb3QucmVwbGFjZSgvXFwvKyQvLCAnJykgKyAnLycgKyBhUGF0aCk7XG5cbiAgaWYgKGFSb290VXJsKSB7XG4gICAgYVJvb3RVcmwucGF0aCA9IGpvaW5lZDtcbiAgICByZXR1cm4gdXJsR2VuZXJhdGUoYVJvb3RVcmwpO1xuICB9XG4gIHJldHVybiBqb2luZWQ7XG59XG5leHBvcnRzLmpvaW4gPSBqb2luO1xuXG5leHBvcnRzLmlzQWJzb2x1dGUgPSBmdW5jdGlvbiAoYVBhdGgpIHtcbiAgcmV0dXJuIGFQYXRoLmNoYXJBdCgwKSA9PT0gJy8nIHx8IHVybFJlZ2V4cC50ZXN0KGFQYXRoKTtcbn07XG5cbi8qKlxuICogTWFrZSBhIHBhdGggcmVsYXRpdmUgdG8gYSBVUkwgb3IgYW5vdGhlciBwYXRoLlxuICpcbiAqIEBwYXJhbSBhUm9vdCBUaGUgcm9vdCBwYXRoIG9yIFVSTC5cbiAqIEBwYXJhbSBhUGF0aCBUaGUgcGF0aCBvciBVUkwgdG8gYmUgbWFkZSByZWxhdGl2ZSB0byBhUm9vdC5cbiAqL1xuZnVuY3Rpb24gcmVsYXRpdmUoYVJvb3QsIGFQYXRoKSB7XG4gIGlmIChhUm9vdCA9PT0gXCJcIikge1xuICAgIGFSb290ID0gXCIuXCI7XG4gIH1cblxuICBhUm9vdCA9IGFSb290LnJlcGxhY2UoL1xcLyQvLCAnJyk7XG5cbiAgLy8gSXQgaXMgcG9zc2libGUgZm9yIHRoZSBwYXRoIHRvIGJlIGFib3ZlIHRoZSByb290LiBJbiB0aGlzIGNhc2UsIHNpbXBseVxuICAvLyBjaGVja2luZyB3aGV0aGVyIHRoZSByb290IGlzIGEgcHJlZml4IG9mIHRoZSBwYXRoIHdvbid0IHdvcmsuIEluc3RlYWQsIHdlXG4gIC8vIG5lZWQgdG8gcmVtb3ZlIGNvbXBvbmVudHMgZnJvbSB0aGUgcm9vdCBvbmUgYnkgb25lLCB1bnRpbCBlaXRoZXIgd2UgZmluZFxuICAvLyBhIHByZWZpeCB0aGF0IGZpdHMsIG9yIHdlIHJ1biBvdXQgb2YgY29tcG9uZW50cyB0byByZW1vdmUuXG4gIHZhciBsZXZlbCA9IDA7XG4gIHdoaWxlIChhUGF0aC5pbmRleE9mKGFSb290ICsgJy8nKSAhPT0gMCkge1xuICAgIHZhciBpbmRleCA9IGFSb290Lmxhc3RJbmRleE9mKFwiL1wiKTtcbiAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICByZXR1cm4gYVBhdGg7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIG9ubHkgcGFydCBvZiB0aGUgcm9vdCB0aGF0IGlzIGxlZnQgaXMgdGhlIHNjaGVtZSAoaS5lLiBodHRwOi8vLFxuICAgIC8vIGZpbGU6Ly8vLCBldGMuKSwgb25lIG9yIG1vcmUgc2xhc2hlcyAoLyksIG9yIHNpbXBseSBub3RoaW5nIGF0IGFsbCwgd2VcbiAgICAvLyBoYXZlIGV4aGF1c3RlZCBhbGwgY29tcG9uZW50cywgc28gdGhlIHBhdGggaXMgbm90IHJlbGF0aXZlIHRvIHRoZSByb290LlxuICAgIGFSb290ID0gYVJvb3Quc2xpY2UoMCwgaW5kZXgpO1xuICAgIGlmIChhUm9vdC5tYXRjaCgvXihbXlxcL10rOlxcLyk/XFwvKiQvKSkge1xuICAgICAgcmV0dXJuIGFQYXRoO1xuICAgIH1cblxuICAgICsrbGV2ZWw7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgd2UgYWRkIGEgXCIuLi9cIiBmb3IgZWFjaCBjb21wb25lbnQgd2UgcmVtb3ZlZCBmcm9tIHRoZSByb290LlxuICByZXR1cm4gQXJyYXkobGV2ZWwgKyAxKS5qb2luKFwiLi4vXCIpICsgYVBhdGguc3Vic3RyKGFSb290Lmxlbmd0aCArIDEpO1xufVxuZXhwb3J0cy5yZWxhdGl2ZSA9IHJlbGF0aXZlO1xuXG52YXIgc3VwcG9ydHNOdWxsUHJvdG8gPSAoZnVuY3Rpb24gKCkge1xuICB2YXIgb2JqID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgcmV0dXJuICEoJ19fcHJvdG9fXycgaW4gb2JqKTtcbn0oKSk7XG5cbmZ1bmN0aW9uIGlkZW50aXR5IChzKSB7XG4gIHJldHVybiBzO1xufVxuXG4vKipcbiAqIEJlY2F1c2UgYmVoYXZpb3IgZ29lcyB3YWNreSB3aGVuIHlvdSBzZXQgYF9fcHJvdG9fX2Agb24gb2JqZWN0cywgd2VcbiAqIGhhdmUgdG8gcHJlZml4IGFsbCB0aGUgc3RyaW5ncyBpbiBvdXIgc2V0IHdpdGggYW4gYXJiaXRyYXJ5IGNoYXJhY3Rlci5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvc291cmNlLW1hcC9wdWxsLzMxIGFuZFxuICogaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvc291cmNlLW1hcC9pc3N1ZXMvMzBcbiAqXG4gKiBAcGFyYW0gU3RyaW5nIGFTdHJcbiAqL1xuZnVuY3Rpb24gdG9TZXRTdHJpbmcoYVN0cikge1xuICBpZiAoaXNQcm90b1N0cmluZyhhU3RyKSkge1xuICAgIHJldHVybiAnJCcgKyBhU3RyO1xuICB9XG5cbiAgcmV0dXJuIGFTdHI7XG59XG5leHBvcnRzLnRvU2V0U3RyaW5nID0gc3VwcG9ydHNOdWxsUHJvdG8gPyBpZGVudGl0eSA6IHRvU2V0U3RyaW5nO1xuXG5mdW5jdGlvbiBmcm9tU2V0U3RyaW5nKGFTdHIpIHtcbiAgaWYgKGlzUHJvdG9TdHJpbmcoYVN0cikpIHtcbiAgICByZXR1cm4gYVN0ci5zbGljZSgxKTtcbiAgfVxuXG4gIHJldHVybiBhU3RyO1xufVxuZXhwb3J0cy5mcm9tU2V0U3RyaW5nID0gc3VwcG9ydHNOdWxsUHJvdG8gPyBpZGVudGl0eSA6IGZyb21TZXRTdHJpbmc7XG5cbmZ1bmN0aW9uIGlzUHJvdG9TdHJpbmcocykge1xuICBpZiAoIXMpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgbGVuZ3RoID0gcy5sZW5ndGg7XG5cbiAgaWYgKGxlbmd0aCA8IDkgLyogXCJfX3Byb3RvX19cIi5sZW5ndGggKi8pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAocy5jaGFyQ29kZUF0KGxlbmd0aCAtIDEpICE9PSA5NSAgLyogJ18nICovIHx8XG4gICAgICBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gMikgIT09IDk1ICAvKiAnXycgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSAzKSAhPT0gMTExIC8qICdvJyAqLyB8fFxuICAgICAgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDQpICE9PSAxMTYgLyogJ3QnICovIHx8XG4gICAgICBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gNSkgIT09IDExMSAvKiAnbycgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSA2KSAhPT0gMTE0IC8qICdyJyAqLyB8fFxuICAgICAgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDcpICE9PSAxMTIgLyogJ3AnICovIHx8XG4gICAgICBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gOCkgIT09IDk1ICAvKiAnXycgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSA5KSAhPT0gOTUgIC8qICdfJyAqLykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZvciAodmFyIGkgPSBsZW5ndGggLSAxMDsgaSA+PSAwOyBpLS0pIHtcbiAgICBpZiAocy5jaGFyQ29kZUF0KGkpICE9PSAzNiAvKiAnJCcgKi8pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBDb21wYXJhdG9yIGJldHdlZW4gdHdvIG1hcHBpbmdzIHdoZXJlIHRoZSBvcmlnaW5hbCBwb3NpdGlvbnMgYXJlIGNvbXBhcmVkLlxuICpcbiAqIE9wdGlvbmFsbHkgcGFzcyBpbiBgdHJ1ZWAgYXMgYG9ubHlDb21wYXJlR2VuZXJhdGVkYCB0byBjb25zaWRlciB0d29cbiAqIG1hcHBpbmdzIHdpdGggdGhlIHNhbWUgb3JpZ2luYWwgc291cmNlL2xpbmUvY29sdW1uLCBidXQgZGlmZmVyZW50IGdlbmVyYXRlZFxuICogbGluZSBhbmQgY29sdW1uIHRoZSBzYW1lLiBVc2VmdWwgd2hlbiBzZWFyY2hpbmcgZm9yIGEgbWFwcGluZyB3aXRoIGFcbiAqIHN0dWJiZWQgb3V0IG1hcHBpbmcuXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zKG1hcHBpbmdBLCBtYXBwaW5nQiwgb25seUNvbXBhcmVPcmlnaW5hbCkge1xuICB2YXIgY21wID0gc3RyY21wKG1hcHBpbmdBLnNvdXJjZSwgbWFwcGluZ0Iuc291cmNlKTtcbiAgaWYgKGNtcCAhPT0gMCkge1xuICAgIHJldHVybiBjbXA7XG4gIH1cblxuICBjbXAgPSBtYXBwaW5nQS5vcmlnaW5hbExpbmUgLSBtYXBwaW5nQi5vcmlnaW5hbExpbmU7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxDb2x1bW4gLSBtYXBwaW5nQi5vcmlnaW5hbENvbHVtbjtcbiAgaWYgKGNtcCAhPT0gMCB8fCBvbmx5Q29tcGFyZU9yaWdpbmFsKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZENvbHVtbiAtIG1hcHBpbmdCLmdlbmVyYXRlZENvbHVtbjtcbiAgaWYgKGNtcCAhPT0gMCkge1xuICAgIHJldHVybiBjbXA7XG4gIH1cblxuICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRMaW5lIC0gbWFwcGluZ0IuZ2VuZXJhdGVkTGluZTtcbiAgaWYgKGNtcCAhPT0gMCkge1xuICAgIHJldHVybiBjbXA7XG4gIH1cblxuICByZXR1cm4gc3RyY21wKG1hcHBpbmdBLm5hbWUsIG1hcHBpbmdCLm5hbWUpO1xufVxuZXhwb3J0cy5jb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyA9IGNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zO1xuXG4vKipcbiAqIENvbXBhcmF0b3IgYmV0d2VlbiB0d28gbWFwcGluZ3Mgd2l0aCBkZWZsYXRlZCBzb3VyY2UgYW5kIG5hbWUgaW5kaWNlcyB3aGVyZVxuICogdGhlIGdlbmVyYXRlZCBwb3NpdGlvbnMgYXJlIGNvbXBhcmVkLlxuICpcbiAqIE9wdGlvbmFsbHkgcGFzcyBpbiBgdHJ1ZWAgYXMgYG9ubHlDb21wYXJlR2VuZXJhdGVkYCB0byBjb25zaWRlciB0d29cbiAqIG1hcHBpbmdzIHdpdGggdGhlIHNhbWUgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiwgYnV0IGRpZmZlcmVudFxuICogc291cmNlL25hbWUvb3JpZ2luYWwgbGluZSBhbmQgY29sdW1uIHRoZSBzYW1lLiBVc2VmdWwgd2hlbiBzZWFyY2hpbmcgZm9yIGFcbiAqIG1hcHBpbmcgd2l0aCBhIHN0dWJiZWQgb3V0IG1hcHBpbmcuXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkKG1hcHBpbmdBLCBtYXBwaW5nQiwgb25seUNvbXBhcmVHZW5lcmF0ZWQpIHtcbiAgdmFyIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZENvbHVtbiAtIG1hcHBpbmdCLmdlbmVyYXRlZENvbHVtbjtcbiAgaWYgKGNtcCAhPT0gMCB8fCBvbmx5Q29tcGFyZUdlbmVyYXRlZCkge1xuICAgIHJldHVybiBjbXA7XG4gIH1cblxuICBjbXAgPSBzdHJjbXAobWFwcGluZ0Euc291cmNlLCBtYXBwaW5nQi5zb3VyY2UpO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTtcbiAgaWYgKGNtcCAhPT0gMCkge1xuICAgIHJldHVybiBjbXA7XG4gIH1cblxuICBjbXAgPSBtYXBwaW5nQS5vcmlnaW5hbENvbHVtbiAtIG1hcHBpbmdCLm9yaWdpbmFsQ29sdW1uO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIHJldHVybiBzdHJjbXAobWFwcGluZ0EubmFtZSwgbWFwcGluZ0IubmFtZSk7XG59XG5leHBvcnRzLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkID0gY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQ7XG5cbmZ1bmN0aW9uIHN0cmNtcChhU3RyMSwgYVN0cjIpIHtcbiAgaWYgKGFTdHIxID09PSBhU3RyMikge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaWYgKGFTdHIxID09PSBudWxsKSB7XG4gICAgcmV0dXJuIDE7IC8vIGFTdHIyICE9PSBudWxsXG4gIH1cblxuICBpZiAoYVN0cjIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gLTE7IC8vIGFTdHIxICE9PSBudWxsXG4gIH1cblxuICBpZiAoYVN0cjEgPiBhU3RyMikge1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgcmV0dXJuIC0xO1xufVxuXG4vKipcbiAqIENvbXBhcmF0b3IgYmV0d2VlbiB0d28gbWFwcGluZ3Mgd2l0aCBpbmZsYXRlZCBzb3VyY2UgYW5kIG5hbWUgc3RyaW5ncyB3aGVyZVxuICogdGhlIGdlbmVyYXRlZCBwb3NpdGlvbnMgYXJlIGNvbXBhcmVkLlxuICovXG5mdW5jdGlvbiBjb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZChtYXBwaW5nQSwgbWFwcGluZ0IpIHtcbiAgdmFyIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZENvbHVtbiAtIG1hcHBpbmdCLmdlbmVyYXRlZENvbHVtbjtcbiAgaWYgKGNtcCAhPT0gMCkge1xuICAgIHJldHVybiBjbXA7XG4gIH1cblxuICBjbXAgPSBzdHJjbXAobWFwcGluZ0Euc291cmNlLCBtYXBwaW5nQi5zb3VyY2UpO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTtcbiAgaWYgKGNtcCAhPT0gMCkge1xuICAgIHJldHVybiBjbXA7XG4gIH1cblxuICBjbXAgPSBtYXBwaW5nQS5vcmlnaW5hbENvbHVtbiAtIG1hcHBpbmdCLm9yaWdpbmFsQ29sdW1uO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIHJldHVybiBzdHJjbXAobWFwcGluZ0EubmFtZSwgbWFwcGluZ0IubmFtZSk7XG59XG5leHBvcnRzLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0luZmxhdGVkID0gY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQ7XG5cbi8qKlxuICogU3RyaXAgYW55IEpTT04gWFNTSSBhdm9pZGFuY2UgcHJlZml4IGZyb20gdGhlIHN0cmluZyAoYXMgZG9jdW1lbnRlZFxuICogaW4gdGhlIHNvdXJjZSBtYXBzIHNwZWNpZmljYXRpb24pLCBhbmQgdGhlbiBwYXJzZSB0aGUgc3RyaW5nIGFzXG4gKiBKU09OLlxuICovXG5mdW5jdGlvbiBwYXJzZVNvdXJjZU1hcElucHV0KHN0cikge1xuICByZXR1cm4gSlNPTi5wYXJzZShzdHIucmVwbGFjZSgvXlxcKV19J1teXFxuXSpcXG4vLCAnJykpO1xufVxuZXhwb3J0cy5wYXJzZVNvdXJjZU1hcElucHV0ID0gcGFyc2VTb3VyY2VNYXBJbnB1dDtcblxuLyoqXG4gKiBDb21wdXRlIHRoZSBVUkwgb2YgYSBzb3VyY2UgZ2l2ZW4gdGhlIHRoZSBzb3VyY2Ugcm9vdCwgdGhlIHNvdXJjZSdzXG4gKiBVUkwsIGFuZCB0aGUgc291cmNlIG1hcCdzIFVSTC5cbiAqL1xuZnVuY3Rpb24gY29tcHV0ZVNvdXJjZVVSTChzb3VyY2VSb290LCBzb3VyY2VVUkwsIHNvdXJjZU1hcFVSTCkge1xuICBzb3VyY2VVUkwgPSBzb3VyY2VVUkwgfHwgJyc7XG5cbiAgaWYgKHNvdXJjZVJvb3QpIHtcbiAgICAvLyBUaGlzIGZvbGxvd3Mgd2hhdCBDaHJvbWUgZG9lcy5cbiAgICBpZiAoc291cmNlUm9vdFtzb3VyY2VSb290Lmxlbmd0aCAtIDFdICE9PSAnLycgJiYgc291cmNlVVJMWzBdICE9PSAnLycpIHtcbiAgICAgIHNvdXJjZVJvb3QgKz0gJy8nO1xuICAgIH1cbiAgICAvLyBUaGUgc3BlYyBzYXlzOlxuICAgIC8vICAgTGluZSA0OiBBbiBvcHRpb25hbCBzb3VyY2Ugcm9vdCwgdXNlZnVsIGZvciByZWxvY2F0aW5nIHNvdXJjZVxuICAgIC8vICAgZmlsZXMgb24gYSBzZXJ2ZXIgb3IgcmVtb3ZpbmcgcmVwZWF0ZWQgdmFsdWVzIGluIHRoZVxuICAgIC8vICAg4oCcc291cmNlc+KAnSBlbnRyeS4gIFRoaXMgdmFsdWUgaXMgcHJlcGVuZGVkIHRvIHRoZSBpbmRpdmlkdWFsXG4gICAgLy8gICBlbnRyaWVzIGluIHRoZSDigJxzb3VyY2XigJ0gZmllbGQuXG4gICAgc291cmNlVVJMID0gc291cmNlUm9vdCArIHNvdXJjZVVSTDtcbiAgfVxuXG4gIC8vIEhpc3RvcmljYWxseSwgU291cmNlTWFwQ29uc3VtZXIgZGlkIG5vdCB0YWtlIHRoZSBzb3VyY2VNYXBVUkwgYXNcbiAgLy8gYSBwYXJhbWV0ZXIuICBUaGlzIG1vZGUgaXMgc3RpbGwgc29tZXdoYXQgc3VwcG9ydGVkLCB3aGljaCBpcyB3aHlcbiAgLy8gdGhpcyBjb2RlIGJsb2NrIGlzIGNvbmRpdGlvbmFsLiAgSG93ZXZlciwgaXQncyBwcmVmZXJhYmxlIHRvIHBhc3NcbiAgLy8gdGhlIHNvdXJjZSBtYXAgVVJMIHRvIFNvdXJjZU1hcENvbnN1bWVyLCBzbyB0aGF0IHRoaXMgZnVuY3Rpb25cbiAgLy8gY2FuIGltcGxlbWVudCB0aGUgc291cmNlIFVSTCByZXNvbHV0aW9uIGFsZ29yaXRobSBhcyBvdXRsaW5lZCBpblxuICAvLyB0aGUgc3BlYy4gIFRoaXMgYmxvY2sgaXMgYmFzaWNhbGx5IHRoZSBlcXVpdmFsZW50IG9mOlxuICAvLyAgICBuZXcgVVJMKHNvdXJjZVVSTCwgc291cmNlTWFwVVJMKS50b1N0cmluZygpXG4gIC8vIC4uLiBleGNlcHQgaXQgYXZvaWRzIHVzaW5nIFVSTCwgd2hpY2ggd2Fzbid0IGF2YWlsYWJsZSBpbiB0aGVcbiAgLy8gb2xkZXIgcmVsZWFzZXMgb2Ygbm9kZSBzdGlsbCBzdXBwb3J0ZWQgYnkgdGhpcyBsaWJyYXJ5LlxuICAvL1xuICAvLyBUaGUgc3BlYyBzYXlzOlxuICAvLyAgIElmIHRoZSBzb3VyY2VzIGFyZSBub3QgYWJzb2x1dGUgVVJMcyBhZnRlciBwcmVwZW5kaW5nIG9mIHRoZVxuICAvLyAgIOKAnHNvdXJjZVJvb3TigJ0sIHRoZSBzb3VyY2VzIGFyZSByZXNvbHZlZCByZWxhdGl2ZSB0byB0aGVcbiAgLy8gICBTb3VyY2VNYXAgKGxpa2UgcmVzb2x2aW5nIHNjcmlwdCBzcmMgaW4gYSBodG1sIGRvY3VtZW50KS5cbiAgaWYgKHNvdXJjZU1hcFVSTCkge1xuICAgIHZhciBwYXJzZWQgPSB1cmxQYXJzZShzb3VyY2VNYXBVUkwpO1xuICAgIGlmICghcGFyc2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzb3VyY2VNYXBVUkwgY291bGQgbm90IGJlIHBhcnNlZFwiKTtcbiAgICB9XG4gICAgaWYgKHBhcnNlZC5wYXRoKSB7XG4gICAgICAvLyBTdHJpcCB0aGUgbGFzdCBwYXRoIGNvbXBvbmVudCwgYnV0IGtlZXAgdGhlIFwiL1wiLlxuICAgICAgdmFyIGluZGV4ID0gcGFyc2VkLnBhdGgubGFzdEluZGV4T2YoJy8nKTtcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgIHBhcnNlZC5wYXRoID0gcGFyc2VkLnBhdGguc3Vic3RyaW5nKDAsIGluZGV4ICsgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIHNvdXJjZVVSTCA9IGpvaW4odXJsR2VuZXJhdGUocGFyc2VkKSwgc291cmNlVVJMKTtcbiAgfVxuXG4gIHJldHVybiBub3JtYWxpemUoc291cmNlVVJMKTtcbn1cbmV4cG9ydHMuY29tcHV0ZVNvdXJjZVVSTCA9IGNvbXB1dGVTb3VyY2VVUkw7XG4iLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbnZhciB1dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG52YXIgaGFzID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBoYXNOYXRpdmVNYXAgPSB0eXBlb2YgTWFwICE9PSBcInVuZGVmaW5lZFwiO1xuXG4vKipcbiAqIEEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggaXMgYSBjb21iaW5hdGlvbiBvZiBhbiBhcnJheSBhbmQgYSBzZXQuIEFkZGluZyBhIG5ld1xuICogbWVtYmVyIGlzIE8oMSksIHRlc3RpbmcgZm9yIG1lbWJlcnNoaXAgaXMgTygxKSwgYW5kIGZpbmRpbmcgdGhlIGluZGV4IG9mIGFuXG4gKiBlbGVtZW50IGlzIE8oMSkuIFJlbW92aW5nIGVsZW1lbnRzIGZyb20gdGhlIHNldCBpcyBub3Qgc3VwcG9ydGVkLiBPbmx5XG4gKiBzdHJpbmdzIGFyZSBzdXBwb3J0ZWQgZm9yIG1lbWJlcnNoaXAuXG4gKi9cbmZ1bmN0aW9uIEFycmF5U2V0KCkge1xuICB0aGlzLl9hcnJheSA9IFtdO1xuICB0aGlzLl9zZXQgPSBoYXNOYXRpdmVNYXAgPyBuZXcgTWFwKCkgOiBPYmplY3QuY3JlYXRlKG51bGwpO1xufVxuXG4vKipcbiAqIFN0YXRpYyBtZXRob2QgZm9yIGNyZWF0aW5nIEFycmF5U2V0IGluc3RhbmNlcyBmcm9tIGFuIGV4aXN0aW5nIGFycmF5LlxuICovXG5BcnJheVNldC5mcm9tQXJyYXkgPSBmdW5jdGlvbiBBcnJheVNldF9mcm9tQXJyYXkoYUFycmF5LCBhQWxsb3dEdXBsaWNhdGVzKSB7XG4gIHZhciBzZXQgPSBuZXcgQXJyYXlTZXQoKTtcbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGFBcnJheS5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIHNldC5hZGQoYUFycmF5W2ldLCBhQWxsb3dEdXBsaWNhdGVzKTtcbiAgfVxuICByZXR1cm4gc2V0O1xufTtcblxuLyoqXG4gKiBSZXR1cm4gaG93IG1hbnkgdW5pcXVlIGl0ZW1zIGFyZSBpbiB0aGlzIEFycmF5U2V0LiBJZiBkdXBsaWNhdGVzIGhhdmUgYmVlblxuICogYWRkZWQsIHRoYW4gdGhvc2UgZG8gbm90IGNvdW50IHRvd2FyZHMgdGhlIHNpemUuXG4gKlxuICogQHJldHVybnMgTnVtYmVyXG4gKi9cbkFycmF5U2V0LnByb3RvdHlwZS5zaXplID0gZnVuY3Rpb24gQXJyYXlTZXRfc2l6ZSgpIHtcbiAgcmV0dXJuIGhhc05hdGl2ZU1hcCA/IHRoaXMuX3NldC5zaXplIDogT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcy5fc2V0KS5sZW5ndGg7XG59O1xuXG4vKipcbiAqIEFkZCB0aGUgZ2l2ZW4gc3RyaW5nIHRvIHRoaXMgc2V0LlxuICpcbiAqIEBwYXJhbSBTdHJpbmcgYVN0clxuICovXG5BcnJheVNldC5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gQXJyYXlTZXRfYWRkKGFTdHIsIGFBbGxvd0R1cGxpY2F0ZXMpIHtcbiAgdmFyIHNTdHIgPSBoYXNOYXRpdmVNYXAgPyBhU3RyIDogdXRpbC50b1NldFN0cmluZyhhU3RyKTtcbiAgdmFyIGlzRHVwbGljYXRlID0gaGFzTmF0aXZlTWFwID8gdGhpcy5oYXMoYVN0cikgOiBoYXMuY2FsbCh0aGlzLl9zZXQsIHNTdHIpO1xuICB2YXIgaWR4ID0gdGhpcy5fYXJyYXkubGVuZ3RoO1xuICBpZiAoIWlzRHVwbGljYXRlIHx8IGFBbGxvd0R1cGxpY2F0ZXMpIHtcbiAgICB0aGlzLl9hcnJheS5wdXNoKGFTdHIpO1xuICB9XG4gIGlmICghaXNEdXBsaWNhdGUpIHtcbiAgICBpZiAoaGFzTmF0aXZlTWFwKSB7XG4gICAgICB0aGlzLl9zZXQuc2V0KGFTdHIsIGlkeCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3NldFtzU3RyXSA9IGlkeDtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogSXMgdGhlIGdpdmVuIHN0cmluZyBhIG1lbWJlciBvZiB0aGlzIHNldD9cbiAqXG4gKiBAcGFyYW0gU3RyaW5nIGFTdHJcbiAqL1xuQXJyYXlTZXQucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uIEFycmF5U2V0X2hhcyhhU3RyKSB7XG4gIGlmIChoYXNOYXRpdmVNYXApIHtcbiAgICByZXR1cm4gdGhpcy5fc2V0LmhhcyhhU3RyKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgc1N0ciA9IHV0aWwudG9TZXRTdHJpbmcoYVN0cik7XG4gICAgcmV0dXJuIGhhcy5jYWxsKHRoaXMuX3NldCwgc1N0cik7XG4gIH1cbn07XG5cbi8qKlxuICogV2hhdCBpcyB0aGUgaW5kZXggb2YgdGhlIGdpdmVuIHN0cmluZyBpbiB0aGUgYXJyYXk/XG4gKlxuICogQHBhcmFtIFN0cmluZyBhU3RyXG4gKi9cbkFycmF5U2V0LnByb3RvdHlwZS5pbmRleE9mID0gZnVuY3Rpb24gQXJyYXlTZXRfaW5kZXhPZihhU3RyKSB7XG4gIGlmIChoYXNOYXRpdmVNYXApIHtcbiAgICB2YXIgaWR4ID0gdGhpcy5fc2V0LmdldChhU3RyKTtcbiAgICBpZiAoaWR4ID49IDApIHtcbiAgICAgICAgcmV0dXJuIGlkeDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIHNTdHIgPSB1dGlsLnRvU2V0U3RyaW5nKGFTdHIpO1xuICAgIGlmIChoYXMuY2FsbCh0aGlzLl9zZXQsIHNTdHIpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2V0W3NTdHJdO1xuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcignXCInICsgYVN0ciArICdcIiBpcyBub3QgaW4gdGhlIHNldC4nKTtcbn07XG5cbi8qKlxuICogV2hhdCBpcyB0aGUgZWxlbWVudCBhdCB0aGUgZ2l2ZW4gaW5kZXg/XG4gKlxuICogQHBhcmFtIE51bWJlciBhSWR4XG4gKi9cbkFycmF5U2V0LnByb3RvdHlwZS5hdCA9IGZ1bmN0aW9uIEFycmF5U2V0X2F0KGFJZHgpIHtcbiAgaWYgKGFJZHggPj0gMCAmJiBhSWR4IDwgdGhpcy5fYXJyYXkubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FycmF5W2FJZHhdO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcignTm8gZWxlbWVudCBpbmRleGVkIGJ5ICcgKyBhSWR4KTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYXJyYXkgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzZXQgKHdoaWNoIGhhcyB0aGUgcHJvcGVyIGluZGljZXNcbiAqIGluZGljYXRlZCBieSBpbmRleE9mKS4gTm90ZSB0aGF0IHRoaXMgaXMgYSBjb3B5IG9mIHRoZSBpbnRlcm5hbCBhcnJheSB1c2VkXG4gKiBmb3Igc3RvcmluZyB0aGUgbWVtYmVycyBzbyB0aGF0IG5vIG9uZSBjYW4gbWVzcyB3aXRoIGludGVybmFsIHN0YXRlLlxuICovXG5BcnJheVNldC5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uIEFycmF5U2V0X3RvQXJyYXkoKSB7XG4gIHJldHVybiB0aGlzLl9hcnJheS5zbGljZSgpO1xufTtcblxuZXhwb3J0cy5BcnJheVNldCA9IEFycmF5U2V0O1xuIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDE0IE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xuXG4vKipcbiAqIERldGVybWluZSB3aGV0aGVyIG1hcHBpbmdCIGlzIGFmdGVyIG1hcHBpbmdBIHdpdGggcmVzcGVjdCB0byBnZW5lcmF0ZWRcbiAqIHBvc2l0aW9uLlxuICovXG5mdW5jdGlvbiBnZW5lcmF0ZWRQb3NpdGlvbkFmdGVyKG1hcHBpbmdBLCBtYXBwaW5nQikge1xuICAvLyBPcHRpbWl6ZWQgZm9yIG1vc3QgY29tbW9uIGNhc2VcbiAgdmFyIGxpbmVBID0gbWFwcGluZ0EuZ2VuZXJhdGVkTGluZTtcbiAgdmFyIGxpbmVCID0gbWFwcGluZ0IuZ2VuZXJhdGVkTGluZTtcbiAgdmFyIGNvbHVtbkEgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW47XG4gIHZhciBjb2x1bW5CID0gbWFwcGluZ0IuZ2VuZXJhdGVkQ29sdW1uO1xuICByZXR1cm4gbGluZUIgPiBsaW5lQSB8fCBsaW5lQiA9PSBsaW5lQSAmJiBjb2x1bW5CID49IGNvbHVtbkEgfHxcbiAgICAgICAgIHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQobWFwcGluZ0EsIG1hcHBpbmdCKSA8PSAwO1xufVxuXG4vKipcbiAqIEEgZGF0YSBzdHJ1Y3R1cmUgdG8gcHJvdmlkZSBhIHNvcnRlZCB2aWV3IG9mIGFjY3VtdWxhdGVkIG1hcHBpbmdzIGluIGFcbiAqIHBlcmZvcm1hbmNlIGNvbnNjaW91cyBtYW5uZXIuIEl0IHRyYWRlcyBhIG5lZ2xpYmFibGUgb3ZlcmhlYWQgaW4gZ2VuZXJhbFxuICogY2FzZSBmb3IgYSBsYXJnZSBzcGVlZHVwIGluIGNhc2Ugb2YgbWFwcGluZ3MgYmVpbmcgYWRkZWQgaW4gb3JkZXIuXG4gKi9cbmZ1bmN0aW9uIE1hcHBpbmdMaXN0KCkge1xuICB0aGlzLl9hcnJheSA9IFtdO1xuICB0aGlzLl9zb3J0ZWQgPSB0cnVlO1xuICAvLyBTZXJ2ZXMgYXMgaW5maW11bVxuICB0aGlzLl9sYXN0ID0ge2dlbmVyYXRlZExpbmU6IC0xLCBnZW5lcmF0ZWRDb2x1bW46IDB9O1xufVxuXG4vKipcbiAqIEl0ZXJhdGUgdGhyb3VnaCBpbnRlcm5hbCBpdGVtcy4gVGhpcyBtZXRob2QgdGFrZXMgdGhlIHNhbWUgYXJndW1lbnRzIHRoYXRcbiAqIGBBcnJheS5wcm90b3R5cGUuZm9yRWFjaGAgdGFrZXMuXG4gKlxuICogTk9URTogVGhlIG9yZGVyIG9mIHRoZSBtYXBwaW5ncyBpcyBOT1QgZ3VhcmFudGVlZC5cbiAqL1xuTWFwcGluZ0xpc3QucHJvdG90eXBlLnVuc29ydGVkRm9yRWFjaCA9XG4gIGZ1bmN0aW9uIE1hcHBpbmdMaXN0X2ZvckVhY2goYUNhbGxiYWNrLCBhVGhpc0FyZykge1xuICAgIHRoaXMuX2FycmF5LmZvckVhY2goYUNhbGxiYWNrLCBhVGhpc0FyZyk7XG4gIH07XG5cbi8qKlxuICogQWRkIHRoZSBnaXZlbiBzb3VyY2UgbWFwcGluZy5cbiAqXG4gKiBAcGFyYW0gT2JqZWN0IGFNYXBwaW5nXG4gKi9cbk1hcHBpbmdMaXN0LnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiBNYXBwaW5nTGlzdF9hZGQoYU1hcHBpbmcpIHtcbiAgaWYgKGdlbmVyYXRlZFBvc2l0aW9uQWZ0ZXIodGhpcy5fbGFzdCwgYU1hcHBpbmcpKSB7XG4gICAgdGhpcy5fbGFzdCA9IGFNYXBwaW5nO1xuICAgIHRoaXMuX2FycmF5LnB1c2goYU1hcHBpbmcpO1xuICB9IGVsc2Uge1xuICAgIHRoaXMuX3NvcnRlZCA9IGZhbHNlO1xuICAgIHRoaXMuX2FycmF5LnB1c2goYU1hcHBpbmcpO1xuICB9XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGZsYXQsIHNvcnRlZCBhcnJheSBvZiBtYXBwaW5ncy4gVGhlIG1hcHBpbmdzIGFyZSBzb3J0ZWQgYnlcbiAqIGdlbmVyYXRlZCBwb3NpdGlvbi5cbiAqXG4gKiBXQVJOSU5HOiBUaGlzIG1ldGhvZCByZXR1cm5zIGludGVybmFsIGRhdGEgd2l0aG91dCBjb3B5aW5nLCBmb3JcbiAqIHBlcmZvcm1hbmNlLiBUaGUgcmV0dXJuIHZhbHVlIG11c3QgTk9UIGJlIG11dGF0ZWQsIGFuZCBzaG91bGQgYmUgdHJlYXRlZCBhc1xuICogYW4gaW1tdXRhYmxlIGJvcnJvdy4gSWYgeW91IHdhbnQgdG8gdGFrZSBvd25lcnNoaXAsIHlvdSBtdXN0IG1ha2UgeW91ciBvd25cbiAqIGNvcHkuXG4gKi9cbk1hcHBpbmdMaXN0LnByb3RvdHlwZS50b0FycmF5ID0gZnVuY3Rpb24gTWFwcGluZ0xpc3RfdG9BcnJheSgpIHtcbiAgaWYgKCF0aGlzLl9zb3J0ZWQpIHtcbiAgICB0aGlzLl9hcnJheS5zb3J0KHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQpO1xuICAgIHRoaXMuX3NvcnRlZCA9IHRydWU7XG4gIH1cbiAgcmV0dXJuIHRoaXMuX2FycmF5O1xufTtcblxuZXhwb3J0cy5NYXBwaW5nTGlzdCA9IE1hcHBpbmdMaXN0O1xuIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgYmFzZTY0VkxRID0gcmVxdWlyZSgnLi9iYXNlNjQtdmxxJyk7XG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIEFycmF5U2V0ID0gcmVxdWlyZSgnLi9hcnJheS1zZXQnKS5BcnJheVNldDtcbnZhciBNYXBwaW5nTGlzdCA9IHJlcXVpcmUoJy4vbWFwcGluZy1saXN0JykuTWFwcGluZ0xpc3Q7XG5cbi8qKlxuICogQW4gaW5zdGFuY2Ugb2YgdGhlIFNvdXJjZU1hcEdlbmVyYXRvciByZXByZXNlbnRzIGEgc291cmNlIG1hcCB3aGljaCBpc1xuICogYmVpbmcgYnVpbHQgaW5jcmVtZW50YWxseS4gWW91IG1heSBwYXNzIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmdcbiAqIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGZpbGU6IFRoZSBmaWxlbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS5cbiAqICAgLSBzb3VyY2VSb290OiBBIHJvb3QgZm9yIGFsbCByZWxhdGl2ZSBVUkxzIGluIHRoaXMgc291cmNlIG1hcC5cbiAqL1xuZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yKGFBcmdzKSB7XG4gIGlmICghYUFyZ3MpIHtcbiAgICBhQXJncyA9IHt9O1xuICB9XG4gIHRoaXMuX2ZpbGUgPSB1dGlsLmdldEFyZyhhQXJncywgJ2ZpbGUnLCBudWxsKTtcbiAgdGhpcy5fc291cmNlUm9vdCA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlUm9vdCcsIG51bGwpO1xuICB0aGlzLl9za2lwVmFsaWRhdGlvbiA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc2tpcFZhbGlkYXRpb24nLCBmYWxzZSk7XG4gIHRoaXMuX3NvdXJjZXMgPSBuZXcgQXJyYXlTZXQoKTtcbiAgdGhpcy5fbmFtZXMgPSBuZXcgQXJyYXlTZXQoKTtcbiAgdGhpcy5fbWFwcGluZ3MgPSBuZXcgTWFwcGluZ0xpc3QoKTtcbiAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gbnVsbDtcbn1cblxuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBTb3VyY2VNYXBHZW5lcmF0b3IgYmFzZWQgb24gYSBTb3VyY2VNYXBDb25zdW1lclxuICpcbiAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIFNvdXJjZU1hcC5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLmZyb21Tb3VyY2VNYXAgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBHZW5lcmF0b3JfZnJvbVNvdXJjZU1hcChhU291cmNlTWFwQ29uc3VtZXIpIHtcbiAgICB2YXIgc291cmNlUm9vdCA9IGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VSb290O1xuICAgIHZhciBnZW5lcmF0b3IgPSBuZXcgU291cmNlTWFwR2VuZXJhdG9yKHtcbiAgICAgIGZpbGU6IGFTb3VyY2VNYXBDb25zdW1lci5maWxlLFxuICAgICAgc291cmNlUm9vdDogc291cmNlUm9vdFxuICAgIH0pO1xuICAgIGFTb3VyY2VNYXBDb25zdW1lci5lYWNoTWFwcGluZyhmdW5jdGlvbiAobWFwcGluZykge1xuICAgICAgdmFyIG5ld01hcHBpbmcgPSB7XG4gICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgIGxpbmU6IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSxcbiAgICAgICAgICBjb2x1bW46IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSAhPSBudWxsKSB7XG4gICAgICAgIG5ld01hcHBpbmcuc291cmNlID0gbWFwcGluZy5zb3VyY2U7XG4gICAgICAgIGlmIChzb3VyY2VSb290ICE9IG51bGwpIHtcbiAgICAgICAgICBuZXdNYXBwaW5nLnNvdXJjZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgbmV3TWFwcGluZy5zb3VyY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgbmV3TWFwcGluZy5vcmlnaW5hbCA9IHtcbiAgICAgICAgICBsaW5lOiBtYXBwaW5nLm9yaWdpbmFsTGluZSxcbiAgICAgICAgICBjb2x1bW46IG1hcHBpbmcub3JpZ2luYWxDb2x1bW5cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAobWFwcGluZy5uYW1lICE9IG51bGwpIHtcbiAgICAgICAgICBuZXdNYXBwaW5nLm5hbWUgPSBtYXBwaW5nLm5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZ2VuZXJhdG9yLmFkZE1hcHBpbmcobmV3TWFwcGluZyk7XG4gICAgfSk7XG4gICAgYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZXMuZm9yRWFjaChmdW5jdGlvbiAoc291cmNlRmlsZSkge1xuICAgICAgdmFyIHNvdXJjZVJlbGF0aXZlID0gc291cmNlRmlsZTtcbiAgICAgIGlmIChzb3VyY2VSb290ICE9PSBudWxsKSB7XG4gICAgICAgIHNvdXJjZVJlbGF0aXZlID0gdXRpbC5yZWxhdGl2ZShzb3VyY2VSb290LCBzb3VyY2VGaWxlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFnZW5lcmF0b3IuX3NvdXJjZXMuaGFzKHNvdXJjZVJlbGF0aXZlKSkge1xuICAgICAgICBnZW5lcmF0b3IuX3NvdXJjZXMuYWRkKHNvdXJjZVJlbGF0aXZlKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGNvbnRlbnQgPSBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlQ29udGVudEZvcihzb3VyY2VGaWxlKTtcbiAgICAgIGlmIChjb250ZW50ICE9IG51bGwpIHtcbiAgICAgICAgZ2VuZXJhdG9yLnNldFNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgY29udGVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGdlbmVyYXRvcjtcbiAgfTtcblxuLyoqXG4gKiBBZGQgYSBzaW5nbGUgbWFwcGluZyBmcm9tIG9yaWdpbmFsIHNvdXJjZSBsaW5lIGFuZCBjb2x1bW4gdG8gdGhlIGdlbmVyYXRlZFxuICogc291cmNlJ3MgbGluZSBhbmQgY29sdW1uIGZvciB0aGlzIHNvdXJjZSBtYXAgYmVpbmcgY3JlYXRlZC4gVGhlIG1hcHBpbmdcbiAqIG9iamVjdCBzaG91bGQgaGF2ZSB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGdlbmVyYXRlZDogQW4gb2JqZWN0IHdpdGggdGhlIGdlbmVyYXRlZCBsaW5lIGFuZCBjb2x1bW4gcG9zaXRpb25zLlxuICogICAtIG9yaWdpbmFsOiBBbiBvYmplY3Qgd2l0aCB0aGUgb3JpZ2luYWwgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucy5cbiAqICAgLSBzb3VyY2U6IFRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZSAocmVsYXRpdmUgdG8gdGhlIHNvdXJjZVJvb3QpLlxuICogICAtIG5hbWU6IEFuIG9wdGlvbmFsIG9yaWdpbmFsIHRva2VuIG5hbWUgZm9yIHRoaXMgbWFwcGluZy5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5hZGRNYXBwaW5nID1cbiAgZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yX2FkZE1hcHBpbmcoYUFyZ3MpIHtcbiAgICB2YXIgZ2VuZXJhdGVkID0gdXRpbC5nZXRBcmcoYUFyZ3MsICdnZW5lcmF0ZWQnKTtcbiAgICB2YXIgb3JpZ2luYWwgPSB1dGlsLmdldEFyZyhhQXJncywgJ29yaWdpbmFsJywgbnVsbCk7XG4gICAgdmFyIHNvdXJjZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJywgbnVsbCk7XG4gICAgdmFyIG5hbWUgPSB1dGlsLmdldEFyZyhhQXJncywgJ25hbWUnLCBudWxsKTtcblxuICAgIGlmICghdGhpcy5fc2tpcFZhbGlkYXRpb24pIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRlTWFwcGluZyhnZW5lcmF0ZWQsIG9yaWdpbmFsLCBzb3VyY2UsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChzb3VyY2UgIT0gbnVsbCkge1xuICAgICAgc291cmNlID0gU3RyaW5nKHNvdXJjZSk7XG4gICAgICBpZiAoIXRoaXMuX3NvdXJjZXMuaGFzKHNvdXJjZSkpIHtcbiAgICAgICAgdGhpcy5fc291cmNlcy5hZGQoc291cmNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobmFtZSAhPSBudWxsKSB7XG4gICAgICBuYW1lID0gU3RyaW5nKG5hbWUpO1xuICAgICAgaWYgKCF0aGlzLl9uYW1lcy5oYXMobmFtZSkpIHtcbiAgICAgICAgdGhpcy5fbmFtZXMuYWRkKG5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX21hcHBpbmdzLmFkZCh7XG4gICAgICBnZW5lcmF0ZWRMaW5lOiBnZW5lcmF0ZWQubGluZSxcbiAgICAgIGdlbmVyYXRlZENvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbixcbiAgICAgIG9yaWdpbmFsTGluZTogb3JpZ2luYWwgIT0gbnVsbCAmJiBvcmlnaW5hbC5saW5lLFxuICAgICAgb3JpZ2luYWxDb2x1bW46IG9yaWdpbmFsICE9IG51bGwgJiYgb3JpZ2luYWwuY29sdW1uLFxuICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICBuYW1lOiBuYW1lXG4gICAgfSk7XG4gIH07XG5cbi8qKlxuICogU2V0IHRoZSBzb3VyY2UgY29udGVudCBmb3IgYSBzb3VyY2UgZmlsZS5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5zZXRTb3VyY2VDb250ZW50ID1cbiAgZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yX3NldFNvdXJjZUNvbnRlbnQoYVNvdXJjZUZpbGUsIGFTb3VyY2VDb250ZW50KSB7XG4gICAgdmFyIHNvdXJjZSA9IGFTb3VyY2VGaWxlO1xuICAgIGlmICh0aGlzLl9zb3VyY2VSb290ICE9IG51bGwpIHtcbiAgICAgIHNvdXJjZSA9IHV0aWwucmVsYXRpdmUodGhpcy5fc291cmNlUm9vdCwgc291cmNlKTtcbiAgICB9XG5cbiAgICBpZiAoYVNvdXJjZUNvbnRlbnQgIT0gbnVsbCkge1xuICAgICAgLy8gQWRkIHRoZSBzb3VyY2UgY29udGVudCB0byB0aGUgX3NvdXJjZXNDb250ZW50cyBtYXAuXG4gICAgICAvLyBDcmVhdGUgYSBuZXcgX3NvdXJjZXNDb250ZW50cyBtYXAgaWYgdGhlIHByb3BlcnR5IGlzIG51bGwuXG4gICAgICBpZiAoIXRoaXMuX3NvdXJjZXNDb250ZW50cykge1xuICAgICAgICB0aGlzLl9zb3VyY2VzQ29udGVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgfVxuICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzW3V0aWwudG9TZXRTdHJpbmcoc291cmNlKV0gPSBhU291cmNlQ29udGVudDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3NvdXJjZXNDb250ZW50cykge1xuICAgICAgLy8gUmVtb3ZlIHRoZSBzb3VyY2UgZmlsZSBmcm9tIHRoZSBfc291cmNlc0NvbnRlbnRzIG1hcC5cbiAgICAgIC8vIElmIHRoZSBfc291cmNlc0NvbnRlbnRzIG1hcCBpcyBlbXB0eSwgc2V0IHRoZSBwcm9wZXJ0eSB0byBudWxsLlxuICAgICAgZGVsZXRlIHRoaXMuX3NvdXJjZXNDb250ZW50c1t1dGlsLnRvU2V0U3RyaW5nKHNvdXJjZSldO1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuX3NvdXJjZXNDb250ZW50cykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuX3NvdXJjZXNDb250ZW50cyA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIEFwcGxpZXMgdGhlIG1hcHBpbmdzIG9mIGEgc3ViLXNvdXJjZS1tYXAgZm9yIGEgc3BlY2lmaWMgc291cmNlIGZpbGUgdG8gdGhlXG4gKiBzb3VyY2UgbWFwIGJlaW5nIGdlbmVyYXRlZC4gRWFjaCBtYXBwaW5nIHRvIHRoZSBzdXBwbGllZCBzb3VyY2UgZmlsZSBpc1xuICogcmV3cml0dGVuIHVzaW5nIHRoZSBzdXBwbGllZCBzb3VyY2UgbWFwLiBOb3RlOiBUaGUgcmVzb2x1dGlvbiBmb3IgdGhlXG4gKiByZXN1bHRpbmcgbWFwcGluZ3MgaXMgdGhlIG1pbmltaXVtIG9mIHRoaXMgbWFwIGFuZCB0aGUgc3VwcGxpZWQgbWFwLlxuICpcbiAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIHNvdXJjZSBtYXAgdG8gYmUgYXBwbGllZC5cbiAqIEBwYXJhbSBhU291cmNlRmlsZSBPcHRpb25hbC4gVGhlIGZpbGVuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZS5cbiAqICAgICAgICBJZiBvbWl0dGVkLCBTb3VyY2VNYXBDb25zdW1lcidzIGZpbGUgcHJvcGVydHkgd2lsbCBiZSB1c2VkLlxuICogQHBhcmFtIGFTb3VyY2VNYXBQYXRoIE9wdGlvbmFsLiBUaGUgZGlybmFtZSBvZiB0aGUgcGF0aCB0byB0aGUgc291cmNlIG1hcFxuICogICAgICAgIHRvIGJlIGFwcGxpZWQuIElmIHJlbGF0aXZlLCBpdCBpcyByZWxhdGl2ZSB0byB0aGUgU291cmNlTWFwQ29uc3VtZXIuXG4gKiAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgbmVlZGVkIHdoZW4gdGhlIHR3byBzb3VyY2UgbWFwcyBhcmVuJ3QgaW4gdGhlIHNhbWVcbiAqICAgICAgICBkaXJlY3RvcnksIGFuZCB0aGUgc291cmNlIG1hcCB0byBiZSBhcHBsaWVkIGNvbnRhaW5zIHJlbGF0aXZlIHNvdXJjZVxuICogICAgICAgIHBhdGhzLiBJZiBzbywgdGhvc2UgcmVsYXRpdmUgc291cmNlIHBhdGhzIG5lZWQgdG8gYmUgcmV3cml0dGVuXG4gKiAgICAgICAgcmVsYXRpdmUgdG8gdGhlIFNvdXJjZU1hcEdlbmVyYXRvci5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5hcHBseVNvdXJjZU1hcCA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl9hcHBseVNvdXJjZU1hcChhU291cmNlTWFwQ29uc3VtZXIsIGFTb3VyY2VGaWxlLCBhU291cmNlTWFwUGF0aCkge1xuICAgIHZhciBzb3VyY2VGaWxlID0gYVNvdXJjZUZpbGU7XG4gICAgLy8gSWYgYVNvdXJjZUZpbGUgaXMgb21pdHRlZCwgd2Ugd2lsbCB1c2UgdGhlIGZpbGUgcHJvcGVydHkgb2YgdGhlIFNvdXJjZU1hcFxuICAgIGlmIChhU291cmNlRmlsZSA9PSBudWxsKSB7XG4gICAgICBpZiAoYVNvdXJjZU1hcENvbnN1bWVyLmZpbGUgPT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ1NvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUuYXBwbHlTb3VyY2VNYXAgcmVxdWlyZXMgZWl0aGVyIGFuIGV4cGxpY2l0IHNvdXJjZSBmaWxlLCAnICtcbiAgICAgICAgICAnb3IgdGhlIHNvdXJjZSBtYXBcXCdzIFwiZmlsZVwiIHByb3BlcnR5LiBCb3RoIHdlcmUgb21pdHRlZC4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBzb3VyY2VGaWxlID0gYVNvdXJjZU1hcENvbnN1bWVyLmZpbGU7XG4gICAgfVxuICAgIHZhciBzb3VyY2VSb290ID0gdGhpcy5fc291cmNlUm9vdDtcbiAgICAvLyBNYWtlIFwic291cmNlRmlsZVwiIHJlbGF0aXZlIGlmIGFuIGFic29sdXRlIFVybCBpcyBwYXNzZWQuXG4gICAgaWYgKHNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgc291cmNlRmlsZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc291cmNlRmlsZSk7XG4gICAgfVxuICAgIC8vIEFwcGx5aW5nIHRoZSBTb3VyY2VNYXAgY2FuIGFkZCBhbmQgcmVtb3ZlIGl0ZW1zIGZyb20gdGhlIHNvdXJjZXMgYW5kXG4gICAgLy8gdGhlIG5hbWVzIGFycmF5LlxuICAgIHZhciBuZXdTb3VyY2VzID0gbmV3IEFycmF5U2V0KCk7XG4gICAgdmFyIG5ld05hbWVzID0gbmV3IEFycmF5U2V0KCk7XG5cbiAgICAvLyBGaW5kIG1hcHBpbmdzIGZvciB0aGUgXCJzb3VyY2VGaWxlXCJcbiAgICB0aGlzLl9tYXBwaW5ncy51bnNvcnRlZEZvckVhY2goZnVuY3Rpb24gKG1hcHBpbmcpIHtcbiAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSA9PT0gc291cmNlRmlsZSAmJiBtYXBwaW5nLm9yaWdpbmFsTGluZSAhPSBudWxsKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIGl0IGNhbiBiZSBtYXBwZWQgYnkgdGhlIHNvdXJjZSBtYXAsIHRoZW4gdXBkYXRlIHRoZSBtYXBwaW5nLlxuICAgICAgICB2YXIgb3JpZ2luYWwgPSBhU291cmNlTWFwQ29uc3VtZXIub3JpZ2luYWxQb3NpdGlvbkZvcih7XG4gICAgICAgICAgbGluZTogbWFwcGluZy5vcmlnaW5hbExpbmUsXG4gICAgICAgICAgY29sdW1uOiBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAob3JpZ2luYWwuc291cmNlICE9IG51bGwpIHtcbiAgICAgICAgICAvLyBDb3B5IG1hcHBpbmdcbiAgICAgICAgICBtYXBwaW5nLnNvdXJjZSA9IG9yaWdpbmFsLnNvdXJjZTtcbiAgICAgICAgICBpZiAoYVNvdXJjZU1hcFBhdGggIT0gbnVsbCkge1xuICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSB1dGlsLmpvaW4oYVNvdXJjZU1hcFBhdGgsIG1hcHBpbmcuc291cmNlKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICAgICAgICBtYXBwaW5nLnNvdXJjZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgbWFwcGluZy5zb3VyY2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsTGluZSA9IG9yaWdpbmFsLmxpbmU7XG4gICAgICAgICAgbWFwcGluZy5vcmlnaW5hbENvbHVtbiA9IG9yaWdpbmFsLmNvbHVtbjtcbiAgICAgICAgICBpZiAob3JpZ2luYWwubmFtZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBtYXBwaW5nLm5hbWUgPSBvcmlnaW5hbC5uYW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgc291cmNlID0gbWFwcGluZy5zb3VyY2U7XG4gICAgICBpZiAoc291cmNlICE9IG51bGwgJiYgIW5ld1NvdXJjZXMuaGFzKHNvdXJjZSkpIHtcbiAgICAgICAgbmV3U291cmNlcy5hZGQoc291cmNlKTtcbiAgICAgIH1cblxuICAgICAgdmFyIG5hbWUgPSBtYXBwaW5nLm5hbWU7XG4gICAgICBpZiAobmFtZSAhPSBudWxsICYmICFuZXdOYW1lcy5oYXMobmFtZSkpIHtcbiAgICAgICAgbmV3TmFtZXMuYWRkKG5hbWUpO1xuICAgICAgfVxuXG4gICAgfSwgdGhpcyk7XG4gICAgdGhpcy5fc291cmNlcyA9IG5ld1NvdXJjZXM7XG4gICAgdGhpcy5fbmFtZXMgPSBuZXdOYW1lcztcblxuICAgIC8vIENvcHkgc291cmNlc0NvbnRlbnRzIG9mIGFwcGxpZWQgbWFwLlxuICAgIGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VzLmZvckVhY2goZnVuY3Rpb24gKHNvdXJjZUZpbGUpIHtcbiAgICAgIHZhciBjb250ZW50ID0gYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZUNvbnRlbnRGb3Ioc291cmNlRmlsZSk7XG4gICAgICBpZiAoY29udGVudCAhPSBudWxsKSB7XG4gICAgICAgIGlmIChhU291cmNlTWFwUGF0aCAhPSBudWxsKSB7XG4gICAgICAgICAgc291cmNlRmlsZSA9IHV0aWwuam9pbihhU291cmNlTWFwUGF0aCwgc291cmNlRmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgICAgIHNvdXJjZUZpbGUgPSB1dGlsLnJlbGF0aXZlKHNvdXJjZVJvb3QsIHNvdXJjZUZpbGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U291cmNlQ29udGVudChzb3VyY2VGaWxlLCBjb250ZW50KTtcbiAgICAgIH1cbiAgICB9LCB0aGlzKTtcbiAgfTtcblxuLyoqXG4gKiBBIG1hcHBpbmcgY2FuIGhhdmUgb25lIG9mIHRoZSB0aHJlZSBsZXZlbHMgb2YgZGF0YTpcbiAqXG4gKiAgIDEuIEp1c3QgdGhlIGdlbmVyYXRlZCBwb3NpdGlvbi5cbiAqICAgMi4gVGhlIEdlbmVyYXRlZCBwb3NpdGlvbiwgb3JpZ2luYWwgcG9zaXRpb24sIGFuZCBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIDMuIEdlbmVyYXRlZCBhbmQgb3JpZ2luYWwgcG9zaXRpb24sIG9yaWdpbmFsIHNvdXJjZSwgYXMgd2VsbCBhcyBhIG5hbWVcbiAqICAgICAgdG9rZW4uXG4gKlxuICogVG8gbWFpbnRhaW4gY29uc2lzdGVuY3ksIHdlIHZhbGlkYXRlIHRoYXQgYW55IG5ldyBtYXBwaW5nIGJlaW5nIGFkZGVkIGZhbGxzXG4gKiBpbiB0byBvbmUgb2YgdGhlc2UgY2F0ZWdvcmllcy5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fdmFsaWRhdGVNYXBwaW5nID1cbiAgZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yX3ZhbGlkYXRlTWFwcGluZyhhR2VuZXJhdGVkLCBhT3JpZ2luYWwsIGFTb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYU5hbWUpIHtcbiAgICAvLyBXaGVuIGFPcmlnaW5hbCBpcyB0cnV0aHkgYnV0IGhhcyBlbXB0eSB2YWx1ZXMgZm9yIC5saW5lIGFuZCAuY29sdW1uLFxuICAgIC8vIGl0IGlzIG1vc3QgbGlrZWx5IGEgcHJvZ3JhbW1lciBlcnJvci4gSW4gdGhpcyBjYXNlIHdlIHRocm93IGEgdmVyeVxuICAgIC8vIHNwZWNpZmljIGVycm9yIG1lc3NhZ2UgdG8gdHJ5IHRvIGd1aWRlIHRoZW0gdGhlIHJpZ2h0IHdheS5cbiAgICAvLyBGb3IgZXhhbXBsZTogaHR0cHM6Ly9naXRodWIuY29tL1BvbHltZXIvcG9seW1lci1idW5kbGVyL3B1bGwvNTE5XG4gICAgaWYgKGFPcmlnaW5hbCAmJiB0eXBlb2YgYU9yaWdpbmFsLmxpbmUgIT09ICdudW1iZXInICYmIHR5cGVvZiBhT3JpZ2luYWwuY29sdW1uICE9PSAnbnVtYmVyJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnb3JpZ2luYWwubGluZSBhbmQgb3JpZ2luYWwuY29sdW1uIGFyZSBub3QgbnVtYmVycyAtLSB5b3UgcHJvYmFibHkgbWVhbnQgdG8gb21pdCAnICtcbiAgICAgICAgICAgICd0aGUgb3JpZ2luYWwgbWFwcGluZyBlbnRpcmVseSBhbmQgb25seSBtYXAgdGhlIGdlbmVyYXRlZCBwb3NpdGlvbi4gSWYgc28sIHBhc3MgJyArXG4gICAgICAgICAgICAnbnVsbCBmb3IgdGhlIG9yaWdpbmFsIG1hcHBpbmcgaW5zdGVhZCBvZiBhbiBvYmplY3Qgd2l0aCBlbXB0eSBvciBudWxsIHZhbHVlcy4nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGFHZW5lcmF0ZWQgJiYgJ2xpbmUnIGluIGFHZW5lcmF0ZWQgJiYgJ2NvbHVtbicgaW4gYUdlbmVyYXRlZFxuICAgICAgICAmJiBhR2VuZXJhdGVkLmxpbmUgPiAwICYmIGFHZW5lcmF0ZWQuY29sdW1uID49IDBcbiAgICAgICAgJiYgIWFPcmlnaW5hbCAmJiAhYVNvdXJjZSAmJiAhYU5hbWUpIHtcbiAgICAgIC8vIENhc2UgMS5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZWxzZSBpZiAoYUdlbmVyYXRlZCAmJiAnbGluZScgaW4gYUdlbmVyYXRlZCAmJiAnY29sdW1uJyBpbiBhR2VuZXJhdGVkXG4gICAgICAgICAgICAgJiYgYU9yaWdpbmFsICYmICdsaW5lJyBpbiBhT3JpZ2luYWwgJiYgJ2NvbHVtbicgaW4gYU9yaWdpbmFsXG4gICAgICAgICAgICAgJiYgYUdlbmVyYXRlZC5saW5lID4gMCAmJiBhR2VuZXJhdGVkLmNvbHVtbiA+PSAwXG4gICAgICAgICAgICAgJiYgYU9yaWdpbmFsLmxpbmUgPiAwICYmIGFPcmlnaW5hbC5jb2x1bW4gPj0gMFxuICAgICAgICAgICAgICYmIGFTb3VyY2UpIHtcbiAgICAgIC8vIENhc2VzIDIgYW5kIDMuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1hcHBpbmc6ICcgKyBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGdlbmVyYXRlZDogYUdlbmVyYXRlZCxcbiAgICAgICAgc291cmNlOiBhU291cmNlLFxuICAgICAgICBvcmlnaW5hbDogYU9yaWdpbmFsLFxuICAgICAgICBuYW1lOiBhTmFtZVxuICAgICAgfSkpO1xuICAgIH1cbiAgfTtcblxuLyoqXG4gKiBTZXJpYWxpemUgdGhlIGFjY3VtdWxhdGVkIG1hcHBpbmdzIGluIHRvIHRoZSBzdHJlYW0gb2YgYmFzZSA2NCBWTFFzXG4gKiBzcGVjaWZpZWQgYnkgdGhlIHNvdXJjZSBtYXAgZm9ybWF0LlxuICovXG5Tb3VyY2VNYXBHZW5lcmF0b3IucHJvdG90eXBlLl9zZXJpYWxpemVNYXBwaW5ncyA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl9zZXJpYWxpemVNYXBwaW5ncygpIHtcbiAgICB2YXIgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSAwO1xuICAgIHZhciBwcmV2aW91c0dlbmVyYXRlZExpbmUgPSAxO1xuICAgIHZhciBwcmV2aW91c09yaWdpbmFsQ29sdW1uID0gMDtcbiAgICB2YXIgcHJldmlvdXNPcmlnaW5hbExpbmUgPSAwO1xuICAgIHZhciBwcmV2aW91c05hbWUgPSAwO1xuICAgIHZhciBwcmV2aW91c1NvdXJjZSA9IDA7XG4gICAgdmFyIHJlc3VsdCA9ICcnO1xuICAgIHZhciBuZXh0O1xuICAgIHZhciBtYXBwaW5nO1xuICAgIHZhciBuYW1lSWR4O1xuICAgIHZhciBzb3VyY2VJZHg7XG5cbiAgICB2YXIgbWFwcGluZ3MgPSB0aGlzLl9tYXBwaW5ncy50b0FycmF5KCk7XG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IG1hcHBpbmdzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBtYXBwaW5nID0gbWFwcGluZ3NbaV07XG4gICAgICBuZXh0ID0gJydcblxuICAgICAgaWYgKG1hcHBpbmcuZ2VuZXJhdGVkTGluZSAhPT0gcHJldmlvdXNHZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgIHByZXZpb3VzR2VuZXJhdGVkQ29sdW1uID0gMDtcbiAgICAgICAgd2hpbGUgKG1hcHBpbmcuZ2VuZXJhdGVkTGluZSAhPT0gcHJldmlvdXNHZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgICAgbmV4dCArPSAnOyc7XG4gICAgICAgICAgcHJldmlvdXNHZW5lcmF0ZWRMaW5lKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICBpZiAoIXV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQobWFwcGluZywgbWFwcGluZ3NbaSAtIDFdKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIG5leHQgKz0gJywnO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLmdlbmVyYXRlZENvbHVtblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBwcmV2aW91c0dlbmVyYXRlZENvbHVtbik7XG4gICAgICBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uO1xuXG4gICAgICBpZiAobWFwcGluZy5zb3VyY2UgIT0gbnVsbCkge1xuICAgICAgICBzb3VyY2VJZHggPSB0aGlzLl9zb3VyY2VzLmluZGV4T2YobWFwcGluZy5zb3VyY2UpO1xuICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUoc291cmNlSWR4IC0gcHJldmlvdXNTb3VyY2UpO1xuICAgICAgICBwcmV2aW91c1NvdXJjZSA9IHNvdXJjZUlkeDtcblxuICAgICAgICAvLyBsaW5lcyBhcmUgc3RvcmVkIDAtYmFzZWQgaW4gU291cmNlTWFwIHNwZWMgdmVyc2lvbiAzXG4gICAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLm9yaWdpbmFsTGluZSAtIDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBwcmV2aW91c09yaWdpbmFsTGluZSk7XG4gICAgICAgIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gbWFwcGluZy5vcmlnaW5hbExpbmUgLSAxO1xuXG4gICAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLm9yaWdpbmFsQ29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gcHJldmlvdXNPcmlnaW5hbENvbHVtbik7XG4gICAgICAgIHByZXZpb3VzT3JpZ2luYWxDb2x1bW4gPSBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uO1xuXG4gICAgICAgIGlmIChtYXBwaW5nLm5hbWUgIT0gbnVsbCkge1xuICAgICAgICAgIG5hbWVJZHggPSB0aGlzLl9uYW1lcy5pbmRleE9mKG1hcHBpbmcubmFtZSk7XG4gICAgICAgICAgbmV4dCArPSBiYXNlNjRWTFEuZW5jb2RlKG5hbWVJZHggLSBwcmV2aW91c05hbWUpO1xuICAgICAgICAgIHByZXZpb3VzTmFtZSA9IG5hbWVJZHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmVzdWx0ICs9IG5leHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fZ2VuZXJhdGVTb3VyY2VzQ29udGVudCA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl9nZW5lcmF0ZVNvdXJjZXNDb250ZW50KGFTb3VyY2VzLCBhU291cmNlUm9vdCkge1xuICAgIHJldHVybiBhU291cmNlcy5tYXAoZnVuY3Rpb24gKHNvdXJjZSkge1xuICAgICAgaWYgKCF0aGlzLl9zb3VyY2VzQ29udGVudHMpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoYVNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgICBzb3VyY2UgPSB1dGlsLnJlbGF0aXZlKGFTb3VyY2VSb290LCBzb3VyY2UpO1xuICAgICAgfVxuICAgICAgdmFyIGtleSA9IHV0aWwudG9TZXRTdHJpbmcoc291cmNlKTtcbiAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5fc291cmNlc0NvbnRlbnRzLCBrZXkpXG4gICAgICAgID8gdGhpcy5fc291cmNlc0NvbnRlbnRzW2tleV1cbiAgICAgICAgOiBudWxsO1xuICAgIH0sIHRoaXMpO1xuICB9O1xuXG4vKipcbiAqIEV4dGVybmFsaXplIHRoZSBzb3VyY2UgbWFwLlxuICovXG5Tb3VyY2VNYXBHZW5lcmF0b3IucHJvdG90eXBlLnRvSlNPTiA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl90b0pTT04oKSB7XG4gICAgdmFyIG1hcCA9IHtcbiAgICAgIHZlcnNpb246IHRoaXMuX3ZlcnNpb24sXG4gICAgICBzb3VyY2VzOiB0aGlzLl9zb3VyY2VzLnRvQXJyYXkoKSxcbiAgICAgIG5hbWVzOiB0aGlzLl9uYW1lcy50b0FycmF5KCksXG4gICAgICBtYXBwaW5nczogdGhpcy5fc2VyaWFsaXplTWFwcGluZ3MoKVxuICAgIH07XG4gICAgaWYgKHRoaXMuX2ZpbGUgIT0gbnVsbCkge1xuICAgICAgbWFwLmZpbGUgPSB0aGlzLl9maWxlO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICBtYXAuc291cmNlUm9vdCA9IHRoaXMuX3NvdXJjZVJvb3Q7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zb3VyY2VzQ29udGVudHMpIHtcbiAgICAgIG1hcC5zb3VyY2VzQ29udGVudCA9IHRoaXMuX2dlbmVyYXRlU291cmNlc0NvbnRlbnQobWFwLnNvdXJjZXMsIG1hcC5zb3VyY2VSb290KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFwO1xuICB9O1xuXG4vKipcbiAqIFJlbmRlciB0aGUgc291cmNlIG1hcCBiZWluZyBnZW5lcmF0ZWQgdG8gYSBzdHJpbmcuXG4gKi9cblNvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUudG9TdHJpbmcgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBHZW5lcmF0b3JfdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMudG9KU09OKCkpO1xuICB9O1xuXG5leHBvcnRzLlNvdXJjZU1hcEdlbmVyYXRvciA9IFNvdXJjZU1hcEdlbmVyYXRvcjtcbiIsIi8qIC0qLSBNb2RlOiBqczsganMtaW5kZW50LWxldmVsOiAyOyAtKi0gKi9cbi8qXG4gKiBDb3B5cmlnaHQgMjAxMSBNb3ppbGxhIEZvdW5kYXRpb24gYW5kIGNvbnRyaWJ1dG9yc1xuICogTGljZW5zZWQgdW5kZXIgdGhlIE5ldyBCU0QgbGljZW5zZS4gU2VlIExJQ0VOU0Ugb3I6XG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlXG4gKi9cblxuZXhwb3J0cy5HUkVBVEVTVF9MT1dFUl9CT1VORCA9IDE7XG5leHBvcnRzLkxFQVNUX1VQUEVSX0JPVU5EID0gMjtcblxuLyoqXG4gKiBSZWN1cnNpdmUgaW1wbGVtZW50YXRpb24gb2YgYmluYXJ5IHNlYXJjaC5cbiAqXG4gKiBAcGFyYW0gYUxvdyBJbmRpY2VzIGhlcmUgYW5kIGxvd2VyIGRvIG5vdCBjb250YWluIHRoZSBuZWVkbGUuXG4gKiBAcGFyYW0gYUhpZ2ggSW5kaWNlcyBoZXJlIGFuZCBoaWdoZXIgZG8gbm90IGNvbnRhaW4gdGhlIG5lZWRsZS5cbiAqIEBwYXJhbSBhTmVlZGxlIFRoZSBlbGVtZW50IGJlaW5nIHNlYXJjaGVkIGZvci5cbiAqIEBwYXJhbSBhSGF5c3RhY2sgVGhlIG5vbi1lbXB0eSBhcnJheSBiZWluZyBzZWFyY2hlZC5cbiAqIEBwYXJhbSBhQ29tcGFyZSBGdW5jdGlvbiB3aGljaCB0YWtlcyB0d28gZWxlbWVudHMgYW5kIHJldHVybnMgLTEsIDAsIG9yIDEuXG4gKiBAcGFyYW0gYUJpYXMgRWl0aGVyICdiaW5hcnlTZWFyY2guR1JFQVRFU1RfTE9XRVJfQk9VTkQnIG9yXG4gKiAgICAgJ2JpbmFyeVNlYXJjaC5MRUFTVF9VUFBFUl9CT1VORCcuIFNwZWNpZmllcyB3aGV0aGVyIHRvIHJldHVybiB0aGVcbiAqICAgICBjbG9zZXN0IGVsZW1lbnQgdGhhdCBpcyBzbWFsbGVyIHRoYW4gb3IgZ3JlYXRlciB0aGFuIHRoZSBvbmUgd2UgYXJlXG4gKiAgICAgc2VhcmNoaW5nIGZvciwgcmVzcGVjdGl2ZWx5LCBpZiB0aGUgZXhhY3QgZWxlbWVudCBjYW5ub3QgYmUgZm91bmQuXG4gKi9cbmZ1bmN0aW9uIHJlY3Vyc2l2ZVNlYXJjaChhTG93LCBhSGlnaCwgYU5lZWRsZSwgYUhheXN0YWNrLCBhQ29tcGFyZSwgYUJpYXMpIHtcbiAgLy8gVGhpcyBmdW5jdGlvbiB0ZXJtaW5hdGVzIHdoZW4gb25lIG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZTpcbiAgLy9cbiAgLy8gICAxLiBXZSBmaW5kIHRoZSBleGFjdCBlbGVtZW50IHdlIGFyZSBsb29raW5nIGZvci5cbiAgLy9cbiAgLy8gICAyLiBXZSBkaWQgbm90IGZpbmQgdGhlIGV4YWN0IGVsZW1lbnQsIGJ1dCB3ZSBjYW4gcmV0dXJuIHRoZSBpbmRleCBvZlxuICAvLyAgICAgIHRoZSBuZXh0LWNsb3Nlc3QgZWxlbWVudC5cbiAgLy9cbiAgLy8gICAzLiBXZSBkaWQgbm90IGZpbmQgdGhlIGV4YWN0IGVsZW1lbnQsIGFuZCB0aGVyZSBpcyBubyBuZXh0LWNsb3Nlc3RcbiAgLy8gICAgICBlbGVtZW50IHRoYW4gdGhlIG9uZSB3ZSBhcmUgc2VhcmNoaW5nIGZvciwgc28gd2UgcmV0dXJuIC0xLlxuICB2YXIgbWlkID0gTWF0aC5mbG9vcigoYUhpZ2ggLSBhTG93KSAvIDIpICsgYUxvdztcbiAgdmFyIGNtcCA9IGFDb21wYXJlKGFOZWVkbGUsIGFIYXlzdGFja1ttaWRdLCB0cnVlKTtcbiAgaWYgKGNtcCA9PT0gMCkge1xuICAgIC8vIEZvdW5kIHRoZSBlbGVtZW50IHdlIGFyZSBsb29raW5nIGZvci5cbiAgICByZXR1cm4gbWlkO1xuICB9XG4gIGVsc2UgaWYgKGNtcCA+IDApIHtcbiAgICAvLyBPdXIgbmVlZGxlIGlzIGdyZWF0ZXIgdGhhbiBhSGF5c3RhY2tbbWlkXS5cbiAgICBpZiAoYUhpZ2ggLSBtaWQgPiAxKSB7XG4gICAgICAvLyBUaGUgZWxlbWVudCBpcyBpbiB0aGUgdXBwZXIgaGFsZi5cbiAgICAgIHJldHVybiByZWN1cnNpdmVTZWFyY2gobWlkLCBhSGlnaCwgYU5lZWRsZSwgYUhheXN0YWNrLCBhQ29tcGFyZSwgYUJpYXMpO1xuICAgIH1cblxuICAgIC8vIFRoZSBleGFjdCBuZWVkbGUgZWxlbWVudCB3YXMgbm90IGZvdW5kIGluIHRoaXMgaGF5c3RhY2suIERldGVybWluZSBpZlxuICAgIC8vIHdlIGFyZSBpbiB0ZXJtaW5hdGlvbiBjYXNlICgzKSBvciAoMikgYW5kIHJldHVybiB0aGUgYXBwcm9wcmlhdGUgdGhpbmcuXG4gICAgaWYgKGFCaWFzID09IGV4cG9ydHMuTEVBU1RfVVBQRVJfQk9VTkQpIHtcbiAgICAgIHJldHVybiBhSGlnaCA8IGFIYXlzdGFjay5sZW5ndGggPyBhSGlnaCA6IC0xO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbWlkO1xuICAgIH1cbiAgfVxuICBlbHNlIHtcbiAgICAvLyBPdXIgbmVlZGxlIGlzIGxlc3MgdGhhbiBhSGF5c3RhY2tbbWlkXS5cbiAgICBpZiAobWlkIC0gYUxvdyA+IDEpIHtcbiAgICAgIC8vIFRoZSBlbGVtZW50IGlzIGluIHRoZSBsb3dlciBoYWxmLlxuICAgICAgcmV0dXJuIHJlY3Vyc2l2ZVNlYXJjaChhTG93LCBtaWQsIGFOZWVkbGUsIGFIYXlzdGFjaywgYUNvbXBhcmUsIGFCaWFzKTtcbiAgICB9XG5cbiAgICAvLyB3ZSBhcmUgaW4gdGVybWluYXRpb24gY2FzZSAoMykgb3IgKDIpIGFuZCByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHRoaW5nLlxuICAgIGlmIChhQmlhcyA9PSBleHBvcnRzLkxFQVNUX1VQUEVSX0JPVU5EKSB7XG4gICAgICByZXR1cm4gbWlkO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYUxvdyA8IDAgPyAtMSA6IGFMb3c7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBiaW5hcnkgc2VhcmNoIHdoaWNoIHdpbGwgYWx3YXlzIHRyeSBhbmQgcmV0dXJuXG4gKiB0aGUgaW5kZXggb2YgdGhlIGNsb3Nlc3QgZWxlbWVudCBpZiB0aGVyZSBpcyBubyBleGFjdCBoaXQuIFRoaXMgaXMgYmVjYXVzZVxuICogbWFwcGluZ3MgYmV0d2VlbiBvcmlnaW5hbCBhbmQgZ2VuZXJhdGVkIGxpbmUvY29sIHBhaXJzIGFyZSBzaW5nbGUgcG9pbnRzLFxuICogYW5kIHRoZXJlIGlzIGFuIGltcGxpY2l0IHJlZ2lvbiBiZXR3ZWVuIGVhY2ggb2YgdGhlbSwgc28gYSBtaXNzIGp1c3QgbWVhbnNcbiAqIHRoYXQgeW91IGFyZW4ndCBvbiB0aGUgdmVyeSBzdGFydCBvZiBhIHJlZ2lvbi5cbiAqXG4gKiBAcGFyYW0gYU5lZWRsZSBUaGUgZWxlbWVudCB5b3UgYXJlIGxvb2tpbmcgZm9yLlxuICogQHBhcmFtIGFIYXlzdGFjayBUaGUgYXJyYXkgdGhhdCBpcyBiZWluZyBzZWFyY2hlZC5cbiAqIEBwYXJhbSBhQ29tcGFyZSBBIGZ1bmN0aW9uIHdoaWNoIHRha2VzIHRoZSBuZWVkbGUgYW5kIGFuIGVsZW1lbnQgaW4gdGhlXG4gKiAgICAgYXJyYXkgYW5kIHJldHVybnMgLTEsIDAsIG9yIDEgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIG5lZWRsZSBpcyBsZXNzXG4gKiAgICAgdGhhbiwgZXF1YWwgdG8sIG9yIGdyZWF0ZXIgdGhhbiB0aGUgZWxlbWVudCwgcmVzcGVjdGl2ZWx5LlxuICogQHBhcmFtIGFCaWFzIEVpdGhlciAnYmluYXJ5U2VhcmNoLkdSRUFURVNUX0xPV0VSX0JPVU5EJyBvclxuICogICAgICdiaW5hcnlTZWFyY2guTEVBU1RfVVBQRVJfQk9VTkQnLiBTcGVjaWZpZXMgd2hldGhlciB0byByZXR1cm4gdGhlXG4gKiAgICAgY2xvc2VzdCBlbGVtZW50IHRoYXQgaXMgc21hbGxlciB0aGFuIG9yIGdyZWF0ZXIgdGhhbiB0aGUgb25lIHdlIGFyZVxuICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLlxuICogICAgIERlZmF1bHRzIHRvICdiaW5hcnlTZWFyY2guR1JFQVRFU1RfTE9XRVJfQk9VTkQnLlxuICovXG5leHBvcnRzLnNlYXJjaCA9IGZ1bmN0aW9uIHNlYXJjaChhTmVlZGxlLCBhSGF5c3RhY2ssIGFDb21wYXJlLCBhQmlhcykge1xuICBpZiAoYUhheXN0YWNrLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIHZhciBpbmRleCA9IHJlY3Vyc2l2ZVNlYXJjaCgtMSwgYUhheXN0YWNrLmxlbmd0aCwgYU5lZWRsZSwgYUhheXN0YWNrLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYUNvbXBhcmUsIGFCaWFzIHx8IGV4cG9ydHMuR1JFQVRFU1RfTE9XRVJfQk9VTkQpO1xuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgLy8gV2UgaGF2ZSBmb3VuZCBlaXRoZXIgdGhlIGV4YWN0IGVsZW1lbnQsIG9yIHRoZSBuZXh0LWNsb3Nlc3QgZWxlbWVudCB0aGFuXG4gIC8vIHRoZSBvbmUgd2UgYXJlIHNlYXJjaGluZyBmb3IuIEhvd2V2ZXIsIHRoZXJlIG1heSBiZSBtb3JlIHRoYW4gb25lIHN1Y2hcbiAgLy8gZWxlbWVudC4gTWFrZSBzdXJlIHdlIGFsd2F5cyByZXR1cm4gdGhlIHNtYWxsZXN0IG9mIHRoZXNlLlxuICB3aGlsZSAoaW5kZXggLSAxID49IDApIHtcbiAgICBpZiAoYUNvbXBhcmUoYUhheXN0YWNrW2luZGV4XSwgYUhheXN0YWNrW2luZGV4IC0gMV0sIHRydWUpICE9PSAwKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgLS1pbmRleDtcbiAgfVxuXG4gIHJldHVybiBpbmRleDtcbn07XG4iLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbi8vIEl0IHR1cm5zIG91dCB0aGF0IHNvbWUgKG1vc3Q/KSBKYXZhU2NyaXB0IGVuZ2luZXMgZG9uJ3Qgc2VsZi1ob3N0XG4vLyBgQXJyYXkucHJvdG90eXBlLnNvcnRgLiBUaGlzIG1ha2VzIHNlbnNlIGJlY2F1c2UgQysrIHdpbGwgbGlrZWx5IHJlbWFpblxuLy8gZmFzdGVyIHRoYW4gSlMgd2hlbiBkb2luZyByYXcgQ1BVLWludGVuc2l2ZSBzb3J0aW5nLiBIb3dldmVyLCB3aGVuIHVzaW5nIGFcbi8vIGN1c3RvbSBjb21wYXJhdG9yIGZ1bmN0aW9uLCBjYWxsaW5nIGJhY2sgYW5kIGZvcnRoIGJldHdlZW4gdGhlIFZNJ3MgQysrIGFuZFxuLy8gSklUJ2QgSlMgaXMgcmF0aGVyIHNsb3cgKmFuZCogbG9zZXMgSklUIHR5cGUgaW5mb3JtYXRpb24sIHJlc3VsdGluZyBpblxuLy8gd29yc2UgZ2VuZXJhdGVkIGNvZGUgZm9yIHRoZSBjb21wYXJhdG9yIGZ1bmN0aW9uIHRoYW4gd291bGQgYmUgb3B0aW1hbC4gSW5cbi8vIGZhY3QsIHdoZW4gc29ydGluZyB3aXRoIGEgY29tcGFyYXRvciwgdGhlc2UgY29zdHMgb3V0d2VpZ2ggdGhlIGJlbmVmaXRzIG9mXG4vLyBzb3J0aW5nIGluIEMrKy4gQnkgdXNpbmcgb3VyIG93biBKUy1pbXBsZW1lbnRlZCBRdWljayBTb3J0IChiZWxvdyksIHdlIGdldFxuLy8gYSB+MzUwMG1zIG1lYW4gc3BlZWQtdXAgaW4gYGJlbmNoL2JlbmNoLmh0bWxgLlxuXG4vKipcbiAqIFN3YXAgdGhlIGVsZW1lbnRzIGluZGV4ZWQgYnkgYHhgIGFuZCBgeWAgaW4gdGhlIGFycmF5IGBhcnlgLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFyeVxuICogICAgICAgIFRoZSBhcnJheS5cbiAqIEBwYXJhbSB7TnVtYmVyfSB4XG4gKiAgICAgICAgVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBpdGVtLlxuICogQHBhcmFtIHtOdW1iZXJ9IHlcbiAqICAgICAgICBUaGUgaW5kZXggb2YgdGhlIHNlY29uZCBpdGVtLlxuICovXG5mdW5jdGlvbiBzd2FwKGFyeSwgeCwgeSkge1xuICB2YXIgdGVtcCA9IGFyeVt4XTtcbiAgYXJ5W3hdID0gYXJ5W3ldO1xuICBhcnlbeV0gPSB0ZW1wO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSByYW5kb20gaW50ZWdlciB3aXRoaW4gdGhlIHJhbmdlIGBsb3cgLi4gaGlnaGAgaW5jbHVzaXZlLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBsb3dcbiAqICAgICAgICBUaGUgbG93ZXIgYm91bmQgb24gdGhlIHJhbmdlLlxuICogQHBhcmFtIHtOdW1iZXJ9IGhpZ2hcbiAqICAgICAgICBUaGUgdXBwZXIgYm91bmQgb24gdGhlIHJhbmdlLlxuICovXG5mdW5jdGlvbiByYW5kb21JbnRJblJhbmdlKGxvdywgaGlnaCkge1xuICByZXR1cm4gTWF0aC5yb3VuZChsb3cgKyAoTWF0aC5yYW5kb20oKSAqIChoaWdoIC0gbG93KSkpO1xufVxuXG4vKipcbiAqIFRoZSBRdWljayBTb3J0IGFsZ29yaXRobS5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBhcnlcbiAqICAgICAgICBBbiBhcnJheSB0byBzb3J0LlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY29tcGFyYXRvclxuICogICAgICAgIEZ1bmN0aW9uIHRvIHVzZSB0byBjb21wYXJlIHR3byBpdGVtcy5cbiAqIEBwYXJhbSB7TnVtYmVyfSBwXG4gKiAgICAgICAgU3RhcnQgaW5kZXggb2YgdGhlIGFycmF5XG4gKiBAcGFyYW0ge051bWJlcn0gclxuICogICAgICAgIEVuZCBpbmRleCBvZiB0aGUgYXJyYXlcbiAqL1xuZnVuY3Rpb24gZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBwLCByKSB7XG4gIC8vIElmIG91ciBsb3dlciBib3VuZCBpcyBsZXNzIHRoYW4gb3VyIHVwcGVyIGJvdW5kLCB3ZSAoMSkgcGFydGl0aW9uIHRoZVxuICAvLyBhcnJheSBpbnRvIHR3byBwaWVjZXMgYW5kICgyKSByZWN1cnNlIG9uIGVhY2ggaGFsZi4gSWYgaXQgaXMgbm90LCB0aGlzIGlzXG4gIC8vIHRoZSBlbXB0eSBhcnJheSBhbmQgb3VyIGJhc2UgY2FzZS5cblxuICBpZiAocCA8IHIpIHtcbiAgICAvLyAoMSkgUGFydGl0aW9uaW5nLlxuICAgIC8vXG4gICAgLy8gVGhlIHBhcnRpdGlvbmluZyBjaG9vc2VzIGEgcGl2b3QgYmV0d2VlbiBgcGAgYW5kIGByYCBhbmQgbW92ZXMgYWxsXG4gICAgLy8gZWxlbWVudHMgdGhhdCBhcmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBwaXZvdCB0byB0aGUgYmVmb3JlIGl0LCBhbmRcbiAgICAvLyBhbGwgdGhlIGVsZW1lbnRzIHRoYXQgYXJlIGdyZWF0ZXIgdGhhbiBpdCBhZnRlciBpdC4gVGhlIGVmZmVjdCBpcyB0aGF0XG4gICAgLy8gb25jZSBwYXJ0aXRpb24gaXMgZG9uZSwgdGhlIHBpdm90IGlzIGluIHRoZSBleGFjdCBwbGFjZSBpdCB3aWxsIGJlIHdoZW5cbiAgICAvLyB0aGUgYXJyYXkgaXMgcHV0IGluIHNvcnRlZCBvcmRlciwgYW5kIGl0IHdpbGwgbm90IG5lZWQgdG8gYmUgbW92ZWRcbiAgICAvLyBhZ2Fpbi4gVGhpcyBydW5zIGluIE8obikgdGltZS5cblxuICAgIC8vIEFsd2F5cyBjaG9vc2UgYSByYW5kb20gcGl2b3Qgc28gdGhhdCBhbiBpbnB1dCBhcnJheSB3aGljaCBpcyByZXZlcnNlXG4gICAgLy8gc29ydGVkIGRvZXMgbm90IGNhdXNlIE8obl4yKSBydW5uaW5nIHRpbWUuXG4gICAgdmFyIHBpdm90SW5kZXggPSByYW5kb21JbnRJblJhbmdlKHAsIHIpO1xuICAgIHZhciBpID0gcCAtIDE7XG5cbiAgICBzd2FwKGFyeSwgcGl2b3RJbmRleCwgcik7XG4gICAgdmFyIHBpdm90ID0gYXJ5W3JdO1xuXG4gICAgLy8gSW1tZWRpYXRlbHkgYWZ0ZXIgYGpgIGlzIGluY3JlbWVudGVkIGluIHRoaXMgbG9vcCwgdGhlIGZvbGxvd2luZyBob2xkXG4gICAgLy8gdHJ1ZTpcbiAgICAvL1xuICAgIC8vICAgKiBFdmVyeSBlbGVtZW50IGluIGBhcnlbcCAuLiBpXWAgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBwaXZvdC5cbiAgICAvL1xuICAgIC8vICAgKiBFdmVyeSBlbGVtZW50IGluIGBhcnlbaSsxIC4uIGotMV1gIGlzIGdyZWF0ZXIgdGhhbiB0aGUgcGl2b3QuXG4gICAgZm9yICh2YXIgaiA9IHA7IGogPCByOyBqKyspIHtcbiAgICAgIGlmIChjb21wYXJhdG9yKGFyeVtqXSwgcGl2b3QpIDw9IDApIHtcbiAgICAgICAgaSArPSAxO1xuICAgICAgICBzd2FwKGFyeSwgaSwgaik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dhcChhcnksIGkgKyAxLCBqKTtcbiAgICB2YXIgcSA9IGkgKyAxO1xuXG4gICAgLy8gKDIpIFJlY3Vyc2Ugb24gZWFjaCBoYWxmLlxuXG4gICAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBwLCBxIC0gMSk7XG4gICAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBxICsgMSwgcik7XG4gIH1cbn1cblxuLyoqXG4gKiBTb3J0IHRoZSBnaXZlbiBhcnJheSBpbi1wbGFjZSB3aXRoIHRoZSBnaXZlbiBjb21wYXJhdG9yIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFyeVxuICogICAgICAgIEFuIGFycmF5IHRvIHNvcnQuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjb21wYXJhdG9yXG4gKiAgICAgICAgRnVuY3Rpb24gdG8gdXNlIHRvIGNvbXBhcmUgdHdvIGl0ZW1zLlxuICovXG5leHBvcnRzLnF1aWNrU29ydCA9IGZ1bmN0aW9uIChhcnksIGNvbXBhcmF0b3IpIHtcbiAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCAwLCBhcnkubGVuZ3RoIC0gMSk7XG59O1xuIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIGJpbmFyeVNlYXJjaCA9IHJlcXVpcmUoJy4vYmluYXJ5LXNlYXJjaCcpO1xudmFyIEFycmF5U2V0ID0gcmVxdWlyZSgnLi9hcnJheS1zZXQnKS5BcnJheVNldDtcbnZhciBiYXNlNjRWTFEgPSByZXF1aXJlKCcuL2Jhc2U2NC12bHEnKTtcbnZhciBxdWlja1NvcnQgPSByZXF1aXJlKCcuL3F1aWNrLXNvcnQnKS5xdWlja1NvcnQ7XG5cbmZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHtcbiAgdmFyIHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7XG4gIGlmICh0eXBlb2YgYVNvdXJjZU1hcCA9PT0gJ3N0cmluZycpIHtcbiAgICBzb3VyY2VNYXAgPSB1dGlsLnBhcnNlU291cmNlTWFwSW5wdXQoYVNvdXJjZU1hcCk7XG4gIH1cblxuICByZXR1cm4gc291cmNlTWFwLnNlY3Rpb25zICE9IG51bGxcbiAgICA/IG5ldyBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIoc291cmNlTWFwLCBhU291cmNlTWFwVVJMKVxuICAgIDogbmV3IEJhc2ljU291cmNlTWFwQ29uc3VtZXIoc291cmNlTWFwLCBhU291cmNlTWFwVVJMKTtcbn1cblxuU291cmNlTWFwQ29uc3VtZXIuZnJvbVNvdXJjZU1hcCA9IGZ1bmN0aW9uKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHtcbiAgcmV0dXJuIEJhc2ljU291cmNlTWFwQ29uc3VtZXIuZnJvbVNvdXJjZU1hcChhU291cmNlTWFwLCBhU291cmNlTWFwVVJMKTtcbn1cblxuLyoqXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgc291cmNlIG1hcHBpbmcgc3BlYyB0aGF0IHdlIGFyZSBjb25zdW1pbmcuXG4gKi9cblNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8vIGBfX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQgYF9fb3JpZ2luYWxNYXBwaW5nc2AgYXJlIGFycmF5cyB0aGF0IGhvbGQgdGhlXG4vLyBwYXJzZWQgbWFwcGluZyBjb29yZGluYXRlcyBmcm9tIHRoZSBzb3VyY2UgbWFwJ3MgXCJtYXBwaW5nc1wiIGF0dHJpYnV0ZS4gVGhleVxuLy8gYXJlIGxhemlseSBpbnN0YW50aWF0ZWQsIGFjY2Vzc2VkIHZpYSB0aGUgYF9nZW5lcmF0ZWRNYXBwaW5nc2AgYW5kXG4vLyBgX29yaWdpbmFsTWFwcGluZ3NgIGdldHRlcnMgcmVzcGVjdGl2ZWx5LCBhbmQgd2Ugb25seSBwYXJzZSB0aGUgbWFwcGluZ3Ncbi8vIGFuZCBjcmVhdGUgdGhlc2UgYXJyYXlzIG9uY2UgcXVlcmllZCBmb3IgYSBzb3VyY2UgbG9jYXRpb24uIFdlIGp1bXAgdGhyb3VnaFxuLy8gdGhlc2UgaG9vcHMgYmVjYXVzZSB0aGVyZSBjYW4gYmUgbWFueSB0aG91c2FuZHMgb2YgbWFwcGluZ3MsIGFuZCBwYXJzaW5nXG4vLyB0aGVtIGlzIGV4cGVuc2l2ZSwgc28gd2Ugb25seSB3YW50IHRvIGRvIGl0IGlmIHdlIG11c3QuXG4vL1xuLy8gRWFjaCBvYmplY3QgaW4gdGhlIGFycmF5cyBpcyBvZiB0aGUgZm9ybTpcbi8vXG4vLyAgICAge1xuLy8gICAgICAgZ2VuZXJhdGVkTGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgY29kZSxcbi8vICAgICAgIGdlbmVyYXRlZENvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBjb2RlLFxuLy8gICAgICAgc291cmNlOiBUaGUgcGF0aCB0byB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGUgdGhhdCBnZW5lcmF0ZWQgdGhpc1xuLy8gICAgICAgICAgICAgICBjaHVuayBvZiBjb2RlLFxuLy8gICAgICAgb3JpZ2luYWxMaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZSB0aGF0XG4vLyAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIHRoaXMgY2h1bmsgb2YgZ2VuZXJhdGVkIGNvZGUsXG4vLyAgICAgICBvcmlnaW5hbENvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZSB0aGF0XG4vLyAgICAgICAgICAgICAgICAgICAgICAgY29ycmVzcG9uZHMgdG8gdGhpcyBjaHVuayBvZiBnZW5lcmF0ZWQgY29kZSxcbi8vICAgICAgIG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBvcmlnaW5hbCBzeW1ib2wgd2hpY2ggZ2VuZXJhdGVkIHRoaXMgY2h1bmsgb2Zcbi8vICAgICAgICAgICAgIGNvZGUuXG4vLyAgICAgfVxuLy9cbi8vIEFsbCBwcm9wZXJ0aWVzIGV4Y2VwdCBmb3IgYGdlbmVyYXRlZExpbmVgIGFuZCBgZ2VuZXJhdGVkQ29sdW1uYCBjYW4gYmVcbi8vIGBudWxsYC5cbi8vXG4vLyBgX2dlbmVyYXRlZE1hcHBpbmdzYCBpcyBvcmRlcmVkIGJ5IHRoZSBnZW5lcmF0ZWQgcG9zaXRpb25zLlxuLy9cbi8vIGBfb3JpZ2luYWxNYXBwaW5nc2AgaXMgb3JkZXJlZCBieSB0aGUgb3JpZ2luYWwgcG9zaXRpb25zLlxuXG5Tb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX19nZW5lcmF0ZWRNYXBwaW5ncyA9IG51bGw7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLCAnX2dlbmVyYXRlZE1hcHBpbmdzJywge1xuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gKCkge1xuICAgIGlmICghdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzKSB7XG4gICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3M7XG4gIH1cbn0pO1xuXG5Tb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX19vcmlnaW5hbE1hcHBpbmdzID0gbnVsbDtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUsICdfb3JpZ2luYWxNYXBwaW5ncycsIHtcbiAgY29uZmlndXJhYmxlOiB0cnVlLFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIXRoaXMuX19vcmlnaW5hbE1hcHBpbmdzKSB7XG4gICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncztcbiAgfVxufSk7XG5cblNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fY2hhcklzTWFwcGluZ1NlcGFyYXRvciA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2NoYXJJc01hcHBpbmdTZXBhcmF0b3IoYVN0ciwgaW5kZXgpIHtcbiAgICB2YXIgYyA9IGFTdHIuY2hhckF0KGluZGV4KTtcbiAgICByZXR1cm4gYyA9PT0gXCI7XCIgfHwgYyA9PT0gXCIsXCI7XG4gIH07XG5cbi8qKlxuICogUGFyc2UgdGhlIG1hcHBpbmdzIGluIGEgc3RyaW5nIGluIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggd2UgY2FuIGVhc2lseVxuICogcXVlcnkgKHRoZSBvcmRlcmVkIGFycmF5cyBpbiB0aGUgYHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5nc2AgYW5kXG4gKiBgdGhpcy5fX29yaWdpbmFsTWFwcGluZ3NgIHByb3BlcnRpZXMpLlxuICovXG5Tb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3BhcnNlTWFwcGluZ3MgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCBfcGFyc2VNYXBwaW5nc1wiKTtcbiAgfTtcblxuU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSID0gMTtcblNvdXJjZU1hcENvbnN1bWVyLk9SSUdJTkFMX09SREVSID0gMjtcblxuU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQgPSAxO1xuU291cmNlTWFwQ29uc3VtZXIuTEVBU1RfVVBQRVJfQk9VTkQgPSAyO1xuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciBlYWNoIG1hcHBpbmcgYmV0d2VlbiBhbiBvcmlnaW5hbCBzb3VyY2UvbGluZS9jb2x1bW4gYW5kIGFcbiAqIGdlbmVyYXRlZCBsaW5lL2NvbHVtbiBpbiB0aGlzIHNvdXJjZSBtYXAuXG4gKlxuICogQHBhcmFtIEZ1bmN0aW9uIGFDYWxsYmFja1xuICogICAgICAgIFRoZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aXRoIGVhY2ggbWFwcGluZy5cbiAqIEBwYXJhbSBPYmplY3QgYUNvbnRleHRcbiAqICAgICAgICBPcHRpb25hbC4gSWYgc3BlY2lmaWVkLCB0aGlzIG9iamVjdCB3aWxsIGJlIHRoZSB2YWx1ZSBvZiBgdGhpc2AgZXZlcnlcbiAqICAgICAgICB0aW1lIHRoYXQgYGFDYWxsYmFja2AgaXMgY2FsbGVkLlxuICogQHBhcmFtIGFPcmRlclxuICogICAgICAgIEVpdGhlciBgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSYCBvclxuICogICAgICAgIGBTb3VyY2VNYXBDb25zdW1lci5PUklHSU5BTF9PUkRFUmAuIFNwZWNpZmllcyB3aGV0aGVyIHlvdSB3YW50IHRvXG4gKiAgICAgICAgaXRlcmF0ZSBvdmVyIHRoZSBtYXBwaW5ncyBzb3J0ZWQgYnkgdGhlIGdlbmVyYXRlZCBmaWxlJ3MgbGluZS9jb2x1bW5cbiAqICAgICAgICBvcmRlciBvciB0aGUgb3JpZ2luYWwncyBzb3VyY2UvbGluZS9jb2x1bW4gb3JkZXIsIHJlc3BlY3RpdmVseS4gRGVmYXVsdHMgdG9cbiAqICAgICAgICBgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSYC5cbiAqL1xuU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmVhY2hNYXBwaW5nID1cbiAgZnVuY3Rpb24gU291cmNlTWFwQ29uc3VtZXJfZWFjaE1hcHBpbmcoYUNhbGxiYWNrLCBhQ29udGV4dCwgYU9yZGVyKSB7XG4gICAgdmFyIGNvbnRleHQgPSBhQ29udGV4dCB8fCBudWxsO1xuICAgIHZhciBvcmRlciA9IGFPcmRlciB8fCBTb3VyY2VNYXBDb25zdW1lci5HRU5FUkFURURfT1JERVI7XG5cbiAgICB2YXIgbWFwcGluZ3M7XG4gICAgc3dpdGNoIChvcmRlcikge1xuICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSOlxuICAgICAgbWFwcGluZ3MgPSB0aGlzLl9nZW5lcmF0ZWRNYXBwaW5ncztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuT1JJR0lOQUxfT1JERVI6XG4gICAgICBtYXBwaW5ncyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3M7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBvcmRlciBvZiBpdGVyYXRpb24uXCIpO1xuICAgIH1cblxuICAgIHZhciBzb3VyY2VSb290ID0gdGhpcy5zb3VyY2VSb290O1xuICAgIG1hcHBpbmdzLm1hcChmdW5jdGlvbiAobWFwcGluZykge1xuICAgICAgdmFyIHNvdXJjZSA9IG1hcHBpbmcuc291cmNlID09PSBudWxsID8gbnVsbCA6IHRoaXMuX3NvdXJjZXMuYXQobWFwcGluZy5zb3VyY2UpO1xuICAgICAgc291cmNlID0gdXRpbC5jb21wdXRlU291cmNlVVJMKHNvdXJjZVJvb3QsIHNvdXJjZSwgdGhpcy5fc291cmNlTWFwVVJMKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgICBnZW5lcmF0ZWRMaW5lOiBtYXBwaW5nLmdlbmVyYXRlZExpbmUsXG4gICAgICAgIGdlbmVyYXRlZENvbHVtbjogbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4sXG4gICAgICAgIG9yaWdpbmFsTGluZTogbWFwcGluZy5vcmlnaW5hbExpbmUsXG4gICAgICAgIG9yaWdpbmFsQ29sdW1uOiBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uLFxuICAgICAgICBuYW1lOiBtYXBwaW5nLm5hbWUgPT09IG51bGwgPyBudWxsIDogdGhpcy5fbmFtZXMuYXQobWFwcGluZy5uYW1lKVxuICAgICAgfTtcbiAgICB9LCB0aGlzKS5mb3JFYWNoKGFDYWxsYmFjaywgY29udGV4dCk7XG4gIH07XG5cbi8qKlxuICogUmV0dXJucyBhbGwgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSxcbiAqIGxpbmUsIGFuZCBjb2x1bW4gcHJvdmlkZWQuIElmIG5vIGNvbHVtbiBpcyBwcm92aWRlZCwgcmV0dXJucyBhbGwgbWFwcGluZ3NcbiAqIGNvcnJlc3BvbmRpbmcgdG8gYSBlaXRoZXIgdGhlIGxpbmUgd2UgYXJlIHNlYXJjaGluZyBmb3Igb3IgdGhlIG5leHRcbiAqIGNsb3Nlc3QgbGluZSB0aGF0IGhhcyBhbnkgbWFwcGluZ3MuIE90aGVyd2lzZSwgcmV0dXJucyBhbGwgbWFwcGluZ3NcbiAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGxpbmUgYW5kIGVpdGhlciB0aGUgY29sdW1uIHdlIGFyZSBzZWFyY2hpbmcgZm9yXG4gKiBvciB0aGUgbmV4dCBjbG9zZXN0IGNvbHVtbiB0aGF0IGhhcyBhbnkgb2Zmc2V0cy5cbiAqXG4gKiBUaGUgb25seSBhcmd1bWVudCBpcyBhbiBvYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UuICBUaGUgbGluZSBudW1iZXIgaXMgMS1iYXNlZC5cbiAqICAgLSBjb2x1bW46IE9wdGlvbmFsLiB0aGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLlxuICogICAgVGhlIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC5cbiAqXG4gKiBhbmQgYW4gYXJyYXkgb2Ygb2JqZWN0cyBpcyByZXR1cm5lZCwgZWFjaCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLiAgVGhlXG4gKiAgICBsaW5lIG51bWJlciBpcyAxLWJhc2VkLlxuICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuXG4gKiAgICBUaGUgY29sdW1uIG51bWJlciBpcyAwLWJhc2VkLlxuICovXG5Tb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuYWxsR2VuZXJhdGVkUG9zaXRpb25zRm9yID1cbiAgZnVuY3Rpb24gU291cmNlTWFwQ29uc3VtZXJfYWxsR2VuZXJhdGVkUG9zaXRpb25zRm9yKGFBcmdzKSB7XG4gICAgdmFyIGxpbmUgPSB1dGlsLmdldEFyZyhhQXJncywgJ2xpbmUnKTtcblxuICAgIC8vIFdoZW4gdGhlcmUgaXMgbm8gZXhhY3QgbWF0Y2gsIEJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLl9maW5kTWFwcGluZ1xuICAgIC8vIHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBjbG9zZXN0IG1hcHBpbmcgbGVzcyB0aGFuIHRoZSBuZWVkbGUuIEJ5XG4gICAgLy8gc2V0dGluZyBuZWVkbGUub3JpZ2luYWxDb2x1bW4gdG8gMCwgd2UgdGh1cyBmaW5kIHRoZSBsYXN0IG1hcHBpbmcgZm9yXG4gICAgLy8gdGhlIGdpdmVuIGxpbmUsIHByb3ZpZGVkIHN1Y2ggYSBtYXBwaW5nIGV4aXN0cy5cbiAgICB2YXIgbmVlZGxlID0ge1xuICAgICAgc291cmNlOiB1dGlsLmdldEFyZyhhQXJncywgJ3NvdXJjZScpLFxuICAgICAgb3JpZ2luYWxMaW5lOiBsaW5lLFxuICAgICAgb3JpZ2luYWxDb2x1bW46IHV0aWwuZ2V0QXJnKGFBcmdzLCAnY29sdW1uJywgMClcbiAgICB9O1xuXG4gICAgbmVlZGxlLnNvdXJjZSA9IHRoaXMuX2ZpbmRTb3VyY2VJbmRleChuZWVkbGUuc291cmNlKTtcbiAgICBpZiAobmVlZGxlLnNvdXJjZSA8IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICB2YXIgbWFwcGluZ3MgPSBbXTtcblxuICAgIHZhciBpbmRleCA9IHRoaXMuX2ZpbmRNYXBwaW5nKG5lZWRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3JpZ2luYWxMaW5lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvcmlnaW5hbENvbHVtblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWwuY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5U2VhcmNoLkxFQVNUX1VQUEVSX0JPVU5EKTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdmFyIG1hcHBpbmcgPSB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzW2luZGV4XTtcblxuICAgICAgaWYgKGFBcmdzLmNvbHVtbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHZhciBvcmlnaW5hbExpbmUgPSBtYXBwaW5nLm9yaWdpbmFsTGluZTtcblxuICAgICAgICAvLyBJdGVyYXRlIHVudGlsIGVpdGhlciB3ZSBydW4gb3V0IG9mIG1hcHBpbmdzLCBvciB3ZSBydW4gaW50b1xuICAgICAgICAvLyBhIG1hcHBpbmcgZm9yIGEgZGlmZmVyZW50IGxpbmUgdGhhbiB0aGUgb25lIHdlIGZvdW5kLiBTaW5jZVxuICAgICAgICAvLyBtYXBwaW5ncyBhcmUgc29ydGVkLCB0aGlzIGlzIGd1YXJhbnRlZWQgdG8gZmluZCBhbGwgbWFwcGluZ3MgZm9yXG4gICAgICAgIC8vIHRoZSBsaW5lIHdlIGZvdW5kLlxuICAgICAgICB3aGlsZSAobWFwcGluZyAmJiBtYXBwaW5nLm9yaWdpbmFsTGluZSA9PT0gb3JpZ2luYWxMaW5lKSB7XG4gICAgICAgICAgbWFwcGluZ3MucHVzaCh7XG4gICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnZ2VuZXJhdGVkTGluZScsIG51bGwpLFxuICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnZ2VuZXJhdGVkQ29sdW1uJywgbnVsbCksXG4gICAgICAgICAgICBsYXN0Q29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnbGFzdEdlbmVyYXRlZENvbHVtbicsIG51bGwpXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBtYXBwaW5nID0gdGhpcy5fb3JpZ2luYWxNYXBwaW5nc1srK2luZGV4XTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG9yaWdpbmFsQ29sdW1uID0gbWFwcGluZy5vcmlnaW5hbENvbHVtbjtcblxuICAgICAgICAvLyBJdGVyYXRlIHVudGlsIGVpdGhlciB3ZSBydW4gb3V0IG9mIG1hcHBpbmdzLCBvciB3ZSBydW4gaW50b1xuICAgICAgICAvLyBhIG1hcHBpbmcgZm9yIGEgZGlmZmVyZW50IGxpbmUgdGhhbiB0aGUgb25lIHdlIHdlcmUgc2VhcmNoaW5nIGZvci5cbiAgICAgICAgLy8gU2luY2UgbWFwcGluZ3MgYXJlIHNvcnRlZCwgdGhpcyBpcyBndWFyYW50ZWVkIHRvIGZpbmQgYWxsIG1hcHBpbmdzIGZvclxuICAgICAgICAvLyB0aGUgbGluZSB3ZSBhcmUgc2VhcmNoaW5nIGZvci5cbiAgICAgICAgd2hpbGUgKG1hcHBpbmcgJiZcbiAgICAgICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxMaW5lID09PSBsaW5lICYmXG4gICAgICAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID09IG9yaWdpbmFsQ29sdW1uKSB7XG4gICAgICAgICAgbWFwcGluZ3MucHVzaCh7XG4gICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnZ2VuZXJhdGVkTGluZScsIG51bGwpLFxuICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnZ2VuZXJhdGVkQ29sdW1uJywgbnVsbCksXG4gICAgICAgICAgICBsYXN0Q29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnbGFzdEdlbmVyYXRlZENvbHVtbicsIG51bGwpXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBtYXBwaW5nID0gdGhpcy5fb3JpZ2luYWxNYXBwaW5nc1srK2luZGV4XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXBwaW5ncztcbiAgfTtcblxuZXhwb3J0cy5Tb3VyY2VNYXBDb25zdW1lciA9IFNvdXJjZU1hcENvbnN1bWVyO1xuXG4vKipcbiAqIEEgQmFzaWNTb3VyY2VNYXBDb25zdW1lciBpbnN0YW5jZSByZXByZXNlbnRzIGEgcGFyc2VkIHNvdXJjZSBtYXAgd2hpY2ggd2UgY2FuXG4gKiBxdWVyeSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG9yaWdpbmFsIGZpbGUgcG9zaXRpb25zIGJ5IGdpdmluZyBpdCBhIGZpbGVcbiAqIHBvc2l0aW9uIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLlxuICpcbiAqIFRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIHJhdyBzb3VyY2UgbWFwIChlaXRoZXIgYXMgYSBKU09OIHN0cmluZywgb3JcbiAqIGFscmVhZHkgcGFyc2VkIHRvIGFuIG9iamVjdCkuIEFjY29yZGluZyB0byB0aGUgc3BlYywgc291cmNlIG1hcHMgaGF2ZSB0aGVcbiAqIGZvbGxvd2luZyBhdHRyaWJ1dGVzOlxuICpcbiAqICAgLSB2ZXJzaW9uOiBXaGljaCB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UgbWFwIHNwZWMgdGhpcyBtYXAgaXMgZm9sbG93aW5nLlxuICogICAtIHNvdXJjZXM6IEFuIGFycmF5IG9mIFVSTHMgdG8gdGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlcy5cbiAqICAgLSBuYW1lczogQW4gYXJyYXkgb2YgaWRlbnRpZmllcnMgd2hpY2ggY2FuIGJlIHJlZmVycmVuY2VkIGJ5IGluZGl2aWR1YWwgbWFwcGluZ3MuXG4gKiAgIC0gc291cmNlUm9vdDogT3B0aW9uYWwuIFRoZSBVUkwgcm9vdCBmcm9tIHdoaWNoIGFsbCBzb3VyY2VzIGFyZSByZWxhdGl2ZS5cbiAqICAgLSBzb3VyY2VzQ29udGVudDogT3B0aW9uYWwuIEFuIGFycmF5IG9mIGNvbnRlbnRzIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZXMuXG4gKiAgIC0gbWFwcGluZ3M6IEEgc3RyaW5nIG9mIGJhc2U2NCBWTFFzIHdoaWNoIGNvbnRhaW4gdGhlIGFjdHVhbCBtYXBwaW5ncy5cbiAqICAgLSBmaWxlOiBPcHRpb25hbC4gVGhlIGdlbmVyYXRlZCBmaWxlIHRoaXMgc291cmNlIG1hcCBpcyBhc3NvY2lhdGVkIHdpdGguXG4gKlxuICogSGVyZSBpcyBhbiBleGFtcGxlIHNvdXJjZSBtYXAsIHRha2VuIGZyb20gdGhlIHNvdXJjZSBtYXAgc3BlY1swXTpcbiAqXG4gKiAgICAge1xuICogICAgICAgdmVyc2lvbiA6IDMsXG4gKiAgICAgICBmaWxlOiBcIm91dC5qc1wiLFxuICogICAgICAgc291cmNlUm9vdCA6IFwiXCIsXG4gKiAgICAgICBzb3VyY2VzOiBbXCJmb28uanNcIiwgXCJiYXIuanNcIl0sXG4gKiAgICAgICBuYW1lczogW1wic3JjXCIsIFwibWFwc1wiLCBcImFyZVwiLCBcImZ1blwiXSxcbiAqICAgICAgIG1hcHBpbmdzOiBcIkFBLEFCOztBQkNERTtcIlxuICogICAgIH1cbiAqXG4gKiBUaGUgc2Vjb25kIHBhcmFtZXRlciwgaWYgZ2l2ZW4sIGlzIGEgc3RyaW5nIHdob3NlIHZhbHVlIGlzIHRoZSBVUkxcbiAqIGF0IHdoaWNoIHRoZSBzb3VyY2UgbWFwIHdhcyBmb3VuZC4gIFRoaXMgVVJMIGlzIHVzZWQgdG8gY29tcHV0ZSB0aGVcbiAqIHNvdXJjZXMgYXJyYXkuXG4gKlxuICogWzBdOiBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzFVMVJHQWVoUXdSeXBVVG92RjFLUmxwaU9GemUwYi1fMmdjNmZBSDBLWTBrL2VkaXQ/cGxpPTEjXG4gKi9cbmZ1bmN0aW9uIEJhc2ljU291cmNlTWFwQ29uc3VtZXIoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkge1xuICB2YXIgc291cmNlTWFwID0gYVNvdXJjZU1hcDtcbiAgaWYgKHR5cGVvZiBhU291cmNlTWFwID09PSAnc3RyaW5nJykge1xuICAgIHNvdXJjZU1hcCA9IHV0aWwucGFyc2VTb3VyY2VNYXBJbnB1dChhU291cmNlTWFwKTtcbiAgfVxuXG4gIHZhciB2ZXJzaW9uID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAndmVyc2lvbicpO1xuICB2YXIgc291cmNlcyA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ3NvdXJjZXMnKTtcbiAgLy8gU2FzcyAzLjMgbGVhdmVzIG91dCB0aGUgJ25hbWVzJyBhcnJheSwgc28gd2UgZGV2aWF0ZSBmcm9tIHRoZSBzcGVjICh3aGljaFxuICAvLyByZXF1aXJlcyB0aGUgYXJyYXkpIHRvIHBsYXkgbmljZSBoZXJlLlxuICB2YXIgbmFtZXMgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICduYW1lcycsIFtdKTtcbiAgdmFyIHNvdXJjZVJvb3QgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICdzb3VyY2VSb290JywgbnVsbCk7XG4gIHZhciBzb3VyY2VzQ29udGVudCA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ3NvdXJjZXNDb250ZW50JywgbnVsbCk7XG4gIHZhciBtYXBwaW5ncyA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ21hcHBpbmdzJyk7XG4gIHZhciBmaWxlID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAnZmlsZScsIG51bGwpO1xuXG4gIC8vIE9uY2UgYWdhaW4sIFNhc3MgZGV2aWF0ZXMgZnJvbSB0aGUgc3BlYyBhbmQgc3VwcGxpZXMgdGhlIHZlcnNpb24gYXMgYVxuICAvLyBzdHJpbmcgcmF0aGVyIHRoYW4gYSBudW1iZXIsIHNvIHdlIHVzZSBsb29zZSBlcXVhbGl0eSBjaGVja2luZyBoZXJlLlxuICBpZiAodmVyc2lvbiAhPSB0aGlzLl92ZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCB2ZXJzaW9uOiAnICsgdmVyc2lvbik7XG4gIH1cblxuICBpZiAoc291cmNlUm9vdCkge1xuICAgIHNvdXJjZVJvb3QgPSB1dGlsLm5vcm1hbGl6ZShzb3VyY2VSb290KTtcbiAgfVxuXG4gIHNvdXJjZXMgPSBzb3VyY2VzXG4gICAgLm1hcChTdHJpbmcpXG4gICAgLy8gU29tZSBzb3VyY2UgbWFwcyBwcm9kdWNlIHJlbGF0aXZlIHNvdXJjZSBwYXRocyBsaWtlIFwiLi9mb28uanNcIiBpbnN0ZWFkIG9mXG4gICAgLy8gXCJmb28uanNcIi4gIE5vcm1hbGl6ZSB0aGVzZSBmaXJzdCBzbyB0aGF0IGZ1dHVyZSBjb21wYXJpc29ucyB3aWxsIHN1Y2NlZWQuXG4gICAgLy8gU2VlIGJ1Z3ppbC5sYS8xMDkwNzY4LlxuICAgIC5tYXAodXRpbC5ub3JtYWxpemUpXG4gICAgLy8gQWx3YXlzIGVuc3VyZSB0aGF0IGFic29sdXRlIHNvdXJjZXMgYXJlIGludGVybmFsbHkgc3RvcmVkIHJlbGF0aXZlIHRvXG4gICAgLy8gdGhlIHNvdXJjZSByb290LCBpZiB0aGUgc291cmNlIHJvb3QgaXMgYWJzb2x1dGUuIE5vdCBkb2luZyB0aGlzIHdvdWxkXG4gICAgLy8gYmUgcGFydGljdWxhcmx5IHByb2JsZW1hdGljIHdoZW4gdGhlIHNvdXJjZSByb290IGlzIGEgcHJlZml4IG9mIHRoZVxuICAgIC8vIHNvdXJjZSAodmFsaWQsIGJ1dCB3aHk/PykuIFNlZSBnaXRodWIgaXNzdWUgIzE5OSBhbmQgYnVnemlsLmxhLzExODg5ODIuXG4gICAgLm1hcChmdW5jdGlvbiAoc291cmNlKSB7XG4gICAgICByZXR1cm4gc291cmNlUm9vdCAmJiB1dGlsLmlzQWJzb2x1dGUoc291cmNlUm9vdCkgJiYgdXRpbC5pc0Fic29sdXRlKHNvdXJjZSlcbiAgICAgICAgPyB1dGlsLnJlbGF0aXZlKHNvdXJjZVJvb3QsIHNvdXJjZSlcbiAgICAgICAgOiBzb3VyY2U7XG4gICAgfSk7XG5cbiAgLy8gUGFzcyBgdHJ1ZWAgYmVsb3cgdG8gYWxsb3cgZHVwbGljYXRlIG5hbWVzIGFuZCBzb3VyY2VzLiBXaGlsZSBzb3VyY2UgbWFwc1xuICAvLyBhcmUgaW50ZW5kZWQgdG8gYmUgY29tcHJlc3NlZCBhbmQgZGVkdXBsaWNhdGVkLCB0aGUgVHlwZVNjcmlwdCBjb21waWxlclxuICAvLyBzb21ldGltZXMgZ2VuZXJhdGVzIHNvdXJjZSBtYXBzIHdpdGggZHVwbGljYXRlcyBpbiB0aGVtLiBTZWUgR2l0aHViIGlzc3VlXG4gIC8vICM3MiBhbmQgYnVnemlsLmxhLzg4OTQ5Mi5cbiAgdGhpcy5fbmFtZXMgPSBBcnJheVNldC5mcm9tQXJyYXkobmFtZXMubWFwKFN0cmluZyksIHRydWUpO1xuICB0aGlzLl9zb3VyY2VzID0gQXJyYXlTZXQuZnJvbUFycmF5KHNvdXJjZXMsIHRydWUpO1xuXG4gIHRoaXMuX2Fic29sdXRlU291cmNlcyA9IHRoaXMuX3NvdXJjZXMudG9BcnJheSgpLm1hcChmdW5jdGlvbiAocykge1xuICAgIHJldHVybiB1dGlsLmNvbXB1dGVTb3VyY2VVUkwoc291cmNlUm9vdCwgcywgYVNvdXJjZU1hcFVSTCk7XG4gIH0pO1xuXG4gIHRoaXMuc291cmNlUm9vdCA9IHNvdXJjZVJvb3Q7XG4gIHRoaXMuc291cmNlc0NvbnRlbnQgPSBzb3VyY2VzQ29udGVudDtcbiAgdGhpcy5fbWFwcGluZ3MgPSBtYXBwaW5ncztcbiAgdGhpcy5fc291cmNlTWFwVVJMID0gYVNvdXJjZU1hcFVSTDtcbiAgdGhpcy5maWxlID0gZmlsZTtcbn1cblxuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZSk7XG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5jb25zdW1lciA9IFNvdXJjZU1hcENvbnN1bWVyO1xuXG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb24gdG8gZmluZCB0aGUgaW5kZXggb2YgYSBzb3VyY2UuICBSZXR1cm5zIC0xIGlmIG5vdFxuICogZm91bmQuXG4gKi9cbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLl9maW5kU291cmNlSW5kZXggPSBmdW5jdGlvbihhU291cmNlKSB7XG4gIHZhciByZWxhdGl2ZVNvdXJjZSA9IGFTb3VyY2U7XG4gIGlmICh0aGlzLnNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgIHJlbGF0aXZlU291cmNlID0gdXRpbC5yZWxhdGl2ZSh0aGlzLnNvdXJjZVJvb3QsIHJlbGF0aXZlU291cmNlKTtcbiAgfVxuXG4gIGlmICh0aGlzLl9zb3VyY2VzLmhhcyhyZWxhdGl2ZVNvdXJjZSkpIHtcbiAgICByZXR1cm4gdGhpcy5fc291cmNlcy5pbmRleE9mKHJlbGF0aXZlU291cmNlKTtcbiAgfVxuXG4gIC8vIE1heWJlIGFTb3VyY2UgaXMgYW4gYWJzb2x1dGUgVVJMIGFzIHJldHVybmVkIGJ5IHxzb3VyY2VzfC4gIEluXG4gIC8vIHRoaXMgY2FzZSB3ZSBjYW4ndCBzaW1wbHkgdW5kbyB0aGUgdHJhbnNmb3JtLlxuICB2YXIgaTtcbiAgZm9yIChpID0gMDsgaSA8IHRoaXMuX2Fic29sdXRlU291cmNlcy5sZW5ndGg7ICsraSkge1xuICAgIGlmICh0aGlzLl9hYnNvbHV0ZVNvdXJjZXNbaV0gPT0gYVNvdXJjZSkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIC0xO1xufTtcblxuLyoqXG4gKiBDcmVhdGUgYSBCYXNpY1NvdXJjZU1hcENvbnN1bWVyIGZyb20gYSBTb3VyY2VNYXBHZW5lcmF0b3IuXG4gKlxuICogQHBhcmFtIFNvdXJjZU1hcEdlbmVyYXRvciBhU291cmNlTWFwXG4gKiAgICAgICAgVGhlIHNvdXJjZSBtYXAgdGhhdCB3aWxsIGJlIGNvbnN1bWVkLlxuICogQHBhcmFtIFN0cmluZyBhU291cmNlTWFwVVJMXG4gKiAgICAgICAgVGhlIFVSTCBhdCB3aGljaCB0aGUgc291cmNlIG1hcCBjYW4gYmUgZm91bmQgKG9wdGlvbmFsKVxuICogQHJldHVybnMgQmFzaWNTb3VyY2VNYXBDb25zdW1lclxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLmZyb21Tb3VyY2VNYXAgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9mcm9tU291cmNlTWFwKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHtcbiAgICB2YXIgc21jID0gT2JqZWN0LmNyZWF0ZShCYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZSk7XG5cbiAgICB2YXIgbmFtZXMgPSBzbWMuX25hbWVzID0gQXJyYXlTZXQuZnJvbUFycmF5KGFTb3VyY2VNYXAuX25hbWVzLnRvQXJyYXkoKSwgdHJ1ZSk7XG4gICAgdmFyIHNvdXJjZXMgPSBzbWMuX3NvdXJjZXMgPSBBcnJheVNldC5mcm9tQXJyYXkoYVNvdXJjZU1hcC5fc291cmNlcy50b0FycmF5KCksIHRydWUpO1xuICAgIHNtYy5zb3VyY2VSb290ID0gYVNvdXJjZU1hcC5fc291cmNlUm9vdDtcbiAgICBzbWMuc291cmNlc0NvbnRlbnQgPSBhU291cmNlTWFwLl9nZW5lcmF0ZVNvdXJjZXNDb250ZW50KHNtYy5fc291cmNlcy50b0FycmF5KCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbWMuc291cmNlUm9vdCk7XG4gICAgc21jLmZpbGUgPSBhU291cmNlTWFwLl9maWxlO1xuICAgIHNtYy5fc291cmNlTWFwVVJMID0gYVNvdXJjZU1hcFVSTDtcbiAgICBzbWMuX2Fic29sdXRlU291cmNlcyA9IHNtYy5fc291cmNlcy50b0FycmF5KCkubWFwKGZ1bmN0aW9uIChzKSB7XG4gICAgICByZXR1cm4gdXRpbC5jb21wdXRlU291cmNlVVJMKHNtYy5zb3VyY2VSb290LCBzLCBhU291cmNlTWFwVVJMKTtcbiAgICB9KTtcblxuICAgIC8vIEJlY2F1c2Ugd2UgYXJlIG1vZGlmeWluZyB0aGUgZW50cmllcyAoYnkgY29udmVydGluZyBzdHJpbmcgc291cmNlcyBhbmRcbiAgICAvLyBuYW1lcyB0byBpbmRpY2VzIGludG8gdGhlIHNvdXJjZXMgYW5kIG5hbWVzIEFycmF5U2V0cyksIHdlIGhhdmUgdG8gbWFrZVxuICAgIC8vIGEgY29weSBvZiB0aGUgZW50cnkgb3IgZWxzZSBiYWQgdGhpbmdzIGhhcHBlbi4gU2hhcmVkIG11dGFibGUgc3RhdGVcbiAgICAvLyBzdHJpa2VzIGFnYWluISBTZWUgZ2l0aHViIGlzc3VlICMxOTEuXG5cbiAgICB2YXIgZ2VuZXJhdGVkTWFwcGluZ3MgPSBhU291cmNlTWFwLl9tYXBwaW5ncy50b0FycmF5KCkuc2xpY2UoKTtcbiAgICB2YXIgZGVzdEdlbmVyYXRlZE1hcHBpbmdzID0gc21jLl9fZ2VuZXJhdGVkTWFwcGluZ3MgPSBbXTtcbiAgICB2YXIgZGVzdE9yaWdpbmFsTWFwcGluZ3MgPSBzbWMuX19vcmlnaW5hbE1hcHBpbmdzID0gW107XG5cbiAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3RoID0gZ2VuZXJhdGVkTWFwcGluZ3MubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzcmNNYXBwaW5nID0gZ2VuZXJhdGVkTWFwcGluZ3NbaV07XG4gICAgICB2YXIgZGVzdE1hcHBpbmcgPSBuZXcgTWFwcGluZztcbiAgICAgIGRlc3RNYXBwaW5nLmdlbmVyYXRlZExpbmUgPSBzcmNNYXBwaW5nLmdlbmVyYXRlZExpbmU7XG4gICAgICBkZXN0TWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gPSBzcmNNYXBwaW5nLmdlbmVyYXRlZENvbHVtbjtcblxuICAgICAgaWYgKHNyY01hcHBpbmcuc291cmNlKSB7XG4gICAgICAgIGRlc3RNYXBwaW5nLnNvdXJjZSA9IHNvdXJjZXMuaW5kZXhPZihzcmNNYXBwaW5nLnNvdXJjZSk7XG4gICAgICAgIGRlc3RNYXBwaW5nLm9yaWdpbmFsTGluZSA9IHNyY01hcHBpbmcub3JpZ2luYWxMaW5lO1xuICAgICAgICBkZXN0TWFwcGluZy5vcmlnaW5hbENvbHVtbiA9IHNyY01hcHBpbmcub3JpZ2luYWxDb2x1bW47XG5cbiAgICAgICAgaWYgKHNyY01hcHBpbmcubmFtZSkge1xuICAgICAgICAgIGRlc3RNYXBwaW5nLm5hbWUgPSBuYW1lcy5pbmRleE9mKHNyY01hcHBpbmcubmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBkZXN0T3JpZ2luYWxNYXBwaW5ncy5wdXNoKGRlc3RNYXBwaW5nKTtcbiAgICAgIH1cblxuICAgICAgZGVzdEdlbmVyYXRlZE1hcHBpbmdzLnB1c2goZGVzdE1hcHBpbmcpO1xuICAgIH1cblxuICAgIHF1aWNrU29ydChzbWMuX19vcmlnaW5hbE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zKTtcblxuICAgIHJldHVybiBzbWM7XG4gIH07XG5cbi8qKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXBwaW5nIHNwZWMgdGhhdCB3ZSBhcmUgY29uc3VtaW5nLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2Ygb3JpZ2luYWwgc291cmNlcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KEJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLCAnc291cmNlcycsIHtcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Fic29sdXRlU291cmNlcy5zbGljZSgpO1xuICB9XG59KTtcblxuLyoqXG4gKiBQcm92aWRlIHRoZSBKSVQgd2l0aCBhIG5pY2Ugc2hhcGUgLyBoaWRkZW4gY2xhc3MuXG4gKi9cbmZ1bmN0aW9uIE1hcHBpbmcoKSB7XG4gIHRoaXMuZ2VuZXJhdGVkTGluZSA9IDA7XG4gIHRoaXMuZ2VuZXJhdGVkQ29sdW1uID0gMDtcbiAgdGhpcy5zb3VyY2UgPSBudWxsO1xuICB0aGlzLm9yaWdpbmFsTGluZSA9IG51bGw7XG4gIHRoaXMub3JpZ2luYWxDb2x1bW4gPSBudWxsO1xuICB0aGlzLm5hbWUgPSBudWxsO1xufVxuXG4vKipcbiAqIFBhcnNlIHRoZSBtYXBwaW5ncyBpbiBhIHN0cmluZyBpbiB0byBhIGRhdGEgc3RydWN0dXJlIHdoaWNoIHdlIGNhbiBlYXNpbHlcbiAqIHF1ZXJ5ICh0aGUgb3JkZXJlZCBhcnJheXMgaW4gdGhlIGB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NgIGFuZFxuICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS5cbiAqL1xuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3BhcnNlTWFwcGluZ3MgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7XG4gICAgdmFyIGdlbmVyYXRlZExpbmUgPSAxO1xuICAgIHZhciBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IDA7XG4gICAgdmFyIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gMDtcbiAgICB2YXIgcHJldmlvdXNPcmlnaW5hbENvbHVtbiA9IDA7XG4gICAgdmFyIHByZXZpb3VzU291cmNlID0gMDtcbiAgICB2YXIgcHJldmlvdXNOYW1lID0gMDtcbiAgICB2YXIgbGVuZ3RoID0gYVN0ci5sZW5ndGg7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB2YXIgY2FjaGVkU2VnbWVudHMgPSB7fTtcbiAgICB2YXIgdGVtcCA9IHt9O1xuICAgIHZhciBvcmlnaW5hbE1hcHBpbmdzID0gW107XG4gICAgdmFyIGdlbmVyYXRlZE1hcHBpbmdzID0gW107XG4gICAgdmFyIG1hcHBpbmcsIHN0ciwgc2VnbWVudCwgZW5kLCB2YWx1ZTtcblxuICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKGFTdHIuY2hhckF0KGluZGV4KSA9PT0gJzsnKSB7XG4gICAgICAgIGdlbmVyYXRlZExpbmUrKztcbiAgICAgICAgaW5kZXgrKztcbiAgICAgICAgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSAwO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoYVN0ci5jaGFyQXQoaW5kZXgpID09PSAnLCcpIHtcbiAgICAgICAgaW5kZXgrKztcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBtYXBwaW5nID0gbmV3IE1hcHBpbmcoKTtcbiAgICAgICAgbWFwcGluZy5nZW5lcmF0ZWRMaW5lID0gZ2VuZXJhdGVkTGluZTtcblxuICAgICAgICAvLyBCZWNhdXNlIGVhY2ggb2Zmc2V0IGlzIGVuY29kZWQgcmVsYXRpdmUgdG8gdGhlIHByZXZpb3VzIG9uZSxcbiAgICAgICAgLy8gbWFueSBzZWdtZW50cyBvZnRlbiBoYXZlIHRoZSBzYW1lIGVuY29kaW5nLiBXZSBjYW4gZXhwbG9pdCB0aGlzXG4gICAgICAgIC8vIGZhY3QgYnkgY2FjaGluZyB0aGUgcGFyc2VkIHZhcmlhYmxlIGxlbmd0aCBmaWVsZHMgb2YgZWFjaCBzZWdtZW50LFxuICAgICAgICAvLyBhbGxvd2luZyB1cyB0byBhdm9pZCBhIHNlY29uZCBwYXJzZSBpZiB3ZSBlbmNvdW50ZXIgdGhlIHNhbWVcbiAgICAgICAgLy8gc2VnbWVudCBhZ2Fpbi5cbiAgICAgICAgZm9yIChlbmQgPSBpbmRleDsgZW5kIDwgbGVuZ3RoOyBlbmQrKykge1xuICAgICAgICAgIGlmICh0aGlzLl9jaGFySXNNYXBwaW5nU2VwYXJhdG9yKGFTdHIsIGVuZCkpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdHIgPSBhU3RyLnNsaWNlKGluZGV4LCBlbmQpO1xuXG4gICAgICAgIHNlZ21lbnQgPSBjYWNoZWRTZWdtZW50c1tzdHJdO1xuICAgICAgICBpZiAoc2VnbWVudCkge1xuICAgICAgICAgIGluZGV4ICs9IHN0ci5sZW5ndGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VnbWVudCA9IFtdO1xuICAgICAgICAgIHdoaWxlIChpbmRleCA8IGVuZCkge1xuICAgICAgICAgICAgYmFzZTY0VkxRLmRlY29kZShhU3RyLCBpbmRleCwgdGVtcCk7XG4gICAgICAgICAgICB2YWx1ZSA9IHRlbXAudmFsdWU7XG4gICAgICAgICAgICBpbmRleCA9IHRlbXAucmVzdDtcbiAgICAgICAgICAgIHNlZ21lbnQucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZvdW5kIGEgc291cmNlLCBidXQgbm8gbGluZSBhbmQgY29sdW1uJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZvdW5kIGEgc291cmNlIGFuZCBsaW5lLCBidXQgbm8gY29sdW1uJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FjaGVkU2VnbWVudHNbc3RyXSA9IHNlZ21lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZW5lcmF0ZWQgY29sdW1uLlxuICAgICAgICBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiA9IHByZXZpb3VzR2VuZXJhdGVkQ29sdW1uICsgc2VnbWVudFswXTtcbiAgICAgICAgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbjtcblxuICAgICAgICBpZiAoc2VnbWVudC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgLy8gT3JpZ2luYWwgc291cmNlLlxuICAgICAgICAgIG1hcHBpbmcuc291cmNlID0gcHJldmlvdXNTb3VyY2UgKyBzZWdtZW50WzFdO1xuICAgICAgICAgIHByZXZpb3VzU291cmNlICs9IHNlZ21lbnRbMV07XG5cbiAgICAgICAgICAvLyBPcmlnaW5hbCBsaW5lLlxuICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxMaW5lID0gcHJldmlvdXNPcmlnaW5hbExpbmUgKyBzZWdtZW50WzJdO1xuICAgICAgICAgIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gbWFwcGluZy5vcmlnaW5hbExpbmU7XG4gICAgICAgICAgLy8gTGluZXMgYXJlIHN0b3JlZCAwLWJhc2VkXG4gICAgICAgICAgbWFwcGluZy5vcmlnaW5hbExpbmUgKz0gMTtcblxuICAgICAgICAgIC8vIE9yaWdpbmFsIGNvbHVtbi5cbiAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID0gcHJldmlvdXNPcmlnaW5hbENvbHVtbiArIHNlZ21lbnRbM107XG4gICAgICAgICAgcHJldmlvdXNPcmlnaW5hbENvbHVtbiA9IG1hcHBpbmcub3JpZ2luYWxDb2x1bW47XG5cbiAgICAgICAgICBpZiAoc2VnbWVudC5sZW5ndGggPiA0KSB7XG4gICAgICAgICAgICAvLyBPcmlnaW5hbCBuYW1lLlxuICAgICAgICAgICAgbWFwcGluZy5uYW1lID0gcHJldmlvdXNOYW1lICsgc2VnbWVudFs0XTtcbiAgICAgICAgICAgIHByZXZpb3VzTmFtZSArPSBzZWdtZW50WzRdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGdlbmVyYXRlZE1hcHBpbmdzLnB1c2gobWFwcGluZyk7XG4gICAgICAgIGlmICh0eXBlb2YgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgb3JpZ2luYWxNYXBwaW5ncy5wdXNoKG1hcHBpbmcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcXVpY2tTb3J0KGdlbmVyYXRlZE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkKTtcbiAgICB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3MgPSBnZW5lcmF0ZWRNYXBwaW5ncztcblxuICAgIHF1aWNrU29ydChvcmlnaW5hbE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zKTtcbiAgICB0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncyA9IG9yaWdpbmFsTWFwcGluZ3M7XG4gIH07XG5cbi8qKlxuICogRmluZCB0aGUgbWFwcGluZyB0aGF0IGJlc3QgbWF0Y2hlcyB0aGUgaHlwb3RoZXRpY2FsIFwibmVlZGxlXCIgbWFwcGluZyB0aGF0XG4gKiB3ZSBhcmUgc2VhcmNoaW5nIGZvciBpbiB0aGUgZ2l2ZW4gXCJoYXlzdGFja1wiIG9mIG1hcHBpbmdzLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fZmluZE1hcHBpbmcgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9maW5kTWFwcGluZyhhTmVlZGxlLCBhTWFwcGluZ3MsIGFMaW5lTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYUNvbHVtbk5hbWUsIGFDb21wYXJhdG9yLCBhQmlhcykge1xuICAgIC8vIFRvIHJldHVybiB0aGUgcG9zaXRpb24gd2UgYXJlIHNlYXJjaGluZyBmb3IsIHdlIG11c3QgZmlyc3QgZmluZCB0aGVcbiAgICAvLyBtYXBwaW5nIGZvciB0aGUgZ2l2ZW4gcG9zaXRpb24gYW5kIHRoZW4gcmV0dXJuIHRoZSBvcHBvc2l0ZSBwb3NpdGlvbiBpdFxuICAgIC8vIHBvaW50cyB0by4gQmVjYXVzZSB0aGUgbWFwcGluZ3MgYXJlIHNvcnRlZCwgd2UgY2FuIHVzZSBiaW5hcnkgc2VhcmNoIHRvXG4gICAgLy8gZmluZCB0aGUgYmVzdCBtYXBwaW5nLlxuXG4gICAgaWYgKGFOZWVkbGVbYUxpbmVOYW1lXSA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdMaW5lIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEsIGdvdCAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICsgYU5lZWRsZVthTGluZU5hbWVdKTtcbiAgICB9XG4gICAgaWYgKGFOZWVkbGVbYUNvbHVtbk5hbWVdIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ29sdW1uIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAsIGdvdCAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICsgYU5lZWRsZVthQ29sdW1uTmFtZV0pO1xuICAgIH1cblxuICAgIHJldHVybiBiaW5hcnlTZWFyY2guc2VhcmNoKGFOZWVkbGUsIGFNYXBwaW5ncywgYUNvbXBhcmF0b3IsIGFCaWFzKTtcbiAgfTtcblxuLyoqXG4gKiBDb21wdXRlIHRoZSBsYXN0IGNvbHVtbiBmb3IgZWFjaCBnZW5lcmF0ZWQgbWFwcGluZy4gVGhlIGxhc3QgY29sdW1uIGlzXG4gKiBpbmNsdXNpdmUuXG4gKi9cbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmNvbXB1dGVDb2x1bW5TcGFucyA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2NvbXB1dGVDb2x1bW5TcGFucygpIHtcbiAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3MubGVuZ3RoOyArK2luZGV4KSB7XG4gICAgICB2YXIgbWFwcGluZyA9IHRoaXMuX2dlbmVyYXRlZE1hcHBpbmdzW2luZGV4XTtcblxuICAgICAgLy8gTWFwcGluZ3MgZG8gbm90IGNvbnRhaW4gYSBmaWVsZCBmb3IgdGhlIGxhc3QgZ2VuZXJhdGVkIGNvbHVtbnQuIFdlXG4gICAgICAvLyBjYW4gY29tZSB1cCB3aXRoIGFuIG9wdGltaXN0aWMgZXN0aW1hdGUsIGhvd2V2ZXIsIGJ5IGFzc3VtaW5nIHRoYXRcbiAgICAgIC8vIG1hcHBpbmdzIGFyZSBjb250aWd1b3VzIChpLmUuIGdpdmVuIHR3byBjb25zZWN1dGl2ZSBtYXBwaW5ncywgdGhlXG4gICAgICAvLyBmaXJzdCBtYXBwaW5nIGVuZHMgd2hlcmUgdGhlIHNlY29uZCBvbmUgc3RhcnRzKS5cbiAgICAgIGlmIChpbmRleCArIDEgPCB0aGlzLl9nZW5lcmF0ZWRNYXBwaW5ncy5sZW5ndGgpIHtcbiAgICAgICAgdmFyIG5leHRNYXBwaW5nID0gdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3NbaW5kZXggKyAxXTtcblxuICAgICAgICBpZiAobWFwcGluZy5nZW5lcmF0ZWRMaW5lID09PSBuZXh0TWFwcGluZy5nZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgICAgbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uID0gbmV4dE1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uIC0gMTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgbGFzdCBtYXBwaW5nIGZvciBlYWNoIGxpbmUgc3BhbnMgdGhlIGVudGlyZSBsaW5lLlxuICAgICAgbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uID0gSW5maW5pdHk7XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSwgbGluZSwgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIGdlbmVyYXRlZFxuICogc291cmNlJ3MgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0XG4gKiB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLiAgVGhlIGxpbmUgbnVtYmVyXG4gKiAgICAgaXMgMS1iYXNlZC5cbiAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLiAgVGhlIGNvbHVtblxuICogICAgIG51bWJlciBpcyAwLWJhc2VkLlxuICogICAtIGJpYXM6IEVpdGhlciAnU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQnIG9yXG4gKiAgICAgJ1NvdXJjZU1hcENvbnN1bWVyLkxFQVNUX1VQUEVSX0JPVU5EJy4gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcmV0dXJuIHRoZVxuICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmVcbiAqICAgICBzZWFyY2hpbmcgZm9yLCByZXNwZWN0aXZlbHksIGlmIHRoZSBleGFjdCBlbGVtZW50IGNhbm5vdCBiZSBmb3VuZC5cbiAqICAgICBEZWZhdWx0cyB0byAnU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQnLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlLCBvciBudWxsLlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLiAgVGhlXG4gKiAgICAgbGluZSBudW1iZXIgaXMgMS1iYXNlZC5cbiAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UsIG9yIG51bGwuICBUaGVcbiAqICAgICBjb2x1bW4gbnVtYmVyIGlzIDAtYmFzZWQuXG4gKiAgIC0gbmFtZTogVGhlIG9yaWdpbmFsIGlkZW50aWZpZXIsIG9yIG51bGwuXG4gKi9cbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLm9yaWdpbmFsUG9zaXRpb25Gb3IgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9vcmlnaW5hbFBvc2l0aW9uRm9yKGFBcmdzKSB7XG4gICAgdmFyIG5lZWRsZSA9IHtcbiAgICAgIGdlbmVyYXRlZExpbmU6IHV0aWwuZ2V0QXJnKGFBcmdzLCAnbGluZScpLFxuICAgICAgZ2VuZXJhdGVkQ29sdW1uOiB1dGlsLmdldEFyZyhhQXJncywgJ2NvbHVtbicpXG4gICAgfTtcblxuICAgIHZhciBpbmRleCA9IHRoaXMuX2ZpbmRNYXBwaW5nKFxuICAgICAgbmVlZGxlLFxuICAgICAgdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3MsXG4gICAgICBcImdlbmVyYXRlZExpbmVcIixcbiAgICAgIFwiZ2VuZXJhdGVkQ29sdW1uXCIsXG4gICAgICB1dGlsLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkLFxuICAgICAgdXRpbC5nZXRBcmcoYUFyZ3MsICdiaWFzJywgU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQpXG4gICAgKTtcblxuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB2YXIgbWFwcGluZyA9IHRoaXMuX2dlbmVyYXRlZE1hcHBpbmdzW2luZGV4XTtcblxuICAgICAgaWYgKG1hcHBpbmcuZ2VuZXJhdGVkTGluZSA9PT0gbmVlZGxlLmdlbmVyYXRlZExpbmUpIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdzb3VyY2UnLCBudWxsKTtcbiAgICAgICAgaWYgKHNvdXJjZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHNvdXJjZSA9IHRoaXMuX3NvdXJjZXMuYXQoc291cmNlKTtcbiAgICAgICAgICBzb3VyY2UgPSB1dGlsLmNvbXB1dGVTb3VyY2VVUkwodGhpcy5zb3VyY2VSb290LCBzb3VyY2UsIHRoaXMuX3NvdXJjZU1hcFVSTCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG5hbWUgPSB1dGlsLmdldEFyZyhtYXBwaW5nLCAnbmFtZScsIG51bGwpO1xuICAgICAgICBpZiAobmFtZSAhPT0gbnVsbCkge1xuICAgICAgICAgIG5hbWUgPSB0aGlzLl9uYW1lcy5hdChuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgICAgIGxpbmU6IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdvcmlnaW5hbExpbmUnLCBudWxsKSxcbiAgICAgICAgICBjb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdvcmlnaW5hbENvbHVtbicsIG51bGwpLFxuICAgICAgICAgIG5hbWU6IG5hbWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc291cmNlOiBudWxsLFxuICAgICAgbGluZTogbnVsbCxcbiAgICAgIGNvbHVtbjogbnVsbCxcbiAgICAgIG5hbWU6IG51bGxcbiAgICB9O1xuICB9O1xuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHdlIGhhdmUgdGhlIHNvdXJjZSBjb250ZW50IGZvciBldmVyeSBzb3VyY2UgaW4gdGhlIHNvdXJjZVxuICogbWFwLCBmYWxzZSBvdGhlcndpc2UuXG4gKi9cbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzID1cbiAgZnVuY3Rpb24gQmFzaWNTb3VyY2VNYXBDb25zdW1lcl9oYXNDb250ZW50c09mQWxsU291cmNlcygpIHtcbiAgICBpZiAoIXRoaXMuc291cmNlc0NvbnRlbnQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc291cmNlc0NvbnRlbnQubGVuZ3RoID49IHRoaXMuX3NvdXJjZXMuc2l6ZSgpICYmXG4gICAgICAhdGhpcy5zb3VyY2VzQ29udGVudC5zb21lKGZ1bmN0aW9uIChzYykgeyByZXR1cm4gc2MgPT0gbnVsbDsgfSk7XG4gIH07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgb3JpZ2luYWwgc291cmNlIGNvbnRlbnQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIHRoZSB1cmwgb2YgdGhlXG4gKiBvcmlnaW5hbCBzb3VyY2UgZmlsZS4gUmV0dXJucyBudWxsIGlmIG5vIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50IGlzXG4gKiBhdmFpbGFibGUuXG4gKi9cbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLnNvdXJjZUNvbnRlbnRGb3IgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9zb3VyY2VDb250ZW50Rm9yKGFTb3VyY2UsIG51bGxPbk1pc3NpbmcpIHtcbiAgICBpZiAoIXRoaXMuc291cmNlc0NvbnRlbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhciBpbmRleCA9IHRoaXMuX2ZpbmRTb3VyY2VJbmRleChhU291cmNlKTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuc291cmNlc0NvbnRlbnRbaW5kZXhdO1xuICAgIH1cblxuICAgIHZhciByZWxhdGl2ZVNvdXJjZSA9IGFTb3VyY2U7XG4gICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICByZWxhdGl2ZVNvdXJjZSA9IHV0aWwucmVsYXRpdmUodGhpcy5zb3VyY2VSb290LCByZWxhdGl2ZVNvdXJjZSk7XG4gICAgfVxuXG4gICAgdmFyIHVybDtcbiAgICBpZiAodGhpcy5zb3VyY2VSb290ICE9IG51bGxcbiAgICAgICAgJiYgKHVybCA9IHV0aWwudXJsUGFyc2UodGhpcy5zb3VyY2VSb290KSkpIHtcbiAgICAgIC8vIFhYWDogZmlsZTovLyBVUklzIGFuZCBhYnNvbHV0ZSBwYXRocyBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IgZm9yXG4gICAgICAvLyBtYW55IHVzZXJzLiBXZSBjYW4gaGVscCB0aGVtIG91dCB3aGVuIHRoZXkgZXhwZWN0IGZpbGU6Ly8gVVJJcyB0b1xuICAgICAgLy8gYmVoYXZlIGxpa2UgaXQgd291bGQgaWYgdGhleSB3ZXJlIHJ1bm5pbmcgYSBsb2NhbCBIVFRQIHNlcnZlci4gU2VlXG4gICAgICAvLyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD04ODU1OTcuXG4gICAgICB2YXIgZmlsZVVyaUFic1BhdGggPSByZWxhdGl2ZVNvdXJjZS5yZXBsYWNlKC9eZmlsZTpcXC9cXC8vLCBcIlwiKTtcbiAgICAgIGlmICh1cmwuc2NoZW1lID09IFwiZmlsZVwiXG4gICAgICAgICAgJiYgdGhpcy5fc291cmNlcy5oYXMoZmlsZVVyaUFic1BhdGgpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvdXJjZXNDb250ZW50W3RoaXMuX3NvdXJjZXMuaW5kZXhPZihmaWxlVXJpQWJzUGF0aCldXG4gICAgICB9XG5cbiAgICAgIGlmICgoIXVybC5wYXRoIHx8IHVybC5wYXRoID09IFwiL1wiKVxuICAgICAgICAgICYmIHRoaXMuX3NvdXJjZXMuaGFzKFwiL1wiICsgcmVsYXRpdmVTb3VyY2UpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvdXJjZXNDb250ZW50W3RoaXMuX3NvdXJjZXMuaW5kZXhPZihcIi9cIiArIHJlbGF0aXZlU291cmNlKV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHJlY3Vyc2l2ZWx5IGZyb21cbiAgICAvLyBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLnNvdXJjZUNvbnRlbnRGb3IuIEluIHRoYXQgY2FzZSwgd2VcbiAgICAvLyBkb24ndCB3YW50IHRvIHRocm93IGlmIHdlIGNhbid0IGZpbmQgdGhlIHNvdXJjZSAtIHdlIGp1c3Qgd2FudCB0b1xuICAgIC8vIHJldHVybiBudWxsLCBzbyB3ZSBwcm92aWRlIGEgZmxhZyB0byBleGl0IGdyYWNlZnVsbHkuXG4gICAgaWYgKG51bGxPbk1pc3NpbmcpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignXCInICsgcmVsYXRpdmVTb3VyY2UgKyAnXCIgaXMgbm90IGluIHRoZSBTb3VyY2VNYXAuJyk7XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGdlbmVyYXRlZCBsaW5lIGFuZCBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIHRoZSBvcmlnaW5hbCBzb3VyY2UsXG4gKiBsaW5lLCBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0IHdpdGhcbiAqIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gc291cmNlOiBUaGUgZmlsZW5hbWUgb2YgdGhlIG9yaWdpbmFsIHNvdXJjZS5cbiAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBsaW5lIG51bWJlclxuICogICAgIGlzIDEtYmFzZWQuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLiAgVGhlIGNvbHVtblxuICogICAgIG51bWJlciBpcyAwLWJhc2VkLlxuICogICAtIGJpYXM6IEVpdGhlciAnU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQnIG9yXG4gKiAgICAgJ1NvdXJjZU1hcENvbnN1bWVyLkxFQVNUX1VQUEVSX0JPVU5EJy4gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcmV0dXJuIHRoZVxuICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmVcbiAqICAgICBzZWFyY2hpbmcgZm9yLCByZXNwZWN0aXZlbHksIGlmIHRoZSBleGFjdCBlbGVtZW50IGNhbm5vdCBiZSBmb3VuZC5cbiAqICAgICBEZWZhdWx0cyB0byAnU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQnLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC4gIFRoZVxuICogICAgIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC5cbiAqICAgICBUaGUgY29sdW1uIG51bWJlciBpcyAwLWJhc2VkLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5nZW5lcmF0ZWRQb3NpdGlvbkZvciA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2dlbmVyYXRlZFBvc2l0aW9uRm9yKGFBcmdzKSB7XG4gICAgdmFyIHNvdXJjZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJyk7XG4gICAgc291cmNlID0gdGhpcy5fZmluZFNvdXJjZUluZGV4KHNvdXJjZSk7XG4gICAgaWYgKHNvdXJjZSA8IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxpbmU6IG51bGwsXG4gICAgICAgIGNvbHVtbjogbnVsbCxcbiAgICAgICAgbGFzdENvbHVtbjogbnVsbFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgbmVlZGxlID0ge1xuICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICBvcmlnaW5hbExpbmU6IHV0aWwuZ2V0QXJnKGFBcmdzLCAnbGluZScpLFxuICAgICAgb3JpZ2luYWxDb2x1bW46IHV0aWwuZ2V0QXJnKGFBcmdzLCAnY29sdW1uJylcbiAgICB9O1xuXG4gICAgdmFyIGluZGV4ID0gdGhpcy5fZmluZE1hcHBpbmcoXG4gICAgICBuZWVkbGUsXG4gICAgICB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzLFxuICAgICAgXCJvcmlnaW5hbExpbmVcIixcbiAgICAgIFwib3JpZ2luYWxDb2x1bW5cIixcbiAgICAgIHV0aWwuY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMsXG4gICAgICB1dGlsLmdldEFyZyhhQXJncywgJ2JpYXMnLCBTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORClcbiAgICApO1xuXG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIHZhciBtYXBwaW5nID0gdGhpcy5fb3JpZ2luYWxNYXBwaW5nc1tpbmRleF07XG5cbiAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSA9PT0gbmVlZGxlLnNvdXJjZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxpbmU6IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdnZW5lcmF0ZWRMaW5lJywgbnVsbCksXG4gICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnZ2VuZXJhdGVkQ29sdW1uJywgbnVsbCksXG4gICAgICAgICAgbGFzdENvbHVtbjogdXRpbC5nZXRBcmcobWFwcGluZywgJ2xhc3RHZW5lcmF0ZWRDb2x1bW4nLCBudWxsKVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBsaW5lOiBudWxsLFxuICAgICAgY29sdW1uOiBudWxsLFxuICAgICAgbGFzdENvbHVtbjogbnVsbFxuICAgIH07XG4gIH07XG5cbmV4cG9ydHMuQmFzaWNTb3VyY2VNYXBDb25zdW1lciA9IEJhc2ljU291cmNlTWFwQ29uc3VtZXI7XG5cbi8qKlxuICogQW4gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyIGluc3RhbmNlIHJlcHJlc2VudHMgYSBwYXJzZWQgc291cmNlIG1hcCB3aGljaFxuICogd2UgY2FuIHF1ZXJ5IGZvciBpbmZvcm1hdGlvbi4gSXQgZGlmZmVycyBmcm9tIEJhc2ljU291cmNlTWFwQ29uc3VtZXIgaW5cbiAqIHRoYXQgaXQgdGFrZXMgXCJpbmRleGVkXCIgc291cmNlIG1hcHMgKGkuZS4gb25lcyB3aXRoIGEgXCJzZWN0aW9uc1wiIGZpZWxkKSBhc1xuICogaW5wdXQuXG4gKlxuICogVGhlIGZpcnN0IHBhcmFtZXRlciBpcyBhIHJhdyBzb3VyY2UgbWFwIChlaXRoZXIgYXMgYSBKU09OIHN0cmluZywgb3IgYWxyZWFkeVxuICogcGFyc2VkIHRvIGFuIG9iamVjdCkuIEFjY29yZGluZyB0byB0aGUgc3BlYyBmb3IgaW5kZXhlZCBzb3VyY2UgbWFwcywgdGhleVxuICogaGF2ZSB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6XG4gKlxuICogICAtIHZlcnNpb246IFdoaWNoIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXAgc3BlYyB0aGlzIG1hcCBpcyBmb2xsb3dpbmcuXG4gKiAgIC0gZmlsZTogT3B0aW9uYWwuIFRoZSBnZW5lcmF0ZWQgZmlsZSB0aGlzIHNvdXJjZSBtYXAgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICogICAtIHNlY3Rpb25zOiBBIGxpc3Qgb2Ygc2VjdGlvbiBkZWZpbml0aW9ucy5cbiAqXG4gKiBFYWNoIHZhbHVlIHVuZGVyIHRoZSBcInNlY3Rpb25zXCIgZmllbGQgaGFzIHR3byBmaWVsZHM6XG4gKiAgIC0gb2Zmc2V0OiBUaGUgb2Zmc2V0IGludG8gdGhlIG9yaWdpbmFsIHNwZWNpZmllZCBhdCB3aGljaCB0aGlzIHNlY3Rpb25cbiAqICAgICAgIGJlZ2lucyB0byBhcHBseSwgZGVmaW5lZCBhcyBhbiBvYmplY3Qgd2l0aCBhIFwibGluZVwiIGFuZCBcImNvbHVtblwiXG4gKiAgICAgICBmaWVsZC5cbiAqICAgLSBtYXA6IEEgc291cmNlIG1hcCBkZWZpbml0aW9uLiBUaGlzIHNvdXJjZSBtYXAgY291bGQgYWxzbyBiZSBpbmRleGVkLFxuICogICAgICAgYnV0IGRvZXNuJ3QgaGF2ZSB0byBiZS5cbiAqXG4gKiBJbnN0ZWFkIG9mIHRoZSBcIm1hcFwiIGZpZWxkLCBpdCdzIGFsc28gcG9zc2libGUgdG8gaGF2ZSBhIFwidXJsXCIgZmllbGRcbiAqIHNwZWNpZnlpbmcgYSBVUkwgdG8gcmV0cmlldmUgYSBzb3VyY2UgbWFwIGZyb20sIGJ1dCB0aGF0J3MgY3VycmVudGx5XG4gKiB1bnN1cHBvcnRlZC5cbiAqXG4gKiBIZXJlJ3MgYW4gZXhhbXBsZSBzb3VyY2UgbWFwLCB0YWtlbiBmcm9tIHRoZSBzb3VyY2UgbWFwIHNwZWNbMF0sIGJ1dFxuICogbW9kaWZpZWQgdG8gb21pdCBhIHNlY3Rpb24gd2hpY2ggdXNlcyB0aGUgXCJ1cmxcIiBmaWVsZC5cbiAqXG4gKiAge1xuICogICAgdmVyc2lvbiA6IDMsXG4gKiAgICBmaWxlOiBcImFwcC5qc1wiLFxuICogICAgc2VjdGlvbnM6IFt7XG4gKiAgICAgIG9mZnNldDoge2xpbmU6MTAwLCBjb2x1bW46MTB9LFxuICogICAgICBtYXA6IHtcbiAqICAgICAgICB2ZXJzaW9uIDogMyxcbiAqICAgICAgICBmaWxlOiBcInNlY3Rpb24uanNcIixcbiAqICAgICAgICBzb3VyY2VzOiBbXCJmb28uanNcIiwgXCJiYXIuanNcIl0sXG4gKiAgICAgICAgbmFtZXM6IFtcInNyY1wiLCBcIm1hcHNcIiwgXCJhcmVcIiwgXCJmdW5cIl0sXG4gKiAgICAgICAgbWFwcGluZ3M6IFwiQUFBQSxFOztBQkNERTtcIlxuICogICAgICB9XG4gKiAgICB9XSxcbiAqICB9XG4gKlxuICogVGhlIHNlY29uZCBwYXJhbWV0ZXIsIGlmIGdpdmVuLCBpcyBhIHN0cmluZyB3aG9zZSB2YWx1ZSBpcyB0aGUgVVJMXG4gKiBhdCB3aGljaCB0aGUgc291cmNlIG1hcCB3YXMgZm91bmQuICBUaGlzIFVSTCBpcyB1c2VkIHRvIGNvbXB1dGUgdGhlXG4gKiBzb3VyY2VzIGFycmF5LlxuICpcbiAqIFswXTogaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vZG9jdW1lbnQvZC8xVTFSR0FlaFF3UnlwVVRvdkYxS1JscGlPRnplMGItXzJnYzZmQUgwS1kway9lZGl0I2hlYWRpbmc9aC41MzVlczN4ZXByZ3RcbiAqL1xuZnVuY3Rpb24gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHtcbiAgdmFyIHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7XG4gIGlmICh0eXBlb2YgYVNvdXJjZU1hcCA9PT0gJ3N0cmluZycpIHtcbiAgICBzb3VyY2VNYXAgPSB1dGlsLnBhcnNlU291cmNlTWFwSW5wdXQoYVNvdXJjZU1hcCk7XG4gIH1cblxuICB2YXIgdmVyc2lvbiA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ3ZlcnNpb24nKTtcbiAgdmFyIHNlY3Rpb25zID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAnc2VjdGlvbnMnKTtcblxuICBpZiAodmVyc2lvbiAhPSB0aGlzLl92ZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCB2ZXJzaW9uOiAnICsgdmVyc2lvbik7XG4gIH1cblxuICB0aGlzLl9zb3VyY2VzID0gbmV3IEFycmF5U2V0KCk7XG4gIHRoaXMuX25hbWVzID0gbmV3IEFycmF5U2V0KCk7XG5cbiAgdmFyIGxhc3RPZmZzZXQgPSB7XG4gICAgbGluZTogLTEsXG4gICAgY29sdW1uOiAwXG4gIH07XG4gIHRoaXMuX3NlY3Rpb25zID0gc2VjdGlvbnMubWFwKGZ1bmN0aW9uIChzKSB7XG4gICAgaWYgKHMudXJsKSB7XG4gICAgICAvLyBUaGUgdXJsIGZpZWxkIHdpbGwgcmVxdWlyZSBzdXBwb3J0IGZvciBhc3luY2hyb25pY2l0eS5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL2lzc3Vlcy8xNlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdXBwb3J0IGZvciB1cmwgZmllbGQgaW4gc2VjdGlvbnMgbm90IGltcGxlbWVudGVkLicpO1xuICAgIH1cbiAgICB2YXIgb2Zmc2V0ID0gdXRpbC5nZXRBcmcocywgJ29mZnNldCcpO1xuICAgIHZhciBvZmZzZXRMaW5lID0gdXRpbC5nZXRBcmcob2Zmc2V0LCAnbGluZScpO1xuICAgIHZhciBvZmZzZXRDb2x1bW4gPSB1dGlsLmdldEFyZyhvZmZzZXQsICdjb2x1bW4nKTtcblxuICAgIGlmIChvZmZzZXRMaW5lIDwgbGFzdE9mZnNldC5saW5lIHx8XG4gICAgICAgIChvZmZzZXRMaW5lID09PSBsYXN0T2Zmc2V0LmxpbmUgJiYgb2Zmc2V0Q29sdW1uIDwgbGFzdE9mZnNldC5jb2x1bW4pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlY3Rpb24gb2Zmc2V0cyBtdXN0IGJlIG9yZGVyZWQgYW5kIG5vbi1vdmVybGFwcGluZy4nKTtcbiAgICB9XG4gICAgbGFzdE9mZnNldCA9IG9mZnNldDtcblxuICAgIHJldHVybiB7XG4gICAgICBnZW5lcmF0ZWRPZmZzZXQ6IHtcbiAgICAgICAgLy8gVGhlIG9mZnNldCBmaWVsZHMgYXJlIDAtYmFzZWQsIGJ1dCB3ZSB1c2UgMS1iYXNlZCBpbmRpY2VzIHdoZW5cbiAgICAgICAgLy8gZW5jb2RpbmcvZGVjb2RpbmcgZnJvbSBWTFEuXG4gICAgICAgIGdlbmVyYXRlZExpbmU6IG9mZnNldExpbmUgKyAxLFxuICAgICAgICBnZW5lcmF0ZWRDb2x1bW46IG9mZnNldENvbHVtbiArIDFcbiAgICAgIH0sXG4gICAgICBjb25zdW1lcjogbmV3IFNvdXJjZU1hcENvbnN1bWVyKHV0aWwuZ2V0QXJnKHMsICdtYXAnKSwgYVNvdXJjZU1hcFVSTClcbiAgICB9XG4gIH0pO1xufVxuXG5JbmRleGVkU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUpO1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFNvdXJjZU1hcENvbnN1bWVyO1xuXG4vKipcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UgbWFwcGluZyBzcGVjIHRoYXQgd2UgYXJlIGNvbnN1bWluZy5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2Ygb3JpZ2luYWwgc291cmNlcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUsICdzb3VyY2VzJywge1xuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc291cmNlcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdGhpcy5fc2VjdGlvbnNbaV0uY29uc3VtZXIuc291cmNlcy5sZW5ndGg7IGorKykge1xuICAgICAgICBzb3VyY2VzLnB1c2godGhpcy5fc2VjdGlvbnNbaV0uY29uc3VtZXIuc291cmNlc1tqXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzb3VyY2VzO1xuICB9XG59KTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBzb3VyY2UsIGxpbmUsIGFuZCBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIHRoZSBnZW5lcmF0ZWRcbiAqIHNvdXJjZSdzIGxpbmUgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdFxuICogd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS4gIFRoZSBsaW5lIG51bWJlclxuICogICAgIGlzIDEtYmFzZWQuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS4gIFRoZSBjb2x1bW5cbiAqICAgICBudW1iZXIgaXMgMC1iYXNlZC5cbiAqXG4gKiBhbmQgYW4gb2JqZWN0IGlzIHJldHVybmVkIHdpdGggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOlxuICpcbiAqICAgLSBzb3VyY2U6IFRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZSwgb3IgbnVsbC5cbiAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZSwgb3IgbnVsbC4gIFRoZVxuICogICAgIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLiAgVGhlXG4gKiAgICAgY29sdW1uIG51bWJlciBpcyAwLWJhc2VkLlxuICogICAtIG5hbWU6IFRoZSBvcmlnaW5hbCBpZGVudGlmaWVyLCBvciBudWxsLlxuICovXG5JbmRleGVkU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLm9yaWdpbmFsUG9zaXRpb25Gb3IgPVxuICBmdW5jdGlvbiBJbmRleGVkU291cmNlTWFwQ29uc3VtZXJfb3JpZ2luYWxQb3NpdGlvbkZvcihhQXJncykge1xuICAgIHZhciBuZWVkbGUgPSB7XG4gICAgICBnZW5lcmF0ZWRMaW5lOiB1dGlsLmdldEFyZyhhQXJncywgJ2xpbmUnKSxcbiAgICAgIGdlbmVyYXRlZENvbHVtbjogdXRpbC5nZXRBcmcoYUFyZ3MsICdjb2x1bW4nKVxuICAgIH07XG5cbiAgICAvLyBGaW5kIHRoZSBzZWN0aW9uIGNvbnRhaW5pbmcgdGhlIGdlbmVyYXRlZCBwb3NpdGlvbiB3ZSdyZSB0cnlpbmcgdG8gbWFwXG4gICAgLy8gdG8gYW4gb3JpZ2luYWwgcG9zaXRpb24uXG4gICAgdmFyIHNlY3Rpb25JbmRleCA9IGJpbmFyeVNlYXJjaC5zZWFyY2gobmVlZGxlLCB0aGlzLl9zZWN0aW9ucyxcbiAgICAgIGZ1bmN0aW9uKG5lZWRsZSwgc2VjdGlvbikge1xuICAgICAgICB2YXIgY21wID0gbmVlZGxlLmdlbmVyYXRlZExpbmUgLSBzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lO1xuICAgICAgICBpZiAoY21wKSB7XG4gICAgICAgICAgcmV0dXJuIGNtcDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAobmVlZGxlLmdlbmVyYXRlZENvbHVtbiAtXG4gICAgICAgICAgICAgICAgc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkQ29sdW1uKTtcbiAgICAgIH0pO1xuICAgIHZhciBzZWN0aW9uID0gdGhpcy5fc2VjdGlvbnNbc2VjdGlvbkluZGV4XTtcblxuICAgIGlmICghc2VjdGlvbikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc291cmNlOiBudWxsLFxuICAgICAgICBsaW5lOiBudWxsLFxuICAgICAgICBjb2x1bW46IG51bGwsXG4gICAgICAgIG5hbWU6IG51bGxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlY3Rpb24uY29uc3VtZXIub3JpZ2luYWxQb3NpdGlvbkZvcih7XG4gICAgICBsaW5lOiBuZWVkbGUuZ2VuZXJhdGVkTGluZSAtXG4gICAgICAgIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lIC0gMSksXG4gICAgICBjb2x1bW46IG5lZWRsZS5nZW5lcmF0ZWRDb2x1bW4gLVxuICAgICAgICAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSA9PT0gbmVlZGxlLmdlbmVyYXRlZExpbmVcbiAgICAgICAgID8gc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkQ29sdW1uIC0gMVxuICAgICAgICAgOiAwKSxcbiAgICAgIGJpYXM6IGFBcmdzLmJpYXNcbiAgICB9KTtcbiAgfTtcblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB3ZSBoYXZlIHRoZSBzb3VyY2UgY29udGVudCBmb3IgZXZlcnkgc291cmNlIGluIHRoZSBzb3VyY2VcbiAqIG1hcCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5JbmRleGVkU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzID1cbiAgZnVuY3Rpb24gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyX2hhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCkge1xuICAgIHJldHVybiB0aGlzLl9zZWN0aW9ucy5ldmVyeShmdW5jdGlvbiAocykge1xuICAgICAgcmV0dXJuIHMuY29uc3VtZXIuaGFzQ29udGVudHNPZkFsbFNvdXJjZXMoKTtcbiAgICB9KTtcbiAgfTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBzb3VyY2UgY29udGVudC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgdGhlIHVybCBvZiB0aGVcbiAqIG9yaWdpbmFsIHNvdXJjZSBmaWxlLiBSZXR1cm5zIG51bGwgaWYgbm8gb3JpZ2luYWwgc291cmNlIGNvbnRlbnQgaXNcbiAqIGF2YWlsYWJsZS5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5zb3VyY2VDb250ZW50Rm9yID1cbiAgZnVuY3Rpb24gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyX3NvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgbnVsbE9uTWlzc2luZykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzZWN0aW9uID0gdGhpcy5fc2VjdGlvbnNbaV07XG5cbiAgICAgIHZhciBjb250ZW50ID0gc2VjdGlvbi5jb25zdW1lci5zb3VyY2VDb250ZW50Rm9yKGFTb3VyY2UsIHRydWUpO1xuICAgICAgaWYgKGNvbnRlbnQpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChudWxsT25NaXNzaW5nKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1wiJyArIGFTb3VyY2UgKyAnXCIgaXMgbm90IGluIHRoZSBTb3VyY2VNYXAuJyk7XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGdlbmVyYXRlZCBsaW5lIGFuZCBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIHRoZSBvcmlnaW5hbCBzb3VyY2UsXG4gKiBsaW5lLCBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0IHdpdGhcbiAqIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gc291cmNlOiBUaGUgZmlsZW5hbWUgb2YgdGhlIG9yaWdpbmFsIHNvdXJjZS5cbiAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBsaW5lIG51bWJlclxuICogICAgIGlzIDEtYmFzZWQuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLiAgVGhlIGNvbHVtblxuICogICAgIG51bWJlciBpcyAwLWJhc2VkLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC4gIFRoZVxuICogICAgIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuIFxuICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuXG4gKiAgICAgVGhlIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5nZW5lcmF0ZWRQb3NpdGlvbkZvciA9XG4gIGZ1bmN0aW9uIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lcl9nZW5lcmF0ZWRQb3NpdGlvbkZvcihhQXJncykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzZWN0aW9uID0gdGhpcy5fc2VjdGlvbnNbaV07XG5cbiAgICAgIC8vIE9ubHkgY29uc2lkZXIgdGhpcyBzZWN0aW9uIGlmIHRoZSByZXF1ZXN0ZWQgc291cmNlIGlzIGluIHRoZSBsaXN0IG9mXG4gICAgICAvLyBzb3VyY2VzIG9mIHRoZSBjb25zdW1lci5cbiAgICAgIGlmIChzZWN0aW9uLmNvbnN1bWVyLl9maW5kU291cmNlSW5kZXgodXRpbC5nZXRBcmcoYUFyZ3MsICdzb3VyY2UnKSkgPT09IC0xKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdmFyIGdlbmVyYXRlZFBvc2l0aW9uID0gc2VjdGlvbi5jb25zdW1lci5nZW5lcmF0ZWRQb3NpdGlvbkZvcihhQXJncyk7XG4gICAgICBpZiAoZ2VuZXJhdGVkUG9zaXRpb24pIHtcbiAgICAgICAgdmFyIHJldCA9IHtcbiAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWRQb3NpdGlvbi5saW5lICtcbiAgICAgICAgICAgIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lIC0gMSksXG4gICAgICAgICAgY29sdW1uOiBnZW5lcmF0ZWRQb3NpdGlvbi5jb2x1bW4gK1xuICAgICAgICAgICAgKHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmUgPT09IGdlbmVyYXRlZFBvc2l0aW9uLmxpbmVcbiAgICAgICAgICAgICA/IHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbiAtIDFcbiAgICAgICAgICAgICA6IDApXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmU6IG51bGwsXG4gICAgICBjb2x1bW46IG51bGxcbiAgICB9O1xuICB9O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBtYXBwaW5ncyBpbiBhIHN0cmluZyBpbiB0byBhIGRhdGEgc3RydWN0dXJlIHdoaWNoIHdlIGNhbiBlYXNpbHlcbiAqIHF1ZXJ5ICh0aGUgb3JkZXJlZCBhcnJheXMgaW4gdGhlIGB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NgIGFuZFxuICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fcGFyc2VNYXBwaW5ncyA9XG4gIGZ1bmN0aW9uIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lcl9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7XG4gICAgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzID0gW107XG4gICAgdGhpcy5fX29yaWdpbmFsTWFwcGluZ3MgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3NlY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW2ldO1xuICAgICAgdmFyIHNlY3Rpb25NYXBwaW5ncyA9IHNlY3Rpb24uY29uc3VtZXIuX2dlbmVyYXRlZE1hcHBpbmdzO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzZWN0aW9uTWFwcGluZ3MubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgdmFyIG1hcHBpbmcgPSBzZWN0aW9uTWFwcGluZ3Nbal07XG5cbiAgICAgICAgdmFyIHNvdXJjZSA9IHNlY3Rpb24uY29uc3VtZXIuX3NvdXJjZXMuYXQobWFwcGluZy5zb3VyY2UpO1xuICAgICAgICBzb3VyY2UgPSB1dGlsLmNvbXB1dGVTb3VyY2VVUkwoc2VjdGlvbi5jb25zdW1lci5zb3VyY2VSb290LCBzb3VyY2UsIHRoaXMuX3NvdXJjZU1hcFVSTCk7XG4gICAgICAgIHRoaXMuX3NvdXJjZXMuYWRkKHNvdXJjZSk7XG4gICAgICAgIHNvdXJjZSA9IHRoaXMuX3NvdXJjZXMuaW5kZXhPZihzb3VyY2UpO1xuXG4gICAgICAgIHZhciBuYW1lID0gbnVsbDtcbiAgICAgICAgaWYgKG1hcHBpbmcubmFtZSkge1xuICAgICAgICAgIG5hbWUgPSBzZWN0aW9uLmNvbnN1bWVyLl9uYW1lcy5hdChtYXBwaW5nLm5hbWUpO1xuICAgICAgICAgIHRoaXMuX25hbWVzLmFkZChuYW1lKTtcbiAgICAgICAgICBuYW1lID0gdGhpcy5fbmFtZXMuaW5kZXhPZihuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBtYXBwaW5ncyBjb21pbmcgZnJvbSB0aGUgY29uc3VtZXIgZm9yIHRoZSBzZWN0aW9uIGhhdmVcbiAgICAgICAgLy8gZ2VuZXJhdGVkIHBvc2l0aW9ucyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlIHNlY3Rpb24sIHNvIHdlXG4gICAgICAgIC8vIG5lZWQgdG8gb2Zmc2V0IHRoZW0gdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjb25jYXRlbmF0ZWRcbiAgICAgICAgLy8gZ2VuZXJhdGVkIGZpbGUuXG4gICAgICAgIHZhciBhZGp1c3RlZE1hcHBpbmcgPSB7XG4gICAgICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICAgICAgZ2VuZXJhdGVkTGluZTogbWFwcGluZy5nZW5lcmF0ZWRMaW5lICtcbiAgICAgICAgICAgIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lIC0gMSksXG4gICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uOiBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiArXG4gICAgICAgICAgICAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSA9PT0gbWFwcGluZy5nZW5lcmF0ZWRMaW5lXG4gICAgICAgICAgICA/IHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbiAtIDFcbiAgICAgICAgICAgIDogMCksXG4gICAgICAgICAgb3JpZ2luYWxMaW5lOiBtYXBwaW5nLm9yaWdpbmFsTGluZSxcbiAgICAgICAgICBvcmlnaW5hbENvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbixcbiAgICAgICAgICBuYW1lOiBuYW1lXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzLnB1c2goYWRqdXN0ZWRNYXBwaW5nKTtcbiAgICAgICAgaWYgKHR5cGVvZiBhZGp1c3RlZE1hcHBpbmcub3JpZ2luYWxMaW5lID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzLnB1c2goYWRqdXN0ZWRNYXBwaW5nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHF1aWNrU29ydCh0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3MsIHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQpO1xuICAgIHF1aWNrU29ydCh0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncywgdXRpbC5jb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyk7XG4gIH07XG5cbmV4cG9ydHMuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyID0gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyO1xuIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgU291cmNlTWFwR2VuZXJhdG9yID0gcmVxdWlyZSgnLi9zb3VyY2UtbWFwLWdlbmVyYXRvcicpLlNvdXJjZU1hcEdlbmVyYXRvcjtcbnZhciB1dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cbi8vIE1hdGNoZXMgYSBXaW5kb3dzLXN0eWxlIGBcXHJcXG5gIG5ld2xpbmUgb3IgYSBgXFxuYCBuZXdsaW5lIHVzZWQgYnkgYWxsIG90aGVyXG4vLyBvcGVyYXRpbmcgc3lzdGVtcyB0aGVzZSBkYXlzIChjYXB0dXJpbmcgdGhlIHJlc3VsdCkuXG52YXIgUkVHRVhfTkVXTElORSA9IC8oXFxyP1xcbikvO1xuXG4vLyBOZXdsaW5lIGNoYXJhY3RlciBjb2RlIGZvciBjaGFyQ29kZUF0KCkgY29tcGFyaXNvbnNcbnZhciBORVdMSU5FX0NPREUgPSAxMDtcblxuLy8gUHJpdmF0ZSBzeW1ib2wgZm9yIGlkZW50aWZ5aW5nIGBTb3VyY2VOb2RlYHMgd2hlbiBtdWx0aXBsZSB2ZXJzaW9ucyBvZlxuLy8gdGhlIHNvdXJjZS1tYXAgbGlicmFyeSBhcmUgbG9hZGVkLiBUaGlzIE1VU1QgTk9UIENIQU5HRSBhY3Jvc3Ncbi8vIHZlcnNpb25zIVxudmFyIGlzU291cmNlTm9kZSA9IFwiJCQkaXNTb3VyY2VOb2RlJCQkXCI7XG5cbi8qKlxuICogU291cmNlTm9kZXMgcHJvdmlkZSBhIHdheSB0byBhYnN0cmFjdCBvdmVyIGludGVycG9sYXRpbmcvY29uY2F0ZW5hdGluZ1xuICogc25pcHBldHMgb2YgZ2VuZXJhdGVkIEphdmFTY3JpcHQgc291cmNlIGNvZGUgd2hpbGUgbWFpbnRhaW5pbmcgdGhlIGxpbmUgYW5kXG4gKiBjb2x1bW4gaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBvcmlnaW5hbCBzb3VyY2UgY29kZS5cbiAqXG4gKiBAcGFyYW0gYUxpbmUgVGhlIG9yaWdpbmFsIGxpbmUgbnVtYmVyLlxuICogQHBhcmFtIGFDb2x1bW4gVGhlIG9yaWdpbmFsIGNvbHVtbiBudW1iZXIuXG4gKiBAcGFyYW0gYVNvdXJjZSBUaGUgb3JpZ2luYWwgc291cmNlJ3MgZmlsZW5hbWUuXG4gKiBAcGFyYW0gYUNodW5rcyBPcHRpb25hbC4gQW4gYXJyYXkgb2Ygc3RyaW5ncyB3aGljaCBhcmUgc25pcHBldHMgb2ZcbiAqICAgICAgICBnZW5lcmF0ZWQgSlMsIG9yIG90aGVyIFNvdXJjZU5vZGVzLlxuICogQHBhcmFtIGFOYW1lIFRoZSBvcmlnaW5hbCBpZGVudGlmaWVyLlxuICovXG5mdW5jdGlvbiBTb3VyY2VOb2RlKGFMaW5lLCBhQ29sdW1uLCBhU291cmNlLCBhQ2h1bmtzLCBhTmFtZSkge1xuICB0aGlzLmNoaWxkcmVuID0gW107XG4gIHRoaXMuc291cmNlQ29udGVudHMgPSB7fTtcbiAgdGhpcy5saW5lID0gYUxpbmUgPT0gbnVsbCA/IG51bGwgOiBhTGluZTtcbiAgdGhpcy5jb2x1bW4gPSBhQ29sdW1uID09IG51bGwgPyBudWxsIDogYUNvbHVtbjtcbiAgdGhpcy5zb3VyY2UgPSBhU291cmNlID09IG51bGwgPyBudWxsIDogYVNvdXJjZTtcbiAgdGhpcy5uYW1lID0gYU5hbWUgPT0gbnVsbCA/IG51bGwgOiBhTmFtZTtcbiAgdGhpc1tpc1NvdXJjZU5vZGVdID0gdHJ1ZTtcbiAgaWYgKGFDaHVua3MgIT0gbnVsbCkgdGhpcy5hZGQoYUNodW5rcyk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIFNvdXJjZU5vZGUgZnJvbSBnZW5lcmF0ZWQgY29kZSBhbmQgYSBTb3VyY2VNYXBDb25zdW1lci5cbiAqXG4gKiBAcGFyYW0gYUdlbmVyYXRlZENvZGUgVGhlIGdlbmVyYXRlZCBjb2RlXG4gKiBAcGFyYW0gYVNvdXJjZU1hcENvbnN1bWVyIFRoZSBTb3VyY2VNYXAgZm9yIHRoZSBnZW5lcmF0ZWQgY29kZVxuICogQHBhcmFtIGFSZWxhdGl2ZVBhdGggT3B0aW9uYWwuIFRoZSBwYXRoIHRoYXQgcmVsYXRpdmUgc291cmNlcyBpbiB0aGVcbiAqICAgICAgICBTb3VyY2VNYXBDb25zdW1lciBzaG91bGQgYmUgcmVsYXRpdmUgdG8uXG4gKi9cblNvdXJjZU5vZGUuZnJvbVN0cmluZ1dpdGhTb3VyY2VNYXAgPVxuICBmdW5jdGlvbiBTb3VyY2VOb2RlX2Zyb21TdHJpbmdXaXRoU291cmNlTWFwKGFHZW5lcmF0ZWRDb2RlLCBhU291cmNlTWFwQ29uc3VtZXIsIGFSZWxhdGl2ZVBhdGgpIHtcbiAgICAvLyBUaGUgU291cmNlTm9kZSB3ZSB3YW50IHRvIGZpbGwgd2l0aCB0aGUgZ2VuZXJhdGVkIGNvZGVcbiAgICAvLyBhbmQgdGhlIFNvdXJjZU1hcFxuICAgIHZhciBub2RlID0gbmV3IFNvdXJjZU5vZGUoKTtcblxuICAgIC8vIEFsbCBldmVuIGluZGljZXMgb2YgdGhpcyBhcnJheSBhcmUgb25lIGxpbmUgb2YgdGhlIGdlbmVyYXRlZCBjb2RlLFxuICAgIC8vIHdoaWxlIGFsbCBvZGQgaW5kaWNlcyBhcmUgdGhlIG5ld2xpbmVzIGJldHdlZW4gdHdvIGFkamFjZW50IGxpbmVzXG4gICAgLy8gKHNpbmNlIGBSRUdFWF9ORVdMSU5FYCBjYXB0dXJlcyBpdHMgbWF0Y2gpLlxuICAgIC8vIFByb2Nlc3NlZCBmcmFnbWVudHMgYXJlIGFjY2Vzc2VkIGJ5IGNhbGxpbmcgYHNoaWZ0TmV4dExpbmVgLlxuICAgIHZhciByZW1haW5pbmdMaW5lcyA9IGFHZW5lcmF0ZWRDb2RlLnNwbGl0KFJFR0VYX05FV0xJTkUpO1xuICAgIHZhciByZW1haW5pbmdMaW5lc0luZGV4ID0gMDtcbiAgICB2YXIgc2hpZnROZXh0TGluZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGxpbmVDb250ZW50cyA9IGdldE5leHRMaW5lKCk7XG4gICAgICAvLyBUaGUgbGFzdCBsaW5lIG9mIGEgZmlsZSBtaWdodCBub3QgaGF2ZSBhIG5ld2xpbmUuXG4gICAgICB2YXIgbmV3TGluZSA9IGdldE5leHRMaW5lKCkgfHwgXCJcIjtcbiAgICAgIHJldHVybiBsaW5lQ29udGVudHMgKyBuZXdMaW5lO1xuXG4gICAgICBmdW5jdGlvbiBnZXROZXh0TGluZSgpIHtcbiAgICAgICAgcmV0dXJuIHJlbWFpbmluZ0xpbmVzSW5kZXggPCByZW1haW5pbmdMaW5lcy5sZW5ndGggP1xuICAgICAgICAgICAgcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleCsrXSA6IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gV2UgbmVlZCB0byByZW1lbWJlciB0aGUgcG9zaXRpb24gb2YgXCJyZW1haW5pbmdMaW5lc1wiXG4gICAgdmFyIGxhc3RHZW5lcmF0ZWRMaW5lID0gMSwgbGFzdEdlbmVyYXRlZENvbHVtbiA9IDA7XG5cbiAgICAvLyBUaGUgZ2VuZXJhdGUgU291cmNlTm9kZXMgd2UgbmVlZCBhIGNvZGUgcmFuZ2UuXG4gICAgLy8gVG8gZXh0cmFjdCBpdCBjdXJyZW50IGFuZCBsYXN0IG1hcHBpbmcgaXMgdXNlZC5cbiAgICAvLyBIZXJlIHdlIHN0b3JlIHRoZSBsYXN0IG1hcHBpbmcuXG4gICAgdmFyIGxhc3RNYXBwaW5nID0gbnVsbDtcblxuICAgIGFTb3VyY2VNYXBDb25zdW1lci5lYWNoTWFwcGluZyhmdW5jdGlvbiAobWFwcGluZykge1xuICAgICAgaWYgKGxhc3RNYXBwaW5nICE9PSBudWxsKSB7XG4gICAgICAgIC8vIFdlIGFkZCB0aGUgY29kZSBmcm9tIFwibGFzdE1hcHBpbmdcIiB0byBcIm1hcHBpbmdcIjpcbiAgICAgICAgLy8gRmlyc3QgY2hlY2sgaWYgdGhlcmUgaXMgYSBuZXcgbGluZSBpbiBiZXR3ZWVuLlxuICAgICAgICBpZiAobGFzdEdlbmVyYXRlZExpbmUgPCBtYXBwaW5nLmdlbmVyYXRlZExpbmUpIHtcbiAgICAgICAgICAvLyBBc3NvY2lhdGUgZmlyc3QgbGluZSB3aXRoIFwibGFzdE1hcHBpbmdcIlxuICAgICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgc2hpZnROZXh0TGluZSgpKTtcbiAgICAgICAgICBsYXN0R2VuZXJhdGVkTGluZSsrO1xuICAgICAgICAgIGxhc3RHZW5lcmF0ZWRDb2x1bW4gPSAwO1xuICAgICAgICAgIC8vIFRoZSByZW1haW5pbmcgY29kZSBpcyBhZGRlZCB3aXRob3V0IG1hcHBpbmdcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBUaGVyZSBpcyBubyBuZXcgbGluZSBpbiBiZXR3ZWVuLlxuICAgICAgICAgIC8vIEFzc29jaWF0ZSB0aGUgY29kZSBiZXR3ZWVuIFwibGFzdEdlbmVyYXRlZENvbHVtblwiIGFuZFxuICAgICAgICAgIC8vIFwibWFwcGluZy5nZW5lcmF0ZWRDb2x1bW5cIiB3aXRoIFwibGFzdE1hcHBpbmdcIlxuICAgICAgICAgIHZhciBuZXh0TGluZSA9IHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXhdIHx8ICcnO1xuICAgICAgICAgIHZhciBjb2RlID0gbmV4dExpbmUuc3Vic3RyKDAsIG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0R2VuZXJhdGVkQ29sdW1uKTtcbiAgICAgICAgICByZW1haW5pbmdMaW5lc1tyZW1haW5pbmdMaW5lc0luZGV4XSA9IG5leHRMaW5lLnN1YnN0cihtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEdlbmVyYXRlZENvbHVtbik7XG4gICAgICAgICAgbGFzdEdlbmVyYXRlZENvbHVtbiA9IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uO1xuICAgICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgY29kZSk7XG4gICAgICAgICAgLy8gTm8gbW9yZSByZW1haW5pbmcgY29kZSwgY29udGludWVcbiAgICAgICAgICBsYXN0TWFwcGluZyA9IG1hcHBpbmc7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBXZSBhZGQgdGhlIGdlbmVyYXRlZCBjb2RlIHVudGlsIHRoZSBmaXJzdCBtYXBwaW5nXG4gICAgICAvLyB0byB0aGUgU291cmNlTm9kZSB3aXRob3V0IGFueSBtYXBwaW5nLlxuICAgICAgLy8gRWFjaCBsaW5lIGlzIGFkZGVkIGFzIHNlcGFyYXRlIHN0cmluZy5cbiAgICAgIHdoaWxlIChsYXN0R2VuZXJhdGVkTGluZSA8IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSkge1xuICAgICAgICBub2RlLmFkZChzaGlmdE5leHRMaW5lKCkpO1xuICAgICAgICBsYXN0R2VuZXJhdGVkTGluZSsrO1xuICAgICAgfVxuICAgICAgaWYgKGxhc3RHZW5lcmF0ZWRDb2x1bW4gPCBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbikge1xuICAgICAgICB2YXIgbmV4dExpbmUgPSByZW1haW5pbmdMaW5lc1tyZW1haW5pbmdMaW5lc0luZGV4XSB8fCAnJztcbiAgICAgICAgbm9kZS5hZGQobmV4dExpbmUuc3Vic3RyKDAsIG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uKSk7XG4gICAgICAgIHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXhdID0gbmV4dExpbmUuc3Vic3RyKG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uKTtcbiAgICAgICAgbGFzdEdlbmVyYXRlZENvbHVtbiA9IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uO1xuICAgICAgfVxuICAgICAgbGFzdE1hcHBpbmcgPSBtYXBwaW5nO1xuICAgIH0sIHRoaXMpO1xuICAgIC8vIFdlIGhhdmUgcHJvY2Vzc2VkIGFsbCBtYXBwaW5ncy5cbiAgICBpZiAocmVtYWluaW5nTGluZXNJbmRleCA8IHJlbWFpbmluZ0xpbmVzLmxlbmd0aCkge1xuICAgICAgaWYgKGxhc3RNYXBwaW5nKSB7XG4gICAgICAgIC8vIEFzc29jaWF0ZSB0aGUgcmVtYWluaW5nIGNvZGUgaW4gdGhlIGN1cnJlbnQgbGluZSB3aXRoIFwibGFzdE1hcHBpbmdcIlxuICAgICAgICBhZGRNYXBwaW5nV2l0aENvZGUobGFzdE1hcHBpbmcsIHNoaWZ0TmV4dExpbmUoKSk7XG4gICAgICB9XG4gICAgICAvLyBhbmQgYWRkIHRoZSByZW1haW5pbmcgbGluZXMgd2l0aG91dCBhbnkgbWFwcGluZ1xuICAgICAgbm9kZS5hZGQocmVtYWluaW5nTGluZXMuc3BsaWNlKHJlbWFpbmluZ0xpbmVzSW5kZXgpLmpvaW4oXCJcIikpO1xuICAgIH1cblxuICAgIC8vIENvcHkgc291cmNlc0NvbnRlbnQgaW50byBTb3VyY2VOb2RlXG4gICAgYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZXMuZm9yRWFjaChmdW5jdGlvbiAoc291cmNlRmlsZSkge1xuICAgICAgdmFyIGNvbnRlbnQgPSBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlQ29udGVudEZvcihzb3VyY2VGaWxlKTtcbiAgICAgIGlmIChjb250ZW50ICE9IG51bGwpIHtcbiAgICAgICAgaWYgKGFSZWxhdGl2ZVBhdGggIT0gbnVsbCkge1xuICAgICAgICAgIHNvdXJjZUZpbGUgPSB1dGlsLmpvaW4oYVJlbGF0aXZlUGF0aCwgc291cmNlRmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZS5zZXRTb3VyY2VDb250ZW50KHNvdXJjZUZpbGUsIGNvbnRlbnQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5vZGU7XG5cbiAgICBmdW5jdGlvbiBhZGRNYXBwaW5nV2l0aENvZGUobWFwcGluZywgY29kZSkge1xuICAgICAgaWYgKG1hcHBpbmcgPT09IG51bGwgfHwgbWFwcGluZy5zb3VyY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBub2RlLmFkZChjb2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSBhUmVsYXRpdmVQYXRoXG4gICAgICAgICAgPyB1dGlsLmpvaW4oYVJlbGF0aXZlUGF0aCwgbWFwcGluZy5zb3VyY2UpXG4gICAgICAgICAgOiBtYXBwaW5nLnNvdXJjZTtcbiAgICAgICAgbm9kZS5hZGQobmV3IFNvdXJjZU5vZGUobWFwcGluZy5vcmlnaW5hbExpbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxDb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZy5uYW1lKSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIEFkZCBhIGNodW5rIG9mIGdlbmVyYXRlZCBKUyB0byB0aGlzIHNvdXJjZSBub2RlLlxuICpcbiAqIEBwYXJhbSBhQ2h1bmsgQSBzdHJpbmcgc25pcHBldCBvZiBnZW5lcmF0ZWQgSlMgY29kZSwgYW5vdGhlciBpbnN0YW5jZSBvZlxuICogICAgICAgIFNvdXJjZU5vZGUsIG9yIGFuIGFycmF5IHdoZXJlIGVhY2ggbWVtYmVyIGlzIG9uZSBvZiB0aG9zZSB0aGluZ3MuXG4gKi9cblNvdXJjZU5vZGUucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIFNvdXJjZU5vZGVfYWRkKGFDaHVuaykge1xuICBpZiAoQXJyYXkuaXNBcnJheShhQ2h1bmspKSB7XG4gICAgYUNodW5rLmZvckVhY2goZnVuY3Rpb24gKGNodW5rKSB7XG4gICAgICB0aGlzLmFkZChjaHVuayk7XG4gICAgfSwgdGhpcyk7XG4gIH1cbiAgZWxzZSBpZiAoYUNodW5rW2lzU291cmNlTm9kZV0gfHwgdHlwZW9mIGFDaHVuayA9PT0gXCJzdHJpbmdcIikge1xuICAgIGlmIChhQ2h1bmspIHtcbiAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaChhQ2h1bmspO1xuICAgIH1cbiAgfVxuICBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgXCJFeHBlY3RlZCBhIFNvdXJjZU5vZGUsIHN0cmluZywgb3IgYW4gYXJyYXkgb2YgU291cmNlTm9kZXMgYW5kIHN0cmluZ3MuIEdvdCBcIiArIGFDaHVua1xuICAgICk7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEFkZCBhIGNodW5rIG9mIGdlbmVyYXRlZCBKUyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgc291cmNlIG5vZGUuXG4gKlxuICogQHBhcmFtIGFDaHVuayBBIHN0cmluZyBzbmlwcGV0IG9mIGdlbmVyYXRlZCBKUyBjb2RlLCBhbm90aGVyIGluc3RhbmNlIG9mXG4gKiAgICAgICAgU291cmNlTm9kZSwgb3IgYW4gYXJyYXkgd2hlcmUgZWFjaCBtZW1iZXIgaXMgb25lIG9mIHRob3NlIHRoaW5ncy5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUucHJlcGVuZCA9IGZ1bmN0aW9uIFNvdXJjZU5vZGVfcHJlcGVuZChhQ2h1bmspIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYUNodW5rKSkge1xuICAgIGZvciAodmFyIGkgPSBhQ2h1bmsubGVuZ3RoLTE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB0aGlzLnByZXBlbmQoYUNodW5rW2ldKTtcbiAgICB9XG4gIH1cbiAgZWxzZSBpZiAoYUNodW5rW2lzU291cmNlTm9kZV0gfHwgdHlwZW9mIGFDaHVuayA9PT0gXCJzdHJpbmdcIikge1xuICAgIHRoaXMuY2hpbGRyZW4udW5zaGlmdChhQ2h1bmspO1xuICB9XG4gIGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICBcIkV4cGVjdGVkIGEgU291cmNlTm9kZSwgc3RyaW5nLCBvciBhbiBhcnJheSBvZiBTb3VyY2VOb2RlcyBhbmQgc3RyaW5ncy4gR290IFwiICsgYUNodW5rXG4gICAgKTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogV2FsayBvdmVyIHRoZSB0cmVlIG9mIEpTIHNuaXBwZXRzIGluIHRoaXMgbm9kZSBhbmQgaXRzIGNoaWxkcmVuLiBUaGVcbiAqIHdhbGtpbmcgZnVuY3Rpb24gaXMgY2FsbGVkIG9uY2UgZm9yIGVhY2ggc25pcHBldCBvZiBKUyBhbmQgaXMgcGFzc2VkIHRoYXRcbiAqIHNuaXBwZXQgYW5kIHRoZSBpdHMgb3JpZ2luYWwgYXNzb2NpYXRlZCBzb3VyY2UncyBsaW5lL2NvbHVtbiBsb2NhdGlvbi5cbiAqXG4gKiBAcGFyYW0gYUZuIFRoZSB0cmF2ZXJzYWwgZnVuY3Rpb24uXG4gKi9cblNvdXJjZU5vZGUucHJvdG90eXBlLndhbGsgPSBmdW5jdGlvbiBTb3VyY2VOb2RlX3dhbGsoYUZuKSB7XG4gIHZhciBjaHVuaztcbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjaHVuayA9IHRoaXMuY2hpbGRyZW5baV07XG4gICAgaWYgKGNodW5rW2lzU291cmNlTm9kZV0pIHtcbiAgICAgIGNodW5rLndhbGsoYUZuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBpZiAoY2h1bmsgIT09ICcnKSB7XG4gICAgICAgIGFGbihjaHVuaywgeyBzb3VyY2U6IHRoaXMuc291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgbGluZTogdGhpcy5saW5lLFxuICAgICAgICAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogTGlrZSBgU3RyaW5nLnByb3RvdHlwZS5qb2luYCBleGNlcHQgZm9yIFNvdXJjZU5vZGVzLiBJbnNlcnRzIGBhU3RyYCBiZXR3ZWVuXG4gKiBlYWNoIG9mIGB0aGlzLmNoaWxkcmVuYC5cbiAqXG4gKiBAcGFyYW0gYVNlcCBUaGUgc2VwYXJhdG9yLlxuICovXG5Tb3VyY2VOb2RlLnByb3RvdHlwZS5qb2luID0gZnVuY3Rpb24gU291cmNlTm9kZV9qb2luKGFTZXApIHtcbiAgdmFyIG5ld0NoaWxkcmVuO1xuICB2YXIgaTtcbiAgdmFyIGxlbiA9IHRoaXMuY2hpbGRyZW4ubGVuZ3RoO1xuICBpZiAobGVuID4gMCkge1xuICAgIG5ld0NoaWxkcmVuID0gW107XG4gICAgZm9yIChpID0gMDsgaSA8IGxlbi0xOyBpKyspIHtcbiAgICAgIG5ld0NoaWxkcmVuLnB1c2godGhpcy5jaGlsZHJlbltpXSk7XG4gICAgICBuZXdDaGlsZHJlbi5wdXNoKGFTZXApO1xuICAgIH1cbiAgICBuZXdDaGlsZHJlbi5wdXNoKHRoaXMuY2hpbGRyZW5baV0pO1xuICAgIHRoaXMuY2hpbGRyZW4gPSBuZXdDaGlsZHJlbjtcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQ2FsbCBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2Ugb24gdGhlIHZlcnkgcmlnaHQtbW9zdCBzb3VyY2Ugc25pcHBldC4gVXNlZnVsXG4gKiBmb3IgdHJpbW1pbmcgd2hpdGVzcGFjZSBmcm9tIHRoZSBlbmQgb2YgYSBzb3VyY2Ugbm9kZSwgZXRjLlxuICpcbiAqIEBwYXJhbSBhUGF0dGVybiBUaGUgcGF0dGVybiB0byByZXBsYWNlLlxuICogQHBhcmFtIGFSZXBsYWNlbWVudCBUaGUgdGhpbmcgdG8gcmVwbGFjZSB0aGUgcGF0dGVybiB3aXRoLlxuICovXG5Tb3VyY2VOb2RlLnByb3RvdHlwZS5yZXBsYWNlUmlnaHQgPSBmdW5jdGlvbiBTb3VyY2VOb2RlX3JlcGxhY2VSaWdodChhUGF0dGVybiwgYVJlcGxhY2VtZW50KSB7XG4gIHZhciBsYXN0Q2hpbGQgPSB0aGlzLmNoaWxkcmVuW3RoaXMuY2hpbGRyZW4ubGVuZ3RoIC0gMV07XG4gIGlmIChsYXN0Q2hpbGRbaXNTb3VyY2VOb2RlXSkge1xuICAgIGxhc3RDaGlsZC5yZXBsYWNlUmlnaHQoYVBhdHRlcm4sIGFSZXBsYWNlbWVudCk7XG4gIH1cbiAgZWxzZSBpZiAodHlwZW9mIGxhc3RDaGlsZCA9PT0gJ3N0cmluZycpIHtcbiAgICB0aGlzLmNoaWxkcmVuW3RoaXMuY2hpbGRyZW4ubGVuZ3RoIC0gMV0gPSBsYXN0Q2hpbGQucmVwbGFjZShhUGF0dGVybiwgYVJlcGxhY2VtZW50KTtcbiAgfVxuICBlbHNlIHtcbiAgICB0aGlzLmNoaWxkcmVuLnB1c2goJycucmVwbGFjZShhUGF0dGVybiwgYVJlcGxhY2VtZW50KSk7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGEgc291cmNlIGZpbGUuIFRoaXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgU291cmNlTWFwR2VuZXJhdG9yXG4gKiBpbiB0aGUgc291cmNlc0NvbnRlbnQgZmllbGQuXG4gKlxuICogQHBhcmFtIGFTb3VyY2VGaWxlIFRoZSBmaWxlbmFtZSBvZiB0aGUgc291cmNlIGZpbGVcbiAqIEBwYXJhbSBhU291cmNlQ29udGVudCBUaGUgY29udGVudCBvZiB0aGUgc291cmNlIGZpbGVcbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUuc2V0U291cmNlQ29udGVudCA9XG4gIGZ1bmN0aW9uIFNvdXJjZU5vZGVfc2V0U291cmNlQ29udGVudChhU291cmNlRmlsZSwgYVNvdXJjZUNvbnRlbnQpIHtcbiAgICB0aGlzLnNvdXJjZUNvbnRlbnRzW3V0aWwudG9TZXRTdHJpbmcoYVNvdXJjZUZpbGUpXSA9IGFTb3VyY2VDb250ZW50O1xuICB9O1xuXG4vKipcbiAqIFdhbGsgb3ZlciB0aGUgdHJlZSBvZiBTb3VyY2VOb2Rlcy4gVGhlIHdhbGtpbmcgZnVuY3Rpb24gaXMgY2FsbGVkIGZvciBlYWNoXG4gKiBzb3VyY2UgZmlsZSBjb250ZW50IGFuZCBpcyBwYXNzZWQgdGhlIGZpbGVuYW1lIGFuZCBzb3VyY2UgY29udGVudC5cbiAqXG4gKiBAcGFyYW0gYUZuIFRoZSB0cmF2ZXJzYWwgZnVuY3Rpb24uXG4gKi9cblNvdXJjZU5vZGUucHJvdG90eXBlLndhbGtTb3VyY2VDb250ZW50cyA9XG4gIGZ1bmN0aW9uIFNvdXJjZU5vZGVfd2Fsa1NvdXJjZUNvbnRlbnRzKGFGbikge1xuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5jaGlsZHJlbltpXVtpc1NvdXJjZU5vZGVdKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW5baV0ud2Fsa1NvdXJjZUNvbnRlbnRzKGFGbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHNvdXJjZXMgPSBPYmplY3Qua2V5cyh0aGlzLnNvdXJjZUNvbnRlbnRzKTtcbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gc291cmNlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgYUZuKHV0aWwuZnJvbVNldFN0cmluZyhzb3VyY2VzW2ldKSwgdGhpcy5zb3VyY2VDb250ZW50c1tzb3VyY2VzW2ldXSk7XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIFJldHVybiB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc291cmNlIG5vZGUuIFdhbGtzIG92ZXIgdGhlIHRyZWVcbiAqIGFuZCBjb25jYXRlbmF0ZXMgYWxsIHRoZSB2YXJpb3VzIHNuaXBwZXRzIHRvZ2V0aGVyIHRvIG9uZSBzdHJpbmcuXG4gKi9cblNvdXJjZU5vZGUucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gU291cmNlTm9kZV90b1N0cmluZygpIHtcbiAgdmFyIHN0ciA9IFwiXCI7XG4gIHRoaXMud2FsayhmdW5jdGlvbiAoY2h1bmspIHtcbiAgICBzdHIgKz0gY2h1bms7XG4gIH0pO1xuICByZXR1cm4gc3RyO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzb3VyY2Ugbm9kZSBhbG9uZyB3aXRoIGEgc291cmNlXG4gKiBtYXAuXG4gKi9cblNvdXJjZU5vZGUucHJvdG90eXBlLnRvU3RyaW5nV2l0aFNvdXJjZU1hcCA9IGZ1bmN0aW9uIFNvdXJjZU5vZGVfdG9TdHJpbmdXaXRoU291cmNlTWFwKGFBcmdzKSB7XG4gIHZhciBnZW5lcmF0ZWQgPSB7XG4gICAgY29kZTogXCJcIixcbiAgICBsaW5lOiAxLFxuICAgIGNvbHVtbjogMFxuICB9O1xuICB2YXIgbWFwID0gbmV3IFNvdXJjZU1hcEdlbmVyYXRvcihhQXJncyk7XG4gIHZhciBzb3VyY2VNYXBwaW5nQWN0aXZlID0gZmFsc2U7XG4gIHZhciBsYXN0T3JpZ2luYWxTb3VyY2UgPSBudWxsO1xuICB2YXIgbGFzdE9yaWdpbmFsTGluZSA9IG51bGw7XG4gIHZhciBsYXN0T3JpZ2luYWxDb2x1bW4gPSBudWxsO1xuICB2YXIgbGFzdE9yaWdpbmFsTmFtZSA9IG51bGw7XG4gIHRoaXMud2FsayhmdW5jdGlvbiAoY2h1bmssIG9yaWdpbmFsKSB7XG4gICAgZ2VuZXJhdGVkLmNvZGUgKz0gY2h1bms7XG4gICAgaWYgKG9yaWdpbmFsLnNvdXJjZSAhPT0gbnVsbFxuICAgICAgICAmJiBvcmlnaW5hbC5saW5lICE9PSBudWxsXG4gICAgICAgICYmIG9yaWdpbmFsLmNvbHVtbiAhPT0gbnVsbCkge1xuICAgICAgaWYobGFzdE9yaWdpbmFsU291cmNlICE9PSBvcmlnaW5hbC5zb3VyY2VcbiAgICAgICAgIHx8IGxhc3RPcmlnaW5hbExpbmUgIT09IG9yaWdpbmFsLmxpbmVcbiAgICAgICAgIHx8IGxhc3RPcmlnaW5hbENvbHVtbiAhPT0gb3JpZ2luYWwuY29sdW1uXG4gICAgICAgICB8fCBsYXN0T3JpZ2luYWxOYW1lICE9PSBvcmlnaW5hbC5uYW1lKSB7XG4gICAgICAgIG1hcC5hZGRNYXBwaW5nKHtcbiAgICAgICAgICBzb3VyY2U6IG9yaWdpbmFsLnNvdXJjZSxcbiAgICAgICAgICBvcmlnaW5hbDoge1xuICAgICAgICAgICAgbGluZTogb3JpZ2luYWwubGluZSxcbiAgICAgICAgICAgIGNvbHVtbjogb3JpZ2luYWwuY29sdW1uXG4gICAgICAgICAgfSxcbiAgICAgICAgICBnZW5lcmF0ZWQ6IHtcbiAgICAgICAgICAgIGxpbmU6IGdlbmVyYXRlZC5saW5lLFxuICAgICAgICAgICAgY29sdW1uOiBnZW5lcmF0ZWQuY29sdW1uXG4gICAgICAgICAgfSxcbiAgICAgICAgICBuYW1lOiBvcmlnaW5hbC5uYW1lXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgbGFzdE9yaWdpbmFsU291cmNlID0gb3JpZ2luYWwuc291cmNlO1xuICAgICAgbGFzdE9yaWdpbmFsTGluZSA9IG9yaWdpbmFsLmxpbmU7XG4gICAgICBsYXN0T3JpZ2luYWxDb2x1bW4gPSBvcmlnaW5hbC5jb2x1bW47XG4gICAgICBsYXN0T3JpZ2luYWxOYW1lID0gb3JpZ2luYWwubmFtZTtcbiAgICAgIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoc291cmNlTWFwcGluZ0FjdGl2ZSkge1xuICAgICAgbWFwLmFkZE1hcHBpbmcoe1xuICAgICAgICBnZW5lcmF0ZWQ6IHtcbiAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWQubGluZSxcbiAgICAgICAgICBjb2x1bW46IGdlbmVyYXRlZC5jb2x1bW5cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBsYXN0T3JpZ2luYWxTb3VyY2UgPSBudWxsO1xuICAgICAgc291cmNlTWFwcGluZ0FjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKHZhciBpZHggPSAwLCBsZW5ndGggPSBjaHVuay5sZW5ndGg7IGlkeCA8IGxlbmd0aDsgaWR4KyspIHtcbiAgICAgIGlmIChjaHVuay5jaGFyQ29kZUF0KGlkeCkgPT09IE5FV0xJTkVfQ09ERSkge1xuICAgICAgICBnZW5lcmF0ZWQubGluZSsrO1xuICAgICAgICBnZW5lcmF0ZWQuY29sdW1uID0gMDtcbiAgICAgICAgLy8gTWFwcGluZ3MgZW5kIGF0IGVvbFxuICAgICAgICBpZiAoaWR4ICsgMSA9PT0gbGVuZ3RoKSB7XG4gICAgICAgICAgbGFzdE9yaWdpbmFsU291cmNlID0gbnVsbDtcbiAgICAgICAgICBzb3VyY2VNYXBwaW5nQWN0aXZlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSBpZiAoc291cmNlTWFwcGluZ0FjdGl2ZSkge1xuICAgICAgICAgIG1hcC5hZGRNYXBwaW5nKHtcbiAgICAgICAgICAgIHNvdXJjZTogb3JpZ2luYWwuc291cmNlLFxuICAgICAgICAgICAgb3JpZ2luYWw6IHtcbiAgICAgICAgICAgICAgbGluZTogb3JpZ2luYWwubGluZSxcbiAgICAgICAgICAgICAgY29sdW1uOiBvcmlnaW5hbC5jb2x1bW5cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZW5lcmF0ZWQ6IHtcbiAgICAgICAgICAgICAgbGluZTogZ2VuZXJhdGVkLmxpbmUsXG4gICAgICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkLmNvbHVtblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5hbWU6IG9yaWdpbmFsLm5hbWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZ2VuZXJhdGVkLmNvbHVtbisrO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHRoaXMud2Fsa1NvdXJjZUNvbnRlbnRzKGZ1bmN0aW9uIChzb3VyY2VGaWxlLCBzb3VyY2VDb250ZW50KSB7XG4gICAgbWFwLnNldFNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgc291cmNlQ29udGVudCk7XG4gIH0pO1xuXG4gIHJldHVybiB7IGNvZGU6IGdlbmVyYXRlZC5jb2RlLCBtYXA6IG1hcCB9O1xufTtcblxuZXhwb3J0cy5Tb3VyY2VOb2RlID0gU291cmNlTm9kZTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwOS0yMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRS50eHQgb3I6XG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlXG4gKi9cbmV4cG9ydHMuU291cmNlTWFwR2VuZXJhdG9yID0gcmVxdWlyZSgnLi9saWIvc291cmNlLW1hcC1nZW5lcmF0b3InKS5Tb3VyY2VNYXBHZW5lcmF0b3I7XG5leHBvcnRzLlNvdXJjZU1hcENvbnN1bWVyID0gcmVxdWlyZSgnLi9saWIvc291cmNlLW1hcC1jb25zdW1lcicpLlNvdXJjZU1hcENvbnN1bWVyO1xuZXhwb3J0cy5Tb3VyY2VOb2RlID0gcmVxdWlyZSgnLi9saWIvc291cmNlLW5vZGUnKS5Tb3VyY2VOb2RlO1xuIiwiLyogZ2xvYmFsIGRlZmluZSAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX3V0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMnKTtcblxudmFyIFNvdXJjZU5vZGUgPSB1bmRlZmluZWQ7XG5cbnRyeSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmICh0eXBlb2YgZGVmaW5lICE9PSAnZnVuY3Rpb24nIHx8ICFkZWZpbmUuYW1kKSB7XG4gICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCB0aGlzIGluIEFNRCBlbnZpcm9ubWVudHMuIEZvciB0aGVzZSBlbnZpcm9ubWVudHMsIHdlIGFzdXNtZSB0aGF0XG4gICAgLy8gdGhleSBhcmUgcnVubmluZyBvbiB0aGUgYnJvd3NlciBhbmQgdGh1cyBoYXZlIG5vIG5lZWQgZm9yIHRoZSBzb3VyY2UtbWFwIGxpYnJhcnkuXG4gICAgdmFyIFNvdXJjZU1hcCA9IHJlcXVpcmUoJ3NvdXJjZS1tYXAnKTtcbiAgICBTb3VyY2VOb2RlID0gU291cmNlTWFwLlNvdXJjZU5vZGU7XG4gIH1cbn0gY2F0Y2ggKGVycikge31cbi8qIE5PUCAqL1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWY6IHRlc3RlZCBidXQgbm90IGNvdmVyZWQgaW4gaXN0YW5idWwgZHVlIHRvIGRpc3QgYnVpbGQgICovXG5pZiAoIVNvdXJjZU5vZGUpIHtcbiAgU291cmNlTm9kZSA9IGZ1bmN0aW9uIChsaW5lLCBjb2x1bW4sIHNyY0ZpbGUsIGNodW5rcykge1xuICAgIHRoaXMuc3JjID0gJyc7XG4gICAgaWYgKGNodW5rcykge1xuICAgICAgdGhpcy5hZGQoY2h1bmtzKTtcbiAgICB9XG4gIH07XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIFNvdXJjZU5vZGUucHJvdG90eXBlID0ge1xuICAgIGFkZDogZnVuY3Rpb24gYWRkKGNodW5rcykge1xuICAgICAgaWYgKF91dGlscy5pc0FycmF5KGNodW5rcykpIHtcbiAgICAgICAgY2h1bmtzID0gY2h1bmtzLmpvaW4oJycpO1xuICAgICAgfVxuICAgICAgdGhpcy5zcmMgKz0gY2h1bmtzO1xuICAgIH0sXG4gICAgcHJlcGVuZDogZnVuY3Rpb24gcHJlcGVuZChjaHVua3MpIHtcbiAgICAgIGlmIChfdXRpbHMuaXNBcnJheShjaHVua3MpKSB7XG4gICAgICAgIGNodW5rcyA9IGNodW5rcy5qb2luKCcnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3JjID0gY2h1bmtzICsgdGhpcy5zcmM7XG4gICAgfSxcbiAgICB0b1N0cmluZ1dpdGhTb3VyY2VNYXA6IGZ1bmN0aW9uIHRvU3RyaW5nV2l0aFNvdXJjZU1hcCgpIHtcbiAgICAgIHJldHVybiB7IGNvZGU6IHRoaXMudG9TdHJpbmcoKSB9O1xuICAgIH0sXG4gICAgdG9TdHJpbmc6IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgICAgcmV0dXJuIHRoaXMuc3JjO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gY2FzdENodW5rKGNodW5rLCBjb2RlR2VuLCBsb2MpIHtcbiAgaWYgKF91dGlscy5pc0FycmF5KGNodW5rKSkge1xuICAgIHZhciByZXQgPSBbXTtcblxuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBjaHVuay5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgcmV0LnB1c2goY29kZUdlbi53cmFwKGNodW5rW2ldLCBsb2MpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgY2h1bmsgPT09ICdib29sZWFuJyB8fCB0eXBlb2YgY2h1bmsgPT09ICdudW1iZXInKSB7XG4gICAgLy8gSGFuZGxlIHByaW1pdGl2ZXMgdGhhdCB0aGUgU291cmNlTm9kZSB3aWxsIHRocm93IHVwIG9uXG4gICAgcmV0dXJuIGNodW5rICsgJyc7XG4gIH1cbiAgcmV0dXJuIGNodW5rO1xufVxuXG5mdW5jdGlvbiBDb2RlR2VuKHNyY0ZpbGUpIHtcbiAgdGhpcy5zcmNGaWxlID0gc3JjRmlsZTtcbiAgdGhpcy5zb3VyY2UgPSBbXTtcbn1cblxuQ29kZUdlbi5wcm90b3R5cGUgPSB7XG4gIGlzRW1wdHk6IGZ1bmN0aW9uIGlzRW1wdHkoKSB7XG4gICAgcmV0dXJuICF0aGlzLnNvdXJjZS5sZW5ndGg7XG4gIH0sXG4gIHByZXBlbmQ6IGZ1bmN0aW9uIHByZXBlbmQoc291cmNlLCBsb2MpIHtcbiAgICB0aGlzLnNvdXJjZS51bnNoaWZ0KHRoaXMud3JhcChzb3VyY2UsIGxvYykpO1xuICB9LFxuICBwdXNoOiBmdW5jdGlvbiBwdXNoKHNvdXJjZSwgbG9jKSB7XG4gICAgdGhpcy5zb3VyY2UucHVzaCh0aGlzLndyYXAoc291cmNlLCBsb2MpKTtcbiAgfSxcblxuICBtZXJnZTogZnVuY3Rpb24gbWVyZ2UoKSB7XG4gICAgdmFyIHNvdXJjZSA9IHRoaXMuZW1wdHkoKTtcbiAgICB0aGlzLmVhY2goZnVuY3Rpb24gKGxpbmUpIHtcbiAgICAgIHNvdXJjZS5hZGQoWycgICcsIGxpbmUsICdcXG4nXSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfSxcblxuICBlYWNoOiBmdW5jdGlvbiBlYWNoKGl0ZXIpIHtcbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gdGhpcy5zb3VyY2UubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGl0ZXIodGhpcy5zb3VyY2VbaV0pO1xuICAgIH1cbiAgfSxcblxuICBlbXB0eTogZnVuY3Rpb24gZW1wdHkoKSB7XG4gICAgdmFyIGxvYyA9IHRoaXMuY3VycmVudExvY2F0aW9uIHx8IHsgc3RhcnQ6IHt9IH07XG4gICAgcmV0dXJuIG5ldyBTb3VyY2VOb2RlKGxvYy5zdGFydC5saW5lLCBsb2Muc3RhcnQuY29sdW1uLCB0aGlzLnNyY0ZpbGUpO1xuICB9LFxuICB3cmFwOiBmdW5jdGlvbiB3cmFwKGNodW5rKSB7XG4gICAgdmFyIGxvYyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IHRoaXMuY3VycmVudExvY2F0aW9uIHx8IHsgc3RhcnQ6IHt9IH0gOiBhcmd1bWVudHNbMV07XG5cbiAgICBpZiAoY2h1bmsgaW5zdGFuY2VvZiBTb3VyY2VOb2RlKSB7XG4gICAgICByZXR1cm4gY2h1bms7XG4gICAgfVxuXG4gICAgY2h1bmsgPSBjYXN0Q2h1bmsoY2h1bmssIHRoaXMsIGxvYyk7XG5cbiAgICByZXR1cm4gbmV3IFNvdXJjZU5vZGUobG9jLnN0YXJ0LmxpbmUsIGxvYy5zdGFydC5jb2x1bW4sIHRoaXMuc3JjRmlsZSwgY2h1bmspO1xuICB9LFxuXG4gIGZ1bmN0aW9uQ2FsbDogZnVuY3Rpb24gZnVuY3Rpb25DYWxsKGZuLCB0eXBlLCBwYXJhbXMpIHtcbiAgICBwYXJhbXMgPSB0aGlzLmdlbmVyYXRlTGlzdChwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLndyYXAoW2ZuLCB0eXBlID8gJy4nICsgdHlwZSArICcoJyA6ICcoJywgcGFyYW1zLCAnKSddKTtcbiAgfSxcblxuICBxdW90ZWRTdHJpbmc6IGZ1bmN0aW9uIHF1b3RlZFN0cmluZyhzdHIpIHtcbiAgICByZXR1cm4gJ1wiJyArIChzdHIgKyAnJykucmVwbGFjZSgvXFxcXC9nLCAnXFxcXFxcXFwnKS5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csICdcXFxcbicpLnJlcGxhY2UoL1xcci9nLCAnXFxcXHInKS5yZXBsYWNlKC9cXHUyMDI4L2csICdcXFxcdTIwMjgnKSAvLyBQZXIgRWNtYS0yNjIgNy4zICsgNy44LjRcbiAgICAucmVwbGFjZSgvXFx1MjAyOS9nLCAnXFxcXHUyMDI5JykgKyAnXCInO1xuICB9LFxuXG4gIG9iamVjdExpdGVyYWw6IGZ1bmN0aW9uIG9iamVjdExpdGVyYWwob2JqKSB7XG4gICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcblxuICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICB2YXIgcGFpcnMgPSBbXTtcblxuICAgIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICB2YXIgdmFsdWUgPSBjYXN0Q2h1bmsob2JqW2tleV0sIF90aGlzKTtcbiAgICAgIGlmICh2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcGFpcnMucHVzaChbX3RoaXMucXVvdGVkU3RyaW5nKGtleSksICc6JywgdmFsdWVdKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHZhciByZXQgPSB0aGlzLmdlbmVyYXRlTGlzdChwYWlycyk7XG4gICAgcmV0LnByZXBlbmQoJ3snKTtcbiAgICByZXQuYWRkKCd9Jyk7XG4gICAgcmV0dXJuIHJldDtcbiAgfSxcblxuICBnZW5lcmF0ZUxpc3Q6IGZ1bmN0aW9uIGdlbmVyYXRlTGlzdChlbnRyaWVzKSB7XG4gICAgdmFyIHJldCA9IHRoaXMuZW1wdHkoKTtcblxuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBlbnRyaWVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBpZiAoaSkge1xuICAgICAgICByZXQuYWRkKCcsJyk7XG4gICAgICB9XG5cbiAgICAgIHJldC5hZGQoY2FzdENodW5rKGVudHJpZXNbaV0sIHRoaXMpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9LFxuXG4gIGdlbmVyYXRlQXJyYXk6IGZ1bmN0aW9uIGdlbmVyYXRlQXJyYXkoZW50cmllcykge1xuICAgIHZhciByZXQgPSB0aGlzLmdlbmVyYXRlTGlzdChlbnRyaWVzKTtcbiAgICByZXQucHJlcGVuZCgnWycpO1xuICAgIHJldC5hZGQoJ10nKTtcblxuICAgIHJldHVybiByZXQ7XG4gIH1cbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IENvZGVHZW47XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMMnhwWWk5b1lXNWtiR1ZpWVhKekwyTnZiWEJwYkdWeUwyTnZaR1V0WjJWdUxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3TzNGQ1FVTjNRaXhWUVVGVk96dEJRVVZzUXl4SlFVRkpMRlZCUVZVc1dVRkJRU3hEUVVGRE96dEJRVVZtTEVsQlFVazdPMEZCUlVZc1RVRkJTU3hQUVVGUExFMUJRVTBzUzBGQlN5eFZRVUZWTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhGUVVGRk96czdRVUZITDBNc1VVRkJTU3hUUVVGVExFZEJRVWNzVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMEZCUTNSRExHTkJRVlVzUjBGQlJ5eFRRVUZUTEVOQlFVTXNWVUZCVlN4RFFVRkRPMGRCUTI1RE8wTkJRMFlzUTBGQlF5eFBRVUZQTEVkQlFVY3NSVUZCUlN4RlFVVmlPenM3TzBGQlFVRXNRVUZIUkN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRk8wRkJRMllzV1VGQlZTeEhRVUZITEZWQlFWTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzVFVGQlRTeEZRVUZGTzBGQlEyNUVMRkZCUVVrc1EwRkJReXhIUVVGSExFZEJRVWNzUlVGQlJTeERRVUZETzBGQlEyUXNVVUZCU1N4TlFVRk5MRVZCUVVVN1FVRkRWaXhWUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMHRCUTJ4Q08wZEJRMFlzUTBGQlF6czdRVUZGUml4WlFVRlZMRU5CUVVNc1UwRkJVeXhIUVVGSE8wRkJRM0pDTEU5QlFVY3NSVUZCUlN4aFFVRlRMRTFCUVUwc1JVRkJSVHRCUVVOd1FpeFZRVUZKTEdWQlFWRXNUVUZCVFN4RFFVRkRMRVZCUVVVN1FVRkRia0lzWTBGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03VDBGRE1VSTdRVUZEUkN4VlFVRkpMRU5CUVVNc1IwRkJSeXhKUVVGSkxFMUJRVTBzUTBGQlF6dExRVU53UWp0QlFVTkVMRmRCUVU4c1JVRkJSU3hwUWtGQlV5eE5RVUZOTEVWQlFVVTdRVUZEZUVJc1ZVRkJTU3hsUVVGUkxFMUJRVTBzUTBGQlF5eEZRVUZGTzBGQlEyNUNMR05CUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMDlCUXpGQ08wRkJRMFFzVlVGQlNTeERRVUZETEVkQlFVY3NSMEZCUnl4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF6dExRVU01UWp0QlFVTkVMSGxDUVVGeFFpeEZRVUZGTEdsRFFVRlhPMEZCUTJoRExHRkJRVThzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRkxFTkJRVU03UzBGRGJFTTdRVUZEUkN4WlFVRlJMRVZCUVVVc2IwSkJRVmM3UVVGRGJrSXNZVUZCVHl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRE8wdEJRMnBDTzBkQlEwWXNRMEZCUXp0RFFVTklPenRCUVVWRUxGTkJRVk1zVTBGQlV5eERRVUZETEV0QlFVc3NSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhGUVVGRk8wRkJRM1JETEUxQlFVa3NaVUZCVVN4TFFVRkxMRU5CUVVNc1JVRkJSVHRCUVVOc1FpeFJRVUZKTEVkQlFVY3NSMEZCUnl4RlFVRkZMRU5CUVVNN08wRkJSV0lzVTBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhIUVVGSExFdEJRVXNzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4SFFVRkhMRWRCUVVjc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdEJRVU5vUkN4VFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdTMEZEZGtNN1FVRkRSQ3hYUVVGUExFZEJRVWNzUTBGQlF6dEhRVU5hTEUxQlFVMHNTVUZCU1N4UFFVRlBMRXRCUVVzc1MwRkJTeXhUUVVGVExFbEJRVWtzVDBGQlR5eExRVUZMTEV0QlFVc3NVVUZCVVN4RlFVRkZPenRCUVVWc1JTeFhRVUZQTEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNN1IwRkRia0k3UVVGRFJDeFRRVUZQTEV0QlFVc3NRMEZCUXp0RFFVTmtPenRCUVVWRUxGTkJRVk1zVDBGQlR5eERRVUZETEU5QlFVOHNSVUZCUlR0QlFVTjRRaXhOUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEU5QlFVOHNRMEZCUXp0QlFVTjJRaXhOUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEVWQlFVVXNRMEZCUXp0RFFVTnNRanM3UVVGRlJDeFBRVUZQTEVOQlFVTXNVMEZCVXl4SFFVRkhPMEZCUTJ4Q0xGTkJRVThzUlVGQlFTeHRRa0ZCUnp0QlFVTlNMRmRCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXp0SFFVTTFRanRCUVVORUxGTkJRVThzUlVGQlJTeHBRa0ZCVXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRk8wRkJRemRDTEZGQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03UjBGRE4wTTdRVUZEUkN4TlFVRkpMRVZCUVVVc1kwRkJVeXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTzBGQlF6RkNMRkZCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdSMEZETVVNN08wRkJSVVFzVDBGQlN5eEZRVUZGTEdsQ1FVRlhPMEZCUTJoQ0xGRkJRVWtzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJRenRCUVVNeFFpeFJRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZNc1NVRkJTU3hGUVVGRk8wRkJRM1pDTEZsQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRhRU1zUTBGQlF5eERRVUZETzBGQlEwZ3NWMEZCVHl4TlFVRk5MRU5CUVVNN1IwRkRaanM3UVVGRlJDeE5RVUZKTEVWQlFVVXNZMEZCVXl4SlFVRkpMRVZCUVVVN1FVRkRia0lzVTBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdRVUZEZEVRc1ZVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOMFFqdEhRVU5HT3p0QlFVVkVMRTlCUVVzc1JVRkJSU3hwUWtGQlZ6dEJRVU5vUWl4UlFVRkpMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zWlVGQlpTeEpRVUZKTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRE8wRkJRMmhFTEZkQlFVOHNTVUZCU1N4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVWQlFVVXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGRCUTNaRk8wRkJRMFFzVFVGQlNTeEZRVUZGTEdOQlFWTXNTMEZCU3l4RlFVRXJRenRSUVVFM1F5eEhRVUZITEhsRVFVRkhMRWxCUVVrc1EwRkJReXhsUVVGbExFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4RlFVRkZPenRCUVVNdlJDeFJRVUZKTEV0QlFVc3NXVUZCV1N4VlFVRlZMRVZCUVVVN1FVRkRMMElzWVVGQlR5eExRVUZMTEVOQlFVTTdTMEZEWkRzN1FVRkZSQ3hUUVVGTExFZEJRVWNzVTBGQlV5eERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03TzBGQlJYQkRMRmRCUVU4c1NVRkJTU3hWUVVGVkxFTkJRMjVDTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVOa0xFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RlFVTm9RaXhKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVU5hTEV0QlFVc3NRMEZEVGl4RFFVRkRPMGRCUTBnN08wRkJSVVFzWTBGQldTeEZRVUZGTEhOQ1FVRlRMRVZCUVVVc1JVRkJSU3hKUVVGSkxFVkJRVVVzVFVGQlRTeEZRVUZGTzBGQlEzWkRMRlZCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUTI1RExGZEJRVThzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hKUVVGSkxFZEJRVWNzUjBGQlJ5eEhRVUZITEVsQlFVa3NSMEZCUnl4SFFVRkhMRWRCUVVjc1IwRkJSeXhGUVVGRkxFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGRCUTNCRk96dEJRVVZFTEdOQlFWa3NSVUZCUlN4elFrRkJVeXhIUVVGSExFVkJRVVU3UVVGRE1VSXNWMEZEUlN4SFFVRkhMRWRCUTBnc1EwRkJReXhIUVVGSExFZEJRVWNzUlVGQlJTeERRVUZCTEVOQlEwNHNUMEZCVHl4RFFVRkRMRXRCUVVzc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGRGRFSXNUMEZCVHl4RFFVRkRMRWxCUVVrc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGRGNFSXNUMEZCVHl4RFFVRkRMRXRCUVVzc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGRGNrSXNUMEZCVHl4RFFVRkRMRXRCUVVzc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGRGNrSXNUMEZCVHl4RFFVRkRMRk5CUVZNc1JVRkJSU3hUUVVGVExFTkJRVU03UzBGRE4wSXNUMEZCVHl4RFFVRkRMRk5CUVZNc1JVRkJSU3hUUVVGVExFTkJRVU1zUjBGRGFFTXNSMEZCUnl4RFFVTklPMGRCUTBnN08wRkJSVVFzWlVGQllTeEZRVUZGTEhWQ1FVRlRMRWRCUVVjc1JVRkJSVHM3T3pzN1FVRkRNMElzVVVGQlNTeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPenRCUVVWbUxGVkJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVUVzUjBGQlJ5eEZRVUZKTzBGQlF6bENMRlZCUVVrc1MwRkJTeXhIUVVGSExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVU4c1EwRkJRenRCUVVOMFF5eFZRVUZKTEV0QlFVc3NTMEZCU3l4WFFVRlhMRVZCUVVVN1FVRkRla0lzWVVGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRTFCUVVzc1dVRkJXU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRE8wOUJRMnhFTzB0QlEwWXNRMEZCUXl4RFFVRkRPenRCUVVWSUxGRkJRVWtzUjBGQlJ5eEhRVUZITEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRGJrTXNUMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU5xUWl4UFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBGQlEySXNWMEZCVHl4SFFVRkhMRU5CUVVNN1IwRkRXanM3UVVGRlJDeGpRVUZaTEVWQlFVVXNjMEpCUVZNc1QwRkJUeXhGUVVGRk8wRkJRemxDTEZGQlFVa3NSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6czdRVUZGZGtJc1UwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRCUVVOc1JDeFZRVUZKTEVOQlFVTXNSVUZCUlR0QlFVTk1MRmRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdUMEZEWkRzN1FVRkZSQ3hUUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTjBRenM3UVVGRlJDeFhRVUZQTEVkQlFVY3NRMEZCUXp0SFFVTmFPenRCUVVWRUxHVkJRV0VzUlVGQlJTeDFRa0ZCVXl4UFFVRlBMRVZCUVVVN1FVRkRMMElzVVVGQlNTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU55UXl4UFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBGQlEycENMRTlCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdPMEZCUldJc1YwRkJUeXhIUVVGSExFTkJRVU03UjBGRFdqdERRVU5HTEVOQlFVTTdPM0ZDUVVWaExFOUJRVThpTENKbWFXeGxJam9pWTI5a1pTMW5aVzR1YW5NaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaUJuYkc5aVlXd2daR1ZtYVc1bElDb3ZYRzVwYlhCdmNuUWdleUJwYzBGeWNtRjVJSDBnWm5KdmJTQW5MaTR2ZFhScGJITW5PMXh1WEc1c1pYUWdVMjkxY21ObFRtOWtaVHRjYmx4dWRISjVJSHRjYmlBZ0x5b2dhWE4wWVc1aWRXd2dhV2R1YjNKbElHNWxlSFFnS2k5Y2JpQWdhV1lnS0hSNWNHVnZaaUJrWldacGJtVWdJVDA5SUNkbWRXNWpkR2x2YmljZ2ZId2dJV1JsWm1sdVpTNWhiV1FwSUh0Y2JpQWdJQ0F2THlCWFpTQmtiMjRuZENCemRYQndiM0owSUhSb2FYTWdhVzRnUVUxRUlHVnVkbWx5YjI1dFpXNTBjeTRnUm05eUlIUm9aWE5sSUdWdWRtbHliMjV0Wlc1MGN5d2dkMlVnWVhOMWMyMWxJSFJvWVhSY2JpQWdJQ0F2THlCMGFHVjVJR0Z5WlNCeWRXNXVhVzVuSUc5dUlIUm9aU0JpY205M2MyVnlJR0Z1WkNCMGFIVnpJR2hoZG1VZ2JtOGdibVZsWkNCbWIzSWdkR2hsSUhOdmRYSmpaUzF0WVhBZ2JHbGljbUZ5ZVM1Y2JpQWdJQ0JzWlhRZ1UyOTFjbU5sVFdGd0lEMGdjbVZ4ZFdseVpTZ25jMjkxY21ObExXMWhjQ2NwTzF4dUlDQWdJRk52ZFhKalpVNXZaR1VnUFNCVGIzVnlZMlZOWVhBdVUyOTFjbU5sVG05a1pUdGNiaUFnZlZ4dWZTQmpZWFJqYUNBb1pYSnlLU0I3WEc0Z0lDOHFJRTVQVUNBcUwxeHVmVnh1WEc0dktpQnBjM1JoYm1KMWJDQnBaMjV2Y21VZ2FXWTZJSFJsYzNSbFpDQmlkWFFnYm05MElHTnZkbVZ5WldRZ2FXNGdhWE4wWVc1aWRXd2daSFZsSUhSdklHUnBjM1FnWW5WcGJHUWdJQ292WEc1cFppQW9JVk52ZFhKalpVNXZaR1VwSUh0Y2JpQWdVMjkxY21ObFRtOWtaU0E5SUdaMWJtTjBhVzl1S0d4cGJtVXNJR052YkhWdGJpd2djM0pqUm1sc1pTd2dZMmgxYm10ektTQjdYRzRnSUNBZ2RHaHBjeTV6Y21NZ1BTQW5KenRjYmlBZ0lDQnBaaUFvWTJoMWJtdHpLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtRmtaQ2hqYUhWdWEzTXBPMXh1SUNBZ0lIMWNiaUFnZlR0Y2JpQWdMeW9nYVhOMFlXNWlkV3dnYVdkdWIzSmxJRzVsZUhRZ0tpOWNiaUFnVTI5MWNtTmxUbTlrWlM1d2NtOTBiM1I1Y0dVZ1BTQjdYRzRnSUNBZ1lXUmtPaUJtZFc1amRHbHZiaWhqYUhWdWEzTXBJSHRjYmlBZ0lDQWdJR2xtSUNocGMwRnljbUY1S0dOb2RXNXJjeWtwSUh0Y2JpQWdJQ0FnSUNBZ1kyaDFibXR6SUQwZ1kyaDFibXR6TG1wdmFXNG9KeWNwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnZEdocGN5NXpjbU1nS3owZ1kyaDFibXR6TzF4dUlDQWdJSDBzWEc0Z0lDQWdjSEpsY0dWdVpEb2dablZ1WTNScGIyNG9ZMmgxYm10ektTQjdYRzRnSUNBZ0lDQnBaaUFvYVhOQmNuSmhlU2hqYUhWdWEzTXBLU0I3WEc0Z0lDQWdJQ0FnSUdOb2RXNXJjeUE5SUdOb2RXNXJjeTVxYjJsdUtDY25LVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSFJvYVhNdWMzSmpJRDBnWTJoMWJtdHpJQ3NnZEdocGN5NXpjbU03WEc0Z0lDQWdmU3hjYmlBZ0lDQjBiMU4wY21sdVoxZHBkR2hUYjNWeVkyVk5ZWEE2SUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhzZ1kyOWtaVG9nZEdocGN5NTBiMU4wY21sdVp5Z3BJSDA3WEc0Z0lDQWdmU3hjYmlBZ0lDQjBiMU4wY21sdVp6b2dablZ1WTNScGIyNG9LU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1emNtTTdYRzRnSUNBZ2ZWeHVJQ0I5TzF4dWZWeHVYRzVtZFc1amRHbHZiaUJqWVhOMFEyaDFibXNvWTJoMWJtc3NJR052WkdWSFpXNHNJR3h2WXlrZ2UxeHVJQ0JwWmlBb2FYTkJjbkpoZVNoamFIVnVheWtwSUh0Y2JpQWdJQ0JzWlhRZ2NtVjBJRDBnVzEwN1hHNWNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNQ3dnYkdWdUlEMGdZMmgxYm1zdWJHVnVaM1JvT3lCcElEd2diR1Z1T3lCcEt5c3BJSHRjYmlBZ0lDQWdJSEpsZEM1d2RYTm9LR052WkdWSFpXNHVkM0poY0NoamFIVnVhMXRwWFN3Z2JHOWpLU2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCeVpYUTdYRzRnSUgwZ1pXeHpaU0JwWmlBb2RIbHdaVzltSUdOb2RXNXJJRDA5UFNBblltOXZiR1ZoYmljZ2ZId2dkSGx3Wlc5bUlHTm9kVzVySUQwOVBTQW5iblZ0WW1WeUp5a2dlMXh1SUNBZ0lDOHZJRWhoYm1Sc1pTQndjbWx0YVhScGRtVnpJSFJvWVhRZ2RHaGxJRk52ZFhKalpVNXZaR1VnZDJsc2JDQjBhSEp2ZHlCMWNDQnZibHh1SUNBZ0lISmxkSFZ5YmlCamFIVnVheUFySUNjbk8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCamFIVnVhenRjYm4xY2JseHVablZ1WTNScGIyNGdRMjlrWlVkbGJpaHpjbU5HYVd4bEtTQjdYRzRnSUhSb2FYTXVjM0pqUm1sc1pTQTlJSE55WTBacGJHVTdYRzRnSUhSb2FYTXVjMjkxY21ObElEMGdXMTA3WEc1OVhHNWNia052WkdWSFpXNHVjSEp2ZEc5MGVYQmxJRDBnZTF4dUlDQnBjMFZ0Y0hSNUtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlBaGRHaHBjeTV6YjNWeVkyVXViR1Z1WjNSb08xeHVJQ0I5TEZ4dUlDQndjbVZ3Wlc1a09pQm1kVzVqZEdsdmJpaHpiM1Z5WTJVc0lHeHZZeWtnZTF4dUlDQWdJSFJvYVhNdWMyOTFjbU5sTG5WdWMyaHBablFvZEdocGN5NTNjbUZ3S0hOdmRYSmpaU3dnYkc5aktTazdYRzRnSUgwc1hHNGdJSEIxYzJnNklHWjFibU4wYVc5dUtITnZkWEpqWlN3Z2JHOWpLU0I3WEc0Z0lDQWdkR2hwY3k1emIzVnlZMlV1Y0hWemFDaDBhR2x6TG5keVlYQW9jMjkxY21ObExDQnNiMk1wS1R0Y2JpQWdmU3hjYmx4dUlDQnRaWEpuWlRvZ1puVnVZM1JwYjI0b0tTQjdYRzRnSUNBZ2JHVjBJSE52ZFhKalpTQTlJSFJvYVhNdVpXMXdkSGtvS1R0Y2JpQWdJQ0IwYUdsekxtVmhZMmdvWm5WdVkzUnBiMjRvYkdsdVpTa2dlMXh1SUNBZ0lDQWdjMjkxY21ObExtRmtaQ2hiSnlBZ0p5d2diR2x1WlN3Z0oxeGNiaWRkS1R0Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdjMjkxY21ObE8xeHVJQ0I5TEZ4dVhHNGdJR1ZoWTJnNklHWjFibU4wYVc5dUtHbDBaWElwSUh0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Dd2diR1Z1SUQwZ2RHaHBjeTV6YjNWeVkyVXViR1Z1WjNSb095QnBJRHdnYkdWdU95QnBLeXNwSUh0Y2JpQWdJQ0FnSUdsMFpYSW9kR2hwY3k1emIzVnlZMlZiYVYwcE8xeHVJQ0FnSUgxY2JpQWdmU3hjYmx4dUlDQmxiWEIwZVRvZ1puVnVZM1JwYjI0b0tTQjdYRzRnSUNBZ2JHVjBJR3h2WXlBOUlIUm9hWE11WTNWeWNtVnVkRXh2WTJGMGFXOXVJSHg4SUhzZ2MzUmhjblE2SUh0OUlIMDdYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QlRiM1Z5WTJWT2IyUmxLR3h2WXk1emRHRnlkQzVzYVc1bExDQnNiMk11YzNSaGNuUXVZMjlzZFcxdUxDQjBhR2x6TG5OeVkwWnBiR1VwTzF4dUlDQjlMRnh1SUNCM2NtRndPaUJtZFc1amRHbHZiaWhqYUhWdWF5d2diRzlqSUQwZ2RHaHBjeTVqZFhKeVpXNTBURzlqWVhScGIyNGdmSHdnZXlCemRHRnlkRG9nZTMwZ2ZTa2dlMXh1SUNBZ0lHbG1JQ2hqYUhWdWF5QnBibk4wWVc1alpXOW1JRk52ZFhKalpVNXZaR1VwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJqYUhWdWF6dGNiaUFnSUNCOVhHNWNiaUFnSUNCamFIVnVheUE5SUdOaGMzUkRhSFZ1YXloamFIVnVheXdnZEdocGN5d2diRzlqS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUJ1WlhjZ1UyOTFjbU5sVG05a1pTaGNiaUFnSUNBZ0lHeHZZeTV6ZEdGeWRDNXNhVzVsTEZ4dUlDQWdJQ0FnYkc5akxuTjBZWEowTG1OdmJIVnRiaXhjYmlBZ0lDQWdJSFJvYVhNdWMzSmpSbWxzWlN4Y2JpQWdJQ0FnSUdOb2RXNXJYRzRnSUNBZ0tUdGNiaUFnZlN4Y2JseHVJQ0JtZFc1amRHbHZia05oYkd3NklHWjFibU4wYVc5dUtHWnVMQ0IwZVhCbExDQndZWEpoYlhNcElIdGNiaUFnSUNCd1lYSmhiWE1nUFNCMGFHbHpMbWRsYm1WeVlYUmxUR2x6ZENod1lYSmhiWE1wTzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5keVlYQW9XMlp1TENCMGVYQmxJRDhnSnk0bklDc2dkSGx3WlNBcklDY29KeUE2SUNjb0p5d2djR0Z5WVcxekxDQW5LU2RkS1R0Y2JpQWdmU3hjYmx4dUlDQnhkVzkwWldSVGRISnBibWM2SUdaMWJtTjBhVzl1S0hOMGNpa2dlMXh1SUNBZ0lISmxkSFZ5YmlBb1hHNGdJQ0FnSUNBblhDSW5JQ3RjYmlBZ0lDQWdJQ2h6ZEhJZ0t5QW5KeWxjYmlBZ0lDQWdJQ0FnTG5KbGNHeGhZMlVvTDF4Y1hGd3ZaeXdnSjF4Y1hGeGNYRnhjSnlsY2JpQWdJQ0FnSUNBZ0xuSmxjR3hoWTJVb0wxd2lMMmNzSUNkY1hGeGNYQ0luS1Z4dUlDQWdJQ0FnSUNBdWNtVndiR0ZqWlNndlhGeHVMMmNzSUNkY1hGeGNiaWNwWEc0Z0lDQWdJQ0FnSUM1eVpYQnNZV05sS0M5Y1hISXZaeXdnSjF4Y1hGeHlKeWxjYmlBZ0lDQWdJQ0FnTG5KbGNHeGhZMlVvTDF4Y2RUSXdNamd2Wnl3Z0oxeGNYRngxTWpBeU9DY3BJQzh2SUZCbGNpQkZZMjFoTFRJMk1pQTNMak1nS3lBM0xqZ3VORnh1SUNBZ0lDQWdJQ0F1Y21Wd2JHRmpaU2d2WEZ4MU1qQXlPUzluTENBblhGeGNYSFV5TURJNUp5a2dLMXh1SUNBZ0lDQWdKMXdpSjF4dUlDQWdJQ2s3WEc0Z0lIMHNYRzVjYmlBZ2IySnFaV04wVEdsMFpYSmhiRG9nWm5WdVkzUnBiMjRvYjJKcUtTQjdYRzRnSUNBZ2JHVjBJSEJoYVhKeklEMGdXMTA3WEc1Y2JpQWdJQ0JQWW1wbFkzUXVhMlY1Y3lodlltb3BMbVp2Y2tWaFkyZ29hMlY1SUQwK0lIdGNiaUFnSUNBZ0lHeGxkQ0IyWVd4MVpTQTlJR05oYzNSRGFIVnVheWh2WW1wYmEyVjVYU3dnZEdocGN5azdYRzRnSUNBZ0lDQnBaaUFvZG1Gc2RXVWdJVDA5SUNkMWJtUmxabWx1WldRbktTQjdYRzRnSUNBZ0lDQWdJSEJoYVhKekxuQjFjMmdvVzNSb2FYTXVjWFZ2ZEdWa1UzUnlhVzVuS0d0bGVTa3NJQ2M2Snl3Z2RtRnNkV1ZkS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUd4bGRDQnlaWFFnUFNCMGFHbHpMbWRsYm1WeVlYUmxUR2x6ZENod1lXbHljeWs3WEc0Z0lDQWdjbVYwTG5CeVpYQmxibVFvSjNzbktUdGNiaUFnSUNCeVpYUXVZV1JrS0NkOUp5azdYRzRnSUNBZ2NtVjBkWEp1SUhKbGREdGNiaUFnZlN4Y2JseHVJQ0JuWlc1bGNtRjBaVXhwYzNRNklHWjFibU4wYVc5dUtHVnVkSEpwWlhNcElIdGNiaUFnSUNCc1pYUWdjbVYwSUQwZ2RHaHBjeTVsYlhCMGVTZ3BPMXh1WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBc0lHeGxiaUE5SUdWdWRISnBaWE11YkdWdVozUm9PeUJwSUR3Z2JHVnVPeUJwS3lzcElIdGNiaUFnSUNBZ0lHbG1JQ2hwS1NCN1hHNGdJQ0FnSUNBZ0lISmxkQzVoWkdRb0p5d25LVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnY21WMExtRmtaQ2hqWVhOMFEyaDFibXNvWlc1MGNtbGxjMXRwWFN3Z2RHaHBjeWtwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQnlaWFE3WEc0Z0lIMHNYRzVjYmlBZ1oyVnVaWEpoZEdWQmNuSmhlVG9nWm5WdVkzUnBiMjRvWlc1MGNtbGxjeWtnZTF4dUlDQWdJR3hsZENCeVpYUWdQU0IwYUdsekxtZGxibVZ5WVhSbFRHbHpkQ2hsYm5SeWFXVnpLVHRjYmlBZ0lDQnlaWFF1Y0hKbGNHVnVaQ2duV3ljcE8xeHVJQ0FnSUhKbGRDNWhaR1FvSjEwbktUdGNibHh1SUNBZ0lISmxkSFZ5YmlCeVpYUTdYRzRnSUgxY2JuMDdYRzVjYm1WNGNHOXlkQ0JrWldaaGRXeDBJRU52WkdWSFpXNDdYRzRpWFgwPVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuLy8gaXN0YW5idWwgaWdub3JlIG5leHRcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX2Jhc2UgPSByZXF1aXJlKCcuLi9iYXNlJyk7XG5cbnZhciBfZXhjZXB0aW9uID0gcmVxdWlyZSgnLi4vZXhjZXB0aW9uJyk7XG5cbnZhciBfZXhjZXB0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2V4Y2VwdGlvbik7XG5cbnZhciBfdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscycpO1xuXG52YXIgX2NvZGVHZW4gPSByZXF1aXJlKCcuL2NvZGUtZ2VuJyk7XG5cbnZhciBfY29kZUdlbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jb2RlR2VuKTtcblxuZnVuY3Rpb24gTGl0ZXJhbCh2YWx1ZSkge1xuICB0aGlzLnZhbHVlID0gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIEphdmFTY3JpcHRDb21waWxlcigpIHt9XG5cbkphdmFTY3JpcHRDb21waWxlci5wcm90b3R5cGUgPSB7XG4gIC8vIFBVQkxJQyBBUEk6IFlvdSBjYW4gb3ZlcnJpZGUgdGhlc2UgbWV0aG9kcyBpbiBhIHN1YmNsYXNzIHRvIHByb3ZpZGVcbiAgLy8gYWx0ZXJuYXRpdmUgY29tcGlsZWQgZm9ybXMgZm9yIG5hbWUgbG9va3VwIGFuZCBidWZmZXJpbmcgc2VtYW50aWNzXG4gIG5hbWVMb29rdXA6IGZ1bmN0aW9uIG5hbWVMb29rdXAocGFyZW50LCBuYW1lIC8qLCAgdHlwZSAqLykge1xuICAgIHJldHVybiB0aGlzLmludGVybmFsTmFtZUxvb2t1cChwYXJlbnQsIG5hbWUpO1xuICB9LFxuICBkZXB0aGVkTG9va3VwOiBmdW5jdGlvbiBkZXB0aGVkTG9va3VwKG5hbWUpIHtcbiAgICByZXR1cm4gW3RoaXMuYWxpYXNhYmxlKCdjb250YWluZXIubG9va3VwJyksICcoZGVwdGhzLCBcIicsIG5hbWUsICdcIiknXTtcbiAgfSxcblxuICBjb21waWxlckluZm86IGZ1bmN0aW9uIGNvbXBpbGVySW5mbygpIHtcbiAgICB2YXIgcmV2aXNpb24gPSBfYmFzZS5DT01QSUxFUl9SRVZJU0lPTixcbiAgICAgICAgdmVyc2lvbnMgPSBfYmFzZS5SRVZJU0lPTl9DSEFOR0VTW3JldmlzaW9uXTtcbiAgICByZXR1cm4gW3JldmlzaW9uLCB2ZXJzaW9uc107XG4gIH0sXG5cbiAgYXBwZW5kVG9CdWZmZXI6IGZ1bmN0aW9uIGFwcGVuZFRvQnVmZmVyKHNvdXJjZSwgbG9jYXRpb24sIGV4cGxpY2l0KSB7XG4gICAgLy8gRm9yY2UgYSBzb3VyY2UgYXMgdGhpcyBzaW1wbGlmaWVzIHRoZSBtZXJnZSBsb2dpYy5cbiAgICBpZiAoIV91dGlscy5pc0FycmF5KHNvdXJjZSkpIHtcbiAgICAgIHNvdXJjZSA9IFtzb3VyY2VdO1xuICAgIH1cbiAgICBzb3VyY2UgPSB0aGlzLnNvdXJjZS53cmFwKHNvdXJjZSwgbG9jYXRpb24pO1xuXG4gICAgaWYgKHRoaXMuZW52aXJvbm1lbnQuaXNTaW1wbGUpIHtcbiAgICAgIHJldHVybiBbJ3JldHVybiAnLCBzb3VyY2UsICc7J107XG4gICAgfSBlbHNlIGlmIChleHBsaWNpdCkge1xuICAgICAgLy8gVGhpcyBpcyBhIGNhc2Ugd2hlcmUgdGhlIGJ1ZmZlciBvcGVyYXRpb24gb2NjdXJzIGFzIGEgY2hpbGQgb2YgYW5vdGhlclxuICAgICAgLy8gY29uc3RydWN0LCBnZW5lcmFsbHkgYnJhY2VzLiBXZSBoYXZlIHRvIGV4cGxpY2l0bHkgb3V0cHV0IHRoZXNlIGJ1ZmZlclxuICAgICAgLy8gb3BlcmF0aW9ucyB0byBlbnN1cmUgdGhhdCB0aGUgZW1pdHRlZCBjb2RlIGdvZXMgaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24uXG4gICAgICByZXR1cm4gWydidWZmZXIgKz0gJywgc291cmNlLCAnOyddO1xuICAgIH0gZWxzZSB7XG4gICAgICBzb3VyY2UuYXBwZW5kVG9CdWZmZXIgPSB0cnVlO1xuICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICB9XG4gIH0sXG5cbiAgaW5pdGlhbGl6ZUJ1ZmZlcjogZnVuY3Rpb24gaW5pdGlhbGl6ZUJ1ZmZlcigpIHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZWRTdHJpbmcoJycpO1xuICB9LFxuICAvLyBFTkQgUFVCTElDIEFQSVxuICBpbnRlcm5hbE5hbWVMb29rdXA6IGZ1bmN0aW9uIGludGVybmFsTmFtZUxvb2t1cChwYXJlbnQsIG5hbWUpIHtcbiAgICB0aGlzLmxvb2t1cFByb3BlcnR5RnVuY3Rpb25Jc1VzZWQgPSB0cnVlO1xuICAgIHJldHVybiBbJ2xvb2t1cFByb3BlcnR5KCcsIHBhcmVudCwgJywnLCBKU09OLnN0cmluZ2lmeShuYW1lKSwgJyknXTtcbiAgfSxcblxuICBsb29rdXBQcm9wZXJ0eUZ1bmN0aW9uSXNVc2VkOiBmYWxzZSxcblxuICBjb21waWxlOiBmdW5jdGlvbiBjb21waWxlKGVudmlyb25tZW50LCBvcHRpb25zLCBjb250ZXh0LCBhc09iamVjdCkge1xuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudDtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuc3RyaW5nUGFyYW1zID0gdGhpcy5vcHRpb25zLnN0cmluZ1BhcmFtcztcbiAgICB0aGlzLnRyYWNrSWRzID0gdGhpcy5vcHRpb25zLnRyYWNrSWRzO1xuICAgIHRoaXMucHJlY29tcGlsZSA9ICFhc09iamVjdDtcblxuICAgIHRoaXMubmFtZSA9IHRoaXMuZW52aXJvbm1lbnQubmFtZTtcbiAgICB0aGlzLmlzQ2hpbGQgPSAhIWNvbnRleHQ7XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dCB8fCB7XG4gICAgICBkZWNvcmF0b3JzOiBbXSxcbiAgICAgIHByb2dyYW1zOiBbXSxcbiAgICAgIGVudmlyb25tZW50czogW11cbiAgICB9O1xuXG4gICAgdGhpcy5wcmVhbWJsZSgpO1xuXG4gICAgdGhpcy5zdGFja1Nsb3QgPSAwO1xuICAgIHRoaXMuc3RhY2tWYXJzID0gW107XG4gICAgdGhpcy5hbGlhc2VzID0ge307XG4gICAgdGhpcy5yZWdpc3RlcnMgPSB7IGxpc3Q6IFtdIH07XG4gICAgdGhpcy5oYXNoZXMgPSBbXTtcbiAgICB0aGlzLmNvbXBpbGVTdGFjayA9IFtdO1xuICAgIHRoaXMuaW5saW5lU3RhY2sgPSBbXTtcbiAgICB0aGlzLmJsb2NrUGFyYW1zID0gW107XG5cbiAgICB0aGlzLmNvbXBpbGVDaGlsZHJlbihlbnZpcm9ubWVudCwgb3B0aW9ucyk7XG5cbiAgICB0aGlzLnVzZURlcHRocyA9IHRoaXMudXNlRGVwdGhzIHx8IGVudmlyb25tZW50LnVzZURlcHRocyB8fCBlbnZpcm9ubWVudC51c2VEZWNvcmF0b3JzIHx8IHRoaXMub3B0aW9ucy5jb21wYXQ7XG4gICAgdGhpcy51c2VCbG9ja1BhcmFtcyA9IHRoaXMudXNlQmxvY2tQYXJhbXMgfHwgZW52aXJvbm1lbnQudXNlQmxvY2tQYXJhbXM7XG5cbiAgICB2YXIgb3Bjb2RlcyA9IGVudmlyb25tZW50Lm9wY29kZXMsXG4gICAgICAgIG9wY29kZSA9IHVuZGVmaW5lZCxcbiAgICAgICAgZmlyc3RMb2MgPSB1bmRlZmluZWQsXG4gICAgICAgIGkgPSB1bmRlZmluZWQsXG4gICAgICAgIGwgPSB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKGkgPSAwLCBsID0gb3Bjb2Rlcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIG9wY29kZSA9IG9wY29kZXNbaV07XG5cbiAgICAgIHRoaXMuc291cmNlLmN1cnJlbnRMb2NhdGlvbiA9IG9wY29kZS5sb2M7XG4gICAgICBmaXJzdExvYyA9IGZpcnN0TG9jIHx8IG9wY29kZS5sb2M7XG4gICAgICB0aGlzW29wY29kZS5vcGNvZGVdLmFwcGx5KHRoaXMsIG9wY29kZS5hcmdzKTtcbiAgICB9XG5cbiAgICAvLyBGbHVzaCBhbnkgdHJhaWxpbmcgY29udGVudCB0aGF0IG1pZ2h0IGJlIHBlbmRpbmcuXG4gICAgdGhpcy5zb3VyY2UuY3VycmVudExvY2F0aW9uID0gZmlyc3RMb2M7XG4gICAgdGhpcy5wdXNoU291cmNlKCcnKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHRoaXMuc3RhY2tTbG90IHx8IHRoaXMuaW5saW5lU3RhY2subGVuZ3RoIHx8IHRoaXMuY29tcGlsZVN0YWNrLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IF9leGNlcHRpb24yWydkZWZhdWx0J10oJ0NvbXBpbGUgY29tcGxldGVkIHdpdGggY29udGVudCBsZWZ0IG9uIHN0YWNrJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmRlY29yYXRvcnMuaXNFbXB0eSgpKSB7XG4gICAgICB0aGlzLnVzZURlY29yYXRvcnMgPSB0cnVlO1xuXG4gICAgICB0aGlzLmRlY29yYXRvcnMucHJlcGVuZChbJ3ZhciBkZWNvcmF0b3JzID0gY29udGFpbmVyLmRlY29yYXRvcnMsICcsIHRoaXMubG9va3VwUHJvcGVydHlGdW5jdGlvblZhckRlY2xhcmF0aW9uKCksICc7XFxuJ10pO1xuICAgICAgdGhpcy5kZWNvcmF0b3JzLnB1c2goJ3JldHVybiBmbjsnKTtcblxuICAgICAgaWYgKGFzT2JqZWN0KSB7XG4gICAgICAgIHRoaXMuZGVjb3JhdG9ycyA9IEZ1bmN0aW9uLmFwcGx5KHRoaXMsIFsnZm4nLCAncHJvcHMnLCAnY29udGFpbmVyJywgJ2RlcHRoMCcsICdkYXRhJywgJ2Jsb2NrUGFyYW1zJywgJ2RlcHRocycsIHRoaXMuZGVjb3JhdG9ycy5tZXJnZSgpXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRlY29yYXRvcnMucHJlcGVuZCgnZnVuY3Rpb24oZm4sIHByb3BzLCBjb250YWluZXIsIGRlcHRoMCwgZGF0YSwgYmxvY2tQYXJhbXMsIGRlcHRocykge1xcbicpO1xuICAgICAgICB0aGlzLmRlY29yYXRvcnMucHVzaCgnfVxcbicpO1xuICAgICAgICB0aGlzLmRlY29yYXRvcnMgPSB0aGlzLmRlY29yYXRvcnMubWVyZ2UoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWNvcmF0b3JzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHZhciBmbiA9IHRoaXMuY3JlYXRlRnVuY3Rpb25Db250ZXh0KGFzT2JqZWN0KTtcbiAgICBpZiAoIXRoaXMuaXNDaGlsZCkge1xuICAgICAgdmFyIHJldCA9IHtcbiAgICAgICAgY29tcGlsZXI6IHRoaXMuY29tcGlsZXJJbmZvKCksXG4gICAgICAgIG1haW46IGZuXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5kZWNvcmF0b3JzKSB7XG4gICAgICAgIHJldC5tYWluX2QgPSB0aGlzLmRlY29yYXRvcnM7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY2FtZWxjYXNlXG4gICAgICAgIHJldC51c2VEZWNvcmF0b3JzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIF9jb250ZXh0ID0gdGhpcy5jb250ZXh0O1xuICAgICAgdmFyIHByb2dyYW1zID0gX2NvbnRleHQucHJvZ3JhbXM7XG4gICAgICB2YXIgZGVjb3JhdG9ycyA9IF9jb250ZXh0LmRlY29yYXRvcnM7XG5cbiAgICAgIGZvciAoaSA9IDAsIGwgPSBwcm9ncmFtcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgaWYgKHByb2dyYW1zW2ldKSB7XG4gICAgICAgICAgcmV0W2ldID0gcHJvZ3JhbXNbaV07XG4gICAgICAgICAgaWYgKGRlY29yYXRvcnNbaV0pIHtcbiAgICAgICAgICAgIHJldFtpICsgJ19kJ10gPSBkZWNvcmF0b3JzW2ldO1xuICAgICAgICAgICAgcmV0LnVzZURlY29yYXRvcnMgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5lbnZpcm9ubWVudC51c2VQYXJ0aWFsKSB7XG4gICAgICAgIHJldC51c2VQYXJ0aWFsID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuZGF0YSkge1xuICAgICAgICByZXQudXNlRGF0YSA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy51c2VEZXB0aHMpIHtcbiAgICAgICAgcmV0LnVzZURlcHRocyA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy51c2VCbG9ja1BhcmFtcykge1xuICAgICAgICByZXQudXNlQmxvY2tQYXJhbXMgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5jb21wYXQpIHtcbiAgICAgICAgcmV0LmNvbXBhdCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghYXNPYmplY3QpIHtcbiAgICAgICAgcmV0LmNvbXBpbGVyID0gSlNPTi5zdHJpbmdpZnkocmV0LmNvbXBpbGVyKTtcblxuICAgICAgICB0aGlzLnNvdXJjZS5jdXJyZW50TG9jYXRpb24gPSB7IHN0YXJ0OiB7IGxpbmU6IDEsIGNvbHVtbjogMCB9IH07XG4gICAgICAgIHJldCA9IHRoaXMub2JqZWN0TGl0ZXJhbChyZXQpO1xuXG4gICAgICAgIGlmIChvcHRpb25zLnNyY05hbWUpIHtcbiAgICAgICAgICByZXQgPSByZXQudG9TdHJpbmdXaXRoU291cmNlTWFwKHsgZmlsZTogb3B0aW9ucy5kZXN0TmFtZSB9KTtcbiAgICAgICAgICByZXQubWFwID0gcmV0Lm1hcCAmJiByZXQubWFwLnRvU3RyaW5nKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0ID0gcmV0LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldC5jb21waWxlck9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmbjtcbiAgICB9XG4gIH0sXG5cbiAgcHJlYW1ibGU6IGZ1bmN0aW9uIHByZWFtYmxlKCkge1xuICAgIC8vIHRyYWNrIHRoZSBsYXN0IGNvbnRleHQgcHVzaGVkIGludG8gcGxhY2UgdG8gYWxsb3cgc2tpcHBpbmcgdGhlXG4gICAgLy8gZ2V0Q29udGV4dCBvcGNvZGUgd2hlbiBpdCB3b3VsZCBiZSBhIG5vb3BcbiAgICB0aGlzLmxhc3RDb250ZXh0ID0gMDtcbiAgICB0aGlzLnNvdXJjZSA9IG5ldyBfY29kZUdlbjJbJ2RlZmF1bHQnXSh0aGlzLm9wdGlvbnMuc3JjTmFtZSk7XG4gICAgdGhpcy5kZWNvcmF0b3JzID0gbmV3IF9jb2RlR2VuMlsnZGVmYXVsdCddKHRoaXMub3B0aW9ucy5zcmNOYW1lKTtcbiAgfSxcblxuICBjcmVhdGVGdW5jdGlvbkNvbnRleHQ6IGZ1bmN0aW9uIGNyZWF0ZUZ1bmN0aW9uQ29udGV4dChhc09iamVjdCkge1xuICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG5cbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgdmFyIHZhckRlY2xhcmF0aW9ucyA9ICcnO1xuXG4gICAgdmFyIGxvY2FscyA9IHRoaXMuc3RhY2tWYXJzLmNvbmNhdCh0aGlzLnJlZ2lzdGVycy5saXN0KTtcbiAgICBpZiAobG9jYWxzLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhckRlY2xhcmF0aW9ucyArPSAnLCAnICsgbG9jYWxzLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGUgbWluaW1pemVyIGFsaWFzIG1hcHBpbmdzXG4gICAgLy9cbiAgICAvLyBXaGVuIHVzaW5nIHRydWUgU291cmNlTm9kZXMsIHRoaXMgd2lsbCB1cGRhdGUgYWxsIHJlZmVyZW5jZXMgdG8gdGhlIGdpdmVuIGFsaWFzXG4gICAgLy8gYXMgdGhlIHNvdXJjZSBub2RlcyBhcmUgcmV1c2VkIGluIHNpdHUuIEZvciB0aGUgbm9uLXNvdXJjZSBub2RlIGNvbXBpbGF0aW9uIG1vZGUsXG4gICAgLy8gYWxpYXNlcyB3aWxsIG5vdCBiZSB1c2VkLCBidXQgdGhpcyBjYXNlIGlzIGFscmVhZHkgYmVpbmcgcnVuIG9uIHRoZSBjbGllbnQgYW5kXG4gICAgLy8gd2UgYXJlbid0IGNvbmNlcm4gYWJvdXQgbWluaW1pemluZyB0aGUgdGVtcGxhdGUgc2l6ZS5cbiAgICB2YXIgYWxpYXNDb3VudCA9IDA7XG4gICAgT2JqZWN0LmtleXModGhpcy5hbGlhc2VzKS5mb3JFYWNoKGZ1bmN0aW9uIChhbGlhcykge1xuICAgICAgdmFyIG5vZGUgPSBfdGhpcy5hbGlhc2VzW2FsaWFzXTtcbiAgICAgIGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUucmVmZXJlbmNlQ291bnQgPiAxKSB7XG4gICAgICAgIHZhckRlY2xhcmF0aW9ucyArPSAnLCBhbGlhcycgKyArK2FsaWFzQ291bnQgKyAnPScgKyBhbGlhcztcbiAgICAgICAgbm9kZS5jaGlsZHJlblswXSA9ICdhbGlhcycgKyBhbGlhc0NvdW50O1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMubG9va3VwUHJvcGVydHlGdW5jdGlvbklzVXNlZCkge1xuICAgICAgdmFyRGVjbGFyYXRpb25zICs9ICcsICcgKyB0aGlzLmxvb2t1cFByb3BlcnR5RnVuY3Rpb25WYXJEZWNsYXJhdGlvbigpO1xuICAgIH1cblxuICAgIHZhciBwYXJhbXMgPSBbJ2NvbnRhaW5lcicsICdkZXB0aDAnLCAnaGVscGVycycsICdwYXJ0aWFscycsICdkYXRhJ107XG5cbiAgICBpZiAodGhpcy51c2VCbG9ja1BhcmFtcyB8fCB0aGlzLnVzZURlcHRocykge1xuICAgICAgcGFyYW1zLnB1c2goJ2Jsb2NrUGFyYW1zJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnVzZURlcHRocykge1xuICAgICAgcGFyYW1zLnB1c2goJ2RlcHRocycpO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm0gYSBzZWNvbmQgcGFzcyBvdmVyIHRoZSBvdXRwdXQgdG8gbWVyZ2UgY29udGVudCB3aGVuIHBvc3NpYmxlXG4gICAgdmFyIHNvdXJjZSA9IHRoaXMubWVyZ2VTb3VyY2UodmFyRGVjbGFyYXRpb25zKTtcblxuICAgIGlmIChhc09iamVjdCkge1xuICAgICAgcGFyYW1zLnB1c2goc291cmNlKTtcblxuICAgICAgcmV0dXJuIEZ1bmN0aW9uLmFwcGx5KHRoaXMsIHBhcmFtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnNvdXJjZS53cmFwKFsnZnVuY3Rpb24oJywgcGFyYW1zLmpvaW4oJywnKSwgJykge1xcbiAgJywgc291cmNlLCAnfSddKTtcbiAgICB9XG4gIH0sXG4gIG1lcmdlU291cmNlOiBmdW5jdGlvbiBtZXJnZVNvdXJjZSh2YXJEZWNsYXJhdGlvbnMpIHtcbiAgICB2YXIgaXNTaW1wbGUgPSB0aGlzLmVudmlyb25tZW50LmlzU2ltcGxlLFxuICAgICAgICBhcHBlbmRPbmx5ID0gIXRoaXMuZm9yY2VCdWZmZXIsXG4gICAgICAgIGFwcGVuZEZpcnN0ID0gdW5kZWZpbmVkLFxuICAgICAgICBzb3VyY2VTZWVuID0gdW5kZWZpbmVkLFxuICAgICAgICBidWZmZXJTdGFydCA9IHVuZGVmaW5lZCxcbiAgICAgICAgYnVmZmVyRW5kID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuc291cmNlLmVhY2goZnVuY3Rpb24gKGxpbmUpIHtcbiAgICAgIGlmIChsaW5lLmFwcGVuZFRvQnVmZmVyKSB7XG4gICAgICAgIGlmIChidWZmZXJTdGFydCkge1xuICAgICAgICAgIGxpbmUucHJlcGVuZCgnICArICcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJ1ZmZlclN0YXJ0ID0gbGluZTtcbiAgICAgICAgfVxuICAgICAgICBidWZmZXJFbmQgPSBsaW5lO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGJ1ZmZlclN0YXJ0KSB7XG4gICAgICAgICAgaWYgKCFzb3VyY2VTZWVuKSB7XG4gICAgICAgICAgICBhcHBlbmRGaXJzdCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJ1ZmZlclN0YXJ0LnByZXBlbmQoJ2J1ZmZlciArPSAnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnVmZmVyRW5kLmFkZCgnOycpO1xuICAgICAgICAgIGJ1ZmZlclN0YXJ0ID0gYnVmZmVyRW5kID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgc291cmNlU2VlbiA9IHRydWU7XG4gICAgICAgIGlmICghaXNTaW1wbGUpIHtcbiAgICAgICAgICBhcHBlbmRPbmx5ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChhcHBlbmRPbmx5KSB7XG4gICAgICBpZiAoYnVmZmVyU3RhcnQpIHtcbiAgICAgICAgYnVmZmVyU3RhcnQucHJlcGVuZCgncmV0dXJuICcpO1xuICAgICAgICBidWZmZXJFbmQuYWRkKCc7Jyk7XG4gICAgICB9IGVsc2UgaWYgKCFzb3VyY2VTZWVuKSB7XG4gICAgICAgIHRoaXMuc291cmNlLnB1c2goJ3JldHVybiBcIlwiOycpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXJEZWNsYXJhdGlvbnMgKz0gJywgYnVmZmVyID0gJyArIChhcHBlbmRGaXJzdCA/ICcnIDogdGhpcy5pbml0aWFsaXplQnVmZmVyKCkpO1xuXG4gICAgICBpZiAoYnVmZmVyU3RhcnQpIHtcbiAgICAgICAgYnVmZmVyU3RhcnQucHJlcGVuZCgncmV0dXJuIGJ1ZmZlciArICcpO1xuICAgICAgICBidWZmZXJFbmQuYWRkKCc7Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNvdXJjZS5wdXNoKCdyZXR1cm4gYnVmZmVyOycpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YXJEZWNsYXJhdGlvbnMpIHtcbiAgICAgIHRoaXMuc291cmNlLnByZXBlbmQoJ3ZhciAnICsgdmFyRGVjbGFyYXRpb25zLnN1YnN0cmluZygyKSArIChhcHBlbmRGaXJzdCA/ICcnIDogJztcXG4nKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc291cmNlLm1lcmdlKCk7XG4gIH0sXG5cbiAgbG9va3VwUHJvcGVydHlGdW5jdGlvblZhckRlY2xhcmF0aW9uOiBmdW5jdGlvbiBsb29rdXBQcm9wZXJ0eUZ1bmN0aW9uVmFyRGVjbGFyYXRpb24oKSB7XG4gICAgcmV0dXJuICdcXG4gICAgICBsb29rdXBQcm9wZXJ0eSA9IGNvbnRhaW5lci5sb29rdXBQcm9wZXJ0eSB8fCBmdW5jdGlvbihwYXJlbnQsIHByb3BlcnR5TmFtZSkge1xcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJlbnQsIHByb3BlcnR5TmFtZSkpIHtcXG4gICAgICAgICAgcmV0dXJuIHBhcmVudFtwcm9wZXJ0eU5hbWVdO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxcbiAgICB9XFxuICAgICcudHJpbSgpO1xuICB9LFxuXG4gIC8vIFtibG9ja1ZhbHVlXVxuICAvL1xuICAvLyBPbiBzdGFjaywgYmVmb3JlOiBoYXNoLCBpbnZlcnNlLCBwcm9ncmFtLCB2YWx1ZVxuICAvLyBPbiBzdGFjaywgYWZ0ZXI6IHJldHVybiB2YWx1ZSBvZiBibG9ja0hlbHBlck1pc3NpbmdcbiAgLy9cbiAgLy8gVGhlIHB1cnBvc2Ugb2YgdGhpcyBvcGNvZGUgaXMgdG8gdGFrZSBhIGJsb2NrIG9mIHRoZSBmb3JtXG4gIC8vIGB7eyN0aGlzLmZvb319Li4ue3svdGhpcy5mb299fWAsIHJlc29sdmUgdGhlIHZhbHVlIG9mIGBmb29gLCBhbmRcbiAgLy8gcmVwbGFjZSBpdCBvbiB0aGUgc3RhY2sgd2l0aCB0aGUgcmVzdWx0IG9mIHByb3Blcmx5XG4gIC8vIGludm9raW5nIGJsb2NrSGVscGVyTWlzc2luZy5cbiAgYmxvY2tWYWx1ZTogZnVuY3Rpb24gYmxvY2tWYWx1ZShuYW1lKSB7XG4gICAgdmFyIGJsb2NrSGVscGVyTWlzc2luZyA9IHRoaXMuYWxpYXNhYmxlKCdjb250YWluZXIuaG9va3MuYmxvY2tIZWxwZXJNaXNzaW5nJyksXG4gICAgICAgIHBhcmFtcyA9IFt0aGlzLmNvbnRleHROYW1lKDApXTtcbiAgICB0aGlzLnNldHVwSGVscGVyQXJncyhuYW1lLCAwLCBwYXJhbXMpO1xuXG4gICAgdmFyIGJsb2NrTmFtZSA9IHRoaXMucG9wU3RhY2soKTtcbiAgICBwYXJhbXMuc3BsaWNlKDEsIDAsIGJsb2NrTmFtZSk7XG5cbiAgICB0aGlzLnB1c2godGhpcy5zb3VyY2UuZnVuY3Rpb25DYWxsKGJsb2NrSGVscGVyTWlzc2luZywgJ2NhbGwnLCBwYXJhbXMpKTtcbiAgfSxcblxuICAvLyBbYW1iaWd1b3VzQmxvY2tWYWx1ZV1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogaGFzaCwgaW52ZXJzZSwgcHJvZ3JhbSwgdmFsdWVcbiAgLy8gQ29tcGlsZXIgdmFsdWUsIGJlZm9yZTogbGFzdEhlbHBlcj12YWx1ZSBvZiBsYXN0IGZvdW5kIGhlbHBlciwgaWYgYW55XG4gIC8vIE9uIHN0YWNrLCBhZnRlciwgaWYgbm8gbGFzdEhlbHBlcjogc2FtZSBhcyBbYmxvY2tWYWx1ZV1cbiAgLy8gT24gc3RhY2ssIGFmdGVyLCBpZiBsYXN0SGVscGVyOiB2YWx1ZVxuICBhbWJpZ3VvdXNCbG9ja1ZhbHVlOiBmdW5jdGlvbiBhbWJpZ3VvdXNCbG9ja1ZhbHVlKCkge1xuICAgIC8vIFdlJ3JlIGJlaW5nIGEgYml0IGNoZWVreSBhbmQgcmV1c2luZyB0aGUgb3B0aW9ucyB2YWx1ZSBmcm9tIHRoZSBwcmlvciBleGVjXG4gICAgdmFyIGJsb2NrSGVscGVyTWlzc2luZyA9IHRoaXMuYWxpYXNhYmxlKCdjb250YWluZXIuaG9va3MuYmxvY2tIZWxwZXJNaXNzaW5nJyksXG4gICAgICAgIHBhcmFtcyA9IFt0aGlzLmNvbnRleHROYW1lKDApXTtcbiAgICB0aGlzLnNldHVwSGVscGVyQXJncygnJywgMCwgcGFyYW1zLCB0cnVlKTtcblxuICAgIHRoaXMuZmx1c2hJbmxpbmUoKTtcblxuICAgIHZhciBjdXJyZW50ID0gdGhpcy50b3BTdGFjaygpO1xuICAgIHBhcmFtcy5zcGxpY2UoMSwgMCwgY3VycmVudCk7XG5cbiAgICB0aGlzLnB1c2hTb3VyY2UoWydpZiAoIScsIHRoaXMubGFzdEhlbHBlciwgJykgeyAnLCBjdXJyZW50LCAnID0gJywgdGhpcy5zb3VyY2UuZnVuY3Rpb25DYWxsKGJsb2NrSGVscGVyTWlzc2luZywgJ2NhbGwnLCBwYXJhbXMpLCAnfSddKTtcbiAgfSxcblxuICAvLyBbYXBwZW5kQ29udGVudF1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogLi4uXG4gIC8vIE9uIHN0YWNrLCBhZnRlcjogLi4uXG4gIC8vXG4gIC8vIEFwcGVuZHMgdGhlIHN0cmluZyB2YWx1ZSBvZiBgY29udGVudGAgdG8gdGhlIGN1cnJlbnQgYnVmZmVyXG4gIGFwcGVuZENvbnRlbnQ6IGZ1bmN0aW9uIGFwcGVuZENvbnRlbnQoY29udGVudCkge1xuICAgIGlmICh0aGlzLnBlbmRpbmdDb250ZW50KSB7XG4gICAgICBjb250ZW50ID0gdGhpcy5wZW5kaW5nQ29udGVudCArIGNvbnRlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGVuZGluZ0xvY2F0aW9uID0gdGhpcy5zb3VyY2UuY3VycmVudExvY2F0aW9uO1xuICAgIH1cblxuICAgIHRoaXMucGVuZGluZ0NvbnRlbnQgPSBjb250ZW50O1xuICB9LFxuXG4gIC8vIFthcHBlbmRdXG4gIC8vXG4gIC8vIE9uIHN0YWNrLCBiZWZvcmU6IHZhbHVlLCAuLi5cbiAgLy8gT24gc3RhY2ssIGFmdGVyOiAuLi5cbiAgLy9cbiAgLy8gQ29lcmNlcyBgdmFsdWVgIHRvIGEgU3RyaW5nIGFuZCBhcHBlbmRzIGl0IHRvIHRoZSBjdXJyZW50IGJ1ZmZlci5cbiAgLy9cbiAgLy8gSWYgYHZhbHVlYCBpcyB0cnV0aHksIG9yIDAsIGl0IGlzIGNvZXJjZWQgaW50byBhIHN0cmluZyBhbmQgYXBwZW5kZWRcbiAgLy8gT3RoZXJ3aXNlLCB0aGUgZW1wdHkgc3RyaW5nIGlzIGFwcGVuZGVkXG4gIGFwcGVuZDogZnVuY3Rpb24gYXBwZW5kKCkge1xuICAgIGlmICh0aGlzLmlzSW5saW5lKCkpIHtcbiAgICAgIHRoaXMucmVwbGFjZVN0YWNrKGZ1bmN0aW9uIChjdXJyZW50KSB7XG4gICAgICAgIHJldHVybiBbJyAhPSBudWxsID8gJywgY3VycmVudCwgJyA6IFwiXCInXTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnB1c2hTb3VyY2UodGhpcy5hcHBlbmRUb0J1ZmZlcih0aGlzLnBvcFN0YWNrKCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGxvY2FsID0gdGhpcy5wb3BTdGFjaygpO1xuICAgICAgdGhpcy5wdXNoU291cmNlKFsnaWYgKCcsIGxvY2FsLCAnICE9IG51bGwpIHsgJywgdGhpcy5hcHBlbmRUb0J1ZmZlcihsb2NhbCwgdW5kZWZpbmVkLCB0cnVlKSwgJyB9J10pO1xuICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQuaXNTaW1wbGUpIHtcbiAgICAgICAgdGhpcy5wdXNoU291cmNlKFsnZWxzZSB7ICcsIHRoaXMuYXBwZW5kVG9CdWZmZXIoXCInJ1wiLCB1bmRlZmluZWQsIHRydWUpLCAnIH0nXSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8vIFthcHBlbmRFc2NhcGVkXVxuICAvL1xuICAvLyBPbiBzdGFjaywgYmVmb3JlOiB2YWx1ZSwgLi4uXG4gIC8vIE9uIHN0YWNrLCBhZnRlcjogLi4uXG4gIC8vXG4gIC8vIEVzY2FwZSBgdmFsdWVgIGFuZCBhcHBlbmQgaXQgdG8gdGhlIGJ1ZmZlclxuICBhcHBlbmRFc2NhcGVkOiBmdW5jdGlvbiBhcHBlbmRFc2NhcGVkKCkge1xuICAgIHRoaXMucHVzaFNvdXJjZSh0aGlzLmFwcGVuZFRvQnVmZmVyKFt0aGlzLmFsaWFzYWJsZSgnY29udGFpbmVyLmVzY2FwZUV4cHJlc3Npb24nKSwgJygnLCB0aGlzLnBvcFN0YWNrKCksICcpJ10pKTtcbiAgfSxcblxuICAvLyBbZ2V0Q29udGV4dF1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogLi4uXG4gIC8vIE9uIHN0YWNrLCBhZnRlcjogLi4uXG4gIC8vIENvbXBpbGVyIHZhbHVlLCBhZnRlcjogbGFzdENvbnRleHQ9ZGVwdGhcbiAgLy9cbiAgLy8gU2V0IHRoZSB2YWx1ZSBvZiB0aGUgYGxhc3RDb250ZXh0YCBjb21waWxlciB2YWx1ZSB0byB0aGUgZGVwdGhcbiAgZ2V0Q29udGV4dDogZnVuY3Rpb24gZ2V0Q29udGV4dChkZXB0aCkge1xuICAgIHRoaXMubGFzdENvbnRleHQgPSBkZXB0aDtcbiAgfSxcblxuICAvLyBbcHVzaENvbnRleHRdXG4gIC8vXG4gIC8vIE9uIHN0YWNrLCBiZWZvcmU6IC4uLlxuICAvLyBPbiBzdGFjaywgYWZ0ZXI6IGN1cnJlbnRDb250ZXh0LCAuLi5cbiAgLy9cbiAgLy8gUHVzaGVzIHRoZSB2YWx1ZSBvZiB0aGUgY3VycmVudCBjb250ZXh0IG9udG8gdGhlIHN0YWNrLlxuICBwdXNoQ29udGV4dDogZnVuY3Rpb24gcHVzaENvbnRleHQoKSB7XG4gICAgdGhpcy5wdXNoU3RhY2tMaXRlcmFsKHRoaXMuY29udGV4dE5hbWUodGhpcy5sYXN0Q29udGV4dCkpO1xuICB9LFxuXG4gIC8vIFtsb29rdXBPbkNvbnRleHRdXG4gIC8vXG4gIC8vIE9uIHN0YWNrLCBiZWZvcmU6IC4uLlxuICAvLyBPbiBzdGFjaywgYWZ0ZXI6IGN1cnJlbnRDb250ZXh0W25hbWVdLCAuLi5cbiAgLy9cbiAgLy8gTG9va3MgdXAgdGhlIHZhbHVlIG9mIGBuYW1lYCBvbiB0aGUgY3VycmVudCBjb250ZXh0IGFuZCBwdXNoZXNcbiAgLy8gaXQgb250byB0aGUgc3RhY2suXG4gIGxvb2t1cE9uQ29udGV4dDogZnVuY3Rpb24gbG9va3VwT25Db250ZXh0KHBhcnRzLCBmYWxzeSwgc3RyaWN0LCBzY29wZWQpIHtcbiAgICB2YXIgaSA9IDA7XG5cbiAgICBpZiAoIXNjb3BlZCAmJiB0aGlzLm9wdGlvbnMuY29tcGF0ICYmICF0aGlzLmxhc3RDb250ZXh0KSB7XG4gICAgICAvLyBUaGUgZGVwdGhlZCBxdWVyeSBpcyBleHBlY3RlZCB0byBoYW5kbGUgdGhlIHVuZGVmaW5lZCBsb2dpYyBmb3IgdGhlIHJvb3QgbGV2ZWwgdGhhdFxuICAgICAgLy8gaXMgaW1wbGVtZW50ZWQgYmVsb3csIHNvIHdlIGV2YWx1YXRlIHRoYXQgZGlyZWN0bHkgaW4gY29tcGF0IG1vZGVcbiAgICAgIHRoaXMucHVzaCh0aGlzLmRlcHRoZWRMb29rdXAocGFydHNbaSsrXSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnB1c2hDb250ZXh0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNvbHZlUGF0aCgnY29udGV4dCcsIHBhcnRzLCBpLCBmYWxzeSwgc3RyaWN0KTtcbiAgfSxcblxuICAvLyBbbG9va3VwQmxvY2tQYXJhbV1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogLi4uXG4gIC8vIE9uIHN0YWNrLCBhZnRlcjogYmxvY2tQYXJhbVtuYW1lXSwgLi4uXG4gIC8vXG4gIC8vIExvb2tzIHVwIHRoZSB2YWx1ZSBvZiBgcGFydHNgIG9uIHRoZSBnaXZlbiBibG9jayBwYXJhbSBhbmQgcHVzaGVzXG4gIC8vIGl0IG9udG8gdGhlIHN0YWNrLlxuICBsb29rdXBCbG9ja1BhcmFtOiBmdW5jdGlvbiBsb29rdXBCbG9ja1BhcmFtKGJsb2NrUGFyYW1JZCwgcGFydHMpIHtcbiAgICB0aGlzLnVzZUJsb2NrUGFyYW1zID0gdHJ1ZTtcblxuICAgIHRoaXMucHVzaChbJ2Jsb2NrUGFyYW1zWycsIGJsb2NrUGFyYW1JZFswXSwgJ11bJywgYmxvY2tQYXJhbUlkWzFdLCAnXSddKTtcbiAgICB0aGlzLnJlc29sdmVQYXRoKCdjb250ZXh0JywgcGFydHMsIDEpO1xuICB9LFxuXG4gIC8vIFtsb29rdXBEYXRhXVxuICAvL1xuICAvLyBPbiBzdGFjaywgYmVmb3JlOiAuLi5cbiAgLy8gT24gc3RhY2ssIGFmdGVyOiBkYXRhLCAuLi5cbiAgLy9cbiAgLy8gUHVzaCB0aGUgZGF0YSBsb29rdXAgb3BlcmF0b3JcbiAgbG9va3VwRGF0YTogZnVuY3Rpb24gbG9va3VwRGF0YShkZXB0aCwgcGFydHMsIHN0cmljdCkge1xuICAgIGlmICghZGVwdGgpIHtcbiAgICAgIHRoaXMucHVzaFN0YWNrTGl0ZXJhbCgnZGF0YScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnB1c2hTdGFja0xpdGVyYWwoJ2NvbnRhaW5lci5kYXRhKGRhdGEsICcgKyBkZXB0aCArICcpJyk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNvbHZlUGF0aCgnZGF0YScsIHBhcnRzLCAwLCB0cnVlLCBzdHJpY3QpO1xuICB9LFxuXG4gIHJlc29sdmVQYXRoOiBmdW5jdGlvbiByZXNvbHZlUGF0aCh0eXBlLCBwYXJ0cywgaSwgZmFsc3ksIHN0cmljdCkge1xuICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG5cbiAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuc3RyaWN0IHx8IHRoaXMub3B0aW9ucy5hc3N1bWVPYmplY3RzKSB7XG4gICAgICB0aGlzLnB1c2goc3RyaWN0TG9va3VwKHRoaXMub3B0aW9ucy5zdHJpY3QgJiYgc3RyaWN0LCB0aGlzLCBwYXJ0cywgdHlwZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBsZW4gPSBwYXJ0cy5sZW5ndGg7XG4gICAgZm9yICg7IGkgPCBsZW47IGkrKykge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgbm8tbG9vcC1mdW5jICovXG4gICAgICB0aGlzLnJlcGxhY2VTdGFjayhmdW5jdGlvbiAoY3VycmVudCkge1xuICAgICAgICB2YXIgbG9va3VwID0gX3RoaXMyLm5hbWVMb29rdXAoY3VycmVudCwgcGFydHNbaV0sIHR5cGUpO1xuICAgICAgICAvLyBXZSB3YW50IHRvIGVuc3VyZSB0aGF0IHplcm8gYW5kIGZhbHNlIGFyZSBoYW5kbGVkIHByb3Blcmx5IGlmIHRoZSBjb250ZXh0IChmYWxzeSBmbGFnKVxuICAgICAgICAvLyBuZWVkcyB0byBoYXZlIHRoZSBzcGVjaWFsIGhhbmRsaW5nIGZvciB0aGVzZSB2YWx1ZXMuXG4gICAgICAgIGlmICghZmFsc3kpIHtcbiAgICAgICAgICByZXR1cm4gWycgIT0gbnVsbCA/ICcsIGxvb2t1cCwgJyA6ICcsIGN1cnJlbnRdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE90aGVyd2lzZSB3ZSBjYW4gdXNlIGdlbmVyaWMgZmFsc3kgaGFuZGxpbmdcbiAgICAgICAgICByZXR1cm4gWycgJiYgJywgbG9va3VwXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLWxvb3AtZnVuYyAqL1xuICAgIH1cbiAgfSxcblxuICAvLyBbcmVzb2x2ZVBvc3NpYmxlTGFtYmRhXVxuICAvL1xuICAvLyBPbiBzdGFjaywgYmVmb3JlOiB2YWx1ZSwgLi4uXG4gIC8vIE9uIHN0YWNrLCBhZnRlcjogcmVzb2x2ZWQgdmFsdWUsIC4uLlxuICAvL1xuICAvLyBJZiB0aGUgYHZhbHVlYCBpcyBhIGxhbWJkYSwgcmVwbGFjZSBpdCBvbiB0aGUgc3RhY2sgYnlcbiAgLy8gdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgbGFtYmRhXG4gIHJlc29sdmVQb3NzaWJsZUxhbWJkYTogZnVuY3Rpb24gcmVzb2x2ZVBvc3NpYmxlTGFtYmRhKCkge1xuICAgIHRoaXMucHVzaChbdGhpcy5hbGlhc2FibGUoJ2NvbnRhaW5lci5sYW1iZGEnKSwgJygnLCB0aGlzLnBvcFN0YWNrKCksICcsICcsIHRoaXMuY29udGV4dE5hbWUoMCksICcpJ10pO1xuICB9LFxuXG4gIC8vIFtwdXNoU3RyaW5nUGFyYW1dXG4gIC8vXG4gIC8vIE9uIHN0YWNrLCBiZWZvcmU6IC4uLlxuICAvLyBPbiBzdGFjaywgYWZ0ZXI6IHN0cmluZywgY3VycmVudENvbnRleHQsIC4uLlxuICAvL1xuICAvLyBUaGlzIG9wY29kZSBpcyBkZXNpZ25lZCBmb3IgdXNlIGluIHN0cmluZyBtb2RlLCB3aGljaFxuICAvLyBwcm92aWRlcyB0aGUgc3RyaW5nIHZhbHVlIG9mIGEgcGFyYW1ldGVyIGFsb25nIHdpdGggaXRzXG4gIC8vIGRlcHRoIHJhdGhlciB0aGFuIHJlc29sdmluZyBpdCBpbW1lZGlhdGVseS5cbiAgcHVzaFN0cmluZ1BhcmFtOiBmdW5jdGlvbiBwdXNoU3RyaW5nUGFyYW0oc3RyaW5nLCB0eXBlKSB7XG4gICAgdGhpcy5wdXNoQ29udGV4dCgpO1xuICAgIHRoaXMucHVzaFN0cmluZyh0eXBlKTtcblxuICAgIC8vIElmIGl0J3MgYSBzdWJleHByZXNzaW9uLCB0aGUgc3RyaW5nIHJlc3VsdFxuICAgIC8vIHdpbGwgYmUgcHVzaGVkIGFmdGVyIHRoaXMgb3Bjb2RlLlxuICAgIGlmICh0eXBlICE9PSAnU3ViRXhwcmVzc2lvbicpIHtcbiAgICAgIGlmICh0eXBlb2Ygc3RyaW5nID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLnB1c2hTdHJpbmcoc3RyaW5nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHVzaFN0YWNrTGl0ZXJhbChzdHJpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBlbXB0eUhhc2g6IGZ1bmN0aW9uIGVtcHR5SGFzaChvbWl0RW1wdHkpIHtcbiAgICBpZiAodGhpcy50cmFja0lkcykge1xuICAgICAgdGhpcy5wdXNoKCd7fScpOyAvLyBoYXNoSWRzXG4gICAgfVxuICAgIGlmICh0aGlzLnN0cmluZ1BhcmFtcykge1xuICAgICAgdGhpcy5wdXNoKCd7fScpOyAvLyBoYXNoQ29udGV4dHNcbiAgICAgIHRoaXMucHVzaCgne30nKTsgLy8gaGFzaFR5cGVzXG4gICAgfVxuICAgIHRoaXMucHVzaFN0YWNrTGl0ZXJhbChvbWl0RW1wdHkgPyAndW5kZWZpbmVkJyA6ICd7fScpO1xuICB9LFxuICBwdXNoSGFzaDogZnVuY3Rpb24gcHVzaEhhc2goKSB7XG4gICAgaWYgKHRoaXMuaGFzaCkge1xuICAgICAgdGhpcy5oYXNoZXMucHVzaCh0aGlzLmhhc2gpO1xuICAgIH1cbiAgICB0aGlzLmhhc2ggPSB7IHZhbHVlczoge30sIHR5cGVzOiBbXSwgY29udGV4dHM6IFtdLCBpZHM6IFtdIH07XG4gIH0sXG4gIHBvcEhhc2g6IGZ1bmN0aW9uIHBvcEhhc2goKSB7XG4gICAgdmFyIGhhc2ggPSB0aGlzLmhhc2g7XG4gICAgdGhpcy5oYXNoID0gdGhpcy5oYXNoZXMucG9wKCk7XG5cbiAgICBpZiAodGhpcy50cmFja0lkcykge1xuICAgICAgdGhpcy5wdXNoKHRoaXMub2JqZWN0TGl0ZXJhbChoYXNoLmlkcykpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdHJpbmdQYXJhbXMpIHtcbiAgICAgIHRoaXMucHVzaCh0aGlzLm9iamVjdExpdGVyYWwoaGFzaC5jb250ZXh0cykpO1xuICAgICAgdGhpcy5wdXNoKHRoaXMub2JqZWN0TGl0ZXJhbChoYXNoLnR5cGVzKSk7XG4gICAgfVxuXG4gICAgdGhpcy5wdXNoKHRoaXMub2JqZWN0TGl0ZXJhbChoYXNoLnZhbHVlcykpO1xuICB9LFxuXG4gIC8vIFtwdXNoU3RyaW5nXVxuICAvL1xuICAvLyBPbiBzdGFjaywgYmVmb3JlOiAuLi5cbiAgLy8gT24gc3RhY2ssIGFmdGVyOiBxdW90ZWRTdHJpbmcoc3RyaW5nKSwgLi4uXG4gIC8vXG4gIC8vIFB1c2ggYSBxdW90ZWQgdmVyc2lvbiBvZiBgc3RyaW5nYCBvbnRvIHRoZSBzdGFja1xuICBwdXNoU3RyaW5nOiBmdW5jdGlvbiBwdXNoU3RyaW5nKHN0cmluZykge1xuICAgIHRoaXMucHVzaFN0YWNrTGl0ZXJhbCh0aGlzLnF1b3RlZFN0cmluZyhzdHJpbmcpKTtcbiAgfSxcblxuICAvLyBbcHVzaExpdGVyYWxdXG4gIC8vXG4gIC8vIE9uIHN0YWNrLCBiZWZvcmU6IC4uLlxuICAvLyBPbiBzdGFjaywgYWZ0ZXI6IHZhbHVlLCAuLi5cbiAgLy9cbiAgLy8gUHVzaGVzIGEgdmFsdWUgb250byB0aGUgc3RhY2suIFRoaXMgb3BlcmF0aW9uIHByZXZlbnRzXG4gIC8vIHRoZSBjb21waWxlciBmcm9tIGNyZWF0aW5nIGEgdGVtcG9yYXJ5IHZhcmlhYmxlIHRvIGhvbGRcbiAgLy8gaXQuXG4gIHB1c2hMaXRlcmFsOiBmdW5jdGlvbiBwdXNoTGl0ZXJhbCh2YWx1ZSkge1xuICAgIHRoaXMucHVzaFN0YWNrTGl0ZXJhbCh2YWx1ZSk7XG4gIH0sXG5cbiAgLy8gW3B1c2hQcm9ncmFtXVxuICAvL1xuICAvLyBPbiBzdGFjaywgYmVmb3JlOiAuLi5cbiAgLy8gT24gc3RhY2ssIGFmdGVyOiBwcm9ncmFtKGd1aWQpLCAuLi5cbiAgLy9cbiAgLy8gUHVzaCBhIHByb2dyYW0gZXhwcmVzc2lvbiBvbnRvIHRoZSBzdGFjay4gVGhpcyB0YWtlc1xuICAvLyBhIGNvbXBpbGUtdGltZSBndWlkIGFuZCBjb252ZXJ0cyBpdCBpbnRvIGEgcnVudGltZS1hY2Nlc3NpYmxlXG4gIC8vIGV4cHJlc3Npb24uXG4gIHB1c2hQcm9ncmFtOiBmdW5jdGlvbiBwdXNoUHJvZ3JhbShndWlkKSB7XG4gICAgaWYgKGd1aWQgIT0gbnVsbCkge1xuICAgICAgdGhpcy5wdXNoU3RhY2tMaXRlcmFsKHRoaXMucHJvZ3JhbUV4cHJlc3Npb24oZ3VpZCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnB1c2hTdGFja0xpdGVyYWwobnVsbCk7XG4gICAgfVxuICB9LFxuXG4gIC8vIFtyZWdpc3RlckRlY29yYXRvcl1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogaGFzaCwgcHJvZ3JhbSwgcGFyYW1zLi4uLCAuLi5cbiAgLy8gT24gc3RhY2ssIGFmdGVyOiAuLi5cbiAgLy9cbiAgLy8gUG9wcyBvZmYgdGhlIGRlY29yYXRvcidzIHBhcmFtZXRlcnMsIGludm9rZXMgdGhlIGRlY29yYXRvcixcbiAgLy8gYW5kIGluc2VydHMgdGhlIGRlY29yYXRvciBpbnRvIHRoZSBkZWNvcmF0b3JzIGxpc3QuXG4gIHJlZ2lzdGVyRGVjb3JhdG9yOiBmdW5jdGlvbiByZWdpc3RlckRlY29yYXRvcihwYXJhbVNpemUsIG5hbWUpIHtcbiAgICB2YXIgZm91bmREZWNvcmF0b3IgPSB0aGlzLm5hbWVMb29rdXAoJ2RlY29yYXRvcnMnLCBuYW1lLCAnZGVjb3JhdG9yJyksXG4gICAgICAgIG9wdGlvbnMgPSB0aGlzLnNldHVwSGVscGVyQXJncyhuYW1lLCBwYXJhbVNpemUpO1xuXG4gICAgdGhpcy5kZWNvcmF0b3JzLnB1c2goWydmbiA9ICcsIHRoaXMuZGVjb3JhdG9ycy5mdW5jdGlvbkNhbGwoZm91bmREZWNvcmF0b3IsICcnLCBbJ2ZuJywgJ3Byb3BzJywgJ2NvbnRhaW5lcicsIG9wdGlvbnNdKSwgJyB8fCBmbjsnXSk7XG4gIH0sXG5cbiAgLy8gW2ludm9rZUhlbHBlcl1cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogaGFzaCwgaW52ZXJzZSwgcHJvZ3JhbSwgcGFyYW1zLi4uLCAuLi5cbiAgLy8gT24gc3RhY2ssIGFmdGVyOiByZXN1bHQgb2YgaGVscGVyIGludm9jYXRpb25cbiAgLy9cbiAgLy8gUG9wcyBvZmYgdGhlIGhlbHBlcidzIHBhcmFtZXRlcnMsIGludm9rZXMgdGhlIGhlbHBlcixcbiAgLy8gYW5kIHB1c2hlcyB0aGUgaGVscGVyJ3MgcmV0dXJuIHZhbHVlIG9udG8gdGhlIHN0YWNrLlxuICAvL1xuICAvLyBJZiB0aGUgaGVscGVyIGlzIG5vdCBmb3VuZCwgYGhlbHBlck1pc3NpbmdgIGlzIGNhbGxlZC5cbiAgaW52b2tlSGVscGVyOiBmdW5jdGlvbiBpbnZva2VIZWxwZXIocGFyYW1TaXplLCBuYW1lLCBpc1NpbXBsZSkge1xuICAgIHZhciBub25IZWxwZXIgPSB0aGlzLnBvcFN0YWNrKCksXG4gICAgICAgIGhlbHBlciA9IHRoaXMuc2V0dXBIZWxwZXIocGFyYW1TaXplLCBuYW1lKTtcblxuICAgIHZhciBwb3NzaWJsZUZ1bmN0aW9uQ2FsbHMgPSBbXTtcblxuICAgIGlmIChpc1NpbXBsZSkge1xuICAgICAgLy8gZGlyZWN0IGNhbGwgdG8gaGVscGVyXG4gICAgICBwb3NzaWJsZUZ1bmN0aW9uQ2FsbHMucHVzaChoZWxwZXIubmFtZSk7XG4gICAgfVxuICAgIC8vIGNhbGwgYSBmdW5jdGlvbiBmcm9tIHRoZSBpbnB1dCBvYmplY3RcbiAgICBwb3NzaWJsZUZ1bmN0aW9uQ2FsbHMucHVzaChub25IZWxwZXIpO1xuICAgIGlmICghdGhpcy5vcHRpb25zLnN0cmljdCkge1xuICAgICAgcG9zc2libGVGdW5jdGlvbkNhbGxzLnB1c2godGhpcy5hbGlhc2FibGUoJ2NvbnRhaW5lci5ob29rcy5oZWxwZXJNaXNzaW5nJykpO1xuICAgIH1cblxuICAgIHZhciBmdW5jdGlvbkxvb2t1cENvZGUgPSBbJygnLCB0aGlzLml0ZW1zU2VwYXJhdGVkQnkocG9zc2libGVGdW5jdGlvbkNhbGxzLCAnfHwnKSwgJyknXTtcbiAgICB2YXIgZnVuY3Rpb25DYWxsID0gdGhpcy5zb3VyY2UuZnVuY3Rpb25DYWxsKGZ1bmN0aW9uTG9va3VwQ29kZSwgJ2NhbGwnLCBoZWxwZXIuY2FsbFBhcmFtcyk7XG4gICAgdGhpcy5wdXNoKGZ1bmN0aW9uQ2FsbCk7XG4gIH0sXG5cbiAgaXRlbXNTZXBhcmF0ZWRCeTogZnVuY3Rpb24gaXRlbXNTZXBhcmF0ZWRCeShpdGVtcywgc2VwYXJhdG9yKSB7XG4gICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgIHJlc3VsdC5wdXNoKGl0ZW1zWzBdKTtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXN1bHQucHVzaChzZXBhcmF0b3IsIGl0ZW1zW2ldKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSxcbiAgLy8gW2ludm9rZUtub3duSGVscGVyXVxuICAvL1xuICAvLyBPbiBzdGFjaywgYmVmb3JlOiBoYXNoLCBpbnZlcnNlLCBwcm9ncmFtLCBwYXJhbXMuLi4sIC4uLlxuICAvLyBPbiBzdGFjaywgYWZ0ZXI6IHJlc3VsdCBvZiBoZWxwZXIgaW52b2NhdGlvblxuICAvL1xuICAvLyBUaGlzIG9wZXJhdGlvbiBpcyB1c2VkIHdoZW4gdGhlIGhlbHBlciBpcyBrbm93biB0byBleGlzdCxcbiAgLy8gc28gYSBgaGVscGVyTWlzc2luZ2AgZmFsbGJhY2sgaXMgbm90IHJlcXVpcmVkLlxuICBpbnZva2VLbm93bkhlbHBlcjogZnVuY3Rpb24gaW52b2tlS25vd25IZWxwZXIocGFyYW1TaXplLCBuYW1lKSB7XG4gICAgdmFyIGhlbHBlciA9IHRoaXMuc2V0dXBIZWxwZXIocGFyYW1TaXplLCBuYW1lKTtcbiAgICB0aGlzLnB1c2godGhpcy5zb3VyY2UuZnVuY3Rpb25DYWxsKGhlbHBlci5uYW1lLCAnY2FsbCcsIGhlbHBlci5jYWxsUGFyYW1zKSk7XG4gIH0sXG5cbiAgLy8gW2ludm9rZUFtYmlndW91c11cbiAgLy9cbiAgLy8gT24gc3RhY2ssIGJlZm9yZTogaGFzaCwgaW52ZXJzZSwgcHJvZ3JhbSwgcGFyYW1zLi4uLCAuLi5cbiAgLy8gT24gc3RhY2ssIGFmdGVyOiByZXN1bHQgb2YgZGlzYW1iaWd1YXRpb25cbiAgLy9cbiAgLy8gVGhpcyBvcGVyYXRpb24gaXMgdXNlZCB3aGVuIGFuIGV4cHJlc3Npb24gbGlrZSBge3tmb299fWBcbiAgLy8gaXMgcHJvdmlkZWQsIGJ1dCB3ZSBkb24ndCBrbm93IGF0IGNvbXBpbGUtdGltZSB3aGV0aGVyIGl0XG4gIC8vIGlzIGEgaGVscGVyIG9yIGEgcGF0aC5cbiAgLy9cbiAgLy8gVGhpcyBvcGVyYXRpb24gZW1pdHMgbW9yZSBjb2RlIHRoYW4gdGhlIG90aGVyIG9wdGlvbnMsXG4gIC8vIGFuZCBjYW4gYmUgYXZvaWRlZCBieSBwYXNzaW5nIHRoZSBga25vd25IZWxwZXJzYCBhbmRcbiAgLy8gYGtub3duSGVscGVyc09ubHlgIGZsYWdzIGF0IGNvbXBpbGUtdGltZS5cbiAgaW52b2tlQW1iaWd1b3VzOiBmdW5jdGlvbiBpbnZva2VBbWJpZ3VvdXMobmFtZSwgaGVscGVyQ2FsbCkge1xuICAgIHRoaXMudXNlUmVnaXN0ZXIoJ2hlbHBlcicpO1xuXG4gICAgdmFyIG5vbkhlbHBlciA9IHRoaXMucG9wU3RhY2soKTtcblxuICAgIHRoaXMuZW1wdHlIYXNoKCk7XG4gICAgdmFyIGhlbHBlciA9IHRoaXMuc2V0dXBIZWxwZXIoMCwgbmFtZSwgaGVscGVyQ2FsbCk7XG5cbiAgICB2YXIgaGVscGVyTmFtZSA9IHRoaXMubGFzdEhlbHBlciA9IHRoaXMubmFtZUxvb2t1cCgnaGVscGVycycsIG5hbWUsICdoZWxwZXInKTtcblxuICAgIHZhciBsb29rdXAgPSBbJygnLCAnKGhlbHBlciA9ICcsIGhlbHBlck5hbWUsICcgfHwgJywgbm9uSGVscGVyLCAnKSddO1xuICAgIGlmICghdGhpcy5vcHRpb25zLnN0cmljdCkge1xuICAgICAgbG9va3VwWzBdID0gJyhoZWxwZXIgPSAnO1xuICAgICAgbG9va3VwLnB1c2goJyAhPSBudWxsID8gaGVscGVyIDogJywgdGhpcy5hbGlhc2FibGUoJ2NvbnRhaW5lci5ob29rcy5oZWxwZXJNaXNzaW5nJykpO1xuICAgIH1cblxuICAgIHRoaXMucHVzaChbJygnLCBsb29rdXAsIGhlbHBlci5wYXJhbXNJbml0ID8gWycpLCgnLCBoZWxwZXIucGFyYW1zSW5pdF0gOiBbXSwgJyksJywgJyh0eXBlb2YgaGVscGVyID09PSAnLCB0aGlzLmFsaWFzYWJsZSgnXCJmdW5jdGlvblwiJyksICcgPyAnLCB0aGlzLnNvdXJjZS5mdW5jdGlvbkNhbGwoJ2hlbHBlcicsICdjYWxsJywgaGVscGVyLmNhbGxQYXJhbXMpLCAnIDogaGVscGVyKSknXSk7XG4gIH0sXG5cbiAgLy8gW2ludm9rZVBhcnRpYWxdXG4gIC8vXG4gIC8vIE9uIHN0YWNrLCBiZWZvcmU6IGNvbnRleHQsIC4uLlxuICAvLyBPbiBzdGFjayBhZnRlcjogcmVzdWx0IG9mIHBhcnRpYWwgaW52b2NhdGlvblxuICAvL1xuICAvLyBUaGlzIG9wZXJhdGlvbiBwb3BzIG9mZiBhIGNvbnRleHQsIGludm9rZXMgYSBwYXJ0aWFsIHdpdGggdGhhdCBjb250ZXh0LFxuICAvLyBhbmQgcHVzaGVzIHRoZSByZXN1bHQgb2YgdGhlIGludm9jYXRpb24gYmFjay5cbiAgaW52b2tlUGFydGlhbDogZnVuY3Rpb24gaW52b2tlUGFydGlhbChpc0R5bmFtaWMsIG5hbWUsIGluZGVudCkge1xuICAgIHZhciBwYXJhbXMgPSBbXSxcbiAgICAgICAgb3B0aW9ucyA9IHRoaXMuc2V0dXBQYXJhbXMobmFtZSwgMSwgcGFyYW1zKTtcblxuICAgIGlmIChpc0R5bmFtaWMpIHtcbiAgICAgIG5hbWUgPSB0aGlzLnBvcFN0YWNrKCk7XG4gICAgICBkZWxldGUgb3B0aW9ucy5uYW1lO1xuICAgIH1cblxuICAgIGlmIChpbmRlbnQpIHtcbiAgICAgIG9wdGlvbnMuaW5kZW50ID0gSlNPTi5zdHJpbmdpZnkoaW5kZW50KTtcbiAgICB9XG4gICAgb3B0aW9ucy5oZWxwZXJzID0gJ2hlbHBlcnMnO1xuICAgIG9wdGlvbnMucGFydGlhbHMgPSAncGFydGlhbHMnO1xuICAgIG9wdGlvbnMuZGVjb3JhdG9ycyA9ICdjb250YWluZXIuZGVjb3JhdG9ycyc7XG5cbiAgICBpZiAoIWlzRHluYW1pYykge1xuICAgICAgcGFyYW1zLnVuc2hpZnQodGhpcy5uYW1lTG9va3VwKCdwYXJ0aWFscycsIG5hbWUsICdwYXJ0aWFsJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXMudW5zaGlmdChuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmNvbXBhdCkge1xuICAgICAgb3B0aW9ucy5kZXB0aHMgPSAnZGVwdGhzJztcbiAgICB9XG4gICAgb3B0aW9ucyA9IHRoaXMub2JqZWN0TGl0ZXJhbChvcHRpb25zKTtcbiAgICBwYXJhbXMucHVzaChvcHRpb25zKTtcblxuICAgIHRoaXMucHVzaCh0aGlzLnNvdXJjZS5mdW5jdGlvbkNhbGwoJ2NvbnRhaW5lci5pbnZva2VQYXJ0aWFsJywgJycsIHBhcmFtcykpO1xuICB9LFxuXG4gIC8vIFthc3NpZ25Ub0hhc2hdXG4gIC8vXG4gIC8vIE9uIHN0YWNrLCBiZWZvcmU6IHZhbHVlLCAuLi4sIGhhc2gsIC4uLlxuICAvLyBPbiBzdGFjaywgYWZ0ZXI6IC4uLiwgaGFzaCwgLi4uXG4gIC8vXG4gIC8vIFBvcHMgYSB2YWx1ZSBvZmYgdGhlIHN0YWNrIGFuZCBhc3NpZ25zIGl0IHRvIHRoZSBjdXJyZW50IGhhc2hcbiAgYXNzaWduVG9IYXNoOiBmdW5jdGlvbiBhc3NpZ25Ub0hhc2goa2V5KSB7XG4gICAgdmFyIHZhbHVlID0gdGhpcy5wb3BTdGFjaygpLFxuICAgICAgICBjb250ZXh0ID0gdW5kZWZpbmVkLFxuICAgICAgICB0eXBlID0gdW5kZWZpbmVkLFxuICAgICAgICBpZCA9IHVuZGVmaW5lZDtcblxuICAgIGlmICh0aGlzLnRyYWNrSWRzKSB7XG4gICAgICBpZCA9IHRoaXMucG9wU3RhY2soKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RyaW5nUGFyYW1zKSB7XG4gICAgICB0eXBlID0gdGhpcy5wb3BTdGFjaygpO1xuICAgICAgY29udGV4dCA9IHRoaXMucG9wU3RhY2soKTtcbiAgICB9XG5cbiAgICB2YXIgaGFzaCA9IHRoaXMuaGFzaDtcbiAgICBpZiAoY29udGV4dCkge1xuICAgICAgaGFzaC5jb250ZXh0c1trZXldID0gY29udGV4dDtcbiAgICB9XG4gICAgaWYgKHR5cGUpIHtcbiAgICAgIGhhc2gudHlwZXNba2V5XSA9IHR5cGU7XG4gICAgfVxuICAgIGlmIChpZCkge1xuICAgICAgaGFzaC5pZHNba2V5XSA9IGlkO1xuICAgIH1cbiAgICBoYXNoLnZhbHVlc1trZXldID0gdmFsdWU7XG4gIH0sXG5cbiAgcHVzaElkOiBmdW5jdGlvbiBwdXNoSWQodHlwZSwgbmFtZSwgY2hpbGQpIHtcbiAgICBpZiAodHlwZSA9PT0gJ0Jsb2NrUGFyYW0nKSB7XG4gICAgICB0aGlzLnB1c2hTdGFja0xpdGVyYWwoJ2Jsb2NrUGFyYW1zWycgKyBuYW1lWzBdICsgJ10ucGF0aFsnICsgbmFtZVsxXSArICddJyArIChjaGlsZCA/ICcgKyAnICsgSlNPTi5zdHJpbmdpZnkoJy4nICsgY2hpbGQpIDogJycpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdQYXRoRXhwcmVzc2lvbicpIHtcbiAgICAgIHRoaXMucHVzaFN0cmluZyhuYW1lKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdTdWJFeHByZXNzaW9uJykge1xuICAgICAgdGhpcy5wdXNoU3RhY2tMaXRlcmFsKCd0cnVlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHVzaFN0YWNrTGl0ZXJhbCgnbnVsbCcpO1xuICAgIH1cbiAgfSxcblxuICAvLyBIRUxQRVJTXG5cbiAgY29tcGlsZXI6IEphdmFTY3JpcHRDb21waWxlcixcblxuICBjb21waWxlQ2hpbGRyZW46IGZ1bmN0aW9uIGNvbXBpbGVDaGlsZHJlbihlbnZpcm9ubWVudCwgb3B0aW9ucykge1xuICAgIHZhciBjaGlsZHJlbiA9IGVudmlyb25tZW50LmNoaWxkcmVuLFxuICAgICAgICBjaGlsZCA9IHVuZGVmaW5lZCxcbiAgICAgICAgY29tcGlsZXIgPSB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKHZhciBpID0gMCwgbCA9IGNoaWxkcmVuLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY2hpbGQgPSBjaGlsZHJlbltpXTtcbiAgICAgIGNvbXBpbGVyID0gbmV3IHRoaXMuY29tcGlsZXIoKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuZXctY2FwXG5cbiAgICAgIHZhciBleGlzdGluZyA9IHRoaXMubWF0Y2hFeGlzdGluZ1Byb2dyYW0oY2hpbGQpO1xuXG4gICAgICBpZiAoZXhpc3RpbmcgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmNvbnRleHQucHJvZ3JhbXMucHVzaCgnJyk7IC8vIFBsYWNlaG9sZGVyIHRvIHByZXZlbnQgbmFtZSBjb25mbGljdHMgZm9yIG5lc3RlZCBjaGlsZHJlblxuICAgICAgICB2YXIgaW5kZXggPSB0aGlzLmNvbnRleHQucHJvZ3JhbXMubGVuZ3RoO1xuICAgICAgICBjaGlsZC5pbmRleCA9IGluZGV4O1xuICAgICAgICBjaGlsZC5uYW1lID0gJ3Byb2dyYW0nICsgaW5kZXg7XG4gICAgICAgIHRoaXMuY29udGV4dC5wcm9ncmFtc1tpbmRleF0gPSBjb21waWxlci5jb21waWxlKGNoaWxkLCBvcHRpb25zLCB0aGlzLmNvbnRleHQsICF0aGlzLnByZWNvbXBpbGUpO1xuICAgICAgICB0aGlzLmNvbnRleHQuZGVjb3JhdG9yc1tpbmRleF0gPSBjb21waWxlci5kZWNvcmF0b3JzO1xuICAgICAgICB0aGlzLmNvbnRleHQuZW52aXJvbm1lbnRzW2luZGV4XSA9IGNoaWxkO1xuXG4gICAgICAgIHRoaXMudXNlRGVwdGhzID0gdGhpcy51c2VEZXB0aHMgfHwgY29tcGlsZXIudXNlRGVwdGhzO1xuICAgICAgICB0aGlzLnVzZUJsb2NrUGFyYW1zID0gdGhpcy51c2VCbG9ja1BhcmFtcyB8fCBjb21waWxlci51c2VCbG9ja1BhcmFtcztcbiAgICAgICAgY2hpbGQudXNlRGVwdGhzID0gdGhpcy51c2VEZXB0aHM7XG4gICAgICAgIGNoaWxkLnVzZUJsb2NrUGFyYW1zID0gdGhpcy51c2VCbG9ja1BhcmFtcztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoaWxkLmluZGV4ID0gZXhpc3RpbmcuaW5kZXg7XG4gICAgICAgIGNoaWxkLm5hbWUgPSAncHJvZ3JhbScgKyBleGlzdGluZy5pbmRleDtcblxuICAgICAgICB0aGlzLnVzZURlcHRocyA9IHRoaXMudXNlRGVwdGhzIHx8IGV4aXN0aW5nLnVzZURlcHRocztcbiAgICAgICAgdGhpcy51c2VCbG9ja1BhcmFtcyA9IHRoaXMudXNlQmxvY2tQYXJhbXMgfHwgZXhpc3RpbmcudXNlQmxvY2tQYXJhbXM7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBtYXRjaEV4aXN0aW5nUHJvZ3JhbTogZnVuY3Rpb24gbWF0Y2hFeGlzdGluZ1Byb2dyYW0oY2hpbGQpIHtcbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gdGhpcy5jb250ZXh0LmVudmlyb25tZW50cy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgdmFyIGVudmlyb25tZW50ID0gdGhpcy5jb250ZXh0LmVudmlyb25tZW50c1tpXTtcbiAgICAgIGlmIChlbnZpcm9ubWVudCAmJiBlbnZpcm9ubWVudC5lcXVhbHMoY2hpbGQpKSB7XG4gICAgICAgIHJldHVybiBlbnZpcm9ubWVudDtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgcHJvZ3JhbUV4cHJlc3Npb246IGZ1bmN0aW9uIHByb2dyYW1FeHByZXNzaW9uKGd1aWQpIHtcbiAgICB2YXIgY2hpbGQgPSB0aGlzLmVudmlyb25tZW50LmNoaWxkcmVuW2d1aWRdLFxuICAgICAgICBwcm9ncmFtUGFyYW1zID0gW2NoaWxkLmluZGV4LCAnZGF0YScsIGNoaWxkLmJsb2NrUGFyYW1zXTtcblxuICAgIGlmICh0aGlzLnVzZUJsb2NrUGFyYW1zIHx8IHRoaXMudXNlRGVwdGhzKSB7XG4gICAgICBwcm9ncmFtUGFyYW1zLnB1c2goJ2Jsb2NrUGFyYW1zJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnVzZURlcHRocykge1xuICAgICAgcHJvZ3JhbVBhcmFtcy5wdXNoKCdkZXB0aHMnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gJ2NvbnRhaW5lci5wcm9ncmFtKCcgKyBwcm9ncmFtUGFyYW1zLmpvaW4oJywgJykgKyAnKSc7XG4gIH0sXG5cbiAgdXNlUmVnaXN0ZXI6IGZ1bmN0aW9uIHVzZVJlZ2lzdGVyKG5hbWUpIHtcbiAgICBpZiAoIXRoaXMucmVnaXN0ZXJzW25hbWVdKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyc1tuYW1lXSA9IHRydWU7XG4gICAgICB0aGlzLnJlZ2lzdGVycy5saXN0LnB1c2gobmFtZSk7XG4gICAgfVxuICB9LFxuXG4gIHB1c2g6IGZ1bmN0aW9uIHB1c2goZXhwcikge1xuICAgIGlmICghKGV4cHIgaW5zdGFuY2VvZiBMaXRlcmFsKSkge1xuICAgICAgZXhwciA9IHRoaXMuc291cmNlLndyYXAoZXhwcik7XG4gICAgfVxuXG4gICAgdGhpcy5pbmxpbmVTdGFjay5wdXNoKGV4cHIpO1xuICAgIHJldHVybiBleHByO1xuICB9LFxuXG4gIHB1c2hTdGFja0xpdGVyYWw6IGZ1bmN0aW9uIHB1c2hTdGFja0xpdGVyYWwoaXRlbSkge1xuICAgIHRoaXMucHVzaChuZXcgTGl0ZXJhbChpdGVtKSk7XG4gIH0sXG5cbiAgcHVzaFNvdXJjZTogZnVuY3Rpb24gcHVzaFNvdXJjZShzb3VyY2UpIHtcbiAgICBpZiAodGhpcy5wZW5kaW5nQ29udGVudCkge1xuICAgICAgdGhpcy5zb3VyY2UucHVzaCh0aGlzLmFwcGVuZFRvQnVmZmVyKHRoaXMuc291cmNlLnF1b3RlZFN0cmluZyh0aGlzLnBlbmRpbmdDb250ZW50KSwgdGhpcy5wZW5kaW5nTG9jYXRpb24pKTtcbiAgICAgIHRoaXMucGVuZGluZ0NvbnRlbnQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHNvdXJjZSkge1xuICAgICAgdGhpcy5zb3VyY2UucHVzaChzb3VyY2UpO1xuICAgIH1cbiAgfSxcblxuICByZXBsYWNlU3RhY2s6IGZ1bmN0aW9uIHJlcGxhY2VTdGFjayhjYWxsYmFjaykge1xuICAgIHZhciBwcmVmaXggPSBbJygnXSxcbiAgICAgICAgc3RhY2sgPSB1bmRlZmluZWQsXG4gICAgICAgIGNyZWF0ZWRTdGFjayA9IHVuZGVmaW5lZCxcbiAgICAgICAgdXNlZExpdGVyYWwgPSB1bmRlZmluZWQ7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmICghdGhpcy5pc0lubGluZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgX2V4Y2VwdGlvbjJbJ2RlZmF1bHQnXSgncmVwbGFjZVN0YWNrIG9uIG5vbi1pbmxpbmUnKTtcbiAgICB9XG5cbiAgICAvLyBXZSB3YW50IHRvIG1lcmdlIHRoZSBpbmxpbmUgc3RhdGVtZW50IGludG8gdGhlIHJlcGxhY2VtZW50IHN0YXRlbWVudCB2aWEgJywnXG4gICAgdmFyIHRvcCA9IHRoaXMucG9wU3RhY2sodHJ1ZSk7XG5cbiAgICBpZiAodG9wIGluc3RhbmNlb2YgTGl0ZXJhbCkge1xuICAgICAgLy8gTGl0ZXJhbHMgZG8gbm90IG5lZWQgdG8gYmUgaW5saW5lZFxuICAgICAgc3RhY2sgPSBbdG9wLnZhbHVlXTtcbiAgICAgIHByZWZpeCA9IFsnKCcsIHN0YWNrXTtcbiAgICAgIHVzZWRMaXRlcmFsID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gR2V0IG9yIGNyZWF0ZSB0aGUgY3VycmVudCBzdGFjayBuYW1lIGZvciB1c2UgYnkgdGhlIGlubGluZVxuICAgICAgY3JlYXRlZFN0YWNrID0gdHJ1ZTtcbiAgICAgIHZhciBfbmFtZSA9IHRoaXMuaW5jclN0YWNrKCk7XG5cbiAgICAgIHByZWZpeCA9IFsnKCgnLCB0aGlzLnB1c2goX25hbWUpLCAnID0gJywgdG9wLCAnKSddO1xuICAgICAgc3RhY2sgPSB0aGlzLnRvcFN0YWNrKCk7XG4gICAgfVxuXG4gICAgdmFyIGl0ZW0gPSBjYWxsYmFjay5jYWxsKHRoaXMsIHN0YWNrKTtcblxuICAgIGlmICghdXNlZExpdGVyYWwpIHtcbiAgICAgIHRoaXMucG9wU3RhY2soKTtcbiAgICB9XG4gICAgaWYgKGNyZWF0ZWRTdGFjaykge1xuICAgICAgdGhpcy5zdGFja1Nsb3QtLTtcbiAgICB9XG4gICAgdGhpcy5wdXNoKHByZWZpeC5jb25jYXQoaXRlbSwgJyknKSk7XG4gIH0sXG5cbiAgaW5jclN0YWNrOiBmdW5jdGlvbiBpbmNyU3RhY2soKSB7XG4gICAgdGhpcy5zdGFja1Nsb3QrKztcbiAgICBpZiAodGhpcy5zdGFja1Nsb3QgPiB0aGlzLnN0YWNrVmFycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc3RhY2tWYXJzLnB1c2goJ3N0YWNrJyArIHRoaXMuc3RhY2tTbG90KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudG9wU3RhY2tOYW1lKCk7XG4gIH0sXG4gIHRvcFN0YWNrTmFtZTogZnVuY3Rpb24gdG9wU3RhY2tOYW1lKCkge1xuICAgIHJldHVybiAnc3RhY2snICsgdGhpcy5zdGFja1Nsb3Q7XG4gIH0sXG4gIGZsdXNoSW5saW5lOiBmdW5jdGlvbiBmbHVzaElubGluZSgpIHtcbiAgICB2YXIgaW5saW5lU3RhY2sgPSB0aGlzLmlubGluZVN0YWNrO1xuICAgIHRoaXMuaW5saW5lU3RhY2sgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gaW5saW5lU3RhY2subGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIHZhciBlbnRyeSA9IGlubGluZVN0YWNrW2ldO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoZW50cnkgaW5zdGFuY2VvZiBMaXRlcmFsKSB7XG4gICAgICAgIHRoaXMuY29tcGlsZVN0YWNrLnB1c2goZW50cnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHN0YWNrID0gdGhpcy5pbmNyU3RhY2soKTtcbiAgICAgICAgdGhpcy5wdXNoU291cmNlKFtzdGFjaywgJyA9ICcsIGVudHJ5LCAnOyddKTtcbiAgICAgICAgdGhpcy5jb21waWxlU3RhY2sucHVzaChzdGFjayk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBpc0lubGluZTogZnVuY3Rpb24gaXNJbmxpbmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5saW5lU3RhY2subGVuZ3RoO1xuICB9LFxuXG4gIHBvcFN0YWNrOiBmdW5jdGlvbiBwb3BTdGFjayh3cmFwcGVkKSB7XG4gICAgdmFyIGlubGluZSA9IHRoaXMuaXNJbmxpbmUoKSxcbiAgICAgICAgaXRlbSA9IChpbmxpbmUgPyB0aGlzLmlubGluZVN0YWNrIDogdGhpcy5jb21waWxlU3RhY2spLnBvcCgpO1xuXG4gICAgaWYgKCF3cmFwcGVkICYmIGl0ZW0gaW5zdGFuY2VvZiBMaXRlcmFsKSB7XG4gICAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFpbmxpbmUpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgaWYgKCF0aGlzLnN0YWNrU2xvdCkge1xuICAgICAgICAgIHRocm93IG5ldyBfZXhjZXB0aW9uMlsnZGVmYXVsdCddKCdJbnZhbGlkIHN0YWNrIHBvcCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhY2tTbG90LS07XG4gICAgICB9XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG4gIH0sXG5cbiAgdG9wU3RhY2s6IGZ1bmN0aW9uIHRvcFN0YWNrKCkge1xuICAgIHZhciBzdGFjayA9IHRoaXMuaXNJbmxpbmUoKSA/IHRoaXMuaW5saW5lU3RhY2sgOiB0aGlzLmNvbXBpbGVTdGFjayxcbiAgICAgICAgaXRlbSA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBMaXRlcmFsKSB7XG4gICAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuICB9LFxuXG4gIGNvbnRleHROYW1lOiBmdW5jdGlvbiBjb250ZXh0TmFtZShjb250ZXh0KSB7XG4gICAgaWYgKHRoaXMudXNlRGVwdGhzICYmIGNvbnRleHQpIHtcbiAgICAgIHJldHVybiAnZGVwdGhzWycgKyBjb250ZXh0ICsgJ10nO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2RlcHRoJyArIGNvbnRleHQ7XG4gICAgfVxuICB9LFxuXG4gIHF1b3RlZFN0cmluZzogZnVuY3Rpb24gcXVvdGVkU3RyaW5nKHN0cikge1xuICAgIHJldHVybiB0aGlzLnNvdXJjZS5xdW90ZWRTdHJpbmcoc3RyKTtcbiAgfSxcblxuICBvYmplY3RMaXRlcmFsOiBmdW5jdGlvbiBvYmplY3RMaXRlcmFsKG9iaikge1xuICAgIHJldHVybiB0aGlzLnNvdXJjZS5vYmplY3RMaXRlcmFsKG9iaik7XG4gIH0sXG5cbiAgYWxpYXNhYmxlOiBmdW5jdGlvbiBhbGlhc2FibGUobmFtZSkge1xuICAgIHZhciByZXQgPSB0aGlzLmFsaWFzZXNbbmFtZV07XG4gICAgaWYgKHJldCkge1xuICAgICAgcmV0LnJlZmVyZW5jZUNvdW50Kys7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIHJldCA9IHRoaXMuYWxpYXNlc1tuYW1lXSA9IHRoaXMuc291cmNlLndyYXAobmFtZSk7XG4gICAgcmV0LmFsaWFzYWJsZSA9IHRydWU7XG4gICAgcmV0LnJlZmVyZW5jZUNvdW50ID0gMTtcblxuICAgIHJldHVybiByZXQ7XG4gIH0sXG5cbiAgc2V0dXBIZWxwZXI6IGZ1bmN0aW9uIHNldHVwSGVscGVyKHBhcmFtU2l6ZSwgbmFtZSwgYmxvY2tIZWxwZXIpIHtcbiAgICB2YXIgcGFyYW1zID0gW10sXG4gICAgICAgIHBhcmFtc0luaXQgPSB0aGlzLnNldHVwSGVscGVyQXJncyhuYW1lLCBwYXJhbVNpemUsIHBhcmFtcywgYmxvY2tIZWxwZXIpO1xuICAgIHZhciBmb3VuZEhlbHBlciA9IHRoaXMubmFtZUxvb2t1cCgnaGVscGVycycsIG5hbWUsICdoZWxwZXInKSxcbiAgICAgICAgY2FsbENvbnRleHQgPSB0aGlzLmFsaWFzYWJsZSh0aGlzLmNvbnRleHROYW1lKDApICsgJyAhPSBudWxsID8gJyArIHRoaXMuY29udGV4dE5hbWUoMCkgKyAnIDogKGNvbnRhaW5lci5udWxsQ29udGV4dCB8fCB7fSknKTtcblxuICAgIHJldHVybiB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIHBhcmFtc0luaXQ6IHBhcmFtc0luaXQsXG4gICAgICBuYW1lOiBmb3VuZEhlbHBlcixcbiAgICAgIGNhbGxQYXJhbXM6IFtjYWxsQ29udGV4dF0uY29uY2F0KHBhcmFtcylcbiAgICB9O1xuICB9LFxuXG4gIHNldHVwUGFyYW1zOiBmdW5jdGlvbiBzZXR1cFBhcmFtcyhoZWxwZXIsIHBhcmFtU2l6ZSwgcGFyYW1zKSB7XG4gICAgdmFyIG9wdGlvbnMgPSB7fSxcbiAgICAgICAgY29udGV4dHMgPSBbXSxcbiAgICAgICAgdHlwZXMgPSBbXSxcbiAgICAgICAgaWRzID0gW10sXG4gICAgICAgIG9iamVjdEFyZ3MgPSAhcGFyYW1zLFxuICAgICAgICBwYXJhbSA9IHVuZGVmaW5lZDtcblxuICAgIGlmIChvYmplY3RBcmdzKSB7XG4gICAgICBwYXJhbXMgPSBbXTtcbiAgICB9XG5cbiAgICBvcHRpb25zLm5hbWUgPSB0aGlzLnF1b3RlZFN0cmluZyhoZWxwZXIpO1xuICAgIG9wdGlvbnMuaGFzaCA9IHRoaXMucG9wU3RhY2soKTtcblxuICAgIGlmICh0aGlzLnRyYWNrSWRzKSB7XG4gICAgICBvcHRpb25zLmhhc2hJZHMgPSB0aGlzLnBvcFN0YWNrKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnN0cmluZ1BhcmFtcykge1xuICAgICAgb3B0aW9ucy5oYXNoVHlwZXMgPSB0aGlzLnBvcFN0YWNrKCk7XG4gICAgICBvcHRpb25zLmhhc2hDb250ZXh0cyA9IHRoaXMucG9wU3RhY2soKTtcbiAgICB9XG5cbiAgICB2YXIgaW52ZXJzZSA9IHRoaXMucG9wU3RhY2soKSxcbiAgICAgICAgcHJvZ3JhbSA9IHRoaXMucG9wU3RhY2soKTtcblxuICAgIC8vIEF2b2lkIHNldHRpbmcgZm4gYW5kIGludmVyc2UgaWYgbmVpdGhlciBhcmUgc2V0LiBUaGlzIGFsbG93c1xuICAgIC8vIGhlbHBlcnMgdG8gZG8gYSBjaGVjayBmb3IgYGlmIChvcHRpb25zLmZuKWBcbiAgICBpZiAocHJvZ3JhbSB8fCBpbnZlcnNlKSB7XG4gICAgICBvcHRpb25zLmZuID0gcHJvZ3JhbSB8fCAnY29udGFpbmVyLm5vb3AnO1xuICAgICAgb3B0aW9ucy5pbnZlcnNlID0gaW52ZXJzZSB8fCAnY29udGFpbmVyLm5vb3AnO1xuICAgIH1cblxuICAgIC8vIFRoZSBwYXJhbWV0ZXJzIGdvIG9uIHRvIHRoZSBzdGFjayBpbiBvcmRlciAobWFraW5nIHN1cmUgdGhhdCB0aGV5IGFyZSBldmFsdWF0ZWQgaW4gb3JkZXIpXG4gICAgLy8gc28gd2UgbmVlZCB0byBwb3AgdGhlbSBvZmYgdGhlIHN0YWNrIGluIHJldmVyc2Ugb3JkZXJcbiAgICB2YXIgaSA9IHBhcmFtU2l6ZTtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBwYXJhbSA9IHRoaXMucG9wU3RhY2soKTtcbiAgICAgIHBhcmFtc1tpXSA9IHBhcmFtO1xuXG4gICAgICBpZiAodGhpcy50cmFja0lkcykge1xuICAgICAgICBpZHNbaV0gPSB0aGlzLnBvcFN0YWNrKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zdHJpbmdQYXJhbXMpIHtcbiAgICAgICAgdHlwZXNbaV0gPSB0aGlzLnBvcFN0YWNrKCk7XG4gICAgICAgIGNvbnRleHRzW2ldID0gdGhpcy5wb3BTdGFjaygpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvYmplY3RBcmdzKSB7XG4gICAgICBvcHRpb25zLmFyZ3MgPSB0aGlzLnNvdXJjZS5nZW5lcmF0ZUFycmF5KHBhcmFtcyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHJhY2tJZHMpIHtcbiAgICAgIG9wdGlvbnMuaWRzID0gdGhpcy5zb3VyY2UuZ2VuZXJhdGVBcnJheShpZHMpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdHJpbmdQYXJhbXMpIHtcbiAgICAgIG9wdGlvbnMudHlwZXMgPSB0aGlzLnNvdXJjZS5nZW5lcmF0ZUFycmF5KHR5cGVzKTtcbiAgICAgIG9wdGlvbnMuY29udGV4dHMgPSB0aGlzLnNvdXJjZS5nZW5lcmF0ZUFycmF5KGNvbnRleHRzKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmRhdGEpIHtcbiAgICAgIG9wdGlvbnMuZGF0YSA9ICdkYXRhJztcbiAgICB9XG4gICAgaWYgKHRoaXMudXNlQmxvY2tQYXJhbXMpIHtcbiAgICAgIG9wdGlvbnMuYmxvY2tQYXJhbXMgPSAnYmxvY2tQYXJhbXMnO1xuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfSxcblxuICBzZXR1cEhlbHBlckFyZ3M6IGZ1bmN0aW9uIHNldHVwSGVscGVyQXJncyhoZWxwZXIsIHBhcmFtU2l6ZSwgcGFyYW1zLCB1c2VSZWdpc3Rlcikge1xuICAgIHZhciBvcHRpb25zID0gdGhpcy5zZXR1cFBhcmFtcyhoZWxwZXIsIHBhcmFtU2l6ZSwgcGFyYW1zKTtcbiAgICBvcHRpb25zLmxvYyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuc291cmNlLmN1cnJlbnRMb2NhdGlvbik7XG4gICAgb3B0aW9ucyA9IHRoaXMub2JqZWN0TGl0ZXJhbChvcHRpb25zKTtcbiAgICBpZiAodXNlUmVnaXN0ZXIpIHtcbiAgICAgIHRoaXMudXNlUmVnaXN0ZXIoJ29wdGlvbnMnKTtcbiAgICAgIHBhcmFtcy5wdXNoKCdvcHRpb25zJyk7XG4gICAgICByZXR1cm4gWydvcHRpb25zPScsIG9wdGlvbnNdO1xuICAgIH0gZWxzZSBpZiAocGFyYW1zKSB7XG4gICAgICBwYXJhbXMucHVzaChvcHRpb25zKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgfVxuICB9XG59O1xuXG4oZnVuY3Rpb24gKCkge1xuICB2YXIgcmVzZXJ2ZWRXb3JkcyA9ICgnYnJlYWsgZWxzZSBuZXcgdmFyJyArICcgY2FzZSBmaW5hbGx5IHJldHVybiB2b2lkJyArICcgY2F0Y2ggZm9yIHN3aXRjaCB3aGlsZScgKyAnIGNvbnRpbnVlIGZ1bmN0aW9uIHRoaXMgd2l0aCcgKyAnIGRlZmF1bHQgaWYgdGhyb3cnICsgJyBkZWxldGUgaW4gdHJ5JyArICcgZG8gaW5zdGFuY2VvZiB0eXBlb2YnICsgJyBhYnN0cmFjdCBlbnVtIGludCBzaG9ydCcgKyAnIGJvb2xlYW4gZXhwb3J0IGludGVyZmFjZSBzdGF0aWMnICsgJyBieXRlIGV4dGVuZHMgbG9uZyBzdXBlcicgKyAnIGNoYXIgZmluYWwgbmF0aXZlIHN5bmNocm9uaXplZCcgKyAnIGNsYXNzIGZsb2F0IHBhY2thZ2UgdGhyb3dzJyArICcgY29uc3QgZ290byBwcml2YXRlIHRyYW5zaWVudCcgKyAnIGRlYnVnZ2VyIGltcGxlbWVudHMgcHJvdGVjdGVkIHZvbGF0aWxlJyArICcgZG91YmxlIGltcG9ydCBwdWJsaWMgbGV0IHlpZWxkIGF3YWl0JyArICcgbnVsbCB0cnVlIGZhbHNlJykuc3BsaXQoJyAnKTtcblxuICB2YXIgY29tcGlsZXJXb3JkcyA9IEphdmFTY3JpcHRDb21waWxlci5SRVNFUlZFRF9XT1JEUyA9IHt9O1xuXG4gIGZvciAodmFyIGkgPSAwLCBsID0gcmVzZXJ2ZWRXb3Jkcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBjb21waWxlcldvcmRzW3Jlc2VydmVkV29yZHNbaV1dID0gdHJ1ZTtcbiAgfVxufSkoKTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBNYXkgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uXG4gKi9cbkphdmFTY3JpcHRDb21waWxlci5pc1ZhbGlkSmF2YVNjcmlwdFZhcmlhYmxlTmFtZSA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiAhSmF2YVNjcmlwdENvbXBpbGVyLlJFU0VSVkVEX1dPUkRTW25hbWVdICYmIC9eW2EtekEtWl8kXVswLTlhLXpBLVpfJF0qJC8udGVzdChuYW1lKTtcbn07XG5cbmZ1bmN0aW9uIHN0cmljdExvb2t1cChyZXF1aXJlVGVybWluYWwsIGNvbXBpbGVyLCBwYXJ0cywgdHlwZSkge1xuICB2YXIgc3RhY2sgPSBjb21waWxlci5wb3BTdGFjaygpLFxuICAgICAgaSA9IDAsXG4gICAgICBsZW4gPSBwYXJ0cy5sZW5ndGg7XG4gIGlmIChyZXF1aXJlVGVybWluYWwpIHtcbiAgICBsZW4tLTtcbiAgfVxuXG4gIGZvciAoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBzdGFjayA9IGNvbXBpbGVyLm5hbWVMb29rdXAoc3RhY2ssIHBhcnRzW2ldLCB0eXBlKTtcbiAgfVxuXG4gIGlmIChyZXF1aXJlVGVybWluYWwpIHtcbiAgICByZXR1cm4gW2NvbXBpbGVyLmFsaWFzYWJsZSgnY29udGFpbmVyLnN0cmljdCcpLCAnKCcsIHN0YWNrLCAnLCAnLCBjb21waWxlci5xdW90ZWRTdHJpbmcocGFydHNbaV0pLCAnLCAnLCBKU09OLnN0cmluZ2lmeShjb21waWxlci5zb3VyY2UuY3VycmVudExvY2F0aW9uKSwgJyApJ107XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHN0YWNrO1xuICB9XG59XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEphdmFTY3JpcHRDb21waWxlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwyeHBZaTlvWVc1a2JHVmlZWEp6TDJOdmJYQnBiR1Z5TDJwaGRtRnpZM0pwY0hRdFkyOXRjR2xzWlhJdWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3p0dlFrRkJiMFFzVTBGQlV6czdlVUpCUTNaRExHTkJRV003T3pzN2NVSkJRMW9zVlVGQlZUczdkVUpCUTJRc1dVRkJXVHM3T3p0QlFVVm9ReXhUUVVGVExFOUJRVThzUTBGQlF5eExRVUZMTEVWQlFVVTdRVUZEZEVJc1RVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTTdRMEZEY0VJN08wRkJSVVFzVTBGQlV5eHJRa0ZCYTBJc1IwRkJSeXhGUVVGRk96dEJRVVZvUXl4clFrRkJhMElzUTBGQlF5eFRRVUZUTEVkQlFVYzdPenRCUVVjM1FpeFpRVUZWTEVWQlFVVXNiMEpCUVZNc1RVRkJUU3hGUVVGRkxFbEJRVWtzWlVGQlpUdEJRVU01UXl4WFFVRlBMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03UjBGRE9VTTdRVUZEUkN4bFFVRmhMRVZCUVVVc2RVSkJRVk1zU1VGQlNTeEZRVUZGTzBGQlF6VkNMRmRCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExFVkJRVVVzV1VGQldTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRIUVVOMlJUczdRVUZGUkN4alFVRlpMRVZCUVVVc2QwSkJRVmM3UVVGRGRrSXNVVUZCVFN4UlFVRlJMREJDUVVGdlFqdFJRVU5vUXl4UlFVRlJMRWRCUVVjc2RVSkJRV2xDTEZGQlFWRXNRMEZCUXl4RFFVRkRPMEZCUTNoRExGZEJRVThzUTBGQlF5eFJRVUZSTEVWQlFVVXNVVUZCVVN4RFFVRkRMRU5CUVVNN1IwRkROMEk3TzBGQlJVUXNaMEpCUVdNc1JVRkJSU3gzUWtGQlV5eE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSVHM3UVVGRmJrUXNVVUZCU1N4RFFVRkRMR1ZCUVZFc1RVRkJUU3hEUVVGRExFVkJRVVU3UVVGRGNFSXNXVUZCVFN4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03UzBGRGJrSTdRVUZEUkN4VlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRE96dEJRVVUxUXl4UlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVVVGQlVTeEZRVUZGTzBGQlF6ZENMR0ZCUVU4c1EwRkJReXhUUVVGVExFVkJRVVVzVFVGQlRTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMHRCUTJwRExFMUJRVTBzU1VGQlNTeFJRVUZSTEVWQlFVVTdPenM3UVVGSmJrSXNZVUZCVHl4RFFVRkRMRmxCUVZrc1JVRkJSU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdTMEZEY0VNc1RVRkJUVHRCUVVOTUxGbEJRVTBzUTBGQlF5eGpRVUZqTEVkQlFVY3NTVUZCU1N4RFFVRkRPMEZCUXpkQ0xHRkJRVThzVFVGQlRTeERRVUZETzB0QlEyWTdSMEZEUmpzN1FVRkZSQ3hyUWtGQlowSXNSVUZCUlN3MFFrRkJWenRCUVVNelFpeFhRVUZQTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03UjBGRE9VSTdPMEZCUlVRc2IwSkJRV3RDTEVWQlFVVXNORUpCUVZNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJUdEJRVU42UXl4UlFVRkpMRU5CUVVNc05FSkJRVFJDTEVkQlFVY3NTVUZCU1N4RFFVRkRPMEZCUTNwRExGZEJRVThzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdSMEZEY0VVN08wRkJSVVFzT0VKQlFUUkNMRVZCUVVVc1MwRkJTenM3UVVGRmJrTXNVMEZCVHl4RlFVRkZMR2xDUVVGVExGZEJRVmNzUlVGQlJTeFBRVUZQTEVWQlFVVXNUMEZCVHl4RlFVRkZMRkZCUVZFc1JVRkJSVHRCUVVONlJDeFJRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRmRCUVZjc1EwRkJRenRCUVVNdlFpeFJRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTlCUVU4c1EwRkJRenRCUVVOMlFpeFJRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zV1VGQldTeERRVUZETzBGQlF6bERMRkZCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNN1FVRkRkRU1zVVVGQlNTeERRVUZETEZWQlFWVXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJRenM3UVVGRk5VSXNVVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXp0QlFVTnNReXhSUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNN1FVRkRla0lzVVVGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4UFFVRlBMRWxCUVVrN1FVRkRlRUlzWjBKQlFWVXNSVUZCUlN4RlFVRkZPMEZCUTJRc1kwRkJVU3hGUVVGRkxFVkJRVVU3UVVGRFdpeHJRa0ZCV1N4RlFVRkZMRVZCUVVVN1MwRkRha0lzUTBGQlF6czdRVUZGUml4UlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU03TzBGQlJXaENMRkZCUVVrc1EwRkJReXhUUVVGVExFZEJRVWNzUTBGQlF5eERRVUZETzBGQlEyNUNMRkZCUVVrc1EwRkJReXhUUVVGVExFZEJRVWNzUlVGQlJTeERRVUZETzBGQlEzQkNMRkZCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETzBGQlEyeENMRkZCUVVrc1EwRkJReXhUUVVGVExFZEJRVWNzUlVGQlJTeEpRVUZKTEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNN1FVRkRPVUlzVVVGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4RlFVRkZMRU5CUVVNN1FVRkRha0lzVVVGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4RlFVRkZMRU5CUVVNN1FVRkRka0lzVVVGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4RlFVRkZMRU5CUVVNN1FVRkRkRUlzVVVGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4RlFVRkZMRU5CUVVNN08wRkJSWFJDTEZGQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZET3p0QlFVVXpReXhSUVVGSkxFTkJRVU1zVTBGQlV5eEhRVU5hTEVsQlFVa3NRMEZCUXl4VFFVRlRMRWxCUTJRc1YwRkJWeXhEUVVGRExGTkJRVk1zU1VGRGNrSXNWMEZCVnl4RFFVRkRMR0ZCUVdFc1NVRkRla0lzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRkRUlzVVVGQlNTeERRVUZETEdOQlFXTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1kwRkJZeXhKUVVGSkxGZEJRVmNzUTBGQlF5eGpRVUZqTEVOQlFVTTdPMEZCUlhoRkxGRkJRVWtzVDBGQlR5eEhRVUZITEZkQlFWY3NRMEZCUXl4UFFVRlBPMUZCUXk5Q0xFMUJRVTBzV1VGQlFUdFJRVU5PTEZGQlFWRXNXVUZCUVR0UlFVTlNMRU5CUVVNc1dVRkJRVHRSUVVORUxFTkJRVU1zV1VGQlFTeERRVUZET3p0QlFVVktMRk5CUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMEZCUXpGRExGbEJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN08wRkJSWEJDTEZWQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1pVRkJaU3hIUVVGSExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTTdRVUZEZWtNc1kwRkJVU3hIUVVGSExGRkJRVkVzU1VGQlNTeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRPMEZCUTJ4RExGVkJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRPVU03T3p0QlFVZEVMRkZCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zWlVGQlpTeEhRVUZITEZGQlFWRXNRMEZCUXp0QlFVTjJReXhSUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPenM3UVVGSGNFSXNVVUZCU1N4SlFVRkpMRU5CUVVNc1UwRkJVeXhKUVVGSkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVFVGQlRTeEZRVUZGTzBGQlEzcEZMRmxCUVUwc01rSkJRV01zT0VOQlFUaERMRU5CUVVNc1EwRkJRenRMUVVOeVJUczdRVUZGUkN4UlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlR0QlFVTTVRaXhWUVVGSkxFTkJRVU1zWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXpzN1FVRkZNVUlzVlVGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkRkRUlzZVVOQlFYbERMRVZCUTNwRExFbEJRVWtzUTBGQlF5eHZRMEZCYjBNc1JVRkJSU3hGUVVNelF5eExRVUZMTEVOQlEwNHNRMEZCUXl4RFFVRkRPMEZCUTBnc1ZVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN08wRkJSVzVETEZWQlFVa3NVVUZCVVN4RlFVRkZPMEZCUTFvc1dVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVOeVF5eEpRVUZKTEVWQlEwb3NUMEZCVHl4RlFVTlFMRmRCUVZjc1JVRkRXQ3hSUVVGUkxFVkJRMUlzVFVGQlRTeEZRVU5PTEdGQlFXRXNSVUZEWWl4UlFVRlJMRVZCUTFJc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZEZUVJc1EwRkJReXhEUVVGRE8wOUJRMG9zVFVGQlRUdEJRVU5NTEZsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVOeVFpeDFSVUZCZFVVc1EwRkRlRVVzUTBGQlF6dEJRVU5HTEZsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlF6VkNMRmxCUVVrc1EwRkJReXhWUVVGVkxFZEJRVWNzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJRenRQUVVNelF6dExRVU5HTEUxQlFVMDdRVUZEVEN4VlFVRkpMRU5CUVVNc1ZVRkJWU3hIUVVGSExGTkJRVk1zUTBGQlF6dExRVU0zUWpzN1FVRkZSQ3hSUVVGSkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdRVUZET1VNc1VVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVTdRVUZEYWtJc1ZVRkJTU3hIUVVGSExFZEJRVWM3UVVGRFVpeG5Ra0ZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVU3UVVGRE4wSXNXVUZCU1N4RlFVRkZMRVZCUVVVN1QwRkRWQ3hEUVVGRE96dEJRVVZHTEZWQlFVa3NTVUZCU1N4RFFVRkRMRlZCUVZVc1JVRkJSVHRCUVVOdVFpeFhRVUZITEVOQlFVTXNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU03UVVGRE4wSXNWMEZCUnl4RFFVRkRMR0ZCUVdFc1IwRkJSeXhKUVVGSkxFTkJRVU03VDBGRE1VSTdPM0ZDUVVVNFFpeEpRVUZKTEVOQlFVTXNUMEZCVHp0VlFVRnlReXhSUVVGUkxGbEJRVklzVVVGQlVUdFZRVUZGTEZWQlFWVXNXVUZCVml4VlFVRlZPenRCUVVNeFFpeFhRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdEJRVU16UXl4WlFVRkpMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJUdEJRVU5tTEdGQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEY2tJc1kwRkJTU3hWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVTdRVUZEYWtJc1pVRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE9VSXNaVUZCUnl4RFFVRkRMR0ZCUVdFc1IwRkJSeXhKUVVGSkxFTkJRVU03VjBGRE1VSTdVMEZEUmp0UFFVTkdPenRCUVVWRUxGVkJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4VlFVRlZMRVZCUVVVN1FVRkRMMElzVjBGQlJ5eERRVUZETEZWQlFWVXNSMEZCUnl4SlFVRkpMRU5CUVVNN1QwRkRka0k3UVVGRFJDeFZRVUZKTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hGUVVGRk8wRkJRM0pDTEZkQlFVY3NRMEZCUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRE8wOUJRM0JDTzBGQlEwUXNWVUZCU1N4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRk8wRkJRMnhDTEZkQlFVY3NRMEZCUXl4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRE8wOUJRM1JDTzBGQlEwUXNWVUZCU1N4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRk8wRkJRM1pDTEZkQlFVY3NRMEZCUXl4alFVRmpMRWRCUVVjc1NVRkJTU3hEUVVGRE8wOUJRek5DTzBGQlEwUXNWVUZCU1N4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUlVGQlJUdEJRVU4yUWl4WFFVRkhMRU5CUVVNc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF6dFBRVU51UWpzN1FVRkZSQ3hWUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTzBGQlEySXNWMEZCUnl4RFFVRkRMRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenM3UVVGRk5VTXNXVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhsUVVGbExFZEJRVWNzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkJReXhGUVVGRkxFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRPMEZCUTJoRkxGZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE96dEJRVVU1UWl4WlFVRkpMRTlCUVU4c1EwRkJReXhQUVVGUExFVkJRVVU3UVVGRGJrSXNZVUZCUnl4SFFVRkhMRWRCUVVjc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTTFSQ3hoUVVGSExFTkJRVU1zUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4SFFVRkhMRWxCUVVrc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0VFFVTjZReXhOUVVGTk8wRkJRMHdzWVVGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJRenRUUVVOMFFqdFBRVU5HTEUxQlFVMDdRVUZEVEN4WFFVRkhMRU5CUVVNc1pVRkJaU3hIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTTdUMEZEY0VNN08wRkJSVVFzWVVGQlR5eEhRVUZITEVOQlFVTTdTMEZEV2l4TlFVRk5PMEZCUTB3c1lVRkJUeXhGUVVGRkxFTkJRVU03UzBGRFdEdEhRVU5HT3p0QlFVVkVMRlZCUVZFc1JVRkJSU3h2UWtGQlZ6czdPMEZCUjI1Q0xGRkJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUTNKQ0xGRkJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NlVUpCUVZrc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTm9SQ3hSUVVGSkxFTkJRVU1zVlVGQlZTeEhRVUZITEhsQ1FVRlpMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdSMEZEY2tRN08wRkJSVVFzZFVKQlFYRkNMRVZCUVVVc0swSkJRVk1zVVVGQlVTeEZRVUZGT3pzN096dEJRVU40UXl4UlFVRkpMR1ZCUVdVc1IwRkJSeXhGUVVGRkxFTkJRVU03TzBGQlJYcENMRkZCUVVrc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdRVUZEZUVRc1VVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNSVUZCUlR0QlFVTnlRaXh4UWtGQlpTeEpRVUZKTEVsQlFVa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzB0QlF6ZERPenM3T3pzN096dEJRVkZFTEZGQlFVa3NWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJRenRCUVVOdVFpeFZRVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCUVN4TFFVRkxMRVZCUVVrN1FVRkRla01zVlVGQlNTeEpRVUZKTEVkQlFVY3NUVUZCU3l4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGREwwSXNWVUZCU1N4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NRMEZCUXl4RlFVRkZPMEZCUXpWRExIVkNRVUZsTEVsQlFVa3NVMEZCVXl4SFFVRkhMRVZCUVVVc1ZVRkJWU3hIUVVGSExFZEJRVWNzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZETVVRc1dVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4UFFVRlBMRWRCUVVjc1ZVRkJWU3hEUVVGRE8wOUJRM3BETzB0QlEwWXNRMEZCUXl4RFFVRkRPenRCUVVWSUxGRkJRVWtzU1VGQlNTeERRVUZETERSQ1FVRTBRaXhGUVVGRk8wRkJRM0pETEhGQ1FVRmxMRWxCUVVrc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eHZRMEZCYjBNc1JVRkJSU3hEUVVGRE8wdEJRM1pGT3p0QlFVVkVMRkZCUVVrc1RVRkJUU3hIUVVGSExFTkJRVU1zVjBGQlZ5eEZRVUZGTEZGQlFWRXNSVUZCUlN4VFFVRlRMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZET3p0QlFVVndSU3hSUVVGSkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVsQlFVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSVHRCUVVONlF5eFpRVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8wdEJRelZDTzBGQlEwUXNVVUZCU1N4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRk8wRkJRMnhDTEZsQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03UzBGRGRrSTdPenRCUVVkRUxGRkJRVWtzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03TzBGQlJTOURMRkZCUVVrc1VVRkJVU3hGUVVGRk8wRkJRMW9zV1VGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenM3UVVGRmNFSXNZVUZCVHl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0TFFVTnlReXhOUVVGTk8wRkJRMHdzWVVGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVOMFFpeFhRVUZYTEVWQlExZ3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGRGFFSXNVMEZCVXl4RlFVTlVMRTFCUVUwc1JVRkRUaXhIUVVGSExFTkJRMG9zUTBGQlF5eERRVUZETzB0QlEwbzdSMEZEUmp0QlFVTkVMR0ZCUVZjc1JVRkJSU3h4UWtGQlV5eGxRVUZsTEVWQlFVVTdRVUZEY2tNc1VVRkJTU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJPMUZCUTNSRExGVkJRVlVzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhPMUZCUXpsQ0xGZEJRVmNzV1VGQlFUdFJRVU5ZTEZWQlFWVXNXVUZCUVR0UlFVTldMRmRCUVZjc1dVRkJRVHRSUVVOWUxGTkJRVk1zV1VGQlFTeERRVUZETzBGQlExb3NVVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlFTeEpRVUZKTEVWQlFVazdRVUZEZGtJc1ZVRkJTU3hKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTzBGQlEzWkNMRmxCUVVrc1YwRkJWeXhGUVVGRk8wRkJRMllzWTBGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRUUVVOMFFpeE5RVUZOTzBGQlEwd3NjVUpCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU03VTBGRGNFSTdRVUZEUkN4cFFrRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF6dFBRVU5zUWl4TlFVRk5PMEZCUTB3c1dVRkJTU3hYUVVGWExFVkJRVVU3UVVGRFppeGpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZPMEZCUTJZc2RVSkJRVmNzUjBGQlJ5eEpRVUZKTEVOQlFVTTdWMEZEY0VJc1RVRkJUVHRCUVVOTUxIVkNRVUZYTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xZEJRMjVETzBGQlEwUXNiVUpCUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZEYmtJc2NVSkJRVmNzUjBGQlJ5eFRRVUZUTEVkQlFVY3NVMEZCVXl4RFFVRkRPMU5CUTNKRE96dEJRVVZFTEd0Q1FVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRE8wRkJRMnhDTEZsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVN1FVRkRZaXh2UWtGQlZTeEhRVUZITEV0QlFVc3NRMEZCUXp0VFFVTndRanRQUVVOR08wdEJRMFlzUTBGQlF5eERRVUZET3p0QlFVVklMRkZCUVVrc1ZVRkJWU3hGUVVGRk8wRkJRMlFzVlVGQlNTeFhRVUZYTEVWQlFVVTdRVUZEWml4dFFrRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0QlFVTXZRaXhwUWtGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRQUVVOd1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4VlFVRlZMRVZCUVVVN1FVRkRkRUlzV1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VDBGRGFFTTdTMEZEUml4TlFVRk5PMEZCUTB3c2NVSkJRV1VzU1VGRFlpeGhRVUZoTEVsQlFVa3NWMEZCVnl4SFFVRkhMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1EwRkJRU3hCUVVGRExFTkJRVU03TzBGQlJTOUVMRlZCUVVrc1YwRkJWeXhGUVVGRk8wRkJRMllzYlVKQlFWY3NRMEZCUXl4UFFVRlBMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXp0QlFVTjRReXhwUWtGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRQUVVOd1FpeE5RVUZOTzBGQlEwd3NXVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJRenRQUVVOd1F6dExRVU5HT3p0QlFVVkVMRkZCUVVrc1pVRkJaU3hGUVVGRk8wRkJRMjVDTEZWQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVOcVFpeE5RVUZOTEVkQlFVY3NaVUZCWlN4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFhRVUZYTEVkQlFVY3NSVUZCUlN4SFFVRkhMRXRCUVVzc1EwRkJRU3hCUVVGRExFTkJRMjVGTEVOQlFVTTdTMEZEU0RzN1FVRkZSQ3hYUVVGUExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1IwRkROVUk3TzBGQlJVUXNjME5CUVc5RExFVkJRVVVzWjBSQlFWYzdRVUZETDBNc1YwRkJUeXcyVUVGUFRDeEpRVUZKTEVWQlFVVXNRMEZCUXp0SFFVTldPenM3T3pzN096czdPenRCUVZkRUxGbEJRVlVzUlVGQlJTeHZRa0ZCVXl4SlFVRkpMRVZCUVVVN1FVRkRla0lzVVVGQlNTeHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVU51UXl4dlEwRkJiME1zUTBGRGNrTTdVVUZEUkN4TlFVRk5MRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRha01zVVVGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZET3p0QlFVVjBReXhSUVVGSkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNN1FVRkRhRU1zVlVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZET3p0QlFVVXZRaXhSUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExHdENRVUZyUWl4RlFVRkZMRTFCUVUwc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETzBkQlEzcEZPenM3T3pzN096dEJRVkZFTEhGQ1FVRnRRaXhGUVVGRkxDdENRVUZYT3p0QlFVVTVRaXhSUVVGSkxHdENRVUZyUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRMjVETEc5RFFVRnZReXhEUVVOeVF6dFJRVU5FTEUxQlFVMHNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnFReXhSUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZET3p0QlFVVXhReXhSUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdPMEZCUlc1Q0xGRkJRVWtzVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJRenRCUVVNNVFpeFZRVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdPMEZCUlRkQ0xGRkJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZEWkN4UFFVRlBMRVZCUTFBc1NVRkJTU3hEUVVGRExGVkJRVlVzUlVGRFppeE5RVUZOTEVWQlEwNHNUMEZCVHl4RlFVTlFMRXRCUVVzc1JVRkRUQ3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZsQlFWa3NRMEZCUXl4clFrRkJhMElzUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RFFVRkRMRVZCUXpWRUxFZEJRVWNzUTBGRFNpeERRVUZETEVOQlFVTTdSMEZEU2pzN096czdPenM3UVVGUlJDeGxRVUZoTEVWQlFVVXNkVUpCUVZNc1QwRkJUeXhGUVVGRk8wRkJReTlDTEZGQlFVa3NTVUZCU1N4RFFVRkRMR05CUVdNc1JVRkJSVHRCUVVOMlFpeGhRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhQUVVGUExFTkJRVU03UzBGRGVrTXNUVUZCVFR0QlFVTk1MRlZCUVVrc1EwRkJReXhsUVVGbExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4bFFVRmxMRU5CUVVNN1MwRkRjRVE3TzBGQlJVUXNVVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhQUVVGUExFTkJRVU03UjBGREwwSTdPenM3T3pzN096czdPMEZCVjBRc1VVRkJUU3hGUVVGRkxHdENRVUZYTzBGQlEycENMRkZCUVVrc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTzBGQlEyNUNMRlZCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVlVGQlFTeFBRVUZQTzJWQlFVa3NRMEZCUXl4aFFVRmhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFOUJRVThzUTBGQlF6dFBRVUZCTEVOQlFVTXNRMEZCUXpzN1FVRkZhRVVzVlVGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRka1FzVFVGQlRUdEJRVU5NTEZWQlFVa3NTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF6dEJRVU0xUWl4VlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRMlFzVFVGQlRTeEZRVU5PTEV0QlFVc3NSVUZEVEN4alFVRmpMRVZCUTJRc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eExRVUZMTEVWQlFVVXNVMEZCVXl4RlFVRkZMRWxCUVVrc1EwRkJReXhGUVVNelF5eEpRVUZKTEVOQlEwd3NRMEZCUXl4RFFVRkRPMEZCUTBnc1ZVRkJTU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEZGQlFWRXNSVUZCUlR0QlFVTTNRaXhaUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlEyUXNVMEZCVXl4RlFVTlVMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zU1VGQlNTeEZRVUZGTEZOQlFWTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1JVRkRNVU1zU1VGQlNTeERRVU5NTEVOQlFVTXNRMEZCUXp0UFFVTktPMHRCUTBZN1IwRkRSanM3T3pzN096czdRVUZSUkN4bFFVRmhMRVZCUVVVc2VVSkJRVmM3UVVGRGVFSXNVVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkRZaXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlEyeENMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zTkVKQlFUUkNMRU5CUVVNc1JVRkROVU1zUjBGQlJ5eEZRVU5JTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkRaaXhIUVVGSExFTkJRMG9zUTBGQlF5eERRVU5JTEVOQlFVTTdSMEZEU0RzN096czdPenM3TzBGQlUwUXNXVUZCVlN4RlFVRkZMRzlDUVVGVExFdEJRVXNzUlVGQlJUdEJRVU14UWl4UlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFdEJRVXNzUTBGQlF6dEhRVU14UWpzN096czdPenM3UVVGUlJDeGhRVUZYTEVWQlFVVXNkVUpCUVZjN1FVRkRkRUlzVVVGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU03UjBGRE0wUTdPenM3T3pzN096dEJRVk5FTEdsQ1FVRmxMRVZCUVVVc2VVSkJRVk1zUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1RVRkJUU3hGUVVGRk8wRkJRM1JFTEZGQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenM3UVVGRlZpeFJRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSVHM3TzBGQlIzWkVMRlZCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTMEZETTBNc1RVRkJUVHRCUVVOTUxGVkJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0TFFVTndRanM3UVVGRlJDeFJRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRk5CUVZNc1JVRkJSU3hMUVVGTExFVkJRVVVzUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRIUVVOMFJEczdPenM3T3pzN08wRkJVMFFzYTBKQlFXZENMRVZCUVVVc01FSkJRVk1zV1VGQldTeEZRVUZGTEV0QlFVc3NSVUZCUlR0QlFVTTVReXhSUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXpzN1FVRkZNMElzVVVGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMR05CUVdNc1JVRkJSU3haUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RlFVRkZMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNwRkxGRkJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNVMEZCVXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEhRVU4yUXpzN096czdPenM3UVVGUlJDeFpRVUZWTEVWQlFVVXNiMEpCUVZNc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVWQlFVVTdRVUZEZWtNc1VVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJUdEJRVU5XTEZWQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0TFFVTXZRaXhOUVVGTk8wRkJRMHdzVlVGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExIVkNRVUYxUWl4SFFVRkhMRXRCUVVzc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dExRVU01UkRzN1FVRkZSQ3hSUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEUxQlFVMHNSVUZCUlN4TFFVRkxMRVZCUVVVc1EwRkJReXhGUVVGRkxFbEJRVWtzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0SFFVTnNSRHM3UVVGRlJDeGhRVUZYTEVWQlFVVXNjVUpCUVZNc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJTeERRVUZETEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1JVRkJSVHM3T3pzN1FVRkRia1FzVVVGQlNTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNSVUZCUlR0QlFVTnlSQ3hWUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeE5RVUZOTEVWQlFVVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6RkZMR0ZCUVU4N1MwRkRVanM3UVVGRlJDeFJRVUZKTEVkQlFVY3NSMEZCUnl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRM1pDTEZkQlFVOHNRMEZCUXl4SFFVRkhMRWRCUVVjc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUczdRVUZGYmtJc1ZVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eFZRVUZCTEU5QlFVOHNSVUZCU1R0QlFVTXpRaXhaUVVGSkxFMUJRVTBzUjBGQlJ5eFBRVUZMTEZWQlFWVXNRMEZCUXl4UFFVRlBMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPenM3UVVGSGRFUXNXVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSVHRCUVVOV0xHbENRVUZQTEVOQlFVTXNZVUZCWVN4RlFVRkZMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdVMEZEYUVRc1RVRkJUVHM3UVVGRlRDeHBRa0ZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dFRRVU42UWp0UFFVTkdMRU5CUVVNc1EwRkJRenM3UzBGRlNqdEhRVU5HT3pzN096czdPenM3UVVGVFJDeDFRa0ZCY1VJc1JVRkJSU3hwUTBGQlZ6dEJRVU5vUXl4UlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRMUlzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eEZRVU5zUXl4SFFVRkhMRVZCUTBnc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVU5tTEVsQlFVa3NSVUZEU2l4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVU51UWl4SFFVRkhMRU5CUTBvc1EwRkJReXhEUVVGRE8wZEJRMG83T3pzN096czdPenM3UVVGVlJDeHBRa0ZCWlN4RlFVRkZMSGxDUVVGVExFMUJRVTBzUlVGQlJTeEpRVUZKTEVWQlFVVTdRVUZEZEVNc1VVRkJTU3hEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETzBGQlEyNUNMRkZCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdPenM3UVVGSmRFSXNVVUZCU1N4SlFVRkpMRXRCUVVzc1pVRkJaU3hGUVVGRk8wRkJRelZDTEZWQlFVa3NUMEZCVHl4TlFVRk5MRXRCUVVzc1VVRkJVU3hGUVVGRk8wRkJRemxDTEZsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VDBGRGVrSXNUVUZCVFR0QlFVTk1MRmxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRQUVVNdlFqdExRVU5HTzBkQlEwWTdPMEZCUlVRc1YwRkJVeXhGUVVGRkxHMUNRVUZUTEZOQlFWTXNSVUZCUlR0QlFVTTNRaXhSUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVTdRVUZEYWtJc1ZVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TFFVTnFRanRCUVVORUxGRkJRVWtzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlR0QlFVTnlRaXhWUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTJoQ0xGVkJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRha0k3UVVGRFJDeFJRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVTBGQlV5eEhRVUZITEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRIUVVOMlJEdEJRVU5FTEZWQlFWRXNSVUZCUlN4dlFrRkJWenRCUVVOdVFpeFJRVUZKTEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVN1FVRkRZaXhWUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRE4wSTdRVUZEUkN4UlFVRkpMRU5CUVVNc1NVRkJTU3hIUVVGSExFVkJRVVVzVFVGQlRTeEZRVUZGTEVWQlFVVXNSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRE8wZEJRemxFTzBGQlEwUXNVMEZCVHl4RlFVRkZMRzFDUVVGWE8wRkJRMnhDTEZGQlFVa3NTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU03UVVGRGNrSXNVVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPenRCUVVVNVFpeFJRVUZKTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVN1FVRkRha0lzVlVGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMHRCUTNwRE8wRkJRMFFzVVVGQlNTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZPMEZCUTNKQ0xGVkJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTNReXhWUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdTMEZETTBNN08wRkJSVVFzVVVGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGRCUXpWRE96czdPenM3T3p0QlFWRkVMRmxCUVZVc1JVRkJSU3h2UWtGQlV5eE5RVUZOTEVWQlFVVTdRVUZETTBJc1VVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0SFFVTnNSRHM3T3pzN096czdPenRCUVZWRUxHRkJRVmNzUlVGQlJTeHhRa0ZCVXl4TFFVRkxMRVZCUVVVN1FVRkRNMElzVVVGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBkQlF6bENPenM3T3pzN096czdPMEZCVlVRc1lVRkJWeXhGUVVGRkxIRkNRVUZUTEVsQlFVa3NSVUZCUlR0QlFVTXhRaXhSUVVGSkxFbEJRVWtzU1VGQlNTeEpRVUZKTEVWQlFVVTdRVUZEYUVJc1ZVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8wdEJRM0pFTEUxQlFVMDdRVUZEVEN4VlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkROMEk3UjBGRFJqczdPenM3T3pzN08wRkJVMFFzYlVKQlFXbENMRVZCUVVFc01rSkJRVU1zVTBGQlV5eEZRVUZGTEVsQlFVa3NSVUZCUlR0QlFVTnFReXhSUVVGSkxHTkJRV01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRmxCUVZrc1JVRkJSU3hKUVVGSkxFVkJRVVVzVjBGQlZ5eERRVUZETzFGQlEyNUZMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenM3UVVGRmJFUXNVVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGRGJrSXNUMEZCVHl4RlFVTlFMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zV1VGQldTeERRVUZETEdOQlFXTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkRMME1zU1VGQlNTeEZRVU5LTEU5QlFVOHNSVUZEVUN4WFFVRlhMRVZCUTFnc1QwRkJUeXhEUVVOU0xFTkJRVU1zUlVGRFJpeFRRVUZUTEVOQlExWXNRMEZCUXl4RFFVRkRPMGRCUTBvN096czdPenM3T3pzN08wRkJWMFFzWTBGQldTeEZRVUZGTEhOQ1FVRlRMRk5CUVZNc1JVRkJSU3hKUVVGSkxFVkJRVVVzVVVGQlVTeEZRVUZGTzBGQlEyaEVMRkZCUVVrc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVTdVVUZETjBJc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNVMEZCVXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE96dEJRVVUzUXl4UlFVRkpMSEZDUVVGeFFpeEhRVUZITEVWQlFVVXNRMEZCUXpzN1FVRkZMMElzVVVGQlNTeFJRVUZSTEVWQlFVVTdPMEZCUlZvc01rSkJRWEZDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dExRVU42UXpzN1FVRkZSQ3g1UWtGQmNVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03UVVGRGRFTXNVVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTzBGQlEzaENMREpDUVVGeFFpeERRVUZETEVsQlFVa3NRMEZEZUVJc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5d3JRa0ZCSzBJc1EwRkJReXhEUVVOb1JDeERRVUZETzB0QlEwZzdPMEZCUlVRc1VVRkJTU3hyUWtGQmEwSXNSMEZCUnl4RFFVTjJRaXhIUVVGSExFVkJRMGdzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExIRkNRVUZ4UWl4RlFVRkZMRWxCUVVrc1EwRkJReXhGUVVOc1JDeEhRVUZITEVOQlEwb3NRMEZCUXp0QlFVTkdMRkZCUVVrc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVTjZReXhyUWtGQmEwSXNSVUZEYkVJc1RVRkJUU3hGUVVOT0xFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlEyeENMRU5CUVVNN1FVRkRSaXhSUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMGRCUTNwQ096dEJRVVZFTEd0Q1FVRm5RaXhGUVVGRkxEQkNRVUZUTEV0QlFVc3NSVUZCUlN4VFFVRlRMRVZCUVVVN1FVRkRNME1zVVVGQlNTeE5RVUZOTEVkQlFVY3NSVUZCUlN4RFFVRkRPMEZCUTJoQ0xGVkJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGRFSXNVMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3UVVGRGNrTXNXVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRiRU03UVVGRFJDeFhRVUZQTEUxQlFVMHNRMEZCUXp0SFFVTm1PenM3T3pzN096dEJRVkZFTEcxQ1FVRnBRaXhGUVVGRkxESkNRVUZUTEZOQlFWTXNSVUZCUlN4SlFVRkpMRVZCUVVVN1FVRkRNME1zVVVGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhUUVVGVExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdRVUZETDBNc1VVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmxCUVZrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF6dEhRVU0zUlRzN096czdPenM3T3pzN096czdRVUZqUkN4cFFrRkJaU3hGUVVGRkxIbENRVUZUTEVsQlFVa3NSVUZCUlN4VlFVRlZMRVZCUVVVN1FVRkRNVU1zVVVGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenM3UVVGRk0wSXNVVUZCU1N4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZET3p0QlFVVm9ReXhSUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdRVUZEYWtJc1VVRkJTU3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hGUVVGRkxGVkJRVlVzUTBGQlF5eERRVUZET3p0QlFVVnVSQ3hSUVVGSkxGVkJRVlVzUjBGQlNTeEpRVUZKTEVOQlFVTXNWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRMnBFTEZOQlFWTXNSVUZEVkN4SlFVRkpMRVZCUTBvc1VVRkJVU3hEUVVOVUxFRkJRVU1zUTBGQlF6czdRVUZGU0N4UlFVRkpMRTFCUVUwc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeFpRVUZaTEVWQlFVVXNWVUZCVlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZEY2tVc1VVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RlFVRkZPMEZCUTNoQ0xGbEJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4WlFVRlpMRU5CUVVNN1FVRkRla0lzV1VGQlRTeERRVUZETEVsQlFVa3NRMEZEVkN4elFrRkJjMElzUlVGRGRFSXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXdyUWtGQkswSXNRMEZCUXl4RFFVTm9SQ3hEUVVGRE8wdEJRMGc3TzBGQlJVUXNVVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVOU0xFZEJRVWNzUlVGRFNDeE5RVUZOTEVWQlEwNHNUVUZCVFN4RFFVRkRMRlZCUVZVc1IwRkJSeXhEUVVGRExFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVOdVJDeEpRVUZKTEVWQlEwb3NjVUpCUVhGQ0xFVkJRM0pDTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRelZDTEV0QlFVc3NSVUZEVEN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGbEJRVmtzUTBGQlF5eFJRVUZSTEVWQlFVVXNUVUZCVFN4RlFVRkZMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zUlVGRE4wUXNZVUZCWVN4RFFVTmtMRU5CUVVNc1EwRkJRenRIUVVOS096czdPenM3T3pzN1FVRlRSQ3hsUVVGaExFVkJRVVVzZFVKQlFWTXNVMEZCVXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVU3UVVGREwwTXNVVUZCU1N4TlFVRk5MRWRCUVVjc1JVRkJSVHRSUVVOaUxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdPMEZCUlRsRExGRkJRVWtzVTBGQlV5eEZRVUZGTzBGQlEySXNWVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF6dEJRVU4yUWl4aFFVRlBMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU03UzBGRGNrSTdPMEZCUlVRc1VVRkJTU3hOUVVGTkxFVkJRVVU3UVVGRFZpeGhRVUZQTEVOQlFVTXNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTMEZEZWtNN1FVRkRSQ3hYUVVGUExFTkJRVU1zVDBGQlR5eEhRVUZITEZOQlFWTXNRMEZCUXp0QlFVTTFRaXhYUVVGUExFTkJRVU1zVVVGQlVTeEhRVUZITEZWQlFWVXNRMEZCUXp0QlFVTTVRaXhYUVVGUExFTkJRVU1zVlVGQlZTeEhRVUZITEhOQ1FVRnpRaXhEUVVGRE96dEJRVVUxUXl4UlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRk8wRkJRMlFzV1VGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExGVkJRVlVzUlVGQlJTeEpRVUZKTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVNNVJDeE5RVUZOTzBGQlEwd3NXVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dExRVU4wUWpzN1FVRkZSQ3hSUVVGSkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RlFVRkZPMEZCUTNaQ0xHRkJRVThzUTBGQlF5eE5RVUZOTEVkQlFVY3NVVUZCVVN4RFFVRkRPMHRCUXpOQ08wRkJRMFFzVjBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRGRFTXNWVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6czdRVUZGY2tJc1VVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmxCUVZrc1EwRkJReXg1UWtGQmVVSXNSVUZCUlN4RlFVRkZMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dEhRVU0xUlRzN096czdPenM3UVVGUlJDeGpRVUZaTEVWQlFVVXNjMEpCUVZNc1IwRkJSeXhGUVVGRk8wRkJRekZDTEZGQlFVa3NTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVU3VVVGRGVrSXNUMEZCVHl4WlFVRkJPMUZCUTFBc1NVRkJTU3haUVVGQk8xRkJRMG9zUlVGQlJTeFpRVUZCTEVOQlFVTTdPMEZCUlV3c1VVRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTzBGQlEycENMRkZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTTdTMEZEZEVJN1FVRkRSQ3hSUVVGSkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVTdRVUZEY2tJc1ZVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0QlFVTjJRaXhoUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMHRCUXpOQ096dEJRVVZFTEZGQlFVa3NTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU03UVVGRGNrSXNVVUZCU1N4UFFVRlBMRVZCUVVVN1FVRkRXQ3hWUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJRenRMUVVNNVFqdEJRVU5FTEZGQlFVa3NTVUZCU1N4RlFVRkZPMEZCUTFJc1ZVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNN1MwRkRlRUk3UVVGRFJDeFJRVUZKTEVWQlFVVXNSVUZCUlR0QlFVTk9MRlZCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMHRCUTNCQ08wRkJRMFFzVVVGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU03UjBGRE1VSTdPMEZCUlVRc1VVRkJUU3hGUVVGRkxHZENRVUZUTEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhGUVVGRk8wRkJRMnhETEZGQlFVa3NTVUZCU1N4TFFVRkxMRmxCUVZrc1JVRkJSVHRCUVVONlFpeFZRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRMjVDTEdOQlFXTXNSMEZEV2l4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRMUFzVTBGQlV5eEhRVU5VTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkRVQ3hIUVVGSExFbEJRMFlzUzBGQlN5eEhRVUZITEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFZEJRVWNzUjBGQlJ5eExRVUZMTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVFc1FVRkJReXhEUVVOeVJDeERRVUZETzB0QlEwZ3NUVUZCVFN4SlFVRkpMRWxCUVVrc1MwRkJTeXhuUWtGQlowSXNSVUZCUlR0QlFVTndReXhWUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMHRCUTNaQ0xFMUJRVTBzU1VGQlNTeEpRVUZKTEV0QlFVc3NaVUZCWlN4RlFVRkZPMEZCUTI1RExGVkJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dExRVU12UWl4TlFVRk5PMEZCUTB3c1ZVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wdEJReTlDTzBkQlEwWTdPenM3UVVGSlJDeFZRVUZSTEVWQlFVVXNhMEpCUVd0Q096dEJRVVUxUWl4cFFrRkJaU3hGUVVGRkxIbENRVUZUTEZkQlFWY3NSVUZCUlN4UFFVRlBMRVZCUVVVN1FVRkRPVU1zVVVGQlNTeFJRVUZSTEVkQlFVY3NWMEZCVnl4RFFVRkRMRkZCUVZFN1VVRkRha01zUzBGQlN5eFpRVUZCTzFGQlEwd3NVVUZCVVN4WlFVRkJMRU5CUVVNN08wRkJSVmdzVTBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdEJRVU12UXl4WFFVRkxMRWRCUVVjc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzQkNMR05CUVZFc1IwRkJSeXhKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXpzN1FVRkZMMElzVlVGQlNTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPenRCUVVWb1JDeFZRVUZKTEZGQlFWRXNTVUZCU1N4SlFVRkpMRVZCUVVVN1FVRkRjRUlzV1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzBGQlF5OUNMRmxCUVVrc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVONlF5eGhRVUZMTEVOQlFVTXNTMEZCU3l4SFFVRkhMRXRCUVVzc1EwRkJRenRCUVVOd1FpeGhRVUZMTEVOQlFVTXNTVUZCU1N4SFFVRkhMRk5CUVZNc1IwRkJSeXhMUVVGTExFTkJRVU03UVVGREwwSXNXVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkROME1zUzBGQlN5eEZRVU5NTEU5QlFVOHNSVUZEVUN4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVOYUxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZEYWtJc1EwRkJRenRCUVVOR0xGbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNWVUZCVlN4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExGRkJRVkVzUTBGQlF5eFZRVUZWTEVOQlFVTTdRVUZEY2tRc1dVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRE96dEJRVVY2UXl4WlFVRkpMRU5CUVVNc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVsQlFVa3NVVUZCVVN4RFFVRkRMRk5CUVZNc1EwRkJRenRCUVVOMFJDeFpRVUZKTEVOQlFVTXNZMEZCWXl4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFbEJRVWtzVVVGQlVTeERRVUZETEdOQlFXTXNRMEZCUXp0QlFVTnlSU3hoUVVGTExFTkJRVU1zVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNN1FVRkRha01zWVVGQlN5eERRVUZETEdOQlFXTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRE8wOUJRelZETEUxQlFVMDdRVUZEVEN4aFFVRkxMRU5CUVVNc1MwRkJTeXhIUVVGSExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTTdRVUZETjBJc1lVRkJTeXhEUVVGRExFbEJRVWtzUjBGQlJ5eFRRVUZUTEVkQlFVY3NVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJRenM3UVVGRmVFTXNXVUZCU1N4RFFVRkRMRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eEpRVUZKTEZGQlFWRXNRMEZCUXl4VFFVRlRMRU5CUVVNN1FVRkRkRVFzV1VGQlNTeERRVUZETEdOQlFXTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1kwRkJZeXhKUVVGSkxGRkJRVkVzUTBGQlF5eGpRVUZqTEVOQlFVTTdUMEZEZEVVN1MwRkRSanRIUVVOR08wRkJRMFFzYzBKQlFXOUNMRVZCUVVVc09FSkJRVk1zUzBGQlN5eEZRVUZGTzBGQlEzQkRMRk5CUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4SFFVRkhMRWRCUVVjc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdEJRVU53UlN4VlFVRkpMRmRCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNdlF5eFZRVUZKTEZkQlFWY3NTVUZCU1N4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTzBGQlF6VkRMR1ZCUVU4c1YwRkJWeXhEUVVGRE8wOUJRM0JDTzB0QlEwWTdSMEZEUmpzN1FVRkZSQ3h0UWtGQmFVSXNSVUZCUlN3eVFrRkJVeXhKUVVGSkxFVkJRVVU3UVVGRGFFTXNVVUZCU1N4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUTNwRExHRkJRV0VzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXpzN1FVRkZNMFFzVVVGQlNTeEpRVUZKTEVOQlFVTXNZMEZCWXl4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVU3UVVGRGVrTXNiVUpCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTTdTMEZEYmtNN1FVRkRSQ3hSUVVGSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVTdRVUZEYkVJc2JVSkJRV0VzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1MwRkRPVUk3TzBGQlJVUXNWMEZCVHl4dlFrRkJiMElzUjBGQlJ5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF6dEhRVU01UkRzN1FVRkZSQ3hoUVVGWExFVkJRVVVzY1VKQlFWTXNTVUZCU1N4RlFVRkZPMEZCUXpGQ0xGRkJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRk8wRkJRM3BDTEZWQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETzBGQlF6VkNMRlZCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRMUVVOb1F6dEhRVU5HT3p0QlFVVkVMRTFCUVVrc1JVRkJSU3hqUVVGVExFbEJRVWtzUlVGQlJUdEJRVU51UWl4UlFVRkpMRVZCUVVVc1NVRkJTU3haUVVGWkxFOUJRVThzUTBGQlFTeEJRVUZETEVWQlFVVTdRVUZET1VJc1ZVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wdEJReTlDT3p0QlFVVkVMRkZCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUXpWQ0xGZEJRVThzU1VGQlNTeERRVUZETzBkQlEySTdPMEZCUlVRc2EwSkJRV2RDTEVWQlFVVXNNRUpCUVZNc1NVRkJTU3hGUVVGRk8wRkJReTlDTEZGQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0SFFVTTVRanM3UVVGRlJDeFpRVUZWTEVWQlFVVXNiMEpCUVZNc1RVRkJUU3hGUVVGRk8wRkJRek5DTEZGQlFVa3NTVUZCU1N4RFFVRkRMR05CUVdNc1JVRkJSVHRCUVVOMlFpeFZRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkRaQ3hKUVVGSkxFTkJRVU1zWTBGQll5eERRVU5xUWl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRVZCUXpkRExFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlEzSkNMRU5CUTBZc1EwRkJRenRCUVVOR0xGVkJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NVMEZCVXl4RFFVRkRPMHRCUTJwRE96dEJRVVZFTEZGQlFVa3NUVUZCVFN4RlFVRkZPMEZCUTFZc1ZVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1MwRkRNVUk3UjBGRFJqczdRVUZGUkN4alFVRlpMRVZCUVVVc2MwSkJRVk1zVVVGQlVTeEZRVUZGTzBGQlF5OUNMRkZCUVVrc1RVRkJUU3hIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETzFGQlEyaENMRXRCUVVzc1dVRkJRVHRSUVVOTUxGbEJRVmtzV1VGQlFUdFJRVU5hTEZkQlFWY3NXVUZCUVN4RFFVRkRPenM3UVVGSFpDeFJRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRk8wRkJRM0JDTEZsQlFVMHNNa0pCUVdNc05FSkJRVFJDTEVOQlFVTXNRMEZCUXp0TFFVTnVSRHM3TzBGQlIwUXNVVUZCU1N4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXpzN1FVRkZPVUlzVVVGQlNTeEhRVUZITEZsQlFWa3NUMEZCVHl4RlFVRkZPenRCUVVVeFFpeFhRVUZMTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRGNFSXNXVUZCVFN4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEzUkNMR2xDUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETzB0QlEzQkNMRTFCUVUwN08wRkJSVXdzYTBKQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1FVRkRjRUlzVlVGQlNTeExRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE96dEJRVVUxUWl4WlFVRk5MRWRCUVVjc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkpMRU5CUVVNc1JVRkJSU3hMUVVGTExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUTJ4RUxGZEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNN1MwRkRla0k3TzBGQlJVUXNVVUZCU1N4SlFVRkpMRWRCUVVjc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN08wRkJSWFJETEZGQlFVa3NRMEZCUXl4WFFVRlhMRVZCUVVVN1FVRkRhRUlzVlVGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMHRCUTJwQ08wRkJRMFFzVVVGQlNTeFpRVUZaTEVWQlFVVTdRVUZEYUVJc1ZVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzB0QlEyeENPMEZCUTBRc1VVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBkQlEzSkRPenRCUVVWRUxGZEJRVk1zUlVGQlJTeHhRa0ZCVnp0QlFVTndRaXhSUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdRVUZEYWtJc1VVRkJTU3hKUVVGSkxFTkJRVU1zVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1RVRkJUU3hGUVVGRk8wRkJRekZETEZWQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1MwRkRMME03UVVGRFJDeFhRVUZQTEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRIUVVNMVFqdEJRVU5FTEdOQlFWa3NSVUZCUlN4M1FrRkJWenRCUVVOMlFpeFhRVUZQTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRE8wZEJRMnBETzBGQlEwUXNZVUZCVnl4RlFVRkZMSFZDUVVGWE8wRkJRM1JDTEZGQlFVa3NWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU03UVVGRGJrTXNVVUZCU1N4RFFVRkRMRmRCUVZjc1IwRkJSeXhGUVVGRkxFTkJRVU03UVVGRGRFSXNVMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUjBGQlJ5eEhRVUZITEZkQlFWY3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhIUVVGSExFZEJRVWNzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0QlFVTjBSQ3hWUVVGSkxFdEJRVXNzUjBGQlJ5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN08wRkJSVE5DTEZWQlFVa3NTMEZCU3l4WlFVRlpMRTlCUVU4c1JVRkJSVHRCUVVNMVFpeFpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFBRVU12UWl4TlFVRk5PMEZCUTB3c1dVRkJTU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMEZCUXpkQ0xGbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpWRExGbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wOUJReTlDTzB0QlEwWTdSMEZEUmp0QlFVTkVMRlZCUVZFc1JVRkJSU3h2UWtGQlZ6dEJRVU51UWl4WFFVRlBMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVFVGQlRTeERRVUZETzBkQlEyaERPenRCUVVWRUxGVkJRVkVzUlVGQlJTeHJRa0ZCVXl4UFFVRlBMRVZCUVVVN1FVRkRNVUlzVVVGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSVHRSUVVNeFFpeEpRVUZKTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkJMRU5CUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU03TzBGQlJTOUVMRkZCUVVrc1EwRkJReXhQUVVGUExFbEJRVWtzU1VGQlNTeFpRVUZaTEU5QlFVOHNSVUZCUlR0QlFVTjJReXhoUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTTdTMEZEYmtJc1RVRkJUVHRCUVVOTUxGVkJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVTdPMEZCUlZnc1dVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVTdRVUZEYmtJc1owSkJRVTBzTWtKQlFXTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dFRRVU14UXp0QlFVTkVMRmxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dFBRVU5zUWp0QlFVTkVMR0ZCUVU4c1NVRkJTU3hEUVVGRE8wdEJRMkk3UjBGRFJqczdRVUZGUkN4VlFVRlJMRVZCUVVVc2IwSkJRVmM3UVVGRGJrSXNVVUZCU1N4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVms3VVVGRGFFVXNTVUZCU1N4SFFVRkhMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPenM3UVVGSGFrTXNVVUZCU1N4SlFVRkpMRmxCUVZrc1QwRkJUeXhGUVVGRk8wRkJRek5DTEdGQlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJRenRMUVVOdVFpeE5RVUZOTzBGQlEwd3NZVUZCVHl4SlFVRkpMRU5CUVVNN1MwRkRZanRIUVVOR096dEJRVVZFTEdGQlFWY3NSVUZCUlN4eFFrRkJVeXhQUVVGUExFVkJRVVU3UVVGRE4wSXNVVUZCU1N4SlFVRkpMRU5CUVVNc1UwRkJVeXhKUVVGSkxFOUJRVThzUlVGQlJUdEJRVU0zUWl4aFFVRlBMRk5CUVZNc1IwRkJSeXhQUVVGUExFZEJRVWNzUjBGQlJ5eERRVUZETzB0QlEyeERMRTFCUVUwN1FVRkRUQ3hoUVVGUExFOUJRVThzUjBGQlJ5eFBRVUZQTEVOQlFVTTdTMEZETVVJN1IwRkRSanM3UVVGRlJDeGpRVUZaTEVWQlFVVXNjMEpCUVZNc1IwRkJSeXhGUVVGRk8wRkJRekZDTEZkQlFVOHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdSMEZEZEVNN08wRkJSVVFzWlVGQllTeEZRVUZGTEhWQ1FVRlRMRWRCUVVjc1JVRkJSVHRCUVVNelFpeFhRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1lVRkJZU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBkQlEzWkRPenRCUVVWRUxGZEJRVk1zUlVGQlJTeHRRa0ZCVXl4SlFVRkpMRVZCUVVVN1FVRkRlRUlzVVVGQlNTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU0zUWl4UlFVRkpMRWRCUVVjc1JVRkJSVHRCUVVOUUxGTkJRVWNzUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0QlFVTnlRaXhoUVVGUExFZEJRVWNzUTBGQlF6dExRVU5hT3p0QlFVVkVMRTlCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTJ4RUxFOUJRVWNzUTBGQlF5eFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRPMEZCUTNKQ0xFOUJRVWNzUTBGQlF5eGpRVUZqTEVkQlFVY3NRMEZCUXl4RFFVRkRPenRCUVVWMlFpeFhRVUZQTEVkQlFVY3NRMEZCUXp0SFFVTmFPenRCUVVWRUxHRkJRVmNzUlVGQlJTeHhRa0ZCVXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hGUVVGRkxGZEJRVmNzUlVGQlJUdEJRVU5zUkN4UlFVRkpMRTFCUVUwc1IwRkJSeXhGUVVGRk8xRkJRMklzVlVGQlZTeEhRVUZITEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1NVRkJTU3hGUVVGRkxGTkJRVk1zUlVGQlJTeE5RVUZOTEVWQlFVVXNWMEZCVnl4RFFVRkRMRU5CUVVNN1FVRkRNVVVzVVVGQlNTeFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFVkJRVVVzU1VGQlNTeEZRVUZGTEZGQlFWRXNRMEZCUXp0UlFVTXhSQ3hYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZEZGtJc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNiVUpCUVdNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGRGJFUXNRMEZCUXl4RFFVTkdMSE5EUVVOR0xFTkJRVU03TzBGQlJVb3NWMEZCVHp0QlFVTk1MRmxCUVUwc1JVRkJSU3hOUVVGTk8wRkJRMlFzWjBKQlFWVXNSVUZCUlN4VlFVRlZPMEZCUTNSQ0xGVkJRVWtzUlVGQlJTeFhRVUZYTzBGQlEycENMR2RDUVVGVkxFVkJRVVVzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRE8wdEJRM3BETEVOQlFVTTdSMEZEU0RzN1FVRkZSQ3hoUVVGWExFVkJRVVVzY1VKQlFWTXNUVUZCVFN4RlFVRkZMRk5CUVZNc1JVRkJSU3hOUVVGTkxFVkJRVVU3UVVGREwwTXNVVUZCU1N4UFFVRlBMRWRCUVVjc1JVRkJSVHRSUVVOa0xGRkJRVkVzUjBGQlJ5eEZRVUZGTzFGQlEySXNTMEZCU3l4SFFVRkhMRVZCUVVVN1VVRkRWaXhIUVVGSExFZEJRVWNzUlVGQlJUdFJRVU5TTEZWQlFWVXNSMEZCUnl4RFFVRkRMRTFCUVUwN1VVRkRjRUlzUzBGQlN5eFpRVUZCTEVOQlFVTTdPMEZCUlZJc1VVRkJTU3hWUVVGVkxFVkJRVVU3UVVGRFpDeFpRVUZOTEVkQlFVY3NSVUZCUlN4RFFVRkRPMHRCUTJJN08wRkJSVVFzVjBGQlR5eERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBGQlEzcERMRmRCUVU4c1EwRkJReXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPenRCUVVVdlFpeFJRVUZKTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVN1FVRkRha0lzWVVGQlR5eERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU03UzBGRGJrTTdRVUZEUkN4UlFVRkpMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVU3UVVGRGNrSXNZVUZCVHl4RFFVRkRMRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTTdRVUZEY0VNc1lVRkJUeXhEUVVGRExGbEJRVmtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNN1MwRkRlRU03TzBGQlJVUXNVVUZCU1N4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJUdFJRVU16UWl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZET3pzN08wRkJTVFZDTEZGQlFVa3NUMEZCVHl4SlFVRkpMRTlCUVU4c1JVRkJSVHRCUVVOMFFpeGhRVUZQTEVOQlFVTXNSVUZCUlN4SFFVRkhMRTlCUVU4c1NVRkJTU3huUWtGQlowSXNRMEZCUXp0QlFVTjZReXhoUVVGUExFTkJRVU1zVDBGQlR5eEhRVUZITEU5QlFVOHNTVUZCU1N4blFrRkJaMElzUTBGQlF6dExRVU12UXpzN096dEJRVWxFTEZGQlFVa3NRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJRenRCUVVOc1FpeFhRVUZQTEVOQlFVTXNSVUZCUlN4RlFVRkZPMEZCUTFZc1YwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0QlFVTjRRaXhaUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRPenRCUVVWc1FpeFZRVUZKTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVN1FVRkRha0lzVjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF6dFBRVU14UWp0QlFVTkVMRlZCUVVrc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJUdEJRVU55UWl4aFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMEZCUXpOQ0xHZENRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzA5QlF5OUNPMHRCUTBZN08wRkJSVVFzVVVGQlNTeFZRVUZWTEVWQlFVVTdRVUZEWkN4aFFVRlBMRU5CUVVNc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNZVUZCWVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wdEJRMnhFT3p0QlFVVkVMRkZCUVVrc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJUdEJRVU5xUWl4aFFVRlBMRU5CUVVNc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wdEJRemxETzBGQlEwUXNVVUZCU1N4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRk8wRkJRM0pDTEdGQlFVOHNRMEZCUXl4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRha1FzWVVGQlR5eERRVUZETEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHRkJRV0VzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0TFFVTjRSRHM3UVVGRlJDeFJRVUZKTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hGUVVGRk8wRkJRM0pDTEdGQlFVOHNRMEZCUXl4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRE8wdEJRM1pDTzBGQlEwUXNVVUZCU1N4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRk8wRkJRM1pDTEdGQlFVOHNRMEZCUXl4WFFVRlhMRWRCUVVjc1lVRkJZU3hEUVVGRE8wdEJRM0pETzBGQlEwUXNWMEZCVHl4UFFVRlBMRU5CUVVNN1IwRkRhRUk3TzBGQlJVUXNhVUpCUVdVc1JVRkJSU3g1UWtGQlV5eE5RVUZOTEVWQlFVVXNVMEZCVXl4RlFVRkZMRTFCUVUwc1JVRkJSU3hYUVVGWExFVkJRVVU3UVVGRGFFVXNVVUZCU1N4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eE5RVUZOTEVWQlFVVXNVMEZCVXl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJRekZFTEZkQlFVOHNRMEZCUXl4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRE8wRkJRekZFTEZkQlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBGQlEzUkRMRkZCUVVrc1YwRkJWeXhGUVVGRk8wRkJRMllzVlVGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRCUVVNMVFpeFpRVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8wRkJRM1pDTEdGQlFVOHNRMEZCUXl4VlFVRlZMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03UzBGRE9VSXNUVUZCVFN4SlFVRkpMRTFCUVUwc1JVRkJSVHRCUVVOcVFpeFpRVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wRkJRM0pDTEdGQlFVOHNSVUZCUlN4RFFVRkRPMHRCUTFnc1RVRkJUVHRCUVVOTUxHRkJRVThzVDBGQlR5eERRVUZETzB0QlEyaENPMGRCUTBZN1EwRkRSaXhEUVVGRE96dEJRVVZHTEVOQlFVTXNXVUZCVnp0QlFVTldMRTFCUVUwc1lVRkJZU3hIUVVGSExFTkJRM0JDTEc5Q1FVRnZRaXhIUVVOd1Fpd3lRa0ZCTWtJc1IwRkRNMElzZVVKQlFYbENMRWRCUTNwQ0xEaENRVUU0UWl4SFFVTTVRaXh0UWtGQmJVSXNSMEZEYmtJc1owSkJRV2RDTEVkQlEyaENMSFZDUVVGMVFpeEhRVU4yUWl3d1FrRkJNRUlzUjBGRE1VSXNhME5CUVd0RExFZEJRMnhETERCQ1FVRXdRaXhIUVVNeFFpeHBRMEZCYVVNc1IwRkRha01zTmtKQlFUWkNMRWRCUXpkQ0xDdENRVUVyUWl4SFFVTXZRaXg1UTBGQmVVTXNSMEZEZWtNc2RVTkJRWFZETEVkQlEzWkRMR3RDUVVGclFpeERRVUZCTEVOQlEyeENMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6czdRVUZGWWl4TlFVRk5MR0ZCUVdFc1IwRkJTU3hyUWtGQmEwSXNRMEZCUXl4alFVRmpMRWRCUVVjc1JVRkJSU3hCUVVGRExFTkJRVU03TzBGQlJTOUVMRTlCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4aFFVRmhMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1FVRkRjRVFzYVVKQlFXRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTTdSMEZEZUVNN1EwRkRSaXhEUVVGQkxFVkJRVWNzUTBGQlF6czdPenM3UVVGTFRDeHJRa0ZCYTBJc1EwRkJReXcyUWtGQk5rSXNSMEZCUnl4VlFVRlRMRWxCUVVrc1JVRkJSVHRCUVVOb1JTeFRRVU5GTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zWTBGQll5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVTjRReXcwUWtGQk5FSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRM1pETzBOQlEwZ3NRMEZCUXpzN1FVRkZSaXhUUVVGVExGbEJRVmtzUTBGQlF5eGxRVUZsTEVWQlFVVXNVVUZCVVN4RlFVRkZMRXRCUVVzc1JVRkJSU3hKUVVGSkxFVkJRVVU3UVVGRE5VUXNUVUZCU1N4TFFVRkxMRWRCUVVjc1VVRkJVU3hEUVVGRExGRkJRVkVzUlVGQlJUdE5RVU0zUWl4RFFVRkRMRWRCUVVjc1EwRkJRenROUVVOTUxFZEJRVWNzUjBGQlJ5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRPMEZCUTNKQ0xFMUJRVWtzWlVGQlpTeEZRVUZGTzBGQlEyNUNMRTlCUVVjc1JVRkJSU3hEUVVGRE8wZEJRMUE3TzBGQlJVUXNVMEZCVHl4RFFVRkRMRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzBGQlEyNUNMRk5CUVVzc1IwRkJSeXhSUVVGUkxFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdSMEZEY0VRN08wRkJSVVFzVFVGQlNTeGxRVUZsTEVWQlFVVTdRVUZEYmtJc1YwRkJUeXhEUVVOTUxGRkJRVkVzUTBGQlF5eFRRVUZUTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUlVGRGRFTXNSMEZCUnl4RlFVTklMRXRCUVVzc1JVRkRUQ3hKUVVGSkxFVkJRMG9zVVVGQlVTeERRVUZETEZsQlFWa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGREwwSXNTVUZCU1N4RlFVTktMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4bFFVRmxMRU5CUVVNc1JVRkRMME1zU1VGQlNTeERRVU5NTEVOQlFVTTdSMEZEU0N4TlFVRk5PMEZCUTB3c1YwRkJUeXhMUVVGTExFTkJRVU03UjBGRFpEdERRVU5HT3p0eFFrRkZZeXhyUWtGQmEwSWlMQ0ptYVd4bElqb2lhbUYyWVhOamNtbHdkQzFqYjIxd2FXeGxjaTVxY3lJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lFTlBUVkJKVEVWU1gxSkZWa2xUU1U5T0xDQlNSVlpKVTBsUFRsOURTRUZPUjBWVElIMGdabkp2YlNBbkxpNHZZbUZ6WlNjN1hHNXBiWEJ2Y25RZ1JYaGpaWEIwYVc5dUlHWnliMjBnSnk0dUwyVjRZMlZ3ZEdsdmJpYzdYRzVwYlhCdmNuUWdleUJwYzBGeWNtRjVJSDBnWm5KdmJTQW5MaTR2ZFhScGJITW5PMXh1YVcxd2IzSjBJRU52WkdWSFpXNGdabkp2YlNBbkxpOWpiMlJsTFdkbGJpYzdYRzVjYm1aMWJtTjBhVzl1SUV4cGRHVnlZV3dvZG1Gc2RXVXBJSHRjYmlBZ2RHaHBjeTUyWVd4MVpTQTlJSFpoYkhWbE8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCS1lYWmhVMk55YVhCMFEyOXRjR2xzWlhJb0tTQjdmVnh1WEc1S1lYWmhVMk55YVhCMFEyOXRjR2xzWlhJdWNISnZkRzkwZVhCbElEMGdlMXh1SUNBdkx5QlFWVUpNU1VNZ1FWQkpPaUJaYjNVZ1kyRnVJRzkyWlhKeWFXUmxJSFJvWlhObElHMWxkR2h2WkhNZ2FXNGdZU0J6ZFdKamJHRnpjeUIwYnlCd2NtOTJhV1JsWEc0Z0lDOHZJR0ZzZEdWeWJtRjBhWFpsSUdOdmJYQnBiR1ZrSUdadmNtMXpJR1p2Y2lCdVlXMWxJR3h2YjJ0MWNDQmhibVFnWW5WbVptVnlhVzVuSUhObGJXRnVkR2xqYzF4dUlDQnVZVzFsVEc5dmEzVndPaUJtZFc1amRHbHZiaWh3WVhKbGJuUXNJRzVoYldVZ0x5b3NJQ0IwZVhCbElDb3ZLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVc1MFpYSnVZV3hPWVcxbFRHOXZhM1Z3S0hCaGNtVnVkQ3dnYm1GdFpTazdYRzRnSUgwc1hHNGdJR1JsY0hSb1pXUk1iMjlyZFhBNklHWjFibU4wYVc5dUtHNWhiV1VwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdXM1JvYVhNdVlXeHBZWE5oWW14bEtDZGpiMjUwWVdsdVpYSXViRzl2YTNWd0p5a3NJQ2NvWkdWd2RHaHpMQ0JjSWljc0lHNWhiV1VzSUNkY0lpa25YVHRjYmlBZ2ZTeGNibHh1SUNCamIyMXdhV3hsY2tsdVptODZJR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQWdJR052Ym5OMElISmxkbWx6YVc5dUlEMGdRMDlOVUVsTVJWSmZVa1ZXU1ZOSlQwNHNYRzRnSUNBZ0lDQjJaWEp6YVc5dWN5QTlJRkpGVmtsVFNVOU9YME5JUVU1SFJWTmJjbVYyYVhOcGIyNWRPMXh1SUNBZ0lISmxkSFZ5YmlCYmNtVjJhWE5wYjI0c0lIWmxjbk5wYjI1elhUdGNiaUFnZlN4Y2JseHVJQ0JoY0hCbGJtUlViMEoxWm1abGNqb2dablZ1WTNScGIyNG9jMjkxY21ObExDQnNiMk5oZEdsdmJpd2daWGh3YkdsamFYUXBJSHRjYmlBZ0lDQXZMeUJHYjNKalpTQmhJSE52ZFhKalpTQmhjeUIwYUdseklITnBiWEJzYVdacFpYTWdkR2hsSUcxbGNtZGxJR3h2WjJsakxseHVJQ0FnSUdsbUlDZ2hhWE5CY25KaGVTaHpiM1Z5WTJVcEtTQjdYRzRnSUNBZ0lDQnpiM1Z5WTJVZ1BTQmJjMjkxY21ObFhUdGNiaUFnSUNCOVhHNGdJQ0FnYzI5MWNtTmxJRDBnZEdocGN5NXpiM1Z5WTJVdWQzSmhjQ2h6YjNWeVkyVXNJR3h2WTJGMGFXOXVLVHRjYmx4dUlDQWdJR2xtSUNoMGFHbHpMbVZ1ZG1seWIyNXRaVzUwTG1selUybHRjR3hsS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnV3lkeVpYUjFjbTRnSnl3Z2MyOTFjbU5sTENBbk95ZGRPMXh1SUNBZ0lIMGdaV3h6WlNCcFppQW9aWGh3YkdsamFYUXBJSHRjYmlBZ0lDQWdJQzh2SUZSb2FYTWdhWE1nWVNCallYTmxJSGRvWlhKbElIUm9aU0JpZFdabVpYSWdiM0JsY21GMGFXOXVJRzlqWTNWeWN5QmhjeUJoSUdOb2FXeGtJRzltSUdGdWIzUm9aWEpjYmlBZ0lDQWdJQzh2SUdOdmJuTjBjblZqZEN3Z1oyVnVaWEpoYkd4NUlHSnlZV05sY3k0Z1YyVWdhR0YyWlNCMGJ5QmxlSEJzYVdOcGRHeDVJRzkxZEhCMWRDQjBhR1Z6WlNCaWRXWm1aWEpjYmlBZ0lDQWdJQzh2SUc5d1pYSmhkR2x2Ym5NZ2RHOGdaVzV6ZFhKbElIUm9ZWFFnZEdobElHVnRhWFIwWldRZ1kyOWtaU0JuYjJWeklHbHVJSFJvWlNCamIzSnlaV04wSUd4dlkyRjBhVzl1TGx4dUlDQWdJQ0FnY21WMGRYSnVJRnNuWW5WbVptVnlJQ3M5SUNjc0lITnZkWEpqWlN3Z0p6c25YVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2MyOTFjbU5sTG1Gd2NHVnVaRlJ2UW5WbVptVnlJRDBnZEhKMVpUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCemIzVnlZMlU3WEc0Z0lDQWdmVnh1SUNCOUxGeHVYRzRnSUdsdWFYUnBZV3hwZW1WQ2RXWm1aWEk2SUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuRjFiM1JsWkZOMGNtbHVaeWduSnlrN1hHNGdJSDBzWEc0Z0lDOHZJRVZPUkNCUVZVSk1TVU1nUVZCSlhHNGdJR2x1ZEdWeWJtRnNUbUZ0WlV4dmIydDFjRG9nWm5WdVkzUnBiMjRvY0dGeVpXNTBMQ0J1WVcxbEtTQjdYRzRnSUNBZ2RHaHBjeTVzYjI5cmRYQlFjbTl3WlhKMGVVWjFibU4wYVc5dVNYTlZjMlZrSUQwZ2RISjFaVHRjYmlBZ0lDQnlaWFIxY200Z1d5ZHNiMjlyZFhCUWNtOXdaWEowZVNnbkxDQndZWEpsYm5Rc0lDY3NKeXdnU2xOUFRpNXpkSEpwYm1kcFpua29ibUZ0WlNrc0lDY3BKMTA3WEc0Z0lIMHNYRzVjYmlBZ2JHOXZhM1Z3VUhKdmNHVnlkSGxHZFc1amRHbHZia2x6VlhObFpEb2dabUZzYzJVc1hHNWNiaUFnWTI5dGNHbHNaVG9nWm5WdVkzUnBiMjRvWlc1MmFYSnZibTFsYm5Rc0lHOXdkR2x2Ym5Nc0lHTnZiblJsZUhRc0lHRnpUMkpxWldOMEtTQjdYRzRnSUNBZ2RHaHBjeTVsYm5acGNtOXViV1Z1ZENBOUlHVnVkbWx5YjI1dFpXNTBPMXh1SUNBZ0lIUm9hWE11YjNCMGFXOXVjeUE5SUc5d2RHbHZibk03WEc0Z0lDQWdkR2hwY3k1emRISnBibWRRWVhKaGJYTWdQU0IwYUdsekxtOXdkR2x2Ym5NdWMzUnlhVzVuVUdGeVlXMXpPMXh1SUNBZ0lIUm9hWE11ZEhKaFkydEpaSE1nUFNCMGFHbHpMbTl3ZEdsdmJuTXVkSEpoWTJ0SlpITTdYRzRnSUNBZ2RHaHBjeTV3Y21WamIyMXdhV3hsSUQwZ0lXRnpUMkpxWldOME8xeHVYRzRnSUNBZ2RHaHBjeTV1WVcxbElEMGdkR2hwY3k1bGJuWnBjbTl1YldWdWRDNXVZVzFsTzF4dUlDQWdJSFJvYVhNdWFYTkRhR2xzWkNBOUlDRWhZMjl1ZEdWNGREdGNiaUFnSUNCMGFHbHpMbU52Ym5SbGVIUWdQU0JqYjI1MFpYaDBJSHg4SUh0Y2JpQWdJQ0FnSUdSbFkyOXlZWFJ2Y25NNklGdGRMRnh1SUNBZ0lDQWdjSEp2WjNKaGJYTTZJRnRkTEZ4dUlDQWdJQ0FnWlc1MmFYSnZibTFsYm5Sek9pQmJYVnh1SUNBZ0lIMDdYRzVjYmlBZ0lDQjBhR2x6TG5CeVpXRnRZbXhsS0NrN1hHNWNiaUFnSUNCMGFHbHpMbk4wWVdOclUyeHZkQ0E5SURBN1hHNGdJQ0FnZEdocGN5NXpkR0ZqYTFaaGNuTWdQU0JiWFR0Y2JpQWdJQ0IwYUdsekxtRnNhV0Z6WlhNZ1BTQjdmVHRjYmlBZ0lDQjBhR2x6TG5KbFoybHpkR1Z5Y3lBOUlIc2diR2x6ZERvZ1cxMGdmVHRjYmlBZ0lDQjBhR2x6TG1oaGMyaGxjeUE5SUZ0ZE8xeHVJQ0FnSUhSb2FYTXVZMjl0Y0dsc1pWTjBZV05ySUQwZ1cxMDdYRzRnSUNBZ2RHaHBjeTVwYm14cGJtVlRkR0ZqYXlBOUlGdGRPMXh1SUNBZ0lIUm9hWE11WW14dlkydFFZWEpoYlhNZ1BTQmJYVHRjYmx4dUlDQWdJSFJvYVhNdVkyOXRjR2xzWlVOb2FXeGtjbVZ1S0dWdWRtbHliMjV0Wlc1MExDQnZjSFJwYjI1ektUdGNibHh1SUNBZ0lIUm9hWE11ZFhObFJHVndkR2h6SUQxY2JpQWdJQ0FnSUhSb2FYTXVkWE5sUkdWd2RHaHpJSHg4WEc0Z0lDQWdJQ0JsYm5acGNtOXViV1Z1ZEM1MWMyVkVaWEIwYUhNZ2ZIeGNiaUFnSUNBZ0lHVnVkbWx5YjI1dFpXNTBMblZ6WlVSbFkyOXlZWFJ2Y25NZ2ZIeGNiaUFnSUNBZ0lIUm9hWE11YjNCMGFXOXVjeTVqYjIxd1lYUTdYRzRnSUNBZ2RHaHBjeTUxYzJWQ2JHOWphMUJoY21GdGN5QTlJSFJvYVhNdWRYTmxRbXh2WTJ0UVlYSmhiWE1nZkh3Z1pXNTJhWEp2Ym0xbGJuUXVkWE5sUW14dlkydFFZWEpoYlhNN1hHNWNiaUFnSUNCc1pYUWdiM0JqYjJSbGN5QTlJR1Z1ZG1seWIyNXRaVzUwTG05d1kyOWtaWE1zWEc0Z0lDQWdJQ0J2Y0dOdlpHVXNYRzRnSUNBZ0lDQm1hWEp6ZEV4dll5eGNiaUFnSUNBZ0lHa3NYRzRnSUNBZ0lDQnNPMXh1WEc0Z0lDQWdabTl5SUNocElEMGdNQ3dnYkNBOUlHOXdZMjlrWlhNdWJHVnVaM1JvT3lCcElEd2diRHNnYVNzcktTQjdYRzRnSUNBZ0lDQnZjR052WkdVZ1BTQnZjR052WkdWelcybGRPMXh1WEc0Z0lDQWdJQ0IwYUdsekxuTnZkWEpqWlM1amRYSnlaVzUwVEc5allYUnBiMjRnUFNCdmNHTnZaR1V1Ykc5ak8xeHVJQ0FnSUNBZ1ptbHljM1JNYjJNZ1BTQm1hWEp6ZEV4dll5QjhmQ0J2Y0dOdlpHVXViRzlqTzF4dUlDQWdJQ0FnZEdocGMxdHZjR052WkdVdWIzQmpiMlJsWFM1aGNIQnNlU2gwYUdsekxDQnZjR052WkdVdVlYSm5jeWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnUm14MWMyZ2dZVzU1SUhSeVlXbHNhVzVuSUdOdmJuUmxiblFnZEdoaGRDQnRhV2RvZENCaVpTQndaVzVrYVc1bkxseHVJQ0FnSUhSb2FYTXVjMjkxY21ObExtTjFjbkpsYm5STWIyTmhkR2x2YmlBOUlHWnBjbk4wVEc5ak8xeHVJQ0FnSUhSb2FYTXVjSFZ6YUZOdmRYSmpaU2duSnlrN1hHNWNiaUFnSUNBdktpQnBjM1JoYm1KMWJDQnBaMjV2Y21VZ2JtVjRkQ0FxTDF4dUlDQWdJR2xtSUNoMGFHbHpMbk4wWVdOclUyeHZkQ0I4ZkNCMGFHbHpMbWx1YkdsdVpWTjBZV05yTG14bGJtZDBhQ0I4ZkNCMGFHbHpMbU52YlhCcGJHVlRkR0ZqYXk1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmVHTmxjSFJwYjI0b0owTnZiWEJwYkdVZ1kyOXRjR3hsZEdWa0lIZHBkR2dnWTI5dWRHVnVkQ0JzWldaMElHOXVJSE4wWVdOckp5azdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtUmxZMjl5WVhSdmNuTXVhWE5GYlhCMGVTZ3BLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuVnpaVVJsWTI5eVlYUnZjbk1nUFNCMGNuVmxPMXh1WEc0Z0lDQWdJQ0IwYUdsekxtUmxZMjl5WVhSdmNuTXVjSEpsY0dWdVpDaGJYRzRnSUNBZ0lDQWdJQ2QyWVhJZ1pHVmpiM0poZEc5eWN5QTlJR052Ym5SaGFXNWxjaTVrWldOdmNtRjBiM0p6TENBbkxGeHVJQ0FnSUNBZ0lDQjBhR2x6TG14dmIydDFjRkJ5YjNCbGNuUjVSblZ1WTNScGIyNVdZWEpFWldOc1lYSmhkR2x2YmlncExGeHVJQ0FnSUNBZ0lDQW5PMXhjYmlkY2JpQWdJQ0FnSUYwcE8xeHVJQ0FnSUNBZ2RHaHBjeTVrWldOdmNtRjBiM0p6TG5CMWMyZ29KM0psZEhWeWJpQm1ianNuS1R0Y2JseHVJQ0FnSUNBZ2FXWWdLR0Z6VDJKcVpXTjBLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVaR1ZqYjNKaGRHOXljeUE5SUVaMWJtTjBhVzl1TG1Gd2NHeDVLSFJvYVhNc0lGdGNiaUFnSUNBZ0lDQWdJQ0FuWm00bkxGeHVJQ0FnSUNBZ0lDQWdJQ2R3Y205d2N5Y3NYRzRnSUNBZ0lDQWdJQ0FnSjJOdmJuUmhhVzVsY2ljc1hHNGdJQ0FnSUNBZ0lDQWdKMlJsY0hSb01DY3NYRzRnSUNBZ0lDQWdJQ0FnSjJSaGRHRW5MRnh1SUNBZ0lDQWdJQ0FnSUNkaWJHOWphMUJoY21GdGN5Y3NYRzRnSUNBZ0lDQWdJQ0FnSjJSbGNIUm9jeWNzWEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTVrWldOdmNtRjBiM0p6TG0xbGNtZGxLQ2xjYmlBZ0lDQWdJQ0FnWFNrN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbVJsWTI5eVlYUnZjbk11Y0hKbGNHVnVaQ2hjYmlBZ0lDQWdJQ0FnSUNBblpuVnVZM1JwYjI0b1ptNHNJSEJ5YjNCekxDQmpiMjUwWVdsdVpYSXNJR1JsY0hSb01Dd2daR0YwWVN3Z1lteHZZMnRRWVhKaGJYTXNJR1JsY0hSb2N5a2dlMXhjYmlkY2JpQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1a1pXTnZjbUYwYjNKekxuQjFjMmdvSjMxY1hHNG5LVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWtaV052Y21GMGIzSnpJRDBnZEdocGN5NWtaV052Y21GMGIzSnpMbTFsY21kbEtDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhSb2FYTXVaR1ZqYjNKaGRHOXljeUE5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JzWlhRZ1ptNGdQU0IwYUdsekxtTnlaV0YwWlVaMWJtTjBhVzl1UTI5dWRHVjRkQ2hoYzA5aWFtVmpkQ2s3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbWx6UTJocGJHUXBJSHRjYmlBZ0lDQWdJR3hsZENCeVpYUWdQU0I3WEc0Z0lDQWdJQ0FnSUdOdmJYQnBiR1Z5T2lCMGFHbHpMbU52YlhCcGJHVnlTVzVtYnlncExGeHVJQ0FnSUNBZ0lDQnRZV2x1T2lCbWJseHVJQ0FnSUNBZ2ZUdGNibHh1SUNBZ0lDQWdhV1lnS0hSb2FYTXVaR1ZqYjNKaGRHOXljeWtnZTF4dUlDQWdJQ0FnSUNCeVpYUXViV0ZwYmw5a0lEMGdkR2hwY3k1a1pXTnZjbUYwYjNKek95QXZMeUJsYzJ4cGJuUXRaR2x6WVdKc1pTMXNhVzVsSUdOaGJXVnNZMkZ6WlZ4dUlDQWdJQ0FnSUNCeVpYUXVkWE5sUkdWamIzSmhkRzl5Y3lBOUlIUnlkV1U3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUd4bGRDQjdJSEJ5YjJkeVlXMXpMQ0JrWldOdmNtRjBiM0p6SUgwZ1BTQjBhR2x6TG1OdmJuUmxlSFE3WEc0Z0lDQWdJQ0JtYjNJZ0tHa2dQU0F3TENCc0lEMGdjSEp2WjNKaGJYTXViR1Z1WjNSb095QnBJRHdnYkRzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHdjbTluY21GdGMxdHBYU2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkRnRwWFNBOUlIQnliMmR5WVcxelcybGRPMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaGtaV052Y21GMGIzSnpXMmxkS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSYmFTQXJJQ2RmWkNkZElEMGdaR1ZqYjNKaGRHOXljMXRwWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEM1MWMyVkVaV052Y21GMGIzSnpJRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2FXWWdLSFJvYVhNdVpXNTJhWEp2Ym0xbGJuUXVkWE5sVUdGeWRHbGhiQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUXVkWE5sVUdGeWRHbGhiQ0E5SUhSeWRXVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NXZjSFJwYjI1ekxtUmhkR0VwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBMblZ6WlVSaGRHRWdQU0IwY25WbE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLSFJvYVhNdWRYTmxSR1Z3ZEdoektTQjdYRzRnSUNBZ0lDQWdJSEpsZEM1MWMyVkVaWEIwYUhNZ1BTQjBjblZsTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11ZFhObFFteHZZMnRRWVhKaGJYTXBJSHRjYmlBZ0lDQWdJQ0FnY21WMExuVnpaVUpzYjJOclVHRnlZVzF6SUQwZ2RISjFaVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbTl3ZEdsdmJuTXVZMjl0Y0dGMEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEM1amIyMXdZWFFnUFNCMGNuVmxPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb0lXRnpUMkpxWldOMEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEM1amIyMXdhV3hsY2lBOUlFcFRUMDR1YzNSeWFXNW5hV1o1S0hKbGRDNWpiMjF3YVd4bGNpazdYRzVjYmlBZ0lDQWdJQ0FnZEdocGN5NXpiM1Z5WTJVdVkzVnljbVZ1ZEV4dlkyRjBhVzl1SUQwZ2V5QnpkR0Z5ZERvZ2V5QnNhVzVsT2lBeExDQmpiMngxYlc0NklEQWdmU0I5TzF4dUlDQWdJQ0FnSUNCeVpYUWdQU0IwYUdsekxtOWlhbVZqZEV4cGRHVnlZV3dvY21WMEtUdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1emNtTk9ZVzFsS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwSUQwZ2NtVjBMblJ2VTNSeWFXNW5WMmwwYUZOdmRYSmpaVTFoY0NoN0lHWnBiR1U2SUc5d2RHbHZibk11WkdWemRFNWhiV1VnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwTG0xaGNDQTlJSEpsZEM1dFlYQWdKaVlnY21WMExtMWhjQzUwYjFOMGNtbHVaeWdwTzF4dUlDQWdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkQ0E5SUhKbGRDNTBiMU4wY21sdVp5Z3BPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0J5WlhRdVkyOXRjR2xzWlhKUGNIUnBiMjV6SUQwZ2RHaHBjeTV2Y0hScGIyNXpPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVYwTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1ptNDdYRzRnSUNBZ2ZWeHVJQ0I5TEZ4dVhHNGdJSEJ5WldGdFlteGxPaUJtZFc1amRHbHZiaWdwSUh0Y2JpQWdJQ0F2THlCMGNtRmpheUIwYUdVZ2JHRnpkQ0JqYjI1MFpYaDBJSEIxYzJobFpDQnBiblJ2SUhCc1lXTmxJSFJ2SUdGc2JHOTNJSE5yYVhCd2FXNW5JSFJvWlZ4dUlDQWdJQzh2SUdkbGRFTnZiblJsZUhRZ2IzQmpiMlJsSUhkb1pXNGdhWFFnZDI5MWJHUWdZbVVnWVNCdWIyOXdYRzRnSUNBZ2RHaHBjeTVzWVhOMFEyOXVkR1Y0ZENBOUlEQTdYRzRnSUNBZ2RHaHBjeTV6YjNWeVkyVWdQU0J1WlhjZ1EyOWtaVWRsYmloMGFHbHpMbTl3ZEdsdmJuTXVjM0pqVG1GdFpTazdYRzRnSUNBZ2RHaHBjeTVrWldOdmNtRjBiM0p6SUQwZ2JtVjNJRU52WkdWSFpXNG9kR2hwY3k1dmNIUnBiMjV6TG5OeVkwNWhiV1VwTzF4dUlDQjlMRnh1WEc0Z0lHTnlaV0YwWlVaMWJtTjBhVzl1UTI5dWRHVjRkRG9nWm5WdVkzUnBiMjRvWVhOUFltcGxZM1FwSUh0Y2JpQWdJQ0JzWlhRZ2RtRnlSR1ZqYkdGeVlYUnBiMjV6SUQwZ0p5YzdYRzVjYmlBZ0lDQnNaWFFnYkc5allXeHpJRDBnZEdocGN5NXpkR0ZqYTFaaGNuTXVZMjl1WTJGMEtIUm9hWE11Y21WbmFYTjBaWEp6TG14cGMzUXBPMXh1SUNBZ0lHbG1JQ2hzYjJOaGJITXViR1Z1WjNSb0lENGdNQ2tnZTF4dUlDQWdJQ0FnZG1GeVJHVmpiR0Z5WVhScGIyNXpJQ3M5SUNjc0lDY2dLeUJzYjJOaGJITXVhbTlwYmlnbkxDQW5LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJIWlc1bGNtRjBaU0J0YVc1cGJXbDZaWElnWVd4cFlYTWdiV0Z3Y0dsdVozTmNiaUFnSUNBdkwxeHVJQ0FnSUM4dklGZG9aVzRnZFhOcGJtY2dkSEoxWlNCVGIzVnlZMlZPYjJSbGN5d2dkR2hwY3lCM2FXeHNJSFZ3WkdGMFpTQmhiR3dnY21WbVpYSmxibU5sY3lCMGJ5QjBhR1VnWjJsMlpXNGdZV3hwWVhOY2JpQWdJQ0F2THlCaGN5QjBhR1VnYzI5MWNtTmxJRzV2WkdWeklHRnlaU0J5WlhWelpXUWdhVzRnYzJsMGRTNGdSbTl5SUhSb1pTQnViMjR0YzI5MWNtTmxJRzV2WkdVZ1kyOXRjR2xzWVhScGIyNGdiVzlrWlN4Y2JpQWdJQ0F2THlCaGJHbGhjMlZ6SUhkcGJHd2dibTkwSUdKbElIVnpaV1FzSUdKMWRDQjBhR2x6SUdOaGMyVWdhWE1nWVd4eVpXRmtlU0JpWldsdVp5QnlkVzRnYjI0Z2RHaGxJR05zYVdWdWRDQmhibVJjYmlBZ0lDQXZMeUIzWlNCaGNtVnVKM1FnWTI5dVkyVnliaUJoWW05MWRDQnRhVzVwYldsNmFXNW5JSFJvWlNCMFpXMXdiR0YwWlNCemFYcGxMbHh1SUNBZ0lHeGxkQ0JoYkdsaGMwTnZkVzUwSUQwZ01EdGNiaUFnSUNCUFltcGxZM1F1YTJWNWN5aDBhR2x6TG1Gc2FXRnpaWE1wTG1admNrVmhZMmdvWVd4cFlYTWdQVDRnZTF4dUlDQWdJQ0FnYkdWMElHNXZaR1VnUFNCMGFHbHpMbUZzYVdGelpYTmJZV3hwWVhOZE8xeHVJQ0FnSUNBZ2FXWWdLRzV2WkdVdVkyaHBiR1J5Wlc0Z0ppWWdibTlrWlM1eVpXWmxjbVZ1WTJWRGIzVnVkQ0ErSURFcElIdGNiaUFnSUNBZ0lDQWdkbUZ5UkdWamJHRnlZWFJwYjI1eklDczlJQ2NzSUdGc2FXRnpKeUFySUNzcllXeHBZWE5EYjNWdWRDQXJJQ2M5SnlBcklHRnNhV0Z6TzF4dUlDQWdJQ0FnSUNCdWIyUmxMbU5vYVd4a2NtVnVXekJkSUQwZ0oyRnNhV0Z6SnlBcklHRnNhV0Z6UTI5MWJuUTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQnBaaUFvZEdocGN5NXNiMjlyZFhCUWNtOXdaWEowZVVaMWJtTjBhVzl1U1hOVmMyVmtLU0I3WEc0Z0lDQWdJQ0IyWVhKRVpXTnNZWEpoZEdsdmJuTWdLejBnSnl3Z0p5QXJJSFJvYVhNdWJHOXZhM1Z3VUhKdmNHVnlkSGxHZFc1amRHbHZibFpoY2tSbFkyeGhjbUYwYVc5dUtDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2JHVjBJSEJoY21GdGN5QTlJRnNuWTI5dWRHRnBibVZ5Snl3Z0oyUmxjSFJvTUNjc0lDZG9aV3h3WlhKekp5d2dKM0JoY25ScFlXeHpKeXdnSjJSaGRHRW5YVHRjYmx4dUlDQWdJR2xtSUNoMGFHbHpMblZ6WlVKc2IyTnJVR0Z5WVcxeklIeDhJSFJvYVhNdWRYTmxSR1Z3ZEdoektTQjdYRzRnSUNBZ0lDQndZWEpoYlhNdWNIVnphQ2duWW14dlkydFFZWEpoYlhNbktUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIUm9hWE11ZFhObFJHVndkR2h6S1NCN1hHNGdJQ0FnSUNCd1lYSmhiWE11Y0hWemFDZ25aR1Z3ZEdoekp5azdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdVR1Z5Wm05eWJTQmhJSE5sWTI5dVpDQndZWE56SUc5MlpYSWdkR2hsSUc5MWRIQjFkQ0IwYnlCdFpYSm5aU0JqYjI1MFpXNTBJSGRvWlc0Z2NHOXpjMmxpYkdWY2JpQWdJQ0JzWlhRZ2MyOTFjbU5sSUQwZ2RHaHBjeTV0WlhKblpWTnZkWEpqWlNoMllYSkVaV05zWVhKaGRHbHZibk1wTzF4dVhHNGdJQ0FnYVdZZ0tHRnpUMkpxWldOMEtTQjdYRzRnSUNBZ0lDQndZWEpoYlhNdWNIVnphQ2h6YjNWeVkyVXBPMXh1WEc0Z0lDQWdJQ0J5WlhSMWNtNGdSblZ1WTNScGIyNHVZWEJ3Ykhrb2RHaHBjeXdnY0dGeVlXMXpLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjMjkxY21ObExuZHlZWEFvVzF4dUlDQWdJQ0FnSUNBblpuVnVZM1JwYjI0b0p5eGNiaUFnSUNBZ0lDQWdjR0Z5WVcxekxtcHZhVzRvSnl3bktTeGNiaUFnSUNBZ0lDQWdKeWtnZTF4Y2JpQWdKeXhjYmlBZ0lDQWdJQ0FnYzI5MWNtTmxMRnh1SUNBZ0lDQWdJQ0FuZlNkY2JpQWdJQ0FnSUYwcE8xeHVJQ0FnSUgxY2JpQWdmU3hjYmlBZ2JXVnlaMlZUYjNWeVkyVTZJR1oxYm1OMGFXOXVLSFpoY2tSbFkyeGhjbUYwYVc5dWN5a2dlMXh1SUNBZ0lHeGxkQ0JwYzFOcGJYQnNaU0E5SUhSb2FYTXVaVzUyYVhKdmJtMWxiblF1YVhOVGFXMXdiR1VzWEc0Z0lDQWdJQ0JoY0hCbGJtUlBibXg1SUQwZ0lYUm9hWE11Wm05eVkyVkNkV1ptWlhJc1hHNGdJQ0FnSUNCaGNIQmxibVJHYVhKemRDeGNiaUFnSUNBZ0lITnZkWEpqWlZObFpXNHNYRzRnSUNBZ0lDQmlkV1ptWlhKVGRHRnlkQ3hjYmlBZ0lDQWdJR0oxWm1abGNrVnVaRHRjYmlBZ0lDQjBhR2x6TG5OdmRYSmpaUzVsWVdOb0tHeHBibVVnUFQ0Z2UxeHVJQ0FnSUNBZ2FXWWdLR3hwYm1VdVlYQndaVzVrVkc5Q2RXWm1aWElwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR0oxWm1abGNsTjBZWEowS1NCN1hHNGdJQ0FnSUNBZ0lDQWdiR2x1WlM1d2NtVndaVzVrS0NjZ0lDc2dKeWs3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ1luVm1abVZ5VTNSaGNuUWdQU0JzYVc1bE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR0oxWm1abGNrVnVaQ0E5SUd4cGJtVTdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvWW5WbVptVnlVM1JoY25RcElIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb0lYTnZkWEpqWlZObFpXNHBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHRndjR1Z1WkVacGNuTjBJRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1luVm1abVZ5VTNSaGNuUXVjSEpsY0dWdVpDZ25ZblZtWm1WeUlDczlJQ2NwTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0JpZFdabVpYSkZibVF1WVdSa0tDYzdKeWs3WEc0Z0lDQWdJQ0FnSUNBZ1luVm1abVZ5VTNSaGNuUWdQU0JpZFdabVpYSkZibVFnUFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0J6YjNWeVkyVlRaV1Z1SUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRnBjMU5wYlhCc1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdGd2NHVnVaRTl1YkhrZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ2FXWWdLR0Z3Y0dWdVpFOXViSGtwSUh0Y2JpQWdJQ0FnSUdsbUlDaGlkV1ptWlhKVGRHRnlkQ2tnZTF4dUlDQWdJQ0FnSUNCaWRXWm1aWEpUZEdGeWRDNXdjbVZ3Wlc1a0tDZHlaWFIxY200Z0p5azdYRzRnSUNBZ0lDQWdJR0oxWm1abGNrVnVaQzVoWkdRb0p6c25LVHRjYmlBZ0lDQWdJSDBnWld4elpTQnBaaUFvSVhOdmRYSmpaVk5sWlc0cElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1emIzVnlZMlV1Y0hWemFDZ25jbVYwZFhKdUlGd2lYQ0k3SnlrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSFpoY2tSbFkyeGhjbUYwYVc5dWN5QXJQVnh1SUNBZ0lDQWdJQ0FuTENCaWRXWm1aWElnUFNBbklDc2dLR0Z3Y0dWdVpFWnBjbk4wSUQ4Z0p5Y2dPaUIwYUdsekxtbHVhWFJwWVd4cGVtVkNkV1ptWlhJb0tTazdYRzVjYmlBZ0lDQWdJR2xtSUNoaWRXWm1aWEpUZEdGeWRDa2dlMXh1SUNBZ0lDQWdJQ0JpZFdabVpYSlRkR0Z5ZEM1d2NtVndaVzVrS0NkeVpYUjFjbTRnWW5WbVptVnlJQ3NnSnlrN1hHNGdJQ0FnSUNBZ0lHSjFabVpsY2tWdVpDNWhaR1FvSnpzbktUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzI5MWNtTmxMbkIxYzJnb0ozSmxkSFZ5YmlCaWRXWm1aWEk3SnlrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tIWmhja1JsWTJ4aGNtRjBhVzl1Y3lrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV6YjNWeVkyVXVjSEpsY0dWdVpDaGNiaUFnSUNBZ0lDQWdKM1poY2lBbklDc2dkbUZ5UkdWamJHRnlZWFJwYjI1ekxuTjFZbk4wY21sdVp5Z3lLU0FySUNoaGNIQmxibVJHYVhKemRDQS9JQ2NuSURvZ0p6dGNYRzRuS1Z4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1emIzVnlZMlV1YldWeVoyVW9LVHRjYmlBZ2ZTeGNibHh1SUNCc2IyOXJkWEJRY205d1pYSjBlVVoxYm1OMGFXOXVWbUZ5UkdWamJHRnlZWFJwYjI0NklHWjFibU4wYVc5dUtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCZ1hHNGdJQ0FnSUNCc2IyOXJkWEJRY205d1pYSjBlU0E5SUdOdmJuUmhhVzVsY2k1c2IyOXJkWEJRY205d1pYSjBlU0I4ZkNCbWRXNWpkR2x2Ymlod1lYSmxiblFzSUhCeWIzQmxjblI1VG1GdFpTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb1QySnFaV04wTG5CeWIzUnZkSGx3WlM1b1lYTlBkMjVRY205d1pYSjBlUzVqWVd4c0tIQmhjbVZ1ZEN3Z2NISnZjR1Z5ZEhsT1lXMWxLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCd1lYSmxiblJiY0hKdmNHVnlkSGxPWVcxbFhUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkVzVrWldacGJtVmtYRzRnSUNBZ2ZWeHVJQ0FnSUdBdWRISnBiU2dwTzF4dUlDQjlMRnh1WEc0Z0lDOHZJRnRpYkc5amExWmhiSFZsWFZ4dUlDQXZMMXh1SUNBdkx5QlBiaUJ6ZEdGamF5d2dZbVZtYjNKbE9pQm9ZWE5vTENCcGJuWmxjbk5sTENCd2NtOW5jbUZ0TENCMllXeDFaVnh1SUNBdkx5QlBiaUJ6ZEdGamF5d2dZV1owWlhJNklISmxkSFZ5YmlCMllXeDFaU0J2WmlCaWJHOWphMGhsYkhCbGNrMXBjM05wYm1kY2JpQWdMeTljYmlBZ0x5OGdWR2hsSUhCMWNuQnZjMlVnYjJZZ2RHaHBjeUJ2Y0dOdlpHVWdhWE1nZEc4Z2RHRnJaU0JoSUdKc2IyTnJJRzltSUhSb1pTQm1iM0p0WEc0Z0lDOHZJR0I3ZXlOMGFHbHpMbVp2YjMxOUxpNHVlM3N2ZEdocGN5NW1iMjk5ZldBc0lISmxjMjlzZG1VZ2RHaGxJSFpoYkhWbElHOW1JR0JtYjI5Z0xDQmhibVJjYmlBZ0x5OGdjbVZ3YkdGalpTQnBkQ0J2YmlCMGFHVWdjM1JoWTJzZ2QybDBhQ0IwYUdVZ2NtVnpkV3gwSUc5bUlIQnliM0JsY214NVhHNGdJQzh2SUdsdWRtOXJhVzVuSUdKc2IyTnJTR1ZzY0dWeVRXbHpjMmx1Wnk1Y2JpQWdZbXh2WTJ0V1lXeDFaVG9nWm5WdVkzUnBiMjRvYm1GdFpTa2dlMXh1SUNBZ0lHeGxkQ0JpYkc5amEwaGxiSEJsY2sxcGMzTnBibWNnUFNCMGFHbHpMbUZzYVdGellXSnNaU2hjYmlBZ0lDQWdJQ0FnSjJOdmJuUmhhVzVsY2k1b2IyOXJjeTVpYkc5amEwaGxiSEJsY2sxcGMzTnBibWNuWEc0Z0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnY0dGeVlXMXpJRDBnVzNSb2FYTXVZMjl1ZEdWNGRFNWhiV1VvTUNsZE8xeHVJQ0FnSUhSb2FYTXVjMlYwZFhCSVpXeHdaWEpCY21kektHNWhiV1VzSURBc0lIQmhjbUZ0Y3lrN1hHNWNiaUFnSUNCc1pYUWdZbXh2WTJ0T1lXMWxJRDBnZEdocGN5NXdiM0JUZEdGamF5Z3BPMXh1SUNBZ0lIQmhjbUZ0Y3k1emNHeHBZMlVvTVN3Z01Dd2dZbXh2WTJ0T1lXMWxLVHRjYmx4dUlDQWdJSFJvYVhNdWNIVnphQ2gwYUdsekxuTnZkWEpqWlM1bWRXNWpkR2x2YmtOaGJHd29ZbXh2WTJ0SVpXeHdaWEpOYVhOemFXNW5MQ0FuWTJGc2JDY3NJSEJoY21GdGN5a3BPMXh1SUNCOUxGeHVYRzRnSUM4dklGdGhiV0pwWjNWdmRYTkNiRzlqYTFaaGJIVmxYVnh1SUNBdkwxeHVJQ0F2THlCUGJpQnpkR0ZqYXl3Z1ltVm1iM0psT2lCb1lYTm9MQ0JwYm5abGNuTmxMQ0J3Y205bmNtRnRMQ0IyWVd4MVpWeHVJQ0F2THlCRGIyMXdhV3hsY2lCMllXeDFaU3dnWW1WbWIzSmxPaUJzWVhOMFNHVnNjR1Z5UFhaaGJIVmxJRzltSUd4aGMzUWdabTkxYm1RZ2FHVnNjR1Z5TENCcFppQmhibmxjYmlBZ0x5OGdUMjRnYzNSaFkyc3NJR0ZtZEdWeUxDQnBaaUJ1YnlCc1lYTjBTR1ZzY0dWeU9pQnpZVzFsSUdGeklGdGliRzlqYTFaaGJIVmxYVnh1SUNBdkx5QlBiaUJ6ZEdGamF5d2dZV1owWlhJc0lHbG1JR3hoYzNSSVpXeHdaWEk2SUhaaGJIVmxYRzRnSUdGdFltbG5kVzkxYzBKc2IyTnJWbUZzZFdVNklHWjFibU4wYVc5dUtDa2dlMXh1SUNBZ0lDOHZJRmRsSjNKbElHSmxhVzVuSUdFZ1ltbDBJR05vWldWcmVTQmhibVFnY21WMWMybHVaeUIwYUdVZ2IzQjBhVzl1Y3lCMllXeDFaU0JtY205dElIUm9aU0J3Y21sdmNpQmxlR1ZqWEc0Z0lDQWdiR1YwSUdKc2IyTnJTR1ZzY0dWeVRXbHpjMmx1WnlBOUlIUm9hWE11WVd4cFlYTmhZbXhsS0Z4dUlDQWdJQ0FnSUNBblkyOXVkR0ZwYm1WeUxtaHZiMnR6TG1Kc2IyTnJTR1ZzY0dWeVRXbHpjMmx1WnlkY2JpQWdJQ0FnSUNrc1hHNGdJQ0FnSUNCd1lYSmhiWE1nUFNCYmRHaHBjeTVqYjI1MFpYaDBUbUZ0WlNnd0tWMDdYRzRnSUNBZ2RHaHBjeTV6WlhSMWNFaGxiSEJsY2tGeVozTW9KeWNzSURBc0lIQmhjbUZ0Y3l3Z2RISjFaU2s3WEc1Y2JpQWdJQ0IwYUdsekxtWnNkWE5vU1c1c2FXNWxLQ2s3WEc1Y2JpQWdJQ0JzWlhRZ1kzVnljbVZ1ZENBOUlIUm9hWE11ZEc5d1UzUmhZMnNvS1R0Y2JpQWdJQ0J3WVhKaGJYTXVjM0JzYVdObEtERXNJREFzSUdOMWNuSmxiblFwTzF4dVhHNGdJQ0FnZEdocGN5NXdkWE5vVTI5MWNtTmxLRnRjYmlBZ0lDQWdJQ2RwWmlBb0lTY3NYRzRnSUNBZ0lDQjBhR2x6TG14aGMzUklaV3h3WlhJc1hHNGdJQ0FnSUNBbktTQjdJQ2NzWEc0Z0lDQWdJQ0JqZFhKeVpXNTBMRnh1SUNBZ0lDQWdKeUE5SUNjc1hHNGdJQ0FnSUNCMGFHbHpMbk52ZFhKalpTNW1kVzVqZEdsdmJrTmhiR3dvWW14dlkydElaV3h3WlhKTmFYTnphVzVuTENBblkyRnNiQ2NzSUhCaGNtRnRjeWtzWEc0Z0lDQWdJQ0FuZlNkY2JpQWdJQ0JkS1R0Y2JpQWdmU3hjYmx4dUlDQXZMeUJiWVhCd1pXNWtRMjl1ZEdWdWRGMWNiaUFnTHk5Y2JpQWdMeThnVDI0Z2MzUmhZMnNzSUdKbFptOXlaVG9nTGk0dVhHNGdJQzh2SUU5dUlITjBZV05yTENCaFpuUmxjam9nTGk0dVhHNGdJQzh2WEc0Z0lDOHZJRUZ3Y0dWdVpITWdkR2hsSUhOMGNtbHVaeUIyWVd4MVpTQnZaaUJnWTI5dWRHVnVkR0FnZEc4Z2RHaGxJR04xY25KbGJuUWdZblZtWm1WeVhHNGdJR0Z3Y0dWdVpFTnZiblJsYm5RNklHWjFibU4wYVc5dUtHTnZiblJsYm5RcElIdGNiaUFnSUNCcFppQW9kR2hwY3k1d1pXNWthVzVuUTI5dWRHVnVkQ2tnZTF4dUlDQWdJQ0FnWTI5dWRHVnVkQ0E5SUhSb2FYTXVjR1Z1WkdsdVowTnZiblJsYm5RZ0t5QmpiMjUwWlc1ME8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0IwYUdsekxuQmxibVJwYm1kTWIyTmhkR2x2YmlBOUlIUm9hWE11YzI5MWNtTmxMbU4xY25KbGJuUk1iMk5oZEdsdmJqdGNiaUFnSUNCOVhHNWNiaUFnSUNCMGFHbHpMbkJsYm1ScGJtZERiMjUwWlc1MElEMGdZMjl1ZEdWdWREdGNiaUFnZlN4Y2JseHVJQ0F2THlCYllYQndaVzVrWFZ4dUlDQXZMMXh1SUNBdkx5QlBiaUJ6ZEdGamF5d2dZbVZtYjNKbE9pQjJZV3gxWlN3Z0xpNHVYRzRnSUM4dklFOXVJSE4wWVdOckxDQmhablJsY2pvZ0xpNHVYRzRnSUM4dlhHNGdJQzh2SUVOdlpYSmpaWE1nWUhaaGJIVmxZQ0IwYnlCaElGTjBjbWx1WnlCaGJtUWdZWEJ3Wlc1a2N5QnBkQ0IwYnlCMGFHVWdZM1Z5Y21WdWRDQmlkV1ptWlhJdVhHNGdJQzh2WEc0Z0lDOHZJRWxtSUdCMllXeDFaV0FnYVhNZ2RISjFkR2g1TENCdmNpQXdMQ0JwZENCcGN5QmpiMlZ5WTJWa0lHbHVkRzhnWVNCemRISnBibWNnWVc1a0lHRndjR1Z1WkdWa1hHNGdJQzh2SUU5MGFHVnlkMmx6WlN3Z2RHaGxJR1Z0Y0hSNUlITjBjbWx1WnlCcGN5QmhjSEJsYm1SbFpGeHVJQ0JoY0hCbGJtUTZJR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbWx6U1c1c2FXNWxLQ2twSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjbVZ3YkdGalpWTjBZV05yS0dOMWNuSmxiblFnUFQ0Z1d5Y2dJVDBnYm5Wc2JDQS9JQ2NzSUdOMWNuSmxiblFzSUNjZ09pQmNJbHdpSjEwcE8xeHVYRzRnSUNBZ0lDQjBhR2x6TG5CMWMyaFRiM1Z5WTJVb2RHaHBjeTVoY0hCbGJtUlViMEoxWm1abGNpaDBhR2x6TG5CdmNGTjBZV05yS0NrcEtUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnYkdWMElHeHZZMkZzSUQwZ2RHaHBjeTV3YjNCVGRHRmpheWdwTzF4dUlDQWdJQ0FnZEdocGN5NXdkWE5vVTI5MWNtTmxLRnRjYmlBZ0lDQWdJQ0FnSjJsbUlDZ25MRnh1SUNBZ0lDQWdJQ0JzYjJOaGJDeGNiaUFnSUNBZ0lDQWdKeUFoUFNCdWRXeHNLU0I3SUNjc1hHNGdJQ0FnSUNBZ0lIUm9hWE11WVhCd1pXNWtWRzlDZFdabVpYSW9iRzlqWVd3c0lIVnVaR1ZtYVc1bFpDd2dkSEoxWlNrc1hHNGdJQ0FnSUNBZ0lDY2dmU2RjYmlBZ0lDQWdJRjBwTzF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11Wlc1MmFYSnZibTFsYm5RdWFYTlRhVzF3YkdVcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1d2RYTm9VMjkxY21ObEtGdGNiaUFnSUNBZ0lDQWdJQ0FuWld4elpTQjdJQ2NzWEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTVoY0hCbGJtUlViMEoxWm1abGNpaGNJaWNuWENJc0lIVnVaR1ZtYVc1bFpDd2dkSEoxWlNrc1hHNGdJQ0FnSUNBZ0lDQWdKeUI5SjF4dUlDQWdJQ0FnSUNCZEtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDBzWEc1Y2JpQWdMeThnVzJGd2NHVnVaRVZ6WTJGd1pXUmRYRzRnSUM4dlhHNGdJQzh2SUU5dUlITjBZV05yTENCaVpXWnZjbVU2SUhaaGJIVmxMQ0F1TGk1Y2JpQWdMeThnVDI0Z2MzUmhZMnNzSUdGbWRHVnlPaUF1TGk1Y2JpQWdMeTljYmlBZ0x5OGdSWE5qWVhCbElHQjJZV3gxWldBZ1lXNWtJR0Z3Y0dWdVpDQnBkQ0IwYnlCMGFHVWdZblZtWm1WeVhHNGdJR0Z3Y0dWdVpFVnpZMkZ3WldRNklHWjFibU4wYVc5dUtDa2dlMXh1SUNBZ0lIUm9hWE11Y0hWemFGTnZkWEpqWlNoY2JpQWdJQ0FnSUhSb2FYTXVZWEJ3Wlc1a1ZHOUNkV1ptWlhJb1cxeHVJQ0FnSUNBZ0lDQjBhR2x6TG1Gc2FXRnpZV0pzWlNnblkyOXVkR0ZwYm1WeUxtVnpZMkZ3WlVWNGNISmxjM05wYjI0bktTeGNiaUFnSUNBZ0lDQWdKeWduTEZ4dUlDQWdJQ0FnSUNCMGFHbHpMbkJ2Y0ZOMFlXTnJLQ2tzWEc0Z0lDQWdJQ0FnSUNjcEoxeHVJQ0FnSUNBZ1hTbGNiaUFnSUNBcE8xeHVJQ0I5TEZ4dVhHNGdJQzh2SUZ0blpYUkRiMjUwWlhoMFhWeHVJQ0F2TDF4dUlDQXZMeUJQYmlCemRHRmpheXdnWW1WbWIzSmxPaUF1TGk1Y2JpQWdMeThnVDI0Z2MzUmhZMnNzSUdGbWRHVnlPaUF1TGk1Y2JpQWdMeThnUTI5dGNHbHNaWElnZG1Gc2RXVXNJR0ZtZEdWeU9pQnNZWE4wUTI5dWRHVjRkRDFrWlhCMGFGeHVJQ0F2TDF4dUlDQXZMeUJUWlhRZ2RHaGxJSFpoYkhWbElHOW1JSFJvWlNCZ2JHRnpkRU52Ym5SbGVIUmdJR052YlhCcGJHVnlJSFpoYkhWbElIUnZJSFJvWlNCa1pYQjBhRnh1SUNCblpYUkRiMjUwWlhoME9pQm1kVzVqZEdsdmJpaGtaWEIwYUNrZ2UxeHVJQ0FnSUhSb2FYTXViR0Z6ZEVOdmJuUmxlSFFnUFNCa1pYQjBhRHRjYmlBZ2ZTeGNibHh1SUNBdkx5QmJjSFZ6YUVOdmJuUmxlSFJkWEc0Z0lDOHZYRzRnSUM4dklFOXVJSE4wWVdOckxDQmlaV1p2Y21VNklDNHVMbHh1SUNBdkx5QlBiaUJ6ZEdGamF5d2dZV1owWlhJNklHTjFjbkpsYm5SRGIyNTBaWGgwTENBdUxpNWNiaUFnTHk5Y2JpQWdMeThnVUhWemFHVnpJSFJvWlNCMllXeDFaU0J2WmlCMGFHVWdZM1Z5Y21WdWRDQmpiMjUwWlhoMElHOXVkRzhnZEdobElITjBZV05yTGx4dUlDQndkWE5vUTI5dWRHVjRkRG9nWm5WdVkzUnBiMjRvS1NCN1hHNGdJQ0FnZEdocGN5NXdkWE5vVTNSaFkydE1hWFJsY21Gc0tIUm9hWE11WTI5dWRHVjRkRTVoYldVb2RHaHBjeTVzWVhOMFEyOXVkR1Y0ZENrcE8xeHVJQ0I5TEZ4dVhHNGdJQzh2SUZ0c2IyOXJkWEJQYmtOdmJuUmxlSFJkWEc0Z0lDOHZYRzRnSUM4dklFOXVJSE4wWVdOckxDQmlaV1p2Y21VNklDNHVMbHh1SUNBdkx5QlBiaUJ6ZEdGamF5d2dZV1owWlhJNklHTjFjbkpsYm5SRGIyNTBaWGgwVzI1aGJXVmRMQ0F1TGk1Y2JpQWdMeTljYmlBZ0x5OGdURzl2YTNNZ2RYQWdkR2hsSUhaaGJIVmxJRzltSUdCdVlXMWxZQ0J2YmlCMGFHVWdZM1Z5Y21WdWRDQmpiMjUwWlhoMElHRnVaQ0J3ZFhOb1pYTmNiaUFnTHk4Z2FYUWdiMjUwYnlCMGFHVWdjM1JoWTJzdVhHNGdJR3h2YjJ0MWNFOXVRMjl1ZEdWNGREb2dablZ1WTNScGIyNG9jR0Z5ZEhNc0lHWmhiSE41TENCemRISnBZM1FzSUhOamIzQmxaQ2tnZTF4dUlDQWdJR3hsZENCcElEMGdNRHRjYmx4dUlDQWdJR2xtSUNnaGMyTnZjR1ZrSUNZbUlIUm9hWE11YjNCMGFXOXVjeTVqYjIxd1lYUWdKaVlnSVhSb2FYTXViR0Z6ZEVOdmJuUmxlSFFwSUh0Y2JpQWdJQ0FnSUM4dklGUm9aU0JrWlhCMGFHVmtJSEYxWlhKNUlHbHpJR1Y0Y0dWamRHVmtJSFJ2SUdoaGJtUnNaU0IwYUdVZ2RXNWtaV1pwYm1Wa0lHeHZaMmxqSUdadmNpQjBhR1VnY205dmRDQnNaWFpsYkNCMGFHRjBYRzRnSUNBZ0lDQXZMeUJwY3lCcGJYQnNaVzFsYm5SbFpDQmlaV3h2ZHl3Z2MyOGdkMlVnWlhaaGJIVmhkR1VnZEdoaGRDQmthWEpsWTNSc2VTQnBiaUJqYjIxd1lYUWdiVzlrWlZ4dUlDQWdJQ0FnZEdocGN5NXdkWE5vS0hSb2FYTXVaR1Z3ZEdobFpFeHZiMnQxY0Nod1lYSjBjMXRwS3l0ZEtTazdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjSFZ6YUVOdmJuUmxlSFFvS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IwYUdsekxuSmxjMjlzZG1WUVlYUm9LQ2RqYjI1MFpYaDBKeXdnY0dGeWRITXNJR2tzSUdaaGJITjVMQ0J6ZEhKcFkzUXBPMXh1SUNCOUxGeHVYRzRnSUM4dklGdHNiMjlyZFhCQ2JHOWphMUJoY21GdFhWeHVJQ0F2TDF4dUlDQXZMeUJQYmlCemRHRmpheXdnWW1WbWIzSmxPaUF1TGk1Y2JpQWdMeThnVDI0Z2MzUmhZMnNzSUdGbWRHVnlPaUJpYkc5amExQmhjbUZ0VzI1aGJXVmRMQ0F1TGk1Y2JpQWdMeTljYmlBZ0x5OGdURzl2YTNNZ2RYQWdkR2hsSUhaaGJIVmxJRzltSUdCd1lYSjBjMkFnYjI0Z2RHaGxJR2RwZG1WdUlHSnNiMk5ySUhCaGNtRnRJR0Z1WkNCd2RYTm9aWE5jYmlBZ0x5OGdhWFFnYjI1MGJ5QjBhR1VnYzNSaFkyc3VYRzRnSUd4dmIydDFjRUpzYjJOclVHRnlZVzA2SUdaMWJtTjBhVzl1S0dKc2IyTnJVR0Z5WVcxSlpDd2djR0Z5ZEhNcElIdGNiaUFnSUNCMGFHbHpMblZ6WlVKc2IyTnJVR0Z5WVcxeklEMGdkSEoxWlR0Y2JseHVJQ0FnSUhSb2FYTXVjSFZ6YUNoYkoySnNiMk5yVUdGeVlXMXpXeWNzSUdKc2IyTnJVR0Z5WVcxSlpGc3dYU3dnSjExYkp5d2dZbXh2WTJ0UVlYSmhiVWxrV3pGZExDQW5YU2RkS1R0Y2JpQWdJQ0IwYUdsekxuSmxjMjlzZG1WUVlYUm9LQ2RqYjI1MFpYaDBKeXdnY0dGeWRITXNJREVwTzF4dUlDQjlMRnh1WEc0Z0lDOHZJRnRzYjI5cmRYQkVZWFJoWFZ4dUlDQXZMMXh1SUNBdkx5QlBiaUJ6ZEdGamF5d2dZbVZtYjNKbE9pQXVMaTVjYmlBZ0x5OGdUMjRnYzNSaFkyc3NJR0ZtZEdWeU9pQmtZWFJoTENBdUxpNWNiaUFnTHk5Y2JpQWdMeThnVUhWemFDQjBhR1VnWkdGMFlTQnNiMjlyZFhBZ2IzQmxjbUYwYjNKY2JpQWdiRzl2YTNWd1JHRjBZVG9nWm5WdVkzUnBiMjRvWkdWd2RHZ3NJSEJoY25SekxDQnpkSEpwWTNRcElIdGNiaUFnSUNCcFppQW9JV1JsY0hSb0tTQjdYRzRnSUNBZ0lDQjBhR2x6TG5CMWMyaFRkR0ZqYTB4cGRHVnlZV3dvSjJSaGRHRW5LVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV3ZFhOb1UzUmhZMnRNYVhSbGNtRnNLQ2RqYjI1MFlXbHVaWEl1WkdGMFlTaGtZWFJoTENBbklDc2daR1Z3ZEdnZ0t5QW5LU2NwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSFJvYVhNdWNtVnpiMngyWlZCaGRHZ29KMlJoZEdFbkxDQndZWEowY3l3Z01Dd2dkSEoxWlN3Z2MzUnlhV04wS1R0Y2JpQWdmU3hjYmx4dUlDQnlaWE52YkhabFVHRjBhRG9nWm5WdVkzUnBiMjRvZEhsd1pTd2djR0Z5ZEhNc0lHa3NJR1poYkhONUxDQnpkSEpwWTNRcElIdGNiaUFnSUNCcFppQW9kR2hwY3k1dmNIUnBiMjV6TG5OMGNtbGpkQ0I4ZkNCMGFHbHpMbTl3ZEdsdmJuTXVZWE56ZFcxbFQySnFaV04wY3lrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV3ZFhOb0tITjBjbWxqZEV4dmIydDFjQ2gwYUdsekxtOXdkR2x2Ym5NdWMzUnlhV04wSUNZbUlITjBjbWxqZEN3Z2RHaHBjeXdnY0dGeWRITXNJSFI1Y0dVcEtUdGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JzWlhRZ2JHVnVJRDBnY0dGeWRITXViR1Z1WjNSb08xeHVJQ0FnSUdadmNpQW9PeUJwSUR3Z2JHVnVPeUJwS3lzcElIdGNiaUFnSUNBZ0lDOHFJR1Z6YkdsdWRDMWthWE5oWW14bElHNXZMV3h2YjNBdFpuVnVZeUFxTDF4dUlDQWdJQ0FnZEdocGN5NXlaWEJzWVdObFUzUmhZMnNvWTNWeWNtVnVkQ0E5UGlCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0JzYjI5cmRYQWdQU0IwYUdsekxtNWhiV1ZNYjI5cmRYQW9ZM1Z5Y21WdWRDd2djR0Z5ZEhOYmFWMHNJSFI1Y0dVcE8xeHVJQ0FnSUNBZ0lDQXZMeUJYWlNCM1lXNTBJSFJ2SUdWdWMzVnlaU0IwYUdGMElIcGxjbThnWVc1a0lHWmhiSE5sSUdGeVpTQm9ZVzVrYkdWa0lIQnliM0JsY214NUlHbG1JSFJvWlNCamIyNTBaWGgwSUNobVlXeHplU0JtYkdGbktWeHVJQ0FnSUNBZ0lDQXZMeUJ1WldWa2N5QjBieUJvWVhabElIUm9aU0J6Y0dWamFXRnNJR2hoYm1Sc2FXNW5JR1p2Y2lCMGFHVnpaU0IyWVd4MVpYTXVYRzRnSUNBZ0lDQWdJR2xtSUNnaFptRnNjM2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1d5Y2dJVDBnYm5Wc2JDQS9JQ2NzSUd4dmIydDFjQ3dnSnlBNklDY3NJR04xY25KbGJuUmRPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUM4dklFOTBhR1Z5ZDJselpTQjNaU0JqWVc0Z2RYTmxJR2RsYm1WeWFXTWdabUZzYzNrZ2FHRnVaR3hwYm1kY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1d5Y2dKaVlnSnl3Z2JHOXZhM1Z3WFR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQXZLaUJsYzJ4cGJuUXRaVzVoWW14bElHNXZMV3h2YjNBdFpuVnVZeUFxTDF4dUlDQWdJSDFjYmlBZ2ZTeGNibHh1SUNBdkx5QmJjbVZ6YjJ4MlpWQnZjM05wWW14bFRHRnRZbVJoWFZ4dUlDQXZMMXh1SUNBdkx5QlBiaUJ6ZEdGamF5d2dZbVZtYjNKbE9pQjJZV3gxWlN3Z0xpNHVYRzRnSUM4dklFOXVJSE4wWVdOckxDQmhablJsY2pvZ2NtVnpiMngyWldRZ2RtRnNkV1VzSUM0dUxseHVJQ0F2TDF4dUlDQXZMeUJKWmlCMGFHVWdZSFpoYkhWbFlDQnBjeUJoSUd4aGJXSmtZU3dnY21Wd2JHRmpaU0JwZENCdmJpQjBhR1VnYzNSaFkyc2dZbmxjYmlBZ0x5OGdkR2hsSUhKbGRIVnliaUIyWVd4MVpTQnZaaUIwYUdVZ2JHRnRZbVJoWEc0Z0lISmxjMjlzZG1WUWIzTnphV0pzWlV4aGJXSmtZVG9nWm5WdVkzUnBiMjRvS1NCN1hHNGdJQ0FnZEdocGN5NXdkWE5vS0Z0Y2JpQWdJQ0FnSUhSb2FYTXVZV3hwWVhOaFlteGxLQ2RqYjI1MFlXbHVaWEl1YkdGdFltUmhKeWtzWEc0Z0lDQWdJQ0FuS0Njc1hHNGdJQ0FnSUNCMGFHbHpMbkJ2Y0ZOMFlXTnJLQ2tzWEc0Z0lDQWdJQ0FuTENBbkxGeHVJQ0FnSUNBZ2RHaHBjeTVqYjI1MFpYaDBUbUZ0WlNnd0tTeGNiaUFnSUNBZ0lDY3BKMXh1SUNBZ0lGMHBPMXh1SUNCOUxGeHVYRzRnSUM4dklGdHdkWE5vVTNSeWFXNW5VR0Z5WVcxZFhHNGdJQzh2WEc0Z0lDOHZJRTl1SUhOMFlXTnJMQ0JpWldadmNtVTZJQzR1TGx4dUlDQXZMeUJQYmlCemRHRmpheXdnWVdaMFpYSTZJSE4wY21sdVp5d2dZM1Z5Y21WdWRFTnZiblJsZUhRc0lDNHVMbHh1SUNBdkwxeHVJQ0F2THlCVWFHbHpJRzl3WTI5a1pTQnBjeUJrWlhOcFoyNWxaQ0JtYjNJZ2RYTmxJR2x1SUhOMGNtbHVaeUJ0YjJSbExDQjNhR2xqYUZ4dUlDQXZMeUJ3Y205MmFXUmxjeUIwYUdVZ2MzUnlhVzVuSUhaaGJIVmxJRzltSUdFZ2NHRnlZVzFsZEdWeUlHRnNiMjVuSUhkcGRHZ2dhWFJ6WEc0Z0lDOHZJR1JsY0hSb0lISmhkR2hsY2lCMGFHRnVJSEpsYzI5c2RtbHVaeUJwZENCcGJXMWxaR2xoZEdWc2VTNWNiaUFnY0hWemFGTjBjbWx1WjFCaGNtRnRPaUJtZFc1amRHbHZiaWh6ZEhKcGJtY3NJSFI1Y0dVcElIdGNiaUFnSUNCMGFHbHpMbkIxYzJoRGIyNTBaWGgwS0NrN1hHNGdJQ0FnZEdocGN5NXdkWE5vVTNSeWFXNW5LSFI1Y0dVcE8xeHVYRzRnSUNBZ0x5OGdTV1lnYVhRbmN5QmhJSE4xWW1WNGNISmxjM05wYjI0c0lIUm9aU0J6ZEhKcGJtY2djbVZ6ZFd4MFhHNGdJQ0FnTHk4Z2QybHNiQ0JpWlNCd2RYTm9aV1FnWVdaMFpYSWdkR2hwY3lCdmNHTnZaR1V1WEc0Z0lDQWdhV1lnS0hSNWNHVWdJVDA5SUNkVGRXSkZlSEJ5WlhOemFXOXVKeWtnZTF4dUlDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCemRISnBibWNnUFQwOUlDZHpkSEpwYm1jbktTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWNIVnphRk4wY21sdVp5aHpkSEpwYm1jcE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV3ZFhOb1UzUmhZMnRNYVhSbGNtRnNLSE4wY21sdVp5azdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5TEZ4dVhHNGdJR1Z0Y0hSNVNHRnphRG9nWm5WdVkzUnBiMjRvYjIxcGRFVnRjSFI1S1NCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11ZEhKaFkydEpaSE1wSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjSFZ6YUNnbmUzMG5LVHNnTHk4Z2FHRnphRWxrYzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvZEdocGN5NXpkSEpwYm1kUVlYSmhiWE1wSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjSFZ6YUNnbmUzMG5LVHNnTHk4Z2FHRnphRU52Ym5SbGVIUnpYRzRnSUNBZ0lDQjBhR2x6TG5CMWMyZ29KM3Q5SnlrN0lDOHZJR2hoYzJoVWVYQmxjMXh1SUNBZ0lIMWNiaUFnSUNCMGFHbHpMbkIxYzJoVGRHRmphMHhwZEdWeVlXd29iMjFwZEVWdGNIUjVJRDhnSjNWdVpHVm1hVzVsWkNjZ09pQW5lMzBuS1R0Y2JpQWdmU3hjYmlBZ2NIVnphRWhoYzJnNklHWjFibU4wYVc5dUtDa2dlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtaGhjMmdwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVhR0Z6YUdWekxuQjFjMmdvZEdocGN5NW9ZWE5vS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdkR2hwY3k1b1lYTm9JRDBnZXlCMllXeDFaWE02SUh0OUxDQjBlWEJsY3pvZ1cxMHNJR052Ym5SbGVIUnpPaUJiWFN3Z2FXUnpPaUJiWFNCOU8xeHVJQ0I5TEZ4dUlDQndiM0JJWVhOb09pQm1kVzVqZEdsdmJpZ3BJSHRjYmlBZ0lDQnNaWFFnYUdGemFDQTlJSFJvYVhNdWFHRnphRHRjYmlBZ0lDQjBhR2x6TG1oaGMyZ2dQU0IwYUdsekxtaGhjMmhsY3k1d2IzQW9LVHRjYmx4dUlDQWdJR2xtSUNoMGFHbHpMblJ5WVdOclNXUnpLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuQjFjMmdvZEdocGN5NXZZbXBsWTNSTWFYUmxjbUZzS0doaGMyZ3VhV1J6S1NrN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoMGFHbHpMbk4wY21sdVoxQmhjbUZ0Y3lrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV3ZFhOb0tIUm9hWE11YjJKcVpXTjBUR2wwWlhKaGJDaG9ZWE5vTG1OdmJuUmxlSFJ6S1NrN1hHNGdJQ0FnSUNCMGFHbHpMbkIxYzJnb2RHaHBjeTV2WW1wbFkzUk1hWFJsY21Gc0tHaGhjMmd1ZEhsd1pYTXBLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjBhR2x6TG5CMWMyZ29kR2hwY3k1dlltcGxZM1JNYVhSbGNtRnNLR2hoYzJndWRtRnNkV1Z6S1NrN1hHNGdJSDBzWEc1Y2JpQWdMeThnVzNCMWMyaFRkSEpwYm1kZFhHNGdJQzh2WEc0Z0lDOHZJRTl1SUhOMFlXTnJMQ0JpWldadmNtVTZJQzR1TGx4dUlDQXZMeUJQYmlCemRHRmpheXdnWVdaMFpYSTZJSEYxYjNSbFpGTjBjbWx1WnloemRISnBibWNwTENBdUxpNWNiaUFnTHk5Y2JpQWdMeThnVUhWemFDQmhJSEYxYjNSbFpDQjJaWEp6YVc5dUlHOW1JR0J6ZEhKcGJtZGdJRzl1ZEc4Z2RHaGxJSE4wWVdOclhHNGdJSEIxYzJoVGRISnBibWM2SUdaMWJtTjBhVzl1S0hOMGNtbHVaeWtnZTF4dUlDQWdJSFJvYVhNdWNIVnphRk4wWVdOclRHbDBaWEpoYkNoMGFHbHpMbkYxYjNSbFpGTjBjbWx1WnloemRISnBibWNwS1R0Y2JpQWdmU3hjYmx4dUlDQXZMeUJiY0hWemFFeHBkR1Z5WVd4ZFhHNGdJQzh2WEc0Z0lDOHZJRTl1SUhOMFlXTnJMQ0JpWldadmNtVTZJQzR1TGx4dUlDQXZMeUJQYmlCemRHRmpheXdnWVdaMFpYSTZJSFpoYkhWbExDQXVMaTVjYmlBZ0x5OWNiaUFnTHk4Z1VIVnphR1Z6SUdFZ2RtRnNkV1VnYjI1MGJ5QjBhR1VnYzNSaFkyc3VJRlJvYVhNZ2IzQmxjbUYwYVc5dUlIQnlaWFpsYm5SelhHNGdJQzh2SUhSb1pTQmpiMjF3YVd4bGNpQm1jbTl0SUdOeVpXRjBhVzVuSUdFZ2RHVnRjRzl5WVhKNUlIWmhjbWxoWW14bElIUnZJR2h2YkdSY2JpQWdMeThnYVhRdVhHNGdJSEIxYzJoTWFYUmxjbUZzT2lCbWRXNWpkR2x2YmloMllXeDFaU2tnZTF4dUlDQWdJSFJvYVhNdWNIVnphRk4wWVdOclRHbDBaWEpoYkNoMllXeDFaU2s3WEc0Z0lIMHNYRzVjYmlBZ0x5OGdXM0IxYzJoUWNtOW5jbUZ0WFZ4dUlDQXZMMXh1SUNBdkx5QlBiaUJ6ZEdGamF5d2dZbVZtYjNKbE9pQXVMaTVjYmlBZ0x5OGdUMjRnYzNSaFkyc3NJR0ZtZEdWeU9pQndjbTluY21GdEtHZDFhV1FwTENBdUxpNWNiaUFnTHk5Y2JpQWdMeThnVUhWemFDQmhJSEJ5YjJkeVlXMGdaWGh3Y21WemMybHZiaUJ2Ym5SdklIUm9aU0J6ZEdGamF5NGdWR2hwY3lCMFlXdGxjMXh1SUNBdkx5QmhJR052YlhCcGJHVXRkR2x0WlNCbmRXbGtJR0Z1WkNCamIyNTJaWEowY3lCcGRDQnBiblJ2SUdFZ2NuVnVkR2x0WlMxaFkyTmxjM05wWW14bFhHNGdJQzh2SUdWNGNISmxjM05wYjI0dVhHNGdJSEIxYzJoUWNtOW5jbUZ0T2lCbWRXNWpkR2x2YmlobmRXbGtLU0I3WEc0Z0lDQWdhV1lnS0dkMWFXUWdJVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdkR2hwY3k1d2RYTm9VM1JoWTJ0TWFYUmxjbUZzS0hSb2FYTXVjSEp2WjNKaGJVVjRjSEpsYzNOcGIyNG9aM1ZwWkNrcE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0IwYUdsekxuQjFjMmhUZEdGamEweHBkR1Z5WVd3b2JuVnNiQ2s3WEc0Z0lDQWdmVnh1SUNCOUxGeHVYRzRnSUM4dklGdHlaV2RwYzNSbGNrUmxZMjl5WVhSdmNsMWNiaUFnTHk5Y2JpQWdMeThnVDI0Z2MzUmhZMnNzSUdKbFptOXlaVG9nYUdGemFDd2djSEp2WjNKaGJTd2djR0Z5WVcxekxpNHVMQ0F1TGk1Y2JpQWdMeThnVDI0Z2MzUmhZMnNzSUdGbWRHVnlPaUF1TGk1Y2JpQWdMeTljYmlBZ0x5OGdVRzl3Y3lCdlptWWdkR2hsSUdSbFkyOXlZWFJ2Y2lkeklIQmhjbUZ0WlhSbGNuTXNJR2x1ZG05clpYTWdkR2hsSUdSbFkyOXlZWFJ2Y2l4Y2JpQWdMeThnWVc1a0lHbHVjMlZ5ZEhNZ2RHaGxJR1JsWTI5eVlYUnZjaUJwYm5SdklIUm9aU0JrWldOdmNtRjBiM0p6SUd4cGMzUXVYRzRnSUhKbFoybHpkR1Z5UkdWamIzSmhkRzl5S0hCaGNtRnRVMmw2WlN3Z2JtRnRaU2tnZTF4dUlDQWdJR3hsZENCbWIzVnVaRVJsWTI5eVlYUnZjaUE5SUhSb2FYTXVibUZ0WlV4dmIydDFjQ2duWkdWamIzSmhkRzl5Y3ljc0lHNWhiV1VzSUNka1pXTnZjbUYwYjNJbktTeGNiaUFnSUNBZ0lHOXdkR2x2Ym5NZ1BTQjBhR2x6TG5ObGRIVndTR1ZzY0dWeVFYSm5jeWh1WVcxbExDQndZWEpoYlZOcGVtVXBPMXh1WEc0Z0lDQWdkR2hwY3k1a1pXTnZjbUYwYjNKekxuQjFjMmdvVzF4dUlDQWdJQ0FnSjJadUlEMGdKeXhjYmlBZ0lDQWdJSFJvYVhNdVpHVmpiM0poZEc5eWN5NW1kVzVqZEdsdmJrTmhiR3dvWm05MWJtUkVaV052Y21GMGIzSXNJQ2NuTENCYlhHNGdJQ0FnSUNBZ0lDZG1iaWNzWEc0Z0lDQWdJQ0FnSUNkd2NtOXdjeWNzWEc0Z0lDQWdJQ0FnSUNkamIyNTBZV2x1WlhJbkxGeHVJQ0FnSUNBZ0lDQnZjSFJwYjI1elhHNGdJQ0FnSUNCZEtTeGNiaUFnSUNBZ0lDY2dmSHdnWm00N0oxeHVJQ0FnSUYwcE8xeHVJQ0I5TEZ4dVhHNGdJQzh2SUZ0cGJuWnZhMlZJWld4d1pYSmRYRzRnSUM4dlhHNGdJQzh2SUU5dUlITjBZV05yTENCaVpXWnZjbVU2SUdoaGMyZ3NJR2x1ZG1WeWMyVXNJSEJ5YjJkeVlXMHNJSEJoY21GdGN5NHVMaXdnTGk0dVhHNGdJQzh2SUU5dUlITjBZV05yTENCaFpuUmxjam9nY21WemRXeDBJRzltSUdobGJIQmxjaUJwYm5adlkyRjBhVzl1WEc0Z0lDOHZYRzRnSUM4dklGQnZjSE1nYjJabUlIUm9aU0JvWld4d1pYSW5jeUJ3WVhKaGJXVjBaWEp6TENCcGJuWnZhMlZ6SUhSb1pTQm9aV3h3WlhJc1hHNGdJQzh2SUdGdVpDQndkWE5vWlhNZ2RHaGxJR2hsYkhCbGNpZHpJSEpsZEhWeWJpQjJZV3gxWlNCdmJuUnZJSFJvWlNCemRHRmpheTVjYmlBZ0x5OWNiaUFnTHk4Z1NXWWdkR2hsSUdobGJIQmxjaUJwY3lCdWIzUWdabTkxYm1Rc0lHQm9aV3h3WlhKTmFYTnphVzVuWUNCcGN5QmpZV3hzWldRdVhHNGdJR2x1ZG05clpVaGxiSEJsY2pvZ1puVnVZM1JwYjI0b2NHRnlZVzFUYVhwbExDQnVZVzFsTENCcGMxTnBiWEJzWlNrZ2UxeHVJQ0FnSUd4bGRDQnViMjVJWld4d1pYSWdQU0IwYUdsekxuQnZjRk4wWVdOcktDa3NYRzRnSUNBZ0lDQm9aV3h3WlhJZ1BTQjBhR2x6TG5ObGRIVndTR1ZzY0dWeUtIQmhjbUZ0VTJsNlpTd2dibUZ0WlNrN1hHNWNiaUFnSUNCc1pYUWdjRzl6YzJsaWJHVkdkVzVqZEdsdmJrTmhiR3h6SUQwZ1cxMDdYRzVjYmlBZ0lDQnBaaUFvYVhOVGFXMXdiR1VwSUh0Y2JpQWdJQ0FnSUM4dklHUnBjbVZqZENCallXeHNJSFJ2SUdobGJIQmxjbHh1SUNBZ0lDQWdjRzl6YzJsaWJHVkdkVzVqZEdsdmJrTmhiR3h6TG5CMWMyZ29hR1ZzY0dWeUxtNWhiV1VwTzF4dUlDQWdJSDFjYmlBZ0lDQXZMeUJqWVd4c0lHRWdablZ1WTNScGIyNGdabkp2YlNCMGFHVWdhVzV3ZFhRZ2IySnFaV04wWEc0Z0lDQWdjRzl6YzJsaWJHVkdkVzVqZEdsdmJrTmhiR3h6TG5CMWMyZ29ibTl1U0dWc2NHVnlLVHRjYmlBZ0lDQnBaaUFvSVhSb2FYTXViM0IwYVc5dWN5NXpkSEpwWTNRcElIdGNiaUFnSUNBZ0lIQnZjM05wWW14bFJuVnVZM1JwYjI1RFlXeHNjeTV3ZFhOb0tGeHVJQ0FnSUNBZ0lDQjBhR2x6TG1Gc2FXRnpZV0pzWlNnblkyOXVkR0ZwYm1WeUxtaHZiMnR6TG1obGJIQmxjazFwYzNOcGJtY25LVnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnNaWFFnWm5WdVkzUnBiMjVNYjI5cmRYQkRiMlJsSUQwZ1cxeHVJQ0FnSUNBZ0p5Z25MRnh1SUNBZ0lDQWdkR2hwY3k1cGRHVnRjMU5sY0dGeVlYUmxaRUo1S0hCdmMzTnBZbXhsUm5WdVkzUnBiMjVEWVd4c2N5d2dKM3g4Snlrc1hHNGdJQ0FnSUNBbktTZGNiaUFnSUNCZE8xeHVJQ0FnSUd4bGRDQm1kVzVqZEdsdmJrTmhiR3dnUFNCMGFHbHpMbk52ZFhKalpTNW1kVzVqZEdsdmJrTmhiR3dvWEc0Z0lDQWdJQ0JtZFc1amRHbHZia3h2YjJ0MWNFTnZaR1VzWEc0Z0lDQWdJQ0FuWTJGc2JDY3NYRzRnSUNBZ0lDQm9aV3h3WlhJdVkyRnNiRkJoY21GdGMxeHVJQ0FnSUNrN1hHNGdJQ0FnZEdocGN5NXdkWE5vS0daMWJtTjBhVzl1UTJGc2JDazdYRzRnSUgwc1hHNWNiaUFnYVhSbGJYTlRaWEJoY21GMFpXUkNlVG9nWm5WdVkzUnBiMjRvYVhSbGJYTXNJSE5sY0dGeVlYUnZjaWtnZTF4dUlDQWdJR3hsZENCeVpYTjFiSFFnUFNCYlhUdGNiaUFnSUNCeVpYTjFiSFF1Y0hWemFDaHBkR1Z0YzFzd1hTazdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREU3SUdrZ1BDQnBkR1Z0Y3k1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lDQWdjbVZ6ZFd4MExuQjFjMmdvYzJWd1lYSmhkRzl5TENCcGRHVnRjMXRwWFNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJSDBzWEc0Z0lDOHZJRnRwYm5admEyVkxibTkzYmtobGJIQmxjbDFjYmlBZ0x5OWNiaUFnTHk4Z1QyNGdjM1JoWTJzc0lHSmxabTl5WlRvZ2FHRnphQ3dnYVc1MlpYSnpaU3dnY0hKdlozSmhiU3dnY0dGeVlXMXpMaTR1TENBdUxpNWNiaUFnTHk4Z1QyNGdjM1JoWTJzc0lHRm1kR1Z5T2lCeVpYTjFiSFFnYjJZZ2FHVnNjR1Z5SUdsdWRtOWpZWFJwYjI1Y2JpQWdMeTljYmlBZ0x5OGdWR2hwY3lCdmNHVnlZWFJwYjI0Z2FYTWdkWE5sWkNCM2FHVnVJSFJvWlNCb1pXeHdaWElnYVhNZ2EyNXZkMjRnZEc4Z1pYaHBjM1FzWEc0Z0lDOHZJSE52SUdFZ1lHaGxiSEJsY2sxcGMzTnBibWRnSUdaaGJHeGlZV05ySUdseklHNXZkQ0J5WlhGMWFYSmxaQzVjYmlBZ2FXNTJiMnRsUzI1dmQyNUlaV3h3WlhJNklHWjFibU4wYVc5dUtIQmhjbUZ0VTJsNlpTd2dibUZ0WlNrZ2UxeHVJQ0FnSUd4bGRDQm9aV3h3WlhJZ1BTQjBhR2x6TG5ObGRIVndTR1ZzY0dWeUtIQmhjbUZ0VTJsNlpTd2dibUZ0WlNrN1hHNGdJQ0FnZEdocGN5NXdkWE5vS0hSb2FYTXVjMjkxY21ObExtWjFibU4wYVc5dVEyRnNiQ2hvWld4d1pYSXVibUZ0WlN3Z0oyTmhiR3duTENCb1pXeHdaWEl1WTJGc2JGQmhjbUZ0Y3lrcE8xeHVJQ0I5TEZ4dVhHNGdJQzh2SUZ0cGJuWnZhMlZCYldKcFozVnZkWE5kWEc0Z0lDOHZYRzRnSUM4dklFOXVJSE4wWVdOckxDQmlaV1p2Y21VNklHaGhjMmdzSUdsdWRtVnljMlVzSUhCeWIyZHlZVzBzSUhCaGNtRnRjeTR1TGl3Z0xpNHVYRzRnSUM4dklFOXVJSE4wWVdOckxDQmhablJsY2pvZ2NtVnpkV3gwSUc5bUlHUnBjMkZ0WW1sbmRXRjBhVzl1WEc0Z0lDOHZYRzRnSUM4dklGUm9hWE1nYjNCbGNtRjBhVzl1SUdseklIVnpaV1FnZDJobGJpQmhiaUJsZUhCeVpYTnphVzl1SUd4cGEyVWdZSHQ3Wm05dmZYMWdYRzRnSUM4dklHbHpJSEJ5YjNacFpHVmtMQ0JpZFhRZ2QyVWdaRzl1SjNRZ2EyNXZkeUJoZENCamIyMXdhV3hsTFhScGJXVWdkMmhsZEdobGNpQnBkRnh1SUNBdkx5QnBjeUJoSUdobGJIQmxjaUJ2Y2lCaElIQmhkR2d1WEc0Z0lDOHZYRzRnSUM4dklGUm9hWE1nYjNCbGNtRjBhVzl1SUdWdGFYUnpJRzF2Y21VZ1kyOWtaU0IwYUdGdUlIUm9aU0J2ZEdobGNpQnZjSFJwYjI1ekxGeHVJQ0F2THlCaGJtUWdZMkZ1SUdKbElHRjJiMmxrWldRZ1lua2djR0Z6YzJsdVp5QjBhR1VnWUd0dWIzZHVTR1ZzY0dWeWMyQWdZVzVrWEc0Z0lDOHZJR0JyYm05M2JraGxiSEJsY25OUGJteDVZQ0JtYkdGbmN5QmhkQ0JqYjIxd2FXeGxMWFJwYldVdVhHNGdJR2x1ZG05clpVRnRZbWxuZFc5MWN6b2dablZ1WTNScGIyNG9ibUZ0WlN3Z2FHVnNjR1Z5UTJGc2JDa2dlMXh1SUNBZ0lIUm9hWE11ZFhObFVtVm5hWE4wWlhJb0oyaGxiSEJsY2ljcE8xeHVYRzRnSUNBZ2JHVjBJRzV2YmtobGJIQmxjaUE5SUhSb2FYTXVjRzl3VTNSaFkyc29LVHRjYmx4dUlDQWdJSFJvYVhNdVpXMXdkSGxJWVhOb0tDazdYRzRnSUNBZ2JHVjBJR2hsYkhCbGNpQTlJSFJvYVhNdWMyVjBkWEJJWld4d1pYSW9NQ3dnYm1GdFpTd2dhR1ZzY0dWeVEyRnNiQ2s3WEc1Y2JpQWdJQ0JzWlhRZ2FHVnNjR1Z5VG1GdFpTQTlJQ2gwYUdsekxteGhjM1JJWld4d1pYSWdQU0IwYUdsekxtNWhiV1ZNYjI5cmRYQW9YRzRnSUNBZ0lDQW5hR1ZzY0dWeWN5Y3NYRzRnSUNBZ0lDQnVZVzFsTEZ4dUlDQWdJQ0FnSjJobGJIQmxjaWRjYmlBZ0lDQXBLVHRjYmx4dUlDQWdJR3hsZENCc2IyOXJkWEFnUFNCYkp5Z25MQ0FuS0dobGJIQmxjaUE5SUNjc0lHaGxiSEJsY2s1aGJXVXNJQ2NnZkh3Z0p5d2dibTl1U0dWc2NHVnlMQ0FuS1NkZE8xeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1dmNIUnBiMjV6TG5OMGNtbGpkQ2tnZTF4dUlDQWdJQ0FnYkc5dmEzVndXekJkSUQwZ0p5aG9aV3h3WlhJZ1BTQW5PMXh1SUNBZ0lDQWdiRzl2YTNWd0xuQjFjMmdvWEc0Z0lDQWdJQ0FnSUNjZ0lUMGdiblZzYkNBL0lHaGxiSEJsY2lBNklDY3NYRzRnSUNBZ0lDQWdJSFJvYVhNdVlXeHBZWE5oWW14bEtDZGpiMjUwWVdsdVpYSXVhRzl2YTNNdWFHVnNjR1Z5VFdsemMybHVaeWNwWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSFJvYVhNdWNIVnphQ2hiWEc0Z0lDQWdJQ0FuS0Njc1hHNGdJQ0FnSUNCc2IyOXJkWEFzWEc0Z0lDQWdJQ0JvWld4d1pYSXVjR0Z5WVcxelNXNXBkQ0EvSUZzbktTd29KeXdnYUdWc2NHVnlMbkJoY21GdGMwbHVhWFJkSURvZ1cxMHNYRzRnSUNBZ0lDQW5LU3duTEZ4dUlDQWdJQ0FnSnloMGVYQmxiMllnYUdWc2NHVnlJRDA5UFNBbkxGeHVJQ0FnSUNBZ2RHaHBjeTVoYkdsaGMyRmliR1VvSjF3aVpuVnVZM1JwYjI1Y0lpY3BMRnh1SUNBZ0lDQWdKeUEvSUNjc1hHNGdJQ0FnSUNCMGFHbHpMbk52ZFhKalpTNW1kVzVqZEdsdmJrTmhiR3dvSjJobGJIQmxjaWNzSUNkallXeHNKeXdnYUdWc2NHVnlMbU5oYkd4UVlYSmhiWE1wTEZ4dUlDQWdJQ0FnSnlBNklHaGxiSEJsY2lrcEoxeHVJQ0FnSUYwcE8xeHVJQ0I5TEZ4dVhHNGdJQzh2SUZ0cGJuWnZhMlZRWVhKMGFXRnNYVnh1SUNBdkwxeHVJQ0F2THlCUGJpQnpkR0ZqYXl3Z1ltVm1iM0psT2lCamIyNTBaWGgwTENBdUxpNWNiaUFnTHk4Z1QyNGdjM1JoWTJzZ1lXWjBaWEk2SUhKbGMzVnNkQ0J2WmlCd1lYSjBhV0ZzSUdsdWRtOWpZWFJwYjI1Y2JpQWdMeTljYmlBZ0x5OGdWR2hwY3lCdmNHVnlZWFJwYjI0Z2NHOXdjeUJ2Wm1ZZ1lTQmpiMjUwWlhoMExDQnBiblp2YTJWeklHRWdjR0Z5ZEdsaGJDQjNhWFJvSUhSb1lYUWdZMjl1ZEdWNGRDeGNiaUFnTHk4Z1lXNWtJSEIxYzJobGN5QjBhR1VnY21WemRXeDBJRzltSUhSb1pTQnBiblp2WTJGMGFXOXVJR0poWTJzdVhHNGdJR2x1ZG05clpWQmhjblJwWVd3NklHWjFibU4wYVc5dUtHbHpSSGx1WVcxcFl5d2dibUZ0WlN3Z2FXNWtaVzUwS1NCN1hHNGdJQ0FnYkdWMElIQmhjbUZ0Y3lBOUlGdGRMRnh1SUNBZ0lDQWdiM0IwYVc5dWN5QTlJSFJvYVhNdWMyVjBkWEJRWVhKaGJYTW9ibUZ0WlN3Z01Td2djR0Z5WVcxektUdGNibHh1SUNBZ0lHbG1JQ2hwYzBSNWJtRnRhV01wSUh0Y2JpQWdJQ0FnSUc1aGJXVWdQU0IwYUdsekxuQnZjRk4wWVdOcktDazdYRzRnSUNBZ0lDQmtaV3hsZEdVZ2IzQjBhVzl1Y3k1dVlXMWxPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2hwYm1SbGJuUXBJSHRjYmlBZ0lDQWdJRzl3ZEdsdmJuTXVhVzVrWlc1MElEMGdTbE5QVGk1emRISnBibWRwWm5rb2FXNWtaVzUwS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdiM0IwYVc5dWN5NW9aV3h3WlhKeklEMGdKMmhsYkhCbGNuTW5PMXh1SUNBZ0lHOXdkR2x2Ym5NdWNHRnlkR2xoYkhNZ1BTQW5jR0Z5ZEdsaGJITW5PMXh1SUNBZ0lHOXdkR2x2Ym5NdVpHVmpiM0poZEc5eWN5QTlJQ2RqYjI1MFlXbHVaWEl1WkdWamIzSmhkRzl5Y3ljN1hHNWNiaUFnSUNCcFppQW9JV2x6UkhsdVlXMXBZeWtnZTF4dUlDQWdJQ0FnY0dGeVlXMXpMblZ1YzJocFpuUW9kR2hwY3k1dVlXMWxURzl2YTNWd0tDZHdZWEowYVdGc2N5Y3NJRzVoYldVc0lDZHdZWEowYVdGc0p5a3BPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCd1lYSmhiWE11ZFc1emFHbG1kQ2h1WVcxbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9kR2hwY3k1dmNIUnBiMjV6TG1OdmJYQmhkQ2tnZTF4dUlDQWdJQ0FnYjNCMGFXOXVjeTVrWlhCMGFITWdQU0FuWkdWd2RHaHpKenRjYmlBZ0lDQjlYRzRnSUNBZ2IzQjBhVzl1Y3lBOUlIUm9hWE11YjJKcVpXTjBUR2wwWlhKaGJDaHZjSFJwYjI1ektUdGNiaUFnSUNCd1lYSmhiWE11Y0hWemFDaHZjSFJwYjI1ektUdGNibHh1SUNBZ0lIUm9hWE11Y0hWemFDaDBhR2x6TG5OdmRYSmpaUzVtZFc1amRHbHZia05oYkd3b0oyTnZiblJoYVc1bGNpNXBiblp2YTJWUVlYSjBhV0ZzSnl3Z0p5Y3NJSEJoY21GdGN5a3BPMXh1SUNCOUxGeHVYRzRnSUM4dklGdGhjM05wWjI1VWIwaGhjMmhkWEc0Z0lDOHZYRzRnSUM4dklFOXVJSE4wWVdOckxDQmlaV1p2Y21VNklIWmhiSFZsTENBdUxpNHNJR2hoYzJnc0lDNHVMbHh1SUNBdkx5QlBiaUJ6ZEdGamF5d2dZV1owWlhJNklDNHVMaXdnYUdGemFDd2dMaTR1WEc0Z0lDOHZYRzRnSUM4dklGQnZjSE1nWVNCMllXeDFaU0J2Wm1ZZ2RHaGxJSE4wWVdOcklHRnVaQ0JoYzNOcFoyNXpJR2wwSUhSdklIUm9aU0JqZFhKeVpXNTBJR2hoYzJoY2JpQWdZWE56YVdkdVZHOUlZWE5vT2lCbWRXNWpkR2x2YmloclpYa3BJSHRjYmlBZ0lDQnNaWFFnZG1Gc2RXVWdQU0IwYUdsekxuQnZjRk4wWVdOcktDa3NYRzRnSUNBZ0lDQmpiMjUwWlhoMExGeHVJQ0FnSUNBZ2RIbHdaU3hjYmlBZ0lDQWdJR2xrTzF4dVhHNGdJQ0FnYVdZZ0tIUm9hWE11ZEhKaFkydEpaSE1wSUh0Y2JpQWdJQ0FnSUdsa0lEMGdkR2hwY3k1d2IzQlRkR0ZqYXlncE8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb2RHaHBjeTV6ZEhKcGJtZFFZWEpoYlhNcElIdGNiaUFnSUNBZ0lIUjVjR1VnUFNCMGFHbHpMbkJ2Y0ZOMFlXTnJLQ2s3WEc0Z0lDQWdJQ0JqYjI1MFpYaDBJRDBnZEdocGN5NXdiM0JUZEdGamF5Z3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHeGxkQ0JvWVhOb0lEMGdkR2hwY3k1b1lYTm9PMXh1SUNBZ0lHbG1JQ2hqYjI1MFpYaDBLU0I3WEc0Z0lDQWdJQ0JvWVhOb0xtTnZiblJsZUhSelcydGxlVjBnUFNCamIyNTBaWGgwTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvZEhsd1pTa2dlMXh1SUNBZ0lDQWdhR0Z6YUM1MGVYQmxjMXRyWlhsZElEMGdkSGx3WlR0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0dsa0tTQjdYRzRnSUNBZ0lDQm9ZWE5vTG1sa2MxdHJaWGxkSUQwZ2FXUTdYRzRnSUNBZ2ZWeHVJQ0FnSUdoaGMyZ3VkbUZzZFdWelcydGxlVjBnUFNCMllXeDFaVHRjYmlBZ2ZTeGNibHh1SUNCd2RYTm9TV1E2SUdaMWJtTjBhVzl1S0hSNWNHVXNJRzVoYldVc0lHTm9hV3hrS1NCN1hHNGdJQ0FnYVdZZ0tIUjVjR1VnUFQwOUlDZENiRzlqYTFCaGNtRnRKeWtnZTF4dUlDQWdJQ0FnZEdocGN5NXdkWE5vVTNSaFkydE1hWFJsY21Gc0tGeHVJQ0FnSUNBZ0lDQW5ZbXh2WTJ0UVlYSmhiWE5iSnlBclhHNGdJQ0FnSUNBZ0lDQWdibUZ0WlZzd1hTQXJYRzRnSUNBZ0lDQWdJQ0FnSjEwdWNHRjBhRnNuSUN0Y2JpQWdJQ0FnSUNBZ0lDQnVZVzFsV3pGZElDdGNiaUFnSUNBZ0lDQWdJQ0FuWFNjZ0sxeHVJQ0FnSUNBZ0lDQWdJQ2hqYUdsc1pDQS9JQ2NnS3lBbklDc2dTbE5QVGk1emRISnBibWRwWm5rb0p5NG5JQ3NnWTJocGJHUXBJRG9nSnljcFhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb2RIbHdaU0E5UFQwZ0oxQmhkR2hGZUhCeVpYTnphVzl1SnlrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV3ZFhOb1UzUnlhVzVuS0c1aGJXVXBPMXh1SUNBZ0lIMGdaV3h6WlNCcFppQW9kSGx3WlNBOVBUMGdKMU4xWWtWNGNISmxjM05wYjI0bktTQjdYRzRnSUNBZ0lDQjBhR2x6TG5CMWMyaFRkR0ZqYTB4cGRHVnlZV3dvSjNSeWRXVW5LVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV3ZFhOb1UzUmhZMnRNYVhSbGNtRnNLQ2R1ZFd4c0p5azdYRzRnSUNBZ2ZWeHVJQ0I5TEZ4dVhHNGdJQzh2SUVoRlRGQkZVbE5jYmx4dUlDQmpiMjF3YVd4bGNqb2dTbUYyWVZOamNtbHdkRU52YlhCcGJHVnlMRnh1WEc0Z0lHTnZiWEJwYkdWRGFHbHNaSEpsYmpvZ1puVnVZM1JwYjI0b1pXNTJhWEp2Ym0xbGJuUXNJRzl3ZEdsdmJuTXBJSHRjYmlBZ0lDQnNaWFFnWTJocGJHUnlaVzRnUFNCbGJuWnBjbTl1YldWdWRDNWphR2xzWkhKbGJpeGNiaUFnSUNBZ0lHTm9hV3hrTEZ4dUlDQWdJQ0FnWTI5dGNHbHNaWEk3WEc1Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Dd2diQ0E5SUdOb2FXeGtjbVZ1TG14bGJtZDBhRHNnYVNBOElHdzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ1kyaHBiR1FnUFNCamFHbHNaSEpsYmx0cFhUdGNiaUFnSUNBZ0lHTnZiWEJwYkdWeUlEMGdibVYzSUhSb2FYTXVZMjl0Y0dsc1pYSW9LVHNnTHk4Z1pYTnNhVzUwTFdScGMyRmliR1V0YkdsdVpTQnVaWGN0WTJGd1hHNWNiaUFnSUNBZ0lHeGxkQ0JsZUdsemRHbHVaeUE5SUhSb2FYTXViV0YwWTJoRmVHbHpkR2x1WjFCeWIyZHlZVzBvWTJocGJHUXBPMXh1WEc0Z0lDQWdJQ0JwWmlBb1pYaHBjM1JwYm1jZ1BUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG1OdmJuUmxlSFF1Y0hKdlozSmhiWE11Y0hWemFDZ25KeWs3SUM4dklGQnNZV05sYUc5c1pHVnlJSFJ2SUhCeVpYWmxiblFnYm1GdFpTQmpiMjVtYkdsamRITWdabTl5SUc1bGMzUmxaQ0JqYUdsc1pISmxibHh1SUNBZ0lDQWdJQ0JzWlhRZ2FXNWtaWGdnUFNCMGFHbHpMbU52Ym5SbGVIUXVjSEp2WjNKaGJYTXViR1Z1WjNSb08xeHVJQ0FnSUNBZ0lDQmphR2xzWkM1cGJtUmxlQ0E5SUdsdVpHVjRPMXh1SUNBZ0lDQWdJQ0JqYUdsc1pDNXVZVzFsSUQwZ0ozQnliMmR5WVcwbklDc2dhVzVrWlhnN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WTI5dWRHVjRkQzV3Y205bmNtRnRjMXRwYm1SbGVGMGdQU0JqYjIxd2FXeGxjaTVqYjIxd2FXeGxLRnh1SUNBZ0lDQWdJQ0FnSUdOb2FXeGtMRnh1SUNBZ0lDQWdJQ0FnSUc5d2RHbHZibk1zWEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTVqYjI1MFpYaDBMRnh1SUNBZ0lDQWdJQ0FnSUNGMGFHbHpMbkJ5WldOdmJYQnBiR1ZjYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVqYjI1MFpYaDBMbVJsWTI5eVlYUnZjbk5iYVc1a1pYaGRJRDBnWTI5dGNHbHNaWEl1WkdWamIzSmhkRzl5Y3p0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVqYjI1MFpYaDBMbVZ1ZG1seWIyNXRaVzUwYzF0cGJtUmxlRjBnUFNCamFHbHNaRHRjYmx4dUlDQWdJQ0FnSUNCMGFHbHpMblZ6WlVSbGNIUm9jeUE5SUhSb2FYTXVkWE5sUkdWd2RHaHpJSHg4SUdOdmJYQnBiR1Z5TG5WelpVUmxjSFJvY3p0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTUxYzJWQ2JHOWphMUJoY21GdGN5QTlJSFJvYVhNdWRYTmxRbXh2WTJ0UVlYSmhiWE1nZkh3Z1kyOXRjR2xzWlhJdWRYTmxRbXh2WTJ0UVlYSmhiWE03WEc0Z0lDQWdJQ0FnSUdOb2FXeGtMblZ6WlVSbGNIUm9jeUE5SUhSb2FYTXVkWE5sUkdWd2RHaHpPMXh1SUNBZ0lDQWdJQ0JqYUdsc1pDNTFjMlZDYkc5amExQmhjbUZ0Y3lBOUlIUm9hWE11ZFhObFFteHZZMnRRWVhKaGJYTTdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQmphR2xzWkM1cGJtUmxlQ0E5SUdWNGFYTjBhVzVuTG1sdVpHVjRPMXh1SUNBZ0lDQWdJQ0JqYUdsc1pDNXVZVzFsSUQwZ0ozQnliMmR5WVcwbklDc2daWGhwYzNScGJtY3VhVzVrWlhnN1hHNWNiaUFnSUNBZ0lDQWdkR2hwY3k1MWMyVkVaWEIwYUhNZ1BTQjBhR2x6TG5WelpVUmxjSFJvY3lCOGZDQmxlR2x6ZEdsdVp5NTFjMlZFWlhCMGFITTdYRzRnSUNBZ0lDQWdJSFJvYVhNdWRYTmxRbXh2WTJ0UVlYSmhiWE1nUFNCMGFHbHpMblZ6WlVKc2IyTnJVR0Z5WVcxeklIeDhJR1Y0YVhOMGFXNW5MblZ6WlVKc2IyTnJVR0Z5WVcxek8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmU3hjYmlBZ2JXRjBZMmhGZUdsemRHbHVaMUJ5YjJkeVlXMDZJR1oxYm1OMGFXOXVLR05vYVd4a0tTQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREFzSUd4bGJpQTlJSFJvYVhNdVkyOXVkR1Y0ZEM1bGJuWnBjbTl1YldWdWRITXViR1Z1WjNSb095QnBJRHdnYkdWdU95QnBLeXNwSUh0Y2JpQWdJQ0FnSUd4bGRDQmxiblpwY205dWJXVnVkQ0E5SUhSb2FYTXVZMjl1ZEdWNGRDNWxiblpwY205dWJXVnVkSE5iYVYwN1hHNGdJQ0FnSUNCcFppQW9aVzUyYVhKdmJtMWxiblFnSmlZZ1pXNTJhWEp2Ym0xbGJuUXVaWEYxWVd4ektHTm9hV3hrS1NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1pXNTJhWEp2Ym0xbGJuUTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5TEZ4dVhHNGdJSEJ5YjJkeVlXMUZlSEJ5WlhOemFXOXVPaUJtZFc1amRHbHZiaWhuZFdsa0tTQjdYRzRnSUNBZ2JHVjBJR05vYVd4a0lEMGdkR2hwY3k1bGJuWnBjbTl1YldWdWRDNWphR2xzWkhKbGJsdG5kV2xrWFN4Y2JpQWdJQ0FnSUhCeWIyZHlZVzFRWVhKaGJYTWdQU0JiWTJocGJHUXVhVzVrWlhnc0lDZGtZWFJoSnl3Z1kyaHBiR1F1WW14dlkydFFZWEpoYlhOZE8xeHVYRzRnSUNBZ2FXWWdLSFJvYVhNdWRYTmxRbXh2WTJ0UVlYSmhiWE1nZkh3Z2RHaHBjeTUxYzJWRVpYQjBhSE1wSUh0Y2JpQWdJQ0FnSUhCeWIyZHlZVzFRWVhKaGJYTXVjSFZ6YUNnbllteHZZMnRRWVhKaGJYTW5LVHRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLSFJvYVhNdWRYTmxSR1Z3ZEdoektTQjdYRzRnSUNBZ0lDQndjbTluY21GdFVHRnlZVzF6TG5CMWMyZ29KMlJsY0hSb2N5Y3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlBblkyOXVkR0ZwYm1WeUxuQnliMmR5WVcwb0p5QXJJSEJ5YjJkeVlXMVFZWEpoYlhNdWFtOXBiaWduTENBbktTQXJJQ2NwSnp0Y2JpQWdmU3hjYmx4dUlDQjFjMlZTWldkcGMzUmxjam9nWm5WdVkzUnBiMjRvYm1GdFpTa2dlMXh1SUNBZ0lHbG1JQ2doZEdocGN5NXlaV2RwYzNSbGNuTmJibUZ0WlYwcElIdGNiaUFnSUNBZ0lIUm9hWE11Y21WbmFYTjBaWEp6VzI1aGJXVmRJRDBnZEhKMVpUdGNiaUFnSUNBZ0lIUm9hWE11Y21WbmFYTjBaWEp6TG14cGMzUXVjSFZ6YUNodVlXMWxLVHRjYmlBZ0lDQjlYRzRnSUgwc1hHNWNiaUFnY0hWemFEb2dablZ1WTNScGIyNG9aWGh3Y2lrZ2UxeHVJQ0FnSUdsbUlDZ2hLR1Y0Y0hJZ2FXNXpkR0Z1WTJWdlppQk1hWFJsY21Gc0tTa2dlMXh1SUNBZ0lDQWdaWGh3Y2lBOUlIUm9hWE11YzI5MWNtTmxMbmR5WVhBb1pYaHdjaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkR2hwY3k1cGJteHBibVZUZEdGamF5NXdkWE5vS0dWNGNISXBPMXh1SUNBZ0lISmxkSFZ5YmlCbGVIQnlPMXh1SUNCOUxGeHVYRzRnSUhCMWMyaFRkR0ZqYTB4cGRHVnlZV3c2SUdaMWJtTjBhVzl1S0dsMFpXMHBJSHRjYmlBZ0lDQjBhR2x6TG5CMWMyZ29ibVYzSUV4cGRHVnlZV3dvYVhSbGJTa3BPMXh1SUNCOUxGeHVYRzRnSUhCMWMyaFRiM1Z5WTJVNklHWjFibU4wYVc5dUtITnZkWEpqWlNrZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG5CbGJtUnBibWREYjI1MFpXNTBLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuTnZkWEpqWlM1d2RYTm9LRnh1SUNBZ0lDQWdJQ0IwYUdsekxtRndjR1Z1WkZSdlFuVm1abVZ5S0Z4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11YzI5MWNtTmxMbkYxYjNSbFpGTjBjbWx1WnloMGFHbHpMbkJsYm1ScGJtZERiMjUwWlc1MEtTeGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxuQmxibVJwYm1kTWIyTmhkR2x2Ymx4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2RHaHBjeTV3Wlc1a2FXNW5RMjl1ZEdWdWRDQTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvYzI5MWNtTmxLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuTnZkWEpqWlM1d2RYTm9LSE52ZFhKalpTazdYRzRnSUNBZ2ZWeHVJQ0I5TEZ4dVhHNGdJSEpsY0d4aFkyVlRkR0ZqYXpvZ1puVnVZM1JwYjI0b1kyRnNiR0poWTJzcElIdGNiaUFnSUNCc1pYUWdjSEpsWm1sNElEMGdXeWNvSjEwc1hHNGdJQ0FnSUNCemRHRmpheXhjYmlBZ0lDQWdJR055WldGMFpXUlRkR0ZqYXl4Y2JpQWdJQ0FnSUhWelpXUk1hWFJsY21Gc08xeHVYRzRnSUNBZ0x5b2dhWE4wWVc1aWRXd2dhV2R1YjNKbElHNWxlSFFnS2k5Y2JpQWdJQ0JwWmlBb0lYUm9hWE11YVhOSmJteHBibVVvS1NrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVjRZMlZ3ZEdsdmJpZ25jbVZ3YkdGalpWTjBZV05ySUc5dUlHNXZiaTFwYm14cGJtVW5LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJYWlNCM1lXNTBJSFJ2SUcxbGNtZGxJSFJvWlNCcGJteHBibVVnYzNSaGRHVnRaVzUwSUdsdWRHOGdkR2hsSUhKbGNHeGhZMlZ0Wlc1MElITjBZWFJsYldWdWRDQjJhV0VnSnl3blhHNGdJQ0FnYkdWMElIUnZjQ0E5SUhSb2FYTXVjRzl3VTNSaFkyc29kSEoxWlNrN1hHNWNiaUFnSUNCcFppQW9kRzl3SUdsdWMzUmhibU5sYjJZZ1RHbDBaWEpoYkNrZ2UxeHVJQ0FnSUNBZ0x5OGdUR2wwWlhKaGJITWdaRzhnYm05MElHNWxaV1FnZEc4Z1ltVWdhVzVzYVc1bFpGeHVJQ0FnSUNBZ2MzUmhZMnNnUFNCYmRHOXdMblpoYkhWbFhUdGNiaUFnSUNBZ0lIQnlaV1pwZUNBOUlGc25LQ2NzSUhOMFlXTnJYVHRjYmlBZ0lDQWdJSFZ6WldSTWFYUmxjbUZzSUQwZ2RISjFaVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0x5OGdSMlYwSUc5eUlHTnlaV0YwWlNCMGFHVWdZM1Z5Y21WdWRDQnpkR0ZqYXlCdVlXMWxJR1p2Y2lCMWMyVWdZbmtnZEdobElHbHViR2x1WlZ4dUlDQWdJQ0FnWTNKbFlYUmxaRk4wWVdOcklEMGdkSEoxWlR0Y2JpQWdJQ0FnSUd4bGRDQnVZVzFsSUQwZ2RHaHBjeTVwYm1OeVUzUmhZMnNvS1R0Y2JseHVJQ0FnSUNBZ2NISmxabWw0SUQwZ1d5Y29LQ2NzSUhSb2FYTXVjSFZ6YUNodVlXMWxLU3dnSnlBOUlDY3NJSFJ2Y0N3Z0p5a25YVHRjYmlBZ0lDQWdJSE4wWVdOcklEMGdkR2hwY3k1MGIzQlRkR0ZqYXlncE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUd4bGRDQnBkR1Z0SUQwZ1kyRnNiR0poWTJzdVkyRnNiQ2gwYUdsekxDQnpkR0ZqYXlrN1hHNWNiaUFnSUNCcFppQW9JWFZ6WldSTWFYUmxjbUZzS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbkJ2Y0ZOMFlXTnJLQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hqY21WaGRHVmtVM1JoWTJzcElIdGNiaUFnSUNBZ0lIUm9hWE11YzNSaFkydFRiRzkwTFMwN1hHNGdJQ0FnZlZ4dUlDQWdJSFJvYVhNdWNIVnphQ2h3Y21WbWFYZ3VZMjl1WTJGMEtHbDBaVzBzSUNjcEp5a3BPMXh1SUNCOUxGeHVYRzRnSUdsdVkzSlRkR0ZqYXpvZ1puVnVZM1JwYjI0b0tTQjdYRzRnSUNBZ2RHaHBjeTV6ZEdGamExTnNiM1FyS3p0Y2JpQWdJQ0JwWmlBb2RHaHBjeTV6ZEdGamExTnNiM1FnUGlCMGFHbHpMbk4wWVdOclZtRnljeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJSFJvYVhNdWMzUmhZMnRXWVhKekxuQjFjMmdvSjNOMFlXTnJKeUFySUhSb2FYTXVjM1JoWTJ0VGJHOTBLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVkRzl3VTNSaFkydE9ZVzFsS0NrN1hHNGdJSDBzWEc0Z0lIUnZjRk4wWVdOclRtRnRaVG9nWm5WdVkzUnBiMjRvS1NCN1hHNGdJQ0FnY21WMGRYSnVJQ2R6ZEdGamF5Y2dLeUIwYUdsekxuTjBZV05yVTJ4dmREdGNiaUFnZlN4Y2JpQWdabXgxYzJoSmJteHBibVU2SUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUd4bGRDQnBibXhwYm1WVGRHRmpheUE5SUhSb2FYTXVhVzVzYVc1bFUzUmhZMnM3WEc0Z0lDQWdkR2hwY3k1cGJteHBibVZUZEdGamF5QTlJRnRkTzF4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd0xDQnNaVzRnUFNCcGJteHBibVZUZEdGamF5NXNaVzVuZEdnN0lHa2dQQ0JzWlc0N0lHa3JLeWtnZTF4dUlDQWdJQ0FnYkdWMElHVnVkSEo1SUQwZ2FXNXNhVzVsVTNSaFkydGJhVjA3WEc0Z0lDQWdJQ0F2S2lCcGMzUmhibUoxYkNCcFoyNXZjbVVnYVdZZ0tpOWNiaUFnSUNBZ0lHbG1JQ2hsYm5SeWVTQnBibk4wWVc1alpXOW1JRXhwZEdWeVlXd3BJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWpiMjF3YVd4bFUzUmhZMnN1Y0hWemFDaGxiblJ5ZVNrN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCc1pYUWdjM1JoWTJzZ1BTQjBhR2x6TG1sdVkzSlRkR0ZqYXlncE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CMWMyaFRiM1Z5WTJVb1czTjBZV05yTENBbklEMGdKeXdnWlc1MGNua3NJQ2M3SjEwcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG1OdmJYQnBiR1ZUZEdGamF5NXdkWE5vS0hOMFlXTnJLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgwc1hHNGdJR2x6U1c1c2FXNWxPaUJtZFc1amRHbHZiaWdwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1cGJteHBibVZUZEdGamF5NXNaVzVuZEdnN1hHNGdJSDBzWEc1Y2JpQWdjRzl3VTNSaFkyczZJR1oxYm1OMGFXOXVLSGR5WVhCd1pXUXBJSHRjYmlBZ0lDQnNaWFFnYVc1c2FXNWxJRDBnZEdocGN5NXBjMGx1YkdsdVpTZ3BMRnh1SUNBZ0lDQWdhWFJsYlNBOUlDaHBibXhwYm1VZ1B5QjBhR2x6TG1sdWJHbHVaVk4wWVdOcklEb2dkR2hwY3k1amIyMXdhV3hsVTNSaFkyc3BMbkJ2Y0NncE8xeHVYRzRnSUNBZ2FXWWdLQ0YzY21Gd2NHVmtJQ1ltSUdsMFpXMGdhVzV6ZEdGdVkyVnZaaUJNYVhSbGNtRnNLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdhWFJsYlM1MllXeDFaVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2FXWWdLQ0ZwYm14cGJtVXBJSHRjYmlBZ0lDQWdJQ0FnTHlvZ2FYTjBZVzVpZFd3Z2FXZHViM0psSUc1bGVIUWdLaTljYmlBZ0lDQWdJQ0FnYVdZZ0tDRjBhR2x6TG5OMFlXTnJVMnh2ZENrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGZUdObGNIUnBiMjRvSjBsdWRtRnNhV1FnYzNSaFkyc2djRzl3SnlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdkR2hwY3k1emRHRmphMU5zYjNRdExUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCcGRHVnRPMXh1SUNBZ0lIMWNiaUFnZlN4Y2JseHVJQ0IwYjNCVGRHRmphem9nWm5WdVkzUnBiMjRvS1NCN1hHNGdJQ0FnYkdWMElITjBZV05ySUQwZ2RHaHBjeTVwYzBsdWJHbHVaU2dwSUQ4Z2RHaHBjeTVwYm14cGJtVlRkR0ZqYXlBNklIUm9hWE11WTI5dGNHbHNaVk4wWVdOckxGeHVJQ0FnSUNBZ2FYUmxiU0E5SUhOMFlXTnJXM04wWVdOckxteGxibWQwYUNBdElERmRPMXh1WEc0Z0lDQWdMeW9nYVhOMFlXNWlkV3dnYVdkdWIzSmxJR2xtSUNvdlhHNGdJQ0FnYVdZZ0tHbDBaVzBnYVc1emRHRnVZMlZ2WmlCTWFYUmxjbUZzS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYVhSbGJTNTJZV3gxWlR0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHbDBaVzA3WEc0Z0lDQWdmVnh1SUNCOUxGeHVYRzRnSUdOdmJuUmxlSFJPWVcxbE9pQm1kVzVqZEdsdmJpaGpiMjUwWlhoMEtTQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdWRYTmxSR1Z3ZEdoeklDWW1JR052Ym5SbGVIUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQW5aR1Z3ZEdoeld5Y2dLeUJqYjI1MFpYaDBJQ3NnSjEwbk8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdKMlJsY0hSb0p5QXJJR052Ym5SbGVIUTdYRzRnSUNBZ2ZWeHVJQ0I5TEZ4dVhHNGdJSEYxYjNSbFpGTjBjbWx1WnpvZ1puVnVZM1JwYjI0b2MzUnlLU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YzI5MWNtTmxMbkYxYjNSbFpGTjBjbWx1WnloemRISXBPMXh1SUNCOUxGeHVYRzRnSUc5aWFtVmpkRXhwZEdWeVlXdzZJR1oxYm1OMGFXOXVLRzlpYWlrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuTnZkWEpqWlM1dlltcGxZM1JNYVhSbGNtRnNLRzlpYWlrN1hHNGdJSDBzWEc1Y2JpQWdZV3hwWVhOaFlteGxPaUJtZFc1amRHbHZiaWh1WVcxbEtTQjdYRzRnSUNBZ2JHVjBJSEpsZENBOUlIUm9hWE11WVd4cFlYTmxjMXR1WVcxbFhUdGNiaUFnSUNCcFppQW9jbVYwS1NCN1hHNGdJQ0FnSUNCeVpYUXVjbVZtWlhKbGJtTmxRMjkxYm5Rckt6dGNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBJRDBnZEdocGN5NWhiR2xoYzJWelcyNWhiV1ZkSUQwZ2RHaHBjeTV6YjNWeVkyVXVkM0poY0NodVlXMWxLVHRjYmlBZ0lDQnlaWFF1WVd4cFlYTmhZbXhsSUQwZ2RISjFaVHRjYmlBZ0lDQnlaWFF1Y21WbVpYSmxibU5sUTI5MWJuUWdQU0F4TzF4dVhHNGdJQ0FnY21WMGRYSnVJSEpsZER0Y2JpQWdmU3hjYmx4dUlDQnpaWFIxY0VobGJIQmxjam9nWm5WdVkzUnBiMjRvY0dGeVlXMVRhWHBsTENCdVlXMWxMQ0JpYkc5amEwaGxiSEJsY2lrZ2UxeHVJQ0FnSUd4bGRDQndZWEpoYlhNZ1BTQmJYU3hjYmlBZ0lDQWdJSEJoY21GdGMwbHVhWFFnUFNCMGFHbHpMbk5sZEhWd1NHVnNjR1Z5UVhKbmN5aHVZVzFsTENCd1lYSmhiVk5wZW1Vc0lIQmhjbUZ0Y3l3Z1lteHZZMnRJWld4d1pYSXBPMXh1SUNBZ0lHeGxkQ0JtYjNWdVpFaGxiSEJsY2lBOUlIUm9hWE11Ym1GdFpVeHZiMnQxY0NnbmFHVnNjR1Z5Y3ljc0lHNWhiV1VzSUNkb1pXeHdaWEluS1N4Y2JpQWdJQ0FnSUdOaGJHeERiMjUwWlhoMElEMGdkR2hwY3k1aGJHbGhjMkZpYkdVb1hHNGdJQ0FnSUNBZ0lHQWtlM1JvYVhNdVkyOXVkR1Y0ZEU1aGJXVW9NQ2w5SUNFOUlHNTFiR3dnUHlBa2UzUm9hWE11WTI5dWRHVjRkRTVoYldVb1hHNGdJQ0FnSUNBZ0lDQWdNRnh1SUNBZ0lDQWdJQ0FwZlNBNklDaGpiMjUwWVdsdVpYSXViblZzYkVOdmJuUmxlSFFnZkh3Z2UzMHBZRnh1SUNBZ0lDQWdLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQndZWEpoYlhNNklIQmhjbUZ0Y3l4Y2JpQWdJQ0FnSUhCaGNtRnRjMGx1YVhRNklIQmhjbUZ0YzBsdWFYUXNYRzRnSUNBZ0lDQnVZVzFsT2lCbWIzVnVaRWhsYkhCbGNpeGNiaUFnSUNBZ0lHTmhiR3hRWVhKaGJYTTZJRnRqWVd4c1EyOXVkR1Y0ZEYwdVkyOXVZMkYwS0hCaGNtRnRjeWxjYmlBZ0lDQjlPMXh1SUNCOUxGeHVYRzRnSUhObGRIVndVR0Z5WVcxek9pQm1kVzVqZEdsdmJpaG9aV3h3WlhJc0lIQmhjbUZ0VTJsNlpTd2djR0Z5WVcxektTQjdYRzRnSUNBZ2JHVjBJRzl3ZEdsdmJuTWdQU0I3ZlN4Y2JpQWdJQ0FnSUdOdmJuUmxlSFJ6SUQwZ1cxMHNYRzRnSUNBZ0lDQjBlWEJsY3lBOUlGdGRMRnh1SUNBZ0lDQWdhV1J6SUQwZ1cxMHNYRzRnSUNBZ0lDQnZZbXBsWTNSQmNtZHpJRDBnSVhCaGNtRnRjeXhjYmlBZ0lDQWdJSEJoY21GdE8xeHVYRzRnSUNBZ2FXWWdLRzlpYW1WamRFRnlaM01wSUh0Y2JpQWdJQ0FnSUhCaGNtRnRjeUE5SUZ0ZE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUc5d2RHbHZibk11Ym1GdFpTQTlJSFJvYVhNdWNYVnZkR1ZrVTNSeWFXNW5LR2hsYkhCbGNpazdYRzRnSUNBZ2IzQjBhVzl1Y3k1b1lYTm9JRDBnZEdocGN5NXdiM0JUZEdGamF5Z3BPMXh1WEc0Z0lDQWdhV1lnS0hSb2FYTXVkSEpoWTJ0SlpITXBJSHRjYmlBZ0lDQWdJRzl3ZEdsdmJuTXVhR0Z6YUVsa2N5QTlJSFJvYVhNdWNHOXdVM1JoWTJzb0tUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIUm9hWE11YzNSeWFXNW5VR0Z5WVcxektTQjdYRzRnSUNBZ0lDQnZjSFJwYjI1ekxtaGhjMmhVZVhCbGN5QTlJSFJvYVhNdWNHOXdVM1JoWTJzb0tUdGNiaUFnSUNBZ0lHOXdkR2x2Ym5NdWFHRnphRU52Ym5SbGVIUnpJRDBnZEdocGN5NXdiM0JUZEdGamF5Z3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHeGxkQ0JwYm5abGNuTmxJRDBnZEdocGN5NXdiM0JUZEdGamF5Z3BMRnh1SUNBZ0lDQWdjSEp2WjNKaGJTQTlJSFJvYVhNdWNHOXdVM1JoWTJzb0tUdGNibHh1SUNBZ0lDOHZJRUYyYjJsa0lITmxkSFJwYm1jZ1ptNGdZVzVrSUdsdWRtVnljMlVnYVdZZ2JtVnBkR2hsY2lCaGNtVWdjMlYwTGlCVWFHbHpJR0ZzYkc5M2MxeHVJQ0FnSUM4dklHaGxiSEJsY25NZ2RHOGdaRzhnWVNCamFHVmpheUJtYjNJZ1lHbG1JQ2h2Y0hScGIyNXpMbVp1S1dCY2JpQWdJQ0JwWmlBb2NISnZaM0poYlNCOGZDQnBiblpsY25ObEtTQjdYRzRnSUNBZ0lDQnZjSFJwYjI1ekxtWnVJRDBnY0hKdlozSmhiU0I4ZkNBblkyOXVkR0ZwYm1WeUxtNXZiM0FuTzF4dUlDQWdJQ0FnYjNCMGFXOXVjeTVwYm5abGNuTmxJRDBnYVc1MlpYSnpaU0I4ZkNBblkyOXVkR0ZwYm1WeUxtNXZiM0FuTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUZSb1pTQndZWEpoYldWMFpYSnpJR2R2SUc5dUlIUnZJSFJvWlNCemRHRmpheUJwYmlCdmNtUmxjaUFvYldGcmFXNW5JSE4xY21VZ2RHaGhkQ0IwYUdWNUlHRnlaU0JsZG1Gc2RXRjBaV1FnYVc0Z2IzSmtaWElwWEc0Z0lDQWdMeThnYzI4Z2QyVWdibVZsWkNCMGJ5QndiM0FnZEdobGJTQnZabVlnZEdobElITjBZV05ySUdsdUlISmxkbVZ5YzJVZ2IzSmtaWEpjYmlBZ0lDQnNaWFFnYVNBOUlIQmhjbUZ0VTJsNlpUdGNiaUFnSUNCM2FHbHNaU0FvYVMwdEtTQjdYRzRnSUNBZ0lDQndZWEpoYlNBOUlIUm9hWE11Y0c5d1UzUmhZMnNvS1R0Y2JpQWdJQ0FnSUhCaGNtRnRjMXRwWFNBOUlIQmhjbUZ0TzF4dVhHNGdJQ0FnSUNCcFppQW9kR2hwY3k1MGNtRmphMGxrY3lrZ2UxeHVJQ0FnSUNBZ0lDQnBaSE5iYVYwZ1BTQjBhR2x6TG5CdmNGTjBZV05yS0NrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCcFppQW9kR2hwY3k1emRISnBibWRRWVhKaGJYTXBJSHRjYmlBZ0lDQWdJQ0FnZEhsd1pYTmJhVjBnUFNCMGFHbHpMbkJ2Y0ZOMFlXTnJLQ2s3WEc0Z0lDQWdJQ0FnSUdOdmJuUmxlSFJ6VzJsZElEMGdkR2hwY3k1d2IzQlRkR0ZqYXlncE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHZZbXBsWTNSQmNtZHpLU0I3WEc0Z0lDQWdJQ0J2Y0hScGIyNXpMbUZ5WjNNZ1BTQjBhR2x6TG5OdmRYSmpaUzVuWlc1bGNtRjBaVUZ5Y21GNUtIQmhjbUZ0Y3lrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tIUm9hWE11ZEhKaFkydEpaSE1wSUh0Y2JpQWdJQ0FnSUc5d2RHbHZibk11YVdSeklEMGdkR2hwY3k1emIzVnlZMlV1WjJWdVpYSmhkR1ZCY25KaGVTaHBaSE1wTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvZEdocGN5NXpkSEpwYm1kUVlYSmhiWE1wSUh0Y2JpQWdJQ0FnSUc5d2RHbHZibk11ZEhsd1pYTWdQU0IwYUdsekxuTnZkWEpqWlM1blpXNWxjbUYwWlVGeWNtRjVLSFI1Y0dWektUdGNiaUFnSUNBZ0lHOXdkR2x2Ym5NdVkyOXVkR1Y0ZEhNZ1BTQjBhR2x6TG5OdmRYSmpaUzVuWlc1bGNtRjBaVUZ5Y21GNUtHTnZiblJsZUhSektUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9kR2hwY3k1dmNIUnBiMjV6TG1SaGRHRXBJSHRjYmlBZ0lDQWdJRzl3ZEdsdmJuTXVaR0YwWVNBOUlDZGtZWFJoSnp0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0hSb2FYTXVkWE5sUW14dlkydFFZWEpoYlhNcElIdGNiaUFnSUNBZ0lHOXdkR2x2Ym5NdVlteHZZMnRRWVhKaGJYTWdQU0FuWW14dlkydFFZWEpoYlhNbk8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdiM0IwYVc5dWN6dGNiaUFnZlN4Y2JseHVJQ0J6WlhSMWNFaGxiSEJsY2tGeVozTTZJR1oxYm1OMGFXOXVLR2hsYkhCbGNpd2djR0Z5WVcxVGFYcGxMQ0J3WVhKaGJYTXNJSFZ6WlZKbFoybHpkR1Z5S1NCN1hHNGdJQ0FnYkdWMElHOXdkR2x2Ym5NZ1BTQjBhR2x6TG5ObGRIVndVR0Z5WVcxektHaGxiSEJsY2l3Z2NHRnlZVzFUYVhwbExDQndZWEpoYlhNcE8xeHVJQ0FnSUc5d2RHbHZibk11Ykc5aklEMGdTbE5QVGk1emRISnBibWRwWm5rb2RHaHBjeTV6YjNWeVkyVXVZM1Z5Y21WdWRFeHZZMkYwYVc5dUtUdGNiaUFnSUNCdmNIUnBiMjV6SUQwZ2RHaHBjeTV2WW1wbFkzUk1hWFJsY21Gc0tHOXdkR2x2Ym5NcE8xeHVJQ0FnSUdsbUlDaDFjMlZTWldkcGMzUmxjaWtnZTF4dUlDQWdJQ0FnZEdocGN5NTFjMlZTWldkcGMzUmxjaWduYjNCMGFXOXVjeWNwTzF4dUlDQWdJQ0FnY0dGeVlXMXpMbkIxYzJnb0oyOXdkR2x2Ym5NbktUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCYkoyOXdkR2x2Ym5NOUp5d2diM0IwYVc5dWMxMDdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaHdZWEpoYlhNcElIdGNiaUFnSUNBZ0lIQmhjbUZ0Y3k1d2RYTm9LRzl3ZEdsdmJuTXBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlDY25PMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYjNCMGFXOXVjenRjYmlBZ0lDQjlYRzRnSUgxY2JuMDdYRzVjYmlobWRXNWpkR2x2YmlncElIdGNiaUFnWTI5dWMzUWdjbVZ6WlhKMlpXUlhiM0prY3lBOUlDaGNiaUFnSUNBblluSmxZV3NnWld4elpTQnVaWGNnZG1GeUp5QXJYRzRnSUNBZ0p5QmpZWE5sSUdacGJtRnNiSGtnY21WMGRYSnVJSFp2YVdRbklDdGNiaUFnSUNBbklHTmhkR05vSUdadmNpQnpkMmwwWTJnZ2QyaHBiR1VuSUN0Y2JpQWdJQ0FuSUdOdmJuUnBiblZsSUdaMWJtTjBhVzl1SUhSb2FYTWdkMmwwYUNjZ0sxeHVJQ0FnSUNjZ1pHVm1ZWFZzZENCcFppQjBhSEp2ZHljZ0sxeHVJQ0FnSUNjZ1pHVnNaWFJsSUdsdUlIUnllU2NnSzF4dUlDQWdJQ2NnWkc4Z2FXNXpkR0Z1WTJWdlppQjBlWEJsYjJZbklDdGNiaUFnSUNBbklHRmljM1J5WVdOMElHVnVkVzBnYVc1MElITm9iM0owSnlBclhHNGdJQ0FnSnlCaWIyOXNaV0Z1SUdWNGNHOXlkQ0JwYm5SbGNtWmhZMlVnYzNSaGRHbGpKeUFyWEc0Z0lDQWdKeUJpZVhSbElHVjRkR1Z1WkhNZ2JHOXVaeUJ6ZFhCbGNpY2dLMXh1SUNBZ0lDY2dZMmhoY2lCbWFXNWhiQ0J1WVhScGRtVWdjM2x1WTJoeWIyNXBlbVZrSnlBclhHNGdJQ0FnSnlCamJHRnpjeUJtYkc5aGRDQndZV05yWVdkbElIUm9jbTkzY3ljZ0sxeHVJQ0FnSUNjZ1kyOXVjM1FnWjI5MGJ5QndjbWwyWVhSbElIUnlZVzV6YVdWdWRDY2dLMXh1SUNBZ0lDY2daR1ZpZFdkblpYSWdhVzF3YkdWdFpXNTBjeUJ3Y205MFpXTjBaV1FnZG05c1lYUnBiR1VuSUN0Y2JpQWdJQ0FuSUdSdmRXSnNaU0JwYlhCdmNuUWdjSFZpYkdsaklHeGxkQ0I1YVdWc1pDQmhkMkZwZENjZ0sxeHVJQ0FnSUNjZ2JuVnNiQ0IwY25WbElHWmhiSE5sSjF4dUlDQXBMbk53YkdsMEtDY2dKeWs3WEc1Y2JpQWdZMjl1YzNRZ1kyOXRjR2xzWlhKWGIzSmtjeUE5SUNoS1lYWmhVMk55YVhCMFEyOXRjR2xzWlhJdVVrVlRSVkpXUlVSZlYwOVNSRk1nUFNCN2ZTazdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREFzSUd3Z1BTQnlaWE5sY25abFpGZHZjbVJ6TG14bGJtZDBhRHNnYVNBOElHdzdJR2tyS3lrZ2UxeHVJQ0FnSUdOdmJYQnBiR1Z5VjI5eVpITmJjbVZ6WlhKMlpXUlhiM0prYzF0cFhWMGdQU0IwY25WbE8xeHVJQ0I5WEc1OUtTZ3BPMXh1WEc0dktpcGNiaUFxSUVCa1pYQnlaV05oZEdWa0lFMWhlU0JpWlNCeVpXMXZkbVZrSUdsdUlIUm9aU0J1WlhoMElHMWhhbTl5SUhabGNuTnBiMjVjYmlBcUwxeHVTbUYyWVZOamNtbHdkRU52YlhCcGJHVnlMbWx6Vm1Gc2FXUktZWFpoVTJOeWFYQjBWbUZ5YVdGaWJHVk9ZVzFsSUQwZ1puVnVZM1JwYjI0b2JtRnRaU2tnZTF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUNGS1lYWmhVMk55YVhCMFEyOXRjR2xzWlhJdVVrVlRSVkpXUlVSZlYwOVNSRk5iYm1GdFpWMGdKaVpjYmlBZ0lDQXZYbHRoTFhwQkxWcGZKRjFiTUMwNVlTMTZRUzFhWHlSZEtpUXZMblJsYzNRb2JtRnRaU2xjYmlBZ0tUdGNibjA3WEc1Y2JtWjFibU4wYVc5dUlITjBjbWxqZEV4dmIydDFjQ2h5WlhGMWFYSmxWR1Z5YldsdVlXd3NJR052YlhCcGJHVnlMQ0J3WVhKMGN5d2dkSGx3WlNrZ2UxeHVJQ0JzWlhRZ2MzUmhZMnNnUFNCamIyMXdhV3hsY2k1d2IzQlRkR0ZqYXlncExGeHVJQ0FnSUdrZ1BTQXdMRnh1SUNBZ0lHeGxiaUE5SUhCaGNuUnpMbXhsYm1kMGFEdGNiaUFnYVdZZ0tISmxjWFZwY21WVVpYSnRhVzVoYkNrZ2UxeHVJQ0FnSUd4bGJpMHRPMXh1SUNCOVhHNWNiaUFnWm05eUlDZzdJR2tnUENCc1pXNDdJR2tyS3lrZ2UxeHVJQ0FnSUhOMFlXTnJJRDBnWTI5dGNHbHNaWEl1Ym1GdFpVeHZiMnQxY0NoemRHRmpheXdnY0dGeWRITmJhVjBzSUhSNWNHVXBPMXh1SUNCOVhHNWNiaUFnYVdZZ0tISmxjWFZwY21WVVpYSnRhVzVoYkNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJiWEc0Z0lDQWdJQ0JqYjIxd2FXeGxjaTVoYkdsaGMyRmliR1VvSjJOdmJuUmhhVzVsY2k1emRISnBZM1FuS1N4Y2JpQWdJQ0FnSUNjb0p5eGNiaUFnSUNBZ0lITjBZV05yTEZ4dUlDQWdJQ0FnSnl3Z0p5eGNiaUFnSUNBZ0lHTnZiWEJwYkdWeUxuRjFiM1JsWkZOMGNtbHVaeWh3WVhKMGMxdHBYU2tzWEc0Z0lDQWdJQ0FuTENBbkxGeHVJQ0FnSUNBZ1NsTlBUaTV6ZEhKcGJtZHBabmtvWTI5dGNHbHNaWEl1YzI5MWNtTmxMbU4xY25KbGJuUk1iMk5oZEdsdmJpa3NYRzRnSUNBZ0lDQW5JQ2tuWEc0Z0lDQWdYVHRjYmlBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0J5WlhSMWNtNGdjM1JoWTJzN1hHNGdJSDFjYm4xY2JseHVaWGh3YjNKMElHUmxabUYxYkhRZ1NtRjJZVk5qY21sd2RFTnZiWEJwYkdWeU8xeHVJbDE5XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG4vLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfaGFuZGxlYmFyc1J1bnRpbWUgPSByZXF1aXJlKCcuL2hhbmRsZWJhcnMucnVudGltZScpO1xuXG52YXIgX2hhbmRsZWJhcnNSdW50aW1lMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2hhbmRsZWJhcnNSdW50aW1lKTtcblxuLy8gQ29tcGlsZXIgaW1wb3J0c1xuXG52YXIgX2hhbmRsZWJhcnNDb21waWxlckFzdCA9IHJlcXVpcmUoJy4vaGFuZGxlYmFycy9jb21waWxlci9hc3QnKTtcblxudmFyIF9oYW5kbGViYXJzQ29tcGlsZXJBc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaGFuZGxlYmFyc0NvbXBpbGVyQXN0KTtcblxudmFyIF9oYW5kbGViYXJzQ29tcGlsZXJCYXNlID0gcmVxdWlyZSgnLi9oYW5kbGViYXJzL2NvbXBpbGVyL2Jhc2UnKTtcblxudmFyIF9oYW5kbGViYXJzQ29tcGlsZXJDb21waWxlciA9IHJlcXVpcmUoJy4vaGFuZGxlYmFycy9jb21waWxlci9jb21waWxlcicpO1xuXG52YXIgX2hhbmRsZWJhcnNDb21waWxlckphdmFzY3JpcHRDb21waWxlciA9IHJlcXVpcmUoJy4vaGFuZGxlYmFycy9jb21waWxlci9qYXZhc2NyaXB0LWNvbXBpbGVyJyk7XG5cbnZhciBfaGFuZGxlYmFyc0NvbXBpbGVySmF2YXNjcmlwdENvbXBpbGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2hhbmRsZWJhcnNDb21waWxlckphdmFzY3JpcHRDb21waWxlcik7XG5cbnZhciBfaGFuZGxlYmFyc0NvbXBpbGVyVmlzaXRvciA9IHJlcXVpcmUoJy4vaGFuZGxlYmFycy9jb21waWxlci92aXNpdG9yJyk7XG5cbnZhciBfaGFuZGxlYmFyc0NvbXBpbGVyVmlzaXRvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9oYW5kbGViYXJzQ29tcGlsZXJWaXNpdG9yKTtcblxudmFyIF9oYW5kbGViYXJzTm9Db25mbGljdCA9IHJlcXVpcmUoJy4vaGFuZGxlYmFycy9uby1jb25mbGljdCcpO1xuXG52YXIgX2hhbmRsZWJhcnNOb0NvbmZsaWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2hhbmRsZWJhcnNOb0NvbmZsaWN0KTtcblxudmFyIF9jcmVhdGUgPSBfaGFuZGxlYmFyc1J1bnRpbWUyWydkZWZhdWx0J10uY3JlYXRlO1xuZnVuY3Rpb24gY3JlYXRlKCkge1xuICB2YXIgaGIgPSBfY3JlYXRlKCk7XG5cbiAgaGIuY29tcGlsZSA9IGZ1bmN0aW9uIChpbnB1dCwgb3B0aW9ucykge1xuICAgIHJldHVybiBfaGFuZGxlYmFyc0NvbXBpbGVyQ29tcGlsZXIuY29tcGlsZShpbnB1dCwgb3B0aW9ucywgaGIpO1xuICB9O1xuICBoYi5wcmVjb21waWxlID0gZnVuY3Rpb24gKGlucHV0LCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIF9oYW5kbGViYXJzQ29tcGlsZXJDb21waWxlci5wcmVjb21waWxlKGlucHV0LCBvcHRpb25zLCBoYik7XG4gIH07XG5cbiAgaGIuQVNUID0gX2hhbmRsZWJhcnNDb21waWxlckFzdDJbJ2RlZmF1bHQnXTtcbiAgaGIuQ29tcGlsZXIgPSBfaGFuZGxlYmFyc0NvbXBpbGVyQ29tcGlsZXIuQ29tcGlsZXI7XG4gIGhiLkphdmFTY3JpcHRDb21waWxlciA9IF9oYW5kbGViYXJzQ29tcGlsZXJKYXZhc2NyaXB0Q29tcGlsZXIyWydkZWZhdWx0J107XG4gIGhiLlBhcnNlciA9IF9oYW5kbGViYXJzQ29tcGlsZXJCYXNlLnBhcnNlcjtcbiAgaGIucGFyc2UgPSBfaGFuZGxlYmFyc0NvbXBpbGVyQmFzZS5wYXJzZTtcbiAgaGIucGFyc2VXaXRob3V0UHJvY2Vzc2luZyA9IF9oYW5kbGViYXJzQ29tcGlsZXJCYXNlLnBhcnNlV2l0aG91dFByb2Nlc3Npbmc7XG5cbiAgcmV0dXJuIGhiO1xufVxuXG52YXIgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbl9oYW5kbGViYXJzTm9Db25mbGljdDJbJ2RlZmF1bHQnXShpbnN0KTtcblxuaW5zdC5WaXNpdG9yID0gX2hhbmRsZWJhcnNDb21waWxlclZpc2l0b3IyWydkZWZhdWx0J107XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IGluc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklpNHVMeTR1TDJ4cFlpOW9ZVzVrYkdWaVlYSnpMbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdhVU5CUVc5Q0xITkNRVUZ6UWpzN096czdPM0ZEUVVjeFFpd3lRa0ZCTWtJN096czdjME5CUzNCRExEUkNRVUUwUWpzN01FTkJRMWNzWjBOQlFXZERPenR2UkVGREwwTXNNa05CUVRKRE96czdPM2xEUVVOMFJDd3JRa0ZCSzBJN096czdiME5CUlRWQ0xEQkNRVUV3UWpzN096dEJRVVZxUkN4SlFVRkpMRTlCUVU4c1IwRkJSeXdyUWtGQlVTeE5RVUZOTEVOQlFVTTdRVUZETjBJc1UwRkJVeXhOUVVGTkxFZEJRVWM3UVVGRGFFSXNUVUZCU1N4RlFVRkZMRWRCUVVjc1QwRkJUeXhGUVVGRkxFTkJRVU03TzBGQlJXNUNMRWxCUVVVc1EwRkJReXhQUVVGUExFZEJRVWNzVlVGQlV5eExRVUZMTEVWQlFVVXNUMEZCVHl4RlFVRkZPMEZCUTNCRExGZEJRVThzYjBOQlFWRXNTMEZCU3l4RlFVRkZMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEhRVU53UXl4RFFVRkRPMEZCUTBZc1NVRkJSU3hEUVVGRExGVkJRVlVzUjBGQlJ5eFZRVUZUTEV0QlFVc3NSVUZCUlN4UFFVRlBMRVZCUVVVN1FVRkRka01zVjBGQlR5eDFRMEZCVnl4TFFVRkxMRVZCUVVVc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzBkQlEzWkRMRU5CUVVNN08wRkJSVVlzU1VGQlJTeERRVUZETEVkQlFVY3NjVU5CUVUwc1EwRkJRenRCUVVOaUxFbEJRVVVzUTBGQlF5eFJRVUZSTEhWRFFVRlhMRU5CUVVNN1FVRkRka0lzU1VGQlJTeERRVUZETEd0Q1FVRnJRaXh2UkVGQmNVSXNRMEZCUXp0QlFVTXpReXhKUVVGRkxFTkJRVU1zVFVGQlRTeHBRMEZCVXl4RFFVRkRPMEZCUTI1Q0xFbEJRVVVzUTBGQlF5eExRVUZMTEdkRFFVRlJMRU5CUVVNN1FVRkRha0lzU1VGQlJTeERRVUZETEhOQ1FVRnpRaXhwUkVGQmVVSXNRMEZCUXpzN1FVRkZia1FzVTBGQlR5eEZRVUZGTEVOQlFVTTdRMEZEV0RzN1FVRkZSQ3hKUVVGSkxFbEJRVWtzUjBGQlJ5eE5RVUZOTEVWQlFVVXNRMEZCUXp0QlFVTndRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXpzN1FVRkZja0lzYTBOQlFWY3NTVUZCU1N4RFFVRkRMRU5CUVVNN08wRkJSV3BDTEVsQlFVa3NRMEZCUXl4UFFVRlBMSGxEUVVGVkxFTkJRVU03TzBGQlJYWkNMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTTdPM0ZDUVVWU0xFbEJRVWtpTENKbWFXeGxJam9pYUdGdVpHeGxZbUZ5Y3k1cWN5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQnlkVzUwYVcxbElHWnliMjBnSnk0dmFHRnVaR3hsWW1GeWN5NXlkVzUwYVcxbEp6dGNibHh1THk4Z1EyOXRjR2xzWlhJZ2FXMXdiM0owYzF4dWFXMXdiM0owSUVGVFZDQm1jbTl0SUNjdUwyaGhibVJzWldKaGNuTXZZMjl0Y0dsc1pYSXZZWE4wSnp0Y2JtbHRjRzl5ZENCN1hHNGdJSEJoY25ObGNpQmhjeUJRWVhKelpYSXNYRzRnSUhCaGNuTmxMRnh1SUNCd1lYSnpaVmRwZEdodmRYUlFjbTlqWlhOemFXNW5YRzU5SUdaeWIyMGdKeTR2YUdGdVpHeGxZbUZ5Y3k5amIyMXdhV3hsY2k5aVlYTmxKenRjYm1sdGNHOXlkQ0I3SUVOdmJYQnBiR1Z5TENCamIyMXdhV3hsTENCd2NtVmpiMjF3YVd4bElIMGdabkp2YlNBbkxpOW9ZVzVrYkdWaVlYSnpMMk52YlhCcGJHVnlMMk52YlhCcGJHVnlKenRjYm1sdGNHOXlkQ0JLWVhaaFUyTnlhWEIwUTI5dGNHbHNaWElnWm5KdmJTQW5MaTlvWVc1a2JHVmlZWEp6TDJOdmJYQnBiR1Z5TDJwaGRtRnpZM0pwY0hRdFkyOXRjR2xzWlhJbk8xeHVhVzF3YjNKMElGWnBjMmwwYjNJZ1puSnZiU0FuTGk5b1lXNWtiR1ZpWVhKekwyTnZiWEJwYkdWeUwzWnBjMmwwYjNJbk8xeHVYRzVwYlhCdmNuUWdibTlEYjI1bWJHbGpkQ0JtY205dElDY3VMMmhoYm1Sc1pXSmhjbk12Ym04dFkyOXVabXhwWTNRbk8xeHVYRzVzWlhRZ1gyTnlaV0YwWlNBOUlISjFiblJwYldVdVkzSmxZWFJsTzF4dVpuVnVZM1JwYjI0Z1kzSmxZWFJsS0NrZ2UxeHVJQ0JzWlhRZ2FHSWdQU0JmWTNKbFlYUmxLQ2s3WEc1Y2JpQWdhR0l1WTI5dGNHbHNaU0E5SUdaMWJtTjBhVzl1S0dsdWNIVjBMQ0J2Y0hScGIyNXpLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHTnZiWEJwYkdVb2FXNXdkWFFzSUc5d2RHbHZibk1zSUdoaUtUdGNiaUFnZlR0Y2JpQWdhR0l1Y0hKbFkyOXRjR2xzWlNBOUlHWjFibU4wYVc5dUtHbHVjSFYwTENCdmNIUnBiMjV6S1NCN1hHNGdJQ0FnY21WMGRYSnVJSEJ5WldOdmJYQnBiR1VvYVc1d2RYUXNJRzl3ZEdsdmJuTXNJR2hpS1R0Y2JpQWdmVHRjYmx4dUlDQm9ZaTVCVTFRZ1BTQkJVMVE3WEc0Z0lHaGlMa052YlhCcGJHVnlJRDBnUTI5dGNHbHNaWEk3WEc0Z0lHaGlMa3BoZG1GVFkzSnBjSFJEYjIxd2FXeGxjaUE5SUVwaGRtRlRZM0pwY0hSRGIyMXdhV3hsY2p0Y2JpQWdhR0l1VUdGeWMyVnlJRDBnVUdGeWMyVnlPMXh1SUNCb1lpNXdZWEp6WlNBOUlIQmhjbk5sTzF4dUlDQm9ZaTV3WVhKelpWZHBkR2h2ZFhSUWNtOWpaWE56YVc1bklEMGdjR0Z5YzJWWGFYUm9iM1YwVUhKdlkyVnpjMmx1Wnp0Y2JseHVJQ0J5WlhSMWNtNGdhR0k3WEc1OVhHNWNibXhsZENCcGJuTjBJRDBnWTNKbFlYUmxLQ2s3WEc1cGJuTjBMbU55WldGMFpTQTlJR055WldGMFpUdGNibHh1Ym05RGIyNW1iR2xqZENocGJuTjBLVHRjYmx4dWFXNXpkQzVXYVhOcGRHOXlJRDBnVm1semFYUnZjanRjYmx4dWFXNXpkRnNuWkdWbVlYVnNkQ2RkSUQwZ2FXNXpkRHRjYmx4dVpYaHdiM0owSUdSbFptRjFiSFFnYVc1emREdGNiaUpkZlE9PVxuIiwiLyogZXNsaW50LWRpc2FibGUgbmV3LWNhcCAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5wcmludCA9IHByaW50O1xuZXhwb3J0cy5QcmludFZpc2l0b3IgPSBQcmludFZpc2l0b3I7XG4vLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfdmlzaXRvciA9IHJlcXVpcmUoJy4vdmlzaXRvcicpO1xuXG52YXIgX3Zpc2l0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdmlzaXRvcik7XG5cbmZ1bmN0aW9uIHByaW50KGFzdCkge1xuICByZXR1cm4gbmV3IFByaW50VmlzaXRvcigpLmFjY2VwdChhc3QpO1xufVxuXG5mdW5jdGlvbiBQcmludFZpc2l0b3IoKSB7XG4gIHRoaXMucGFkZGluZyA9IDA7XG59XG5cblByaW50VmlzaXRvci5wcm90b3R5cGUgPSBuZXcgX3Zpc2l0b3IyWydkZWZhdWx0J10oKTtcblxuUHJpbnRWaXNpdG9yLnByb3RvdHlwZS5wYWQgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gIHZhciBvdXQgPSAnJztcblxuICBmb3IgKHZhciBpID0gMCwgbCA9IHRoaXMucGFkZGluZzsgaSA8IGw7IGkrKykge1xuICAgIG91dCArPSAnICAnO1xuICB9XG5cbiAgb3V0ICs9IHN0cmluZyArICdcXG4nO1xuICByZXR1cm4gb3V0O1xufTtcblxuUHJpbnRWaXNpdG9yLnByb3RvdHlwZS5Qcm9ncmFtID0gZnVuY3Rpb24gKHByb2dyYW0pIHtcbiAgdmFyIG91dCA9ICcnLFxuICAgICAgYm9keSA9IHByb2dyYW0uYm9keSxcbiAgICAgIGkgPSB1bmRlZmluZWQsXG4gICAgICBsID0gdW5kZWZpbmVkO1xuXG4gIGlmIChwcm9ncmFtLmJsb2NrUGFyYW1zKSB7XG4gICAgdmFyIGJsb2NrUGFyYW1zID0gJ0JMT0NLIFBBUkFNUzogWyc7XG4gICAgZm9yIChpID0gMCwgbCA9IHByb2dyYW0uYmxvY2tQYXJhbXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBibG9ja1BhcmFtcyArPSAnICcgKyBwcm9ncmFtLmJsb2NrUGFyYW1zW2ldO1xuICAgIH1cbiAgICBibG9ja1BhcmFtcyArPSAnIF0nO1xuICAgIG91dCArPSB0aGlzLnBhZChibG9ja1BhcmFtcyk7XG4gIH1cblxuICBmb3IgKGkgPSAwLCBsID0gYm9keS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBvdXQgKz0gdGhpcy5hY2NlcHQoYm9keVtpXSk7XG4gIH1cblxuICB0aGlzLnBhZGRpbmctLTtcblxuICByZXR1cm4gb3V0O1xufTtcblxuUHJpbnRWaXNpdG9yLnByb3RvdHlwZS5NdXN0YWNoZVN0YXRlbWVudCA9IGZ1bmN0aW9uIChtdXN0YWNoZSkge1xuICByZXR1cm4gdGhpcy5wYWQoJ3t7ICcgKyB0aGlzLlN1YkV4cHJlc3Npb24obXVzdGFjaGUpICsgJyB9fScpO1xufTtcblByaW50VmlzaXRvci5wcm90b3R5cGUuRGVjb3JhdG9yID0gZnVuY3Rpb24gKG11c3RhY2hlKSB7XG4gIHJldHVybiB0aGlzLnBhZCgne3sgRElSRUNUSVZFICcgKyB0aGlzLlN1YkV4cHJlc3Npb24obXVzdGFjaGUpICsgJyB9fScpO1xufTtcblxuUHJpbnRWaXNpdG9yLnByb3RvdHlwZS5CbG9ja1N0YXRlbWVudCA9IFByaW50VmlzaXRvci5wcm90b3R5cGUuRGVjb3JhdG9yQmxvY2sgPSBmdW5jdGlvbiAoYmxvY2spIHtcbiAgdmFyIG91dCA9ICcnO1xuXG4gIG91dCArPSB0aGlzLnBhZCgoYmxvY2sudHlwZSA9PT0gJ0RlY29yYXRvckJsb2NrJyA/ICdESVJFQ1RJVkUgJyA6ICcnKSArICdCTE9DSzonKTtcbiAgdGhpcy5wYWRkaW5nKys7XG4gIG91dCArPSB0aGlzLnBhZCh0aGlzLlN1YkV4cHJlc3Npb24oYmxvY2spKTtcbiAgaWYgKGJsb2NrLnByb2dyYW0pIHtcbiAgICBvdXQgKz0gdGhpcy5wYWQoJ1BST0dSQU06Jyk7XG4gICAgdGhpcy5wYWRkaW5nKys7XG4gICAgb3V0ICs9IHRoaXMuYWNjZXB0KGJsb2NrLnByb2dyYW0pO1xuICAgIHRoaXMucGFkZGluZy0tO1xuICB9XG4gIGlmIChibG9jay5pbnZlcnNlKSB7XG4gICAgaWYgKGJsb2NrLnByb2dyYW0pIHtcbiAgICAgIHRoaXMucGFkZGluZysrO1xuICAgIH1cbiAgICBvdXQgKz0gdGhpcy5wYWQoJ3t7Xn19Jyk7XG4gICAgdGhpcy5wYWRkaW5nKys7XG4gICAgb3V0ICs9IHRoaXMuYWNjZXB0KGJsb2NrLmludmVyc2UpO1xuICAgIHRoaXMucGFkZGluZy0tO1xuICAgIGlmIChibG9jay5wcm9ncmFtKSB7XG4gICAgICB0aGlzLnBhZGRpbmctLTtcbiAgICB9XG4gIH1cbiAgdGhpcy5wYWRkaW5nLS07XG5cbiAgcmV0dXJuIG91dDtcbn07XG5cblByaW50VmlzaXRvci5wcm90b3R5cGUuUGFydGlhbFN0YXRlbWVudCA9IGZ1bmN0aW9uIChwYXJ0aWFsKSB7XG4gIHZhciBjb250ZW50ID0gJ1BBUlRJQUw6JyArIHBhcnRpYWwubmFtZS5vcmlnaW5hbDtcbiAgaWYgKHBhcnRpYWwucGFyYW1zWzBdKSB7XG4gICAgY29udGVudCArPSAnICcgKyB0aGlzLmFjY2VwdChwYXJ0aWFsLnBhcmFtc1swXSk7XG4gIH1cbiAgaWYgKHBhcnRpYWwuaGFzaCkge1xuICAgIGNvbnRlbnQgKz0gJyAnICsgdGhpcy5hY2NlcHQocGFydGlhbC5oYXNoKTtcbiAgfVxuICByZXR1cm4gdGhpcy5wYWQoJ3t7PiAnICsgY29udGVudCArICcgfX0nKTtcbn07XG5QcmludFZpc2l0b3IucHJvdG90eXBlLlBhcnRpYWxCbG9ja1N0YXRlbWVudCA9IGZ1bmN0aW9uIChwYXJ0aWFsKSB7XG4gIHZhciBjb250ZW50ID0gJ1BBUlRJQUwgQkxPQ0s6JyArIHBhcnRpYWwubmFtZS5vcmlnaW5hbDtcbiAgaWYgKHBhcnRpYWwucGFyYW1zWzBdKSB7XG4gICAgY29udGVudCArPSAnICcgKyB0aGlzLmFjY2VwdChwYXJ0aWFsLnBhcmFtc1swXSk7XG4gIH1cbiAgaWYgKHBhcnRpYWwuaGFzaCkge1xuICAgIGNvbnRlbnQgKz0gJyAnICsgdGhpcy5hY2NlcHQocGFydGlhbC5oYXNoKTtcbiAgfVxuXG4gIGNvbnRlbnQgKz0gJyAnICsgdGhpcy5wYWQoJ1BST0dSQU06Jyk7XG4gIHRoaXMucGFkZGluZysrO1xuICBjb250ZW50ICs9IHRoaXMuYWNjZXB0KHBhcnRpYWwucHJvZ3JhbSk7XG4gIHRoaXMucGFkZGluZy0tO1xuXG4gIHJldHVybiB0aGlzLnBhZCgne3s+ICcgKyBjb250ZW50ICsgJyB9fScpO1xufTtcblxuUHJpbnRWaXNpdG9yLnByb3RvdHlwZS5Db250ZW50U3RhdGVtZW50ID0gZnVuY3Rpb24gKGNvbnRlbnQpIHtcbiAgcmV0dXJuIHRoaXMucGFkKFwiQ09OVEVOVFsgJ1wiICsgY29udGVudC52YWx1ZSArIFwiJyBdXCIpO1xufTtcblxuUHJpbnRWaXNpdG9yLnByb3RvdHlwZS5Db21tZW50U3RhdGVtZW50ID0gZnVuY3Rpb24gKGNvbW1lbnQpIHtcbiAgcmV0dXJuIHRoaXMucGFkKFwie3shICdcIiArIGNvbW1lbnQudmFsdWUgKyBcIicgfX1cIik7XG59O1xuXG5QcmludFZpc2l0b3IucHJvdG90eXBlLlN1YkV4cHJlc3Npb24gPSBmdW5jdGlvbiAoc2V4cHIpIHtcbiAgdmFyIHBhcmFtcyA9IHNleHByLnBhcmFtcyxcbiAgICAgIHBhcmFtU3RyaW5ncyA9IFtdLFxuICAgICAgaGFzaCA9IHVuZGVmaW5lZDtcblxuICBmb3IgKHZhciBpID0gMCwgbCA9IHBhcmFtcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBwYXJhbVN0cmluZ3MucHVzaCh0aGlzLmFjY2VwdChwYXJhbXNbaV0pKTtcbiAgfVxuXG4gIHBhcmFtcyA9ICdbJyArIHBhcmFtU3RyaW5ncy5qb2luKCcsICcpICsgJ10nO1xuXG4gIGhhc2ggPSBzZXhwci5oYXNoID8gJyAnICsgdGhpcy5hY2NlcHQoc2V4cHIuaGFzaCkgOiAnJztcblxuICByZXR1cm4gdGhpcy5hY2NlcHQoc2V4cHIucGF0aCkgKyAnICcgKyBwYXJhbXMgKyBoYXNoO1xufTtcblxuUHJpbnRWaXNpdG9yLnByb3RvdHlwZS5QYXRoRXhwcmVzc2lvbiA9IGZ1bmN0aW9uIChpZCkge1xuICB2YXIgcGF0aCA9IGlkLnBhcnRzLmpvaW4oJy8nKTtcbiAgcmV0dXJuIChpZC5kYXRhID8gJ0AnIDogJycpICsgJ1BBVEg6JyArIHBhdGg7XG59O1xuXG5QcmludFZpc2l0b3IucHJvdG90eXBlLlN0cmluZ0xpdGVyYWwgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gIHJldHVybiAnXCInICsgc3RyaW5nLnZhbHVlICsgJ1wiJztcbn07XG5cblByaW50VmlzaXRvci5wcm90b3R5cGUuTnVtYmVyTGl0ZXJhbCA9IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgcmV0dXJuICdOVU1CRVJ7JyArIG51bWJlci52YWx1ZSArICd9Jztcbn07XG5cblByaW50VmlzaXRvci5wcm90b3R5cGUuQm9vbGVhbkxpdGVyYWwgPSBmdW5jdGlvbiAoYm9vbCkge1xuICByZXR1cm4gJ0JPT0xFQU57JyArIGJvb2wudmFsdWUgKyAnfSc7XG59O1xuXG5QcmludFZpc2l0b3IucHJvdG90eXBlLlVuZGVmaW5lZExpdGVyYWwgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAnVU5ERUZJTkVEJztcbn07XG5cblByaW50VmlzaXRvci5wcm90b3R5cGUuTnVsbExpdGVyYWwgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAnTlVMTCc7XG59O1xuXG5QcmludFZpc2l0b3IucHJvdG90eXBlLkhhc2ggPSBmdW5jdGlvbiAoaGFzaCkge1xuICB2YXIgcGFpcnMgPSBoYXNoLnBhaXJzLFxuICAgICAgam9pbmVkUGFpcnMgPSBbXTtcblxuICBmb3IgKHZhciBpID0gMCwgbCA9IHBhaXJzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGpvaW5lZFBhaXJzLnB1c2godGhpcy5hY2NlcHQocGFpcnNbaV0pKTtcbiAgfVxuXG4gIHJldHVybiAnSEFTSHsnICsgam9pbmVkUGFpcnMuam9pbignLCAnKSArICd9Jztcbn07XG5QcmludFZpc2l0b3IucHJvdG90eXBlLkhhc2hQYWlyID0gZnVuY3Rpb24gKHBhaXIpIHtcbiAgcmV0dXJuIHBhaXIua2V5ICsgJz0nICsgdGhpcy5hY2NlcHQocGFpci52YWx1ZSk7XG59O1xuLyogZXNsaW50LWVuYWJsZSBuZXctY2FwICovXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDJ4cFlpOW9ZVzVrYkdWaVlYSnpMMk52YlhCcGJHVnlMM0J5YVc1MFpYSXVhbk1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenQxUWtGRGIwSXNWMEZCVnpzN096dEJRVVY0UWl4VFFVRlRMRXRCUVVzc1EwRkJReXhIUVVGSExFVkJRVVU3UVVGRGVrSXNVMEZCVHl4SlFVRkpMRmxCUVZrc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0RFFVTjJRenM3UVVGRlRTeFRRVUZUTEZsQlFWa3NSMEZCUnp0QlFVTTNRaXhOUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEVOQlFVTXNRMEZCUXp0RFFVTnNRanM3UVVGRlJDeFpRVUZaTEVOQlFVTXNVMEZCVXl4SFFVRkhMREJDUVVGaExFTkJRVU03TzBGQlJYWkRMRmxCUVZrc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eEhRVUZITEZWQlFWTXNUVUZCVFN4RlFVRkZPMEZCUXpWRExFMUJRVWtzUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXpzN1FVRkZZaXhQUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8wRkJRelZETEU5QlFVY3NTVUZCU1N4SlFVRkpMRU5CUVVNN1IwRkRZanM3UVVGRlJDeExRVUZITEVsQlFVa3NUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJRenRCUVVOeVFpeFRRVUZQTEVkQlFVY3NRMEZCUXp0RFFVTmFMRU5CUVVNN08wRkJSVVlzV1VGQldTeERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRWRCUVVjc1ZVRkJVeXhQUVVGUExFVkJRVVU3UVVGRGFrUXNUVUZCU1N4SFFVRkhMRWRCUVVjc1JVRkJSVHROUVVOV0xFbEJRVWtzUjBGQlJ5eFBRVUZQTEVOQlFVTXNTVUZCU1R0TlFVTnVRaXhEUVVGRExGbEJRVUU3VFVGRFJDeERRVUZETEZsQlFVRXNRMEZCUXpzN1FVRkZTaXhOUVVGSkxFOUJRVThzUTBGQlF5eFhRVUZYTEVWQlFVVTdRVUZEZGtJc1VVRkJTU3hYUVVGWExFZEJRVWNzYVVKQlFXbENMRU5CUVVNN1FVRkRjRU1zVTBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzBGQlEzUkVMR2xDUVVGWExFbEJRVWtzUjBGQlJ5eEhRVUZITEU5QlFVOHNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UzBGRE4wTTdRVUZEUkN4bFFVRlhMRWxCUVVrc1NVRkJTU3hEUVVGRE8wRkJRM0JDTEU5QlFVY3NTVUZCU1N4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzBkQlF6bENPenRCUVVWRUxFOUJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8wRkJRM1pETEU5QlFVY3NTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGRCUXpkQ096dEJRVVZFTEUxQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenM3UVVGRlppeFRRVUZQTEVkQlFVY3NRMEZCUXp0RFFVTmFMRU5CUVVNN08wRkJSVVlzV1VGQldTeERRVUZETEZOQlFWTXNRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eFZRVUZUTEZGQlFWRXNSVUZCUlR0QlFVTTFSQ3hUUVVGUExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRU5CUVVNN1EwRkRMMFFzUTBGQlF6dEJRVU5HTEZsQlFWa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1UwRkJVeXhIUVVGSExGVkJRVk1zVVVGQlVTeEZRVUZGTzBGQlEzQkVMRk5CUVU4c1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eGxRVUZsTEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNRMEZCUXp0RFFVTjZSU3hEUVVGRE96dEJRVVZHTEZsQlFWa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1kwRkJZeXhIUVVGSExGbEJRVmtzUTBGQlF5eFRRVUZUTEVOQlFVTXNZMEZCWXl4SFFVRkhMRlZCUXpsRkxFdEJRVXNzUlVGRFREdEJRVU5CTEUxQlFVa3NSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJRenM3UVVGRllpeExRVUZITEVsQlFVa3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkRZaXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEV0QlFVc3NaMEpCUVdkQ0xFZEJRVWNzV1VGQldTeEhRVUZITEVWQlFVVXNRMEZCUVN4SFFVRkpMRkZCUVZFc1EwRkRha1VzUTBGQlF6dEJRVU5HTEUxQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRCUVVObUxFdEJRVWNzU1VGQlNTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXpReXhOUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVTdRVUZEYWtJc1QwRkJSeXhKUVVGSkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1FVRkROVUlzVVVGQlNTeERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMEZCUTJZc1QwRkJSeXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wRkJRMnhETEZGQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRIUVVOb1FqdEJRVU5FTEUxQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1JVRkJSVHRCUVVOcVFpeFJRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVN1FVRkRha0lzVlVGQlNTeERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMHRCUTJoQ08wRkJRMFFzVDBGQlJ5eEpRVUZKTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRGVrSXNVVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wRkJRMllzVDBGQlJ5eEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBGQlEyeERMRkZCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dEJRVU5tTEZGQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1JVRkJSVHRCUVVOcVFpeFZRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1MwRkRhRUk3UjBGRFJqdEJRVU5FTEUxQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenM3UVVGRlppeFRRVUZQTEVkQlFVY3NRMEZCUXp0RFFVTmFMRU5CUVVNN08wRkJSVVlzV1VGQldTeERRVUZETEZOQlFWTXNRMEZCUXl4blFrRkJaMElzUjBGQlJ5eFZRVUZUTEU5QlFVOHNSVUZCUlR0QlFVTXhSQ3hOUVVGSkxFOUJRVThzUjBGQlJ5eFZRVUZWTEVkQlFVY3NUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU03UVVGRGFrUXNUVUZCU1N4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTzBGQlEzSkNMRmRCUVU4c1NVRkJTU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdSMEZEYWtRN1FVRkRSQ3hOUVVGSkxFOUJRVThzUTBGQlF5eEpRVUZKTEVWQlFVVTdRVUZEYUVJc1YwRkJUeXhKUVVGSkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEhRVU0xUXp0QlFVTkVMRk5CUVU4c1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVkQlFVY3NUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhEUVVGRE8wTkJRek5ETEVOQlFVTTdRVUZEUml4WlFVRlpMRU5CUVVNc1UwRkJVeXhEUVVGRExIRkNRVUZ4UWl4SFFVRkhMRlZCUVZNc1QwRkJUeXhGUVVGRk8wRkJReTlFTEUxQlFVa3NUMEZCVHl4SFFVRkhMR2RDUVVGblFpeEhRVUZITEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8wRkJRM1pFTEUxQlFVa3NUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJUdEJRVU55UWl4WFFVRlBMRWxCUVVrc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBkQlEycEVPMEZCUTBRc1RVRkJTU3hQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTzBGQlEyaENMRmRCUVU4c1NVRkJTU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03UjBGRE5VTTdPMEZCUlVRc1UwRkJUeXhKUVVGSkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wRkJRM1JETEUxQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRCUVVObUxGTkJRVThzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU40UXl4TlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03TzBGQlJXWXNVMEZCVHl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUjBGQlJ5eFBRVUZQTEVkQlFVY3NTMEZCU3l4RFFVRkRMRU5CUVVNN1EwRkRNME1zUTBGQlF6czdRVUZGUml4WlFVRlpMRU5CUVVNc1UwRkJVeXhEUVVGRExHZENRVUZuUWl4SFFVRkhMRlZCUVZNc1QwRkJUeXhGUVVGRk8wRkJRekZFTEZOQlFVOHNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhaUVVGWkxFZEJRVWNzVDBGQlR5eERRVUZETEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJRenREUVVOMlJDeERRVUZET3p0QlFVVkdMRmxCUVZrc1EwRkJReXhUUVVGVExFTkJRVU1zWjBKQlFXZENMRWRCUVVjc1ZVRkJVeXhQUVVGUExFVkJRVVU3UVVGRE1VUXNVMEZCVHl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUjBGQlJ5eFBRVUZQTEVOQlFVTXNTMEZCU3l4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRE8wTkJRMjVFTEVOQlFVTTdPMEZCUlVZc1dVRkJXU3hEUVVGRExGTkJRVk1zUTBGQlF5eGhRVUZoTEVkQlFVY3NWVUZCVXl4TFFVRkxMRVZCUVVVN1FVRkRja1FzVFVGQlNTeE5RVUZOTEVkQlFVY3NTMEZCU3l4RFFVRkRMRTFCUVUwN1RVRkRka0lzV1VGQldTeEhRVUZITEVWQlFVVTdUVUZEYWtJc1NVRkJTU3haUVVGQkxFTkJRVU03TzBGQlJWQXNUMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEUxQlFVMHNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0QlFVTTNReXhuUWtGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1IwRkRNME03TzBGQlJVUXNVVUZCVFN4SFFVRkhMRWRCUVVjc1IwRkJSeXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJRenM3UVVGRk4wTXNUVUZCU1N4SFFVRkhMRXRCUVVzc1EwRkJReXhKUVVGSkxFZEJRVWNzUjBGQlJ5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXpzN1FVRkZka1FzVTBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVkQlFVY3NUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJRenREUVVOMFJDeERRVUZET3p0QlFVVkdMRmxCUVZrc1EwRkJReXhUUVVGVExFTkJRVU1zWTBGQll5eEhRVUZITEZWQlFWTXNSVUZCUlN4RlFVRkZPMEZCUTI1RUxFMUJRVWtzU1VGQlNTeEhRVUZITEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBGQlF6bENMRk5CUVU4c1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeEhRVUZITEVkQlFVY3NSMEZCUnl4RlFVRkZMRU5CUVVFc1IwRkJTU3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETzBOQlF6bERMRU5CUVVNN08wRkJSVVlzV1VGQldTeERRVUZETEZOQlFWTXNRMEZCUXl4aFFVRmhMRWRCUVVjc1ZVRkJVeXhOUVVGTkxFVkJRVVU3UVVGRGRFUXNVMEZCVHl4SFFVRkhMRWRCUVVjc1RVRkJUU3hEUVVGRExFdEJRVXNzUjBGQlJ5eEhRVUZITEVOQlFVTTdRMEZEYWtNc1EwRkJRenM3UVVGRlJpeFpRVUZaTEVOQlFVTXNVMEZCVXl4RFFVRkRMR0ZCUVdFc1IwRkJSeXhWUVVGVExFMUJRVTBzUlVGQlJUdEJRVU4wUkN4VFFVRlBMRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUzBGQlN5eEhRVUZITEVkQlFVY3NRMEZCUXp0RFFVTjJReXhEUVVGRE96dEJRVVZHTEZsQlFWa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1kwRkJZeXhIUVVGSExGVkJRVk1zU1VGQlNTeEZRVUZGTzBGQlEzSkVMRk5CUVU4c1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NSMEZCUnl4RFFVRkRPME5CUTNSRExFTkJRVU03TzBGQlJVWXNXVUZCV1N4RFFVRkRMRk5CUVZNc1EwRkJReXhuUWtGQlowSXNSMEZCUnl4WlFVRlhPMEZCUTI1RUxGTkJRVThzVjBGQlZ5eERRVUZETzBOQlEzQkNMRU5CUVVNN08wRkJSVVlzV1VGQldTeERRVUZETEZOQlFWTXNRMEZCUXl4WFFVRlhMRWRCUVVjc1dVRkJWenRCUVVNNVF5eFRRVUZQTEUxQlFVMHNRMEZCUXp0RFFVTm1MRU5CUVVNN08wRkJSVVlzV1VGQldTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRWRCUVVjc1ZVRkJVeXhKUVVGSkxFVkJRVVU3UVVGRE0wTXNUVUZCU1N4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXM3VFVGRGNFSXNWMEZCVnl4SFFVRkhMRVZCUVVVc1EwRkJRenM3UVVGRmJrSXNUMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0QlFVTTFReXhsUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SFFVTjZRenM3UVVGRlJDeFRRVUZQTEU5QlFVOHNSMEZCUnl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXp0RFFVTXZReXhEUVVGRE8wRkJRMFlzV1VGQldTeERRVUZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRWRCUVVjc1ZVRkJVeXhKUVVGSkxFVkJRVVU3UVVGREwwTXNVMEZCVHl4SlFVRkpMRU5CUVVNc1IwRkJSeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dERRVU5xUkN4RFFVRkRJaXdpWm1sc1pTSTZJbkJ5YVc1MFpYSXVhbk1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpQmxjMnhwYm5RdFpHbHpZV0pzWlNCdVpYY3RZMkZ3SUNvdlhHNXBiWEJ2Y25RZ1ZtbHphWFJ2Y2lCbWNtOXRJQ2N1TDNacGMybDBiM0luTzF4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NISnBiblFvWVhOMEtTQjdYRzRnSUhKbGRIVnliaUJ1WlhjZ1VISnBiblJXYVhOcGRHOXlLQ2t1WVdOalpYQjBLR0Z6ZENrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJRY21sdWRGWnBjMmwwYjNJb0tTQjdYRzRnSUhSb2FYTXVjR0ZrWkdsdVp5QTlJREE3WEc1OVhHNWNibEJ5YVc1MFZtbHphWFJ2Y2k1d2NtOTBiM1I1Y0dVZ1BTQnVaWGNnVm1semFYUnZjaWdwTzF4dVhHNVFjbWx1ZEZacGMybDBiM0l1Y0hKdmRHOTBlWEJsTG5CaFpDQTlJR1oxYm1OMGFXOXVLSE4wY21sdVp5a2dlMXh1SUNCc1pYUWdiM1YwSUQwZ0p5YzdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREFzSUd3Z1BTQjBhR2x6TG5CaFpHUnBibWM3SUdrZ1BDQnNPeUJwS3lzcElIdGNiaUFnSUNCdmRYUWdLejBnSnlBZ0p6dGNiaUFnZlZ4dVhHNGdJRzkxZENBclBTQnpkSEpwYm1jZ0t5QW5YRnh1Snp0Y2JpQWdjbVYwZFhKdUlHOTFkRHRjYm4wN1hHNWNibEJ5YVc1MFZtbHphWFJ2Y2k1d2NtOTBiM1I1Y0dVdVVISnZaM0poYlNBOUlHWjFibU4wYVc5dUtIQnliMmR5WVcwcElIdGNiaUFnYkdWMElHOTFkQ0E5SUNjbkxGeHVJQ0FnSUdKdlpIa2dQU0J3Y205bmNtRnRMbUp2Wkhrc1hHNGdJQ0FnYVN4Y2JpQWdJQ0JzTzF4dVhHNGdJR2xtSUNod2NtOW5jbUZ0TG1Kc2IyTnJVR0Z5WVcxektTQjdYRzRnSUNBZ2JHVjBJR0pzYjJOclVHRnlZVzF6SUQwZ0owSk1UME5MSUZCQlVrRk5Vem9nV3ljN1hHNGdJQ0FnWm05eUlDaHBJRDBnTUN3Z2JDQTlJSEJ5YjJkeVlXMHVZbXh2WTJ0UVlYSmhiWE11YkdWdVozUm9PeUJwSUR3Z2JEc2dhU3NyS1NCN1hHNGdJQ0FnSUNCaWJHOWphMUJoY21GdGN5QXJQU0FuSUNjZ0t5QndjbTluY21GdExtSnNiMk5yVUdGeVlXMXpXMmxkTzF4dUlDQWdJSDFjYmlBZ0lDQmliRzlqYTFCaGNtRnRjeUFyUFNBbklGMG5PMXh1SUNBZ0lHOTFkQ0FyUFNCMGFHbHpMbkJoWkNoaWJHOWphMUJoY21GdGN5azdYRzRnSUgxY2JseHVJQ0JtYjNJZ0tHa2dQU0F3TENCc0lEMGdZbTlrZVM1c1pXNW5kR2c3SUdrZ1BDQnNPeUJwS3lzcElIdGNiaUFnSUNCdmRYUWdLejBnZEdocGN5NWhZMk5sY0hRb1ltOWtlVnRwWFNrN1hHNGdJSDFjYmx4dUlDQjBhR2x6TG5CaFpHUnBibWN0TFR0Y2JseHVJQ0J5WlhSMWNtNGdiM1YwTzF4dWZUdGNibHh1VUhKcGJuUldhWE5wZEc5eUxuQnliM1J2ZEhsd1pTNU5kWE4wWVdOb1pWTjBZWFJsYldWdWRDQTlJR1oxYm1OMGFXOXVLRzExYzNSaFkyaGxLU0I3WEc0Z0lISmxkSFZ5YmlCMGFHbHpMbkJoWkNnbmUzc2dKeUFySUhSb2FYTXVVM1ZpUlhod2NtVnpjMmx2YmlodGRYTjBZV05vWlNrZ0t5QW5JSDE5SnlrN1hHNTlPMXh1VUhKcGJuUldhWE5wZEc5eUxuQnliM1J2ZEhsd1pTNUVaV052Y21GMGIzSWdQU0JtZFc1amRHbHZiaWh0ZFhOMFlXTm9aU2tnZTF4dUlDQnlaWFIxY200Z2RHaHBjeTV3WVdRb0ozdDdJRVJKVWtWRFZFbFdSU0FuSUNzZ2RHaHBjeTVUZFdKRmVIQnlaWE56YVc5dUtHMTFjM1JoWTJobEtTQXJJQ2NnZlgwbktUdGNibjA3WEc1Y2JsQnlhVzUwVm1semFYUnZjaTV3Y205MGIzUjVjR1V1UW14dlkydFRkR0YwWlcxbGJuUWdQU0JRY21sdWRGWnBjMmwwYjNJdWNISnZkRzkwZVhCbExrUmxZMjl5WVhSdmNrSnNiMk5ySUQwZ1puVnVZM1JwYjI0b1hHNGdJR0pzYjJOclhHNHBJSHRjYmlBZ2JHVjBJRzkxZENBOUlDY25PMXh1WEc0Z0lHOTFkQ0FyUFNCMGFHbHpMbkJoWkNoY2JpQWdJQ0FvWW14dlkyc3VkSGx3WlNBOVBUMGdKMFJsWTI5eVlYUnZja0pzYjJOckp5QS9JQ2RFU1ZKRlExUkpWa1VnSnlBNklDY25LU0FySUNkQ1RFOURTem9uWEc0Z0lDazdYRzRnSUhSb2FYTXVjR0ZrWkdsdVp5c3JPMXh1SUNCdmRYUWdLejBnZEdocGN5NXdZV1FvZEdocGN5NVRkV0pGZUhCeVpYTnphVzl1S0dKc2IyTnJLU2s3WEc0Z0lHbG1JQ2hpYkc5amF5NXdjbTluY21GdEtTQjdYRzRnSUNBZ2IzVjBJQ3M5SUhSb2FYTXVjR0ZrS0NkUVVrOUhVa0ZOT2ljcE8xeHVJQ0FnSUhSb2FYTXVjR0ZrWkdsdVp5c3JPMXh1SUNBZ0lHOTFkQ0FyUFNCMGFHbHpMbUZqWTJWd2RDaGliRzlqYXk1d2NtOW5jbUZ0S1R0Y2JpQWdJQ0IwYUdsekxuQmhaR1JwYm1jdExUdGNiaUFnZlZ4dUlDQnBaaUFvWW14dlkyc3VhVzUyWlhKelpTa2dlMXh1SUNBZ0lHbG1JQ2hpYkc5amF5NXdjbTluY21GdEtTQjdYRzRnSUNBZ0lDQjBhR2x6TG5CaFpHUnBibWNyS3p0Y2JpQWdJQ0I5WEc0Z0lDQWdiM1YwSUNzOUlIUm9hWE11Y0dGa0tDZDdlMTU5ZlNjcE8xeHVJQ0FnSUhSb2FYTXVjR0ZrWkdsdVp5c3JPMXh1SUNBZ0lHOTFkQ0FyUFNCMGFHbHpMbUZqWTJWd2RDaGliRzlqYXk1cGJuWmxjbk5sS1R0Y2JpQWdJQ0IwYUdsekxuQmhaR1JwYm1jdExUdGNiaUFnSUNCcFppQW9ZbXh2WTJzdWNISnZaM0poYlNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV3WVdSa2FXNW5MUzA3WEc0Z0lDQWdmVnh1SUNCOVhHNGdJSFJvYVhNdWNHRmtaR2x1WnkwdE8xeHVYRzRnSUhKbGRIVnliaUJ2ZFhRN1hHNTlPMXh1WEc1UWNtbHVkRlpwYzJsMGIzSXVjSEp2ZEc5MGVYQmxMbEJoY25ScFlXeFRkR0YwWlcxbGJuUWdQU0JtZFc1amRHbHZiaWh3WVhKMGFXRnNLU0I3WEc0Z0lHeGxkQ0JqYjI1MFpXNTBJRDBnSjFCQlVsUkpRVXc2SnlBcklIQmhjblJwWVd3dWJtRnRaUzV2Y21sbmFXNWhiRHRjYmlBZ2FXWWdLSEJoY25ScFlXd3VjR0Z5WVcxeld6QmRLU0I3WEc0Z0lDQWdZMjl1ZEdWdWRDQXJQU0FuSUNjZ0t5QjBhR2x6TG1GalkyVndkQ2h3WVhKMGFXRnNMbkJoY21GdGMxc3dYU2s3WEc0Z0lIMWNiaUFnYVdZZ0tIQmhjblJwWVd3dWFHRnphQ2tnZTF4dUlDQWdJR052Ym5SbGJuUWdLejBnSnlBbklDc2dkR2hwY3k1aFkyTmxjSFFvY0dGeWRHbGhiQzVvWVhOb0tUdGNiaUFnZlZ4dUlDQnlaWFIxY200Z2RHaHBjeTV3WVdRb0ozdDdQaUFuSUNzZ1kyOXVkR1Z1ZENBcklDY2dmWDBuS1R0Y2JuMDdYRzVRY21sdWRGWnBjMmwwYjNJdWNISnZkRzkwZVhCbExsQmhjblJwWVd4Q2JHOWphMU4wWVhSbGJXVnVkQ0E5SUdaMWJtTjBhVzl1S0hCaGNuUnBZV3dwSUh0Y2JpQWdiR1YwSUdOdmJuUmxiblFnUFNBblVFRlNWRWxCVENCQ1RFOURTem9uSUNzZ2NHRnlkR2xoYkM1dVlXMWxMbTl5YVdkcGJtRnNPMXh1SUNCcFppQW9jR0Z5ZEdsaGJDNXdZWEpoYlhOYk1GMHBJSHRjYmlBZ0lDQmpiMjUwWlc1MElDczlJQ2NnSnlBcklIUm9hWE11WVdOalpYQjBLSEJoY25ScFlXd3VjR0Z5WVcxeld6QmRLVHRjYmlBZ2ZWeHVJQ0JwWmlBb2NHRnlkR2xoYkM1b1lYTm9LU0I3WEc0Z0lDQWdZMjl1ZEdWdWRDQXJQU0FuSUNjZ0t5QjBhR2x6TG1GalkyVndkQ2h3WVhKMGFXRnNMbWhoYzJncE8xeHVJQ0I5WEc1Y2JpQWdZMjl1ZEdWdWRDQXJQU0FuSUNjZ0t5QjBhR2x6TG5CaFpDZ25VRkpQUjFKQlRUb25LVHRjYmlBZ2RHaHBjeTV3WVdSa2FXNW5LeXM3WEc0Z0lHTnZiblJsYm5RZ0t6MGdkR2hwY3k1aFkyTmxjSFFvY0dGeWRHbGhiQzV3Y205bmNtRnRLVHRjYmlBZ2RHaHBjeTV3WVdSa2FXNW5MUzA3WEc1Y2JpQWdjbVYwZFhKdUlIUm9hWE11Y0dGa0tDZDdlejRnSnlBcklHTnZiblJsYm5RZ0t5QW5JSDE5SnlrN1hHNTlPMXh1WEc1UWNtbHVkRlpwYzJsMGIzSXVjSEp2ZEc5MGVYQmxMa052Ym5SbGJuUlRkR0YwWlcxbGJuUWdQU0JtZFc1amRHbHZiaWhqYjI1MFpXNTBLU0I3WEc0Z0lISmxkSFZ5YmlCMGFHbHpMbkJoWkNoY0lrTlBUbFJGVGxSYklDZGNJaUFySUdOdmJuUmxiblF1ZG1Gc2RXVWdLeUJjSWljZ1hWd2lLVHRjYm4wN1hHNWNibEJ5YVc1MFZtbHphWFJ2Y2k1d2NtOTBiM1I1Y0dVdVEyOXRiV1Z1ZEZOMFlYUmxiV1Z1ZENBOUlHWjFibU4wYVc5dUtHTnZiVzFsYm5RcElIdGNiaUFnY21WMGRYSnVJSFJvYVhNdWNHRmtLRndpZTNzaElDZGNJaUFySUdOdmJXMWxiblF1ZG1Gc2RXVWdLeUJjSWljZ2ZYMWNJaWs3WEc1OU8xeHVYRzVRY21sdWRGWnBjMmwwYjNJdWNISnZkRzkwZVhCbExsTjFZa1Y0Y0hKbGMzTnBiMjRnUFNCbWRXNWpkR2x2YmloelpYaHdjaWtnZTF4dUlDQnNaWFFnY0dGeVlXMXpJRDBnYzJWNGNISXVjR0Z5WVcxekxGeHVJQ0FnSUhCaGNtRnRVM1J5YVc1bmN5QTlJRnRkTEZ4dUlDQWdJR2hoYzJnN1hHNWNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQXNJR3dnUFNCd1lYSmhiWE11YkdWdVozUm9PeUJwSUR3Z2JEc2dhU3NyS1NCN1hHNGdJQ0FnY0dGeVlXMVRkSEpwYm1kekxuQjFjMmdvZEdocGN5NWhZMk5sY0hRb2NHRnlZVzF6VzJsZEtTazdYRzRnSUgxY2JseHVJQ0J3WVhKaGJYTWdQU0FuV3ljZ0t5QndZWEpoYlZOMGNtbHVaM011YW05cGJpZ25MQ0FuS1NBcklDZGRKenRjYmx4dUlDQm9ZWE5vSUQwZ2MyVjRjSEl1YUdGemFDQS9JQ2NnSnlBcklIUm9hWE11WVdOalpYQjBLSE5sZUhCeUxtaGhjMmdwSURvZ0p5YzdYRzVjYmlBZ2NtVjBkWEp1SUhSb2FYTXVZV05qWlhCMEtITmxlSEJ5TG5CaGRHZ3BJQ3NnSnlBbklDc2djR0Z5WVcxeklDc2dhR0Z6YUR0Y2JuMDdYRzVjYmxCeWFXNTBWbWx6YVhSdmNpNXdjbTkwYjNSNWNHVXVVR0YwYUVWNGNISmxjM05wYjI0Z1BTQm1kVzVqZEdsdmJpaHBaQ2tnZTF4dUlDQnNaWFFnY0dGMGFDQTlJR2xrTG5CaGNuUnpMbXB2YVc0b0p5OG5LVHRjYmlBZ2NtVjBkWEp1SUNocFpDNWtZWFJoSUQ4Z0owQW5JRG9nSnljcElDc2dKMUJCVkVnNkp5QXJJSEJoZEdnN1hHNTlPMXh1WEc1UWNtbHVkRlpwYzJsMGIzSXVjSEp2ZEc5MGVYQmxMbE4wY21sdVoweHBkR1Z5WVd3Z1BTQm1kVzVqZEdsdmJpaHpkSEpwYm1jcElIdGNiaUFnY21WMGRYSnVJQ2RjSWljZ0t5QnpkSEpwYm1jdWRtRnNkV1VnS3lBblhDSW5PMXh1ZlR0Y2JseHVVSEpwYm5SV2FYTnBkRzl5TG5CeWIzUnZkSGx3WlM1T2RXMWlaWEpNYVhSbGNtRnNJRDBnWm5WdVkzUnBiMjRvYm5WdFltVnlLU0I3WEc0Z0lISmxkSFZ5YmlBblRsVk5Ra1ZTZXljZ0t5QnVkVzFpWlhJdWRtRnNkV1VnS3lBbmZTYzdYRzU5TzF4dVhHNVFjbWx1ZEZacGMybDBiM0l1Y0hKdmRHOTBlWEJsTGtKdmIyeGxZVzVNYVhSbGNtRnNJRDBnWm5WdVkzUnBiMjRvWW05dmJDa2dlMXh1SUNCeVpYUjFjbTRnSjBKUFQweEZRVTU3SnlBcklHSnZiMnd1ZG1Gc2RXVWdLeUFuZlNjN1hHNTlPMXh1WEc1UWNtbHVkRlpwYzJsMGIzSXVjSEp2ZEc5MGVYQmxMbFZ1WkdWbWFXNWxaRXhwZEdWeVlXd2dQU0JtZFc1amRHbHZiaWdwSUh0Y2JpQWdjbVYwZFhKdUlDZFZUa1JGUmtsT1JVUW5PMXh1ZlR0Y2JseHVVSEpwYm5SV2FYTnBkRzl5TG5CeWIzUnZkSGx3WlM1T2RXeHNUR2wwWlhKaGJDQTlJR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQnlaWFIxY200Z0owNVZURXduTzF4dWZUdGNibHh1VUhKcGJuUldhWE5wZEc5eUxuQnliM1J2ZEhsd1pTNUlZWE5vSUQwZ1puVnVZM1JwYjI0b2FHRnphQ2tnZTF4dUlDQnNaWFFnY0dGcGNuTWdQU0JvWVhOb0xuQmhhWEp6TEZ4dUlDQWdJR3B2YVc1bFpGQmhhWEp6SUQwZ1cxMDdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREFzSUd3Z1BTQndZV2x5Y3k1c1pXNW5kR2c3SUdrZ1BDQnNPeUJwS3lzcElIdGNiaUFnSUNCcWIybHVaV1JRWVdseWN5NXdkWE5vS0hSb2FYTXVZV05qWlhCMEtIQmhhWEp6VzJsZEtTazdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdKMGhCVTBoN0p5QXJJR3B2YVc1bFpGQmhhWEp6TG1wdmFXNG9KeXdnSnlrZ0t5QW5mU2M3WEc1OU8xeHVVSEpwYm5SV2FYTnBkRzl5TG5CeWIzUnZkSGx3WlM1SVlYTm9VR0ZwY2lBOUlHWjFibU4wYVc5dUtIQmhhWElwSUh0Y2JpQWdjbVYwZFhKdUlIQmhhWEl1YTJWNUlDc2dKejBuSUNzZ2RHaHBjeTVoWTJObGNIUW9jR0ZwY2k1MllXeDFaU2s3WEc1OU8xeHVMeW9nWlhOc2FXNTBMV1Z1WVdKc1pTQnVaWGN0WTJGd0lDb3ZYRzRpWFgwPVxuIiwiLy8gVVNBR0U6XG4vLyB2YXIgaGFuZGxlYmFycyA9IHJlcXVpcmUoJ2hhbmRsZWJhcnMnKTtcbi8qIGVzbGludC1kaXNhYmxlIG5vLXZhciAqL1xuXG4vLyB2YXIgbG9jYWwgPSBoYW5kbGViYXJzLmNyZWF0ZSgpO1xuXG52YXIgaGFuZGxlYmFycyA9IHJlcXVpcmUoJy4uL2Rpc3QvY2pzL2hhbmRsZWJhcnMnKVsnZGVmYXVsdCddO1xuXG52YXIgcHJpbnRlciA9IHJlcXVpcmUoJy4uL2Rpc3QvY2pzL2hhbmRsZWJhcnMvY29tcGlsZXIvcHJpbnRlcicpO1xuaGFuZGxlYmFycy5QcmludFZpc2l0b3IgPSBwcmludGVyLlByaW50VmlzaXRvcjtcbmhhbmRsZWJhcnMucHJpbnQgPSBwcmludGVyLnByaW50O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGhhbmRsZWJhcnM7XG5cbi8vIFB1Ymxpc2ggYSBOb2RlLmpzIHJlcXVpcmUoKSBoYW5kbGVyIGZvciAuaGFuZGxlYmFycyBhbmQgLmhicyBmaWxlc1xuZnVuY3Rpb24gZXh0ZW5zaW9uKG1vZHVsZSwgZmlsZW5hbWUpIHtcbiAgdmFyIGZzID0gcmVxdWlyZSgnZnMnKTtcbiAgdmFyIHRlbXBsYXRlU3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGZpbGVuYW1lLCAndXRmOCcpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGhhbmRsZWJhcnMuY29tcGlsZSh0ZW1wbGF0ZVN0cmluZyk7XG59XG4vKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuaWYgKHR5cGVvZiByZXF1aXJlICE9PSAndW5kZWZpbmVkJyAmJiByZXF1aXJlLmV4dGVuc2lvbnMpIHtcbiAgcmVxdWlyZS5leHRlbnNpb25zWycuaGFuZGxlYmFycyddID0gZXh0ZW5zaW9uO1xuICByZXF1aXJlLmV4dGVuc2lvbnNbJy5oYnMnXSA9IGV4dGVuc2lvbjtcbn1cbiIsIi8qKlxuICogRGVmaW5lcyBhbiBldmVudCBtYW5hZ2VyIGZvciB0aGUgY2l0YXRpb25zIHBsdWdpbi5cbiAqL1xuXG5pbXBvcnQgeyBFdmVudHMsIEV2ZW50UmVmIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDaXRhdGlvbkV2ZW50cyBleHRlbmRzIEV2ZW50cyB7XG4gIG9uKG5hbWU6ICdsaWJyYXJ5LWxvYWQtc3RhcnQnLCBjYWxsYmFjazogKCkgPT4gYW55LCBjdHg/OiBhbnkpOiBFdmVudFJlZjtcbiAgb24obmFtZTogJ2xpYnJhcnktbG9hZC1jb21wbGV0ZScsIGNhbGxiYWNrOiAoKSA9PiBhbnksIGN0eD86IGFueSk6IEV2ZW50UmVmO1xuICBvbihuYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiAoLi4uZGF0YTogYW55W10pID0+IGFueSwgY3R4PzogYW55KTogRXZlbnRSZWYge1xuICAgIHJldHVybiBzdXBlci5vbihuYW1lLCBjYWxsYmFjaywgY3R4KTtcbiAgfVxuXG4gIHRyaWdnZXIobmFtZTogJ2xpYnJhcnktbG9hZC1zdGFydCcpOiB2b2lkO1xuICB0cmlnZ2VyKG5hbWU6ICdsaWJyYXJ5LWxvYWQtY29tcGxldGUnKTogdm9pZDtcbiAgdHJpZ2dlcihuYW1lOiBzdHJpbmcsIC4uLmRhdGE6IGFueVtdKTogdm9pZCB7XG4gICAgc3VwZXIudHJpZ2dlcihuYW1lLCBkYXRhKTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgQXBwLFxuICBFdmVudFJlZixcbiAgRnV6enlNYXRjaCxcbiAgRnV6enlTdWdnZXN0TW9kYWwsXG4gIE5vdGljZSxcbiAgcmVuZGVyTWF0Y2hlcyxcbiAgU2VhcmNoTWF0Y2hlcyxcbiAgU2VhcmNoTWF0Y2hQYXJ0LFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgQ2l0YXRpb25QbHVnaW4gZnJvbSAnLi9tYWluJztcbmltcG9ydCB7IEVudHJ5IH0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIFN0dWIgc29tZSBtZXRob2RzIHdlIGtub3cgYXJlIHRoZXJlLi5cbmludGVyZmFjZSBGdXp6eVN1Z2dlc3RNb2RhbEV4dDxUPiBleHRlbmRzIEZ1enp5U3VnZ2VzdE1vZGFsPFQ+IHtcbiAgY2hvb3NlcjogQ2hvb3NlckV4dDtcbn1cbmludGVyZmFjZSBDaG9vc2VyRXh0IHtcbiAgdXNlU2VsZWN0ZWRJdGVtKGV2dDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkO1xufVxuXG5jbGFzcyBTZWFyY2hNb2RhbCBleHRlbmRzIEZ1enp5U3VnZ2VzdE1vZGFsPEVudHJ5PiB7XG4gIHBsdWdpbjogQ2l0YXRpb25QbHVnaW47XG4gIGxpbWl0ID0gNTA7XG5cbiAgbG9hZGluZ0VsOiBIVE1MRWxlbWVudDtcblxuICBldmVudFJlZnM6IEV2ZW50UmVmW107XG5cbiAgY29uc3RydWN0b3IoYXBwOiBBcHAsIHBsdWdpbjogQ2l0YXRpb25QbHVnaW4pIHtcbiAgICBzdXBlcihhcHApO1xuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xuXG4gICAgdGhpcy5yZXN1bHRDb250YWluZXJFbC5hZGRDbGFzcygnem90ZXJvTW9kYWxSZXN1bHRzJyk7XG5cbiAgICB0aGlzLmlucHV0RWwuc2V0QXR0cmlidXRlKCdzcGVsbGNoZWNrJywgJ2ZhbHNlJyk7XG5cbiAgICB0aGlzLmxvYWRpbmdFbCA9IHRoaXMucmVzdWx0Q29udGFpbmVyRWwucGFyZW50RWxlbWVudC5jcmVhdGVFbCgnZGl2Jywge1xuICAgICAgY2xzOiAnem90ZXJvTW9kYWxMb2FkaW5nJyxcbiAgICB9KTtcbiAgICB0aGlzLmxvYWRpbmdFbC5jcmVhdGVFbCgnZGl2JywgeyBjbHM6ICd6b3Rlcm9Nb2RhbExvYWRpbmdBbmltYXRpb24nIH0pO1xuICAgIHRoaXMubG9hZGluZ0VsLmNyZWF0ZUVsKCdwJywge1xuICAgICAgdGV4dDogJ0xvYWRpbmcgY2l0YXRpb24gZGF0YWJhc2UuIFBsZWFzZSB3YWl0Li4uJyxcbiAgICB9KTtcbiAgfVxuXG4gIG9uT3BlbigpIHtcbiAgICBzdXBlci5vbk9wZW4oKTtcblxuICAgIHRoaXMuZXZlbnRSZWZzID0gW1xuICAgICAgdGhpcy5wbHVnaW4uZXZlbnRzLm9uKCdsaWJyYXJ5LWxvYWQtc3RhcnQnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgIH0pLFxuXG4gICAgICB0aGlzLnBsdWdpbi5ldmVudHMub24oJ2xpYnJhcnktbG9hZC1jb21wbGV0ZScsICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH0pLFxuICAgIF07XG5cbiAgICB0aGlzLnNldExvYWRpbmcodGhpcy5wbHVnaW4uaXNMaWJyYXJ5TG9hZGluZyk7XG5cbiAgICAvLyBEb24ndCBpbW1lZGlhdGVseSByZWdpc3RlciBrZXlldmVudCBsaXN0ZW5lcnMuIElmIHRoZSBtb2RhbCB3YXMgdHJpZ2dlcmVkXG4gICAgLy8gYnkgYW4gXCJFbnRlclwiIGtleXN0cm9rZSAoZS5nLiB2aWEgdGhlIE9ic2lkaWFuIGNvbW1hbmQgZGlhbG9nKSwgdGhpcyBldmVudFxuICAgIC8vIHdpbGwgYmUgcmVjZWl2ZWQgaGVyZSBlcnJvbmVvdXNseS5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2KSA9PiB0aGlzLm9uSW5wdXRLZXlkb3duKGV2KSk7XG4gICAgICB0aGlzLmlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoZXYpID0+IHRoaXMub25JbnB1dEtleXVwKGV2KSk7XG4gICAgfSwgMjAwKTtcbiAgfVxuXG4gIG9uQ2xvc2UoKSB7XG4gICAgdGhpcy5ldmVudFJlZnM/LmZvckVhY2goKGUpID0+IHRoaXMucGx1Z2luLmV2ZW50cy5vZmZyZWYoZSkpO1xuICB9XG5cbiAgZ2V0SXRlbXMoKTogRW50cnlbXSB7XG4gICAgaWYgKHRoaXMucGx1Z2luLmlzTGlicmFyeUxvYWRpbmcpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLnBsdWdpbi5saWJyYXJ5LmVudHJpZXMpO1xuICB9XG5cbiAgZ2V0SXRlbVRleHQoaXRlbTogRW50cnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtpdGVtLnRpdGxlfSAke2l0ZW0uYXV0aG9yU3RyaW5nfSAke2l0ZW0ueWVhcn1gO1xuICB9XG5cbiAgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGxvYWRpbmcpIHtcbiAgICAgIHRoaXMubG9hZGluZ0VsLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTtcbiAgICAgIHRoaXMuaW5wdXRFbC5kaXNhYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLnJlc3VsdENvbnRhaW5lckVsLmVtcHR5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZGluZ0VsLmFkZENsYXNzKCdkLW5vbmUnKTtcbiAgICAgIHRoaXMuaW5wdXRFbC5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pbnB1dEVsLmZvY3VzKCk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmU6IG5vdCBleHBvc2VkIGluIEFQSS5cbiAgICAgIHRoaXMudXBkYXRlU3VnZ2VzdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIG9uQ2hvb3NlSXRlbShpdGVtOiBFbnRyeSwgZXZ0OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMucGx1Z2luLm9wZW5MaXRlcmF0dXJlTm90ZShpdGVtLmlkLCBmYWxzZSkuY2F0Y2goY29uc29sZS5lcnJvcik7XG4gIH1cblxuICByZW5kZXJTdWdnZXN0aW9uKG1hdGNoOiBGdXp6eU1hdGNoPEVudHJ5PiwgZWw6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgZWwuZW1wdHkoKTtcbiAgICBjb25zdCBlbnRyeSA9IG1hdGNoLml0ZW07XG4gICAgY29uc3QgZW50cnlUaXRsZSA9IGVudHJ5LnRpdGxlIHx8ICcnO1xuXG4gICAgY29uc3QgY29udGFpbmVyID0gZWwuY3JlYXRlRWwoJ2RpdicsIHsgY2xzOiAnem90ZXJvUmVzdWx0JyB9KTtcbiAgICBjb25zdCB0aXRsZUVsID0gY29udGFpbmVyLmNyZWF0ZUVsKCdzcGFuJywge1xuICAgICAgY2xzOiAnem90ZXJvVGl0bGUnLFxuICAgIH0pO1xuICAgIGNvbnRhaW5lci5jcmVhdGVFbCgnc3BhbicsIHsgY2xzOiAnem90ZXJvQ2l0ZWtleScsIHRleHQ6IGVudHJ5LmlkIH0pO1xuXG4gICAgY29uc3QgYXV0aG9yc0NscyA9IGVudHJ5LmF1dGhvclN0cmluZ1xuICAgICAgPyAnem90ZXJvQXV0aG9ycydcbiAgICAgIDogJ3pvdGVyb0F1dGhvcnMgem90ZXJvQXV0aG9yc0VtcHR5JztcbiAgICBjb25zdCBhdXRob3JzRWwgPSBjb250YWluZXIuY3JlYXRlRWwoJ3NwYW4nLCB7XG4gICAgICBjbHM6IGF1dGhvcnNDbHMsXG4gICAgfSk7XG5cbiAgICAvLyBQcmVwYXJlIHRvIGhpZ2hsaWdodCBzdHJpbmcgbWF0Y2hlcyBmb3IgZWFjaCBwYXJ0IG9mIHRoZSBzZWFyY2ggaXRlbS5cbiAgICAvLyBDb21wdXRlIG9mZnNldHMgb2YgZWFjaCByZW5kZXJlZCBlbGVtZW50J3MgY29udGVudCB3aXRoaW4gdGhlIHN0cmluZ1xuICAgIC8vIHJldHVybmVkIGJ5IGBnZXRJdGVtVGV4dGAuXG4gICAgY29uc3QgYWxsTWF0Y2hlcyA9IG1hdGNoLm1hdGNoLm1hdGNoZXM7XG4gICAgY29uc3QgYXV0aG9yU3RyaW5nT2Zmc2V0ID0gMSArIGVudHJ5VGl0bGUubGVuZ3RoO1xuXG4gICAgLy8gRmlsdGVyIGEgbWF0Y2ggbGlzdCB0byBjb250YWluIG9ubHkgdGhlIHJlbGV2YW50IG1hdGNoZXMgZm9yIGEgZ2l2ZW5cbiAgICAvLyBzdWJzdHJpbmcsIGFuZCB3aXRoIG1hdGNoIGluZGljZXMgc2hpZnRlZCByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhhdFxuICAgIC8vIHN1YnN0cmluZ1xuICAgIGNvbnN0IHNoaWZ0TWF0Y2hlcyA9IChcbiAgICAgIG1hdGNoZXM6IFNlYXJjaE1hdGNoZXMsXG4gICAgICBzdGFydDogbnVtYmVyLFxuICAgICAgZW5kOiBudW1iZXIsXG4gICAgKSA9PiB7XG4gICAgICByZXR1cm4gbWF0Y2hlc1xuICAgICAgICAubWFwKChtYXRjaDogU2VhcmNoTWF0Y2hQYXJ0KSA9PiB7XG4gICAgICAgICAgY29uc3QgW21hdGNoU3RhcnQsIG1hdGNoRW5kXSA9IG1hdGNoO1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBtYXRjaFN0YXJ0IC0gc3RhcnQsXG4gICAgICAgICAgICBNYXRoLm1pbihtYXRjaEVuZCAtIHN0YXJ0LCBlbmQpLFxuICAgICAgICAgIF0gYXMgU2VhcmNoTWF0Y2hQYXJ0O1xuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKChtYXRjaDogU2VhcmNoTWF0Y2hQYXJ0KSA9PiB7XG4gICAgICAgICAgY29uc3QgW21hdGNoU3RhcnQsIG1hdGNoRW5kXSA9IG1hdGNoO1xuICAgICAgICAgIHJldHVybiBtYXRjaFN0YXJ0ID49IDA7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvLyBOb3cgaGlnaGxpZ2h0IG1hdGNoZWQgc3RyaW5ncyB3aXRoaW4gZWFjaCBlbGVtZW50XG4gICAgcmVuZGVyTWF0Y2hlcyhcbiAgICAgIHRpdGxlRWwsXG4gICAgICBlbnRyeVRpdGxlLFxuICAgICAgc2hpZnRNYXRjaGVzKGFsbE1hdGNoZXMsIDAsIGVudHJ5VGl0bGUubGVuZ3RoKSxcbiAgICApO1xuICAgIGlmIChlbnRyeS5hdXRob3JTdHJpbmcpIHtcbiAgICAgIHJlbmRlck1hdGNoZXMoXG4gICAgICAgIGF1dGhvcnNFbCxcbiAgICAgICAgZW50cnkuYXV0aG9yU3RyaW5nLFxuICAgICAgICBzaGlmdE1hdGNoZXMoXG4gICAgICAgICAgYWxsTWF0Y2hlcyxcbiAgICAgICAgICBhdXRob3JTdHJpbmdPZmZzZXQsXG4gICAgICAgICAgYXV0aG9yU3RyaW5nT2Zmc2V0ICsgZW50cnkuYXV0aG9yU3RyaW5nLmxlbmd0aCxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEtleWRvd24oZXY6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXYua2V5ID09ICdUYWInKSB7XG4gICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXRLZXl1cChldjogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldi5rZXkgPT0gJ0VudGVyJyB8fCBldi5rZXkgPT0gJ1RhYicpIHtcbiAgICAgICgodGhpcyBhcyB1bmtub3duKSBhcyBGdXp6eVN1Z2dlc3RNb2RhbEV4dDxFbnRyeT4pLmNob29zZXIudXNlU2VsZWN0ZWRJdGVtKFxuICAgICAgICBldixcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPcGVuTm90ZU1vZGFsIGV4dGVuZHMgU2VhcmNoTW9kYWwge1xuICBjb25zdHJ1Y3RvcihhcHA6IEFwcCwgcGx1Z2luOiBDaXRhdGlvblBsdWdpbikge1xuICAgIHN1cGVyKGFwcCwgcGx1Z2luKTtcblxuICAgIHRoaXMuc2V0SW5zdHJ1Y3Rpb25zKFtcbiAgICAgIHsgY29tbWFuZDogJ+KGkeKGkycsIHB1cnBvc2U6ICd0byBuYXZpZ2F0ZScgfSxcbiAgICAgIHsgY29tbWFuZDogJ+KGtScsIHB1cnBvc2U6ICd0byBvcGVuIGxpdGVyYXR1cmUgbm90ZScgfSxcbiAgICAgIHsgY29tbWFuZDogJ2N0cmwg4oa1JywgcHVycG9zZTogJ3RvIG9wZW4gbGl0ZXJhdHVyZSBub3RlIGluIGEgbmV3IHBhbmUnIH0sXG4gICAgICB7IGNvbW1hbmQ6ICd0YWInLCBwdXJwb3NlOiAnb3BlbiBpbiBab3Rlcm8nIH0sXG4gICAgICB7IGNvbW1hbmQ6ICdzaGlmdCB0YWInLCBwdXJwb3NlOiAnb3BlbiBQREYnIH0sXG4gICAgICB7IGNvbW1hbmQ6ICdlc2MnLCBwdXJwb3NlOiAndG8gZGlzbWlzcycgfSxcbiAgICBdKTtcbiAgfVxuXG4gIG9uQ2hvb3NlSXRlbShpdGVtOiBFbnRyeSwgZXZ0OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50IHx8IGV2dC5rZXkgPT0gJ0VudGVyJykge1xuICAgICAgY29uc3QgbmV3UGFuZSA9XG4gICAgICAgIGV2dCBpbnN0YW5jZW9mIEtleWJvYXJkRXZlbnQgJiYgKGV2dCBhcyBLZXlib2FyZEV2ZW50KS5jdHJsS2V5O1xuICAgICAgdGhpcy5wbHVnaW4ub3BlbkxpdGVyYXR1cmVOb3RlKGl0ZW0uaWQsIG5ld1BhbmUpO1xuICAgIH0gZWxzZSBpZiAoZXZ0LmtleSA9PSAnVGFiJykge1xuICAgICAgaWYgKGV2dC5zaGlmdEtleSkge1xuICAgICAgICBjb25zdCBmaWxlcyA9IGl0ZW0uZmlsZXMgfHwgW107XG4gICAgICAgIGNvbnN0IHBkZlBhdGhzID0gZmlsZXMuZmlsdGVyKChwYXRoKSA9PlxuICAgICAgICAgIHBhdGgudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgncGRmJyksXG4gICAgICAgICk7XG4gICAgICAgIGlmIChwZGZQYXRocy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgIG5ldyBOb3RpY2UoJ1RoaXMgcmVmZXJlbmNlIGhhcyBubyBhc3NvY2lhdGVkIFBERiBmaWxlcy4nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvcGVuKGBmaWxlOi8vJHtwZGZQYXRoc1swXX1gKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3BlbihpdGVtLnpvdGVyb1NlbGVjdFVSSSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnNlcnROb3RlTGlua01vZGFsIGV4dGVuZHMgU2VhcmNoTW9kYWwge1xuICBjb25zdHJ1Y3RvcihhcHA6IEFwcCwgcGx1Z2luOiBDaXRhdGlvblBsdWdpbikge1xuICAgIHN1cGVyKGFwcCwgcGx1Z2luKTtcblxuICAgIHRoaXMuc2V0SW5zdHJ1Y3Rpb25zKFtcbiAgICAgIHsgY29tbWFuZDogJ+KGkeKGkycsIHB1cnBvc2U6ICd0byBuYXZpZ2F0ZScgfSxcbiAgICAgIHsgY29tbWFuZDogJ+KGtScsIHB1cnBvc2U6ICd0byBpbnNlcnQgbGl0ZXJhdHVyZSBub3RlIHJlZmVyZW5jZScgfSxcbiAgICAgIHsgY29tbWFuZDogJ2VzYycsIHB1cnBvc2U6ICd0byBkaXNtaXNzJyB9LFxuICAgIF0pO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBvbkNob29zZUl0ZW0oaXRlbTogRW50cnksIGV2dDogdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMucGx1Z2luLmluc2VydExpdGVyYXR1cmVOb3RlTGluayhpdGVtLmlkKS5jYXRjaChjb25zb2xlLmVycm9yKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW5zZXJ0Tm90ZUNvbnRlbnRNb2RhbCBleHRlbmRzIFNlYXJjaE1vZGFsIHtcbiAgY29uc3RydWN0b3IoYXBwOiBBcHAsIHBsdWdpbjogQ2l0YXRpb25QbHVnaW4pIHtcbiAgICBzdXBlcihhcHAsIHBsdWdpbik7XG5cbiAgICB0aGlzLnNldEluc3RydWN0aW9ucyhbXG4gICAgICB7IGNvbW1hbmQ6ICfihpHihpMnLCBwdXJwb3NlOiAndG8gbmF2aWdhdGUnIH0sXG4gICAgICB7XG4gICAgICAgIGNvbW1hbmQ6ICfihrUnLFxuICAgICAgICBwdXJwb3NlOiAndG8gaW5zZXJ0IGxpdGVyYXR1cmUgbm90ZSBjb250ZW50IGluIGFjdGl2ZSBwYW5lJyxcbiAgICAgIH0sXG4gICAgICB7IGNvbW1hbmQ6ICdlc2MnLCBwdXJwb3NlOiAndG8gZGlzbWlzcycgfSxcbiAgICBdKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgb25DaG9vc2VJdGVtKGl0ZW06IEVudHJ5LCBldnQ6IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLnBsdWdpbi5pbnNlcnRMaXRlcmF0dXJlTm90ZUNvbnRlbnQoaXRlbS5pZCkuY2F0Y2goY29uc29sZS5lcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluc2VydENpdGF0aW9uTW9kYWwgZXh0ZW5kcyBTZWFyY2hNb2RhbCB7XG4gIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwbHVnaW46IENpdGF0aW9uUGx1Z2luKSB7XG4gICAgc3VwZXIoYXBwLCBwbHVnaW4pO1xuXG4gICAgdGhpcy5zZXRJbnN0cnVjdGlvbnMoW1xuICAgICAgeyBjb21tYW5kOiAn4oaR4oaTJywgcHVycG9zZTogJ3RvIG5hdmlnYXRlJyB9LFxuICAgICAgeyBjb21tYW5kOiAn4oa1JywgcHVycG9zZTogJ3RvIGluc2VydCBNYXJrZG93biBjaXRhdGlvbicgfSxcbiAgICAgIHsgY29tbWFuZDogJ3NoaWZ0IOKGtScsIHB1cnBvc2U6ICd0byBpbnNlcnQgc2Vjb25kYXJ5IE1hcmtkb3duIGNpdGF0aW9uJyB9LFxuICAgICAgeyBjb21tYW5kOiAnZXNjJywgcHVycG9zZTogJ3RvIGRpc21pc3MnIH0sXG4gICAgXSk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIG9uQ2hvb3NlSXRlbShpdGVtOiBFbnRyeSwgZXZ0OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlzQWx0ZXJuYXRpdmUgPSBldnQgaW5zdGFuY2VvZiBLZXlib2FyZEV2ZW50ICYmIGV2dC5zaGlmdEtleTtcbiAgICB0aGlzLnBsdWdpblxuICAgICAgLmluc2VydE1hcmtkb3duQ2l0YXRpb24oaXRlbS5pZCwgaXNBbHRlcm5hdGl2ZSlcbiAgICAgIC5jYXRjaChjb25zb2xlLmVycm9yKTtcbiAgfVxufVxuIiwiLypcbiAqIEdlbmVyYXRlZCBieSBQRUcuanMgMC4xMC4wLlxuICpcbiAqIGh0dHA6Ly9wZWdqcy5vcmcvXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIHBlZyRzdWJjbGFzcyhjaGlsZCwgcGFyZW50KSB7XG4gIGZ1bmN0aW9uIGN0b3IoKSB7IHRoaXMuY29uc3RydWN0b3IgPSBjaGlsZDsgfVxuICBjdG9yLnByb3RvdHlwZSA9IHBhcmVudC5wcm90b3R5cGU7XG4gIGNoaWxkLnByb3RvdHlwZSA9IG5ldyBjdG9yKCk7XG59XG5cbmZ1bmN0aW9uIHBlZyRTeW50YXhFcnJvcihtZXNzYWdlLCBleHBlY3RlZCwgZm91bmQsIGxvY2F0aW9uKSB7XG4gIHRoaXMubWVzc2FnZSAgPSBtZXNzYWdlO1xuICB0aGlzLmV4cGVjdGVkID0gZXhwZWN0ZWQ7XG4gIHRoaXMuZm91bmQgICAgPSBmb3VuZDtcbiAgdGhpcy5sb2NhdGlvbiA9IGxvY2F0aW9uO1xuICB0aGlzLm5hbWUgICAgID0gXCJTeW50YXhFcnJvclwiO1xuXG4gIGlmICh0eXBlb2YgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHBlZyRTeW50YXhFcnJvcik7XG4gIH1cbn1cblxucGVnJHN1YmNsYXNzKHBlZyRTeW50YXhFcnJvciwgRXJyb3IpO1xuXG5wZWckU3ludGF4RXJyb3IuYnVpbGRNZXNzYWdlID0gZnVuY3Rpb24oZXhwZWN0ZWQsIGZvdW5kKSB7XG4gIHZhciBERVNDUklCRV9FWFBFQ1RBVElPTl9GTlMgPSB7XG4gICAgICAgIGxpdGVyYWw6IGZ1bmN0aW9uKGV4cGVjdGF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIFwiXFxcIlwiICsgbGl0ZXJhbEVzY2FwZShleHBlY3RhdGlvbi50ZXh0KSArIFwiXFxcIlwiO1xuICAgICAgICB9LFxuXG4gICAgICAgIFwiY2xhc3NcIjogZnVuY3Rpb24oZXhwZWN0YXRpb24pIHtcbiAgICAgICAgICB2YXIgZXNjYXBlZFBhcnRzID0gXCJcIixcbiAgICAgICAgICAgICAgaTtcblxuICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBleHBlY3RhdGlvbi5wYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgZXNjYXBlZFBhcnRzICs9IGV4cGVjdGF0aW9uLnBhcnRzW2ldIGluc3RhbmNlb2YgQXJyYXlcbiAgICAgICAgICAgICAgPyBjbGFzc0VzY2FwZShleHBlY3RhdGlvbi5wYXJ0c1tpXVswXSkgKyBcIi1cIiArIGNsYXNzRXNjYXBlKGV4cGVjdGF0aW9uLnBhcnRzW2ldWzFdKVxuICAgICAgICAgICAgICA6IGNsYXNzRXNjYXBlKGV4cGVjdGF0aW9uLnBhcnRzW2ldKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gXCJbXCIgKyAoZXhwZWN0YXRpb24uaW52ZXJ0ZWQgPyBcIl5cIiA6IFwiXCIpICsgZXNjYXBlZFBhcnRzICsgXCJdXCI7XG4gICAgICAgIH0sXG5cbiAgICAgICAgYW55OiBmdW5jdGlvbihleHBlY3RhdGlvbikge1xuICAgICAgICAgIHJldHVybiBcImFueSBjaGFyYWN0ZXJcIjtcbiAgICAgICAgfSxcblxuICAgICAgICBlbmQ6IGZ1bmN0aW9uKGV4cGVjdGF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIFwiZW5kIG9mIGlucHV0XCI7XG4gICAgICAgIH0sXG5cbiAgICAgICAgb3RoZXI6IGZ1bmN0aW9uKGV4cGVjdGF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGV4cGVjdGF0aW9uLmRlc2NyaXB0aW9uO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gIGZ1bmN0aW9uIGhleChjaCkge1xuICAgIHJldHVybiBjaC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuICB9XG5cbiAgZnVuY3Rpb24gbGl0ZXJhbEVzY2FwZShzKSB7XG4gICAgcmV0dXJuIHNcbiAgICAgIC5yZXBsYWNlKC9cXFxcL2csICdcXFxcXFxcXCcpXG4gICAgICAucmVwbGFjZSgvXCIvZywgICdcXFxcXCInKVxuICAgICAgLnJlcGxhY2UoL1xcMC9nLCAnXFxcXDAnKVxuICAgICAgLnJlcGxhY2UoL1xcdC9nLCAnXFxcXHQnKVxuICAgICAgLnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKVxuICAgICAgLnJlcGxhY2UoL1xcci9nLCAnXFxcXHInKVxuICAgICAgLnJlcGxhY2UoL1tcXHgwMC1cXHgwRl0vZywgICAgICAgICAgZnVuY3Rpb24oY2gpIHsgcmV0dXJuICdcXFxceDAnICsgaGV4KGNoKTsgfSlcbiAgICAgIC5yZXBsYWNlKC9bXFx4MTAtXFx4MUZcXHg3Ri1cXHg5Rl0vZywgZnVuY3Rpb24oY2gpIHsgcmV0dXJuICdcXFxceCcgICsgaGV4KGNoKTsgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBjbGFzc0VzY2FwZShzKSB7XG4gICAgcmV0dXJuIHNcbiAgICAgIC5yZXBsYWNlKC9cXFxcL2csICdcXFxcXFxcXCcpXG4gICAgICAucmVwbGFjZSgvXFxdL2csICdcXFxcXScpXG4gICAgICAucmVwbGFjZSgvXFxeL2csICdcXFxcXicpXG4gICAgICAucmVwbGFjZSgvLS9nLCAgJ1xcXFwtJylcbiAgICAgIC5yZXBsYWNlKC9cXDAvZywgJ1xcXFwwJylcbiAgICAgIC5yZXBsYWNlKC9cXHQvZywgJ1xcXFx0JylcbiAgICAgIC5yZXBsYWNlKC9cXG4vZywgJ1xcXFxuJylcbiAgICAgIC5yZXBsYWNlKC9cXHIvZywgJ1xcXFxyJylcbiAgICAgIC5yZXBsYWNlKC9bXFx4MDAtXFx4MEZdL2csICAgICAgICAgIGZ1bmN0aW9uKGNoKSB7IHJldHVybiAnXFxcXHgwJyArIGhleChjaCk7IH0pXG4gICAgICAucmVwbGFjZSgvW1xceDEwLVxceDFGXFx4N0YtXFx4OUZdL2csIGZ1bmN0aW9uKGNoKSB7IHJldHVybiAnXFxcXHgnICArIGhleChjaCk7IH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gZGVzY3JpYmVFeHBlY3RhdGlvbihleHBlY3RhdGlvbikge1xuICAgIHJldHVybiBERVNDUklCRV9FWFBFQ1RBVElPTl9GTlNbZXhwZWN0YXRpb24udHlwZV0oZXhwZWN0YXRpb24pO1xuICB9XG5cbiAgZnVuY3Rpb24gZGVzY3JpYmVFeHBlY3RlZChleHBlY3RlZCkge1xuICAgIHZhciBkZXNjcmlwdGlvbnMgPSBuZXcgQXJyYXkoZXhwZWN0ZWQubGVuZ3RoKSxcbiAgICAgICAgaSwgajtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7IGkrKykge1xuICAgICAgZGVzY3JpcHRpb25zW2ldID0gZGVzY3JpYmVFeHBlY3RhdGlvbihleHBlY3RlZFtpXSk7XG4gICAgfVxuXG4gICAgZGVzY3JpcHRpb25zLnNvcnQoKTtcblxuICAgIGlmIChkZXNjcmlwdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChpID0gMSwgaiA9IDE7IGkgPCBkZXNjcmlwdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGRlc2NyaXB0aW9uc1tpIC0gMV0gIT09IGRlc2NyaXB0aW9uc1tpXSkge1xuICAgICAgICAgIGRlc2NyaXB0aW9uc1tqXSA9IGRlc2NyaXB0aW9uc1tpXTtcbiAgICAgICAgICBqKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGRlc2NyaXB0aW9ucy5sZW5ndGggPSBqO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZGVzY3JpcHRpb25zLmxlbmd0aCkge1xuICAgICAgY2FzZSAxOlxuICAgICAgICByZXR1cm4gZGVzY3JpcHRpb25zWzBdO1xuXG4gICAgICBjYXNlIDI6XG4gICAgICAgIHJldHVybiBkZXNjcmlwdGlvbnNbMF0gKyBcIiBvciBcIiArIGRlc2NyaXB0aW9uc1sxXTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9ucy5zbGljZSgwLCAtMSkuam9pbihcIiwgXCIpXG4gICAgICAgICAgKyBcIiwgb3IgXCJcbiAgICAgICAgICArIGRlc2NyaXB0aW9uc1tkZXNjcmlwdGlvbnMubGVuZ3RoIC0gMV07XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZGVzY3JpYmVGb3VuZChmb3VuZCkge1xuICAgIHJldHVybiBmb3VuZCA/IFwiXFxcIlwiICsgbGl0ZXJhbEVzY2FwZShmb3VuZCkgKyBcIlxcXCJcIiA6IFwiZW5kIG9mIGlucHV0XCI7XG4gIH1cblxuICByZXR1cm4gXCJFeHBlY3RlZCBcIiArIGRlc2NyaWJlRXhwZWN0ZWQoZXhwZWN0ZWQpICsgXCIgYnV0IFwiICsgZGVzY3JpYmVGb3VuZChmb3VuZCkgKyBcIiBmb3VuZC5cIjtcbn07XG5cbmZ1bmN0aW9uIHBlZyRwYXJzZShpbnB1dCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyAhPT0gdm9pZCAwID8gb3B0aW9ucyA6IHt9O1xuXG4gIHZhciBwZWckRkFJTEVEID0ge30sXG5cbiAgICAgIHBlZyRzdGFydFJ1bGVGdW5jdGlvbnMgPSB7IEJpYmxpb2dyYXBoeTogcGVnJHBhcnNlQmlibGlvZ3JhcGh5IH0sXG4gICAgICBwZWckc3RhcnRSdWxlRnVuY3Rpb24gID0gcGVnJHBhcnNlQmlibGlvZ3JhcGh5LFxuXG4gICAgICBwZWckYzAgPSBmdW5jdGlvbihyKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdCaWJsaW9ncmFwaHknLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICBjaGlsZHJlbjogcixcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICBwZWckYzEgPSBcIkBcIixcbiAgICAgIHBlZyRjMiA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJAXCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjMyA9IFwiY29tbWVudFwiLFxuICAgICAgcGVnJGM0ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcImNvbW1lbnRcIiwgdHJ1ZSksXG4gICAgICBwZWckYzUgPSBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdCcmFjZWRDb21tZW50JyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgdmFsdWU6IHYuc2xpY2UoMSwgLTEpLFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjNiA9IC9eW15cXG5cXHJdLyxcbiAgICAgIHBlZyRjNyA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIlxcblwiLCBcIlxcclwiXSwgdHJ1ZSwgZmFsc2UpLFxuICAgICAgcGVnJGM4ID0gL15bXFxuXFxyXS8sXG4gICAgICBwZWckYzkgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCJcXG5cIiwgXCJcXHJcIl0sIGZhbHNlLCBmYWxzZSksXG4gICAgICBwZWckYzEwID0gZnVuY3Rpb24odikge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBraW5kOiAnTGluZUNvbW1lbnQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICB2YWx1ZTogbm9ybWFsaXplV2hpdGVzcGFjZSh2KSxcbiAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgIHBlZyRjMTEgPSAvXlteQF0vLFxuICAgICAgcGVnJGMxMiA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIkBcIl0sIHRydWUsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTMgPSBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdOb25FbnRyeVRleHQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICB2YWx1ZTogbm9ybWFsaXplV2hpdGVzcGFjZSh2KSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICBwZWckYzE0ID0gZnVuY3Rpb24obikgeyByZXR1cm4gbjsgfSxcbiAgICAgIHBlZyRjMTUgPSBcIntcIixcbiAgICAgIHBlZyRjMTYgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwie1wiLCBmYWxzZSksXG4gICAgICBwZWckYzE3ID0gL15bXnt9XS8sXG4gICAgICBwZWckYzE4ID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1wie1wiLCBcIn1cIl0sIHRydWUsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTkgPSBcIn1cIixcbiAgICAgIHBlZyRjMjAgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwifVwiLCBmYWxzZSksXG4gICAgICBwZWckYzIxID0gZnVuY3Rpb24oY29tbWVudCkgeyByZXR1cm4gJ3snICsgY29tbWVudC5qb2luKCcnKSArICd9JyB9LFxuICAgICAgcGVnJGMyMiA9IC9eW0EtWmEtel0vLFxuICAgICAgcGVnJGMyMyA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtbXCJBXCIsIFwiWlwiXSwgW1wiYVwiLCBcInpcIl1dLCBmYWxzZSwgZmFsc2UpLFxuICAgICAgcGVnJGMyNCA9IC9eWyh7XS8sXG4gICAgICBwZWckYzI1ID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1wiKFwiLCBcIntcIl0sIGZhbHNlLCBmYWxzZSksXG4gICAgICBwZWckYzI2ID0gL15bfSldLyxcbiAgICAgIHBlZyRjMjcgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCJ9XCIsIFwiKVwiXSwgZmFsc2UsIGZhbHNlKSxcbiAgICAgIHBlZyRjMjggPSBmdW5jdGlvbih0eXBlLCBpZCwgZmllbGRzKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdFbnRyeScsXG4gICAgICAgICAgICBpZDogaWQgfHwgJycsXG4gICAgICAgICAgICB0eXBlOiB0eXBlLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIGZpZWxkczogZmllbGRzLFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjMjkgPSBcInByZWFtYmxlXCIsXG4gICAgICBwZWckYzMwID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcInByZWFtYmxlXCIsIHRydWUpLFxuICAgICAgcGVnJGMzMSA9IGZ1bmN0aW9uKG9wZW5lciwgdiwgY2xvc2VyKSB7XG4gICAgICAgICAgc3dpdGNoIChvcGVuZXIgKyBjbG9zZXIpIHtcbiAgICAgICAgICAgIGNhc2UgJ3t9JzpcbiAgICAgICAgICAgIGNhc2UgJygpJzpcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5iYWxhbmNlZCBvcGVuZXItY2xvc2VyIGZvciBwcmVhbWJsZTogJHtvcGVuZXJ9Li4uJHtjbG9zZXJ9YClcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdQcmVhbWJsZUV4cHJlc3Npb24nLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICB2YWx1ZTogdi5yZWR1Y2UoKGEsIGIpID0+IGEuY29uY2F0KGIpLCBbXSksXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgcGVnJGMzMiA9IFwic3RyaW5nXCIsXG4gICAgICBwZWckYzMzID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcInN0cmluZ1wiLCB0cnVlKSxcbiAgICAgIHBlZyRjMzQgPSBmdW5jdGlvbihrLCB2KSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdTdHJpbmdEZWNsYXJhdGlvbicsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIG5hbWU6IGssXG4gICAgICAgICAgICB2YWx1ZTogdi5yZWR1Y2UoKGEsIGIpID0+IGEuY29uY2F0KGIpLCBbXSksXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgcGVnJGMzNSA9IC9eW14gXFx0XFxyXFxuLF0vLFxuICAgICAgcGVnJGMzNiA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIiBcIiwgXCJcXHRcIiwgXCJcXHJcIiwgXCJcXG5cIiwgXCIsXCJdLCB0cnVlLCBmYWxzZSksXG4gICAgICBwZWckYzM3ID0gXCIsXCIsXG4gICAgICBwZWckYzM4ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIixcIiwgZmFsc2UpLFxuICAgICAgcGVnJGMzOSA9IGZ1bmN0aW9uKGlkKSB7IHJldHVybiBpZDsgfSxcbiAgICAgIHBlZyRjNDAgPSBmdW5jdGlvbihuYW1lKSB7IHJldHVybiBpc1ZlcmJhdGltRmllbGQobmFtZSkgJiYgdW5uZXN0RmllbGRzLmluY2x1ZGVzKG5hbWUpIH0sXG4gICAgICBwZWckYzQxID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgICAgICAgICAvLyBiZWNhdXNlIHRoaXMgd2FzIGFidXNlZCBzbyBtdWNoLCBtYW55IHByb2Nlc3NvcnMgdHJlYXQgZG91YmxlLW91dGVyLWJyYWNlcyBhcyBzaW5nbGVcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ0ZpZWxkJyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHZhbHVlOiBbIHByb3RlY3QodmFsdWUpIF1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICBwZWckYzQyID0gZnVuY3Rpb24obmFtZSkgeyByZXR1cm4gaXNWZXJiYXRpbUZpZWxkKG5hbWUpIH0sXG4gICAgICBwZWckYzQzID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ0ZpZWxkJyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHZhbHVlOiBbIHByb3RlY3QodmFsdWUpIF1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICBwZWckYzQ0ID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgICAgICAgICAvLyBiZWNhdXNlIHRoaXMgd2FzIGFidXNlZCBzbyBtdWNoLCBtYW55IHByb2Nlc3NvcnMgdHJlYXQgZG91YmxlLW91dGVyLWJyYWNlcyBhcyBzaW5nbGVcbiAgICAgICAgICBpZiAodW5uZXN0RmllbGRzLmluY2x1ZGVzKG5hbWUpICYmIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMSAmJiB2YWx1ZVswXS5raW5kID09PSAnQmxvY2snKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy51bm5lc3RNb2RlID09PSAncHJlc2VydmUnKSB7XG4gICAgICAgICAgICAgIHZhbHVlWzBdLmNhc2UgPSAncHJlc2VydmUnXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWzBdLnZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGhhbmRsZV9tYXJrdXBfc3dpdGNoZXMoe1xuICAgICAgICAgICAga2luZDogJ0ZpZWxkJyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgcGVnJGM0NSA9IC9eW186YS16QS1aMC05XFwtXS8sXG4gICAgICBwZWckYzQ2ID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1wiX1wiLCBcIjpcIiwgW1wiYVwiLCBcInpcIl0sIFtcIkFcIiwgXCJaXCJdLCBbXCIwXCIsIFwiOVwiXSwgXCItXCJdLCBmYWxzZSwgZmFsc2UpLFxuICAgICAgcGVnJGM0NyA9IGZ1bmN0aW9uKG5hbWUpIHsgcmV0dXJuIG5hbWUudG9Mb3dlckNhc2UoKSB9LFxuICAgICAgcGVnJGM0OCA9IFwiXFxcIlwiLFxuICAgICAgcGVnJGM0OSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJcXFwiXCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjNTAgPSBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgdiA9IHYgfHwge1xuICAgICAgICAgICAga2luZDogJ1RleHQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgfVxuICAgICAgICAgIHYubW9kZSA9ICd2ZXJiYXRpbSdcbiAgICAgICAgICByZXR1cm4gYmFzaWNUZXh0Q29udmVyc2lvbnModilcbiAgICAgICAgfSxcbiAgICAgIHBlZyRjNTEgPSBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2ljVGV4dENvbnZlcnNpb25zKHtcbiAgICAgICAgICAgIGtpbmQ6ICdUZXh0JyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgdmFsdWU6IHYuam9pbignJykudHJpbSgpLFxuICAgICAgICAgICAgbW9kZTogJ3ZlcmJhdGltJyxcbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgcGVnJGM1MiA9IGZ1bmN0aW9uKHYpIHsgcmV0dXJuIHYgfSxcbiAgICAgIHBlZyRjNTMgPSBmdW5jdGlvbih2KSB7IHJldHVybiAneycgKyB2LmpvaW4oJycpICsgJ30nIH0sXG4gICAgICBwZWckYzU0ID0gZnVuY3Rpb24oKSB7IHJldHVybiBtYXRoLnNldChmYWxzZSkgfSxcbiAgICAgIHBlZyRjNTUgPSBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIHYucmVkdWNlKChhLCBiKSA9PiBhLmNvbmNhdChiKSwgW10pO1xuICAgICAgICB9LFxuICAgICAgcGVnJGM1NiA9IGZ1bmN0aW9uKHYpIHsgcmV0dXJuIHY7IH0sXG4gICAgICBwZWckYzU3ID0gXCJ7XFxcXHZlcmJcIixcbiAgICAgIHBlZyRjNTggPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwie1xcXFx2ZXJiXCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjNTkgPSAvXlthLXpBLVpdLyxcbiAgICAgIHBlZyRjNjAgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbW1wiYVwiLCBcInpcIl0sIFtcIkFcIiwgXCJaXCJdXSwgZmFsc2UsIGZhbHNlKSxcbiAgICAgIHBlZyRjNjEgPSAvXlteXFxeXyR7fVxcXFxdLyxcbiAgICAgIHBlZyRjNjIgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCJeXCIsIFwiX1wiLCBcIiRcIiwgXCJ7XCIsIFwifVwiLCBcIlxcXFxcIl0sIHRydWUsIGZhbHNlKSxcbiAgICAgIHBlZyRjNjMgPSBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2ljVGV4dENvbnZlcnNpb25zKHtcbiAgICAgICAgICAgIGtpbmQ6ICdUZXh0JyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgdmFsdWU6IG5vcm1hbGl6ZVdoaXRlc3BhY2UodiksXG4gICAgICAgICAgICBtb2RlOiBtYXRoLm9uID8gJ21hdGgnIDogJ3RleHQnLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICBwZWckYzY0ID0gL15bXlxcXl8ke31cIlxcXFxdLyxcbiAgICAgIHBlZyRjNjUgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCJeXCIsIFwiX1wiLCBcIiRcIiwgXCJ7XCIsIFwifVwiLCBcIlxcXCJcIiwgXCJcXFxcXCJdLCB0cnVlLCBmYWxzZSksXG4gICAgICBwZWckYzY2ID0gL15bMC05XS8sXG4gICAgICBwZWckYzY3ID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1tcIjBcIiwgXCI5XCJdXSwgZmFsc2UsIGZhbHNlKSxcbiAgICAgIHBlZyRjNjggPSBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdOdW1iZXInLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQodiwgMTApLFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjNjkgPSBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdTdHJpbmdSZWZlcmVuY2UnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICBuYW1lOiB2LFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjNzAgPSBcIlxcXFxiZWdpbntcIixcbiAgICAgIHBlZyRjNzEgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiXFxcXGJlZ2lue1wiLCBmYWxzZSksXG4gICAgICBwZWckYzcyID0gL15bYS16QS1aMC05XS8sXG4gICAgICBwZWckYzczID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1tcImFcIiwgXCJ6XCJdLCBbXCJBXCIsIFwiWlwiXSwgW1wiMFwiLCBcIjlcIl1dLCBmYWxzZSwgZmFsc2UpLFxuICAgICAgcGVnJGM3NCA9IFwiXFxcXGVuZHtcIixcbiAgICAgIHBlZyRjNzUgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiXFxcXGVuZHtcIiwgZmFsc2UpLFxuICAgICAgcGVnJGM3NiA9IGZ1bmN0aW9uKGVudiwgdiwgY2VudikgeyByZXR1cm4gZW52ID09PSBjZW52IH0sXG4gICAgICBwZWckYzc3ID0gZnVuY3Rpb24oZW52LCB2LCBjZW52KSB7XG4gICAgICAgICAgaWYgKG1hcmt1cFtlbnZdKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBraW5kOiAnQmxvY2snLFxuICAgICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgICB2YWx1ZTogdixcbiAgICAgICAgICAgICAgbWFya3VwOiB7IFttYXJrdXBbZW52XV06IHRydWUgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAga2luZDogJ0Vudmlyb25tZW50JyxcbiAgICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgICAgICAgIGVudjogZW52LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjNzggPSBcIntcXFxcXCIsXG4gICAgICBwZWckYzc5ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIntcXFxcXCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjODAgPSBcIlxcXFxcIixcbiAgICAgIHBlZyRjODEgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiXFxcXFwiLCBmYWxzZSksXG4gICAgICBwZWckYzgyID0gL15baWpdLyxcbiAgICAgIHBlZyRjODMgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCJpXCIsIFwialwiXSwgZmFsc2UsIGZhbHNlKSxcbiAgICAgIHBlZyRjODQgPSBmdW5jdGlvbihtYXJrLCBjaGFyKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdEaWFjcml0aWNDb21tYW5kJyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgbWFyazogbWFyayxcbiAgICAgICAgICAgIGRvdGxlc3M6ICEhY2hhclsxXSxcbiAgICAgICAgICAgIGNoYXJhY3RlcjogY2hhclsxXSB8fCBjaGFyWzBdLFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjODUgPSBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgICByZXR1cm4gYmFzaWNUZXh0Q29udmVyc2lvbnMoe1xuICAgICAgICAgICAgICBraW5kOiAnVGV4dCcsXG4gICAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICAgIHZhbHVlOiB2LmpvaW4oJycpLnRyaW0oKSxcbiAgICAgICAgICAgICAgbW9kZTogJ3ZlcmJhdGltJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICBwZWckYzg2ID0gZnVuY3Rpb24odikge1xuICAgICAgICAgIGNvbnN0IGJsb2NrID0ge1xuICAgICAgICAgICAga2luZDogJ0Jsb2NrJyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgICAgICBtYXJrdXA6IHt9LFxuICAgICAgICAgICAgY2FzZTogJ3Byb3RlY3QnLFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGxldCBsZWFkaW5nY21kID0gYmxvY2sudmFsdWUubGVuZ3RoICYmIChibG9jay52YWx1ZVswXS5raW5kLmVuZHNXaXRoKCdDb21tYW5kJykgfHwgYmxvY2sudmFsdWVbMF0ua2luZCA9PT0gJ0Vudmlyb25tZW50JykgPyBibG9jay52YWx1ZVswXSA6IG51bGxcbiAgICAgICAgICBsZXQgbGVhZGluZ2NtZGJsb2NrYXJnID0gbGVhZGluZ2NtZFxuICAgICAgICAgICAgJiYgbGVhZGluZ2NtZC5raW5kID09PSAnUmVndWxhckNvbW1hbmQnXG4gICAgICAgICAgICAmJiBsZWFkaW5nY21kLmFyZ3VtZW50cy5yZXF1aXJlZC5sZW5ndGhcbiAgICAgICAgICAgICYmIGxlYWRpbmdjbWQuYXJndW1lbnRzLnJlcXVpcmVkWzBdLmtpbmQgPT09ICdCbG9jaydcbiAgICAgICAgICAgICYmIGxlYWRpbmdjbWQuYXJndW1lbnRzLnJlcXVpcmVkWzBdXG5cbiAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcmV0b3JxdWVyZS96b3Rlcm8tYmV0dGVyLWJpYnRleC9pc3N1ZXMvNTQxI2lzc3VlY29tbWVudC0yNDAxNTYyNzRcbiAgICAgICAgICBpZiAobGVhZGluZ2NtZCkge1xuICAgICAgICAgICAgZGVsZXRlIGJsb2NrLmNhc2VcblxuICAgICAgICAgICAgLy8gY29tbWFuZCB3aXRoIGEgYmxvY2sgY2FuY2VscyBvdXQgY2FzZSBwcm90ZWN0aW9uIHdpdGggY29udGFpbmluZyBibG9ja1xuICAgICAgICAgICAgLy8gaWYgYSBzbWFsbGNhcHMgYmxvY2sgaGFzIHNldCBjYXNlIHRvICdwcmVzZXJ2ZScgd2Ugd2FudCB0byBrZWVwIHRoaXNcbiAgICAgICAgICAgIGlmIChsZWFkaW5nY21kYmxvY2thcmcgJiYgbGVhZGluZ2NtZGJsb2NrYXJnLmNhc2UgPT09ICdwcm90ZWN0JykgZGVsZXRlIGxlYWRpbmdjbWRibG9ja2FyZy5jYXNlXG5cbiAgICAgICAgICAgIC8vIFxcc2wsIFxcaXQgZXRjXG4gICAgICAgICAgICBpZiAobWFya3VwW2xlYWRpbmdjbWQuY29tbWFuZF0pIHtcbiAgICAgICAgICAgICAgYmxvY2subWFya3VwW21hcmt1cFtsZWFkaW5nY21kLmNvbW1hbmRdXSA9IHRydWVcbiAgICAgICAgICAgICAgYmxvY2sudmFsdWUuc2hpZnQoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBoYW5kbGVfbWFya3VwX3N3aXRjaGVzKGJsb2NrKVxuICAgICAgICB9LFxuICAgICAgcGVnJGM4NyA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gIW1hdGgub24gfSxcbiAgICAgIHBlZyRjODggPSBcIiRcIixcbiAgICAgIHBlZyRjODkgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiJFwiLCBmYWxzZSksXG4gICAgICBwZWckYzkwID0gXCIkJFwiLFxuICAgICAgcGVnJGM5MSA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCIkJFwiLCBmYWxzZSksXG4gICAgICBwZWckYzkyID0gZnVuY3Rpb24obW9kZSkgeyByZXR1cm4gbWF0aC5zZXQodHJ1ZSkgfSxcbiAgICAgIHBlZyRjOTMgPSBmdW5jdGlvbihtb2RlLCB2KSB7IHJldHVybiBtYXRoLnNldChmYWxzZSkgfSxcbiAgICAgIHBlZyRjOTQgPSBmdW5jdGlvbihtb2RlLCB2KSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6IG1vZGUgPT0gJyQkJyA/ICdEaXNwbGF5TWF0aCcgOiAnSW5saW5lTWF0aCcsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgICAgY2FzZTogJ3Byb3RlY3QnLFxuICAgICAgICAgICAgbWFya3VwOiB7fSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICBwZWckYzk1ID0gXCIlXCIsXG4gICAgICBwZWckYzk2ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIiVcIiwgZmFsc2UpLFxuICAgICAgcGVnJGM5NyA9IC9eW15cXHJcXG5dLyxcbiAgICAgIHBlZyRjOTggPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCJcXHJcIiwgXCJcXG5cIl0sIHRydWUsIGZhbHNlKSxcbiAgICAgIHBlZyRjOTkgPSBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdMaW5lQ29tbWVudCcsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjMTAwID0gL15bX1xcXl0vLFxuICAgICAgcGVnJGMxMDEgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCJfXCIsIFwiXlwiXSwgZmFsc2UsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTAyID0gZnVuY3Rpb24obW9kZSwgdikge1xuICAgICAgICAgIGlmICh2LmtpbmQgPT09ICdCbG9jaycpIHYgPSB2LnZhbHVlXG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogbW9kZSA9PT0gJ18nID8gJ1N1YnNjcmlwdENvbW1hbmQnIDogJ1N1cGVyc2NyaXB0Q29tbWFuZCcsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjMTAzID0gZnVuY3Rpb24obWFyaywgdikge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBraW5kOiAnUmVndWxhckNvbW1hbmQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICBjb21tYW5kOiBtYXJrLFxuICAgICAgICAgICAgYXJndW1lbnRzOiB7XG4gICAgICAgICAgICAgIG9wdGlvbmFsOiBbXSxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IFsgcHJvdGVjdCh2KSBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICBwZWckYzEwNCA9IC9eW15BLVphLXowLTlcXHRcXHJcXG5dLyxcbiAgICAgIHBlZyRjMTA1ID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1tcIkFcIiwgXCJaXCJdLCBbXCJhXCIsIFwielwiXSwgW1wiMFwiLCBcIjlcIl0sIFwiXFx0XCIsIFwiXFxyXCIsIFwiXFxuXCJdLCB0cnVlLCBmYWxzZSksXG4gICAgICBwZWckYzEwNiA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ1N5bWJvbENvbW1hbmQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICBjb21tYW5kOiB2LFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIHBlZyRjMTA3ID0gXCJuZXdjb21tYW5kXCIsXG4gICAgICBwZWckYzEwOCA9IHBlZyRsaXRlcmFsRXhwZWN0YXRpb24oXCJuZXdjb21tYW5kXCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTA5ID0gZnVuY3Rpb24oY21kLCBuYW1lKSB7IHJldHVybiBuYW1lLnZhbHVlLmxlbmd0aCA9PSAxICYmIG5hbWUudmFsdWVbMF0ua2luZCA9PT0gJ1JlZ3VsYXJDb21tYW5kJyB9LFxuICAgICAgcGVnJGMxMTAgPSBmdW5jdGlvbihjbWQsIG5hbWUsIG9wdGlvbmFsLCBkZWYpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ1JlZ3VsYXJDb21tYW5kJyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgY29tbWFuZDogY21kLFxuICAgICAgICAgICAgYXJndW1lbnRzOiB7XG4gICAgICAgICAgICAgIG9wdGlvbmFsOiBbXSxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IFtuYW1lLCBkZWZdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICBwZWckYzExMSA9IFwiYmVnaW5cIixcbiAgICAgIHBlZyRjMTEyID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcImJlZ2luXCIsIGZhbHNlKSxcbiAgICAgIHBlZyRjMTEzID0gXCJlbmRcIixcbiAgICAgIHBlZyRjMTE0ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcImVuZFwiLCBmYWxzZSksXG4gICAgICBwZWckYzExNSA9IGZ1bmN0aW9uKGNtZCkgeyByZXR1cm4gdmVyYmF0aW1Db21tYW5kcy5pbmNsdWRlcyhjbWQpICYmIChoYXNfYXJndW1lbnRzW2NtZF0gPT09IDIpIH0sXG4gICAgICBwZWckYzExNiA9IGZ1bmN0aW9uKGNtZCwgb3B0aW9uYWwsIHJlcTEsIHJlcTIpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ1JlZ3VsYXJDb21tYW5kJyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgY29tbWFuZDogY21kLFxuICAgICAgICAgICAgYXJndW1lbnRzOiB7XG4gICAgICAgICAgICAgIG9wdGlvbmFsOiBvcHRpb25hbCxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IFtwcm90ZWN0KHJlcTEpLCBwcm90ZWN0KHJlcTIpXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgcGVnJGMxMTcgPSBmdW5jdGlvbihjbWQpIHsgcmV0dXJuIHZlcmJhdGltQ29tbWFuZHMuaW5jbHVkZXMoY21kKSAmJiAoaGFzX2FyZ3VtZW50c1tjbWRdID09PSAxKSB9LFxuICAgICAgcGVnJGMxMTggPSBmdW5jdGlvbihjbWQsIG9wdGlvbmFsLCByZXEpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2luZDogJ1JlZ3VsYXJDb21tYW5kJyxcbiAgICAgICAgICAgIGxvYzogbG9jYXRpb24oKSxcbiAgICAgICAgICAgIHNvdXJjZTogdGV4dCgpLFxuICAgICAgICAgICAgY29tbWFuZDogY21kLFxuICAgICAgICAgICAgYXJndW1lbnRzOiB7XG4gICAgICAgICAgICAgIG9wdGlvbmFsOiBvcHRpb25hbCxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IFtwcm90ZWN0KHJlcSldLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICBwZWckYzExOSA9IGZ1bmN0aW9uKGNtZCkgeyByZXR1cm4gKGhhc19hcmd1bWVudHNbY21kXSA9PT0gMikgfSxcbiAgICAgIHBlZyRjMTIwID0gZnVuY3Rpb24oY21kLCBvcHRpb25hbCwgcmVxMSwgcmVxMikge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBraW5kOiAnUmVndWxhckNvbW1hbmQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICBjb21tYW5kOiBjbWQsXG4gICAgICAgICAgICBhcmd1bWVudHM6IHtcbiAgICAgICAgICAgICAgb3B0aW9uYWw6IG9wdGlvbmFsLFxuICAgICAgICAgICAgICByZXF1aXJlZDogW3JlcTEsIHJlcTJdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICBwZWckYzEyMSA9IGZ1bmN0aW9uKGNtZCkgeyByZXR1cm4gKGhhc19hcmd1bWVudHNbY21kXSA9PT0gMSkgfSxcbiAgICAgIHBlZyRjMTIyID0gZnVuY3Rpb24oY21kLCBvcHRpb25hbCwgcmVxKSB7XG4gICAgICAgICAgbGV0IG1cbiAgICAgICAgICBpZiAocmVxLmtpbmQgPT09ICdCbG9jaycpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoY21kKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ3RleHRzdXBlcnNjcmlwdCc6XG4gICAgICAgICAgICAgIGNhc2UgJ3NwJzpcbiAgICAgICAgICAgICAgICByZXEubWFya3VwLnN1cCA9IHRydWVcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICBjYXNlICd0ZXh0c3Vic2NyaXB0JzpcbiAgICAgICAgICAgICAgY2FzZSAnc2InOlxuICAgICAgICAgICAgICAgIHJlcS5tYXJrdXAuc3ViID0gdHJ1ZVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIGNhc2UgJ3RleHRzYyc6XG4gICAgICAgICAgICAgICAgcmVxLm1hcmt1cC5zbWFsbENhcHMgPSB0cnVlXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgY2FzZSAnZW5xdW90ZSc6XG4gICAgICAgICAgICAgIGNhc2UgJ21rYmlicXVvdGUnOlxuICAgICAgICAgICAgICAgIHJlcS5tYXJrdXAuZW5xdW90ZSA9IHRydWVcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICBjYXNlICd0ZXh0YmYnOlxuICAgICAgICAgICAgICBjYXNlICdta2JpYmJvbGQnOlxuICAgICAgICAgICAgICAgIHJlcS5tYXJrdXAuYm9sZCA9IHRydWVcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICBjYXNlICdlbXBoJzpcbiAgICAgICAgICAgICAgY2FzZSAndGV4dGl0JzpcbiAgICAgICAgICAgICAgY2FzZSAnbWtiaWJpdGFsaWMnOlxuICAgICAgICAgICAgICBjYXNlICdta2JpYmVtcGgnOlxuICAgICAgICAgICAgICAgIHJlcS5tYXJrdXAuaXRhbGljcyA9IHRydWVcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGlmIChtID0gY21kLm1hdGNoKC9eKChzdWIpKilzZWN0aW9uJC8pKSB7XG4gICAgICAgICAgICAgICAgICByZXEubWFya3VwW2BoJHsobVsxXS5sZW5ndGggLyAzKSArIDF9YF0gPSB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGlnbm9yZSBjYXNlIHN0dWZmIG9uIGJpYmN5clxuICAgICAgICAgIGlmIChjbWQgPT09ICdiaWJjeXInKSBkZWxldGUgcmVxLmNhc2VcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBraW5kOiAnUmVndWxhckNvbW1hbmQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICBjb21tYW5kOiBjbWQsXG4gICAgICAgICAgICBhcmd1bWVudHM6IHtcbiAgICAgICAgICAgICAgb3B0aW9uYWw6IG9wdGlvbmFsLFxuICAgICAgICAgICAgICByZXF1aXJlZDogW3JlcV0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgcGVnJGMxMjMgPSBmdW5jdGlvbihjbWQsIG9wdGlvbmFsKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGtpbmQ6ICdSZWd1bGFyQ29tbWFuZCcsXG4gICAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgICBzb3VyY2U6IHRleHQoKSxcbiAgICAgICAgICAgIGNvbW1hbmQ6IGNtZCxcbiAgICAgICAgICAgIGFyZ3VtZW50czoge1xuICAgICAgICAgICAgICBvcHRpb25hbDogb3B0aW9uYWwsXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiBbXSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICBwZWckYzEyNCA9IFwiW1wiLFxuICAgICAgcGVnJGMxMjUgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiW1wiLCBmYWxzZSksXG4gICAgICBwZWckYzEyNiA9IC9eW15cXF1dLyxcbiAgICAgIHBlZyRjMTI3ID0gcGVnJGNsYXNzRXhwZWN0YXRpb24oW1wiXVwiXSwgdHJ1ZSwgZmFsc2UpLFxuICAgICAgcGVnJGMxMjggPSBcIl1cIixcbiAgICAgIHBlZyRjMTI5ID0gcGVnJGxpdGVyYWxFeHBlY3RhdGlvbihcIl1cIiwgZmFsc2UpLFxuICAgICAgcGVnJGMxMzAgPSBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIGJhc2ljVGV4dENvbnZlcnNpb25zKHtcbiAgICAgICAgICAgIGtpbmQ6ICdUZXh0JywgLy8gdGhpcyBpc24ndCByZWFsbHkgY29ycmVjdCBidXQgSSBkb24ndCBuZWVkIHRoZXNlIHJpZ2h0IG5vd1xuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICB2YWx1ZTogdixcbiAgICAgICAgICAgIG1vZGU6IG1hdGgub24gPyAnbWF0aCcgOiAndGV4dCcsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgIHBlZyRjMTMxID0gL15bXiBcXHRcXF5fJHt9XFxcXF0vLFxuICAgICAgcGVnJGMxMzIgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCIgXCIsIFwiXFx0XCIsIFwiXlwiLCBcIl9cIiwgXCIkXCIsIFwie1wiLCBcIn1cIiwgXCJcXFxcXCJdLCB0cnVlLCBmYWxzZSksXG4gICAgICBwZWckYzEzMyA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICByZXR1cm4gYmFzaWNUZXh0Q29udmVyc2lvbnMoe1xuICAgICAgICAgICAga2luZDogJ1RleHQnLFxuICAgICAgICAgICAgbG9jOiBsb2NhdGlvbigpLFxuICAgICAgICAgICAgc291cmNlOiB0ZXh0KCksXG4gICAgICAgICAgICB2YWx1ZTogbm9ybWFsaXplV2hpdGVzcGFjZShbdl0pLFxuICAgICAgICAgICAgbW9kZTogbWF0aC5vbiA/ICdtYXRoJyA6ICd0ZXh0JyxcbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgcGVnJGMxMzQgPSAvXlthLXpBLVpcXC1fXS8sXG4gICAgICBwZWckYzEzNSA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtbXCJhXCIsIFwielwiXSwgW1wiQVwiLCBcIlpcIl0sIFwiLVwiLCBcIl9cIl0sIGZhbHNlLCBmYWxzZSksXG4gICAgICBwZWckYzEzNiA9IC9eW2EtekEtWjAtOVxcLSZfOl0vLFxuICAgICAgcGVnJGMxMzcgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbW1wiYVwiLCBcInpcIl0sIFtcIkFcIiwgXCJaXCJdLCBbXCIwXCIsIFwiOVwiXSwgXCItXCIsIFwiJlwiLCBcIl9cIiwgXCI6XCJdLCBmYWxzZSwgZmFsc2UpLFxuICAgICAgcGVnJGMxMzggPSAvXlsnYFwiPX5cXF4uXS8sXG4gICAgICBwZWckYzEzOSA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIidcIiwgXCJgXCIsIFwiXFxcIlwiLCBcIj1cIiwgXCJ+XCIsIFwiXlwiLCBcIi5cIl0sIGZhbHNlLCBmYWxzZSksXG4gICAgICBwZWckYzE0MCA9IC9eWydgXCI9flxcXi5jYnV2ZHJIa10vLFxuICAgICAgcGVnJGMxNDEgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCInXCIsIFwiYFwiLCBcIlxcXCJcIiwgXCI9XCIsIFwiflwiLCBcIl5cIiwgXCIuXCIsIFwiY1wiLCBcImJcIiwgXCJ1XCIsIFwidlwiLCBcImRcIiwgXCJyXCIsIFwiSFwiLCBcImtcIl0sIGZhbHNlLCBmYWxzZSksXG4gICAgICBwZWckYzE0MiA9IFwiPVwiLFxuICAgICAgcGVnJGMxNDMgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiPVwiLCBmYWxzZSksXG4gICAgICBwZWckYzE0NCA9IFwiI1wiLFxuICAgICAgcGVnJGMxNDUgPSBwZWckbGl0ZXJhbEV4cGVjdGF0aW9uKFwiI1wiLCBmYWxzZSksXG4gICAgICBwZWckYzE0NiA9IC9eW1xcclxcbl0vLFxuICAgICAgcGVnJGMxNDcgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCJcXHJcIiwgXCJcXG5cIl0sIGZhbHNlLCBmYWxzZSksXG4gICAgICBwZWckYzE0OCA9IHBlZyRvdGhlckV4cGVjdGF0aW9uKFwiTWFuZGF0b3J5IEhvcml6b250YWwgV2hpdGVzcGFjZVwiKSxcbiAgICAgIHBlZyRjMTQ5ID0gL15bIFxcdF0vLFxuICAgICAgcGVnJGMxNTAgPSBwZWckY2xhc3NFeHBlY3RhdGlvbihbXCIgXCIsIFwiXFx0XCJdLCBmYWxzZSwgZmFsc2UpLFxuICAgICAgcGVnJGMxNTEgPSBwZWckb3RoZXJFeHBlY3RhdGlvbihcIk9wdGlvbmFsIEhvcml6b250YWwgV2hpdGVzcGFjZVwiKSxcbiAgICAgIHBlZyRjMTUyID0gcGVnJG90aGVyRXhwZWN0YXRpb24oXCJNYW5kYXRvcnkgVmVydGljYWwgV2hpdGVzcGFjZVwiKSxcbiAgICAgIHBlZyRjMTUzID0gcGVnJG90aGVyRXhwZWN0YXRpb24oXCJPcHRpb25hbCBWZXJ0aWNhbCBXaGl0ZXNwYWNlXCIpLFxuICAgICAgcGVnJGMxNTQgPSBwZWckb3RoZXJFeHBlY3RhdGlvbihcIk1hbmRhdG9yeSBXaGl0ZXNwYWNlXCIpLFxuICAgICAgcGVnJGMxNTUgPSAvXlsgXFx0XFxuXFxyXS8sXG4gICAgICBwZWckYzE1NiA9IHBlZyRjbGFzc0V4cGVjdGF0aW9uKFtcIiBcIiwgXCJcXHRcIiwgXCJcXG5cIiwgXCJcXHJcIl0sIGZhbHNlLCBmYWxzZSksXG4gICAgICBwZWckYzE1NyA9IHBlZyRvdGhlckV4cGVjdGF0aW9uKFwiT3B0aW9uYWwgV2hpdGVzcGFjZVwiKSxcblxuICAgICAgcGVnJGN1cnJQb3MgICAgICAgICAgPSAwLFxuICAgICAgcGVnJHNhdmVkUG9zICAgICAgICAgPSAwLFxuICAgICAgcGVnJHBvc0RldGFpbHNDYWNoZSAgPSBbeyBsaW5lOiAxLCBjb2x1bW46IDEgfV0sXG4gICAgICBwZWckbWF4RmFpbFBvcyAgICAgICA9IDAsXG4gICAgICBwZWckbWF4RmFpbEV4cGVjdGVkICA9IFtdLFxuICAgICAgcGVnJHNpbGVudEZhaWxzICAgICAgPSAwLFxuXG4gICAgICBwZWckcmVzdWx0O1xuXG4gIGlmIChcInN0YXJ0UnVsZVwiIGluIG9wdGlvbnMpIHtcbiAgICBpZiAoIShvcHRpb25zLnN0YXJ0UnVsZSBpbiBwZWckc3RhcnRSdWxlRnVuY3Rpb25zKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FuJ3Qgc3RhcnQgcGFyc2luZyBmcm9tIHJ1bGUgXFxcIlwiICsgb3B0aW9ucy5zdGFydFJ1bGUgKyBcIlxcXCIuXCIpO1xuICAgIH1cblxuICAgIHBlZyRzdGFydFJ1bGVGdW5jdGlvbiA9IHBlZyRzdGFydFJ1bGVGdW5jdGlvbnNbb3B0aW9ucy5zdGFydFJ1bGVdO1xuICB9XG5cbiAgZnVuY3Rpb24gdGV4dCgpIHtcbiAgICByZXR1cm4gaW5wdXQuc3Vic3RyaW5nKHBlZyRzYXZlZFBvcywgcGVnJGN1cnJQb3MpO1xuICB9XG5cbiAgZnVuY3Rpb24gbG9jYXRpb24oKSB7XG4gICAgcmV0dXJuIHBlZyRjb21wdXRlTG9jYXRpb24ocGVnJHNhdmVkUG9zLCBwZWckY3VyclBvcyk7XG4gIH1cblxuICBmdW5jdGlvbiBleHBlY3RlZChkZXNjcmlwdGlvbiwgbG9jYXRpb24pIHtcbiAgICBsb2NhdGlvbiA9IGxvY2F0aW9uICE9PSB2b2lkIDAgPyBsb2NhdGlvbiA6IHBlZyRjb21wdXRlTG9jYXRpb24ocGVnJHNhdmVkUG9zLCBwZWckY3VyclBvcylcblxuICAgIHRocm93IHBlZyRidWlsZFN0cnVjdHVyZWRFcnJvcihcbiAgICAgIFtwZWckb3RoZXJFeHBlY3RhdGlvbihkZXNjcmlwdGlvbildLFxuICAgICAgaW5wdXQuc3Vic3RyaW5nKHBlZyRzYXZlZFBvcywgcGVnJGN1cnJQb3MpLFxuICAgICAgbG9jYXRpb25cbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gZXJyb3IobWVzc2FnZSwgbG9jYXRpb24pIHtcbiAgICBsb2NhdGlvbiA9IGxvY2F0aW9uICE9PSB2b2lkIDAgPyBsb2NhdGlvbiA6IHBlZyRjb21wdXRlTG9jYXRpb24ocGVnJHNhdmVkUG9zLCBwZWckY3VyclBvcylcblxuICAgIHRocm93IHBlZyRidWlsZFNpbXBsZUVycm9yKG1lc3NhZ2UsIGxvY2F0aW9uKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRsaXRlcmFsRXhwZWN0YXRpb24odGV4dCwgaWdub3JlQ2FzZSkge1xuICAgIHJldHVybiB7IHR5cGU6IFwibGl0ZXJhbFwiLCB0ZXh0OiB0ZXh0LCBpZ25vcmVDYXNlOiBpZ25vcmVDYXNlIH07XG4gIH1cblxuICBmdW5jdGlvbiBwZWckY2xhc3NFeHBlY3RhdGlvbihwYXJ0cywgaW52ZXJ0ZWQsIGlnbm9yZUNhc2UpIHtcbiAgICByZXR1cm4geyB0eXBlOiBcImNsYXNzXCIsIHBhcnRzOiBwYXJ0cywgaW52ZXJ0ZWQ6IGludmVydGVkLCBpZ25vcmVDYXNlOiBpZ25vcmVDYXNlIH07XG4gIH1cblxuICBmdW5jdGlvbiBwZWckYW55RXhwZWN0YXRpb24oKSB7XG4gICAgcmV0dXJuIHsgdHlwZTogXCJhbnlcIiB9O1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJGVuZEV4cGVjdGF0aW9uKCkge1xuICAgIHJldHVybiB7IHR5cGU6IFwiZW5kXCIgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRvdGhlckV4cGVjdGF0aW9uKGRlc2NyaXB0aW9uKSB7XG4gICAgcmV0dXJuIHsgdHlwZTogXCJvdGhlclwiLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24gfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRjb21wdXRlUG9zRGV0YWlscyhwb3MpIHtcbiAgICB2YXIgZGV0YWlscyA9IHBlZyRwb3NEZXRhaWxzQ2FjaGVbcG9zXSwgcDtcblxuICAgIGlmIChkZXRhaWxzKSB7XG4gICAgICByZXR1cm4gZGV0YWlscztcbiAgICB9IGVsc2Uge1xuICAgICAgcCA9IHBvcyAtIDE7XG4gICAgICB3aGlsZSAoIXBlZyRwb3NEZXRhaWxzQ2FjaGVbcF0pIHtcbiAgICAgICAgcC0tO1xuICAgICAgfVxuXG4gICAgICBkZXRhaWxzID0gcGVnJHBvc0RldGFpbHNDYWNoZVtwXTtcbiAgICAgIGRldGFpbHMgPSB7XG4gICAgICAgIGxpbmU6ICAgZGV0YWlscy5saW5lLFxuICAgICAgICBjb2x1bW46IGRldGFpbHMuY29sdW1uXG4gICAgICB9O1xuXG4gICAgICB3aGlsZSAocCA8IHBvcykge1xuICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwKSA9PT0gMTApIHtcbiAgICAgICAgICBkZXRhaWxzLmxpbmUrKztcbiAgICAgICAgICBkZXRhaWxzLmNvbHVtbiA9IDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGV0YWlscy5jb2x1bW4rKztcbiAgICAgICAgfVxuXG4gICAgICAgIHArKztcbiAgICAgIH1cblxuICAgICAgcGVnJHBvc0RldGFpbHNDYWNoZVtwb3NdID0gZGV0YWlscztcbiAgICAgIHJldHVybiBkZXRhaWxzO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRjb21wdXRlTG9jYXRpb24oc3RhcnRQb3MsIGVuZFBvcykge1xuICAgIHZhciBzdGFydFBvc0RldGFpbHMgPSBwZWckY29tcHV0ZVBvc0RldGFpbHMoc3RhcnRQb3MpLFxuICAgICAgICBlbmRQb3NEZXRhaWxzICAgPSBwZWckY29tcHV0ZVBvc0RldGFpbHMoZW5kUG9zKTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdGFydDoge1xuICAgICAgICBvZmZzZXQ6IHN0YXJ0UG9zLFxuICAgICAgICBsaW5lOiAgIHN0YXJ0UG9zRGV0YWlscy5saW5lLFxuICAgICAgICBjb2x1bW46IHN0YXJ0UG9zRGV0YWlscy5jb2x1bW5cbiAgICAgIH0sXG4gICAgICBlbmQ6IHtcbiAgICAgICAgb2Zmc2V0OiBlbmRQb3MsXG4gICAgICAgIGxpbmU6ICAgZW5kUG9zRGV0YWlscy5saW5lLFxuICAgICAgICBjb2x1bW46IGVuZFBvc0RldGFpbHMuY29sdW1uXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRmYWlsKGV4cGVjdGVkKSB7XG4gICAgaWYgKHBlZyRjdXJyUG9zIDwgcGVnJG1heEZhaWxQb3MpIHsgcmV0dXJuOyB9XG5cbiAgICBpZiAocGVnJGN1cnJQb3MgPiBwZWckbWF4RmFpbFBvcykge1xuICAgICAgcGVnJG1heEZhaWxQb3MgPSBwZWckY3VyclBvcztcbiAgICAgIHBlZyRtYXhGYWlsRXhwZWN0ZWQgPSBbXTtcbiAgICB9XG5cbiAgICBwZWckbWF4RmFpbEV4cGVjdGVkLnB1c2goZXhwZWN0ZWQpO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJGJ1aWxkU2ltcGxlRXJyb3IobWVzc2FnZSwgbG9jYXRpb24pIHtcbiAgICByZXR1cm4gbmV3IHBlZyRTeW50YXhFcnJvcihtZXNzYWdlLCBudWxsLCBudWxsLCBsb2NhdGlvbik7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckYnVpbGRTdHJ1Y3R1cmVkRXJyb3IoZXhwZWN0ZWQsIGZvdW5kLCBsb2NhdGlvbikge1xuICAgIHJldHVybiBuZXcgcGVnJFN5bnRheEVycm9yKFxuICAgICAgcGVnJFN5bnRheEVycm9yLmJ1aWxkTWVzc2FnZShleHBlY3RlZCwgZm91bmQpLFxuICAgICAgZXhwZWN0ZWQsXG4gICAgICBmb3VuZCxcbiAgICAgIGxvY2F0aW9uXG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUJpYmxpb2dyYXBoeSgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczM7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gcGVnJHBhcnNlX18oKTtcbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMyID0gW107XG4gICAgICBzMyA9IHBlZyRwYXJzZU5vZGUoKTtcbiAgICAgIHdoaWxlIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMi5wdXNoKHMzKTtcbiAgICAgICAgczMgPSBwZWckcGFyc2VOb2RlKCk7XG4gICAgICB9XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczMgPSBwZWckcGFyc2VfXygpO1xuICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICBzMSA9IHBlZyRjMChzMik7XG4gICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUNvbW1lbnQoKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzLCBzNCwgczUsIHM2LCBzNztcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA2NCkge1xuICAgICAgczEgPSBwZWckYzE7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMik7IH1cbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNykudG9Mb3dlckNhc2UoKSA9PT0gcGVnJGMzKSB7XG4gICAgICAgICAgczMgPSBpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDcpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM0KTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHM0ID0gcGVnJHBhcnNlX19oKCk7XG4gICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNSA9IHBlZyRwYXJzZUJyYWNlZENvbW1lbnQoKTtcbiAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczEgPSBwZWckYzUoczUpO1xuICAgICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cbiAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDY0KSB7XG4gICAgICAgIHMxID0gcGVnJGMxO1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMik7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMiA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDcpLnRvTG93ZXJDYXNlKCkgPT09IHBlZyRjMykge1xuICAgICAgICAgICAgczMgPSBpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDcpO1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgKz0gNztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzQpOyB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczQgPSBwZWckcGFyc2VfX2goKTtcbiAgICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNSA9IFtdO1xuICAgICAgICAgICAgICBpZiAocGVnJGM2LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgICBzNiA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzNiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzcpOyB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgd2hpbGUgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczUucHVzaChzNik7XG4gICAgICAgICAgICAgICAgaWYgKHBlZyRjNi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgICBzNiA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBzNiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNyk7IH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczYgPSBbXTtcbiAgICAgICAgICAgICAgICBpZiAocGVnJGM4LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgICAgIHM3ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHM3ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM5KTsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3aGlsZSAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM2LnB1c2goczcpO1xuICAgICAgICAgICAgICAgICAgaWYgKHBlZyRjOC50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHM3ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHM3ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzkpOyB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICBzMSA9IHBlZyRjMTAoczUpO1xuICAgICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICBzMSA9IHBlZyRjdXJyUG9zO1xuICAgICAgICBpZiAocGVnJGMxMS50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgczIgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMik7IH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMyA9IFtdO1xuICAgICAgICAgIGlmIChwZWckYzYudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgczQgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzcpOyB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHdoaWxlIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczMucHVzaChzNCk7XG4gICAgICAgICAgICBpZiAocGVnJGM2LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgczQgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNyk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMiA9IFtzMiwgczNdO1xuICAgICAgICAgICAgczEgPSBzMjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMTtcbiAgICAgICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMTtcbiAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczIgPSBbXTtcbiAgICAgICAgICBpZiAocGVnJGM4LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgIHMzID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM5KTsgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB3aGlsZSAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHMyLnB1c2goczMpO1xuICAgICAgICAgICAgaWYgKHBlZyRjOC50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgIHMzID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzkpOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICBzMSA9IHBlZyRjMTMoczEpO1xuICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VOb2RlKCkge1xuICAgIHZhciBzMCwgczE7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gcGVnJHBhcnNlQ29tbWVudCgpO1xuICAgIGlmIChzMSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczEgPSBwZWckcGFyc2VQcmVhbWJsZUV4cHJlc3Npb24oKTtcbiAgICAgIGlmIChzMSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMSA9IHBlZyRwYXJzZVN0cmluZ0RlY2xhcmF0aW9uKCk7XG4gICAgICAgIGlmIChzMSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMxID0gcGVnJHBhcnNlRW50cnkoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgczEgPSBwZWckYzE0KHMxKTtcbiAgICB9XG4gICAgczAgPSBzMTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUJyYWNlZENvbW1lbnQoKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzO1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyMykge1xuICAgICAgczEgPSBwZWckYzE1O1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE2KTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMyID0gW107XG4gICAgICBpZiAocGVnJGMxNy50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgIHMzID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE4KTsgfVxuICAgICAgfVxuICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMzID0gcGVnJHBhcnNlQnJhY2VkQ29tbWVudCgpO1xuICAgICAgfVxuICAgICAgd2hpbGUgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyLnB1c2goczMpO1xuICAgICAgICBpZiAocGVnJGMxNy50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgczMgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxOCk7IH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMyA9IHBlZyRwYXJzZUJyYWNlZENvbW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTI1KSB7XG4gICAgICAgICAgczMgPSBwZWckYzE5O1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyMCk7IH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICBzMSA9IHBlZyRjMjEoczIpO1xuICAgICAgICAgIHMwID0gczE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VFbnRyeSgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczMsIHM0LCBzNSwgczYsIHM3LCBzOCwgczksIHMxMCwgczExLCBzMTI7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gNjQpIHtcbiAgICAgIHMxID0gcGVnJGMxO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBwZWckcGFyc2VfXygpO1xuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHM0ID0gW107XG4gICAgICAgIGlmIChwZWckYzIyLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICBzNSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIzKTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHdoaWxlIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczQucHVzaChzNSk7XG4gICAgICAgICAgICBpZiAocGVnJGMyMi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgIHM1ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIzKTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczMgPSBpbnB1dC5zdWJzdHJpbmcoczMsIHBlZyRjdXJyUG9zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMyA9IHM0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHM0ID0gcGVnJHBhcnNlX18oKTtcbiAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIGlmIChwZWckYzI0LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgczUgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjUpOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczYgPSBwZWckcGFyc2VfXygpO1xuICAgICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZUVudHJ5SWQoKTtcbiAgICAgICAgICAgICAgICBpZiAoczcgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM3ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHM3ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBzOCA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgICAgICAgICAgICBpZiAoczggIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgczkgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgczEwID0gcGVnJHBhcnNlRmllbGQoKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHMxMCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgIHM5LnB1c2goczEwKTtcbiAgICAgICAgICAgICAgICAgICAgICBzMTAgPSBwZWckcGFyc2VGaWVsZCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChzOSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgIHMxMCA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHMxMCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBlZyRjMjYudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzMTEgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczExID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzI3KTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMxMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzMTIgPSBwZWckcGFyc2VfXygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoczEyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgczEgPSBwZWckYzI4KHMzLCBzNywgczkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VQcmVhbWJsZUV4cHJlc3Npb24oKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzLCBzNCwgczUsIHM2LCBzNywgczgsIHM5LCBzMTA7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gNjQpIHtcbiAgICAgIHMxID0gcGVnJGMxO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBwZWckcGFyc2VfXygpO1xuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDgpLnRvTG93ZXJDYXNlKCkgPT09IHBlZyRjMjkpIHtcbiAgICAgICAgICBzMyA9IGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgOCk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgKz0gODtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzMwKTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHM0ID0gcGVnJHBhcnNlX18oKTtcbiAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIGlmIChwZWckYzI0LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgczUgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjUpOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczYgPSBwZWckcGFyc2VfXygpO1xuICAgICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzNyA9IFtdO1xuICAgICAgICAgICAgICAgIHM4ID0gcGVnJHBhcnNlRW52aXJvbm1lbnQoKTtcbiAgICAgICAgICAgICAgICBpZiAoczggPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJHBhcnNlQmxvY2soKTtcbiAgICAgICAgICAgICAgICAgIGlmIChzOCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICBzOCA9IHBlZyRwYXJzZU1hdGgoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHM4ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgczggPSBwZWckcGFyc2VDb21tYW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHM4ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzOCA9IHBlZyRwYXJzZVRleHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgd2hpbGUgKHM4ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBzNy5wdXNoKHM4KTtcbiAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJHBhcnNlRW52aXJvbm1lbnQoKTtcbiAgICAgICAgICAgICAgICAgIGlmIChzOCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICBzOCA9IHBlZyRwYXJzZUJsb2NrKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzOCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJHBhcnNlTWF0aCgpO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChzOCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgczggPSBwZWckcGFyc2VDb21tYW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoczggPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczggPSBwZWckcGFyc2VUZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczggPSBwZWckcGFyc2VfXygpO1xuICAgICAgICAgICAgICAgICAgaWYgKHM4ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwZWckYzI2LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzOSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBzOSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzI3KTsgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChzOSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgIHMxMCA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHMxMCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICBzMSA9IHBlZyRjMzEoczUsIHM3LCBzOSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZVN0cmluZ0RlY2xhcmF0aW9uKCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMywgczQsIHM1LCBzNiwgczcsIHM4LCBzOSwgczEwLCBzMTEsIHMxMjtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA2NCkge1xuICAgICAgczEgPSBwZWckYzE7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMik7IH1cbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNikudG9Mb3dlckNhc2UoKSA9PT0gcGVnJGMzMikge1xuICAgICAgICAgIHMzID0gaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA2KTtcbiAgICAgICAgICBwZWckY3VyclBvcyArPSA2O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMzMpOyB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczQgPSBwZWckcGFyc2VfXygpO1xuICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgaWYgKHBlZyRjMjQudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICBzNSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyNSk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNiA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM3ID0gcGVnJHBhcnNlVmFyaWFibGVOYW1lKCk7XG4gICAgICAgICAgICAgICAgaWYgKHM3ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBzOCA9IHBlZyRwYXJzZUZpZWxkU2VwYXJhdG9yKCk7XG4gICAgICAgICAgICAgICAgICBpZiAoczggIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgczkgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgczEwID0gcGVnJHBhcnNlUmVndWxhclZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzMTAgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoczEwICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzOS5wdXNoKHMxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzMTAgPSBwZWckcGFyc2VSZWd1bGFyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgczkgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChzOSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgIHMxMCA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHMxMCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBlZyRjMjYudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzMTEgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczExID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzI3KTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMxMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzMTIgPSBwZWckcGFyc2VfXygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoczEyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgczEgPSBwZWckYzM0KHM3LCBzOSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUVudHJ5SWQoKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzLCBzNDtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckcGFyc2VfXygpO1xuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBwZWckY3VyclBvcztcbiAgICAgIHMzID0gW107XG4gICAgICBpZiAocGVnJGMzNS50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgIHM0ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzM2KTsgfVxuICAgICAgfVxuICAgICAgd2hpbGUgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMzLnB1c2goczQpO1xuICAgICAgICBpZiAocGVnJGMzNS50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgczQgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMzNik7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyID0gaW5wdXQuc3Vic3RyaW5nKHMyLCBwZWckY3VyclBvcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMiA9IHMzO1xuICAgICAgfVxuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMzID0gcGVnJHBhcnNlX18oKTtcbiAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA0NCkge1xuICAgICAgICAgICAgczQgPSBwZWckYzM3O1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzM4KTsgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgczEgPSBwZWckYzM5KHMyKTtcbiAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlRmllbGQoKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzLCBzNCwgczUsIHM2LCBzNywgczg7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gcGVnJHBhcnNlRmllbGROYW1lKCk7XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBwZWckc2F2ZWRQb3MgPSBwZWckY3VyclBvcztcbiAgICAgIHMyID0gcGVnJGM0MChzMSk7XG4gICAgICBpZiAoczIpIHtcbiAgICAgICAgczIgPSB2b2lkIDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczMgPSBwZWckcGFyc2VGaWVsZFNlcGFyYXRvcigpO1xuICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyMykge1xuICAgICAgICAgICAgczQgPSBwZWckYzE1O1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE2KTsgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHM1ID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICBwZWckc2lsZW50RmFpbHMrKztcbiAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTIzKSB7XG4gICAgICAgICAgICAgIHM2ID0gcGVnJGMxNTtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM2ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE2KTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzNTtcbiAgICAgICAgICAgICAgczUgPSB2b2lkIDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczYgPSBwZWckcGFyc2VWZXJiYXRpbUZpZWxkVmFsdWUoKTtcbiAgICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjUpIHtcbiAgICAgICAgICAgICAgICAgIHM3ID0gcGVnJGMxOTtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHM3ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyMCk7IH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHM3ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBzOCA9IHBlZyRwYXJzZUZpZWxkVGVybWluYXRvcigpO1xuICAgICAgICAgICAgICAgICAgaWYgKHM4ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICBzMSA9IHBlZyRjNDEoczEsIHM2KTtcbiAgICAgICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgczEgPSBwZWckcGFyc2VGaWVsZE5hbWUoKTtcbiAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBwZWckc2F2ZWRQb3MgPSBwZWckY3VyclBvcztcbiAgICAgICAgczIgPSBwZWckYzQyKHMxKTtcbiAgICAgICAgaWYgKHMyKSB7XG4gICAgICAgICAgczIgPSB2b2lkIDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMzID0gcGVnJHBhcnNlRmllbGRTZXBhcmF0b3IoKTtcbiAgICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHM0ID0gcGVnJHBhcnNlVmVyYmF0aW1GaWVsZFZhbHVlKCk7XG4gICAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczUgPSBwZWckcGFyc2VGaWVsZFRlcm1pbmF0b3IoKTtcbiAgICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczEgPSBwZWckYzQzKHMxLCBzNCk7XG4gICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHMxID0gcGVnJHBhcnNlRmllbGROYW1lKCk7XG4gICAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMyID0gcGVnJHBhcnNlRmllbGRTZXBhcmF0b3IoKTtcbiAgICAgICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlRmllbGRWYWx1ZSgpO1xuICAgICAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJHBhcnNlRmllbGRUZXJtaW5hdG9yKCk7XG4gICAgICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMxID0gcGVnJGM0NChzMSwgczMpO1xuICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VGaWVsZE5hbWUoKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzLCBzNDtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckcGFyc2VfXygpO1xuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBwZWckY3VyclBvcztcbiAgICAgIHMzID0gW107XG4gICAgICBpZiAocGVnJGM0NS50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgIHM0ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzQ2KTsgfVxuICAgICAgfVxuICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHdoaWxlIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMzLnB1c2goczQpO1xuICAgICAgICAgIGlmIChwZWckYzQ1LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgIHM0ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM0Nik7IH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMiA9IGlucHV0LnN1YnN0cmluZyhzMiwgcGVnJGN1cnJQb3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczIgPSBzMztcbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgczEgPSBwZWckYzQ3KHMyKTtcbiAgICAgICAgczAgPSBzMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VWZXJiYXRpbUZpZWxkVmFsdWUoKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzO1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDM0KSB7XG4gICAgICBzMSA9IHBlZyRjNDg7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNDkpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBwZWckcGFyc2VUZXh0Tm9RdW90ZXMoKTtcbiAgICAgIGlmIChzMiA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMiA9IG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAzNCkge1xuICAgICAgICAgIHMzID0gcGVnJGM0ODtcbiAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNDkpOyB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgczEgPSBwZWckYzUwKHMyKTtcbiAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTIzKSB7XG4gICAgICAgIHMxID0gcGVnJGMxNTtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE2KTsgfVxuICAgICAgfVxuICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyID0gW107XG4gICAgICAgIHMzID0gcGVnJHBhcnNlVmVyYmF0aW1UZXh0KCk7XG4gICAgICAgIHdoaWxlIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMyLnB1c2goczMpO1xuICAgICAgICAgIHMzID0gcGVnJHBhcnNlVmVyYmF0aW1UZXh0KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjUpIHtcbiAgICAgICAgICAgIHMzID0gcGVnJGMxOTtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyMCk7IH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgIHMxID0gcGVnJGM1MShzMik7XG4gICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZVZlcmJhdGltVGV4dCgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczM7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gcGVnJGN1cnJQb3M7XG4gICAgczIgPSBbXTtcbiAgICBpZiAocGVnJGMxNy50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICBzMyA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTgpOyB9XG4gICAgfVxuICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgd2hpbGUgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyLnB1c2goczMpO1xuICAgICAgICBpZiAocGVnJGMxNy50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgczMgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxOCk7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczEgPSBpbnB1dC5zdWJzdHJpbmcoczEsIHBlZyRjdXJyUG9zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBzMjtcbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgIHMxID0gcGVnJGM1MihzMSk7XG4gICAgfVxuICAgIHMwID0gczE7XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjMpIHtcbiAgICAgICAgczEgPSBwZWckYzE1O1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTYpOyB9XG4gICAgICB9XG4gICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIgPSBbXTtcbiAgICAgICAgczMgPSBwZWckcGFyc2VWZXJiYXRpbVRleHQoKTtcbiAgICAgICAgd2hpbGUgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczIucHVzaChzMyk7XG4gICAgICAgICAgczMgPSBwZWckcGFyc2VWZXJiYXRpbVRleHQoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyNSkge1xuICAgICAgICAgICAgczMgPSBwZWckYzE5O1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIwKTsgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgczEgPSBwZWckYzUzKHMyKTtcbiAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlRmllbGRWYWx1ZSgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczM7XG5cbiAgICBzMCA9IHBlZyRwYXJzZU51bWJlcigpO1xuICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHBlZyRjdXJyUG9zO1xuICAgICAgczEgPSBwZWckYzU0KCk7XG4gICAgICBpZiAoczEpIHtcbiAgICAgICAgczEgPSB2b2lkIDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIgPSBbXTtcbiAgICAgICAgczMgPSBwZWckcGFyc2VSZWd1bGFyVmFsdWUoKTtcbiAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczMgPSBwZWckcGFyc2VTdHJpbmdWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMyLnB1c2goczMpO1xuICAgICAgICAgIHMzID0gcGVnJHBhcnNlUmVndWxhclZhbHVlKCk7XG4gICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMyA9IHBlZyRwYXJzZVN0cmluZ1ZhbHVlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgIHMxID0gcGVnJGM1NShzMik7XG4gICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZVJlZ3VsYXJWYWx1ZSgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczMsIHM0LCBzNTtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAzNCkge1xuICAgICAgczEgPSBwZWckYzQ4O1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzQ5KTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMyID0gW107XG4gICAgICBzMyA9IHBlZyRwYXJzZUVudmlyb25tZW50KCk7XG4gICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczMgPSBwZWckcGFyc2VCbG9jaygpO1xuICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMyA9IHBlZyRwYXJzZU1hdGgoKTtcbiAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlQ29tbWFuZCgpO1xuICAgICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlVGV4dE5vUXVvdGVzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB3aGlsZSAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIucHVzaChzMyk7XG4gICAgICAgIHMzID0gcGVnJHBhcnNlRW52aXJvbm1lbnQoKTtcbiAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczMgPSBwZWckcGFyc2VCbG9jaygpO1xuICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczMgPSBwZWckcGFyc2VNYXRoKCk7XG4gICAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczMgPSBwZWckcGFyc2VDb21tYW5kKCk7XG4gICAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlVGV4dE5vUXVvdGVzKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDM0KSB7XG4gICAgICAgICAgczMgPSBwZWckYzQ4O1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM0OSk7IH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzNCA9IHBlZyRwYXJzZUNvbmNhdCgpO1xuICAgICAgICAgIGlmIChzNCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczQgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgczEgPSBwZWckYzU2KHMyKTtcbiAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDYpID09PSBwZWckYzU3KSB7XG4gICAgICAgIHMxID0gcGVnJGM1NztcbiAgICAgICAgcGVnJGN1cnJQb3MgKz0gNjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzU4KTsgfVxuICAgICAgfVxuICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgICAgICBpZiAocGVnJGM1OS50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgczMgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM2MCk7IH1cbiAgICAgICAgfVxuICAgICAgICBwZWckc2lsZW50RmFpbHMtLTtcbiAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczIgPSB2b2lkIDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMjtcbiAgICAgICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczMgPSBbXTtcbiAgICAgICAgICBzNCA9IHBlZyRwYXJzZVZlcmJhdGltVGV4dCgpO1xuICAgICAgICAgIHdoaWxlIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczMucHVzaChzNCk7XG4gICAgICAgICAgICBzNCA9IHBlZyRwYXJzZVZlcmJhdGltVGV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTI1KSB7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJGMxOTtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIwKTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlQ29uY2F0KCk7XG4gICAgICAgICAgICAgIGlmIChzNSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM1ID0gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMSA9IHBlZyRjNTEoczMpO1xuICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyMykge1xuICAgICAgICAgIHMxID0gcGVnJGMxNTtcbiAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTYpOyB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczIgPSBbXTtcbiAgICAgICAgICBzMyA9IHBlZyRwYXJzZUVudmlyb25tZW50KCk7XG4gICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMyA9IHBlZyRwYXJzZUJsb2NrKCk7XG4gICAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczMgPSBwZWckcGFyc2VNYXRoKCk7XG4gICAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlQ29tbWFuZCgpO1xuICAgICAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczMgPSBwZWckcGFyc2VUZXh0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHdoaWxlIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczIucHVzaChzMyk7XG4gICAgICAgICAgICBzMyA9IHBlZyRwYXJzZUVudmlyb25tZW50KCk7XG4gICAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczMgPSBwZWckcGFyc2VCbG9jaygpO1xuICAgICAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzMyA9IHBlZyRwYXJzZU1hdGgoKTtcbiAgICAgICAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlQ29tbWFuZCgpO1xuICAgICAgICAgICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlVGV4dCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTI1KSB7XG4gICAgICAgICAgICAgIHMzID0gcGVnJGMxOTtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIwKTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJHBhcnNlQ29uY2F0KCk7XG4gICAgICAgICAgICAgIGlmIChzNCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM0ID0gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMSA9IHBlZyRjNTYoczIpO1xuICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgICAgICBzMSA9IHBlZyRwYXJzZVN0cmluZ1JlZmVyZW5jZSgpO1xuICAgICAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczIgPSBwZWckcGFyc2VDb25jYXQoKTtcbiAgICAgICAgICAgIGlmIChzMiA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzMiA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgIHMxID0gcGVnJGM1NihzMSk7XG4gICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlU3RyaW5nVmFsdWUoKSB7XG4gICAgdmFyIHMwLCBzMSwgczI7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gcGVnJHBhcnNlU3RyaW5nUmVmZXJlbmNlKCk7XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IHBlZyRwYXJzZUNvbmNhdCgpO1xuICAgICAgaWYgKHMyID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgczEgPSBwZWckYzU2KHMxKTtcbiAgICAgICAgczAgPSBzMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VUZXh0KCkge1xuICAgIHZhciBzMCwgczEsIHMyO1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBzMSA9IFtdO1xuICAgIGlmIChwZWckYzYxLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgIHMyID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM2Mik7IH1cbiAgICB9XG4gICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICB3aGlsZSAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczEucHVzaChzMik7XG4gICAgICAgIGlmIChwZWckYzYxLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICBzMiA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzYyKTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgIHMxID0gcGVnJGM2MyhzMSk7XG4gICAgfVxuICAgIHMwID0gczE7XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VUZXh0Tm9RdW90ZXMoKSB7XG4gICAgdmFyIHMwLCBzMSwgczI7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gW107XG4gICAgaWYgKHBlZyRjNjQudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgczIgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzY1KTsgfVxuICAgIH1cbiAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHdoaWxlIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMS5wdXNoKHMyKTtcbiAgICAgICAgaWYgKHBlZyRjNjQudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgIHMyID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNjUpOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgczEgPSBwZWckYzYzKHMxKTtcbiAgICB9XG4gICAgczAgPSBzMTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZU51bWJlcigpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczM7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gcGVnJGN1cnJQb3M7XG4gICAgczIgPSBbXTtcbiAgICBpZiAocGVnJGM2Ni50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICBzMyA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNjcpOyB9XG4gICAgfVxuICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgd2hpbGUgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyLnB1c2goczMpO1xuICAgICAgICBpZiAocGVnJGM2Ni50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgczMgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM2Nyk7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczEgPSBpbnB1dC5zdWJzdHJpbmcoczEsIHBlZyRjdXJyUG9zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBzMjtcbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgIHMxID0gcGVnJGM2OChzMSk7XG4gICAgfVxuICAgIHMwID0gczE7XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VTdHJpbmdSZWZlcmVuY2UoKSB7XG4gICAgdmFyIHMwLCBzMTtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckcGFyc2VWYXJpYWJsZU5hbWUoKTtcbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgczEgPSBwZWckYzY5KHMxKTtcbiAgICB9XG4gICAgczAgPSBzMTtcblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUVudmlyb25tZW50KCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMywgczQsIHM1LCBzNiwgczcsIHM4O1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA3KSA9PT0gcGVnJGM3MCkge1xuICAgICAgczEgPSBwZWckYzcwO1xuICAgICAgcGVnJGN1cnJQb3MgKz0gNztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzcxKTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMyID0gcGVnJGN1cnJQb3M7XG4gICAgICBzMyA9IFtdO1xuICAgICAgaWYgKHBlZyRjNzIudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICBzNCA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM3Myk7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICB3aGlsZSAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMy5wdXNoKHM0KTtcbiAgICAgICAgICBpZiAocGVnJGM3Mi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICBzNCA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjNzMpOyB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczIgPSBpbnB1dC5zdWJzdHJpbmcoczIsIHBlZyRjdXJyUG9zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMyID0gczM7XG4gICAgICB9XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjUpIHtcbiAgICAgICAgICBzMyA9IHBlZyRjMTk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIwKTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHM0ID0gW107XG4gICAgICAgICAgczUgPSBwZWckcGFyc2VFbnZpcm9ubWVudCgpO1xuICAgICAgICAgIGlmIChzNSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczUgPSBwZWckcGFyc2VCbG9jaygpO1xuICAgICAgICAgICAgaWYgKHM1ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlQ29tbWFuZCgpO1xuICAgICAgICAgICAgICBpZiAoczUgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzNSA9IHBlZyRwYXJzZU1hdGgoKTtcbiAgICAgICAgICAgICAgICBpZiAoczUgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlVGV4dCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB3aGlsZSAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHM0LnB1c2goczUpO1xuICAgICAgICAgICAgczUgPSBwZWckcGFyc2VFbnZpcm9ubWVudCgpO1xuICAgICAgICAgICAgaWYgKHM1ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlQmxvY2soKTtcbiAgICAgICAgICAgICAgaWYgKHM1ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczUgPSBwZWckcGFyc2VDb21tYW5kKCk7XG4gICAgICAgICAgICAgICAgaWYgKHM1ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBzNSA9IHBlZyRwYXJzZU1hdGgoKTtcbiAgICAgICAgICAgICAgICAgIGlmIChzNSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICBzNSA9IHBlZyRwYXJzZVRleHQoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA1KSA9PT0gcGVnJGM3NCkge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRjNzQ7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM3NSk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNiA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICBzNyA9IFtdO1xuICAgICAgICAgICAgICBpZiAocGVnJGM3Mi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgczggPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczggPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM3Myk7IH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczggIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICB3aGlsZSAoczggIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM3LnB1c2goczgpO1xuICAgICAgICAgICAgICAgICAgaWYgKHBlZyRjNzIudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICAgICAgICBzOCA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzOCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM3Myk7IH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczcgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM2ID0gaW5wdXQuc3Vic3RyaW5nKHM2LCBwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczYgPSBzNztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyNSkge1xuICAgICAgICAgICAgICAgICAgczcgPSBwZWckYzE5O1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgczcgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIwKTsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICAgICAgczggPSBwZWckYzc2KHMyLCBzNCwgczYpO1xuICAgICAgICAgICAgICAgICAgaWYgKHM4KSB7XG4gICAgICAgICAgICAgICAgICAgIHM4ID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgczggPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgaWYgKHM4ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICBzMSA9IHBlZyRjNzcoczIsIHM0LCBzNik7XG4gICAgICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlQmxvY2soKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzLCBzNCwgczUsIHM2O1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCAyKSA9PT0gcGVnJGM3OCkge1xuICAgICAgczEgPSBwZWckYzc4O1xuICAgICAgcGVnJGN1cnJQb3MgKz0gMjtcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzc5KTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMyID0gcGVnJHBhcnNlRXh0ZW5kZWREaWFjcml0aWMoKTtcbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMyA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIGlmIChwZWckYzcyLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgIHM0ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM3Myk7IH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHM0ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA5Mikge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRjODA7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4MSk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBpZiAocGVnJGM4Mi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgczYgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczYgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4Myk7IH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzNSA9IFtzNSwgczZdO1xuICAgICAgICAgICAgICAgIHM0ID0gczU7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzNDtcbiAgICAgICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczQ7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyNSkge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRjMTk7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyMCk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczEgPSBwZWckYzg0KHMyLCBzNCk7XG4gICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDYpID09PSBwZWckYzU3KSB7XG4gICAgICAgIHMxID0gcGVnJGM1NztcbiAgICAgICAgcGVnJGN1cnJQb3MgKz0gNjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzU4KTsgfVxuICAgICAgfVxuICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgICAgICBpZiAocGVnJGM1OS50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgczMgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM2MCk7IH1cbiAgICAgICAgfVxuICAgICAgICBwZWckc2lsZW50RmFpbHMtLTtcbiAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczIgPSB2b2lkIDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMjtcbiAgICAgICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczMgPSBbXTtcbiAgICAgICAgICBzNCA9IHBlZyRwYXJzZVZlcmJhdGltVGV4dCgpO1xuICAgICAgICAgIHdoaWxlIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczMucHVzaChzNCk7XG4gICAgICAgICAgICBzNCA9IHBlZyRwYXJzZVZlcmJhdGltVGV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTI1KSB7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJGMxOTtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIwKTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMSA9IHBlZyRjODUoczMpO1xuICAgICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTIzKSB7XG4gICAgICAgICAgczEgPSBwZWckYzE1O1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNik7IH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMiA9IFtdO1xuICAgICAgICAgIHMzID0gcGVnJHBhcnNlRW52aXJvbm1lbnQoKTtcbiAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlQmxvY2soKTtcbiAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzMyA9IHBlZyRwYXJzZUNvbW1hbmQoKTtcbiAgICAgICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczMgPSBwZWckcGFyc2VNYXRoKCk7XG4gICAgICAgICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBzMyA9IHBlZyRwYXJzZVRleHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgd2hpbGUgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMi5wdXNoKHMzKTtcbiAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlRW52aXJvbm1lbnQoKTtcbiAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzMyA9IHBlZyRwYXJzZUJsb2NrKCk7XG4gICAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHMzID0gcGVnJHBhcnNlQ29tbWFuZCgpO1xuICAgICAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczMgPSBwZWckcGFyc2VNYXRoKCk7XG4gICAgICAgICAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgczMgPSBwZWckcGFyc2VUZXh0KCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjUpIHtcbiAgICAgICAgICAgICAgczMgPSBwZWckYzE5O1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjApOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgIHMxID0gcGVnJGM4NihzMik7XG4gICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlTWF0aCgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczMsIHM0LCBzNSwgczY7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHBlZyRzYXZlZFBvcyA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gcGVnJGM4NygpO1xuICAgIGlmIChzMSkge1xuICAgICAgczEgPSB2b2lkIDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDM2KSB7XG4gICAgICAgIHMyID0gcGVnJGM4ODtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzg5KTsgfVxuICAgICAgfVxuICAgICAgaWYgKHMyID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDIpID09PSBwZWckYzkwKSB7XG4gICAgICAgICAgczIgPSBwZWckYzkwO1xuICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM5MSk7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHBlZyRzYXZlZFBvcyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICBzMyA9IHBlZyRjOTIoczIpO1xuICAgICAgICBpZiAoczMpIHtcbiAgICAgICAgICBzMyA9IHZvaWQgMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczQgPSBbXTtcbiAgICAgICAgICBzNSA9IHBlZyRwYXJzZUJsb2NrKCk7XG4gICAgICAgICAgaWYgKHM1ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNSA9IHBlZyRwYXJzZUNvbW1hbmQoKTtcbiAgICAgICAgICAgIGlmIChzNSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRwYXJzZVRleHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgd2hpbGUgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNC5wdXNoKHM1KTtcbiAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlQmxvY2soKTtcbiAgICAgICAgICAgIGlmIChzNSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRwYXJzZUNvbW1hbmQoKTtcbiAgICAgICAgICAgICAgaWYgKHM1ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczUgPSBwZWckcGFyc2VUZXh0KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDM2KSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJGM4ODtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzg5KTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHM1ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDIpID09PSBwZWckYzkwKSB7XG4gICAgICAgICAgICAgICAgczUgPSBwZWckYzkwO1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDI7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM5MSk7IH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICBzNiA9IHBlZyRjOTMoczIsIHM0KTtcbiAgICAgICAgICAgICAgaWYgKHM2KSB7XG4gICAgICAgICAgICAgICAgczYgPSB2b2lkIDA7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczYgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMxID0gcGVnJGM5NChzMiwgczQpO1xuICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VMaW5lQ29tbWVudCgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczMsIHM0LCBzNTtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAzNykge1xuICAgICAgczEgPSBwZWckYzk1O1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzk2KTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHMyID0gcGVnJHBhcnNlX19oKCk7XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczMgPSBwZWckY3VyclBvcztcbiAgICAgICAgczQgPSBbXTtcbiAgICAgICAgaWYgKHBlZyRjOTcudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgIHM1ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjOTgpOyB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgd2hpbGUgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNC5wdXNoKHM1KTtcbiAgICAgICAgICAgIGlmIChwZWckYzk3LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgczUgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjOTgpOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMyA9IGlucHV0LnN1YnN0cmluZyhzMywgcGVnJGN1cnJQb3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMzID0gczQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczQgPSBbXTtcbiAgICAgICAgICBzNSA9IHBlZyRwYXJzZUVPTCgpO1xuICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgd2hpbGUgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM0LnB1c2goczUpO1xuICAgICAgICAgICAgICBzNSA9IHBlZyRwYXJzZUVPTCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICBzMSA9IHBlZyRjOTkoczMpO1xuICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VDb21tYW5kKCkge1xuICAgIHZhciBzMDtcblxuICAgIHMwID0gcGVnJHBhcnNlU2NyaXB0Q29tbWFuZCgpO1xuICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczAgPSBwZWckcGFyc2VEaWFjcml0aWNDb21tYW5kKCk7XG4gICAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczAgPSBwZWckcGFyc2VSZWd1bGFyQ29tbWFuZCgpO1xuICAgICAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMCA9IHBlZyRwYXJzZVN5bWJvbENvbW1hbmQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZVNjcmlwdENvbW1hbmQoKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzO1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAocGVnJGMxMDAudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgczEgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzEwMSk7IH1cbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IHBlZyRwYXJzZV9faCgpO1xuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMzID0gcGVnJHBhcnNlUmVxdWlyZWRBcmd1bWVudCgpO1xuICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICBzMSA9IHBlZyRjMTAyKHMxLCBzMyk7XG4gICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZURpYWNyaXRpY0NvbW1hbmQoKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzLCBzNCwgczUsIHM2O1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDkyKSB7XG4gICAgICBzMSA9IHBlZyRjODA7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjODEpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBwZWckcGFyc2VTaW1wbGVEaWFjcml0aWMoKTtcbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMyA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIGlmIChwZWckYzcyLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgIHM0ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM3Myk7IH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHM0ID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzNCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA5Mikge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRjODA7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4MSk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBpZiAocGVnJGM4Mi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgczYgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczYgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4Myk7IH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzNSA9IFtzNSwgczZdO1xuICAgICAgICAgICAgICAgIHM0ID0gczU7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzNDtcbiAgICAgICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczQ7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgIHMxID0gcGVnJGM4NChzMiwgczQpO1xuICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA5Mikge1xuICAgICAgICBzMSA9IHBlZyRjODA7XG4gICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4MSk7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMiA9IHBlZyRwYXJzZUV4dGVuZGVkRGlhY3JpdGljKCk7XG4gICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTIzKSB7XG4gICAgICAgICAgICBzMyA9IHBlZyRjMTU7XG4gICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTYpOyB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgaWYgKHBlZyRjNzIudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICBzNCA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM3Myk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDkyKSB7XG4gICAgICAgICAgICAgICAgczUgPSBwZWckYzgwO1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4MSk7IH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBpZiAocGVnJGM4Mi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgICBzNiA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBzNiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjODMpOyB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczUgPSBbczUsIHM2XTtcbiAgICAgICAgICAgICAgICAgIHM0ID0gczU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczQ7XG4gICAgICAgICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczQ7XG4gICAgICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSAxMjUpIHtcbiAgICAgICAgICAgICAgICBzNSA9IHBlZyRjMTk7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIwKTsgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMxID0gcGVnJGM4NChzMiwgczQpO1xuICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDkyKSB7XG4gICAgICAgICAgczEgPSBwZWckYzgwO1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4MSk7IH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMiA9IHBlZyRwYXJzZUV4dGVuZGVkRGlhY3JpdGljKCk7XG4gICAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyMykge1xuICAgICAgICAgICAgICBzNCA9IHBlZyRjMTU7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNik7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICAgIHMzID0gdm9pZCAwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJHBhcnNlUmVndWxhclZhbHVlKCk7XG4gICAgICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMxID0gcGVnJGMxMDMoczIsIHM0KTtcbiAgICAgICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlU3ltYm9sQ29tbWFuZCgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczM7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gOTIpIHtcbiAgICAgIHMxID0gcGVnJGM4MDtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4MSk7IH1cbiAgICB9XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMiA9IHBlZyRjdXJyUG9zO1xuICAgICAgaWYgKHBlZyRjMTA0LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgczMgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTA1KTsgfVxuICAgICAgfVxuICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyID0gaW5wdXQuc3Vic3RyaW5nKHMyLCBwZWckY3VyclBvcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMiA9IHMzO1xuICAgICAgfVxuICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICBzMSA9IHBlZyRjMTA2KHMyKTtcbiAgICAgICAgczAgPSBzMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VSZWd1bGFyQ29tbWFuZCgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczMsIHM0LCBzNSwgczYsIHM3LCBzOCwgczksIHMxMDtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA5Mikge1xuICAgICAgczEgPSBwZWckYzgwO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzgxKTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDEwKSA9PT0gcGVnJGMxMDcpIHtcbiAgICAgICAgczIgPSBwZWckYzEwNztcbiAgICAgICAgcGVnJGN1cnJQb3MgKz0gMTA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMDgpOyB9XG4gICAgICB9XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczMgPSBwZWckcGFyc2VCbG9jaygpO1xuICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBwZWckY3VyclBvcztcbiAgICAgICAgICBzNCA9IHBlZyRjMTA5KHMyLCBzMyk7XG4gICAgICAgICAgaWYgKHM0KSB7XG4gICAgICAgICAgICBzNCA9IHZvaWQgMDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHM1ID0gW107XG4gICAgICAgICAgICBzNiA9IHBlZyRwYXJzZU9wdGlvbmFsQXJndW1lbnQoKTtcbiAgICAgICAgICAgIHdoaWxlIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNS5wdXNoKHM2KTtcbiAgICAgICAgICAgICAgczYgPSBwZWckcGFyc2VPcHRpb25hbEFyZ3VtZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczYgPSBwZWckcGFyc2VSZXF1aXJlZEFyZ3VtZW50KCk7XG4gICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICAgIHMxID0gcGVnJGMxMTAoczIsIHMzLCBzNSwgczYpO1xuICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA5Mikge1xuICAgICAgICBzMSA9IHBlZyRjODA7XG4gICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4MSk7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMiA9IHBlZyRjdXJyUG9zO1xuICAgICAgICBwZWckc2lsZW50RmFpbHMrKztcbiAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNSkgPT09IHBlZyRjMTExKSB7XG4gICAgICAgICAgczMgPSBwZWckYzExMTtcbiAgICAgICAgICBwZWckY3VyclBvcyArPSA1O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTEyKTsgfVxuICAgICAgICB9XG4gICAgICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMiA9IHZvaWQgMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMyO1xuICAgICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDMpID09PSBwZWckYzExMykge1xuICAgICAgICAgICAgczQgPSBwZWckYzExMztcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDM7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMTQpOyB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgICAgICAgIGlmIChzNCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczMgPSB2b2lkIDA7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczQgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgIHM1ID0gW107XG4gICAgICAgICAgICBpZiAocGVnJGMyMi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgIHM2ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM2ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIzKTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgIHdoaWxlIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM1LnB1c2goczYpO1xuICAgICAgICAgICAgICAgIGlmIChwZWckYzIyLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgICAgIHM2ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHM2ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyMyk7IH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNCA9IGlucHV0LnN1YnN0cmluZyhzNCwgcGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczQgPSBzNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgICAgczUgPSBwZWckYzExNShzNCk7XG4gICAgICAgICAgICAgIGlmIChzNSkge1xuICAgICAgICAgICAgICAgIHM1ID0gdm9pZCAwO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzNiA9IFtdO1xuICAgICAgICAgICAgICAgIHM3ID0gcGVnJHBhcnNlT3B0aW9uYWxBcmd1bWVudCgpO1xuICAgICAgICAgICAgICAgIHdoaWxlIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczYucHVzaChzNyk7XG4gICAgICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZU9wdGlvbmFsQXJndW1lbnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZV9faCgpO1xuICAgICAgICAgICAgICAgICAgaWYgKHM3ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDEyMykge1xuICAgICAgICAgICAgICAgICAgICAgIHM5ID0gcGVnJGMxNTtcbiAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHM5ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTYpOyB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgICAgICAgICAgICAgICAgIGlmIChzOSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczg7XG4gICAgICAgICAgICAgICAgICAgICAgczggPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgczggPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChzOCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgIHM5ID0gcGVnJHBhcnNlVmVyYmF0aW1GaWVsZFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHM5ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzMTAgPSBwZWckcGFyc2VWZXJiYXRpbUZpZWxkVmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzMTAgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMxID0gcGVnJGMxMTYoczQsIHM2LCBzOSwgczEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDkyKSB7XG4gICAgICAgICAgczEgPSBwZWckYzgwO1xuICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGM4MSk7IH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMiA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDUpID09PSBwZWckYzExMSkge1xuICAgICAgICAgICAgczMgPSBwZWckYzExMTtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMTIpOyB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczIgPSB2b2lkIDA7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczI7XG4gICAgICAgICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczMgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMykgPT09IHBlZyRjMTEzKSB7XG4gICAgICAgICAgICAgIHM0ID0gcGVnJGMxMTM7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMTQpOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwZWckc2lsZW50RmFpbHMtLTtcbiAgICAgICAgICAgIGlmIChzNCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzMyA9IHZvaWQgMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczM7XG4gICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzNCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICBzNSA9IFtdO1xuICAgICAgICAgICAgICBpZiAocGVnJGMyMi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgczYgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczYgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyMyk7IH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICB3aGlsZSAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM1LnB1c2goczYpO1xuICAgICAgICAgICAgICAgICAgaWYgKHBlZyRjMjIudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICAgICAgICBzNiA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzNiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyMyk7IH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgIHM0ID0gaW5wdXQuc3Vic3RyaW5nKHM0LCBwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgczQgPSBzNTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgICAgICBzNSA9IHBlZyRjMTE3KHM0KTtcbiAgICAgICAgICAgICAgICBpZiAoczUpIHtcbiAgICAgICAgICAgICAgICAgIHM1ID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgczYgPSBbXTtcbiAgICAgICAgICAgICAgICAgIHM3ID0gcGVnJHBhcnNlT3B0aW9uYWxBcmd1bWVudCgpO1xuICAgICAgICAgICAgICAgICAgd2hpbGUgKHM3ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgIHM2LnB1c2goczcpO1xuICAgICAgICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZU9wdGlvbmFsQXJndW1lbnQoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZV9faCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzOCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMTIzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzOSA9IHBlZyRjMTU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzOSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTYpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChzOSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzODtcbiAgICAgICAgICAgICAgICAgICAgICAgIHM4ID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzOCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIGlmIChzOCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgczkgPSBwZWckcGFyc2VWZXJiYXRpbUZpZWxkVmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzOSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczEgPSBwZWckYzExOChzNCwgczYsIHM5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBzMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDkyKSB7XG4gICAgICAgICAgICBzMSA9IHBlZyRjODA7XG4gICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjODEpOyB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczIgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgNSkgPT09IHBlZyRjMTExKSB7XG4gICAgICAgICAgICAgIHMzID0gcGVnJGMxMTE7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zICs9IDU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMTIpOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwZWckc2lsZW50RmFpbHMtLTtcbiAgICAgICAgICAgIGlmIChzMyA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzMiA9IHZvaWQgMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczI7XG4gICAgICAgICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBzMyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICBwZWckc2lsZW50RmFpbHMrKztcbiAgICAgICAgICAgICAgaWYgKGlucHV0LnN1YnN0cihwZWckY3VyclBvcywgMykgPT09IHBlZyRjMTEzKSB7XG4gICAgICAgICAgICAgICAgczQgPSBwZWckYzExMztcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyArPSAzO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTE0KTsgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgICAgICAgICAgICBpZiAoczQgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzMyA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgICAgIHMzID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICBzNCA9IHBlZyRjdXJyUG9zO1xuICAgICAgICAgICAgICAgIHM1ID0gW107XG4gICAgICAgICAgICAgICAgaWYgKHBlZyRjMjIudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICAgICAgczYgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgczYgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzIzKTsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHdoaWxlIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICBzNS5wdXNoKHM2KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBlZyRjMjIudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICAgICAgICAgIHM2ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHM2ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjMpOyB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgczUgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM0ID0gaW5wdXQuc3Vic3RyaW5nKHM0LCBwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHM0ID0gczU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICAgICAgICBzNSA9IHBlZyRjMTE5KHM0KTtcbiAgICAgICAgICAgICAgICAgIGlmIChzNSkge1xuICAgICAgICAgICAgICAgICAgICBzNSA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICBzNiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZU9wdGlvbmFsQXJndW1lbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHM3ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgczYucHVzaChzNyk7XG4gICAgICAgICAgICAgICAgICAgICAgczcgPSBwZWckcGFyc2VPcHRpb25hbEFyZ3VtZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgczcgPSBwZWckcGFyc2VfX2goKTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHM4ID0gcGVnJHBhcnNlUmVxdWlyZWRBcmd1bWVudCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHM4ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHM5ID0gcGVnJHBhcnNlUmVxdWlyZWRBcmd1bWVudCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoczkgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMSA9IHBlZyRjMTIwKHM0LCBzNiwgczgsIHM5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gOTIpIHtcbiAgICAgICAgICAgICAgczEgPSBwZWckYzgwO1xuICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjODEpOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczIgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDUpID09PSBwZWckYzExMSkge1xuICAgICAgICAgICAgICAgIHMzID0gcGVnJGMxMTE7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgKz0gNTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzExMik7IH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwZWckc2lsZW50RmFpbHMtLTtcbiAgICAgICAgICAgICAgaWYgKHMzID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczIgPSB2b2lkIDA7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMjtcbiAgICAgICAgICAgICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHMyICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczMgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgICAgICBwZWckc2lsZW50RmFpbHMrKztcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCAzKSA9PT0gcGVnJGMxMTMpIHtcbiAgICAgICAgICAgICAgICAgIHM0ID0gcGVnJGMxMTM7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyArPSAzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTE0KTsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwZWckc2lsZW50RmFpbHMtLTtcbiAgICAgICAgICAgICAgICBpZiAoczQgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHMzID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgICAgICAgczMgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHM0ID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICAgICAgICBzNSA9IFtdO1xuICAgICAgICAgICAgICAgICAgaWYgKHBlZyRjMjIudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICAgICAgICBzNiA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzNiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMyMyk7IH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzNS5wdXNoKHM2KTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGVnJGMyMi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzNiA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzNiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjMpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgczQgPSBpbnB1dC5zdWJzdHJpbmcoczQsIHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHM0ID0gczU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICAgICAgICAgIHM1ID0gcGVnJGMxMjEoczQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoczUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzNSA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHM1ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgczYgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICBzNyA9IHBlZyRwYXJzZU9wdGlvbmFsQXJndW1lbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoczcgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHM2LnB1c2goczcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgczcgPSBwZWckcGFyc2VPcHRpb25hbEFyZ3VtZW50KCk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIGlmIChzNiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgczcgPSBwZWckcGFyc2VfX2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzNyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzOCA9IHBlZyRwYXJzZVJlcXVpcmVkQXJndW1lbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHM4ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVnJHNhdmVkUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgczEgPSBwZWckYzEyMihzNCwgczYsIHM4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoczAgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA5Mikge1xuICAgICAgICAgICAgICAgIHMxID0gcGVnJGM4MDtcbiAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjODEpOyB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgczIgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgICAgICBwZWckc2lsZW50RmFpbHMrKztcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQuc3Vic3RyKHBlZyRjdXJyUG9zLCA1KSA9PT0gcGVnJGMxMTEpIHtcbiAgICAgICAgICAgICAgICAgIHMzID0gcGVnJGMxMTE7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyArPSA1O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTEyKTsgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwZWckc2lsZW50RmFpbHMtLTtcbiAgICAgICAgICAgICAgICBpZiAoczMgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHMyID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMyO1xuICAgICAgICAgICAgICAgICAgczIgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgIHMzID0gcGVnJGN1cnJQb3M7XG4gICAgICAgICAgICAgICAgICBwZWckc2lsZW50RmFpbHMrKztcbiAgICAgICAgICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIocGVnJGN1cnJQb3MsIDMpID09PSBwZWckYzExMykge1xuICAgICAgICAgICAgICAgICAgICBzNCA9IHBlZyRjMTEzO1xuICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyArPSAzO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgczQgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTE0KTsgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgICAgICAgICAgICAgICBpZiAoczQgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgczMgPSB2b2lkIDA7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMzO1xuICAgICAgICAgICAgICAgICAgICBzMyA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgczQgPSBwZWckY3VyclBvcztcbiAgICAgICAgICAgICAgICAgICAgczUgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBlZyRjMjIudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICAgICAgICAgIHM2ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHM2ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjMpOyB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzNS5wdXNoKHM2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwZWckYzIyLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczYgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgczYgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMjMpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoczUgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzNCA9IGlucHV0LnN1YnN0cmluZyhzNCwgcGVnJGN1cnJQb3MpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHM0ID0gczU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgczUgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICBzNiA9IHBlZyRwYXJzZU9wdGlvbmFsQXJndW1lbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoczYgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHM1LnB1c2goczYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgczYgPSBwZWckcGFyc2VPcHRpb25hbEFyZ3VtZW50KCk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgczYgPSBwZWckcGFyc2VfXygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHM2ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRzYXZlZFBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzMSA9IHBlZyRjMTIzKHM0LCBzNSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlT3B0aW9uYWxBcmd1bWVudCgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczMsIHM0LCBzNTtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQocGVnJGN1cnJQb3MpID09PSA5MSkge1xuICAgICAgczEgPSBwZWckYzEyNDtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMjUpOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczIgPSBwZWckcGFyc2VfX2goKTtcbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMyA9IHBlZyRjdXJyUG9zO1xuICAgICAgICBzNCA9IFtdO1xuICAgICAgICBpZiAocGVnJGMxMjYudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgIHM1ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTI3KTsgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHdoaWxlIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczQucHVzaChzNSk7XG4gICAgICAgICAgICBpZiAocGVnJGMxMjYudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgICAgICBzNSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzNSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMjcpOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMyA9IGlucHV0LnN1YnN0cmluZyhzMywgcGVnJGN1cnJQb3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMzID0gczQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgczQgPSBwZWckcGFyc2VfX2goKTtcbiAgICAgICAgICBpZiAoczQgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gOTMpIHtcbiAgICAgICAgICAgICAgczUgPSBwZWckYzEyODtcbiAgICAgICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHM1ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzEyOSk7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgICAgICAgczEgPSBwZWckYzEzMChzMyk7XG4gICAgICAgICAgICAgIHMwID0gczE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlUmVxdWlyZWRBcmd1bWVudCgpIHtcbiAgICB2YXIgczAsIHMxLCBzMjtcblxuICAgIHMwID0gcGVnJGN1cnJQb3M7XG4gICAgczEgPSBwZWckcGFyc2VfX2goKTtcbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIGlmIChwZWckYzEzMS50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgIHMyID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzEzMik7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgczEgPSBwZWckYzEzMyhzMik7XG4gICAgICAgIHMwID0gczE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczAgPSBwZWckY3VyclBvcztcbiAgICAgIHMxID0gcGVnJHBhcnNlQmxvY2soKTtcbiAgICAgIGlmIChzMSA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMSA9IHBlZyRwYXJzZUNvbW1hbmQoKTtcbiAgICAgIH1cbiAgICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBwZWckc2F2ZWRQb3MgPSBzMDtcbiAgICAgICAgczEgPSBwZWckYzUyKHMxKTtcbiAgICAgIH1cbiAgICAgIHMwID0gczE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlVmFyaWFibGVOYW1lKCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMywgczQ7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gcGVnJGN1cnJQb3M7XG4gICAgaWYgKHBlZyRjMTM0LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgIHMyID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMzUpOyB9XG4gICAgfVxuICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczMgPSBbXTtcbiAgICAgIGlmIChwZWckYzEzNi50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgIHM0ID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHM0ID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzEzNyk7IH1cbiAgICAgIH1cbiAgICAgIHdoaWxlIChzNCAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMy5wdXNoKHM0KTtcbiAgICAgICAgaWYgKHBlZyRjMTM2LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICBzNCA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzNCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzEzNyk7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHMzICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyID0gW3MyLCBzM107XG4gICAgICAgIHMxID0gczI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMxO1xuICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczE7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczAgPSBpbnB1dC5zdWJzdHJpbmcoczAsIHBlZyRjdXJyUG9zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgczAgPSBzMTtcbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VTaW1wbGVEaWFjcml0aWMoKSB7XG4gICAgdmFyIHMwO1xuXG4gICAgaWYgKHBlZyRjMTM4LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgIHMwID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxMzkpOyB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlRXh0ZW5kZWREaWFjcml0aWMoKSB7XG4gICAgdmFyIHMwO1xuXG4gICAgaWYgKHBlZyRjMTQwLnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgIHMwID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNDEpOyB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlRmllbGRTZXBhcmF0b3IoKSB7XG4gICAgdmFyIHMwLCBzMSwgczIsIHMzO1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBzMSA9IHBlZyRwYXJzZV9fKCk7XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDYxKSB7XG4gICAgICAgIHMyID0gcGVnJGMxNDI7XG4gICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMiA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNDMpOyB9XG4gICAgICB9XG4gICAgICBpZiAoczIgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgczMgPSBwZWckcGFyc2VfXygpO1xuICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzMSA9IFtzMSwgczIsIHMzXTtcbiAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlRmllbGRUZXJtaW5hdG9yKCkge1xuICAgIHZhciBzMCwgczEsIHMyLCBzMywgczQsIHM1O1xuXG4gICAgczAgPSBwZWckY3VyclBvcztcbiAgICBzMSA9IHBlZyRwYXJzZV9fKCk7XG4gICAgaWYgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChwZWckY3VyclBvcykgPT09IDQ0KSB7XG4gICAgICAgIHMyID0gcGVnJGMzNztcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzM4KTsgfVxuICAgICAgfVxuICAgICAgaWYgKHMyID09PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMyID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMyA9IHBlZyRwYXJzZV9faCgpO1xuICAgICAgICBpZiAoczMgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICBzNCA9IFtdO1xuICAgICAgICAgIHM1ID0gcGVnJHBhcnNlTGluZUNvbW1lbnQoKTtcbiAgICAgICAgICBpZiAoczUgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgIHM1ID0gcGVnJHBhcnNlRU9MKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdoaWxlIChzNSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgICAgczQucHVzaChzNSk7XG4gICAgICAgICAgICBzNSA9IHBlZyRwYXJzZUxpbmVDb21tZW50KCk7XG4gICAgICAgICAgICBpZiAoczUgPT09IHBlZyRGQUlMRUQpIHtcbiAgICAgICAgICAgICAgczUgPSBwZWckcGFyc2VFT0woKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHM0ICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgICAgICBzMSA9IFtzMSwgczIsIHMzLCBzNF07XG4gICAgICAgICAgICBzMCA9IHMxO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZWckY3VyclBvcyA9IHMwO1xuICAgICAgczAgPSBwZWckRkFJTEVEO1xuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZUNvbmNhdCgpIHtcbiAgICB2YXIgczAsIHMxLCBzMiwgczM7XG5cbiAgICBzMCA9IHBlZyRjdXJyUG9zO1xuICAgIHMxID0gcGVnJHBhcnNlX18oKTtcbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KHBlZyRjdXJyUG9zKSA9PT0gMzUpIHtcbiAgICAgICAgczIgPSBwZWckYzE0NDtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMyID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE0NSk7IH1cbiAgICAgIH1cbiAgICAgIGlmIChzMiAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMyA9IHBlZyRwYXJzZV9fKCk7XG4gICAgICAgIGlmIChzMyAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICAgIHMxID0gW3MxLCBzMiwgczNdO1xuICAgICAgICAgIHMwID0gczE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlZyRjdXJyUG9zID0gczA7XG4gICAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVnJGN1cnJQb3MgPSBzMDtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VFT0woKSB7XG4gICAgdmFyIHMwO1xuXG4gICAgaWYgKHBlZyRjMTQ2LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgIHMwID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNDcpOyB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHMwO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVnJHBhcnNlX2goKSB7XG4gICAgdmFyIHMwLCBzMTtcblxuICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgIHMwID0gW107XG4gICAgaWYgKHBlZyRjMTQ5LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNTApOyB9XG4gICAgfVxuICAgIGlmIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgd2hpbGUgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICAgIHMwLnB1c2goczEpO1xuICAgICAgICBpZiAocGVnJGMxNDkudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgICBwZWckY3VyclBvcysrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTUwKTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHMwID0gcGVnJEZBSUxFRDtcbiAgICB9XG4gICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTQ4KTsgfVxuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZV9faCgpIHtcbiAgICB2YXIgczAsIHMxO1xuXG4gICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgczAgPSBbXTtcbiAgICBpZiAocGVnJGMxNDkudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgczEgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE1MCk7IH1cbiAgICB9XG4gICAgd2hpbGUgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMC5wdXNoKHMxKTtcbiAgICAgIGlmIChwZWckYzE0OS50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE1MCk7IH1cbiAgICAgIH1cbiAgICB9XG4gICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTUxKTsgfVxuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlZyRwYXJzZV92KCkge1xuICAgIHZhciBzMCwgczE7XG5cbiAgICBwZWckc2lsZW50RmFpbHMrKztcbiAgICBzMCA9IFtdO1xuICAgIGlmIChwZWckYzE0Ni50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICBzMSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTQ3KTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHdoaWxlIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMC5wdXNoKHMxKTtcbiAgICAgICAgaWYgKHBlZyRjMTQ2LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICBzMSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE0Nyk7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE1Mik7IH1cbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VfX3YoKSB7XG4gICAgdmFyIHMwLCBzMTtcblxuICAgIHBlZyRzaWxlbnRGYWlscysrO1xuICAgIHMwID0gW107XG4gICAgaWYgKHBlZyRjMTQ2LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNDcpOyB9XG4gICAgfVxuICAgIHdoaWxlIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgczAucHVzaChzMSk7XG4gICAgICBpZiAocGVnJGMxNDYudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgICBzMSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgIHBlZyRjdXJyUG9zKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgIGlmIChwZWckc2lsZW50RmFpbHMgPT09IDApIHsgcGVnJGZhaWwocGVnJGMxNDcpOyB9XG4gICAgICB9XG4gICAgfVxuICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE1Myk7IH1cbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VfKCkge1xuICAgIHZhciBzMCwgczE7XG5cbiAgICBwZWckc2lsZW50RmFpbHMrKztcbiAgICBzMCA9IFtdO1xuICAgIGlmIChwZWckYzE1NS50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICBzMSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICBwZWckY3VyclBvcysrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTU2KTsgfVxuICAgIH1cbiAgICBpZiAoczEgIT09IHBlZyRGQUlMRUQpIHtcbiAgICAgIHdoaWxlIChzMSAhPT0gcGVnJEZBSUxFRCkge1xuICAgICAgICBzMC5wdXNoKHMxKTtcbiAgICAgICAgaWYgKHBlZyRjMTU1LnRlc3QoaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKSkpIHtcbiAgICAgICAgICBzMSA9IGlucHV0LmNoYXJBdChwZWckY3VyclBvcyk7XG4gICAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE1Nik7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzMCA9IHBlZyRGQUlMRUQ7XG4gICAgfVxuICAgIHBlZyRzaWxlbnRGYWlscy0tO1xuICAgIGlmIChzMCA9PT0gcGVnJEZBSUxFRCkge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE1NCk7IH1cbiAgICB9XG5cbiAgICByZXR1cm4gczA7XG4gIH1cblxuICBmdW5jdGlvbiBwZWckcGFyc2VfXygpIHtcbiAgICB2YXIgczAsIHMxO1xuXG4gICAgcGVnJHNpbGVudEZhaWxzKys7XG4gICAgczAgPSBbXTtcbiAgICBpZiAocGVnJGMxNTUudGVzdChpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpKSkge1xuICAgICAgczEgPSBpbnB1dC5jaGFyQXQocGVnJGN1cnJQb3MpO1xuICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICB9IGVsc2Uge1xuICAgICAgczEgPSBwZWckRkFJTEVEO1xuICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE1Nik7IH1cbiAgICB9XG4gICAgd2hpbGUgKHMxICE9PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMC5wdXNoKHMxKTtcbiAgICAgIGlmIChwZWckYzE1NS50ZXN0KGlucHV0LmNoYXJBdChwZWckY3VyclBvcykpKSB7XG4gICAgICAgIHMxID0gaW5wdXQuY2hhckF0KHBlZyRjdXJyUG9zKTtcbiAgICAgICAgcGVnJGN1cnJQb3MrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMxID0gcGVnJEZBSUxFRDtcbiAgICAgICAgaWYgKHBlZyRzaWxlbnRGYWlscyA9PT0gMCkgeyBwZWckZmFpbChwZWckYzE1Nik7IH1cbiAgICAgIH1cbiAgICB9XG4gICAgcGVnJHNpbGVudEZhaWxzLS07XG4gICAgaWYgKHMwID09PSBwZWckRkFJTEVEKSB7XG4gICAgICBzMSA9IHBlZyRGQUlMRUQ7XG4gICAgICBpZiAocGVnJHNpbGVudEZhaWxzID09PSAwKSB7IHBlZyRmYWlsKHBlZyRjMTU3KTsgfVxuICAgIH1cblxuICAgIHJldHVybiBzMDtcbiAgfVxuXG5cbiAgICAvKlxuICAgICAgTUlUIExpY2Vuc2VcblxuICAgICAgQ29weXJpZ2h0IChjKSAyMDE3IERlcmVrIFAgU2lmZm9yZCwgcGFydHMgY29weXJpZ2h0IChjKSAyMDE5IGJ5IEVtaWxpYW5vIEhleW5zXG5cbiAgICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAgICAgIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAgICAgIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAgICAgIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAgICAgIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICAgICAgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuICAgICAgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gICAgICBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4gICAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gICAgICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAgICAgIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICAgICAgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICAgICAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAgICAgIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gICAgICBTT0ZUV0FSRS5cbiAgICAqL1xuXG4gICAgY29uc3QgbWFya3VwID0ge1xuICAgICAgc2w6ICdpdGFsaWNzJyxcbiAgICAgIGVtOiAnaXRhbGljcycsXG4gICAgICBpdDogJ2l0YWxpY3MnLFxuICAgICAgaXRzaGFwZTogJ2l0YWxpY3MnLFxuXG4gICAgICBiZjogJ2JvbGQnLFxuICAgICAgYmZzZXJpZXM6ICdib2xkJyxcblxuICAgICAgc2M6ICdzbWFsbENhcHMnLFxuICAgICAgc2NzaGFwZTogJ3NtYWxsQ2FwcycsXG5cbiAgICAgIHR0OiAnZml4ZWRXaWR0aCcsXG4gICAgICBybTogJ3JvbWFuJyxcbiAgICAgIHNmOiAnc2Fuc1NlcmlmJyxcbiAgICAgIHZlcmI6ICd2ZXJiYXRpbScsXG4gICAgfVxuXG4gICAgY29uc3QgdW5uZXN0RmllbGRzID0gKG9wdGlvbnMudW5uZXN0RmllbGRzIHx8IFtdKS5tYXAoZmllbGQgPT4gZmllbGQudG9Mb3dlckNhc2UoKSlcbiAgICBjb25zdCB2ZXJiYXRpbUZpZWxkcyA9IChvcHRpb25zLnZlcmJhdGltRmllbGRzIHx8IFsgJ3VybHJhdycsICd1cmwnLCAnZG9pJywgJ2ZpbGUnLCAnZmlsZXMnLCAnZXByaW50JywgJ3ZlcmJhJywgJ3ZlcmJiJywgJ3ZlcmJjJyBdKS5tYXAoZmllbGQgPT4gdHlwZW9mIGZpZWxkID09PSAnc3RyaW5nJyA/IGZpZWxkLnRvTG93ZXJDYXNlKCkgOiBmaWVsZClcbiAgICBjb25zdCB2ZXJiYXRpbUNvbW1hbmRzID0gKG9wdGlvbnMudmVyYmF0aW1Db21tYW5kcyB8fCBbJ3RleHR0dCcsICd1cmwnLCAnaHJlZiddKVxuXG4gICAgZnVuY3Rpb24gaXNWZXJiYXRpbUZpZWxkKG5hbWUpIHtcbiAgICAgIHJldHVybiB2ZXJiYXRpbUZpZWxkcy5maW5kKHAgPT4gKHR5cGVvZiBwID09PSAnc3RyaW5nJykgPyBuYW1lID09PSBwIDogbmFtZS5tYXRjaChwKSlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBub3JtYWxpemVXaGl0ZXNwYWNlKHRleHRBcnIpIHtcbiAgICAgIHJldHVybiB0ZXh0QXJyLnJlZHVjZSgocHJldiwgY3VycikgPT4ge1xuICAgICAgICBpZiAoL1xccy8udGVzdChjdXJyKSkge1xuICAgICAgICAgIGlmICgvXFxzLy50ZXN0KHByZXZbcHJldi5sZW5ndGggLSAxXSkpIHtcbiAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcHJldiArICcgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByZXYgKyBjdXJyO1xuICAgICAgfSwgJycpO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc19hcmd1bWVudHMgPSB7XG4gICAgICBFbHNldmllckdseXBoOiAxLFxuICAgICAgZW5kOiAxLFxuICAgICAgYmVnaW46IDEsXG4gICAgICBiaWJjeXI6IDEsXG4gICAgICBiaWJzdHJpbmc6IDEsXG4gICAgICBjaHNmOiAxLFxuICAgICAgY2l0ZTogMSxcbiAgICAgIGN5cmNoYXI6IDEsXG4gICAgICBkaW5nOiAxLFxuICAgICAgZW1waDogMSxcbiAgICAgIGVucXVvdGU6IDEsXG4gICAgICBmcmFjOiAyLFxuICAgICAgaHJlZjogMixcbiAgICAgIGhzcGFjZTogMSxcbiAgICAgIG1hdGhybTogMSxcbiAgICAgIG1ib3g6IDEsXG4gICAgICBta2JpYmJvbGQ6IDEsXG4gICAgICBta2JpYmVtcGg6IDEsXG4gICAgICBta2JpYml0YWxpYzogMSxcbiAgICAgIG1rYmlicXVvdGU6IDEsXG4gICAgICBuZXdjb21tYW5kOiAyLFxuICAgICAgbm9vcHNvcnQ6IDEsXG4gICAgICBvY2lyYzogMSxcbiAgICAgIHNlY3Rpb246IDEsXG4gICAgICBzYjogMSxcbiAgICAgIHNwOiAxLFxuICAgICAgc3Vic2VjdGlvbjogMSxcbiAgICAgIHN1YnN1YnNlY3Rpb246IDEsXG4gICAgICBzdWJzdWJzdWJzZWN0aW9uOiAxLFxuICAgICAgdDogMSxcbiAgICAgIHRleHRiZjogMSxcbiAgICAgIHRleHRpdDogMSxcbiAgICAgIHRleHRybTogMSxcbiAgICAgIHRleHRzYzogMSxcbiAgICAgIHRleHRzdWJzY3JpcHQ6IDEsXG4gICAgICB0ZXh0c3VwZXJzY3JpcHQ6IDEsXG4gICAgICB0ZXh0dHQ6IDEsXG4gICAgICB1cmw6IDEsXG4gICAgICB2cGhhbnRvbTogMSxcbiAgICAgIHZzcGFjZTogMSxcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5jb21iaW5pbmdEaWFjcml0aWNzKSB7XG4gICAgICBmb3IgKGNvbnN0IGNtZCBvZiBvcHRpb25zLmNvbWJpbmluZ0RpYWNyaXRpY3MpIHtcbiAgICAgICAgaGFzX2FyZ3VtZW50c1tjbWRdID0gMVxuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNheSgpIHtcbiAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KEFycmF5LmZyb20oYXJndW1lbnRzKSwgbnVsbCwgMikpXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBlZWsobikge1xuICAgICAgcmV0dXJuIGlucHV0LnN1YnN0cihwZWckc2F2ZWRQb3MsIG4pXG4gICAgfVxuXG4gICAgY29uc3QgbWF0aCA9IHtcbiAgICAgIG9uOiBmYWxzZSxcblxuICAgICAgc2V0OiBmdW5jdGlvbihzdGF0ZSkge1xuICAgICAgICB0aGlzLm9uID0gc3RhdGVcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBiYXNpY1RleHRDb252ZXJzaW9ucyhub2RlKSB7XG4gICAgICBpZiAobm9kZS5raW5kICE9PSAnVGV4dCcpIHRocm93IG5ldyBFcnJvcihub2RlLmtpbmQgKyAnIGlzIG5vdCBhIFRleHQgbm9kZScpXG5cbiAgICAgIHN3aXRjaCAobm9kZS5tb2RlKSB7XG4gICAgICAgIGNhc2UgJ3ZlcmJhdGltJzpcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ21hdGgnOlxuICAgICAgICAgIG5vZGUudmFsdWUgPSBub2RlLnZhbHVlLnJlcGxhY2UoL34vZywgJ1xcdTAwQTAnKVxuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgbm9kZS52YWx1ZSA9IG5vZGUudmFsdWVcbiAgICAgICAgICAgIC5yZXBsYWNlKC8tLS0vZywgJ1xcdTIwMTQnKVxuICAgICAgICAgICAgLnJlcGxhY2UoLy0tL2csICdcXHUyMDEzJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC88L2csICdcXHUwMEExJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC8+L2csICdcXHUwMEJGJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9+L2csICdcXHUwMEEwJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9gYC9nLCBvcHRpb25zLm1hcmt1cC5lbnF1b3RlLm9wZW4pXG4gICAgICAgICAgICAucmVwbGFjZSgvJycvZywgb3B0aW9ucy5tYXJrdXAuZW5xdW90ZS5jbG9zZSlcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHRleHQgbW9kZSAke25vZGUubW9kZX1gKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbm9kZVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByb3RlY3Qodikge1xuICAgICAgbGV0IHNvdXJjZVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICAgICAgc291cmNlID0gdi5tYXAoZSA9PiBlLnNvdXJjZSkuam9pbignJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHYgPSBbIHYgXVxuICAgICAgICBzb3VyY2UgPSB2LnNvdXJjZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBraW5kOiAnQmxvY2snLFxuICAgICAgICB2YWx1ZTogdixcbiAgICAgICAgbWFya3VwOiB7fSxcbiAgICAgICAgY2FzZTogJ3Byb3RlY3QnLFxuICAgICAgICBzb3VyY2U6IHNvdXJjZSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVfbWFya3VwX3N3aXRjaGVzKGJsb2NrKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGJsb2NrLnZhbHVlXG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4gYmxvY2tcblxuICAgICAgYmxvY2sudmFsdWUgPSBbXVxuXG4gICAgICBjb25zdCBwc2V1ZG8gPSB7XG4gICAgICAgIGJsb2NrOiBudWxsLFxuICAgICAgICBtYXJrdXA6IHt9LFxuICAgICAgfVxuICAgICAgZnVuY3Rpb24gcHNldWRvX2Jsb2NrKCkge1xuICAgICAgICBwc2V1ZG8uYmxvY2sgPSB7XG4gICAgICAgICAga2luZDogJ0Jsb2NrJyxcbiAgICAgICAgICBsb2M6IGxvY2F0aW9uKCksXG4gICAgICAgICAgc291cmNlOiAnJyxcbiAgICAgICAgICB2YWx1ZTogW10sXG4gICAgICAgICAgbWFya3VwOiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHBzZXVkby5tYXJrdXApKSxcbiAgICAgICAgICBwc2V1ZG86IHRydWUsXG4gICAgICAgIH1cbiAgICAgICAgYmxvY2sudmFsdWUucHVzaChwc2V1ZG8uYmxvY2spXG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgdmFsdWUpIHtcbiAgICAgICAgaWYgKG5vZGUua2luZCA9PT0gJ0Vudmlyb25tZW50JyB8fCBub2RlLmtpbmQgPT09ICdCbG9jaycpIHtcbiAgICAgICAgICBibG9jay52YWx1ZS5wdXNoKG5vZGUpXG5cbiAgICAgICAgICBpZiAoT2JqZWN0LmtleXMocHNldWRvLm1hcmt1cCkubGVuZ3RoKSB7XG4gICAgICAgICAgICBwc2V1ZG9fYmxvY2soKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwc2V1ZG8uYmxvY2sgPSBudWxsXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9kZS5raW5kID09PSAnUmVndWxhckNvbW1hbmQnICYmIG1hcmt1cFtub2RlLmNvbW1hbmRdKSB7XG4gICAgICAgICAgaWYgKHBzZXVkby5tYXJrdXAuaXRhbGljcykgeyAvLyBodHRwczovL2dpdGh1Yi5jb20vY2l0YXRpb24tanMvYmlidGV4LXBhcnNlci1leHBlcmltZW50cy9jb21taXQvY2FlNDc1ZjA3NWEwNWQxYzA3NDQ4NWEwNjFiMDhlZDI0NTE3MGM3ZVxuICAgICAgICAgICAgZGVsZXRlIHBzZXVkby5tYXJrdXAuaXRhbGljc1xuICAgICAgICAgICAgaWYgKG1hcmt1cFtub2RlLmNvbW1hbmRdICE9PSAnaXRhbGljcycpIHBzZXVkby5tYXJrdXBbbWFya3VwW25vZGUuY29tbWFuZF1dID0gdHJ1ZVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwc2V1ZG8ubWFya3VwW21hcmt1cFtub2RlLmNvbW1hbmRdXSA9IHRydWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoT2JqZWN0LmtleXMocHNldWRvLm1hcmt1cCkubGVuZ3RoKSB7XG4gICAgICAgICAgICBwc2V1ZG9fYmxvY2soKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgcHNldWRvLmJsb2NrID0gbnVsbFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwc2V1ZG8uYmxvY2spIHtcbiAgICAgICAgICBwc2V1ZG8uYmxvY2suc291cmNlICs9IG5vZGUuc291cmNlXG4gICAgICAgICAgcHNldWRvLmJsb2NrLnZhbHVlLnB1c2gobm9kZSlcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJsb2NrLnZhbHVlLnB1c2gobm9kZSlcblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGJsb2NrLnZhbHVlID0gYmxvY2sudmFsdWUuZmlsdGVyKG5vZGUgPT4gIShub2RlLnBzZXVkbyAmJiBub2RlLnZhbHVlLmxlbmd0aCA9PT0gMCkpXG5cbiAgICAgIHJldHVybiBibG9ja1xuICAgIH1cblxuXG4gIHBlZyRyZXN1bHQgPSBwZWckc3RhcnRSdWxlRnVuY3Rpb24oKTtcblxuICBpZiAocGVnJHJlc3VsdCAhPT0gcGVnJEZBSUxFRCAmJiBwZWckY3VyclBvcyA9PT0gaW5wdXQubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHBlZyRyZXN1bHQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHBlZyRyZXN1bHQgIT09IHBlZyRGQUlMRUQgJiYgcGVnJGN1cnJQb3MgPCBpbnB1dC5sZW5ndGgpIHtcbiAgICAgIHBlZyRmYWlsKHBlZyRlbmRFeHBlY3RhdGlvbigpKTtcbiAgICB9XG5cbiAgICB0aHJvdyBwZWckYnVpbGRTdHJ1Y3R1cmVkRXJyb3IoXG4gICAgICBwZWckbWF4RmFpbEV4cGVjdGVkLFxuICAgICAgcGVnJG1heEZhaWxQb3MgPCBpbnB1dC5sZW5ndGggPyBpbnB1dC5jaGFyQXQocGVnJG1heEZhaWxQb3MpIDogbnVsbCxcbiAgICAgIHBlZyRtYXhGYWlsUG9zIDwgaW5wdXQubGVuZ3RoXG4gICAgICAgID8gcGVnJGNvbXB1dGVMb2NhdGlvbihwZWckbWF4RmFpbFBvcywgcGVnJG1heEZhaWxQb3MgKyAxKVxuICAgICAgICA6IHBlZyRjb21wdXRlTG9jYXRpb24ocGVnJG1heEZhaWxQb3MsIHBlZyRtYXhGYWlsUG9zKVxuICAgICk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIFN5bnRheEVycm9yOiBwZWckU3ludGF4RXJyb3IsXG4gIHBhcnNlOiAgICAgICBwZWckcGFyc2Vcbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcbi8vIE9yaWdpbmFsIHdvcmsgYnkgSGVucmlrIE11ZWhlIChjKSAyMDEwXG4vL1xuLy8gQ29tbW9uSlMgcG9ydCBieSBNaWtvbGEgTHlzZW5rbyAyMDEzXG4vL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5wYXJzZSA9IHZvaWQgMDtcbmNsYXNzIFBhcnNlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSwgcGFyc2VyKSB7XG4gICAgICAgIG1lc3NhZ2UgKz0gYCBAICR7cGFyc2VyLnBvc31gO1xuICAgICAgICBpZiAocGFyc2VyLnBhcnNpbmcpXG4gICAgICAgICAgICBtZXNzYWdlICs9IGAgaW4gJHtKU09OLnN0cmluZ2lmeShwYXJzZXIucGFyc2luZyl9YDtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIHRoaXMubmFtZSA9ICdQYXJzZUVycm9yJztcbiAgICB9XG59XG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXRlbXBsYXRlXG5jb25zdCBsZXR0ZXIgPSBuZXcgUmVnRXhwKCdbJyArIFtcbiAgICAvLyBMZXR0ZXIsIFVwcGVyY2FzZVxuICAgIC9cXHUwMDQxLVxcdTAwNUFcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwREVcXHUwMTAwXFx1MDEwMlxcdTAxMDRcXHUwMTA2XFx1MDEwOFxcdTAxMEFcXHUwMTBDXFx1MDEwRVxcdTAxMTBcXHUwMTEyXFx1MDExNFxcdTAxMTZcXHUwMTE4XFx1MDExQVxcdTAxMUNcXHUwMTFFXFx1MDEyMFxcdTAxMjJcXHUwMTI0XFx1MDEyNlxcdTAxMjhcXHUwMTJBXFx1MDEyQ1xcdTAxMkVcXHUwMTMwXFx1MDEzMlxcdTAxMzRcXHUwMTM2XFx1MDEzOVxcdTAxM0JcXHUwMTNEXFx1MDEzRlxcdTAxNDFcXHUwMTQzXFx1MDE0NVxcdTAxNDdcXHUwMTRBXFx1MDE0Q1xcdTAxNEVcXHUwMTUwXFx1MDE1MlxcdTAxNTRcXHUwMTU2XFx1MDE1OFxcdTAxNUFcXHUwMTVDXFx1MDE1RVxcdTAxNjBcXHUwMTYyXFx1MDE2NFxcdTAxNjZcXHUwMTY4XFx1MDE2QVxcdTAxNkNcXHUwMTZFXFx1MDE3MFxcdTAxNzJcXHUwMTc0XFx1MDE3NlxcdTAxNzgtXFx1MDE3OVxcdTAxN0JcXHUwMTdEXFx1MDE4MS1cXHUwMTgyXFx1MDE4NFxcdTAxODYtXFx1MDE4N1xcdTAxODktXFx1MDE4QlxcdTAxOEUtXFx1MDE5MVxcdTAxOTMtXFx1MDE5NFxcdTAxOTYtXFx1MDE5OFxcdTAxOUMtXFx1MDE5RFxcdTAxOUYtXFx1MDFBMFxcdTAxQTJcXHUwMUE0XFx1MDFBNi1cXHUwMUE3XFx1MDFBOVxcdTAxQUNcXHUwMUFFLVxcdTAxQUZcXHUwMUIxLVxcdTAxQjNcXHUwMUI1XFx1MDFCNy1cXHUwMUI4XFx1MDFCQ1xcdTAxQzRcXHUwMUM3XFx1MDFDQVxcdTAxQ0RcXHUwMUNGXFx1MDFEMVxcdTAxRDNcXHUwMUQ1XFx1MDFEN1xcdTAxRDlcXHUwMURCXFx1MDFERVxcdTAxRTBcXHUwMUUyXFx1MDFFNFxcdTAxRTZcXHUwMUU4XFx1MDFFQVxcdTAxRUNcXHUwMUVFXFx1MDFGMVxcdTAxRjRcXHUwMUY2LVxcdTAxRjhcXHUwMUZBXFx1MDFGQ1xcdTAxRkVcXHUwMjAwXFx1MDIwMlxcdTAyMDRcXHUwMjA2XFx1MDIwOFxcdTAyMEFcXHUwMjBDXFx1MDIwRVxcdTAyMTBcXHUwMjEyXFx1MDIxNFxcdTAyMTZcXHUwMjE4XFx1MDIxQVxcdTAyMUNcXHUwMjFFXFx1MDIyMFxcdTAyMjJcXHUwMjI0XFx1MDIyNlxcdTAyMjhcXHUwMjJBXFx1MDIyQ1xcdTAyMkVcXHUwMjMwXFx1MDIzMlxcdTAyM0EtXFx1MDIzQlxcdTAyM0QtXFx1MDIzRVxcdTAyNDFcXHUwMjQzLVxcdTAyNDZcXHUwMjQ4XFx1MDI0QVxcdTAyNENcXHUwMjRFXFx1MDM3MFxcdTAzNzJcXHUwMzc2XFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwMzhGXFx1MDM5MS1cXHUwM0ExXFx1MDNBMy1cXHUwM0FCXFx1MDNDRlxcdTAzRDItXFx1MDNENFxcdTAzRDhcXHUwM0RBXFx1MDNEQ1xcdTAzREVcXHUwM0UwXFx1MDNFMlxcdTAzRTRcXHUwM0U2XFx1MDNFOFxcdTAzRUFcXHUwM0VDXFx1MDNFRVxcdTAzRjRcXHUwM0Y3XFx1MDNGOS1cXHUwM0ZBXFx1MDNGRC1cXHUwNDJGXFx1MDQ2MFxcdTA0NjJcXHUwNDY0XFx1MDQ2NlxcdTA0NjhcXHUwNDZBXFx1MDQ2Q1xcdTA0NkVcXHUwNDcwXFx1MDQ3MlxcdTA0NzRcXHUwNDc2XFx1MDQ3OFxcdTA0N0FcXHUwNDdDXFx1MDQ3RVxcdTA0ODBcXHUwNDhBXFx1MDQ4Q1xcdTA0OEVcXHUwNDkwXFx1MDQ5MlxcdTA0OTRcXHUwNDk2XFx1MDQ5OFxcdTA0OUFcXHUwNDlDXFx1MDQ5RVxcdTA0QTBcXHUwNEEyXFx1MDRBNFxcdTA0QTZcXHUwNEE4XFx1MDRBQVxcdTA0QUNcXHUwNEFFXFx1MDRCMFxcdTA0QjJcXHUwNEI0XFx1MDRCNlxcdTA0QjhcXHUwNEJBXFx1MDRCQ1xcdTA0QkVcXHUwNEMwLVxcdTA0QzFcXHUwNEMzXFx1MDRDNVxcdTA0QzdcXHUwNEM5XFx1MDRDQlxcdTA0Q0RcXHUwNEQwXFx1MDREMlxcdTA0RDRcXHUwNEQ2XFx1MDREOFxcdTA0REFcXHUwNERDXFx1MDRERVxcdTA0RTBcXHUwNEUyXFx1MDRFNFxcdTA0RTZcXHUwNEU4XFx1MDRFQVxcdTA0RUNcXHUwNEVFXFx1MDRGMFxcdTA0RjJcXHUwNEY0XFx1MDRGNlxcdTA0RjhcXHUwNEZBXFx1MDRGQ1xcdTA0RkVcXHUwNTAwXFx1MDUwMlxcdTA1MDRcXHUwNTA2XFx1MDUwOFxcdTA1MEFcXHUwNTBDXFx1MDUwRVxcdTA1MTBcXHUwNTEyXFx1MDUxNFxcdTA1MTZcXHUwNTE4XFx1MDUxQVxcdTA1MUNcXHUwNTFFXFx1MDUyMFxcdTA1MjJcXHUwNTI0XFx1MDUyNlxcdTA1MjhcXHUwNTJBXFx1MDUyQ1xcdTA1MkVcXHUwNTMxLVxcdTA1NTZcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEzQTAtXFx1MTNGNVxcdTFFMDBcXHUxRTAyXFx1MUUwNFxcdTFFMDZcXHUxRTA4XFx1MUUwQVxcdTFFMENcXHUxRTBFXFx1MUUxMFxcdTFFMTJcXHUxRTE0XFx1MUUxNlxcdTFFMThcXHUxRTFBXFx1MUUxQ1xcdTFFMUVcXHUxRTIwXFx1MUUyMlxcdTFFMjRcXHUxRTI2XFx1MUUyOFxcdTFFMkFcXHUxRTJDXFx1MUUyRVxcdTFFMzBcXHUxRTMyXFx1MUUzNFxcdTFFMzZcXHUxRTM4XFx1MUUzQVxcdTFFM0NcXHUxRTNFXFx1MUU0MFxcdTFFNDJcXHUxRTQ0XFx1MUU0NlxcdTFFNDhcXHUxRTRBXFx1MUU0Q1xcdTFFNEVcXHUxRTUwXFx1MUU1MlxcdTFFNTRcXHUxRTU2XFx1MUU1OFxcdTFFNUFcXHUxRTVDXFx1MUU1RVxcdTFFNjBcXHUxRTYyXFx1MUU2NFxcdTFFNjZcXHUxRTY4XFx1MUU2QVxcdTFFNkNcXHUxRTZFXFx1MUU3MFxcdTFFNzJcXHUxRTc0XFx1MUU3NlxcdTFFNzhcXHUxRTdBXFx1MUU3Q1xcdTFFN0VcXHUxRTgwXFx1MUU4MlxcdTFFODRcXHUxRTg2XFx1MUU4OFxcdTFFOEFcXHUxRThDXFx1MUU4RVxcdTFFOTBcXHUxRTkyXFx1MUU5NFxcdTFFOUVcXHUxRUEwXFx1MUVBMlxcdTFFQTRcXHUxRUE2XFx1MUVBOFxcdTFFQUFcXHUxRUFDXFx1MUVBRVxcdTFFQjBcXHUxRUIyXFx1MUVCNFxcdTFFQjZcXHUxRUI4XFx1MUVCQVxcdTFFQkNcXHUxRUJFXFx1MUVDMFxcdTFFQzJcXHUxRUM0XFx1MUVDNlxcdTFFQzhcXHUxRUNBXFx1MUVDQ1xcdTFFQ0VcXHUxRUQwXFx1MUVEMlxcdTFFRDRcXHUxRUQ2XFx1MUVEOFxcdTFFREFcXHUxRURDXFx1MUVERVxcdTFFRTBcXHUxRUUyXFx1MUVFNFxcdTFFRTZcXHUxRUU4XFx1MUVFQVxcdTFFRUNcXHUxRUVFXFx1MUVGMFxcdTFFRjJcXHUxRUY0XFx1MUVGNlxcdTFFRjhcXHUxRUZBXFx1MUVGQ1xcdTFFRkVcXHUxRjA4LVxcdTFGMEZcXHUxRjE4LVxcdTFGMURcXHUxRjI4LVxcdTFGMkZcXHUxRjM4LVxcdTFGM0ZcXHUxRjQ4LVxcdTFGNERcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGXFx1MUY2OC1cXHUxRjZGXFx1MUZCOC1cXHUxRkJCXFx1MUZDOC1cXHUxRkNCXFx1MUZEOC1cXHUxRkRCXFx1MUZFOC1cXHUxRkVDXFx1MUZGOC1cXHUxRkZCXFx1MjEwMlxcdTIxMDdcXHUyMTBCLVxcdTIxMERcXHUyMTEwLVxcdTIxMTJcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEzMC1cXHUyMTMzXFx1MjEzRS1cXHUyMTNGXFx1MjE0NVxcdTIxODNcXHUyQzAwLVxcdTJDMkVcXHUyQzYwXFx1MkM2Mi1cXHUyQzY0XFx1MkM2N1xcdTJDNjlcXHUyQzZCXFx1MkM2RC1cXHUyQzcwXFx1MkM3MlxcdTJDNzVcXHUyQzdFLVxcdTJDODBcXHUyQzgyXFx1MkM4NFxcdTJDODZcXHUyQzg4XFx1MkM4QVxcdTJDOENcXHUyQzhFXFx1MkM5MFxcdTJDOTJcXHUyQzk0XFx1MkM5NlxcdTJDOThcXHUyQzlBXFx1MkM5Q1xcdTJDOUVcXHUyQ0EwXFx1MkNBMlxcdTJDQTRcXHUyQ0E2XFx1MkNBOFxcdTJDQUFcXHUyQ0FDXFx1MkNBRVxcdTJDQjBcXHUyQ0IyXFx1MkNCNFxcdTJDQjZcXHUyQ0I4XFx1MkNCQVxcdTJDQkNcXHUyQ0JFXFx1MkNDMFxcdTJDQzJcXHUyQ0M0XFx1MkNDNlxcdTJDQzhcXHUyQ0NBXFx1MkNDQ1xcdTJDQ0VcXHUyQ0QwXFx1MkNEMlxcdTJDRDRcXHUyQ0Q2XFx1MkNEOFxcdTJDREFcXHUyQ0RDXFx1MkNERVxcdTJDRTBcXHUyQ0UyXFx1MkNFQlxcdTJDRURcXHUyQ0YyXFx1QTY0MFxcdUE2NDJcXHVBNjQ0XFx1QTY0NlxcdUE2NDhcXHVBNjRBXFx1QTY0Q1xcdUE2NEVcXHVBNjUwXFx1QTY1MlxcdUE2NTRcXHVBNjU2XFx1QTY1OFxcdUE2NUFcXHVBNjVDXFx1QTY1RVxcdUE2NjBcXHVBNjYyXFx1QTY2NFxcdUE2NjZcXHVBNjY4XFx1QTY2QVxcdUE2NkNcXHVBNjgwXFx1QTY4MlxcdUE2ODRcXHVBNjg2XFx1QTY4OFxcdUE2OEFcXHVBNjhDXFx1QTY4RVxcdUE2OTBcXHVBNjkyXFx1QTY5NFxcdUE2OTZcXHVBNjk4XFx1QTY5QVxcdUE3MjJcXHVBNzI0XFx1QTcyNlxcdUE3MjhcXHVBNzJBXFx1QTcyQ1xcdUE3MkVcXHVBNzMyXFx1QTczNFxcdUE3MzZcXHVBNzM4XFx1QTczQVxcdUE3M0NcXHVBNzNFXFx1QTc0MFxcdUE3NDJcXHVBNzQ0XFx1QTc0NlxcdUE3NDhcXHVBNzRBXFx1QTc0Q1xcdUE3NEVcXHVBNzUwXFx1QTc1MlxcdUE3NTRcXHVBNzU2XFx1QTc1OFxcdUE3NUFcXHVBNzVDXFx1QTc1RVxcdUE3NjBcXHVBNzYyXFx1QTc2NFxcdUE3NjZcXHVBNzY4XFx1QTc2QVxcdUE3NkNcXHVBNzZFXFx1QTc3OVxcdUE3N0JcXHVBNzdELVxcdUE3N0VcXHVBNzgwXFx1QTc4MlxcdUE3ODRcXHVBNzg2XFx1QTc4QlxcdUE3OERcXHVBNzkwXFx1QTc5MlxcdUE3OTZcXHVBNzk4XFx1QTc5QVxcdUE3OUNcXHVBNzlFXFx1QTdBMFxcdUE3QTJcXHVBN0E0XFx1QTdBNlxcdUE3QThcXHVBN0FBLVxcdUE3QURcXHVBN0IwLVxcdUE3QjRcXHVBN0I2XFx1RkYyMS1cXHVGRjNBLy5zb3VyY2UsXG4gICAgLy8gTGV0dGVyLCBUaXRsZWNhc2VcbiAgICAvXFx1MDFDNVxcdTAxQzhcXHUwMUNCXFx1MDFGMlxcdTFGODgtXFx1MUY4RlxcdTFGOTgtXFx1MUY5RlxcdTFGQTgtXFx1MUZBRlxcdTFGQkNcXHUxRkNDXFx1MUZGQy8uc291cmNlLFxuICAgIC8vIExldHRlciwgTG93ZXJjYXNlXG4gICAgL1xcdTAwNjEtXFx1MDA3QVxcdTAwQjVcXHUwMERGLVxcdTAwRjZcXHUwMEY4LVxcdTAwRkZcXHUwMTAxXFx1MDEwM1xcdTAxMDVcXHUwMTA3XFx1MDEwOVxcdTAxMEJcXHUwMTBEXFx1MDEwRlxcdTAxMTFcXHUwMTEzXFx1MDExNVxcdTAxMTdcXHUwMTE5XFx1MDExQlxcdTAxMURcXHUwMTFGXFx1MDEyMVxcdTAxMjNcXHUwMTI1XFx1MDEyN1xcdTAxMjlcXHUwMTJCXFx1MDEyRFxcdTAxMkZcXHUwMTMxXFx1MDEzM1xcdTAxMzVcXHUwMTM3LVxcdTAxMzhcXHUwMTNBXFx1MDEzQ1xcdTAxM0VcXHUwMTQwXFx1MDE0MlxcdTAxNDRcXHUwMTQ2XFx1MDE0OC1cXHUwMTQ5XFx1MDE0QlxcdTAxNERcXHUwMTRGXFx1MDE1MVxcdTAxNTNcXHUwMTU1XFx1MDE1N1xcdTAxNTlcXHUwMTVCXFx1MDE1RFxcdTAxNUZcXHUwMTYxXFx1MDE2M1xcdTAxNjVcXHUwMTY3XFx1MDE2OVxcdTAxNkJcXHUwMTZEXFx1MDE2RlxcdTAxNzFcXHUwMTczXFx1MDE3NVxcdTAxNzdcXHUwMTdBXFx1MDE3Q1xcdTAxN0UtXFx1MDE4MFxcdTAxODNcXHUwMTg1XFx1MDE4OFxcdTAxOEMtXFx1MDE4RFxcdTAxOTJcXHUwMTk1XFx1MDE5OS1cXHUwMTlCXFx1MDE5RVxcdTAxQTFcXHUwMUEzXFx1MDFBNVxcdTAxQThcXHUwMUFBLVxcdTAxQUJcXHUwMUFEXFx1MDFCMFxcdTAxQjRcXHUwMUI2XFx1MDFCOS1cXHUwMUJBXFx1MDFCRC1cXHUwMUJGXFx1MDFDNlxcdTAxQzlcXHUwMUNDXFx1MDFDRVxcdTAxRDBcXHUwMUQyXFx1MDFENFxcdTAxRDZcXHUwMUQ4XFx1MDFEQVxcdTAxREMtXFx1MDFERFxcdTAxREZcXHUwMUUxXFx1MDFFM1xcdTAxRTVcXHUwMUU3XFx1MDFFOVxcdTAxRUJcXHUwMUVEXFx1MDFFRi1cXHUwMUYwXFx1MDFGM1xcdTAxRjVcXHUwMUY5XFx1MDFGQlxcdTAxRkRcXHUwMUZGXFx1MDIwMVxcdTAyMDNcXHUwMjA1XFx1MDIwN1xcdTAyMDlcXHUwMjBCXFx1MDIwRFxcdTAyMEZcXHUwMjExXFx1MDIxM1xcdTAyMTVcXHUwMjE3XFx1MDIxOVxcdTAyMUJcXHUwMjFEXFx1MDIxRlxcdTAyMjFcXHUwMjIzXFx1MDIyNVxcdTAyMjdcXHUwMjI5XFx1MDIyQlxcdTAyMkRcXHUwMjJGXFx1MDIzMVxcdTAyMzMtXFx1MDIzOVxcdTAyM0NcXHUwMjNGLVxcdTAyNDBcXHUwMjQyXFx1MDI0N1xcdTAyNDlcXHUwMjRCXFx1MDI0RFxcdTAyNEYtXFx1MDI5M1xcdTAyOTUtXFx1MDJBRlxcdTAzNzFcXHUwMzczXFx1MDM3N1xcdTAzN0ItXFx1MDM3RFxcdTAzOTBcXHUwM0FDLVxcdTAzQ0VcXHUwM0QwLVxcdTAzRDFcXHUwM0Q1LVxcdTAzRDdcXHUwM0Q5XFx1MDNEQlxcdTAzRERcXHUwM0RGXFx1MDNFMVxcdTAzRTNcXHUwM0U1XFx1MDNFN1xcdTAzRTlcXHUwM0VCXFx1MDNFRFxcdTAzRUYtXFx1MDNGM1xcdTAzRjVcXHUwM0Y4XFx1MDNGQi1cXHUwM0ZDXFx1MDQzMC1cXHUwNDVGXFx1MDQ2MVxcdTA0NjNcXHUwNDY1XFx1MDQ2N1xcdTA0NjlcXHUwNDZCXFx1MDQ2RFxcdTA0NkZcXHUwNDcxXFx1MDQ3M1xcdTA0NzVcXHUwNDc3XFx1MDQ3OVxcdTA0N0JcXHUwNDdEXFx1MDQ3RlxcdTA0ODFcXHUwNDhCXFx1MDQ4RFxcdTA0OEZcXHUwNDkxXFx1MDQ5M1xcdTA0OTVcXHUwNDk3XFx1MDQ5OVxcdTA0OUJcXHUwNDlEXFx1MDQ5RlxcdTA0QTFcXHUwNEEzXFx1MDRBNVxcdTA0QTdcXHUwNEE5XFx1MDRBQlxcdTA0QURcXHUwNEFGXFx1MDRCMVxcdTA0QjNcXHUwNEI1XFx1MDRCN1xcdTA0QjlcXHUwNEJCXFx1MDRCRFxcdTA0QkZcXHUwNEMyXFx1MDRDNFxcdTA0QzZcXHUwNEM4XFx1MDRDQVxcdTA0Q0NcXHUwNENFLVxcdTA0Q0ZcXHUwNEQxXFx1MDREM1xcdTA0RDVcXHUwNEQ3XFx1MDREOVxcdTA0REJcXHUwNEREXFx1MDRERlxcdTA0RTFcXHUwNEUzXFx1MDRFNVxcdTA0RTdcXHUwNEU5XFx1MDRFQlxcdTA0RURcXHUwNEVGXFx1MDRGMVxcdTA0RjNcXHUwNEY1XFx1MDRGN1xcdTA0RjlcXHUwNEZCXFx1MDRGRFxcdTA0RkZcXHUwNTAxXFx1MDUwM1xcdTA1MDVcXHUwNTA3XFx1MDUwOVxcdTA1MEJcXHUwNTBEXFx1MDUwRlxcdTA1MTFcXHUwNTEzXFx1MDUxNVxcdTA1MTdcXHUwNTE5XFx1MDUxQlxcdTA1MURcXHUwNTFGXFx1MDUyMVxcdTA1MjNcXHUwNTI1XFx1MDUyN1xcdTA1MjlcXHUwNTJCXFx1MDUyRFxcdTA1MkZcXHUwNTYxLVxcdTA1ODdcXHUxM0Y4LVxcdTEzRkRcXHUxRDAwLVxcdTFEMkJcXHUxRDZCLVxcdTFENzdcXHUxRDc5LVxcdTFEOUFcXHUxRTAxXFx1MUUwM1xcdTFFMDVcXHUxRTA3XFx1MUUwOVxcdTFFMEJcXHUxRTBEXFx1MUUwRlxcdTFFMTFcXHUxRTEzXFx1MUUxNVxcdTFFMTdcXHUxRTE5XFx1MUUxQlxcdTFFMURcXHUxRTFGXFx1MUUyMVxcdTFFMjNcXHUxRTI1XFx1MUUyN1xcdTFFMjlcXHUxRTJCXFx1MUUyRFxcdTFFMkZcXHUxRTMxXFx1MUUzM1xcdTFFMzVcXHUxRTM3XFx1MUUzOVxcdTFFM0JcXHUxRTNEXFx1MUUzRlxcdTFFNDFcXHUxRTQzXFx1MUU0NVxcdTFFNDdcXHUxRTQ5XFx1MUU0QlxcdTFFNERcXHUxRTRGXFx1MUU1MVxcdTFFNTNcXHUxRTU1XFx1MUU1N1xcdTFFNTlcXHUxRTVCXFx1MUU1RFxcdTFFNUZcXHUxRTYxXFx1MUU2M1xcdTFFNjVcXHUxRTY3XFx1MUU2OVxcdTFFNkJcXHUxRTZEXFx1MUU2RlxcdTFFNzFcXHUxRTczXFx1MUU3NVxcdTFFNzdcXHUxRTc5XFx1MUU3QlxcdTFFN0RcXHUxRTdGXFx1MUU4MVxcdTFFODNcXHUxRTg1XFx1MUU4N1xcdTFFODlcXHUxRThCXFx1MUU4RFxcdTFFOEZcXHUxRTkxXFx1MUU5M1xcdTFFOTUtXFx1MUU5RFxcdTFFOUZcXHUxRUExXFx1MUVBM1xcdTFFQTVcXHUxRUE3XFx1MUVBOVxcdTFFQUJcXHUxRUFEXFx1MUVBRlxcdTFFQjFcXHUxRUIzXFx1MUVCNVxcdTFFQjdcXHUxRUI5XFx1MUVCQlxcdTFFQkRcXHUxRUJGXFx1MUVDMVxcdTFFQzNcXHUxRUM1XFx1MUVDN1xcdTFFQzlcXHUxRUNCXFx1MUVDRFxcdTFFQ0ZcXHUxRUQxXFx1MUVEM1xcdTFFRDVcXHUxRUQ3XFx1MUVEOVxcdTFFREJcXHUxRUREXFx1MUVERlxcdTFFRTFcXHUxRUUzXFx1MUVFNVxcdTFFRTdcXHUxRUU5XFx1MUVFQlxcdTFFRURcXHUxRUVGXFx1MUVGMVxcdTFFRjNcXHUxRUY1XFx1MUVGN1xcdTFFRjlcXHUxRUZCXFx1MUVGRFxcdTFFRkYtXFx1MUYwN1xcdTFGMTAtXFx1MUYxNVxcdTFGMjAtXFx1MUYyN1xcdTFGMzAtXFx1MUYzN1xcdTFGNDAtXFx1MUY0NVxcdTFGNTAtXFx1MUY1N1xcdTFGNjAtXFx1MUY2N1xcdTFGNzAtXFx1MUY3RFxcdTFGODAtXFx1MUY4N1xcdTFGOTAtXFx1MUY5N1xcdTFGQTAtXFx1MUZBN1xcdTFGQjAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCN1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQzdcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGRDdcXHUxRkUwLVxcdTFGRTdcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRjdcXHUyMTBBXFx1MjEwRS1cXHUyMTBGXFx1MjExM1xcdTIxMkZcXHUyMTM0XFx1MjEzOVxcdTIxM0MtXFx1MjEzRFxcdTIxNDYtXFx1MjE0OVxcdTIxNEVcXHUyMTg0XFx1MkMzMC1cXHUyQzVFXFx1MkM2MVxcdTJDNjUtXFx1MkM2NlxcdTJDNjhcXHUyQzZBXFx1MkM2Q1xcdTJDNzFcXHUyQzczLVxcdTJDNzRcXHUyQzc2LVxcdTJDN0JcXHUyQzgxXFx1MkM4M1xcdTJDODVcXHUyQzg3XFx1MkM4OVxcdTJDOEJcXHUyQzhEXFx1MkM4RlxcdTJDOTFcXHUyQzkzXFx1MkM5NVxcdTJDOTdcXHUyQzk5XFx1MkM5QlxcdTJDOURcXHUyQzlGXFx1MkNBMVxcdTJDQTNcXHUyQ0E1XFx1MkNBN1xcdTJDQTlcXHUyQ0FCXFx1MkNBRFxcdTJDQUZcXHUyQ0IxXFx1MkNCM1xcdTJDQjVcXHUyQ0I3XFx1MkNCOVxcdTJDQkJcXHUyQ0JEXFx1MkNCRlxcdTJDQzFcXHUyQ0MzXFx1MkNDNVxcdTJDQzdcXHUyQ0M5XFx1MkNDQlxcdTJDQ0RcXHUyQ0NGXFx1MkNEMVxcdTJDRDNcXHUyQ0Q1XFx1MkNEN1xcdTJDRDlcXHUyQ0RCXFx1MkNERFxcdTJDREZcXHUyQ0UxXFx1MkNFMy1cXHUyQ0U0XFx1MkNFQ1xcdTJDRUVcXHUyQ0YzXFx1MkQwMC1cXHUyRDI1XFx1MkQyN1xcdTJEMkRcXHVBNjQxXFx1QTY0M1xcdUE2NDVcXHVBNjQ3XFx1QTY0OVxcdUE2NEJcXHVBNjREXFx1QTY0RlxcdUE2NTFcXHVBNjUzXFx1QTY1NVxcdUE2NTdcXHVBNjU5XFx1QTY1QlxcdUE2NURcXHVBNjVGXFx1QTY2MVxcdUE2NjNcXHVBNjY1XFx1QTY2N1xcdUE2NjlcXHVBNjZCXFx1QTY2RFxcdUE2ODFcXHVBNjgzXFx1QTY4NVxcdUE2ODdcXHVBNjg5XFx1QTY4QlxcdUE2OERcXHVBNjhGXFx1QTY5MVxcdUE2OTNcXHVBNjk1XFx1QTY5N1xcdUE2OTlcXHVBNjlCXFx1QTcyM1xcdUE3MjVcXHVBNzI3XFx1QTcyOVxcdUE3MkJcXHVBNzJEXFx1QTcyRi1cXHVBNzMxXFx1QTczM1xcdUE3MzVcXHVBNzM3XFx1QTczOVxcdUE3M0JcXHVBNzNEXFx1QTczRlxcdUE3NDFcXHVBNzQzXFx1QTc0NVxcdUE3NDdcXHVBNzQ5XFx1QTc0QlxcdUE3NERcXHVBNzRGXFx1QTc1MVxcdUE3NTNcXHVBNzU1XFx1QTc1N1xcdUE3NTlcXHVBNzVCXFx1QTc1RFxcdUE3NUZcXHVBNzYxXFx1QTc2M1xcdUE3NjVcXHVBNzY3XFx1QTc2OVxcdUE3NkJcXHVBNzZEXFx1QTc2RlxcdUE3NzEtXFx1QTc3OFxcdUE3N0FcXHVBNzdDXFx1QTc3RlxcdUE3ODFcXHVBNzgzXFx1QTc4NVxcdUE3ODdcXHVBNzhDXFx1QTc4RVxcdUE3OTFcXHVBNzkzLVxcdUE3OTVcXHVBNzk3XFx1QTc5OVxcdUE3OUJcXHVBNzlEXFx1QTc5RlxcdUE3QTFcXHVBN0EzXFx1QTdBNVxcdUE3QTdcXHVBN0E5XFx1QTdCNVxcdUE3QjdcXHVBN0ZBXFx1QUIzMC1cXHVBQjVBXFx1QUI2MC1cXHVBQjY1XFx1QUI3MC1cXHVBQkJGXFx1RkIwMC1cXHVGQjA2XFx1RkIxMy1cXHVGQjE3XFx1RkY0MS1cXHVGRjVBLy5zb3VyY2UsXG4gICAgLy8gTGV0dGVyLCBNb2RpZmllclxuICAgIC9cXHUwMkIwLVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzNzRcXHUwMzdBXFx1MDU1OVxcdTA2NDBcXHUwNkU1LVxcdTA2RTZcXHUwN0Y0LVxcdTA3RjVcXHUwN0ZBXFx1MDgxQVxcdTA4MjRcXHUwODI4XFx1MDk3MVxcdTBFNDZcXHUwRUM2XFx1MTBGQ1xcdTE3RDdcXHUxODQzXFx1MUFBN1xcdTFDNzgtXFx1MUM3RFxcdTFEMkMtXFx1MUQ2QVxcdTFENzhcXHUxRDlCLVxcdTFEQkZcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTJDN0MtXFx1MkM3RFxcdTJENkZcXHUyRTJGXFx1MzAwNVxcdTMwMzEtXFx1MzAzNVxcdTMwM0JcXHUzMDlELVxcdTMwOUVcXHUzMEZDLVxcdTMwRkVcXHVBMDE1XFx1QTRGOC1cXHVBNEZEXFx1QTYwQ1xcdUE2N0ZcXHVBNjlDLVxcdUE2OURcXHVBNzE3LVxcdUE3MUZcXHVBNzcwXFx1QTc4OFxcdUE3RjgtXFx1QTdGOVxcdUE5Q0ZcXHVBOUU2XFx1QUE3MFxcdUFBRERcXHVBQUYzLVxcdUFBRjRcXHVBQjVDLVxcdUFCNUZcXHVGRjcwXFx1RkY5RS1cXHVGRjlGLy5zb3VyY2UsXG4gICAgLy8gTGV0dGVyLCBPdGhlclxuICAgIC9cXHUwMEFBXFx1MDBCQVxcdTAxQkJcXHUwMUMwLVxcdTAxQzNcXHUwMjk0XFx1MDVEMC1cXHUwNUVBXFx1MDVGMC1cXHUwNUYyXFx1MDYyMC1cXHUwNjNGXFx1MDY0MS1cXHUwNjRBXFx1MDY2RS1cXHUwNjZGXFx1MDY3MS1cXHUwNkQzXFx1MDZENVxcdTA2RUUtXFx1MDZFRlxcdTA2RkEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwXFx1MDcxMi1cXHUwNzJGXFx1MDc0RC1cXHUwN0E1XFx1MDdCMVxcdTA3Q0EtXFx1MDdFQVxcdTA4MDAtXFx1MDgxNVxcdTA4NDAtXFx1MDg1OFxcdTA4QTAtXFx1MDhCNFxcdTA5MDQtXFx1MDkzOVxcdTA5M0RcXHUwOTUwXFx1MDk1OC1cXHUwOTYxXFx1MDk3Mi1cXHUwOTgwXFx1MDk4NS1cXHUwOThDXFx1MDk4Ri1cXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkRcXHUwOUNFXFx1MDlEQy1cXHUwOUREXFx1MDlERi1cXHUwOUUxXFx1MDlGMC1cXHUwOUYxXFx1MEEwNS1cXHUwQTBBXFx1MEEwRi1cXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMi1cXHUwQTMzXFx1MEEzNS1cXHUwQTM2XFx1MEEzOC1cXHUwQTM5XFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNzItXFx1MEE3NFxcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjItXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkRcXHUwQUQwXFx1MEFFMC1cXHUwQUUxXFx1MEFGOVxcdTBCMDUtXFx1MEIwQ1xcdTBCMEYtXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzItXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0RcXHUwQjVDLVxcdTBCNURcXHUwQjVGLVxcdTBCNjFcXHUwQjcxXFx1MEI4M1xcdTBCODUtXFx1MEI4QVxcdTBCOEUtXFx1MEI5MFxcdTBCOTItXFx1MEI5NVxcdTBCOTktXFx1MEI5QVxcdTBCOUNcXHUwQjlFLVxcdTBCOUZcXHUwQkEzLVxcdTBCQTRcXHUwQkE4LVxcdTBCQUFcXHUwQkFFLVxcdTBCQjlcXHUwQkQwXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRFxcdTBDNTgtXFx1MEM1QVxcdTBDNjAtXFx1MEM2MVxcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkRcXHUwQ0RFXFx1MENFMC1cXHUwQ0UxXFx1MENGMS1cXHUwQ0YyXFx1MEQwNS1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDNBXFx1MEQzRFxcdTBENEVcXHUwRDVGLVxcdTBENjFcXHUwRDdBLVxcdTBEN0ZcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MEUwMS1cXHUwRTMwXFx1MEUzMi1cXHUwRTMzXFx1MEU0MC1cXHUwRTQ1XFx1MEU4MS1cXHUwRTgyXFx1MEU4NFxcdTBFODctXFx1MEU4OFxcdTBFOEFcXHUwRThEXFx1MEU5NC1cXHUwRTk3XFx1MEU5OS1cXHUwRTlGXFx1MEVBMS1cXHUwRUEzXFx1MEVBNVxcdTBFQTdcXHUwRUFBLVxcdTBFQUJcXHUwRUFELVxcdTBFQjBcXHUwRUIyLVxcdTBFQjNcXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQVxcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NS1cXHUxMDY2XFx1MTA2RS1cXHUxMDcwXFx1MTA3NS1cXHUxMDgxXFx1MTA4RVxcdTEwRDAtXFx1MTBGQVxcdTEwRkQtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM4MC1cXHUxMzhGXFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZGMS1cXHUxNkY4XFx1MTcwMC1cXHUxNzBDXFx1MTcwRS1cXHUxNzExXFx1MTcyMC1cXHUxNzMxXFx1MTc0MC1cXHUxNzUxXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc4MC1cXHUxN0IzXFx1MTdEQ1xcdTE4MjAtXFx1MTg0MlxcdTE4NDQtXFx1MTg3N1xcdTE4ODAtXFx1MThBOFxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTUwLVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUIwLVxcdTE5QzlcXHUxQTAwLVxcdTFBMTZcXHUxQTIwLVxcdTFBNTRcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNEJcXHUxQjgzLVxcdTFCQTBcXHUxQkFFLVxcdTFCQUZcXHUxQkJBLVxcdTFCRTVcXHUxQzAwLVxcdTFDMjNcXHUxQzRELVxcdTFDNEZcXHUxQzVBLVxcdTFDNzdcXHUxQ0U5LVxcdTFDRUNcXHUxQ0VFLVxcdTFDRjFcXHUxQ0Y1LVxcdTFDRjZcXHUyMTM1LVxcdTIxMzhcXHUyRDMwLVxcdTJENjdcXHUyRDgwLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUzMDA2XFx1MzAzQ1xcdTMwNDEtXFx1MzA5NlxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZGXFx1MzEwNS1cXHUzMTJEXFx1MzEzMS1cXHUzMThFXFx1MzFBMC1cXHUzMUJBXFx1MzFGMC1cXHUzMUZGXFx1MzQwMC1cXHU0REI1XFx1NEUwMC1cXHU5RkQ1XFx1QTAwMC1cXHVBMDE0XFx1QTAxNi1cXHVBNDhDXFx1QTREMC1cXHVBNEY3XFx1QTUwMC1cXHVBNjBCXFx1QTYxMC1cXHVBNjFGXFx1QTYyQS1cXHVBNjJCXFx1QTY2RVxcdUE2QTAtXFx1QTZFNVxcdUE3OEZcXHVBN0Y3XFx1QTdGQi1cXHVBODAxXFx1QTgwMy1cXHVBODA1XFx1QTgwNy1cXHVBODBBXFx1QTgwQy1cXHVBODIyXFx1QTg0MC1cXHVBODczXFx1QTg4Mi1cXHVBOEIzXFx1QThGMi1cXHVBOEY3XFx1QThGQlxcdUE4RkRcXHVBOTBBLVxcdUE5MjVcXHVBOTMwLVxcdUE5NDZcXHVBOTYwLVxcdUE5N0NcXHVBOTg0LVxcdUE5QjJcXHVBOUUwLVxcdUE5RTRcXHVBOUU3LVxcdUE5RUZcXHVBOUZBLVxcdUE5RkVcXHVBQTAwLVxcdUFBMjhcXHVBQTQwLVxcdUFBNDJcXHVBQTQ0LVxcdUFBNEJcXHVBQTYwLVxcdUFBNkZcXHVBQTcxLVxcdUFBNzZcXHVBQTdBXFx1QUE3RS1cXHVBQUFGXFx1QUFCMVxcdUFBQjUtXFx1QUFCNlxcdUFBQjktXFx1QUFCRFxcdUFBQzBcXHVBQUMyXFx1QUFEQi1cXHVBQURDXFx1QUFFMC1cXHVBQUVBXFx1QUFGMlxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCQzAtXFx1QUJFMlxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMURcXHVGQjFGLVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MC1cXHVGQjQxXFx1RkI0My1cXHVGQjQ0XFx1RkI0Ni1cXHVGQkIxXFx1RkJEMy1cXHVGRDNEXFx1RkQ1MC1cXHVGRDhGXFx1RkQ5Mi1cXHVGREM3XFx1RkRGMC1cXHVGREZCXFx1RkU3MC1cXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkY2Ni1cXHVGRjZGXFx1RkY3MS1cXHVGRjlEXFx1RkZBMC1cXHVGRkJFXFx1RkZDMi1cXHVGRkM3XFx1RkZDQS1cXHVGRkNGXFx1RkZEMi1cXHVGRkQ3XFx1RkZEQS1cXHVGRkRDLy5zb3VyY2UsXG5dLmpvaW4oJycpICsgJ10nKTtcbmNsYXNzIEJpYnRleFBhcnNlciB7XG4gICAgcGFyc2UoaW5wdXQsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICAvLyB0aGlzLl9wcm9ncmVzcyA9IDBcbiAgICAgICAgdGhpcy5wb3MgPSAwO1xuICAgICAgICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMubWF4X2VudHJpZXMgPSBvcHRpb25zLm1heF9lbnRyaWVzIHx8IDA7XG4gICAgICAgIHRoaXMuZW50cmllcyA9IDA7XG4gICAgICAgIHRoaXMucGFyc2luZyA9IG51bGw7XG4gICAgICAgIHRoaXMuY2h1bmtzID0gW107XG4gICAgICAgIGlmIChvcHRpb25zLmFzeW5jKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5iaWJ0ZXhBc3luYygpLnRoZW4oKCkgPT4gdGhpcy5jaHVua3MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5iaWJ0ZXgoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNodW5rcztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpc1doaXRlc3BhY2UocywgaG9yaXpvbnRhbE9ubHkgPSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gKHMgPT09ICcgJyB8fCBzID09PSAnXFx0JyB8fCAoIWhvcml6b250YWxPbmx5ICYmIChzID09PSAnXFxyJyB8fCBzID09PSAnXFxuJykpKTtcbiAgICB9XG4gICAgbWF0Y2gocykge1xuICAgICAgICB0aGlzLnNraXBXaGl0ZXNwYWNlKCk7XG4gICAgICAgIGlmICh0aGlzLmlucHV0LnN1YnN0cih0aGlzLnBvcywgcy5sZW5ndGgpICE9PSBzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihgVG9rZW4gbWlzbWF0Y2gsIGV4cGVjdGVkICR7SlNPTi5zdHJpbmdpZnkocyl9LCBmb3VuZCAke0pTT04uc3RyaW5naWZ5KHRoaXMuaW5wdXQuc3Vic3RyKHRoaXMucG9zLCAyMCkpfS4uLmAsIHRoaXMpOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lIG5vLW1hZ2ljLW51bWJlcnNcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBvcyArPSBzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5za2lwV2hpdGVzcGFjZSgpO1xuICAgIH1cbiAgICB0cnlNYXRjaChzKSB7XG4gICAgICAgIHRoaXMuc2tpcFdoaXRlc3BhY2UoKTtcbiAgICAgICAgcmV0dXJuICh0aGlzLmlucHV0LnN1YnN0cih0aGlzLnBvcywgcy5sZW5ndGgpID09PSBzKTtcbiAgICAgICAgLy8gdGhpcy5za2lwV2hpdGVzcGFjZSgpXG4gICAgfVxuICAgIHNraXBXaGl0ZXNwYWNlKCkge1xuICAgICAgICB3aGlsZSAodGhpcy5wb3MgPCB0aGlzLmlucHV0Lmxlbmd0aCAmJiB0aGlzLmlzV2hpdGVzcGFjZSh0aGlzLmlucHV0W3RoaXMucG9zXSkpXG4gICAgICAgICAgICB0aGlzLnBvcysrO1xuICAgICAgICAvLyBzaGFkeVxuICAgICAgICBpZiAodGhpcy5pbnB1dFt0aGlzLnBvc10gPT09ICclJykge1xuICAgICAgICAgICAgd2hpbGUgKHRoaXMucG9zIDwgdGhpcy5pbnB1dC5sZW5ndGggJiYgdGhpcy5pbnB1dFt0aGlzLnBvc10gIT09ICdcXG4nKVxuICAgICAgICAgICAgICAgIHRoaXMucG9zKys7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5wb3MgPCB0aGlzLmlucHV0Lmxlbmd0aCAmJiB0aGlzLmlzV2hpdGVzcGFjZSh0aGlzLmlucHV0W3RoaXMucG9zXSkpXG4gICAgICAgICAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgfVxuICAgIH1cbiAgICB2YWx1ZV9icmFjZXMoKSB7XG4gICAgICAgIGxldCBicmFjZWNvdW50ID0gMDtcbiAgICAgICAgdGhpcy5tYXRjaCgneycpO1xuICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMucG9zO1xuICAgICAgICBsZXQgbWF0aCA9IGZhbHNlO1xuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmlucHV0W3RoaXMucG9zXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ1xcXFwnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcyArPSAxO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd7JzpcbiAgICAgICAgICAgICAgICAgICAgYnJhY2Vjb3VudCsrO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd9JzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJyYWNlY291bnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKCdVbmNsb3NlZCBtYXRoIHNlY3Rpb24nLCB0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zKys7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dC5zdWJzdHJpbmcoc3RhcnQsIHRoaXMucG9zIC0gMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJhY2Vjb3VudC0tO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICckJzpcbiAgICAgICAgICAgICAgICAgICAgbWF0aCA9ICFtYXRoO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucG9zKys7XG4gICAgICAgICAgICBpZiAodGhpcy5wb3MgPj0gdGhpcy5pbnB1dC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihgVW50ZXJtaW5hdGVkIGJyYWNlLXZhbHVlICR7SlNPTi5zdHJpbmdpZnkodGhpcy5pbnB1dC5zdWJzdHIoc3RhcnQsIDIwKSl9YCwgdGhpcyk7IC8vIHRzbGludDpkaXNhYmxlLWxpbmUgbm8tbWFnaWMtbnVtYmVyc1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHZhbHVlX3F1b3RlcygpIHtcbiAgICAgICAgdGhpcy5tYXRjaCgnXCInKTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLnBvcztcbiAgICAgICAgbGV0IGJyYWNlY291bnQgPSAwO1xuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmlucHV0W3RoaXMucG9zXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ1xcXFwnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcyArPSAxO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd7JzpcbiAgICAgICAgICAgICAgICAgICAgYnJhY2Vjb3VudCsrO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd9JzpcbiAgICAgICAgICAgICAgICAgICAgYnJhY2Vjb3VudC0tO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdcIic6XG4gICAgICAgICAgICAgICAgICAgIGlmIChicmFjZWNvdW50IDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zKys7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dC5zdWJzdHJpbmcoc3RhcnQsIHRoaXMucG9zIC0gMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucG9zKys7XG4gICAgICAgICAgICBpZiAodGhpcy5wb3MgPj0gdGhpcy5pbnB1dC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcihgVW50ZXJtaW5hdGVkIHF1b3RlLXZhbHVlICR7SlNPTi5zdHJpbmdpZnkodGhpcy5pbnB1dC5zdWJzdHIoc3RhcnQsIDIwKSl9YCwgdGhpcyk7IC8vIHRzbGludDpkaXNhYmxlLWxpbmUgbm8tbWFnaWMtbnVtYmVyc1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHNpbmdsZV92YWx1ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMudHJ5TWF0Y2goJ3snKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVfYnJhY2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy50cnlNYXRjaCgnXCInKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVfcXVvdGVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5rZXkoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB2YWx1ZSgpIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gW107XG4gICAgICAgIHZhbHVlcy5wdXNoKHRoaXMuc2luZ2xlX3ZhbHVlKCkpO1xuICAgICAgICB3aGlsZSAodGhpcy50cnlNYXRjaCgnIycpKSB7XG4gICAgICAgICAgICB0aGlzLm1hdGNoKCcjJyk7XG4gICAgICAgICAgICB2YWx1ZXMucHVzaCh0aGlzLnNpbmdsZV92YWx1ZSgpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWVzLmpvaW4oJycpO1xuICAgIH1cbiAgICBrZXkoYWxsb3dVbmljb2RlID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLnBvcztcbiAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBvcyA9PT0gdGhpcy5pbnB1dC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFcnJvcignUnVuYXdheSBrZXknLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0W3RoaXMucG9zXS5tYXRjaCgvWydhLXpBLVowLTkmO186XFxcXC4vLV0vKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9zKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChhbGxvd1VuaWNvZGUgJiYgdGhpcy5pbnB1dFt0aGlzLnBvc10ubWF0Y2gobGV0dGVyKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9zKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dC5zdWJzdHJpbmcoc3RhcnQsIHRoaXMucG9zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBrZXlfZXF1YWxzX3ZhbHVlKCkge1xuICAgICAgICBjb25zdCBrZXkgPSB0aGlzLmtleSgpO1xuICAgICAgICBpZiAoIXRoaXMudHJ5TWF0Y2goJz0nKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXJyb3IoYC4uLiA9IHZhbHVlIGV4cGVjdGVkLCBlcXVhbHMgc2lnbiBtaXNzaW5nOiAke0pTT04uc3RyaW5naWZ5KHRoaXMuaW5wdXQuc3Vic3RyKHRoaXMucG9zLCAyMCkpfS4uLmAsIHRoaXMpOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lIG5vLW1hZ2ljLW51bWJlcnNcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1hdGNoKCc9Jyk7XG4gICAgICAgIGNvbnN0IHZhbCA9IHRoaXMudmFsdWUoKTtcbiAgICAgICAgcmV0dXJuIFtrZXksIHZhbF07XG4gICAgfVxuICAgIGtleV92YWx1ZV9saXN0KCkge1xuICAgICAgICB0aGlzLmtleV9lcXVhbHNfdmFsdWUoKTtcbiAgICAgICAgd2hpbGUgKHRoaXMudHJ5TWF0Y2goJywnKSkge1xuICAgICAgICAgICAgdGhpcy5tYXRjaCgnLCcpO1xuICAgICAgICAgICAgLy8gZml4ZXMgcHJvYmxlbXMgd2l0aCBjb21tYXMgYXQgdGhlIGVuZCBvZiBhIGxpc3RcbiAgICAgICAgICAgIGlmICh0aGlzLnRyeU1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMua2V5X2VxdWFsc192YWx1ZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVudHJ5KGQpIHtcbiAgICAgICAgdGhpcy5wYXJzaW5nID0gdGhpcy5rZXkodHJ1ZSk7XG4gICAgICAgIHRoaXMubWF0Y2goJywnKTtcbiAgICAgICAgdGhpcy5rZXlfdmFsdWVfbGlzdCgpO1xuICAgIH1cbiAgICBkaXJlY3RpdmUoKSB7XG4gICAgICAgIHRoaXMubWF0Y2goJ0AnKTtcbiAgICAgICAgcmV0dXJuIGBAJHt0aGlzLmtleSgpfWAudG9Mb3dlckNhc2UoKTtcbiAgICB9XG4gICAgc3RyaW5nKCkge1xuICAgICAgICB0aGlzLmtleV9lcXVhbHNfdmFsdWUoKTtcbiAgICB9XG4gICAgcHJlYW1ibGUoKSB7XG4gICAgICAgIHRoaXMudmFsdWUoKTtcbiAgICB9XG4gICAgY29tbWVudCgpIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuaXNXaGl0ZXNwYWNlKHRoaXMuaW5wdXRbdGhpcy5wb3NdLCB0cnVlKSlcbiAgICAgICAgICAgIHRoaXMucG9zKys7XG4gICAgICAgIGlmICh0aGlzLmlucHV0W3RoaXMucG9zXSA9PT0gJ3snKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlX2JyYWNlcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlICh0aGlzLmlucHV0W3RoaXMucG9zXSAhPT0gJ1xcbicgJiYgdGhpcy5wb3MgPCB0aGlzLmlucHV0Lmxlbmd0aClcbiAgICAgICAgICAgIHRoaXMucG9zKys7XG4gICAgfVxuICAgIC8qXG4gICAgcHJpdmF0ZSBwcm9ncmVzcygpIHtcbiAgICAgIGNvbnN0IHByb2dyZXNzID0gTWF0aC5yb3VuZCgodGhpcy5wb3MgLyB0aGlzLmlucHV0Lmxlbmd0aCAqIDEwMCkgLyA1KSAqIDUgLy8gdHNsaW50OmRpc2FibGUtbGluZSBuby1tYWdpYy1udW1iZXJzXG4gICAgICBpZiAodGhpcy5fcHJvZ3Jlc3MgIT09IHByb2dyZXNzKSB7XG4gICAgICAgIHRoaXMuX3Byb2dyZXNzID0gcHJvZ3Jlc3NcbiAgICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYCAoJHt0aGlzLl9wcm9ncmVzc30lKSBgKVxuICAgICAgfVxuICAgIH1cbiAgICAqL1xuICAgIGhhc01vcmUoKSB7XG4gICAgICAgIGlmICh0aGlzLm1heF9lbnRyaWVzICYmIHRoaXMuZW50cmllcyA+PSB0aGlzLm1heF9lbnRyaWVzKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gKHRoaXMucG9zIDwgdGhpcy5pbnB1dC5sZW5ndGgpO1xuICAgIH1cbiAgICBiaWJ0ZXgoKSB7XG4gICAgICAgIHdoaWxlICh0aGlzLmhhc01vcmUoKSkge1xuICAgICAgICAgICAgdGhpcy5wYXJzZU5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBiaWJ0ZXhBc3luYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzTW9yZSgpID8gKG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcmVzb2x2ZSh0aGlzLnBhcnNlTmV4dCgpKSkpLnRoZW4oKCkgPT4gdGhpcy5iaWJ0ZXhBc3luYygpKSA6IFByb21pc2UucmVzb2x2ZShudWxsKTtcbiAgICB9XG4gICAgcGFyc2VOZXh0KCkge1xuICAgICAgICAvLyB0aGlzLnByb2dyZXNzKClcbiAgICAgICAgY29uc3QgY2h1bmsgPSB7XG4gICAgICAgICAgICBvZmZzZXQ6IHtcbiAgICAgICAgICAgICAgICBwb3M6IHRoaXMucG9zLFxuICAgICAgICAgICAgICAgIGxpbmU6IHRoaXMuaW5wdXQuc3Vic3RyaW5nKDAsIHRoaXMucG9zKS5zcGxpdCgnXFxuJykubGVuZ3RoIC0gMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICAgIHRleHQ6IG51bGwsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2tpcFdoaXRlc3BhY2UoKTtcbiAgICAgICAgaWYgKHRoaXMucG9zID49IHRoaXMuaW5wdXQubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBsZXQgZ3VhcmQgPSAnJztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGQgPSB0aGlzLmRpcmVjdGl2ZSgpO1xuICAgICAgICAgICAgc3dpdGNoIChkKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnQHN0cmluZyc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWF0Y2goJ3snKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRjaCgnfScpO1xuICAgICAgICAgICAgICAgICAgICBjaHVuay5zdHJpbmdEZWNsYXJhdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ0BwcmVhbWJsZSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWF0Y2goJ3snKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVhbWJsZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdGNoKCd9Jyk7XG4gICAgICAgICAgICAgICAgICAgIGNodW5rLnByZWFtYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnQGNvbW1lbnQnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbW1lbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgY2h1bmsuY29tbWVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyeU1hdGNoKCd7JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGd1YXJkID0gJ3t9JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLnRyeU1hdGNoKCcoJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGd1YXJkID0gJygpJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUVycm9yKGBUb2tlbiBtaXNtYXRjaCwgZXhwZWN0ZWQgJ3snIG9yICcoJywgZm91bmQgJHtKU09OLnN0cmluZ2lmeSh0aGlzLmlucHV0LnN1YnN0cih0aGlzLnBvcywgMjApKX0uLi5gLCB0aGlzKTsgLy8gdHNsaW50OmRpc2FibGUtbGluZSBuby1tYWdpYy1udW1iZXJzXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRjaChndWFyZFswXSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW50cnkoZCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWF0Y2goZ3VhcmRbMV0pO1xuICAgICAgICAgICAgICAgICAgICBjaHVuay5lbnRyeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW50cmllcysrO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBpZiAoZXJyLm5hbWUgIT09ICdQYXJzZUVycm9yJylcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICBjaHVuay5lcnJvciA9IGVyci5tZXNzYWdlLFxuICAgICAgICAgICAgICAgIC8vIHNraXAgYWhlYWQgdG8gdGhlIG5leHQgQCBhbmQgdHJ5IGFnYWluXG4gICAgICAgICAgICAgICAgdGhpcy5wb3MgPSBjaHVuay5vZmZzZXQucG9zICsgMTtcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLnBvcyA8IHRoaXMuaW5wdXQubGVuZ3RoICYmIHRoaXMuaW5wdXRbdGhpcy5wb3NdICE9PSAnQCcpXG4gICAgICAgICAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy5pbnB1dC5zdWJzdHJpbmcoY2h1bmsub2Zmc2V0LnBvcywgdGhpcy5wb3MpO1xuICAgICAgICBjb25zdCBsYXN0ID0gdGhpcy5jaHVua3MubGVuZ3RoIC0gMTtcbiAgICAgICAgaWYgKGNodW5rLmVycm9yICYmIHRoaXMuY2h1bmtzLmxlbmd0aCAmJiB0aGlzLmNodW5rc1tsYXN0XS5lcnJvcikge1xuICAgICAgICAgICAgdGhpcy5jaHVua3NbbGFzdF0udGV4dCArPSB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY2h1bmsudGV4dCA9IHRleHQ7XG4gICAgICAgICAgICB0aGlzLmNodW5rcy5wdXNoKGNodW5rKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8qKlxuICogUmVhZHMgdGhlIGJpYnRleCBpbnB1dCBhbmQgc3BsaXRzIGl0IGludG8gc2VwYXJhdGUgY2h1bmtzIG9mIGBAc3RyaW5nYHMsIGBAY29tbWVudGBzLCBhbmQgYmlidGV4IGVudHJpZXMuIFVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGlmIGEgZmlsZSBpcyBiaWJ0ZXggZmlsZSBhbmQgZm9yIGZpbHRlcmluZyBvdXQgYmFzaWMgZXJyb3JzIHRoYXQgd291bGRcbiAqIG1ha2UgdGhlIG1vcmUgc29waGlzdGljYXRlZCBbW2JpYnRleC5wYXJzZV1dIHJlamVjdCB0aGUgd2hvbGUgZmlsZVxuICpcbiAqIEByZXR1cm5zIGFycmF5IG9mIGNodW5rcywgd2l0aCBtYXJrZXJzIGZvciB0eXBlIGFuZCBlcnJvcnMgKGlmIGFueSkgZm91bmQuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlKGlucHV0LCBvcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gKG5ldyBCaWJ0ZXhQYXJzZXIpLnBhcnNlKGlucHV0LCBvcHRpb25zKTtcbn1cbmV4cG9ydHMucGFyc2UgPSBwYXJzZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNodW5rZXIuanMubWFwIiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gIGFzY2lpOiByZXF1aXJlKCcuL3RhYmxlcy9hc2NpaS5qc29uJyksXG4gIGFzY2lpX2JpYnRleF9jcmVhdG9yOiByZXF1aXJlKCcuL3RhYmxlcy9hc2NpaS1iaWJ0ZXgtY3JlYXRvci5qc29uJyksXG4gIHVuaWNvZGU6IHJlcXVpcmUoJy4vdGFibGVzL3VuaWNvZGUuanNvbicpLFxuICBsYXRleDogcmVxdWlyZSgnLi90YWJsZXMvbGF0ZXguanNvbicpLFxuICBkaWFjcml0aWNzOiByZXF1aXJlKCcuL3RhYmxlcy9kaWFjcml0aWNzLmpzb24nKSxcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IFtcbiAgICB7XG4gICAgICAgICduYW1lJzogJ0MnLFxuICAgICAgICAnYWxpYXMnOiAnT3RoZXInLFxuICAgICAgICAnaXNCbXBMYXN0JzogdHJ1ZSxcbiAgICAgICAgJ2JtcCc6ICdcXDAtXFx4MUZcXHg3Ri1cXHg5RlxceEFEXFx1MDM3OFxcdTAzNzlcXHUwMzgwLVxcdTAzODNcXHUwMzhCXFx1MDM4RFxcdTAzQTJcXHUwNTMwXFx1MDU1N1xcdTA1NThcXHUwNThCXFx1MDU4Q1xcdTA1OTBcXHUwNUM4LVxcdTA1Q0ZcXHUwNUVCLVxcdTA1RUVcXHUwNUY1LVxcdTA2MDVcXHUwNjFDXFx1MDYxRFxcdTA2RERcXHUwNzBFXFx1MDcwRlxcdTA3NEJcXHUwNzRDXFx1MDdCMi1cXHUwN0JGXFx1MDdGQlxcdTA3RkNcXHUwODJFXFx1MDgyRlxcdTA4M0ZcXHUwODVDXFx1MDg1RFxcdTA4NUZcXHUwODZCLVxcdTA4OUZcXHUwOEI1XFx1MDhDOC1cXHUwOEQyXFx1MDhFMlxcdTA5ODRcXHUwOThEXFx1MDk4RVxcdTA5OTFcXHUwOTkyXFx1MDlBOVxcdTA5QjFcXHUwOUIzLVxcdTA5QjVcXHUwOUJBXFx1MDlCQlxcdTA5QzVcXHUwOUM2XFx1MDlDOVxcdTA5Q0FcXHUwOUNGLVxcdTA5RDZcXHUwOUQ4LVxcdTA5REJcXHUwOURFXFx1MDlFNFxcdTA5RTVcXHUwOUZGXFx1MEEwMFxcdTBBMDRcXHUwQTBCLVxcdTBBMEVcXHUwQTExXFx1MEExMlxcdTBBMjlcXHUwQTMxXFx1MEEzNFxcdTBBMzdcXHUwQTNBXFx1MEEzQlxcdTBBM0RcXHUwQTQzLVxcdTBBNDZcXHUwQTQ5XFx1MEE0QVxcdTBBNEUtXFx1MEE1MFxcdTBBNTItXFx1MEE1OFxcdTBBNURcXHUwQTVGLVxcdTBBNjVcXHUwQTc3LVxcdTBBODBcXHUwQTg0XFx1MEE4RVxcdTBBOTJcXHUwQUE5XFx1MEFCMVxcdTBBQjRcXHUwQUJBXFx1MEFCQlxcdTBBQzZcXHUwQUNBXFx1MEFDRVxcdTBBQ0ZcXHUwQUQxLVxcdTBBREZcXHUwQUU0XFx1MEFFNVxcdTBBRjItXFx1MEFGOFxcdTBCMDBcXHUwQjA0XFx1MEIwRFxcdTBCMEVcXHUwQjExXFx1MEIxMlxcdTBCMjlcXHUwQjMxXFx1MEIzNFxcdTBCM0FcXHUwQjNCXFx1MEI0NVxcdTBCNDZcXHUwQjQ5XFx1MEI0QVxcdTBCNEUtXFx1MEI1NFxcdTBCNTgtXFx1MEI1QlxcdTBCNUVcXHUwQjY0XFx1MEI2NVxcdTBCNzgtXFx1MEI4MVxcdTBCODRcXHUwQjhCLVxcdTBCOERcXHUwQjkxXFx1MEI5Ni1cXHUwQjk4XFx1MEI5QlxcdTBCOURcXHUwQkEwLVxcdTBCQTJcXHUwQkE1LVxcdTBCQTdcXHUwQkFCLVxcdTBCQURcXHUwQkJBLVxcdTBCQkRcXHUwQkMzLVxcdTBCQzVcXHUwQkM5XFx1MEJDRVxcdTBCQ0ZcXHUwQkQxLVxcdTBCRDZcXHUwQkQ4LVxcdTBCRTVcXHUwQkZCLVxcdTBCRkZcXHUwQzBEXFx1MEMxMVxcdTBDMjlcXHUwQzNBLVxcdTBDM0NcXHUwQzQ1XFx1MEM0OVxcdTBDNEUtXFx1MEM1NFxcdTBDNTdcXHUwQzVCLVxcdTBDNUZcXHUwQzY0XFx1MEM2NVxcdTBDNzAtXFx1MEM3NlxcdTBDOERcXHUwQzkxXFx1MENBOVxcdTBDQjRcXHUwQ0JBXFx1MENCQlxcdTBDQzVcXHUwQ0M5XFx1MENDRS1cXHUwQ0Q0XFx1MENENy1cXHUwQ0REXFx1MENERlxcdTBDRTRcXHUwQ0U1XFx1MENGMFxcdTBDRjMtXFx1MENGRlxcdTBEMERcXHUwRDExXFx1MEQ0NVxcdTBENDlcXHUwRDUwLVxcdTBENTNcXHUwRDY0XFx1MEQ2NVxcdTBEODBcXHUwRDg0XFx1MEQ5Ny1cXHUwRDk5XFx1MERCMlxcdTBEQkNcXHUwREJFXFx1MERCRlxcdTBEQzctXFx1MERDOVxcdTBEQ0ItXFx1MERDRVxcdTBERDVcXHUwREQ3XFx1MERFMC1cXHUwREU1XFx1MERGMFxcdTBERjFcXHUwREY1LVxcdTBFMDBcXHUwRTNCLVxcdTBFM0VcXHUwRTVDLVxcdTBFODBcXHUwRTgzXFx1MEU4NVxcdTBFOEJcXHUwRUE0XFx1MEVBNlxcdTBFQkVcXHUwRUJGXFx1MEVDNVxcdTBFQzdcXHUwRUNFXFx1MEVDRlxcdTBFREFcXHUwRURCXFx1MEVFMC1cXHUwRUZGXFx1MEY0OFxcdTBGNkQtXFx1MEY3MFxcdTBGOThcXHUwRkJEXFx1MEZDRFxcdTBGREItXFx1MEZGRlxcdTEwQzZcXHUxMEM4LVxcdTEwQ0NcXHUxMENFXFx1MTBDRlxcdTEyNDlcXHUxMjRFXFx1MTI0RlxcdTEyNTdcXHUxMjU5XFx1MTI1RVxcdTEyNUZcXHUxMjg5XFx1MTI4RVxcdTEyOEZcXHUxMkIxXFx1MTJCNlxcdTEyQjdcXHUxMkJGXFx1MTJDMVxcdTEyQzZcXHUxMkM3XFx1MTJEN1xcdTEzMTFcXHUxMzE2XFx1MTMxN1xcdTEzNUJcXHUxMzVDXFx1MTM3RC1cXHUxMzdGXFx1MTM5QS1cXHUxMzlGXFx1MTNGNlxcdTEzRjdcXHUxM0ZFXFx1MTNGRlxcdTE2OUQtXFx1MTY5RlxcdTE2RjktXFx1MTZGRlxcdTE3MERcXHUxNzE1LVxcdTE3MUZcXHUxNzM3LVxcdTE3M0ZcXHUxNzU0LVxcdTE3NUZcXHUxNzZEXFx1MTc3MVxcdTE3NzQtXFx1MTc3RlxcdTE3REVcXHUxN0RGXFx1MTdFQS1cXHUxN0VGXFx1MTdGQS1cXHUxN0ZGXFx1MTgwRVxcdTE4MEZcXHUxODFBLVxcdTE4MUZcXHUxODc5LVxcdTE4N0ZcXHUxOEFCLVxcdTE4QUZcXHUxOEY2LVxcdTE4RkZcXHUxOTFGXFx1MTkyQy1cXHUxOTJGXFx1MTkzQy1cXHUxOTNGXFx1MTk0MS1cXHUxOTQzXFx1MTk2RVxcdTE5NkZcXHUxOTc1LVxcdTE5N0ZcXHUxOUFDLVxcdTE5QUZcXHUxOUNBLVxcdTE5Q0ZcXHUxOURCLVxcdTE5RERcXHUxQTFDXFx1MUExRFxcdTFBNUZcXHUxQTdEXFx1MUE3RVxcdTFBOEEtXFx1MUE4RlxcdTFBOUEtXFx1MUE5RlxcdTFBQUVcXHUxQUFGXFx1MUFDMS1cXHUxQUZGXFx1MUI0Qy1cXHUxQjRGXFx1MUI3RC1cXHUxQjdGXFx1MUJGNC1cXHUxQkZCXFx1MUMzOC1cXHUxQzNBXFx1MUM0QS1cXHUxQzRDXFx1MUM4OS1cXHUxQzhGXFx1MUNCQlxcdTFDQkNcXHUxQ0M4LVxcdTFDQ0ZcXHUxQ0ZCLVxcdTFDRkZcXHUxREZBXFx1MUYxNlxcdTFGMTdcXHUxRjFFXFx1MUYxRlxcdTFGNDZcXHUxRjQ3XFx1MUY0RVxcdTFGNEZcXHUxRjU4XFx1MUY1QVxcdTFGNUNcXHUxRjVFXFx1MUY3RVxcdTFGN0ZcXHUxRkI1XFx1MUZDNVxcdTFGRDRcXHUxRkQ1XFx1MUZEQ1xcdTFGRjBcXHUxRkYxXFx1MUZGNVxcdTFGRkZcXHUyMDBCLVxcdTIwMEZcXHUyMDJBLVxcdTIwMkVcXHUyMDYwLVxcdTIwNkZcXHUyMDcyXFx1MjA3M1xcdTIwOEZcXHUyMDlELVxcdTIwOUZcXHUyMEMwLVxcdTIwQ0ZcXHUyMEYxLVxcdTIwRkZcXHUyMThDLVxcdTIxOEZcXHUyNDI3LVxcdTI0M0ZcXHUyNDRCLVxcdTI0NUZcXHUyQjc0XFx1MkI3NVxcdTJCOTZcXHUyQzJGXFx1MkM1RlxcdTJDRjQtXFx1MkNGOFxcdTJEMjZcXHUyRDI4LVxcdTJEMkNcXHUyRDJFXFx1MkQyRlxcdTJENjgtXFx1MkQ2RVxcdTJENzEtXFx1MkQ3RVxcdTJEOTctXFx1MkQ5RlxcdTJEQTdcXHUyREFGXFx1MkRCN1xcdTJEQkZcXHUyREM3XFx1MkRDRlxcdTJERDdcXHUyRERGXFx1MkU1My1cXHUyRTdGXFx1MkU5QVxcdTJFRjQtXFx1MkVGRlxcdTJGRDYtXFx1MkZFRlxcdTJGRkMtXFx1MkZGRlxcdTMwNDBcXHUzMDk3XFx1MzA5OFxcdTMxMDAtXFx1MzEwNFxcdTMxMzBcXHUzMThGXFx1MzFFNC1cXHUzMUVGXFx1MzIxRlxcdTlGRkQtXFx1OUZGRlxcdUE0OEQtXFx1QTQ4RlxcdUE0QzctXFx1QTRDRlxcdUE2MkMtXFx1QTYzRlxcdUE2RjgtXFx1QTZGRlxcdUE3QzBcXHVBN0MxXFx1QTdDQi1cXHVBN0Y0XFx1QTgyRC1cXHVBODJGXFx1QTgzQS1cXHVBODNGXFx1QTg3OC1cXHVBODdGXFx1QThDNi1cXHVBOENEXFx1QThEQS1cXHVBOERGXFx1QTk1NC1cXHVBOTVFXFx1QTk3RC1cXHVBOTdGXFx1QTlDRVxcdUE5REEtXFx1QTlERFxcdUE5RkZcXHVBQTM3LVxcdUFBM0ZcXHVBQTRFXFx1QUE0RlxcdUFBNUFcXHVBQTVCXFx1QUFDMy1cXHVBQURBXFx1QUFGNy1cXHVBQjAwXFx1QUIwN1xcdUFCMDhcXHVBQjBGXFx1QUIxMFxcdUFCMTctXFx1QUIxRlxcdUFCMjdcXHVBQjJGXFx1QUI2Qy1cXHVBQjZGXFx1QUJFRVxcdUFCRUZcXHVBQkZBLVxcdUFCRkZcXHVEN0E0LVxcdUQ3QUZcXHVEN0M3LVxcdUQ3Q0FcXHVEN0ZDLVxcdUY4RkZcXHVGQTZFXFx1RkE2RlxcdUZBREEtXFx1RkFGRlxcdUZCMDctXFx1RkIxMlxcdUZCMTgtXFx1RkIxQ1xcdUZCMzdcXHVGQjNEXFx1RkIzRlxcdUZCNDJcXHVGQjQ1XFx1RkJDMi1cXHVGQkQyXFx1RkQ0MC1cXHVGRDRGXFx1RkQ5MFxcdUZEOTFcXHVGREM4LVxcdUZERUZcXHVGREZFXFx1RkRGRlxcdUZFMUEtXFx1RkUxRlxcdUZFNTNcXHVGRTY3XFx1RkU2Qy1cXHVGRTZGXFx1RkU3NVxcdUZFRkQtXFx1RkYwMFxcdUZGQkYtXFx1RkZDMVxcdUZGQzhcXHVGRkM5XFx1RkZEMFxcdUZGRDFcXHVGRkQ4XFx1RkZEOVxcdUZGREQtXFx1RkZERlxcdUZGRTdcXHVGRkVGLVxcdUZGRkJcXHVGRkZFXFx1RkZGRicsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgwMFtcXHVEQzBDXFx1REMyN1xcdURDM0JcXHVEQzNFXFx1REM0RVxcdURDNEZcXHVEQzVFLVxcdURDN0ZcXHVEQ0ZCLVxcdURDRkZcXHVERDAzLVxcdUREMDZcXHVERDM0LVxcdUREMzZcXHVERDhGXFx1REQ5RC1cXHVERDlGXFx1RERBMS1cXHVERENGXFx1RERGRS1cXHVERTdGXFx1REU5RC1cXHVERTlGXFx1REVEMS1cXHVERURGXFx1REVGQy1cXHVERUZGXFx1REYyNC1cXHVERjJDXFx1REY0Qi1cXHVERjRGXFx1REY3Qi1cXHVERjdGXFx1REY5RVxcdURGQzQtXFx1REZDN1xcdURGRDYtXFx1REZGRl18XFx1RDgwMVtcXHVEQzlFXFx1REM5RlxcdURDQUEtXFx1RENBRlxcdURDRDQtXFx1RENEN1xcdURDRkMtXFx1RENGRlxcdUREMjgtXFx1REQyRlxcdURENjQtXFx1REQ2RVxcdURENzAtXFx1RERGRlxcdURGMzctXFx1REYzRlxcdURGNTYtXFx1REY1RlxcdURGNjgtXFx1REZGRl18XFx1RDgwMltcXHVEQzA2XFx1REMwN1xcdURDMDlcXHVEQzM2XFx1REMzOS1cXHVEQzNCXFx1REMzRFxcdURDM0VcXHVEQzU2XFx1REM5Ri1cXHVEQ0E2XFx1RENCMC1cXHVEQ0RGXFx1RENGM1xcdURDRjYtXFx1RENGQVxcdUREMUMtXFx1REQxRVxcdUREM0EtXFx1REQzRVxcdURENDAtXFx1REQ3RlxcdUREQjgtXFx1RERCQlxcdURERDBcXHVEREQxXFx1REUwNFxcdURFMDctXFx1REUwQlxcdURFMTRcXHVERTE4XFx1REUzNlxcdURFMzdcXHVERTNCLVxcdURFM0VcXHVERTQ5LVxcdURFNEZcXHVERTU5LVxcdURFNUZcXHVERUEwLVxcdURFQkZcXHVERUU3LVxcdURFRUFcXHVERUY3LVxcdURFRkZcXHVERjM2LVxcdURGMzhcXHVERjU2XFx1REY1N1xcdURGNzMtXFx1REY3N1xcdURGOTItXFx1REY5OFxcdURGOUQtXFx1REZBOFxcdURGQjAtXFx1REZGRl18XFx1RDgwM1tcXHVEQzQ5LVxcdURDN0ZcXHVEQ0IzLVxcdURDQkZcXHVEQ0YzLVxcdURDRjlcXHVERDI4LVxcdUREMkZcXHVERDNBLVxcdURFNUZcXHVERTdGXFx1REVBQVxcdURFQUVcXHVERUFGXFx1REVCMi1cXHVERUZGXFx1REYyOC1cXHVERjJGXFx1REY1QS1cXHVERkFGXFx1REZDQy1cXHVERkRGXFx1REZGNy1cXHVERkZGXXxcXHVEODA0W1xcdURDNEUtXFx1REM1MVxcdURDNzAtXFx1REM3RVxcdURDQkRcXHVEQ0MyLVxcdURDQ0ZcXHVEQ0U5LVxcdURDRUZcXHVEQ0ZBLVxcdURDRkZcXHVERDM1XFx1REQ0OC1cXHVERDRGXFx1REQ3Ny1cXHVERDdGXFx1RERFMFxcdURERjUtXFx1RERGRlxcdURFMTJcXHVERTNGLVxcdURFN0ZcXHVERTg3XFx1REU4OVxcdURFOEVcXHVERTlFXFx1REVBQS1cXHVERUFGXFx1REVFQi1cXHVERUVGXFx1REVGQS1cXHVERUZGXFx1REYwNFxcdURGMERcXHVERjBFXFx1REYxMVxcdURGMTJcXHVERjI5XFx1REYzMVxcdURGMzRcXHVERjNBXFx1REY0NVxcdURGNDZcXHVERjQ5XFx1REY0QVxcdURGNEVcXHVERjRGXFx1REY1MS1cXHVERjU2XFx1REY1OC1cXHVERjVDXFx1REY2NFxcdURGNjVcXHVERjZELVxcdURGNkZcXHVERjc1LVxcdURGRkZdfFxcdUQ4MDVbXFx1REM1Q1xcdURDNjItXFx1REM3RlxcdURDQzgtXFx1RENDRlxcdURDREEtXFx1REQ3RlxcdUREQjZcXHVEREI3XFx1RERERS1cXHVEREZGXFx1REU0NS1cXHVERTRGXFx1REU1QS1cXHVERTVGXFx1REU2RC1cXHVERTdGXFx1REVCOS1cXHVERUJGXFx1REVDQS1cXHVERUZGXFx1REYxQlxcdURGMUNcXHVERjJDLVxcdURGMkZcXHVERjQwLVxcdURGRkZdfFxcdUQ4MDZbXFx1REMzQy1cXHVEQzlGXFx1RENGMy1cXHVEQ0ZFXFx1REQwN1xcdUREMDhcXHVERDBBXFx1REQwQlxcdUREMTRcXHVERDE3XFx1REQzNlxcdUREMzlcXHVERDNBXFx1REQ0Ny1cXHVERDRGXFx1REQ1QS1cXHVERDlGXFx1RERBOFxcdUREQTlcXHVEREQ4XFx1REREOVxcdURERTUtXFx1RERGRlxcdURFNDgtXFx1REU0RlxcdURFQTMtXFx1REVCRlxcdURFRjktXFx1REZGRl18XFx1RDgwN1tcXHVEQzA5XFx1REMzN1xcdURDNDYtXFx1REM0RlxcdURDNkQtXFx1REM2RlxcdURDOTBcXHVEQzkxXFx1RENBOFxcdURDQjctXFx1RENGRlxcdUREMDdcXHVERDBBXFx1REQzNy1cXHVERDM5XFx1REQzQlxcdUREM0VcXHVERDQ4LVxcdURENEZcXHVERDVBLVxcdURENUZcXHVERDY2XFx1REQ2OVxcdUREOEZcXHVERDkyXFx1REQ5OS1cXHVERDlGXFx1RERBQS1cXHVERURGXFx1REVGOS1cXHVERkFGXFx1REZCMS1cXHVERkJGXFx1REZGMi1cXHVERkZFXXxcXHVEODA4W1xcdURGOUEtXFx1REZGRl18XFx1RDgwOVtcXHVEQzZGXFx1REM3NS1cXHVEQzdGXFx1REQ0NC1cXHVERkZGXXxbXFx1RDgwQVxcdUQ4MEJcXHVEODBFLVxcdUQ4MTBcXHVEODEyLVxcdUQ4MTlcXHVEODI0LVxcdUQ4MkJcXHVEODJEXFx1RDgyRVxcdUQ4MzAtXFx1RDgzM1xcdUQ4MzdcXHVEODM5XFx1RDgzRlxcdUQ4N0ItXFx1RDg3RFxcdUQ4N0ZcXHVEODg1LVxcdURCM0ZcXHVEQjQxLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl18XFx1RDgwRFtcXHVEQzJGLVxcdURGRkZdfFxcdUQ4MTFbXFx1REU0Ny1cXHVERkZGXXxcXHVEODFBW1xcdURFMzktXFx1REUzRlxcdURFNUZcXHVERTZBLVxcdURFNkRcXHVERTcwLVxcdURFQ0ZcXHVERUVFXFx1REVFRlxcdURFRjYtXFx1REVGRlxcdURGNDYtXFx1REY0RlxcdURGNUFcXHVERjYyXFx1REY3OC1cXHVERjdDXFx1REY5MC1cXHVERkZGXXxcXHVEODFCW1xcdURDMDAtXFx1REUzRlxcdURFOUItXFx1REVGRlxcdURGNEItXFx1REY0RVxcdURGODgtXFx1REY4RVxcdURGQTAtXFx1REZERlxcdURGRTUtXFx1REZFRlxcdURGRjItXFx1REZGRl18XFx1RDgyMVtcXHVERkY4LVxcdURGRkZdfFxcdUQ4MjNbXFx1RENENi1cXHVEQ0ZGXFx1REQwOS1cXHVERkZGXXxcXHVEODJDW1xcdUREMUYtXFx1REQ0RlxcdURENTMtXFx1REQ2M1xcdURENjgtXFx1REQ2RlxcdURFRkMtXFx1REZGRl18XFx1RDgyRltcXHVEQzZCLVxcdURDNkZcXHVEQzdELVxcdURDN0ZcXHVEQzg5LVxcdURDOEZcXHVEQzlBXFx1REM5QlxcdURDQTAtXFx1REZGRl18XFx1RDgzNFtcXHVEQ0Y2LVxcdURDRkZcXHVERDI3XFx1REQyOFxcdURENzMtXFx1REQ3QVxcdURERTktXFx1RERGRlxcdURFNDYtXFx1REVERlxcdURFRjQtXFx1REVGRlxcdURGNTctXFx1REY1RlxcdURGNzktXFx1REZGRl18XFx1RDgzNVtcXHVEQzU1XFx1REM5RFxcdURDQTBcXHVEQ0ExXFx1RENBM1xcdURDQTRcXHVEQ0E3XFx1RENBOFxcdURDQURcXHVEQ0JBXFx1RENCQ1xcdURDQzRcXHVERDA2XFx1REQwQlxcdUREMENcXHVERDE1XFx1REQxRFxcdUREM0FcXHVERDNGXFx1REQ0NVxcdURENDctXFx1REQ0OVxcdURENTFcXHVERUE2XFx1REVBN1xcdURGQ0NcXHVERkNEXXxcXHVEODM2W1xcdURFOEMtXFx1REU5QVxcdURFQTBcXHVERUIwLVxcdURGRkZdfFxcdUQ4MzhbXFx1REMwN1xcdURDMTlcXHVEQzFBXFx1REMyMlxcdURDMjVcXHVEQzJCLVxcdURDRkZcXHVERDJELVxcdUREMkZcXHVERDNFXFx1REQzRlxcdURENEEtXFx1REQ0RFxcdURENTAtXFx1REVCRlxcdURFRkEtXFx1REVGRVxcdURGMDAtXFx1REZGRl18XFx1RDgzQVtcXHVEQ0M1XFx1RENDNlxcdURDRDctXFx1RENGRlxcdURENEMtXFx1REQ0RlxcdURENUEtXFx1REQ1RFxcdURENjAtXFx1REZGRl18XFx1RDgzQltcXHVEQzAwLVxcdURDNzBcXHVEQ0I1LVxcdUREMDBcXHVERDNFLVxcdURERkZcXHVERTA0XFx1REUyMFxcdURFMjNcXHVERTI1XFx1REUyNlxcdURFMjhcXHVERTMzXFx1REUzOFxcdURFM0FcXHVERTNDLVxcdURFNDFcXHVERTQzLVxcdURFNDZcXHVERTQ4XFx1REU0QVxcdURFNENcXHVERTUwXFx1REU1M1xcdURFNTVcXHVERTU2XFx1REU1OFxcdURFNUFcXHVERTVDXFx1REU1RVxcdURFNjBcXHVERTYzXFx1REU2NVxcdURFNjZcXHVERTZCXFx1REU3M1xcdURFNzhcXHVERTdEXFx1REU3RlxcdURFOEFcXHVERTlDLVxcdURFQTBcXHVERUE0XFx1REVBQVxcdURFQkMtXFx1REVFRlxcdURFRjItXFx1REZGRl18XFx1RDgzQ1tcXHVEQzJDLVxcdURDMkZcXHVEQzk0LVxcdURDOUZcXHVEQ0FGXFx1RENCMFxcdURDQzBcXHVEQ0QwXFx1RENGNi1cXHVEQ0ZGXFx1RERBRS1cXHVEREU1XFx1REUwMy1cXHVERTBGXFx1REUzQy1cXHVERTNGXFx1REU0OS1cXHVERTRGXFx1REU1Mi1cXHVERTVGXFx1REU2Ni1cXHVERUZGXXxcXHVEODNEW1xcdURFRDgtXFx1REVERlxcdURFRUQtXFx1REVFRlxcdURFRkQtXFx1REVGRlxcdURGNzQtXFx1REY3RlxcdURGRDktXFx1REZERlxcdURGRUMtXFx1REZGRl18XFx1RDgzRVtcXHVEQzBDLVxcdURDMEZcXHVEQzQ4LVxcdURDNEZcXHVEQzVBLVxcdURDNUZcXHVEQzg4LVxcdURDOEZcXHVEQ0FFXFx1RENBRlxcdURDQjItXFx1RENGRlxcdURENzlcXHVERENDXFx1REU1NC1cXHVERTVGXFx1REU2RVxcdURFNkZcXHVERTc1LVxcdURFNzdcXHVERTdCLVxcdURFN0ZcXHVERTg3LVxcdURFOEZcXHVERUE5LVxcdURFQUZcXHVERUI3LVxcdURFQkZcXHVERUMzLVxcdURFQ0ZcXHVERUQ3LVxcdURFRkZcXHVERjkzXFx1REZDQi1cXHVERkVGXFx1REZGQS1cXHVERkZGXXxcXHVEODY5W1xcdURFREUtXFx1REVGRl18XFx1RDg2RFtcXHVERjM1LVxcdURGM0ZdfFxcdUQ4NkVbXFx1REMxRVxcdURDMUZdfFxcdUQ4NzNbXFx1REVBMi1cXHVERUFGXXxcXHVEODdBW1xcdURGRTEtXFx1REZGRl18XFx1RDg3RVtcXHVERTFFLVxcdURGRkZdfFxcdUQ4ODRbXFx1REY0Qi1cXHVERkZGXXxcXHVEQjQwW1xcdURDMDAtXFx1RENGRlxcdURERjAtXFx1REZGRl0nXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ0NjJyxcbiAgICAgICAgJ2FsaWFzJzogJ0NvbnRyb2wnLFxuICAgICAgICAnYm1wJzogJ1xcMC1cXHgxRlxceDdGLVxceDlGJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdDZicsXG4gICAgICAgICdhbGlhcyc6ICdGb3JtYXQnLFxuICAgICAgICAnYm1wJzogJ1xceEFEXFx1MDYwMC1cXHUwNjA1XFx1MDYxQ1xcdTA2RERcXHUwNzBGXFx1MDhFMlxcdTE4MEVcXHUyMDBCLVxcdTIwMEZcXHUyMDJBLVxcdTIwMkVcXHUyMDYwLVxcdTIwNjRcXHUyMDY2LVxcdTIwNkZcXHVGRUZGXFx1RkZGOS1cXHVGRkZCJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODA0W1xcdURDQkRcXHVEQ0NEXXxcXHVEODBEW1xcdURDMzAtXFx1REMzOF18XFx1RDgyRltcXHVEQ0EwLVxcdURDQTNdfFxcdUQ4MzRbXFx1REQ3My1cXHVERDdBXXxcXHVEQjQwW1xcdURDMDFcXHVEQzIwLVxcdURDN0ZdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdDbicsXG4gICAgICAgICdhbGlhcyc6ICdVbmFzc2lnbmVkJyxcbiAgICAgICAgJ2JtcCc6ICdcXHUwMzc4XFx1MDM3OVxcdTAzODAtXFx1MDM4M1xcdTAzOEJcXHUwMzhEXFx1MDNBMlxcdTA1MzBcXHUwNTU3XFx1MDU1OFxcdTA1OEJcXHUwNThDXFx1MDU5MFxcdTA1QzgtXFx1MDVDRlxcdTA1RUItXFx1MDVFRVxcdTA1RjUtXFx1MDVGRlxcdTA2MURcXHUwNzBFXFx1MDc0QlxcdTA3NENcXHUwN0IyLVxcdTA3QkZcXHUwN0ZCXFx1MDdGQ1xcdTA4MkVcXHUwODJGXFx1MDgzRlxcdTA4NUNcXHUwODVEXFx1MDg1RlxcdTA4NkItXFx1MDg5RlxcdTA4QjVcXHUwOEM4LVxcdTA4RDJcXHUwOTg0XFx1MDk4RFxcdTA5OEVcXHUwOTkxXFx1MDk5MlxcdTA5QTlcXHUwOUIxXFx1MDlCMy1cXHUwOUI1XFx1MDlCQVxcdTA5QkJcXHUwOUM1XFx1MDlDNlxcdTA5QzlcXHUwOUNBXFx1MDlDRi1cXHUwOUQ2XFx1MDlEOC1cXHUwOURCXFx1MDlERVxcdTA5RTRcXHUwOUU1XFx1MDlGRlxcdTBBMDBcXHUwQTA0XFx1MEEwQi1cXHUwQTBFXFx1MEExMVxcdTBBMTJcXHUwQTI5XFx1MEEzMVxcdTBBMzRcXHUwQTM3XFx1MEEzQVxcdTBBM0JcXHUwQTNEXFx1MEE0My1cXHUwQTQ2XFx1MEE0OVxcdTBBNEFcXHUwQTRFLVxcdTBBNTBcXHUwQTUyLVxcdTBBNThcXHUwQTVEXFx1MEE1Ri1cXHUwQTY1XFx1MEE3Ny1cXHUwQTgwXFx1MEE4NFxcdTBBOEVcXHUwQTkyXFx1MEFBOVxcdTBBQjFcXHUwQUI0XFx1MEFCQVxcdTBBQkJcXHUwQUM2XFx1MEFDQVxcdTBBQ0VcXHUwQUNGXFx1MEFEMS1cXHUwQURGXFx1MEFFNFxcdTBBRTVcXHUwQUYyLVxcdTBBRjhcXHUwQjAwXFx1MEIwNFxcdTBCMERcXHUwQjBFXFx1MEIxMVxcdTBCMTJcXHUwQjI5XFx1MEIzMVxcdTBCMzRcXHUwQjNBXFx1MEIzQlxcdTBCNDVcXHUwQjQ2XFx1MEI0OVxcdTBCNEFcXHUwQjRFLVxcdTBCNTRcXHUwQjU4LVxcdTBCNUJcXHUwQjVFXFx1MEI2NFxcdTBCNjVcXHUwQjc4LVxcdTBCODFcXHUwQjg0XFx1MEI4Qi1cXHUwQjhEXFx1MEI5MVxcdTBCOTYtXFx1MEI5OFxcdTBCOUJcXHUwQjlEXFx1MEJBMC1cXHUwQkEyXFx1MEJBNS1cXHUwQkE3XFx1MEJBQi1cXHUwQkFEXFx1MEJCQS1cXHUwQkJEXFx1MEJDMy1cXHUwQkM1XFx1MEJDOVxcdTBCQ0VcXHUwQkNGXFx1MEJEMS1cXHUwQkQ2XFx1MEJEOC1cXHUwQkU1XFx1MEJGQi1cXHUwQkZGXFx1MEMwRFxcdTBDMTFcXHUwQzI5XFx1MEMzQS1cXHUwQzNDXFx1MEM0NVxcdTBDNDlcXHUwQzRFLVxcdTBDNTRcXHUwQzU3XFx1MEM1Qi1cXHUwQzVGXFx1MEM2NFxcdTBDNjVcXHUwQzcwLVxcdTBDNzZcXHUwQzhEXFx1MEM5MVxcdTBDQTlcXHUwQ0I0XFx1MENCQVxcdTBDQkJcXHUwQ0M1XFx1MENDOVxcdTBDQ0UtXFx1MENENFxcdTBDRDctXFx1MENERFxcdTBDREZcXHUwQ0U0XFx1MENFNVxcdTBDRjBcXHUwQ0YzLVxcdTBDRkZcXHUwRDBEXFx1MEQxMVxcdTBENDVcXHUwRDQ5XFx1MEQ1MC1cXHUwRDUzXFx1MEQ2NFxcdTBENjVcXHUwRDgwXFx1MEQ4NFxcdTBEOTctXFx1MEQ5OVxcdTBEQjJcXHUwREJDXFx1MERCRVxcdTBEQkZcXHUwREM3LVxcdTBEQzlcXHUwRENCLVxcdTBEQ0VcXHUwREQ1XFx1MEREN1xcdTBERTAtXFx1MERFNVxcdTBERjBcXHUwREYxXFx1MERGNS1cXHUwRTAwXFx1MEUzQi1cXHUwRTNFXFx1MEU1Qy1cXHUwRTgwXFx1MEU4M1xcdTBFODVcXHUwRThCXFx1MEVBNFxcdTBFQTZcXHUwRUJFXFx1MEVCRlxcdTBFQzVcXHUwRUM3XFx1MEVDRVxcdTBFQ0ZcXHUwRURBXFx1MEVEQlxcdTBFRTAtXFx1MEVGRlxcdTBGNDhcXHUwRjZELVxcdTBGNzBcXHUwRjk4XFx1MEZCRFxcdTBGQ0RcXHUwRkRCLVxcdTBGRkZcXHUxMEM2XFx1MTBDOC1cXHUxMENDXFx1MTBDRVxcdTEwQ0ZcXHUxMjQ5XFx1MTI0RVxcdTEyNEZcXHUxMjU3XFx1MTI1OVxcdTEyNUVcXHUxMjVGXFx1MTI4OVxcdTEyOEVcXHUxMjhGXFx1MTJCMVxcdTEyQjZcXHUxMkI3XFx1MTJCRlxcdTEyQzFcXHUxMkM2XFx1MTJDN1xcdTEyRDdcXHUxMzExXFx1MTMxNlxcdTEzMTdcXHUxMzVCXFx1MTM1Q1xcdTEzN0QtXFx1MTM3RlxcdTEzOUEtXFx1MTM5RlxcdTEzRjZcXHUxM0Y3XFx1MTNGRVxcdTEzRkZcXHUxNjlELVxcdTE2OUZcXHUxNkY5LVxcdTE2RkZcXHUxNzBEXFx1MTcxNS1cXHUxNzFGXFx1MTczNy1cXHUxNzNGXFx1MTc1NC1cXHUxNzVGXFx1MTc2RFxcdTE3NzFcXHUxNzc0LVxcdTE3N0ZcXHUxN0RFXFx1MTdERlxcdTE3RUEtXFx1MTdFRlxcdTE3RkEtXFx1MTdGRlxcdTE4MEZcXHUxODFBLVxcdTE4MUZcXHUxODc5LVxcdTE4N0ZcXHUxOEFCLVxcdTE4QUZcXHUxOEY2LVxcdTE4RkZcXHUxOTFGXFx1MTkyQy1cXHUxOTJGXFx1MTkzQy1cXHUxOTNGXFx1MTk0MS1cXHUxOTQzXFx1MTk2RVxcdTE5NkZcXHUxOTc1LVxcdTE5N0ZcXHUxOUFDLVxcdTE5QUZcXHUxOUNBLVxcdTE5Q0ZcXHUxOURCLVxcdTE5RERcXHUxQTFDXFx1MUExRFxcdTFBNUZcXHUxQTdEXFx1MUE3RVxcdTFBOEEtXFx1MUE4RlxcdTFBOUEtXFx1MUE5RlxcdTFBQUVcXHUxQUFGXFx1MUFDMS1cXHUxQUZGXFx1MUI0Qy1cXHUxQjRGXFx1MUI3RC1cXHUxQjdGXFx1MUJGNC1cXHUxQkZCXFx1MUMzOC1cXHUxQzNBXFx1MUM0QS1cXHUxQzRDXFx1MUM4OS1cXHUxQzhGXFx1MUNCQlxcdTFDQkNcXHUxQ0M4LVxcdTFDQ0ZcXHUxQ0ZCLVxcdTFDRkZcXHUxREZBXFx1MUYxNlxcdTFGMTdcXHUxRjFFXFx1MUYxRlxcdTFGNDZcXHUxRjQ3XFx1MUY0RVxcdTFGNEZcXHUxRjU4XFx1MUY1QVxcdTFGNUNcXHUxRjVFXFx1MUY3RVxcdTFGN0ZcXHUxRkI1XFx1MUZDNVxcdTFGRDRcXHUxRkQ1XFx1MUZEQ1xcdTFGRjBcXHUxRkYxXFx1MUZGNVxcdTFGRkZcXHUyMDY1XFx1MjA3MlxcdTIwNzNcXHUyMDhGXFx1MjA5RC1cXHUyMDlGXFx1MjBDMC1cXHUyMENGXFx1MjBGMS1cXHUyMEZGXFx1MjE4Qy1cXHUyMThGXFx1MjQyNy1cXHUyNDNGXFx1MjQ0Qi1cXHUyNDVGXFx1MkI3NFxcdTJCNzVcXHUyQjk2XFx1MkMyRlxcdTJDNUZcXHUyQ0Y0LVxcdTJDRjhcXHUyRDI2XFx1MkQyOC1cXHUyRDJDXFx1MkQyRVxcdTJEMkZcXHUyRDY4LVxcdTJENkVcXHUyRDcxLVxcdTJEN0VcXHUyRDk3LVxcdTJEOUZcXHUyREE3XFx1MkRBRlxcdTJEQjdcXHUyREJGXFx1MkRDN1xcdTJEQ0ZcXHUyREQ3XFx1MkRERlxcdTJFNTMtXFx1MkU3RlxcdTJFOUFcXHUyRUY0LVxcdTJFRkZcXHUyRkQ2LVxcdTJGRUZcXHUyRkZDLVxcdTJGRkZcXHUzMDQwXFx1MzA5N1xcdTMwOThcXHUzMTAwLVxcdTMxMDRcXHUzMTMwXFx1MzE4RlxcdTMxRTQtXFx1MzFFRlxcdTMyMUZcXHU5RkZELVxcdTlGRkZcXHVBNDhELVxcdUE0OEZcXHVBNEM3LVxcdUE0Q0ZcXHVBNjJDLVxcdUE2M0ZcXHVBNkY4LVxcdUE2RkZcXHVBN0MwXFx1QTdDMVxcdUE3Q0ItXFx1QTdGNFxcdUE4MkQtXFx1QTgyRlxcdUE4M0EtXFx1QTgzRlxcdUE4NzgtXFx1QTg3RlxcdUE4QzYtXFx1QThDRFxcdUE4REEtXFx1QThERlxcdUE5NTQtXFx1QTk1RVxcdUE5N0QtXFx1QTk3RlxcdUE5Q0VcXHVBOURBLVxcdUE5RERcXHVBOUZGXFx1QUEzNy1cXHVBQTNGXFx1QUE0RVxcdUFBNEZcXHVBQTVBXFx1QUE1QlxcdUFBQzMtXFx1QUFEQVxcdUFBRjctXFx1QUIwMFxcdUFCMDdcXHVBQjA4XFx1QUIwRlxcdUFCMTBcXHVBQjE3LVxcdUFCMUZcXHVBQjI3XFx1QUIyRlxcdUFCNkMtXFx1QUI2RlxcdUFCRUVcXHVBQkVGXFx1QUJGQS1cXHVBQkZGXFx1RDdBNC1cXHVEN0FGXFx1RDdDNy1cXHVEN0NBXFx1RDdGQy1cXHVEN0ZGXFx1RkE2RVxcdUZBNkZcXHVGQURBLVxcdUZBRkZcXHVGQjA3LVxcdUZCMTJcXHVGQjE4LVxcdUZCMUNcXHVGQjM3XFx1RkIzRFxcdUZCM0ZcXHVGQjQyXFx1RkI0NVxcdUZCQzItXFx1RkJEMlxcdUZENDAtXFx1RkQ0RlxcdUZEOTBcXHVGRDkxXFx1RkRDOC1cXHVGREVGXFx1RkRGRVxcdUZERkZcXHVGRTFBLVxcdUZFMUZcXHVGRTUzXFx1RkU2N1xcdUZFNkMtXFx1RkU2RlxcdUZFNzVcXHVGRUZEXFx1RkVGRVxcdUZGMDBcXHVGRkJGLVxcdUZGQzFcXHVGRkM4XFx1RkZDOVxcdUZGRDBcXHVGRkQxXFx1RkZEOFxcdUZGRDlcXHVGRkRELVxcdUZGREZcXHVGRkU3XFx1RkZFRi1cXHVGRkY4XFx1RkZGRVxcdUZGRkYnLFxuICAgICAgICAnYXN0cmFsJzogJ1xcdUQ4MDBbXFx1REMwQ1xcdURDMjdcXHVEQzNCXFx1REMzRVxcdURDNEVcXHVEQzRGXFx1REM1RS1cXHVEQzdGXFx1RENGQi1cXHVEQ0ZGXFx1REQwMy1cXHVERDA2XFx1REQzNC1cXHVERDM2XFx1REQ4RlxcdUREOUQtXFx1REQ5RlxcdUREQTEtXFx1RERDRlxcdURERkUtXFx1REU3RlxcdURFOUQtXFx1REU5RlxcdURFRDEtXFx1REVERlxcdURFRkMtXFx1REVGRlxcdURGMjQtXFx1REYyQ1xcdURGNEItXFx1REY0RlxcdURGN0ItXFx1REY3RlxcdURGOUVcXHVERkM0LVxcdURGQzdcXHVERkQ2LVxcdURGRkZdfFxcdUQ4MDFbXFx1REM5RVxcdURDOUZcXHVEQ0FBLVxcdURDQUZcXHVEQ0Q0LVxcdURDRDdcXHVEQ0ZDLVxcdURDRkZcXHVERDI4LVxcdUREMkZcXHVERDY0LVxcdURENkVcXHVERDcwLVxcdURERkZcXHVERjM3LVxcdURGM0ZcXHVERjU2LVxcdURGNUZcXHVERjY4LVxcdURGRkZdfFxcdUQ4MDJbXFx1REMwNlxcdURDMDdcXHVEQzA5XFx1REMzNlxcdURDMzktXFx1REMzQlxcdURDM0RcXHVEQzNFXFx1REM1NlxcdURDOUYtXFx1RENBNlxcdURDQjAtXFx1RENERlxcdURDRjNcXHVEQ0Y2LVxcdURDRkFcXHVERDFDLVxcdUREMUVcXHVERDNBLVxcdUREM0VcXHVERDQwLVxcdUREN0ZcXHVEREI4LVxcdUREQkJcXHVEREQwXFx1REREMVxcdURFMDRcXHVERTA3LVxcdURFMEJcXHVERTE0XFx1REUxOFxcdURFMzZcXHVERTM3XFx1REUzQi1cXHVERTNFXFx1REU0OS1cXHVERTRGXFx1REU1OS1cXHVERTVGXFx1REVBMC1cXHVERUJGXFx1REVFNy1cXHVERUVBXFx1REVGNy1cXHVERUZGXFx1REYzNi1cXHVERjM4XFx1REY1NlxcdURGNTdcXHVERjczLVxcdURGNzdcXHVERjkyLVxcdURGOThcXHVERjlELVxcdURGQThcXHVERkIwLVxcdURGRkZdfFxcdUQ4MDNbXFx1REM0OS1cXHVEQzdGXFx1RENCMy1cXHVEQ0JGXFx1RENGMy1cXHVEQ0Y5XFx1REQyOC1cXHVERDJGXFx1REQzQS1cXHVERTVGXFx1REU3RlxcdURFQUFcXHVERUFFXFx1REVBRlxcdURFQjItXFx1REVGRlxcdURGMjgtXFx1REYyRlxcdURGNUEtXFx1REZBRlxcdURGQ0MtXFx1REZERlxcdURGRjctXFx1REZGRl18XFx1RDgwNFtcXHVEQzRFLVxcdURDNTFcXHVEQzcwLVxcdURDN0VcXHVEQ0MyLVxcdURDQ0NcXHVEQ0NFXFx1RENDRlxcdURDRTktXFx1RENFRlxcdURDRkEtXFx1RENGRlxcdUREMzVcXHVERDQ4LVxcdURENEZcXHVERDc3LVxcdUREN0ZcXHVEREUwXFx1RERGNS1cXHVEREZGXFx1REUxMlxcdURFM0YtXFx1REU3RlxcdURFODdcXHVERTg5XFx1REU4RVxcdURFOUVcXHVERUFBLVxcdURFQUZcXHVERUVCLVxcdURFRUZcXHVERUZBLVxcdURFRkZcXHVERjA0XFx1REYwRFxcdURGMEVcXHVERjExXFx1REYxMlxcdURGMjlcXHVERjMxXFx1REYzNFxcdURGM0FcXHVERjQ1XFx1REY0NlxcdURGNDlcXHVERjRBXFx1REY0RVxcdURGNEZcXHVERjUxLVxcdURGNTZcXHVERjU4LVxcdURGNUNcXHVERjY0XFx1REY2NVxcdURGNkQtXFx1REY2RlxcdURGNzUtXFx1REZGRl18XFx1RDgwNVtcXHVEQzVDXFx1REM2Mi1cXHVEQzdGXFx1RENDOC1cXHVEQ0NGXFx1RENEQS1cXHVERDdGXFx1RERCNlxcdUREQjdcXHVERERFLVxcdURERkZcXHVERTQ1LVxcdURFNEZcXHVERTVBLVxcdURFNUZcXHVERTZELVxcdURFN0ZcXHVERUI5LVxcdURFQkZcXHVERUNBLVxcdURFRkZcXHVERjFCXFx1REYxQ1xcdURGMkMtXFx1REYyRlxcdURGNDAtXFx1REZGRl18XFx1RDgwNltcXHVEQzNDLVxcdURDOUZcXHVEQ0YzLVxcdURDRkVcXHVERDA3XFx1REQwOFxcdUREMEFcXHVERDBCXFx1REQxNFxcdUREMTdcXHVERDM2XFx1REQzOVxcdUREM0FcXHVERDQ3LVxcdURENEZcXHVERDVBLVxcdUREOUZcXHVEREE4XFx1RERBOVxcdURERDhcXHVEREQ5XFx1RERFNS1cXHVEREZGXFx1REU0OC1cXHVERTRGXFx1REVBMy1cXHVERUJGXFx1REVGOS1cXHVERkZGXXxcXHVEODA3W1xcdURDMDlcXHVEQzM3XFx1REM0Ni1cXHVEQzRGXFx1REM2RC1cXHVEQzZGXFx1REM5MFxcdURDOTFcXHVEQ0E4XFx1RENCNy1cXHVEQ0ZGXFx1REQwN1xcdUREMEFcXHVERDM3LVxcdUREMzlcXHVERDNCXFx1REQzRVxcdURENDgtXFx1REQ0RlxcdURENUEtXFx1REQ1RlxcdURENjZcXHVERDY5XFx1REQ4RlxcdUREOTJcXHVERDk5LVxcdUREOUZcXHVEREFBLVxcdURFREZcXHVERUY5LVxcdURGQUZcXHVERkIxLVxcdURGQkZcXHVERkYyLVxcdURGRkVdfFxcdUQ4MDhbXFx1REY5QS1cXHVERkZGXXxcXHVEODA5W1xcdURDNkZcXHVEQzc1LVxcdURDN0ZcXHVERDQ0LVxcdURGRkZdfFtcXHVEODBBXFx1RDgwQlxcdUQ4MEUtXFx1RDgxMFxcdUQ4MTItXFx1RDgxOVxcdUQ4MjQtXFx1RDgyQlxcdUQ4MkRcXHVEODJFXFx1RDgzMC1cXHVEODMzXFx1RDgzN1xcdUQ4MzlcXHVEODNGXFx1RDg3Qi1cXHVEODdEXFx1RDg3RlxcdUQ4ODUtXFx1REIzRlxcdURCNDEtXFx1REI3Rl1bXFx1REMwMC1cXHVERkZGXXxcXHVEODBEW1xcdURDMkZcXHVEQzM5LVxcdURGRkZdfFxcdUQ4MTFbXFx1REU0Ny1cXHVERkZGXXxcXHVEODFBW1xcdURFMzktXFx1REUzRlxcdURFNUZcXHVERTZBLVxcdURFNkRcXHVERTcwLVxcdURFQ0ZcXHVERUVFXFx1REVFRlxcdURFRjYtXFx1REVGRlxcdURGNDYtXFx1REY0RlxcdURGNUFcXHVERjYyXFx1REY3OC1cXHVERjdDXFx1REY5MC1cXHVERkZGXXxcXHVEODFCW1xcdURDMDAtXFx1REUzRlxcdURFOUItXFx1REVGRlxcdURGNEItXFx1REY0RVxcdURGODgtXFx1REY4RVxcdURGQTAtXFx1REZERlxcdURGRTUtXFx1REZFRlxcdURGRjItXFx1REZGRl18XFx1RDgyMVtcXHVERkY4LVxcdURGRkZdfFxcdUQ4MjNbXFx1RENENi1cXHVEQ0ZGXFx1REQwOS1cXHVERkZGXXxcXHVEODJDW1xcdUREMUYtXFx1REQ0RlxcdURENTMtXFx1REQ2M1xcdURENjgtXFx1REQ2RlxcdURFRkMtXFx1REZGRl18XFx1RDgyRltcXHVEQzZCLVxcdURDNkZcXHVEQzdELVxcdURDN0ZcXHVEQzg5LVxcdURDOEZcXHVEQzlBXFx1REM5QlxcdURDQTQtXFx1REZGRl18XFx1RDgzNFtcXHVEQ0Y2LVxcdURDRkZcXHVERDI3XFx1REQyOFxcdURERTktXFx1RERGRlxcdURFNDYtXFx1REVERlxcdURFRjQtXFx1REVGRlxcdURGNTctXFx1REY1RlxcdURGNzktXFx1REZGRl18XFx1RDgzNVtcXHVEQzU1XFx1REM5RFxcdURDQTBcXHVEQ0ExXFx1RENBM1xcdURDQTRcXHVEQ0E3XFx1RENBOFxcdURDQURcXHVEQ0JBXFx1RENCQ1xcdURDQzRcXHVERDA2XFx1REQwQlxcdUREMENcXHVERDE1XFx1REQxRFxcdUREM0FcXHVERDNGXFx1REQ0NVxcdURENDctXFx1REQ0OVxcdURENTFcXHVERUE2XFx1REVBN1xcdURGQ0NcXHVERkNEXXxcXHVEODM2W1xcdURFOEMtXFx1REU5QVxcdURFQTBcXHVERUIwLVxcdURGRkZdfFxcdUQ4MzhbXFx1REMwN1xcdURDMTlcXHVEQzFBXFx1REMyMlxcdURDMjVcXHVEQzJCLVxcdURDRkZcXHVERDJELVxcdUREMkZcXHVERDNFXFx1REQzRlxcdURENEEtXFx1REQ0RFxcdURENTAtXFx1REVCRlxcdURFRkEtXFx1REVGRVxcdURGMDAtXFx1REZGRl18XFx1RDgzQVtcXHVEQ0M1XFx1RENDNlxcdURDRDctXFx1RENGRlxcdURENEMtXFx1REQ0RlxcdURENUEtXFx1REQ1RFxcdURENjAtXFx1REZGRl18XFx1RDgzQltcXHVEQzAwLVxcdURDNzBcXHVEQ0I1LVxcdUREMDBcXHVERDNFLVxcdURERkZcXHVERTA0XFx1REUyMFxcdURFMjNcXHVERTI1XFx1REUyNlxcdURFMjhcXHVERTMzXFx1REUzOFxcdURFM0FcXHVERTNDLVxcdURFNDFcXHVERTQzLVxcdURFNDZcXHVERTQ4XFx1REU0QVxcdURFNENcXHVERTUwXFx1REU1M1xcdURFNTVcXHVERTU2XFx1REU1OFxcdURFNUFcXHVERTVDXFx1REU1RVxcdURFNjBcXHVERTYzXFx1REU2NVxcdURFNjZcXHVERTZCXFx1REU3M1xcdURFNzhcXHVERTdEXFx1REU3RlxcdURFOEFcXHVERTlDLVxcdURFQTBcXHVERUE0XFx1REVBQVxcdURFQkMtXFx1REVFRlxcdURFRjItXFx1REZGRl18XFx1RDgzQ1tcXHVEQzJDLVxcdURDMkZcXHVEQzk0LVxcdURDOUZcXHVEQ0FGXFx1RENCMFxcdURDQzBcXHVEQ0QwXFx1RENGNi1cXHVEQ0ZGXFx1RERBRS1cXHVEREU1XFx1REUwMy1cXHVERTBGXFx1REUzQy1cXHVERTNGXFx1REU0OS1cXHVERTRGXFx1REU1Mi1cXHVERTVGXFx1REU2Ni1cXHVERUZGXXxcXHVEODNEW1xcdURFRDgtXFx1REVERlxcdURFRUQtXFx1REVFRlxcdURFRkQtXFx1REVGRlxcdURGNzQtXFx1REY3RlxcdURGRDktXFx1REZERlxcdURGRUMtXFx1REZGRl18XFx1RDgzRVtcXHVEQzBDLVxcdURDMEZcXHVEQzQ4LVxcdURDNEZcXHVEQzVBLVxcdURDNUZcXHVEQzg4LVxcdURDOEZcXHVEQ0FFXFx1RENBRlxcdURDQjItXFx1RENGRlxcdURENzlcXHVERENDXFx1REU1NC1cXHVERTVGXFx1REU2RVxcdURFNkZcXHVERTc1LVxcdURFNzdcXHVERTdCLVxcdURFN0ZcXHVERTg3LVxcdURFOEZcXHVERUE5LVxcdURFQUZcXHVERUI3LVxcdURFQkZcXHVERUMzLVxcdURFQ0ZcXHVERUQ3LVxcdURFRkZcXHVERjkzXFx1REZDQi1cXHVERkVGXFx1REZGQS1cXHVERkZGXXxcXHVEODY5W1xcdURFREUtXFx1REVGRl18XFx1RDg2RFtcXHVERjM1LVxcdURGM0ZdfFxcdUQ4NkVbXFx1REMxRVxcdURDMUZdfFxcdUQ4NzNbXFx1REVBMi1cXHVERUFGXXxcXHVEODdBW1xcdURGRTEtXFx1REZGRl18XFx1RDg3RVtcXHVERTFFLVxcdURGRkZdfFxcdUQ4ODRbXFx1REY0Qi1cXHVERkZGXXxcXHVEQjQwW1xcdURDMDBcXHVEQzAyLVxcdURDMUZcXHVEQzgwLVxcdURDRkZcXHVEREYwLVxcdURGRkZdfFtcXHVEQkJGXFx1REJGRl1bXFx1REZGRVxcdURGRkZdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdDbycsXG4gICAgICAgICdhbGlhcyc6ICdQcml2YXRlX1VzZScsXG4gICAgICAgICdibXAnOiAnXFx1RTAwMC1cXHVGOEZGJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdbXFx1REI4MC1cXHVEQkJFXFx1REJDMC1cXHVEQkZFXVtcXHVEQzAwLVxcdURGRkZdfFtcXHVEQkJGXFx1REJGRl1bXFx1REMwMC1cXHVERkZEXSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnQ3MnLFxuICAgICAgICAnYWxpYXMnOiAnU3Vycm9nYXRlJyxcbiAgICAgICAgJ2JtcCc6ICdcXHVEODAwLVxcdURGRkYnXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ0wnLFxuICAgICAgICAnYWxpYXMnOiAnTGV0dGVyJyxcbiAgICAgICAgJ2JtcCc6ICdBLVphLXpcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDM3MC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MC1cXHUwNTg4XFx1MDVEMC1cXHUwNUVBXFx1MDVFRi1cXHUwNUYyXFx1MDYyMC1cXHUwNjRBXFx1MDY2RVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFNVxcdTA2RTZcXHUwNkVFXFx1MDZFRlxcdTA2RkEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwXFx1MDcxMi1cXHUwNzJGXFx1MDc0RC1cXHUwN0E1XFx1MDdCMVxcdTA3Q0EtXFx1MDdFQVxcdTA3RjRcXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgxNVxcdTA4MUFcXHUwODI0XFx1MDgyOFxcdTA4NDAtXFx1MDg1OFxcdTA4NjAtXFx1MDg2QVxcdTA4QTAtXFx1MDhCNFxcdTA4QjYtXFx1MDhDN1xcdTA5MDQtXFx1MDkzOVxcdTA5M0RcXHUwOTUwXFx1MDk1OC1cXHUwOTYxXFx1MDk3MS1cXHUwOTgwXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCRFxcdTA5Q0VcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFMVxcdTA5RjBcXHUwOUYxXFx1MDlGQ1xcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNzItXFx1MEE3NFxcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCRFxcdTBBRDBcXHUwQUUwXFx1MEFFMVxcdTBBRjlcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzRFxcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYxXFx1MEI3MVxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJEMFxcdTBDMDUtXFx1MEMwQ1xcdTBDMEUtXFx1MEMxMFxcdTBDMTItXFx1MEMyOFxcdTBDMkEtXFx1MEMzOVxcdTBDM0RcXHUwQzU4LVxcdTBDNUFcXHUwQzYwXFx1MEM2MVxcdTBDODBcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JEXFx1MENERVxcdTBDRTBcXHUwQ0UxXFx1MENGMVxcdTBDRjJcXHUwRDA0LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENTQtXFx1MEQ1NlxcdTBENUYtXFx1MEQ2MVxcdTBEN0EtXFx1MEQ3RlxcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRTAxLVxcdTBFMzBcXHUwRTMyXFx1MEUzM1xcdTBFNDAtXFx1MEU0NlxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODYtXFx1MEU4QVxcdTBFOEMtXFx1MEVBM1xcdTBFQTVcXHUwRUE3LVxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQVxcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFcXHUxMDhFXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RjEtXFx1MTZGOFxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxMVxcdTE3MjAtXFx1MTczMVxcdTE3NDAtXFx1MTc1MVxcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3ODAtXFx1MTdCM1xcdTE3RDdcXHUxN0RDXFx1MTgyMC1cXHUxODc4XFx1MTg4MC1cXHUxODg0XFx1MTg4Ny1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTFBMDAtXFx1MUExNlxcdTFBMjAtXFx1MUE1NFxcdTFBQTdcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNEJcXHUxQjgzLVxcdTFCQTBcXHUxQkFFXFx1MUJBRlxcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3RFxcdTFDODAtXFx1MUM4OFxcdTFDOTAtXFx1MUNCQVxcdTFDQkQtXFx1MUNCRlxcdTFDRTktXFx1MUNFQ1xcdTFDRUUtXFx1MUNGM1xcdTFDRjVcXHUxQ0Y2XFx1MUNGQVxcdTFEMDAtXFx1MURCRlxcdTFFMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTgzXFx1MjE4NFxcdTJDMDAtXFx1MkMyRVxcdTJDMzAtXFx1MkM1RVxcdTJDNjAtXFx1MkNFNFxcdTJDRUItXFx1MkNFRVxcdTJDRjJcXHUyQ0YzXFx1MkQwMC1cXHUyRDI1XFx1MkQyN1xcdTJEMkRcXHUyRDMwLVxcdTJENjdcXHUyRDZGXFx1MkQ4MC1cXHUyRDk2XFx1MkRBMC1cXHUyREE2XFx1MkRBOC1cXHUyREFFXFx1MkRCMC1cXHUyREI2XFx1MkRCOC1cXHUyREJFXFx1MkRDMC1cXHUyREM2XFx1MkRDOC1cXHUyRENFXFx1MkREMC1cXHUyREQ2XFx1MkREOC1cXHUyRERFXFx1MkUyRlxcdTMwMDVcXHUzMDA2XFx1MzAzMS1cXHUzMDM1XFx1MzAzQlxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDlELVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkZcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkZcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQkZcXHU0RTAwLVxcdTlGRkNcXHVBMDAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MUZcXHVBNjJBXFx1QTYyQlxcdUE2NDAtXFx1QTY2RVxcdUE2N0YtXFx1QTY5RFxcdUE2QTAtXFx1QTZFNVxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTdCRlxcdUE3QzItXFx1QTdDQVxcdUE3RjUtXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QThGRVxcdUE5MEEtXFx1QTkyNVxcdUE5MzAtXFx1QTk0NlxcdUE5NjAtXFx1QTk3Q1xcdUE5ODQtXFx1QTlCMlxcdUE5Q0ZcXHVBOUUwLVxcdUE5RTRcXHVBOUU2LVxcdUE5RUZcXHVBOUZBLVxcdUE5RkVcXHVBQTAwLVxcdUFBMjhcXHVBQTQwLVxcdUFBNDJcXHVBQTQ0LVxcdUFBNEJcXHVBQTYwLVxcdUFBNzZcXHVBQTdBXFx1QUE3RS1cXHVBQUFGXFx1QUFCMVxcdUFBQjVcXHVBQUI2XFx1QUFCOS1cXHVBQUJEXFx1QUFDMFxcdUFBQzJcXHVBQURCLVxcdUFBRERcXHVBQUUwLVxcdUFBRUFcXHVBQUYyLVxcdUFBRjRcXHVBQjAxLVxcdUFCMDZcXHVBQjA5LVxcdUFCMEVcXHVBQjExLVxcdUFCMTZcXHVBQjIwLVxcdUFCMjZcXHVBQjI4LVxcdUFCMkVcXHVBQjMwLVxcdUFCNUFcXHVBQjVDLVxcdUFCNjlcXHVBQjcwLVxcdUFCRTJcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFEXFx1RkIxRi1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjIxLVxcdUZGM0FcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGREMnLFxuICAgICAgICAnYXN0cmFsJzogJ1xcdUQ4MDBbXFx1REMwMC1cXHVEQzBCXFx1REMwRC1cXHVEQzI2XFx1REMyOC1cXHVEQzNBXFx1REMzQ1xcdURDM0RcXHVEQzNGLVxcdURDNERcXHVEQzUwLVxcdURDNURcXHVEQzgwLVxcdURDRkFcXHVERTgwLVxcdURFOUNcXHVERUEwLVxcdURFRDBcXHVERjAwLVxcdURGMUZcXHVERjJELVxcdURGNDBcXHVERjQyLVxcdURGNDlcXHVERjUwLVxcdURGNzVcXHVERjgwLVxcdURGOURcXHVERkEwLVxcdURGQzNcXHVERkM4LVxcdURGQ0ZdfFxcdUQ4MDFbXFx1REMwMC1cXHVEQzlEXFx1RENCMC1cXHVEQ0QzXFx1RENEOC1cXHVEQ0ZCXFx1REQwMC1cXHVERDI3XFx1REQzMC1cXHVERDYzXFx1REUwMC1cXHVERjM2XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjY3XXxcXHVEODAyW1xcdURDMDAtXFx1REMwNVxcdURDMDhcXHVEQzBBLVxcdURDMzVcXHVEQzM3XFx1REMzOFxcdURDM0NcXHVEQzNGLVxcdURDNTVcXHVEQzYwLVxcdURDNzZcXHVEQzgwLVxcdURDOUVcXHVEQ0UwLVxcdURDRjJcXHVEQ0Y0XFx1RENGNVxcdUREMDAtXFx1REQxNVxcdUREMjAtXFx1REQzOVxcdUREODAtXFx1RERCN1xcdUREQkVcXHVEREJGXFx1REUwMFxcdURFMTAtXFx1REUxM1xcdURFMTUtXFx1REUxN1xcdURFMTktXFx1REUzNVxcdURFNjAtXFx1REU3Q1xcdURFODAtXFx1REU5Q1xcdURFQzAtXFx1REVDN1xcdURFQzktXFx1REVFNFxcdURGMDAtXFx1REYzNVxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY3MlxcdURGODAtXFx1REY5MV18XFx1RDgwM1tcXHVEQzAwLVxcdURDNDhcXHVEQzgwLVxcdURDQjJcXHVEQ0MwLVxcdURDRjJcXHVERDAwLVxcdUREMjNcXHVERTgwLVxcdURFQTlcXHVERUIwXFx1REVCMVxcdURGMDAtXFx1REYxQ1xcdURGMjdcXHVERjMwLVxcdURGNDVcXHVERkIwLVxcdURGQzRcXHVERkUwLVxcdURGRjZdfFxcdUQ4MDRbXFx1REMwMy1cXHVEQzM3XFx1REM4My1cXHVEQ0FGXFx1RENEMC1cXHVEQ0U4XFx1REQwMy1cXHVERDI2XFx1REQ0NFxcdURENDdcXHVERDUwLVxcdURENzJcXHVERDc2XFx1REQ4My1cXHVEREIyXFx1RERDMS1cXHVEREM0XFx1REREQVxcdURERENcXHVERTAwLVxcdURFMTFcXHVERTEzLVxcdURFMkJcXHVERTgwLVxcdURFODZcXHVERTg4XFx1REU4QS1cXHVERThEXFx1REU4Ri1cXHVERTlEXFx1REU5Ri1cXHVERUE4XFx1REVCMC1cXHVERURFXFx1REYwNS1cXHVERjBDXFx1REYwRlxcdURGMTBcXHVERjEzLVxcdURGMjhcXHVERjJBLVxcdURGMzBcXHVERjMyXFx1REYzM1xcdURGMzUtXFx1REYzOVxcdURGM0RcXHVERjUwXFx1REY1RC1cXHVERjYxXXxcXHVEODA1W1xcdURDMDAtXFx1REMzNFxcdURDNDctXFx1REM0QVxcdURDNUYtXFx1REM2MVxcdURDODAtXFx1RENBRlxcdURDQzRcXHVEQ0M1XFx1RENDN1xcdUREODAtXFx1RERBRVxcdURERDgtXFx1REREQlxcdURFMDAtXFx1REUyRlxcdURFNDRcXHVERTgwLVxcdURFQUFcXHVERUI4XFx1REYwMC1cXHVERjFBXXxcXHVEODA2W1xcdURDMDAtXFx1REMyQlxcdURDQTAtXFx1RENERlxcdURDRkYtXFx1REQwNlxcdUREMDlcXHVERDBDLVxcdUREMTNcXHVERDE1XFx1REQxNlxcdUREMTgtXFx1REQyRlxcdUREM0ZcXHVERDQxXFx1RERBMC1cXHVEREE3XFx1RERBQS1cXHVEREQwXFx1RERFMVxcdURERTNcXHVERTAwXFx1REUwQi1cXHVERTMyXFx1REUzQVxcdURFNTBcXHVERTVDLVxcdURFODlcXHVERTlEXFx1REVDMC1cXHVERUY4XXxcXHVEODA3W1xcdURDMDAtXFx1REMwOFxcdURDMEEtXFx1REMyRVxcdURDNDBcXHVEQzcyLVxcdURDOEZcXHVERDAwLVxcdUREMDZcXHVERDA4XFx1REQwOVxcdUREMEItXFx1REQzMFxcdURENDZcXHVERDYwLVxcdURENjVcXHVERDY3XFx1REQ2OFxcdURENkEtXFx1REQ4OVxcdUREOThcXHVERUUwLVxcdURFRjJcXHVERkIwXXxcXHVEODA4W1xcdURDMDAtXFx1REY5OV18XFx1RDgwOVtcXHVEQzgwLVxcdURENDNdfFtcXHVEODBDXFx1RDgxQy1cXHVEODIwXFx1RDgyMlxcdUQ4NDAtXFx1RDg2OFxcdUQ4NkEtXFx1RDg2Q1xcdUQ4NkYtXFx1RDg3MlxcdUQ4NzQtXFx1RDg3OVxcdUQ4ODAtXFx1RDg4M11bXFx1REMwMC1cXHVERkZGXXxcXHVEODBEW1xcdURDMDAtXFx1REMyRV18XFx1RDgxMVtcXHVEQzAwLVxcdURFNDZdfFxcdUQ4MUFbXFx1REMwMC1cXHVERTM4XFx1REU0MC1cXHVERTVFXFx1REVEMC1cXHVERUVEXFx1REYwMC1cXHVERjJGXFx1REY0MC1cXHVERjQzXFx1REY2My1cXHVERjc3XFx1REY3RC1cXHVERjhGXXxcXHVEODFCW1xcdURFNDAtXFx1REU3RlxcdURGMDAtXFx1REY0QVxcdURGNTBcXHVERjkzLVxcdURGOUZcXHVERkUwXFx1REZFMVxcdURGRTNdfFxcdUQ4MjFbXFx1REMwMC1cXHVERkY3XXxcXHVEODIzW1xcdURDMDAtXFx1RENENVxcdUREMDAtXFx1REQwOF18XFx1RDgyQ1tcXHVEQzAwLVxcdUREMUVcXHVERDUwLVxcdURENTJcXHVERDY0LVxcdURENjdcXHVERDcwLVxcdURFRkJdfFxcdUQ4MkZbXFx1REMwMC1cXHVEQzZBXFx1REM3MC1cXHVEQzdDXFx1REM4MC1cXHVEQzg4XFx1REM5MC1cXHVEQzk5XXxcXHVEODM1W1xcdURDMDAtXFx1REM1NFxcdURDNTYtXFx1REM5Q1xcdURDOUVcXHVEQzlGXFx1RENBMlxcdURDQTVcXHVEQ0E2XFx1RENBOS1cXHVEQ0FDXFx1RENBRS1cXHVEQ0I5XFx1RENCQlxcdURDQkQtXFx1RENDM1xcdURDQzUtXFx1REQwNVxcdUREMDctXFx1REQwQVxcdUREMEQtXFx1REQxNFxcdUREMTYtXFx1REQxQ1xcdUREMUUtXFx1REQzOVxcdUREM0ItXFx1REQzRVxcdURENDAtXFx1REQ0NFxcdURENDZcXHVERDRBLVxcdURENTBcXHVERDUyLVxcdURFQTVcXHVERUE4LVxcdURFQzBcXHVERUMyLVxcdURFREFcXHVERURDLVxcdURFRkFcXHVERUZDLVxcdURGMTRcXHVERjE2LVxcdURGMzRcXHVERjM2LVxcdURGNEVcXHVERjUwLVxcdURGNkVcXHVERjcwLVxcdURGODhcXHVERjhBLVxcdURGQThcXHVERkFBLVxcdURGQzJcXHVERkM0LVxcdURGQ0JdfFxcdUQ4MzhbXFx1REQwMC1cXHVERDJDXFx1REQzNy1cXHVERDNEXFx1REQ0RVxcdURFQzAtXFx1REVFQl18XFx1RDgzQVtcXHVEQzAwLVxcdURDQzRcXHVERDAwLVxcdURENDNcXHVERDRCXXxcXHVEODNCW1xcdURFMDAtXFx1REUwM1xcdURFMDUtXFx1REUxRlxcdURFMjFcXHVERTIyXFx1REUyNFxcdURFMjdcXHVERTI5LVxcdURFMzJcXHVERTM0LVxcdURFMzdcXHVERTM5XFx1REUzQlxcdURFNDJcXHVERTQ3XFx1REU0OVxcdURFNEJcXHVERTRELVxcdURFNEZcXHVERTUxXFx1REU1MlxcdURFNTRcXHVERTU3XFx1REU1OVxcdURFNUJcXHVERTVEXFx1REU1RlxcdURFNjFcXHVERTYyXFx1REU2NFxcdURFNjctXFx1REU2QVxcdURFNkMtXFx1REU3MlxcdURFNzQtXFx1REU3N1xcdURFNzktXFx1REU3Q1xcdURFN0VcXHVERTgwLVxcdURFODlcXHVERThCLVxcdURFOUJcXHVERUExLVxcdURFQTNcXHVERUE1LVxcdURFQTlcXHVERUFCLVxcdURFQkJdfFxcdUQ4NjlbXFx1REMwMC1cXHVERUREXFx1REYwMC1cXHVERkZGXXxcXHVEODZEW1xcdURDMDAtXFx1REYzNFxcdURGNDAtXFx1REZGRl18XFx1RDg2RVtcXHVEQzAwLVxcdURDMURcXHVEQzIwLVxcdURGRkZdfFxcdUQ4NzNbXFx1REMwMC1cXHVERUExXFx1REVCMC1cXHVERkZGXXxcXHVEODdBW1xcdURDMDAtXFx1REZFMF18XFx1RDg3RVtcXHVEQzAwLVxcdURFMURdfFxcdUQ4ODRbXFx1REMwMC1cXHVERjRBXSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnTEMnLFxuICAgICAgICAnYWxpYXMnOiAnQ2FzZWRfTGV0dGVyJyxcbiAgICAgICAgJ2JtcCc6ICdBLVphLXpcXHhCNVxceEMwLVxceEQ2XFx4RDgtXFx4RjZcXHhGOC1cXHUwMUJBXFx1MDFCQy1cXHUwMUJGXFx1MDFDNC1cXHUwMjkzXFx1MDI5NS1cXHUwMkFGXFx1MDM3MC1cXHUwMzczXFx1MDM3NlxcdTAzNzdcXHUwMzdCLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTYwLVxcdTA1ODhcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEwRDAtXFx1MTBGQVxcdTEwRkQtXFx1MTBGRlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTFDODAtXFx1MUM4OFxcdTFDOTAtXFx1MUNCQVxcdTFDQkQtXFx1MUNCRlxcdTFEMDAtXFx1MUQyQlxcdTFENkItXFx1MUQ3N1xcdTFENzktXFx1MUQ5QVxcdTFFMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMTAyXFx1MjEwN1xcdTIxMEEtXFx1MjExM1xcdTIxMTVcXHUyMTE5LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzRcXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxODNcXHUyMTg0XFx1MkMwMC1cXHUyQzJFXFx1MkMzMC1cXHUyQzVFXFx1MkM2MC1cXHUyQzdCXFx1MkM3RS1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0VFXFx1MkNGMlxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdUE2NDAtXFx1QTY2RFxcdUE2ODAtXFx1QTY5QlxcdUE3MjItXFx1QTc2RlxcdUE3NzEtXFx1QTc4N1xcdUE3OEItXFx1QTc4RVxcdUE3OTAtXFx1QTdCRlxcdUE3QzItXFx1QTdDQVxcdUE3RjVcXHVBN0Y2XFx1QTdGQVxcdUFCMzAtXFx1QUI1QVxcdUFCNjAtXFx1QUI2OFxcdUFCNzAtXFx1QUJCRlxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZGMjEtXFx1RkYzQVxcdUZGNDEtXFx1RkY1QScsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgwMVtcXHVEQzAwLVxcdURDNEZcXHVEQ0IwLVxcdURDRDNcXHVEQ0Q4LVxcdURDRkJdfFxcdUQ4MDNbXFx1REM4MC1cXHVEQ0IyXFx1RENDMC1cXHVEQ0YyXXxcXHVEODA2W1xcdURDQTAtXFx1RENERl18XFx1RDgxQltcXHVERTQwLVxcdURFN0ZdfFxcdUQ4MzVbXFx1REMwMC1cXHVEQzU0XFx1REM1Ni1cXHVEQzlDXFx1REM5RVxcdURDOUZcXHVEQ0EyXFx1RENBNVxcdURDQTZcXHVEQ0E5LVxcdURDQUNcXHVEQ0FFLVxcdURDQjlcXHVEQ0JCXFx1RENCRC1cXHVEQ0MzXFx1RENDNS1cXHVERDA1XFx1REQwNy1cXHVERDBBXFx1REQwRC1cXHVERDE0XFx1REQxNi1cXHVERDFDXFx1REQxRS1cXHVERDM5XFx1REQzQi1cXHVERDNFXFx1REQ0MC1cXHVERDQ0XFx1REQ0NlxcdURENEEtXFx1REQ1MFxcdURENTItXFx1REVBNVxcdURFQTgtXFx1REVDMFxcdURFQzItXFx1REVEQVxcdURFREMtXFx1REVGQVxcdURFRkMtXFx1REYxNFxcdURGMTYtXFx1REYzNFxcdURGMzYtXFx1REY0RVxcdURGNTAtXFx1REY2RVxcdURGNzAtXFx1REY4OFxcdURGOEEtXFx1REZBOFxcdURGQUEtXFx1REZDMlxcdURGQzQtXFx1REZDQl18XFx1RDgzQVtcXHVERDAwLVxcdURENDNdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdMbCcsXG4gICAgICAgICdhbGlhcyc6ICdMb3dlcmNhc2VfTGV0dGVyJyxcbiAgICAgICAgJ2JtcCc6ICdhLXpcXHhCNVxceERGLVxceEY2XFx4RjgtXFx4RkZcXHUwMTAxXFx1MDEwM1xcdTAxMDVcXHUwMTA3XFx1MDEwOVxcdTAxMEJcXHUwMTBEXFx1MDEwRlxcdTAxMTFcXHUwMTEzXFx1MDExNVxcdTAxMTdcXHUwMTE5XFx1MDExQlxcdTAxMURcXHUwMTFGXFx1MDEyMVxcdTAxMjNcXHUwMTI1XFx1MDEyN1xcdTAxMjlcXHUwMTJCXFx1MDEyRFxcdTAxMkZcXHUwMTMxXFx1MDEzM1xcdTAxMzVcXHUwMTM3XFx1MDEzOFxcdTAxM0FcXHUwMTNDXFx1MDEzRVxcdTAxNDBcXHUwMTQyXFx1MDE0NFxcdTAxNDZcXHUwMTQ4XFx1MDE0OVxcdTAxNEJcXHUwMTREXFx1MDE0RlxcdTAxNTFcXHUwMTUzXFx1MDE1NVxcdTAxNTdcXHUwMTU5XFx1MDE1QlxcdTAxNURcXHUwMTVGXFx1MDE2MVxcdTAxNjNcXHUwMTY1XFx1MDE2N1xcdTAxNjlcXHUwMTZCXFx1MDE2RFxcdTAxNkZcXHUwMTcxXFx1MDE3M1xcdTAxNzVcXHUwMTc3XFx1MDE3QVxcdTAxN0NcXHUwMTdFLVxcdTAxODBcXHUwMTgzXFx1MDE4NVxcdTAxODhcXHUwMThDXFx1MDE4RFxcdTAxOTJcXHUwMTk1XFx1MDE5OS1cXHUwMTlCXFx1MDE5RVxcdTAxQTFcXHUwMUEzXFx1MDFBNVxcdTAxQThcXHUwMUFBXFx1MDFBQlxcdTAxQURcXHUwMUIwXFx1MDFCNFxcdTAxQjZcXHUwMUI5XFx1MDFCQVxcdTAxQkQtXFx1MDFCRlxcdTAxQzZcXHUwMUM5XFx1MDFDQ1xcdTAxQ0VcXHUwMUQwXFx1MDFEMlxcdTAxRDRcXHUwMUQ2XFx1MDFEOFxcdTAxREFcXHUwMURDXFx1MDFERFxcdTAxREZcXHUwMUUxXFx1MDFFM1xcdTAxRTVcXHUwMUU3XFx1MDFFOVxcdTAxRUJcXHUwMUVEXFx1MDFFRlxcdTAxRjBcXHUwMUYzXFx1MDFGNVxcdTAxRjlcXHUwMUZCXFx1MDFGRFxcdTAxRkZcXHUwMjAxXFx1MDIwM1xcdTAyMDVcXHUwMjA3XFx1MDIwOVxcdTAyMEJcXHUwMjBEXFx1MDIwRlxcdTAyMTFcXHUwMjEzXFx1MDIxNVxcdTAyMTdcXHUwMjE5XFx1MDIxQlxcdTAyMURcXHUwMjFGXFx1MDIyMVxcdTAyMjNcXHUwMjI1XFx1MDIyN1xcdTAyMjlcXHUwMjJCXFx1MDIyRFxcdTAyMkZcXHUwMjMxXFx1MDIzMy1cXHUwMjM5XFx1MDIzQ1xcdTAyM0ZcXHUwMjQwXFx1MDI0MlxcdTAyNDdcXHUwMjQ5XFx1MDI0QlxcdTAyNERcXHUwMjRGLVxcdTAyOTNcXHUwMjk1LVxcdTAyQUZcXHUwMzcxXFx1MDM3M1xcdTAzNzdcXHUwMzdCLVxcdTAzN0RcXHUwMzkwXFx1MDNBQy1cXHUwM0NFXFx1MDNEMFxcdTAzRDFcXHUwM0Q1LVxcdTAzRDdcXHUwM0Q5XFx1MDNEQlxcdTAzRERcXHUwM0RGXFx1MDNFMVxcdTAzRTNcXHUwM0U1XFx1MDNFN1xcdTAzRTlcXHUwM0VCXFx1MDNFRFxcdTAzRUYtXFx1MDNGM1xcdTAzRjVcXHUwM0Y4XFx1MDNGQlxcdTAzRkNcXHUwNDMwLVxcdTA0NUZcXHUwNDYxXFx1MDQ2M1xcdTA0NjVcXHUwNDY3XFx1MDQ2OVxcdTA0NkJcXHUwNDZEXFx1MDQ2RlxcdTA0NzFcXHUwNDczXFx1MDQ3NVxcdTA0NzdcXHUwNDc5XFx1MDQ3QlxcdTA0N0RcXHUwNDdGXFx1MDQ4MVxcdTA0OEJcXHUwNDhEXFx1MDQ4RlxcdTA0OTFcXHUwNDkzXFx1MDQ5NVxcdTA0OTdcXHUwNDk5XFx1MDQ5QlxcdTA0OURcXHUwNDlGXFx1MDRBMVxcdTA0QTNcXHUwNEE1XFx1MDRBN1xcdTA0QTlcXHUwNEFCXFx1MDRBRFxcdTA0QUZcXHUwNEIxXFx1MDRCM1xcdTA0QjVcXHUwNEI3XFx1MDRCOVxcdTA0QkJcXHUwNEJEXFx1MDRCRlxcdTA0QzJcXHUwNEM0XFx1MDRDNlxcdTA0QzhcXHUwNENBXFx1MDRDQ1xcdTA0Q0VcXHUwNENGXFx1MDREMVxcdTA0RDNcXHUwNEQ1XFx1MDREN1xcdTA0RDlcXHUwNERCXFx1MDRERFxcdTA0REZcXHUwNEUxXFx1MDRFM1xcdTA0RTVcXHUwNEU3XFx1MDRFOVxcdTA0RUJcXHUwNEVEXFx1MDRFRlxcdTA0RjFcXHUwNEYzXFx1MDRGNVxcdTA0RjdcXHUwNEY5XFx1MDRGQlxcdTA0RkRcXHUwNEZGXFx1MDUwMVxcdTA1MDNcXHUwNTA1XFx1MDUwN1xcdTA1MDlcXHUwNTBCXFx1MDUwRFxcdTA1MEZcXHUwNTExXFx1MDUxM1xcdTA1MTVcXHUwNTE3XFx1MDUxOVxcdTA1MUJcXHUwNTFEXFx1MDUxRlxcdTA1MjFcXHUwNTIzXFx1MDUyNVxcdTA1MjdcXHUwNTI5XFx1MDUyQlxcdTA1MkRcXHUwNTJGXFx1MDU2MC1cXHUwNTg4XFx1MTBEMC1cXHUxMEZBXFx1MTBGRC1cXHUxMEZGXFx1MTNGOC1cXHUxM0ZEXFx1MUM4MC1cXHUxQzg4XFx1MUQwMC1cXHUxRDJCXFx1MUQ2Qi1cXHUxRDc3XFx1MUQ3OS1cXHUxRDlBXFx1MUUwMVxcdTFFMDNcXHUxRTA1XFx1MUUwN1xcdTFFMDlcXHUxRTBCXFx1MUUwRFxcdTFFMEZcXHUxRTExXFx1MUUxM1xcdTFFMTVcXHUxRTE3XFx1MUUxOVxcdTFFMUJcXHUxRTFEXFx1MUUxRlxcdTFFMjFcXHUxRTIzXFx1MUUyNVxcdTFFMjdcXHUxRTI5XFx1MUUyQlxcdTFFMkRcXHUxRTJGXFx1MUUzMVxcdTFFMzNcXHUxRTM1XFx1MUUzN1xcdTFFMzlcXHUxRTNCXFx1MUUzRFxcdTFFM0ZcXHUxRTQxXFx1MUU0M1xcdTFFNDVcXHUxRTQ3XFx1MUU0OVxcdTFFNEJcXHUxRTREXFx1MUU0RlxcdTFFNTFcXHUxRTUzXFx1MUU1NVxcdTFFNTdcXHUxRTU5XFx1MUU1QlxcdTFFNURcXHUxRTVGXFx1MUU2MVxcdTFFNjNcXHUxRTY1XFx1MUU2N1xcdTFFNjlcXHUxRTZCXFx1MUU2RFxcdTFFNkZcXHUxRTcxXFx1MUU3M1xcdTFFNzVcXHUxRTc3XFx1MUU3OVxcdTFFN0JcXHUxRTdEXFx1MUU3RlxcdTFFODFcXHUxRTgzXFx1MUU4NVxcdTFFODdcXHUxRTg5XFx1MUU4QlxcdTFFOERcXHUxRThGXFx1MUU5MVxcdTFFOTNcXHUxRTk1LVxcdTFFOURcXHUxRTlGXFx1MUVBMVxcdTFFQTNcXHUxRUE1XFx1MUVBN1xcdTFFQTlcXHUxRUFCXFx1MUVBRFxcdTFFQUZcXHUxRUIxXFx1MUVCM1xcdTFFQjVcXHUxRUI3XFx1MUVCOVxcdTFFQkJcXHUxRUJEXFx1MUVCRlxcdTFFQzFcXHUxRUMzXFx1MUVDNVxcdTFFQzdcXHUxRUM5XFx1MUVDQlxcdTFFQ0RcXHUxRUNGXFx1MUVEMVxcdTFFRDNcXHUxRUQ1XFx1MUVEN1xcdTFFRDlcXHUxRURCXFx1MUVERFxcdTFFREZcXHUxRUUxXFx1MUVFM1xcdTFFRTVcXHUxRUU3XFx1MUVFOVxcdTFFRUJcXHUxRUVEXFx1MUVFRlxcdTFFRjFcXHUxRUYzXFx1MUVGNVxcdTFFRjdcXHUxRUY5XFx1MUVGQlxcdTFFRkRcXHUxRUZGLVxcdTFGMDdcXHUxRjEwLVxcdTFGMTVcXHUxRjIwLVxcdTFGMjdcXHUxRjMwLVxcdTFGMzdcXHUxRjQwLVxcdTFGNDVcXHUxRjUwLVxcdTFGNTdcXHUxRjYwLVxcdTFGNjdcXHUxRjcwLVxcdTFGN0RcXHUxRjgwLVxcdTFGODdcXHUxRjkwLVxcdTFGOTdcXHUxRkEwLVxcdTFGQTdcXHUxRkIwLVxcdTFGQjRcXHUxRkI2XFx1MUZCN1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2XFx1MUZDN1xcdTFGRDAtXFx1MUZEM1xcdTFGRDZcXHUxRkQ3XFx1MUZFMC1cXHUxRkU3XFx1MUZGMi1cXHUxRkY0XFx1MUZGNlxcdTFGRjdcXHUyMTBBXFx1MjEwRVxcdTIxMEZcXHUyMTEzXFx1MjEyRlxcdTIxMzRcXHUyMTM5XFx1MjEzQ1xcdTIxM0RcXHUyMTQ2LVxcdTIxNDlcXHUyMTRFXFx1MjE4NFxcdTJDMzAtXFx1MkM1RVxcdTJDNjFcXHUyQzY1XFx1MkM2NlxcdTJDNjhcXHUyQzZBXFx1MkM2Q1xcdTJDNzFcXHUyQzczXFx1MkM3NFxcdTJDNzYtXFx1MkM3QlxcdTJDODFcXHUyQzgzXFx1MkM4NVxcdTJDODdcXHUyQzg5XFx1MkM4QlxcdTJDOERcXHUyQzhGXFx1MkM5MVxcdTJDOTNcXHUyQzk1XFx1MkM5N1xcdTJDOTlcXHUyQzlCXFx1MkM5RFxcdTJDOUZcXHUyQ0ExXFx1MkNBM1xcdTJDQTVcXHUyQ0E3XFx1MkNBOVxcdTJDQUJcXHUyQ0FEXFx1MkNBRlxcdTJDQjFcXHUyQ0IzXFx1MkNCNVxcdTJDQjdcXHUyQ0I5XFx1MkNCQlxcdTJDQkRcXHUyQ0JGXFx1MkNDMVxcdTJDQzNcXHUyQ0M1XFx1MkNDN1xcdTJDQzlcXHUyQ0NCXFx1MkNDRFxcdTJDQ0ZcXHUyQ0QxXFx1MkNEM1xcdTJDRDVcXHUyQ0Q3XFx1MkNEOVxcdTJDREJcXHUyQ0REXFx1MkNERlxcdTJDRTFcXHUyQ0UzXFx1MkNFNFxcdTJDRUNcXHUyQ0VFXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1QTY0MVxcdUE2NDNcXHVBNjQ1XFx1QTY0N1xcdUE2NDlcXHVBNjRCXFx1QTY0RFxcdUE2NEZcXHVBNjUxXFx1QTY1M1xcdUE2NTVcXHVBNjU3XFx1QTY1OVxcdUE2NUJcXHVBNjVEXFx1QTY1RlxcdUE2NjFcXHVBNjYzXFx1QTY2NVxcdUE2NjdcXHVBNjY5XFx1QTY2QlxcdUE2NkRcXHVBNjgxXFx1QTY4M1xcdUE2ODVcXHVBNjg3XFx1QTY4OVxcdUE2OEJcXHVBNjhEXFx1QTY4RlxcdUE2OTFcXHVBNjkzXFx1QTY5NVxcdUE2OTdcXHVBNjk5XFx1QTY5QlxcdUE3MjNcXHVBNzI1XFx1QTcyN1xcdUE3MjlcXHVBNzJCXFx1QTcyRFxcdUE3MkYtXFx1QTczMVxcdUE3MzNcXHVBNzM1XFx1QTczN1xcdUE3MzlcXHVBNzNCXFx1QTczRFxcdUE3M0ZcXHVBNzQxXFx1QTc0M1xcdUE3NDVcXHVBNzQ3XFx1QTc0OVxcdUE3NEJcXHVBNzREXFx1QTc0RlxcdUE3NTFcXHVBNzUzXFx1QTc1NVxcdUE3NTdcXHVBNzU5XFx1QTc1QlxcdUE3NURcXHVBNzVGXFx1QTc2MVxcdUE3NjNcXHVBNzY1XFx1QTc2N1xcdUE3NjlcXHVBNzZCXFx1QTc2RFxcdUE3NkZcXHVBNzcxLVxcdUE3NzhcXHVBNzdBXFx1QTc3Q1xcdUE3N0ZcXHVBNzgxXFx1QTc4M1xcdUE3ODVcXHVBNzg3XFx1QTc4Q1xcdUE3OEVcXHVBNzkxXFx1QTc5My1cXHVBNzk1XFx1QTc5N1xcdUE3OTlcXHVBNzlCXFx1QTc5RFxcdUE3OUZcXHVBN0ExXFx1QTdBM1xcdUE3QTVcXHVBN0E3XFx1QTdBOVxcdUE3QUZcXHVBN0I1XFx1QTdCN1xcdUE3QjlcXHVBN0JCXFx1QTdCRFxcdUE3QkZcXHVBN0MzXFx1QTdDOFxcdUE3Q0FcXHVBN0Y2XFx1QTdGQVxcdUFCMzAtXFx1QUI1QVxcdUFCNjAtXFx1QUI2OFxcdUFCNzAtXFx1QUJCRlxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZGNDEtXFx1RkY1QScsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgwMVtcXHVEQzI4LVxcdURDNEZcXHVEQ0Q4LVxcdURDRkJdfFxcdUQ4MDNbXFx1RENDMC1cXHVEQ0YyXXxcXHVEODA2W1xcdURDQzAtXFx1RENERl18XFx1RDgxQltcXHVERTYwLVxcdURFN0ZdfFxcdUQ4MzVbXFx1REMxQS1cXHVEQzMzXFx1REM0RS1cXHVEQzU0XFx1REM1Ni1cXHVEQzY3XFx1REM4Mi1cXHVEQzlCXFx1RENCNi1cXHVEQ0I5XFx1RENCQlxcdURDQkQtXFx1RENDM1xcdURDQzUtXFx1RENDRlxcdURDRUEtXFx1REQwM1xcdUREMUUtXFx1REQzN1xcdURENTItXFx1REQ2QlxcdUREODYtXFx1REQ5RlxcdUREQkEtXFx1REREM1xcdURERUUtXFx1REUwN1xcdURFMjItXFx1REUzQlxcdURFNTYtXFx1REU2RlxcdURFOEEtXFx1REVBNVxcdURFQzItXFx1REVEQVxcdURFREMtXFx1REVFMVxcdURFRkMtXFx1REYxNFxcdURGMTYtXFx1REYxQlxcdURGMzYtXFx1REY0RVxcdURGNTAtXFx1REY1NVxcdURGNzAtXFx1REY4OFxcdURGOEEtXFx1REY4RlxcdURGQUEtXFx1REZDMlxcdURGQzQtXFx1REZDOVxcdURGQ0JdfFxcdUQ4M0FbXFx1REQyMi1cXHVERDQzXSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnTG0nLFxuICAgICAgICAnYWxpYXMnOiAnTW9kaWZpZXJfTGV0dGVyJyxcbiAgICAgICAgJ2JtcCc6ICdcXHUwMkIwLVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzNzRcXHUwMzdBXFx1MDU1OVxcdTA2NDBcXHUwNkU1XFx1MDZFNlxcdTA3RjRcXHUwN0Y1XFx1MDdGQVxcdTA4MUFcXHUwODI0XFx1MDgyOFxcdTA5NzFcXHUwRTQ2XFx1MEVDNlxcdTEwRkNcXHUxN0Q3XFx1MTg0M1xcdTFBQTdcXHUxQzc4LVxcdTFDN0RcXHUxRDJDLVxcdTFENkFcXHUxRDc4XFx1MUQ5Qi1cXHUxREJGXFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyQzdDXFx1MkM3RFxcdTJENkZcXHUyRTJGXFx1MzAwNVxcdTMwMzEtXFx1MzAzNVxcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwRkMtXFx1MzBGRVxcdUEwMTVcXHVBNEY4LVxcdUE0RkRcXHVBNjBDXFx1QTY3RlxcdUE2OUNcXHVBNjlEXFx1QTcxNy1cXHVBNzFGXFx1QTc3MFxcdUE3ODhcXHVBN0Y4XFx1QTdGOVxcdUE5Q0ZcXHVBOUU2XFx1QUE3MFxcdUFBRERcXHVBQUYzXFx1QUFGNFxcdUFCNUMtXFx1QUI1RlxcdUFCNjlcXHVGRjcwXFx1RkY5RVxcdUZGOUYnLFxuICAgICAgICAnYXN0cmFsJzogJ1xcdUQ4MUFbXFx1REY0MC1cXHVERjQzXXxcXHVEODFCW1xcdURGOTMtXFx1REY5RlxcdURGRTBcXHVERkUxXFx1REZFM118XFx1RDgzOFtcXHVERDM3LVxcdUREM0RdfFxcdUQ4M0FcXHVERDRCJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdMbycsXG4gICAgICAgICdhbGlhcyc6ICdPdGhlcl9MZXR0ZXInLFxuICAgICAgICAnYm1wJzogJ1xceEFBXFx4QkFcXHUwMUJCXFx1MDFDMC1cXHUwMUMzXFx1MDI5NFxcdTA1RDAtXFx1MDVFQVxcdTA1RUYtXFx1MDVGMlxcdTA2MjAtXFx1MDYzRlxcdTA2NDEtXFx1MDY0QVxcdTA2NkVcXHUwNjZGXFx1MDY3MS1cXHUwNkQzXFx1MDZENVxcdTA2RUVcXHUwNkVGXFx1MDZGQS1cXHUwNkZDXFx1MDZGRlxcdTA3MTBcXHUwNzEyLVxcdTA3MkZcXHUwNzRELVxcdTA3QTVcXHUwN0IxXFx1MDdDQS1cXHUwN0VBXFx1MDgwMC1cXHUwODE1XFx1MDg0MC1cXHUwODU4XFx1MDg2MC1cXHUwODZBXFx1MDhBMC1cXHUwOEI0XFx1MDhCNi1cXHUwOEM3XFx1MDkwNC1cXHUwOTM5XFx1MDkzRFxcdTA5NTBcXHUwOTU4LVxcdTA5NjFcXHUwOTcyLVxcdTA5ODBcXHUwOTg1LVxcdTA5OENcXHUwOThGXFx1MDk5MFxcdTA5OTMtXFx1MDlBOFxcdTA5QUEtXFx1MDlCMFxcdTA5QjJcXHUwOUI2LVxcdTA5QjlcXHUwOUJEXFx1MDlDRVxcdTA5RENcXHUwOUREXFx1MDlERi1cXHUwOUUxXFx1MDlGMFxcdTA5RjFcXHUwOUZDXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTU5LVxcdTBBNUNcXHUwQTVFXFx1MEE3Mi1cXHUwQTc0XFx1MEE4NS1cXHUwQThEXFx1MEE4Ri1cXHUwQTkxXFx1MEE5My1cXHUwQUE4XFx1MEFBQS1cXHUwQUIwXFx1MEFCMlxcdTBBQjNcXHUwQUI1LVxcdTBBQjlcXHUwQUJEXFx1MEFEMFxcdTBBRTBcXHUwQUUxXFx1MEFGOVxcdTBCMDUtXFx1MEIwQ1xcdTBCMEZcXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM1LVxcdTBCMzlcXHUwQjNEXFx1MEI1Q1xcdTBCNURcXHUwQjVGLVxcdTBCNjFcXHUwQjcxXFx1MEI4M1xcdTBCODUtXFx1MEI4QVxcdTBCOEUtXFx1MEI5MFxcdTBCOTItXFx1MEI5NVxcdTBCOTlcXHUwQjlBXFx1MEI5Q1xcdTBCOUVcXHUwQjlGXFx1MEJBM1xcdTBCQTRcXHUwQkE4LVxcdTBCQUFcXHUwQkFFLVxcdTBCQjlcXHUwQkQwXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRFxcdTBDNTgtXFx1MEM1QVxcdTBDNjBcXHUwQzYxXFx1MEM4MFxcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkRcXHUwQ0RFXFx1MENFMFxcdTBDRTFcXHUwQ0YxXFx1MENGMlxcdTBEMDQtXFx1MEQwQ1xcdTBEMEUtXFx1MEQxMFxcdTBEMTItXFx1MEQzQVxcdTBEM0RcXHUwRDRFXFx1MEQ1NC1cXHUwRDU2XFx1MEQ1Ri1cXHUwRDYxXFx1MEQ3QS1cXHUwRDdGXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBFMDEtXFx1MEUzMFxcdTBFMzJcXHUwRTMzXFx1MEU0MC1cXHUwRTQ1XFx1MEU4MVxcdTBFODJcXHUwRTg0XFx1MEU4Ni1cXHUwRThBXFx1MEU4Qy1cXHUwRUEzXFx1MEVBNVxcdTBFQTctXFx1MEVCMFxcdTBFQjJcXHUwRUIzXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjQwLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjg4LVxcdTBGOENcXHUxMDAwLVxcdTEwMkFcXHUxMDNGXFx1MTA1MC1cXHUxMDU1XFx1MTA1QS1cXHUxMDVEXFx1MTA2MVxcdTEwNjVcXHUxMDY2XFx1MTA2RS1cXHUxMDcwXFx1MTA3NS1cXHUxMDgxXFx1MTA4RVxcdTExMDAtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM4MC1cXHUxMzhGXFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZGMS1cXHUxNkY4XFx1MTcwMC1cXHUxNzBDXFx1MTcwRS1cXHUxNzExXFx1MTcyMC1cXHUxNzMxXFx1MTc0MC1cXHUxNzUxXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc4MC1cXHUxN0IzXFx1MTdEQ1xcdTE4MjAtXFx1MTg0MlxcdTE4NDQtXFx1MTg3OFxcdTE4ODAtXFx1MTg4NFxcdTE4ODctXFx1MThBOFxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTUwLVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUIwLVxcdTE5QzlcXHUxQTAwLVxcdTFBMTZcXHUxQTIwLVxcdTFBNTRcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNEJcXHUxQjgzLVxcdTFCQTBcXHUxQkFFXFx1MUJBRlxcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3N1xcdTFDRTktXFx1MUNFQ1xcdTFDRUUtXFx1MUNGM1xcdTFDRjVcXHUxQ0Y2XFx1MUNGQVxcdTIxMzUtXFx1MjEzOFxcdTJEMzAtXFx1MkQ2N1xcdTJEODAtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTMwMDZcXHUzMDNDXFx1MzA0MS1cXHUzMDk2XFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkZcXHUzMTA1LVxcdTMxMkZcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkZcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQkZcXHU0RTAwLVxcdTlGRkNcXHVBMDAwLVxcdUEwMTRcXHVBMDE2LVxcdUE0OENcXHVBNEQwLVxcdUE0RjdcXHVBNTAwLVxcdUE2MEJcXHVBNjEwLVxcdUE2MUZcXHVBNjJBXFx1QTYyQlxcdUE2NkVcXHVBNkEwLVxcdUE2RTVcXHVBNzhGXFx1QTdGN1xcdUE3RkItXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QThGRVxcdUE5MEEtXFx1QTkyNVxcdUE5MzAtXFx1QTk0NlxcdUE5NjAtXFx1QTk3Q1xcdUE5ODQtXFx1QTlCMlxcdUE5RTAtXFx1QTlFNFxcdUE5RTctXFx1QTlFRlxcdUE5RkEtXFx1QTlGRVxcdUFBMDAtXFx1QUEyOFxcdUFBNDAtXFx1QUE0MlxcdUFBNDQtXFx1QUE0QlxcdUFBNjAtXFx1QUE2RlxcdUFBNzEtXFx1QUE3NlxcdUFBN0FcXHVBQTdFLVxcdUFBQUZcXHVBQUIxXFx1QUFCNVxcdUFBQjZcXHVBQUI5LVxcdUFBQkRcXHVBQUMwXFx1QUFDMlxcdUFBREJcXHVBQURDXFx1QUFFMC1cXHVBQUVBXFx1QUFGMlxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCQzAtXFx1QUJFMlxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMURcXHVGQjFGLVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGNjYtXFx1RkY2RlxcdUZGNzEtXFx1RkY5RFxcdUZGQTAtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQycsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgwMFtcXHVEQzAwLVxcdURDMEJcXHVEQzBELVxcdURDMjZcXHVEQzI4LVxcdURDM0FcXHVEQzNDXFx1REMzRFxcdURDM0YtXFx1REM0RFxcdURDNTAtXFx1REM1RFxcdURDODAtXFx1RENGQVxcdURFODAtXFx1REU5Q1xcdURFQTAtXFx1REVEMFxcdURGMDAtXFx1REYxRlxcdURGMkQtXFx1REY0MFxcdURGNDItXFx1REY0OVxcdURGNTAtXFx1REY3NVxcdURGODAtXFx1REY5RFxcdURGQTAtXFx1REZDM1xcdURGQzgtXFx1REZDRl18XFx1RDgwMVtcXHVEQzUwLVxcdURDOURcXHVERDAwLVxcdUREMjdcXHVERDMwLVxcdURENjNcXHVERTAwLVxcdURGMzZcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNjddfFxcdUQ4MDJbXFx1REMwMC1cXHVEQzA1XFx1REMwOFxcdURDMEEtXFx1REMzNVxcdURDMzdcXHVEQzM4XFx1REMzQ1xcdURDM0YtXFx1REM1NVxcdURDNjAtXFx1REM3NlxcdURDODAtXFx1REM5RVxcdURDRTAtXFx1RENGMlxcdURDRjRcXHVEQ0Y1XFx1REQwMC1cXHVERDE1XFx1REQyMC1cXHVERDM5XFx1REQ4MC1cXHVEREI3XFx1RERCRVxcdUREQkZcXHVERTAwXFx1REUxMC1cXHVERTEzXFx1REUxNS1cXHVERTE3XFx1REUxOS1cXHVERTM1XFx1REU2MC1cXHVERTdDXFx1REU4MC1cXHVERTlDXFx1REVDMC1cXHVERUM3XFx1REVDOS1cXHVERUU0XFx1REYwMC1cXHVERjM1XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjcyXFx1REY4MC1cXHVERjkxXXxcXHVEODAzW1xcdURDMDAtXFx1REM0OFxcdUREMDAtXFx1REQyM1xcdURFODAtXFx1REVBOVxcdURFQjBcXHVERUIxXFx1REYwMC1cXHVERjFDXFx1REYyN1xcdURGMzAtXFx1REY0NVxcdURGQjAtXFx1REZDNFxcdURGRTAtXFx1REZGNl18XFx1RDgwNFtcXHVEQzAzLVxcdURDMzdcXHVEQzgzLVxcdURDQUZcXHVEQ0QwLVxcdURDRThcXHVERDAzLVxcdUREMjZcXHVERDQ0XFx1REQ0N1xcdURENTAtXFx1REQ3MlxcdURENzZcXHVERDgzLVxcdUREQjJcXHVEREMxLVxcdUREQzRcXHVERERBXFx1REREQ1xcdURFMDAtXFx1REUxMVxcdURFMTMtXFx1REUyQlxcdURFODAtXFx1REU4NlxcdURFODhcXHVERThBLVxcdURFOERcXHVERThGLVxcdURFOURcXHVERTlGLVxcdURFQThcXHVERUIwLVxcdURFREVcXHVERjA1LVxcdURGMENcXHVERjBGXFx1REYxMFxcdURGMTMtXFx1REYyOFxcdURGMkEtXFx1REYzMFxcdURGMzJcXHVERjMzXFx1REYzNS1cXHVERjM5XFx1REYzRFxcdURGNTBcXHVERjVELVxcdURGNjFdfFxcdUQ4MDVbXFx1REMwMC1cXHVEQzM0XFx1REM0Ny1cXHVEQzRBXFx1REM1Ri1cXHVEQzYxXFx1REM4MC1cXHVEQ0FGXFx1RENDNFxcdURDQzVcXHVEQ0M3XFx1REQ4MC1cXHVEREFFXFx1REREOC1cXHVERERCXFx1REUwMC1cXHVERTJGXFx1REU0NFxcdURFODAtXFx1REVBQVxcdURFQjhcXHVERjAwLVxcdURGMUFdfFxcdUQ4MDZbXFx1REMwMC1cXHVEQzJCXFx1RENGRi1cXHVERDA2XFx1REQwOVxcdUREMEMtXFx1REQxM1xcdUREMTVcXHVERDE2XFx1REQxOC1cXHVERDJGXFx1REQzRlxcdURENDFcXHVEREEwLVxcdUREQTdcXHVEREFBLVxcdURERDBcXHVEREUxXFx1RERFM1xcdURFMDBcXHVERTBCLVxcdURFMzJcXHVERTNBXFx1REU1MFxcdURFNUMtXFx1REU4OVxcdURFOURcXHVERUMwLVxcdURFRjhdfFxcdUQ4MDdbXFx1REMwMC1cXHVEQzA4XFx1REMwQS1cXHVEQzJFXFx1REM0MFxcdURDNzItXFx1REM4RlxcdUREMDAtXFx1REQwNlxcdUREMDhcXHVERDA5XFx1REQwQi1cXHVERDMwXFx1REQ0NlxcdURENjAtXFx1REQ2NVxcdURENjdcXHVERDY4XFx1REQ2QS1cXHVERDg5XFx1REQ5OFxcdURFRTAtXFx1REVGMlxcdURGQjBdfFxcdUQ4MDhbXFx1REMwMC1cXHVERjk5XXxcXHVEODA5W1xcdURDODAtXFx1REQ0M118W1xcdUQ4MENcXHVEODFDLVxcdUQ4MjBcXHVEODIyXFx1RDg0MC1cXHVEODY4XFx1RDg2QS1cXHVEODZDXFx1RDg2Ri1cXHVEODcyXFx1RDg3NC1cXHVEODc5XFx1RDg4MC1cXHVEODgzXVtcXHVEQzAwLVxcdURGRkZdfFxcdUQ4MERbXFx1REMwMC1cXHVEQzJFXXxcXHVEODExW1xcdURDMDAtXFx1REU0Nl18XFx1RDgxQVtcXHVEQzAwLVxcdURFMzhcXHVERTQwLVxcdURFNUVcXHVERUQwLVxcdURFRURcXHVERjAwLVxcdURGMkZcXHVERjYzLVxcdURGNzdcXHVERjdELVxcdURGOEZdfFxcdUQ4MUJbXFx1REYwMC1cXHVERjRBXFx1REY1MF18XFx1RDgyMVtcXHVEQzAwLVxcdURGRjddfFxcdUQ4MjNbXFx1REMwMC1cXHVEQ0Q1XFx1REQwMC1cXHVERDA4XXxcXHVEODJDW1xcdURDMDAtXFx1REQxRVxcdURENTAtXFx1REQ1MlxcdURENjQtXFx1REQ2N1xcdURENzAtXFx1REVGQl18XFx1RDgyRltcXHVEQzAwLVxcdURDNkFcXHVEQzcwLVxcdURDN0NcXHVEQzgwLVxcdURDODhcXHVEQzkwLVxcdURDOTldfFxcdUQ4MzhbXFx1REQwMC1cXHVERDJDXFx1REQ0RVxcdURFQzAtXFx1REVFQl18XFx1RDgzQVtcXHVEQzAwLVxcdURDQzRdfFxcdUQ4M0JbXFx1REUwMC1cXHVERTAzXFx1REUwNS1cXHVERTFGXFx1REUyMVxcdURFMjJcXHVERTI0XFx1REUyN1xcdURFMjktXFx1REUzMlxcdURFMzQtXFx1REUzN1xcdURFMzlcXHVERTNCXFx1REU0MlxcdURFNDdcXHVERTQ5XFx1REU0QlxcdURFNEQtXFx1REU0RlxcdURFNTFcXHVERTUyXFx1REU1NFxcdURFNTdcXHVERTU5XFx1REU1QlxcdURFNURcXHVERTVGXFx1REU2MVxcdURFNjJcXHVERTY0XFx1REU2Ny1cXHVERTZBXFx1REU2Qy1cXHVERTcyXFx1REU3NC1cXHVERTc3XFx1REU3OS1cXHVERTdDXFx1REU3RVxcdURFODAtXFx1REU4OVxcdURFOEItXFx1REU5QlxcdURFQTEtXFx1REVBM1xcdURFQTUtXFx1REVBOVxcdURFQUItXFx1REVCQl18XFx1RDg2OVtcXHVEQzAwLVxcdURFRERcXHVERjAwLVxcdURGRkZdfFxcdUQ4NkRbXFx1REMwMC1cXHVERjM0XFx1REY0MC1cXHVERkZGXXxcXHVEODZFW1xcdURDMDAtXFx1REMxRFxcdURDMjAtXFx1REZGRl18XFx1RDg3M1tcXHVEQzAwLVxcdURFQTFcXHVERUIwLVxcdURGRkZdfFxcdUQ4N0FbXFx1REMwMC1cXHVERkUwXXxcXHVEODdFW1xcdURDMDAtXFx1REUxRF18XFx1RDg4NFtcXHVEQzAwLVxcdURGNEFdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdMdCcsXG4gICAgICAgICdhbGlhcyc6ICdUaXRsZWNhc2VfTGV0dGVyJyxcbiAgICAgICAgJ2JtcCc6ICdcXHUwMUM1XFx1MDFDOFxcdTAxQ0JcXHUwMUYyXFx1MUY4OC1cXHUxRjhGXFx1MUY5OC1cXHUxRjlGXFx1MUZBOC1cXHUxRkFGXFx1MUZCQ1xcdTFGQ0NcXHUxRkZDJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdMdScsXG4gICAgICAgICdhbGlhcyc6ICdVcHBlcmNhc2VfTGV0dGVyJyxcbiAgICAgICAgJ2JtcCc6ICdBLVpcXHhDMC1cXHhENlxceEQ4LVxceERFXFx1MDEwMFxcdTAxMDJcXHUwMTA0XFx1MDEwNlxcdTAxMDhcXHUwMTBBXFx1MDEwQ1xcdTAxMEVcXHUwMTEwXFx1MDExMlxcdTAxMTRcXHUwMTE2XFx1MDExOFxcdTAxMUFcXHUwMTFDXFx1MDExRVxcdTAxMjBcXHUwMTIyXFx1MDEyNFxcdTAxMjZcXHUwMTI4XFx1MDEyQVxcdTAxMkNcXHUwMTJFXFx1MDEzMFxcdTAxMzJcXHUwMTM0XFx1MDEzNlxcdTAxMzlcXHUwMTNCXFx1MDEzRFxcdTAxM0ZcXHUwMTQxXFx1MDE0M1xcdTAxNDVcXHUwMTQ3XFx1MDE0QVxcdTAxNENcXHUwMTRFXFx1MDE1MFxcdTAxNTJcXHUwMTU0XFx1MDE1NlxcdTAxNThcXHUwMTVBXFx1MDE1Q1xcdTAxNUVcXHUwMTYwXFx1MDE2MlxcdTAxNjRcXHUwMTY2XFx1MDE2OFxcdTAxNkFcXHUwMTZDXFx1MDE2RVxcdTAxNzBcXHUwMTcyXFx1MDE3NFxcdTAxNzZcXHUwMTc4XFx1MDE3OVxcdTAxN0JcXHUwMTdEXFx1MDE4MVxcdTAxODJcXHUwMTg0XFx1MDE4NlxcdTAxODdcXHUwMTg5LVxcdTAxOEJcXHUwMThFLVxcdTAxOTFcXHUwMTkzXFx1MDE5NFxcdTAxOTYtXFx1MDE5OFxcdTAxOUNcXHUwMTlEXFx1MDE5RlxcdTAxQTBcXHUwMUEyXFx1MDFBNFxcdTAxQTZcXHUwMUE3XFx1MDFBOVxcdTAxQUNcXHUwMUFFXFx1MDFBRlxcdTAxQjEtXFx1MDFCM1xcdTAxQjVcXHUwMUI3XFx1MDFCOFxcdTAxQkNcXHUwMUM0XFx1MDFDN1xcdTAxQ0FcXHUwMUNEXFx1MDFDRlxcdTAxRDFcXHUwMUQzXFx1MDFENVxcdTAxRDdcXHUwMUQ5XFx1MDFEQlxcdTAxREVcXHUwMUUwXFx1MDFFMlxcdTAxRTRcXHUwMUU2XFx1MDFFOFxcdTAxRUFcXHUwMUVDXFx1MDFFRVxcdTAxRjFcXHUwMUY0XFx1MDFGNi1cXHUwMUY4XFx1MDFGQVxcdTAxRkNcXHUwMUZFXFx1MDIwMFxcdTAyMDJcXHUwMjA0XFx1MDIwNlxcdTAyMDhcXHUwMjBBXFx1MDIwQ1xcdTAyMEVcXHUwMjEwXFx1MDIxMlxcdTAyMTRcXHUwMjE2XFx1MDIxOFxcdTAyMUFcXHUwMjFDXFx1MDIxRVxcdTAyMjBcXHUwMjIyXFx1MDIyNFxcdTAyMjZcXHUwMjI4XFx1MDIyQVxcdTAyMkNcXHUwMjJFXFx1MDIzMFxcdTAyMzJcXHUwMjNBXFx1MDIzQlxcdTAyM0RcXHUwMjNFXFx1MDI0MVxcdTAyNDMtXFx1MDI0NlxcdTAyNDhcXHUwMjRBXFx1MDI0Q1xcdTAyNEVcXHUwMzcwXFx1MDM3MlxcdTAzNzZcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFXFx1MDM4RlxcdTAzOTEtXFx1MDNBMVxcdTAzQTMtXFx1MDNBQlxcdTAzQ0ZcXHUwM0QyLVxcdTAzRDRcXHUwM0Q4XFx1MDNEQVxcdTAzRENcXHUwM0RFXFx1MDNFMFxcdTAzRTJcXHUwM0U0XFx1MDNFNlxcdTAzRThcXHUwM0VBXFx1MDNFQ1xcdTAzRUVcXHUwM0Y0XFx1MDNGN1xcdTAzRjlcXHUwM0ZBXFx1MDNGRC1cXHUwNDJGXFx1MDQ2MFxcdTA0NjJcXHUwNDY0XFx1MDQ2NlxcdTA0NjhcXHUwNDZBXFx1MDQ2Q1xcdTA0NkVcXHUwNDcwXFx1MDQ3MlxcdTA0NzRcXHUwNDc2XFx1MDQ3OFxcdTA0N0FcXHUwNDdDXFx1MDQ3RVxcdTA0ODBcXHUwNDhBXFx1MDQ4Q1xcdTA0OEVcXHUwNDkwXFx1MDQ5MlxcdTA0OTRcXHUwNDk2XFx1MDQ5OFxcdTA0OUFcXHUwNDlDXFx1MDQ5RVxcdTA0QTBcXHUwNEEyXFx1MDRBNFxcdTA0QTZcXHUwNEE4XFx1MDRBQVxcdTA0QUNcXHUwNEFFXFx1MDRCMFxcdTA0QjJcXHUwNEI0XFx1MDRCNlxcdTA0QjhcXHUwNEJBXFx1MDRCQ1xcdTA0QkVcXHUwNEMwXFx1MDRDMVxcdTA0QzNcXHUwNEM1XFx1MDRDN1xcdTA0QzlcXHUwNENCXFx1MDRDRFxcdTA0RDBcXHUwNEQyXFx1MDRENFxcdTA0RDZcXHUwNEQ4XFx1MDREQVxcdTA0RENcXHUwNERFXFx1MDRFMFxcdTA0RTJcXHUwNEU0XFx1MDRFNlxcdTA0RThcXHUwNEVBXFx1MDRFQ1xcdTA0RUVcXHUwNEYwXFx1MDRGMlxcdTA0RjRcXHUwNEY2XFx1MDRGOFxcdTA0RkFcXHUwNEZDXFx1MDRGRVxcdTA1MDBcXHUwNTAyXFx1MDUwNFxcdTA1MDZcXHUwNTA4XFx1MDUwQVxcdTA1MENcXHUwNTBFXFx1MDUxMFxcdTA1MTJcXHUwNTE0XFx1MDUxNlxcdTA1MThcXHUwNTFBXFx1MDUxQ1xcdTA1MUVcXHUwNTIwXFx1MDUyMlxcdTA1MjRcXHUwNTI2XFx1MDUyOFxcdTA1MkFcXHUwNTJDXFx1MDUyRVxcdTA1MzEtXFx1MDU1NlxcdTEwQTAtXFx1MTBDNVxcdTEwQzdcXHUxMENEXFx1MTNBMC1cXHUxM0Y1XFx1MUM5MC1cXHUxQ0JBXFx1MUNCRC1cXHUxQ0JGXFx1MUUwMFxcdTFFMDJcXHUxRTA0XFx1MUUwNlxcdTFFMDhcXHUxRTBBXFx1MUUwQ1xcdTFFMEVcXHUxRTEwXFx1MUUxMlxcdTFFMTRcXHUxRTE2XFx1MUUxOFxcdTFFMUFcXHUxRTFDXFx1MUUxRVxcdTFFMjBcXHUxRTIyXFx1MUUyNFxcdTFFMjZcXHUxRTI4XFx1MUUyQVxcdTFFMkNcXHUxRTJFXFx1MUUzMFxcdTFFMzJcXHUxRTM0XFx1MUUzNlxcdTFFMzhcXHUxRTNBXFx1MUUzQ1xcdTFFM0VcXHUxRTQwXFx1MUU0MlxcdTFFNDRcXHUxRTQ2XFx1MUU0OFxcdTFFNEFcXHUxRTRDXFx1MUU0RVxcdTFFNTBcXHUxRTUyXFx1MUU1NFxcdTFFNTZcXHUxRTU4XFx1MUU1QVxcdTFFNUNcXHUxRTVFXFx1MUU2MFxcdTFFNjJcXHUxRTY0XFx1MUU2NlxcdTFFNjhcXHUxRTZBXFx1MUU2Q1xcdTFFNkVcXHUxRTcwXFx1MUU3MlxcdTFFNzRcXHUxRTc2XFx1MUU3OFxcdTFFN0FcXHUxRTdDXFx1MUU3RVxcdTFFODBcXHUxRTgyXFx1MUU4NFxcdTFFODZcXHUxRTg4XFx1MUU4QVxcdTFFOENcXHUxRThFXFx1MUU5MFxcdTFFOTJcXHUxRTk0XFx1MUU5RVxcdTFFQTBcXHUxRUEyXFx1MUVBNFxcdTFFQTZcXHUxRUE4XFx1MUVBQVxcdTFFQUNcXHUxRUFFXFx1MUVCMFxcdTFFQjJcXHUxRUI0XFx1MUVCNlxcdTFFQjhcXHUxRUJBXFx1MUVCQ1xcdTFFQkVcXHUxRUMwXFx1MUVDMlxcdTFFQzRcXHUxRUM2XFx1MUVDOFxcdTFFQ0FcXHUxRUNDXFx1MUVDRVxcdTFFRDBcXHUxRUQyXFx1MUVENFxcdTFFRDZcXHUxRUQ4XFx1MUVEQVxcdTFFRENcXHUxRURFXFx1MUVFMFxcdTFFRTJcXHUxRUU0XFx1MUVFNlxcdTFFRThcXHUxRUVBXFx1MUVFQ1xcdTFFRUVcXHUxRUYwXFx1MUVGMlxcdTFFRjRcXHUxRUY2XFx1MUVGOFxcdTFFRkFcXHUxRUZDXFx1MUVGRVxcdTFGMDgtXFx1MUYwRlxcdTFGMTgtXFx1MUYxRFxcdTFGMjgtXFx1MUYyRlxcdTFGMzgtXFx1MUYzRlxcdTFGNDgtXFx1MUY0RFxcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUZcXHUxRjY4LVxcdTFGNkZcXHUxRkI4LVxcdTFGQkJcXHUxRkM4LVxcdTFGQ0JcXHUxRkQ4LVxcdTFGREJcXHUxRkU4LVxcdTFGRUNcXHUxRkY4LVxcdTFGRkJcXHUyMTAyXFx1MjEwN1xcdTIxMEItXFx1MjEwRFxcdTIxMTAtXFx1MjExMlxcdTIxMTVcXHUyMTE5LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTMwLVxcdTIxMzNcXHUyMTNFXFx1MjEzRlxcdTIxNDVcXHUyMTgzXFx1MkMwMC1cXHUyQzJFXFx1MkM2MFxcdTJDNjItXFx1MkM2NFxcdTJDNjdcXHUyQzY5XFx1MkM2QlxcdTJDNkQtXFx1MkM3MFxcdTJDNzJcXHUyQzc1XFx1MkM3RS1cXHUyQzgwXFx1MkM4MlxcdTJDODRcXHUyQzg2XFx1MkM4OFxcdTJDOEFcXHUyQzhDXFx1MkM4RVxcdTJDOTBcXHUyQzkyXFx1MkM5NFxcdTJDOTZcXHUyQzk4XFx1MkM5QVxcdTJDOUNcXHUyQzlFXFx1MkNBMFxcdTJDQTJcXHUyQ0E0XFx1MkNBNlxcdTJDQThcXHUyQ0FBXFx1MkNBQ1xcdTJDQUVcXHUyQ0IwXFx1MkNCMlxcdTJDQjRcXHUyQ0I2XFx1MkNCOFxcdTJDQkFcXHUyQ0JDXFx1MkNCRVxcdTJDQzBcXHUyQ0MyXFx1MkNDNFxcdTJDQzZcXHUyQ0M4XFx1MkNDQVxcdTJDQ0NcXHUyQ0NFXFx1MkNEMFxcdTJDRDJcXHUyQ0Q0XFx1MkNENlxcdTJDRDhcXHUyQ0RBXFx1MkNEQ1xcdTJDREVcXHUyQ0UwXFx1MkNFMlxcdTJDRUJcXHUyQ0VEXFx1MkNGMlxcdUE2NDBcXHVBNjQyXFx1QTY0NFxcdUE2NDZcXHVBNjQ4XFx1QTY0QVxcdUE2NENcXHVBNjRFXFx1QTY1MFxcdUE2NTJcXHVBNjU0XFx1QTY1NlxcdUE2NThcXHVBNjVBXFx1QTY1Q1xcdUE2NUVcXHVBNjYwXFx1QTY2MlxcdUE2NjRcXHVBNjY2XFx1QTY2OFxcdUE2NkFcXHVBNjZDXFx1QTY4MFxcdUE2ODJcXHVBNjg0XFx1QTY4NlxcdUE2ODhcXHVBNjhBXFx1QTY4Q1xcdUE2OEVcXHVBNjkwXFx1QTY5MlxcdUE2OTRcXHVBNjk2XFx1QTY5OFxcdUE2OUFcXHVBNzIyXFx1QTcyNFxcdUE3MjZcXHVBNzI4XFx1QTcyQVxcdUE3MkNcXHVBNzJFXFx1QTczMlxcdUE3MzRcXHVBNzM2XFx1QTczOFxcdUE3M0FcXHVBNzNDXFx1QTczRVxcdUE3NDBcXHVBNzQyXFx1QTc0NFxcdUE3NDZcXHVBNzQ4XFx1QTc0QVxcdUE3NENcXHVBNzRFXFx1QTc1MFxcdUE3NTJcXHVBNzU0XFx1QTc1NlxcdUE3NThcXHVBNzVBXFx1QTc1Q1xcdUE3NUVcXHVBNzYwXFx1QTc2MlxcdUE3NjRcXHVBNzY2XFx1QTc2OFxcdUE3NkFcXHVBNzZDXFx1QTc2RVxcdUE3NzlcXHVBNzdCXFx1QTc3RFxcdUE3N0VcXHVBNzgwXFx1QTc4MlxcdUE3ODRcXHVBNzg2XFx1QTc4QlxcdUE3OERcXHVBNzkwXFx1QTc5MlxcdUE3OTZcXHVBNzk4XFx1QTc5QVxcdUE3OUNcXHVBNzlFXFx1QTdBMFxcdUE3QTJcXHVBN0E0XFx1QTdBNlxcdUE3QThcXHVBN0FBLVxcdUE3QUVcXHVBN0IwLVxcdUE3QjRcXHVBN0I2XFx1QTdCOFxcdUE3QkFcXHVBN0JDXFx1QTdCRVxcdUE3QzJcXHVBN0M0LVxcdUE3QzdcXHVBN0M5XFx1QTdGNVxcdUZGMjEtXFx1RkYzQScsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgwMVtcXHVEQzAwLVxcdURDMjdcXHVEQ0IwLVxcdURDRDNdfFxcdUQ4MDNbXFx1REM4MC1cXHVEQ0IyXXxcXHVEODA2W1xcdURDQTAtXFx1RENCRl18XFx1RDgxQltcXHVERTQwLVxcdURFNUZdfFxcdUQ4MzVbXFx1REMwMC1cXHVEQzE5XFx1REMzNC1cXHVEQzREXFx1REM2OC1cXHVEQzgxXFx1REM5Q1xcdURDOUVcXHVEQzlGXFx1RENBMlxcdURDQTVcXHVEQ0E2XFx1RENBOS1cXHVEQ0FDXFx1RENBRS1cXHVEQ0I1XFx1RENEMC1cXHVEQ0U5XFx1REQwNFxcdUREMDVcXHVERDA3LVxcdUREMEFcXHVERDBELVxcdUREMTRcXHVERDE2LVxcdUREMUNcXHVERDM4XFx1REQzOVxcdUREM0ItXFx1REQzRVxcdURENDAtXFx1REQ0NFxcdURENDZcXHVERDRBLVxcdURENTBcXHVERDZDLVxcdUREODVcXHVEREEwLVxcdUREQjlcXHVEREQ0LVxcdURERURcXHVERTA4LVxcdURFMjFcXHVERTNDLVxcdURFNTVcXHVERTcwLVxcdURFODlcXHVERUE4LVxcdURFQzBcXHVERUUyLVxcdURFRkFcXHVERjFDLVxcdURGMzRcXHVERjU2LVxcdURGNkVcXHVERjkwLVxcdURGQThcXHVERkNBXXxcXHVEODNBW1xcdUREMDAtXFx1REQyMV0nXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ00nLFxuICAgICAgICAnYWxpYXMnOiAnTWFyaycsXG4gICAgICAgICdibXAnOiAnXFx1MDMwMC1cXHUwMzZGXFx1MDQ4My1cXHUwNDg5XFx1MDU5MS1cXHUwNUJEXFx1MDVCRlxcdTA1QzFcXHUwNUMyXFx1MDVDNFxcdTA1QzVcXHUwNUM3XFx1MDYxMC1cXHUwNjFBXFx1MDY0Qi1cXHUwNjVGXFx1MDY3MFxcdTA2RDYtXFx1MDZEQ1xcdTA2REYtXFx1MDZFNFxcdTA2RTdcXHUwNkU4XFx1MDZFQS1cXHUwNkVEXFx1MDcxMVxcdTA3MzAtXFx1MDc0QVxcdTA3QTYtXFx1MDdCMFxcdTA3RUItXFx1MDdGM1xcdTA3RkRcXHUwODE2LVxcdTA4MTlcXHUwODFCLVxcdTA4MjNcXHUwODI1LVxcdTA4MjdcXHUwODI5LVxcdTA4MkRcXHUwODU5LVxcdTA4NUJcXHUwOEQzLVxcdTA4RTFcXHUwOEUzLVxcdTA5MDNcXHUwOTNBLVxcdTA5M0NcXHUwOTNFLVxcdTA5NEZcXHUwOTUxLVxcdTA5NTdcXHUwOTYyXFx1MDk2M1xcdTA5ODEtXFx1MDk4M1xcdTA5QkNcXHUwOUJFLVxcdTA5QzRcXHUwOUM3XFx1MDlDOFxcdTA5Q0ItXFx1MDlDRFxcdTA5RDdcXHUwOUUyXFx1MDlFM1xcdTA5RkVcXHUwQTAxLVxcdTBBMDNcXHUwQTNDXFx1MEEzRS1cXHUwQTQyXFx1MEE0N1xcdTBBNDhcXHUwQTRCLVxcdTBBNERcXHUwQTUxXFx1MEE3MFxcdTBBNzFcXHUwQTc1XFx1MEE4MS1cXHUwQTgzXFx1MEFCQ1xcdTBBQkUtXFx1MEFDNVxcdTBBQzctXFx1MEFDOVxcdTBBQ0ItXFx1MEFDRFxcdTBBRTJcXHUwQUUzXFx1MEFGQS1cXHUwQUZGXFx1MEIwMS1cXHUwQjAzXFx1MEIzQ1xcdTBCM0UtXFx1MEI0NFxcdTBCNDdcXHUwQjQ4XFx1MEI0Qi1cXHUwQjREXFx1MEI1NS1cXHUwQjU3XFx1MEI2MlxcdTBCNjNcXHUwQjgyXFx1MEJCRS1cXHUwQkMyXFx1MEJDNi1cXHUwQkM4XFx1MEJDQS1cXHUwQkNEXFx1MEJEN1xcdTBDMDAtXFx1MEMwNFxcdTBDM0UtXFx1MEM0NFxcdTBDNDYtXFx1MEM0OFxcdTBDNEEtXFx1MEM0RFxcdTBDNTVcXHUwQzU2XFx1MEM2MlxcdTBDNjNcXHUwQzgxLVxcdTBDODNcXHUwQ0JDXFx1MENCRS1cXHUwQ0M0XFx1MENDNi1cXHUwQ0M4XFx1MENDQS1cXHUwQ0NEXFx1MENENVxcdTBDRDZcXHUwQ0UyXFx1MENFM1xcdTBEMDAtXFx1MEQwM1xcdTBEM0JcXHUwRDNDXFx1MEQzRS1cXHUwRDQ0XFx1MEQ0Ni1cXHUwRDQ4XFx1MEQ0QS1cXHUwRDREXFx1MEQ1N1xcdTBENjJcXHUwRDYzXFx1MEQ4MS1cXHUwRDgzXFx1MERDQVxcdTBEQ0YtXFx1MERENFxcdTBERDZcXHUwREQ4LVxcdTBEREZcXHUwREYyXFx1MERGM1xcdTBFMzFcXHUwRTM0LVxcdTBFM0FcXHUwRTQ3LVxcdTBFNEVcXHUwRUIxXFx1MEVCNC1cXHUwRUJDXFx1MEVDOC1cXHUwRUNEXFx1MEYxOFxcdTBGMTlcXHUwRjM1XFx1MEYzN1xcdTBGMzlcXHUwRjNFXFx1MEYzRlxcdTBGNzEtXFx1MEY4NFxcdTBGODZcXHUwRjg3XFx1MEY4RC1cXHUwRjk3XFx1MEY5OS1cXHUwRkJDXFx1MEZDNlxcdTEwMkItXFx1MTAzRVxcdTEwNTYtXFx1MTA1OVxcdTEwNUUtXFx1MTA2MFxcdTEwNjItXFx1MTA2NFxcdTEwNjctXFx1MTA2RFxcdTEwNzEtXFx1MTA3NFxcdTEwODItXFx1MTA4RFxcdTEwOEZcXHUxMDlBLVxcdTEwOURcXHUxMzVELVxcdTEzNUZcXHUxNzEyLVxcdTE3MTRcXHUxNzMyLVxcdTE3MzRcXHUxNzUyXFx1MTc1M1xcdTE3NzJcXHUxNzczXFx1MTdCNC1cXHUxN0QzXFx1MTdERFxcdTE4MEItXFx1MTgwRFxcdTE4ODVcXHUxODg2XFx1MThBOVxcdTE5MjAtXFx1MTkyQlxcdTE5MzAtXFx1MTkzQlxcdTFBMTctXFx1MUExQlxcdTFBNTUtXFx1MUE1RVxcdTFBNjAtXFx1MUE3Q1xcdTFBN0ZcXHUxQUIwLVxcdTFBQzBcXHUxQjAwLVxcdTFCMDRcXHUxQjM0LVxcdTFCNDRcXHUxQjZCLVxcdTFCNzNcXHUxQjgwLVxcdTFCODJcXHUxQkExLVxcdTFCQURcXHUxQkU2LVxcdTFCRjNcXHUxQzI0LVxcdTFDMzdcXHUxQ0QwLVxcdTFDRDJcXHUxQ0Q0LVxcdTFDRThcXHUxQ0VEXFx1MUNGNFxcdTFDRjctXFx1MUNGOVxcdTFEQzAtXFx1MURGOVxcdTFERkItXFx1MURGRlxcdTIwRDAtXFx1MjBGMFxcdTJDRUYtXFx1MkNGMVxcdTJEN0ZcXHUyREUwLVxcdTJERkZcXHUzMDJBLVxcdTMwMkZcXHUzMDk5XFx1MzA5QVxcdUE2NkYtXFx1QTY3MlxcdUE2NzQtXFx1QTY3RFxcdUE2OUVcXHVBNjlGXFx1QTZGMFxcdUE2RjFcXHVBODAyXFx1QTgwNlxcdUE4MEJcXHVBODIzLVxcdUE4MjdcXHVBODJDXFx1QTg4MFxcdUE4ODFcXHVBOEI0LVxcdUE4QzVcXHVBOEUwLVxcdUE4RjFcXHVBOEZGXFx1QTkyNi1cXHVBOTJEXFx1QTk0Ny1cXHVBOTUzXFx1QTk4MC1cXHVBOTgzXFx1QTlCMy1cXHVBOUMwXFx1QTlFNVxcdUFBMjktXFx1QUEzNlxcdUFBNDNcXHVBQTRDXFx1QUE0RFxcdUFBN0ItXFx1QUE3RFxcdUFBQjBcXHVBQUIyLVxcdUFBQjRcXHVBQUI3XFx1QUFCOFxcdUFBQkVcXHVBQUJGXFx1QUFDMVxcdUFBRUItXFx1QUFFRlxcdUFBRjVcXHVBQUY2XFx1QUJFMy1cXHVBQkVBXFx1QUJFQ1xcdUFCRURcXHVGQjFFXFx1RkUwMC1cXHVGRTBGXFx1RkUyMC1cXHVGRTJGJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODAwW1xcdURERkRcXHVERUUwXFx1REY3Ni1cXHVERjdBXXxcXHVEODAyW1xcdURFMDEtXFx1REUwM1xcdURFMDVcXHVERTA2XFx1REUwQy1cXHVERTBGXFx1REUzOC1cXHVERTNBXFx1REUzRlxcdURFRTVcXHVERUU2XXxcXHVEODAzW1xcdUREMjQtXFx1REQyN1xcdURFQUJcXHVERUFDXFx1REY0Ni1cXHVERjUwXXxcXHVEODA0W1xcdURDMDAtXFx1REMwMlxcdURDMzgtXFx1REM0NlxcdURDN0YtXFx1REM4MlxcdURDQjAtXFx1RENCQVxcdUREMDAtXFx1REQwMlxcdUREMjctXFx1REQzNFxcdURENDVcXHVERDQ2XFx1REQ3M1xcdUREODAtXFx1REQ4MlxcdUREQjMtXFx1RERDMFxcdUREQzktXFx1RERDQ1xcdUREQ0VcXHVERENGXFx1REUyQy1cXHVERTM3XFx1REUzRVxcdURFREYtXFx1REVFQVxcdURGMDAtXFx1REYwM1xcdURGM0JcXHVERjNDXFx1REYzRS1cXHVERjQ0XFx1REY0N1xcdURGNDhcXHVERjRCLVxcdURGNERcXHVERjU3XFx1REY2MlxcdURGNjNcXHVERjY2LVxcdURGNkNcXHVERjcwLVxcdURGNzRdfFxcdUQ4MDVbXFx1REMzNS1cXHVEQzQ2XFx1REM1RVxcdURDQjAtXFx1RENDM1xcdUREQUYtXFx1RERCNVxcdUREQjgtXFx1RERDMFxcdURERENcXHVEREREXFx1REUzMC1cXHVERTQwXFx1REVBQi1cXHVERUI3XFx1REYxRC1cXHVERjJCXXxcXHVEODA2W1xcdURDMkMtXFx1REMzQVxcdUREMzAtXFx1REQzNVxcdUREMzdcXHVERDM4XFx1REQzQi1cXHVERDNFXFx1REQ0MFxcdURENDJcXHVERDQzXFx1REREMS1cXHVEREQ3XFx1REREQS1cXHVEREUwXFx1RERFNFxcdURFMDEtXFx1REUwQVxcdURFMzMtXFx1REUzOVxcdURFM0ItXFx1REUzRVxcdURFNDdcXHVERTUxLVxcdURFNUJcXHVERThBLVxcdURFOTldfFxcdUQ4MDdbXFx1REMyRi1cXHVEQzM2XFx1REMzOC1cXHVEQzNGXFx1REM5Mi1cXHVEQ0E3XFx1RENBOS1cXHVEQ0I2XFx1REQzMS1cXHVERDM2XFx1REQzQVxcdUREM0NcXHVERDNEXFx1REQzRi1cXHVERDQ1XFx1REQ0N1xcdUREOEEtXFx1REQ4RVxcdUREOTBcXHVERDkxXFx1REQ5My1cXHVERDk3XFx1REVGMy1cXHVERUY2XXxcXHVEODFBW1xcdURFRjAtXFx1REVGNFxcdURGMzAtXFx1REYzNl18XFx1RDgxQltcXHVERjRGXFx1REY1MS1cXHVERjg3XFx1REY4Ri1cXHVERjkyXFx1REZFNFxcdURGRjBcXHVERkYxXXxcXHVEODJGW1xcdURDOURcXHVEQzlFXXxcXHVEODM0W1xcdURENjUtXFx1REQ2OVxcdURENkQtXFx1REQ3MlxcdUREN0ItXFx1REQ4MlxcdUREODUtXFx1REQ4QlxcdUREQUEtXFx1RERBRFxcdURFNDItXFx1REU0NF18XFx1RDgzNltcXHVERTAwLVxcdURFMzZcXHVERTNCLVxcdURFNkNcXHVERTc1XFx1REU4NFxcdURFOUItXFx1REU5RlxcdURFQTEtXFx1REVBRl18XFx1RDgzOFtcXHVEQzAwLVxcdURDMDZcXHVEQzA4LVxcdURDMThcXHVEQzFCLVxcdURDMjFcXHVEQzIzXFx1REMyNFxcdURDMjYtXFx1REMyQVxcdUREMzAtXFx1REQzNlxcdURFRUMtXFx1REVFRl18XFx1RDgzQVtcXHVEQ0QwLVxcdURDRDZcXHVERDQ0LVxcdURENEFdfFxcdURCNDBbXFx1REQwMC1cXHVEREVGXSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnTWMnLFxuICAgICAgICAnYWxpYXMnOiAnU3BhY2luZ19NYXJrJyxcbiAgICAgICAgJ2JtcCc6ICdcXHUwOTAzXFx1MDkzQlxcdTA5M0UtXFx1MDk0MFxcdTA5NDktXFx1MDk0Q1xcdTA5NEVcXHUwOTRGXFx1MDk4MlxcdTA5ODNcXHUwOUJFLVxcdTA5QzBcXHUwOUM3XFx1MDlDOFxcdTA5Q0JcXHUwOUNDXFx1MDlEN1xcdTBBMDNcXHUwQTNFLVxcdTBBNDBcXHUwQTgzXFx1MEFCRS1cXHUwQUMwXFx1MEFDOVxcdTBBQ0JcXHUwQUNDXFx1MEIwMlxcdTBCMDNcXHUwQjNFXFx1MEI0MFxcdTBCNDdcXHUwQjQ4XFx1MEI0QlxcdTBCNENcXHUwQjU3XFx1MEJCRVxcdTBCQkZcXHUwQkMxXFx1MEJDMlxcdTBCQzYtXFx1MEJDOFxcdTBCQ0EtXFx1MEJDQ1xcdTBCRDdcXHUwQzAxLVxcdTBDMDNcXHUwQzQxLVxcdTBDNDRcXHUwQzgyXFx1MEM4M1xcdTBDQkVcXHUwQ0MwLVxcdTBDQzRcXHUwQ0M3XFx1MENDOFxcdTBDQ0FcXHUwQ0NCXFx1MENENVxcdTBDRDZcXHUwRDAyXFx1MEQwM1xcdTBEM0UtXFx1MEQ0MFxcdTBENDYtXFx1MEQ0OFxcdTBENEEtXFx1MEQ0Q1xcdTBENTdcXHUwRDgyXFx1MEQ4M1xcdTBEQ0YtXFx1MEREMVxcdTBERDgtXFx1MERERlxcdTBERjJcXHUwREYzXFx1MEYzRVxcdTBGM0ZcXHUwRjdGXFx1MTAyQlxcdTEwMkNcXHUxMDMxXFx1MTAzOFxcdTEwM0JcXHUxMDNDXFx1MTA1NlxcdTEwNTdcXHUxMDYyLVxcdTEwNjRcXHUxMDY3LVxcdTEwNkRcXHUxMDgzXFx1MTA4NFxcdTEwODctXFx1MTA4Q1xcdTEwOEZcXHUxMDlBLVxcdTEwOUNcXHUxN0I2XFx1MTdCRS1cXHUxN0M1XFx1MTdDN1xcdTE3QzhcXHUxOTIzLVxcdTE5MjZcXHUxOTI5LVxcdTE5MkJcXHUxOTMwXFx1MTkzMVxcdTE5MzMtXFx1MTkzOFxcdTFBMTlcXHUxQTFBXFx1MUE1NVxcdTFBNTdcXHUxQTYxXFx1MUE2M1xcdTFBNjRcXHUxQTZELVxcdTFBNzJcXHUxQjA0XFx1MUIzNVxcdTFCM0JcXHUxQjNELVxcdTFCNDFcXHUxQjQzXFx1MUI0NFxcdTFCODJcXHUxQkExXFx1MUJBNlxcdTFCQTdcXHUxQkFBXFx1MUJFN1xcdTFCRUEtXFx1MUJFQ1xcdTFCRUVcXHUxQkYyXFx1MUJGM1xcdTFDMjQtXFx1MUMyQlxcdTFDMzRcXHUxQzM1XFx1MUNFMVxcdTFDRjdcXHUzMDJFXFx1MzAyRlxcdUE4MjNcXHVBODI0XFx1QTgyN1xcdUE4ODBcXHVBODgxXFx1QThCNC1cXHVBOEMzXFx1QTk1MlxcdUE5NTNcXHVBOTgzXFx1QTlCNFxcdUE5QjVcXHVBOUJBXFx1QTlCQlxcdUE5QkUtXFx1QTlDMFxcdUFBMkZcXHVBQTMwXFx1QUEzM1xcdUFBMzRcXHVBQTREXFx1QUE3QlxcdUFBN0RcXHVBQUVCXFx1QUFFRVxcdUFBRUZcXHVBQUY1XFx1QUJFM1xcdUFCRTRcXHVBQkU2XFx1QUJFN1xcdUFCRTlcXHVBQkVBXFx1QUJFQycsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgwNFtcXHVEQzAwXFx1REMwMlxcdURDODJcXHVEQ0IwLVxcdURDQjJcXHVEQ0I3XFx1RENCOFxcdUREMkNcXHVERDQ1XFx1REQ0NlxcdUREODJcXHVEREIzLVxcdUREQjVcXHVEREJGXFx1RERDMFxcdUREQ0VcXHVERTJDLVxcdURFMkVcXHVERTMyXFx1REUzM1xcdURFMzVcXHVERUUwLVxcdURFRTJcXHVERjAyXFx1REYwM1xcdURGM0VcXHVERjNGXFx1REY0MS1cXHVERjQ0XFx1REY0N1xcdURGNDhcXHVERjRCLVxcdURGNERcXHVERjU3XFx1REY2MlxcdURGNjNdfFxcdUQ4MDVbXFx1REMzNS1cXHVEQzM3XFx1REM0MFxcdURDNDFcXHVEQzQ1XFx1RENCMC1cXHVEQ0IyXFx1RENCOVxcdURDQkItXFx1RENCRVxcdURDQzFcXHVEREFGLVxcdUREQjFcXHVEREI4LVxcdUREQkJcXHVEREJFXFx1REUzMC1cXHVERTMyXFx1REUzQlxcdURFM0NcXHVERTNFXFx1REVBQ1xcdURFQUVcXHVERUFGXFx1REVCNlxcdURGMjBcXHVERjIxXFx1REYyNl18XFx1RDgwNltcXHVEQzJDLVxcdURDMkVcXHVEQzM4XFx1REQzMC1cXHVERDM1XFx1REQzN1xcdUREMzhcXHVERDNEXFx1REQ0MFxcdURENDJcXHVEREQxLVxcdURERDNcXHVERERDLVxcdUREREZcXHVEREU0XFx1REUzOVxcdURFNTdcXHVERTU4XFx1REU5N118XFx1RDgwN1tcXHVEQzJGXFx1REMzRVxcdURDQTlcXHVEQ0IxXFx1RENCNFxcdUREOEEtXFx1REQ4RVxcdUREOTNcXHVERDk0XFx1REQ5NlxcdURFRjVcXHVERUY2XXxcXHVEODFCW1xcdURGNTEtXFx1REY4N1xcdURGRjBcXHVERkYxXXxcXHVEODM0W1xcdURENjVcXHVERDY2XFx1REQ2RC1cXHVERDcyXSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnTWUnLFxuICAgICAgICAnYWxpYXMnOiAnRW5jbG9zaW5nX01hcmsnLFxuICAgICAgICAnYm1wJzogJ1xcdTA0ODhcXHUwNDg5XFx1MUFCRVxcdTIwREQtXFx1MjBFMFxcdTIwRTItXFx1MjBFNFxcdUE2NzAtXFx1QTY3MidcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnTW4nLFxuICAgICAgICAnYWxpYXMnOiAnTm9uc3BhY2luZ19NYXJrJyxcbiAgICAgICAgJ2JtcCc6ICdcXHUwMzAwLVxcdTAzNkZcXHUwNDgzLVxcdTA0ODdcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNjEwLVxcdTA2MUFcXHUwNjRCLVxcdTA2NUZcXHUwNjcwXFx1MDZENi1cXHUwNkRDXFx1MDZERi1cXHUwNkU0XFx1MDZFN1xcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNzExXFx1MDczMC1cXHUwNzRBXFx1MDdBNi1cXHUwN0IwXFx1MDdFQi1cXHUwN0YzXFx1MDdGRFxcdTA4MTYtXFx1MDgxOVxcdTA4MUItXFx1MDgyM1xcdTA4MjUtXFx1MDgyN1xcdTA4MjktXFx1MDgyRFxcdTA4NTktXFx1MDg1QlxcdTA4RDMtXFx1MDhFMVxcdTA4RTMtXFx1MDkwMlxcdTA5M0FcXHUwOTNDXFx1MDk0MS1cXHUwOTQ4XFx1MDk0RFxcdTA5NTEtXFx1MDk1N1xcdTA5NjJcXHUwOTYzXFx1MDk4MVxcdTA5QkNcXHUwOUMxLVxcdTA5QzRcXHUwOUNEXFx1MDlFMlxcdTA5RTNcXHUwOUZFXFx1MEEwMVxcdTBBMDJcXHUwQTNDXFx1MEE0MVxcdTBBNDJcXHUwQTQ3XFx1MEE0OFxcdTBBNEItXFx1MEE0RFxcdTBBNTFcXHUwQTcwXFx1MEE3MVxcdTBBNzVcXHUwQTgxXFx1MEE4MlxcdTBBQkNcXHUwQUMxLVxcdTBBQzVcXHUwQUM3XFx1MEFDOFxcdTBBQ0RcXHUwQUUyXFx1MEFFM1xcdTBBRkEtXFx1MEFGRlxcdTBCMDFcXHUwQjNDXFx1MEIzRlxcdTBCNDEtXFx1MEI0NFxcdTBCNERcXHUwQjU1XFx1MEI1NlxcdTBCNjJcXHUwQjYzXFx1MEI4MlxcdTBCQzBcXHUwQkNEXFx1MEMwMFxcdTBDMDRcXHUwQzNFLVxcdTBDNDBcXHUwQzQ2LVxcdTBDNDhcXHUwQzRBLVxcdTBDNERcXHUwQzU1XFx1MEM1NlxcdTBDNjJcXHUwQzYzXFx1MEM4MVxcdTBDQkNcXHUwQ0JGXFx1MENDNlxcdTBDQ0NcXHUwQ0NEXFx1MENFMlxcdTBDRTNcXHUwRDAwXFx1MEQwMVxcdTBEM0JcXHUwRDNDXFx1MEQ0MS1cXHUwRDQ0XFx1MEQ0RFxcdTBENjJcXHUwRDYzXFx1MEQ4MVxcdTBEQ0FcXHUwREQyLVxcdTBERDRcXHUwREQ2XFx1MEUzMVxcdTBFMzQtXFx1MEUzQVxcdTBFNDctXFx1MEU0RVxcdTBFQjFcXHUwRUI0LVxcdTBFQkNcXHUwRUM4LVxcdTBFQ0RcXHUwRjE4XFx1MEYxOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGNzEtXFx1MEY3RVxcdTBGODAtXFx1MEY4NFxcdTBGODZcXHUwRjg3XFx1MEY4RC1cXHUwRjk3XFx1MEY5OS1cXHUwRkJDXFx1MEZDNlxcdTEwMkQtXFx1MTAzMFxcdTEwMzItXFx1MTAzN1xcdTEwMzlcXHUxMDNBXFx1MTAzRFxcdTEwM0VcXHUxMDU4XFx1MTA1OVxcdTEwNUUtXFx1MTA2MFxcdTEwNzEtXFx1MTA3NFxcdTEwODJcXHUxMDg1XFx1MTA4NlxcdTEwOERcXHUxMDlEXFx1MTM1RC1cXHUxMzVGXFx1MTcxMi1cXHUxNzE0XFx1MTczMi1cXHUxNzM0XFx1MTc1MlxcdTE3NTNcXHUxNzcyXFx1MTc3M1xcdTE3QjRcXHUxN0I1XFx1MTdCNy1cXHUxN0JEXFx1MTdDNlxcdTE3QzktXFx1MTdEM1xcdTE3RERcXHUxODBCLVxcdTE4MERcXHUxODg1XFx1MTg4NlxcdTE4QTlcXHUxOTIwLVxcdTE5MjJcXHUxOTI3XFx1MTkyOFxcdTE5MzJcXHUxOTM5LVxcdTE5M0JcXHUxQTE3XFx1MUExOFxcdTFBMUJcXHUxQTU2XFx1MUE1OC1cXHUxQTVFXFx1MUE2MFxcdTFBNjJcXHUxQTY1LVxcdTFBNkNcXHUxQTczLVxcdTFBN0NcXHUxQTdGXFx1MUFCMC1cXHUxQUJEXFx1MUFCRlxcdTFBQzBcXHUxQjAwLVxcdTFCMDNcXHUxQjM0XFx1MUIzNi1cXHUxQjNBXFx1MUIzQ1xcdTFCNDJcXHUxQjZCLVxcdTFCNzNcXHUxQjgwXFx1MUI4MVxcdTFCQTItXFx1MUJBNVxcdTFCQThcXHUxQkE5XFx1MUJBQi1cXHUxQkFEXFx1MUJFNlxcdTFCRThcXHUxQkU5XFx1MUJFRFxcdTFCRUYtXFx1MUJGMVxcdTFDMkMtXFx1MUMzM1xcdTFDMzZcXHUxQzM3XFx1MUNEMC1cXHUxQ0QyXFx1MUNENC1cXHUxQ0UwXFx1MUNFMi1cXHUxQ0U4XFx1MUNFRFxcdTFDRjRcXHUxQ0Y4XFx1MUNGOVxcdTFEQzAtXFx1MURGOVxcdTFERkItXFx1MURGRlxcdTIwRDAtXFx1MjBEQ1xcdTIwRTFcXHUyMEU1LVxcdTIwRjBcXHUyQ0VGLVxcdTJDRjFcXHUyRDdGXFx1MkRFMC1cXHUyREZGXFx1MzAyQS1cXHUzMDJEXFx1MzA5OVxcdTMwOUFcXHVBNjZGXFx1QTY3NC1cXHVBNjdEXFx1QTY5RVxcdUE2OUZcXHVBNkYwXFx1QTZGMVxcdUE4MDJcXHVBODA2XFx1QTgwQlxcdUE4MjVcXHVBODI2XFx1QTgyQ1xcdUE4QzRcXHVBOEM1XFx1QThFMC1cXHVBOEYxXFx1QThGRlxcdUE5MjYtXFx1QTkyRFxcdUE5NDctXFx1QTk1MVxcdUE5ODAtXFx1QTk4MlxcdUE5QjNcXHVBOUI2LVxcdUE5QjlcXHVBOUJDXFx1QTlCRFxcdUE5RTVcXHVBQTI5LVxcdUFBMkVcXHVBQTMxXFx1QUEzMlxcdUFBMzVcXHVBQTM2XFx1QUE0M1xcdUFBNENcXHVBQTdDXFx1QUFCMFxcdUFBQjItXFx1QUFCNFxcdUFBQjdcXHVBQUI4XFx1QUFCRVxcdUFBQkZcXHVBQUMxXFx1QUFFQ1xcdUFBRURcXHVBQUY2XFx1QUJFNVxcdUFCRThcXHVBQkVEXFx1RkIxRVxcdUZFMDAtXFx1RkUwRlxcdUZFMjAtXFx1RkUyRicsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgwMFtcXHVEREZEXFx1REVFMFxcdURGNzYtXFx1REY3QV18XFx1RDgwMltcXHVERTAxLVxcdURFMDNcXHVERTA1XFx1REUwNlxcdURFMEMtXFx1REUwRlxcdURFMzgtXFx1REUzQVxcdURFM0ZcXHVERUU1XFx1REVFNl18XFx1RDgwM1tcXHVERDI0LVxcdUREMjdcXHVERUFCXFx1REVBQ1xcdURGNDYtXFx1REY1MF18XFx1RDgwNFtcXHVEQzAxXFx1REMzOC1cXHVEQzQ2XFx1REM3Ri1cXHVEQzgxXFx1RENCMy1cXHVEQ0I2XFx1RENCOVxcdURDQkFcXHVERDAwLVxcdUREMDJcXHVERDI3LVxcdUREMkJcXHVERDJELVxcdUREMzRcXHVERDczXFx1REQ4MFxcdUREODFcXHVEREI2LVxcdUREQkVcXHVEREM5LVxcdUREQ0NcXHVERENGXFx1REUyRi1cXHVERTMxXFx1REUzNFxcdURFMzZcXHVERTM3XFx1REUzRVxcdURFREZcXHVERUUzLVxcdURFRUFcXHVERjAwXFx1REYwMVxcdURGM0JcXHVERjNDXFx1REY0MFxcdURGNjYtXFx1REY2Q1xcdURGNzAtXFx1REY3NF18XFx1RDgwNVtcXHVEQzM4LVxcdURDM0ZcXHVEQzQyLVxcdURDNDRcXHVEQzQ2XFx1REM1RVxcdURDQjMtXFx1RENCOFxcdURDQkFcXHVEQ0JGXFx1RENDMFxcdURDQzJcXHVEQ0MzXFx1RERCMi1cXHVEREI1XFx1RERCQ1xcdUREQkRcXHVEREJGXFx1RERDMFxcdURERENcXHVEREREXFx1REUzMy1cXHVERTNBXFx1REUzRFxcdURFM0ZcXHVERTQwXFx1REVBQlxcdURFQURcXHVERUIwLVxcdURFQjVcXHVERUI3XFx1REYxRC1cXHVERjFGXFx1REYyMi1cXHVERjI1XFx1REYyNy1cXHVERjJCXXxcXHVEODA2W1xcdURDMkYtXFx1REMzN1xcdURDMzlcXHVEQzNBXFx1REQzQlxcdUREM0NcXHVERDNFXFx1REQ0M1xcdURERDQtXFx1REREN1xcdUREREFcXHVERERCXFx1RERFMFxcdURFMDEtXFx1REUwQVxcdURFMzMtXFx1REUzOFxcdURFM0ItXFx1REUzRVxcdURFNDdcXHVERTUxLVxcdURFNTZcXHVERTU5LVxcdURFNUJcXHVERThBLVxcdURFOTZcXHVERTk4XFx1REU5OV18XFx1RDgwN1tcXHVEQzMwLVxcdURDMzZcXHVEQzM4LVxcdURDM0RcXHVEQzNGXFx1REM5Mi1cXHVEQ0E3XFx1RENBQS1cXHVEQ0IwXFx1RENCMlxcdURDQjNcXHVEQ0I1XFx1RENCNlxcdUREMzEtXFx1REQzNlxcdUREM0FcXHVERDNDXFx1REQzRFxcdUREM0YtXFx1REQ0NVxcdURENDdcXHVERDkwXFx1REQ5MVxcdUREOTVcXHVERDk3XFx1REVGM1xcdURFRjRdfFxcdUQ4MUFbXFx1REVGMC1cXHVERUY0XFx1REYzMC1cXHVERjM2XXxcXHVEODFCW1xcdURGNEZcXHVERjhGLVxcdURGOTJcXHVERkU0XXxcXHVEODJGW1xcdURDOURcXHVEQzlFXXxcXHVEODM0W1xcdURENjctXFx1REQ2OVxcdUREN0ItXFx1REQ4MlxcdUREODUtXFx1REQ4QlxcdUREQUEtXFx1RERBRFxcdURFNDItXFx1REU0NF18XFx1RDgzNltcXHVERTAwLVxcdURFMzZcXHVERTNCLVxcdURFNkNcXHVERTc1XFx1REU4NFxcdURFOUItXFx1REU5RlxcdURFQTEtXFx1REVBRl18XFx1RDgzOFtcXHVEQzAwLVxcdURDMDZcXHVEQzA4LVxcdURDMThcXHVEQzFCLVxcdURDMjFcXHVEQzIzXFx1REMyNFxcdURDMjYtXFx1REMyQVxcdUREMzAtXFx1REQzNlxcdURFRUMtXFx1REVFRl18XFx1RDgzQVtcXHVEQ0QwLVxcdURDRDZcXHVERDQ0LVxcdURENEFdfFxcdURCNDBbXFx1REQwMC1cXHVEREVGXSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnTicsXG4gICAgICAgICdhbGlhcyc6ICdOdW1iZXInLFxuICAgICAgICAnYm1wJzogJzAtOVxceEIyXFx4QjNcXHhCOVxceEJDLVxceEJFXFx1MDY2MC1cXHUwNjY5XFx1MDZGMC1cXHUwNkY5XFx1MDdDMC1cXHUwN0M5XFx1MDk2Ni1cXHUwOTZGXFx1MDlFNi1cXHUwOUVGXFx1MDlGNC1cXHUwOUY5XFx1MEE2Ni1cXHUwQTZGXFx1MEFFNi1cXHUwQUVGXFx1MEI2Ni1cXHUwQjZGXFx1MEI3Mi1cXHUwQjc3XFx1MEJFNi1cXHUwQkYyXFx1MEM2Ni1cXHUwQzZGXFx1MEM3OC1cXHUwQzdFXFx1MENFNi1cXHUwQ0VGXFx1MEQ1OC1cXHUwRDVFXFx1MEQ2Ni1cXHUwRDc4XFx1MERFNi1cXHUwREVGXFx1MEU1MC1cXHUwRTU5XFx1MEVEMC1cXHUwRUQ5XFx1MEYyMC1cXHUwRjMzXFx1MTA0MC1cXHUxMDQ5XFx1MTA5MC1cXHUxMDk5XFx1MTM2OS1cXHUxMzdDXFx1MTZFRS1cXHUxNkYwXFx1MTdFMC1cXHUxN0U5XFx1MTdGMC1cXHUxN0Y5XFx1MTgxMC1cXHUxODE5XFx1MTk0Ni1cXHUxOTRGXFx1MTlEMC1cXHUxOURBXFx1MUE4MC1cXHUxQTg5XFx1MUE5MC1cXHUxQTk5XFx1MUI1MC1cXHUxQjU5XFx1MUJCMC1cXHUxQkI5XFx1MUM0MC1cXHUxQzQ5XFx1MUM1MC1cXHUxQzU5XFx1MjA3MFxcdTIwNzQtXFx1MjA3OVxcdTIwODAtXFx1MjA4OVxcdTIxNTAtXFx1MjE4MlxcdTIxODUtXFx1MjE4OVxcdTI0NjAtXFx1MjQ5QlxcdTI0RUEtXFx1MjRGRlxcdTI3NzYtXFx1Mjc5M1xcdTJDRkRcXHUzMDA3XFx1MzAyMS1cXHUzMDI5XFx1MzAzOC1cXHUzMDNBXFx1MzE5Mi1cXHUzMTk1XFx1MzIyMC1cXHUzMjI5XFx1MzI0OC1cXHUzMjRGXFx1MzI1MS1cXHUzMjVGXFx1MzI4MC1cXHUzMjg5XFx1MzJCMS1cXHUzMkJGXFx1QTYyMC1cXHVBNjI5XFx1QTZFNi1cXHVBNkVGXFx1QTgzMC1cXHVBODM1XFx1QThEMC1cXHVBOEQ5XFx1QTkwMC1cXHVBOTA5XFx1QTlEMC1cXHVBOUQ5XFx1QTlGMC1cXHVBOUY5XFx1QUE1MC1cXHVBQTU5XFx1QUJGMC1cXHVBQkY5XFx1RkYxMC1cXHVGRjE5JyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODAwW1xcdUREMDctXFx1REQzM1xcdURENDAtXFx1REQ3OFxcdUREOEFcXHVERDhCXFx1REVFMS1cXHVERUZCXFx1REYyMC1cXHVERjIzXFx1REY0MVxcdURGNEFcXHVERkQxLVxcdURGRDVdfFxcdUQ4MDFbXFx1RENBMC1cXHVEQ0E5XXxcXHVEODAyW1xcdURDNTgtXFx1REM1RlxcdURDNzktXFx1REM3RlxcdURDQTctXFx1RENBRlxcdURDRkItXFx1RENGRlxcdUREMTYtXFx1REQxQlxcdUREQkNcXHVEREJEXFx1RERDMC1cXHVERENGXFx1REREMi1cXHVEREZGXFx1REU0MC1cXHVERTQ4XFx1REU3RFxcdURFN0VcXHVERTlELVxcdURFOUZcXHVERUVCLVxcdURFRUZcXHVERjU4LVxcdURGNUZcXHVERjc4LVxcdURGN0ZcXHVERkE5LVxcdURGQUZdfFxcdUQ4MDNbXFx1RENGQS1cXHVEQ0ZGXFx1REQzMC1cXHVERDM5XFx1REU2MC1cXHVERTdFXFx1REYxRC1cXHVERjI2XFx1REY1MS1cXHVERjU0XFx1REZDNS1cXHVERkNCXXxcXHVEODA0W1xcdURDNTItXFx1REM2RlxcdURDRjAtXFx1RENGOVxcdUREMzYtXFx1REQzRlxcdURERDAtXFx1REREOVxcdURERTEtXFx1RERGNFxcdURFRjAtXFx1REVGOV18XFx1RDgwNVtcXHVEQzUwLVxcdURDNTlcXHVEQ0QwLVxcdURDRDlcXHVERTUwLVxcdURFNTlcXHVERUMwLVxcdURFQzlcXHVERjMwLVxcdURGM0JdfFxcdUQ4MDZbXFx1RENFMC1cXHVEQ0YyXFx1REQ1MC1cXHVERDU5XXxcXHVEODA3W1xcdURDNTAtXFx1REM2Q1xcdURENTAtXFx1REQ1OVxcdUREQTAtXFx1RERBOVxcdURGQzAtXFx1REZENF18XFx1RDgwOVtcXHVEQzAwLVxcdURDNkVdfFxcdUQ4MUFbXFx1REU2MC1cXHVERTY5XFx1REY1MC1cXHVERjU5XFx1REY1Qi1cXHVERjYxXXxcXHVEODFCW1xcdURFODAtXFx1REU5Nl18XFx1RDgzNFtcXHVERUUwLVxcdURFRjNcXHVERjYwLVxcdURGNzhdfFxcdUQ4MzVbXFx1REZDRS1cXHVERkZGXXxcXHVEODM4W1xcdURENDAtXFx1REQ0OVxcdURFRjAtXFx1REVGOV18XFx1RDgzQVtcXHVEQ0M3LVxcdURDQ0ZcXHVERDUwLVxcdURENTldfFxcdUQ4M0JbXFx1REM3MS1cXHVEQ0FCXFx1RENBRC1cXHVEQ0FGXFx1RENCMS1cXHVEQ0I0XFx1REQwMS1cXHVERDJEXFx1REQyRi1cXHVERDNEXXxcXHVEODNDW1xcdUREMDAtXFx1REQwQ118XFx1RDgzRVtcXHVERkYwLVxcdURGRjldJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdOZCcsXG4gICAgICAgICdhbGlhcyc6ICdEZWNpbWFsX051bWJlcicsXG4gICAgICAgICdibXAnOiAnMC05XFx1MDY2MC1cXHUwNjY5XFx1MDZGMC1cXHUwNkY5XFx1MDdDMC1cXHUwN0M5XFx1MDk2Ni1cXHUwOTZGXFx1MDlFNi1cXHUwOUVGXFx1MEE2Ni1cXHUwQTZGXFx1MEFFNi1cXHUwQUVGXFx1MEI2Ni1cXHUwQjZGXFx1MEJFNi1cXHUwQkVGXFx1MEM2Ni1cXHUwQzZGXFx1MENFNi1cXHUwQ0VGXFx1MEQ2Ni1cXHUwRDZGXFx1MERFNi1cXHUwREVGXFx1MEU1MC1cXHUwRTU5XFx1MEVEMC1cXHUwRUQ5XFx1MEYyMC1cXHUwRjI5XFx1MTA0MC1cXHUxMDQ5XFx1MTA5MC1cXHUxMDk5XFx1MTdFMC1cXHUxN0U5XFx1MTgxMC1cXHUxODE5XFx1MTk0Ni1cXHUxOTRGXFx1MTlEMC1cXHUxOUQ5XFx1MUE4MC1cXHUxQTg5XFx1MUE5MC1cXHUxQTk5XFx1MUI1MC1cXHUxQjU5XFx1MUJCMC1cXHUxQkI5XFx1MUM0MC1cXHUxQzQ5XFx1MUM1MC1cXHUxQzU5XFx1QTYyMC1cXHVBNjI5XFx1QThEMC1cXHVBOEQ5XFx1QTkwMC1cXHVBOTA5XFx1QTlEMC1cXHVBOUQ5XFx1QTlGMC1cXHVBOUY5XFx1QUE1MC1cXHVBQTU5XFx1QUJGMC1cXHVBQkY5XFx1RkYxMC1cXHVGRjE5JyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODAxW1xcdURDQTAtXFx1RENBOV18XFx1RDgwM1tcXHVERDMwLVxcdUREMzldfFxcdUQ4MDRbXFx1REM2Ni1cXHVEQzZGXFx1RENGMC1cXHVEQ0Y5XFx1REQzNi1cXHVERDNGXFx1REREMC1cXHVEREQ5XFx1REVGMC1cXHVERUY5XXxcXHVEODA1W1xcdURDNTAtXFx1REM1OVxcdURDRDAtXFx1RENEOVxcdURFNTAtXFx1REU1OVxcdURFQzAtXFx1REVDOVxcdURGMzAtXFx1REYzOV18XFx1RDgwNltcXHVEQ0UwLVxcdURDRTlcXHVERDUwLVxcdURENTldfFxcdUQ4MDdbXFx1REM1MC1cXHVEQzU5XFx1REQ1MC1cXHVERDU5XFx1RERBMC1cXHVEREE5XXxcXHVEODFBW1xcdURFNjAtXFx1REU2OVxcdURGNTAtXFx1REY1OV18XFx1RDgzNVtcXHVERkNFLVxcdURGRkZdfFxcdUQ4MzhbXFx1REQ0MC1cXHVERDQ5XFx1REVGMC1cXHVERUY5XXxcXHVEODNBW1xcdURENTAtXFx1REQ1OV18XFx1RDgzRVtcXHVERkYwLVxcdURGRjldJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdObCcsXG4gICAgICAgICdhbGlhcyc6ICdMZXR0ZXJfTnVtYmVyJyxcbiAgICAgICAgJ2JtcCc6ICdcXHUxNkVFLVxcdTE2RjBcXHUyMTYwLVxcdTIxODJcXHUyMTg1LVxcdTIxODhcXHUzMDA3XFx1MzAyMS1cXHUzMDI5XFx1MzAzOC1cXHUzMDNBXFx1QTZFNi1cXHVBNkVGJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODAwW1xcdURENDAtXFx1REQ3NFxcdURGNDFcXHVERjRBXFx1REZEMS1cXHVERkQ1XXxcXHVEODA5W1xcdURDMDAtXFx1REM2RV0nXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ05vJyxcbiAgICAgICAgJ2FsaWFzJzogJ090aGVyX051bWJlcicsXG4gICAgICAgICdibXAnOiAnXFx4QjJcXHhCM1xceEI5XFx4QkMtXFx4QkVcXHUwOUY0LVxcdTA5RjlcXHUwQjcyLVxcdTBCNzdcXHUwQkYwLVxcdTBCRjJcXHUwQzc4LVxcdTBDN0VcXHUwRDU4LVxcdTBENUVcXHUwRDcwLVxcdTBENzhcXHUwRjJBLVxcdTBGMzNcXHUxMzY5LVxcdTEzN0NcXHUxN0YwLVxcdTE3RjlcXHUxOURBXFx1MjA3MFxcdTIwNzQtXFx1MjA3OVxcdTIwODAtXFx1MjA4OVxcdTIxNTAtXFx1MjE1RlxcdTIxODlcXHUyNDYwLVxcdTI0OUJcXHUyNEVBLVxcdTI0RkZcXHUyNzc2LVxcdTI3OTNcXHUyQ0ZEXFx1MzE5Mi1cXHUzMTk1XFx1MzIyMC1cXHUzMjI5XFx1MzI0OC1cXHUzMjRGXFx1MzI1MS1cXHUzMjVGXFx1MzI4MC1cXHUzMjg5XFx1MzJCMS1cXHUzMkJGXFx1QTgzMC1cXHVBODM1JyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODAwW1xcdUREMDctXFx1REQzM1xcdURENzUtXFx1REQ3OFxcdUREOEFcXHVERDhCXFx1REVFMS1cXHVERUZCXFx1REYyMC1cXHVERjIzXXxcXHVEODAyW1xcdURDNTgtXFx1REM1RlxcdURDNzktXFx1REM3RlxcdURDQTctXFx1RENBRlxcdURDRkItXFx1RENGRlxcdUREMTYtXFx1REQxQlxcdUREQkNcXHVEREJEXFx1RERDMC1cXHVERENGXFx1REREMi1cXHVEREZGXFx1REU0MC1cXHVERTQ4XFx1REU3RFxcdURFN0VcXHVERTlELVxcdURFOUZcXHVERUVCLVxcdURFRUZcXHVERjU4LVxcdURGNUZcXHVERjc4LVxcdURGN0ZcXHVERkE5LVxcdURGQUZdfFxcdUQ4MDNbXFx1RENGQS1cXHVEQ0ZGXFx1REU2MC1cXHVERTdFXFx1REYxRC1cXHVERjI2XFx1REY1MS1cXHVERjU0XFx1REZDNS1cXHVERkNCXXxcXHVEODA0W1xcdURDNTItXFx1REM2NVxcdURERTEtXFx1RERGNF18XFx1RDgwNVtcXHVERjNBXFx1REYzQl18XFx1RDgwNltcXHVEQ0VBLVxcdURDRjJdfFxcdUQ4MDdbXFx1REM1QS1cXHVEQzZDXFx1REZDMC1cXHVERkQ0XXxcXHVEODFBW1xcdURGNUItXFx1REY2MV18XFx1RDgxQltcXHVERTgwLVxcdURFOTZdfFxcdUQ4MzRbXFx1REVFMC1cXHVERUYzXFx1REY2MC1cXHVERjc4XXxcXHVEODNBW1xcdURDQzctXFx1RENDRl18XFx1RDgzQltcXHVEQzcxLVxcdURDQUJcXHVEQ0FELVxcdURDQUZcXHVEQ0IxLVxcdURDQjRcXHVERDAxLVxcdUREMkRcXHVERDJGLVxcdUREM0RdfFxcdUQ4M0NbXFx1REQwMC1cXHVERDBDXSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnUCcsXG4gICAgICAgICdhbGlhcyc6ICdQdW5jdHVhdGlvbicsXG4gICAgICAgICdibXAnOiAnIS0jJS1cXFxcKiwtXFxcXC86O1xcXFw/QFxcXFxbLVxcXFxdX1xcXFx7XFxcXH1cXHhBMVxceEE3XFx4QUJcXHhCNlxceEI3XFx4QkJcXHhCRlxcdTAzN0VcXHUwMzg3XFx1MDU1QS1cXHUwNTVGXFx1MDU4OVxcdTA1OEFcXHUwNUJFXFx1MDVDMFxcdTA1QzNcXHUwNUM2XFx1MDVGM1xcdTA1RjRcXHUwNjA5XFx1MDYwQVxcdTA2MENcXHUwNjBEXFx1MDYxQlxcdTA2MUVcXHUwNjFGXFx1MDY2QS1cXHUwNjZEXFx1MDZENFxcdTA3MDAtXFx1MDcwRFxcdTA3RjctXFx1MDdGOVxcdTA4MzAtXFx1MDgzRVxcdTA4NUVcXHUwOTY0XFx1MDk2NVxcdTA5NzBcXHUwOUZEXFx1MEE3NlxcdTBBRjBcXHUwQzc3XFx1MEM4NFxcdTBERjRcXHUwRTRGXFx1MEU1QVxcdTBFNUJcXHUwRjA0LVxcdTBGMTJcXHUwRjE0XFx1MEYzQS1cXHUwRjNEXFx1MEY4NVxcdTBGRDAtXFx1MEZENFxcdTBGRDlcXHUwRkRBXFx1MTA0QS1cXHUxMDRGXFx1MTBGQlxcdTEzNjAtXFx1MTM2OFxcdTE0MDBcXHUxNjZFXFx1MTY5QlxcdTE2OUNcXHUxNkVCLVxcdTE2RURcXHUxNzM1XFx1MTczNlxcdTE3RDQtXFx1MTdENlxcdTE3RDgtXFx1MTdEQVxcdTE4MDAtXFx1MTgwQVxcdTE5NDRcXHUxOTQ1XFx1MUExRVxcdTFBMUZcXHUxQUEwLVxcdTFBQTZcXHUxQUE4LVxcdTFBQURcXHUxQjVBLVxcdTFCNjBcXHUxQkZDLVxcdTFCRkZcXHUxQzNCLVxcdTFDM0ZcXHUxQzdFXFx1MUM3RlxcdTFDQzAtXFx1MUNDN1xcdTFDRDNcXHUyMDEwLVxcdTIwMjdcXHUyMDMwLVxcdTIwNDNcXHUyMDQ1LVxcdTIwNTFcXHUyMDUzLVxcdTIwNUVcXHUyMDdEXFx1MjA3RVxcdTIwOERcXHUyMDhFXFx1MjMwOC1cXHUyMzBCXFx1MjMyOVxcdTIzMkFcXHUyNzY4LVxcdTI3NzVcXHUyN0M1XFx1MjdDNlxcdTI3RTYtXFx1MjdFRlxcdTI5ODMtXFx1Mjk5OFxcdTI5RDgtXFx1MjlEQlxcdTI5RkNcXHUyOUZEXFx1MkNGOS1cXHUyQ0ZDXFx1MkNGRVxcdTJDRkZcXHUyRDcwXFx1MkUwMC1cXHUyRTJFXFx1MkUzMC1cXHUyRTRGXFx1MkU1MlxcdTMwMDEtXFx1MzAwM1xcdTMwMDgtXFx1MzAxMVxcdTMwMTQtXFx1MzAxRlxcdTMwMzBcXHUzMDNEXFx1MzBBMFxcdTMwRkJcXHVBNEZFXFx1QTRGRlxcdUE2MEQtXFx1QTYwRlxcdUE2NzNcXHVBNjdFXFx1QTZGMi1cXHVBNkY3XFx1QTg3NC1cXHVBODc3XFx1QThDRVxcdUE4Q0ZcXHVBOEY4LVxcdUE4RkFcXHVBOEZDXFx1QTkyRVxcdUE5MkZcXHVBOTVGXFx1QTlDMS1cXHVBOUNEXFx1QTlERVxcdUE5REZcXHVBQTVDLVxcdUFBNUZcXHVBQURFXFx1QUFERlxcdUFBRjBcXHVBQUYxXFx1QUJFQlxcdUZEM0VcXHVGRDNGXFx1RkUxMC1cXHVGRTE5XFx1RkUzMC1cXHVGRTUyXFx1RkU1NC1cXHVGRTYxXFx1RkU2M1xcdUZFNjhcXHVGRTZBXFx1RkU2QlxcdUZGMDEtXFx1RkYwM1xcdUZGMDUtXFx1RkYwQVxcdUZGMEMtXFx1RkYwRlxcdUZGMUFcXHVGRjFCXFx1RkYxRlxcdUZGMjBcXHVGRjNCLVxcdUZGM0RcXHVGRjNGXFx1RkY1QlxcdUZGNURcXHVGRjVGLVxcdUZGNjUnLFxuICAgICAgICAnYXN0cmFsJzogJ1xcdUQ4MDBbXFx1REQwMC1cXHVERDAyXFx1REY5RlxcdURGRDBdfFxcdUQ4MDFcXHVERDZGfFxcdUQ4MDJbXFx1REM1N1xcdUREMUZcXHVERDNGXFx1REU1MC1cXHVERTU4XFx1REU3RlxcdURFRjAtXFx1REVGNlxcdURGMzktXFx1REYzRlxcdURGOTktXFx1REY5Q118XFx1RDgwM1tcXHVERUFEXFx1REY1NS1cXHVERjU5XXxcXHVEODA0W1xcdURDNDctXFx1REM0RFxcdURDQkJcXHVEQ0JDXFx1RENCRS1cXHVEQ0MxXFx1REQ0MC1cXHVERDQzXFx1REQ3NFxcdURENzVcXHVEREM1LVxcdUREQzhcXHVERENEXFx1REREQlxcdUREREQtXFx1RERERlxcdURFMzgtXFx1REUzRFxcdURFQTldfFxcdUQ4MDVbXFx1REM0Qi1cXHVEQzRGXFx1REM1QVxcdURDNUJcXHVEQzVEXFx1RENDNlxcdUREQzEtXFx1REREN1xcdURFNDEtXFx1REU0M1xcdURFNjAtXFx1REU2Q1xcdURGM0MtXFx1REYzRV18XFx1RDgwNltcXHVEQzNCXFx1REQ0NC1cXHVERDQ2XFx1RERFMlxcdURFM0YtXFx1REU0NlxcdURFOUEtXFx1REU5Q1xcdURFOUUtXFx1REVBMl18XFx1RDgwN1tcXHVEQzQxLVxcdURDNDVcXHVEQzcwXFx1REM3MVxcdURFRjdcXHVERUY4XFx1REZGRl18XFx1RDgwOVtcXHVEQzcwLVxcdURDNzRdfFxcdUQ4MUFbXFx1REU2RVxcdURFNkZcXHVERUY1XFx1REYzNy1cXHVERjNCXFx1REY0NF18XFx1RDgxQltcXHVERTk3LVxcdURFOUFcXHVERkUyXXxcXHVEODJGXFx1REM5RnxcXHVEODM2W1xcdURFODctXFx1REU4Ql18XFx1RDgzQVtcXHVERDVFXFx1REQ1Rl0nXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ1BjJyxcbiAgICAgICAgJ2FsaWFzJzogJ0Nvbm5lY3Rvcl9QdW5jdHVhdGlvbicsXG4gICAgICAgICdibXAnOiAnX1xcdTIwM0ZcXHUyMDQwXFx1MjA1NFxcdUZFMzNcXHVGRTM0XFx1RkU0RC1cXHVGRTRGXFx1RkYzRidcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnUGQnLFxuICAgICAgICAnYWxpYXMnOiAnRGFzaF9QdW5jdHVhdGlvbicsXG4gICAgICAgICdibXAnOiAnXFxcXC1cXHUwNThBXFx1MDVCRVxcdTE0MDBcXHUxODA2XFx1MjAxMC1cXHUyMDE1XFx1MkUxN1xcdTJFMUFcXHUyRTNBXFx1MkUzQlxcdTJFNDBcXHUzMDFDXFx1MzAzMFxcdTMwQTBcXHVGRTMxXFx1RkUzMlxcdUZFNThcXHVGRTYzXFx1RkYwRCcsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgwM1xcdURFQUQnXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ1BlJyxcbiAgICAgICAgJ2FsaWFzJzogJ0Nsb3NlX1B1bmN0dWF0aW9uJyxcbiAgICAgICAgJ2JtcCc6ICdcXFxcKVxcXFxdXFxcXH1cXHUwRjNCXFx1MEYzRFxcdTE2OUNcXHUyMDQ2XFx1MjA3RVxcdTIwOEVcXHUyMzA5XFx1MjMwQlxcdTIzMkFcXHUyNzY5XFx1Mjc2QlxcdTI3NkRcXHUyNzZGXFx1Mjc3MVxcdTI3NzNcXHUyNzc1XFx1MjdDNlxcdTI3RTdcXHUyN0U5XFx1MjdFQlxcdTI3RURcXHUyN0VGXFx1Mjk4NFxcdTI5ODZcXHUyOTg4XFx1Mjk4QVxcdTI5OENcXHUyOThFXFx1Mjk5MFxcdTI5OTJcXHUyOTk0XFx1Mjk5NlxcdTI5OThcXHUyOUQ5XFx1MjlEQlxcdTI5RkRcXHUyRTIzXFx1MkUyNVxcdTJFMjdcXHUyRTI5XFx1MzAwOVxcdTMwMEJcXHUzMDBEXFx1MzAwRlxcdTMwMTFcXHUzMDE1XFx1MzAxN1xcdTMwMTlcXHUzMDFCXFx1MzAxRVxcdTMwMUZcXHVGRDNFXFx1RkUxOFxcdUZFMzZcXHVGRTM4XFx1RkUzQVxcdUZFM0NcXHVGRTNFXFx1RkU0MFxcdUZFNDJcXHVGRTQ0XFx1RkU0OFxcdUZFNUFcXHVGRTVDXFx1RkU1RVxcdUZGMDlcXHVGRjNEXFx1RkY1RFxcdUZGNjBcXHVGRjYzJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdQZicsXG4gICAgICAgICdhbGlhcyc6ICdGaW5hbF9QdW5jdHVhdGlvbicsXG4gICAgICAgICdibXAnOiAnXFx4QkJcXHUyMDE5XFx1MjAxRFxcdTIwM0FcXHUyRTAzXFx1MkUwNVxcdTJFMEFcXHUyRTBEXFx1MkUxRFxcdTJFMjEnXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ1BpJyxcbiAgICAgICAgJ2FsaWFzJzogJ0luaXRpYWxfUHVuY3R1YXRpb24nLFxuICAgICAgICAnYm1wJzogJ1xceEFCXFx1MjAxOFxcdTIwMUJcXHUyMDFDXFx1MjAxRlxcdTIwMzlcXHUyRTAyXFx1MkUwNFxcdTJFMDlcXHUyRTBDXFx1MkUxQ1xcdTJFMjAnXG4gICAgfSxcbiAgICB7XG4gICAgICAgICduYW1lJzogJ1BvJyxcbiAgICAgICAgJ2FsaWFzJzogJ090aGVyX1B1bmN0dWF0aW9uJyxcbiAgICAgICAgJ2JtcCc6ICchLSMlLVxcJ1xcXFwqLFxcXFwuXFxcXC86O1xcXFw/QFxcXFxcXHhBMVxceEE3XFx4QjZcXHhCN1xceEJGXFx1MDM3RVxcdTAzODdcXHUwNTVBLVxcdTA1NUZcXHUwNTg5XFx1MDVDMFxcdTA1QzNcXHUwNUM2XFx1MDVGM1xcdTA1RjRcXHUwNjA5XFx1MDYwQVxcdTA2MENcXHUwNjBEXFx1MDYxQlxcdTA2MUVcXHUwNjFGXFx1MDY2QS1cXHUwNjZEXFx1MDZENFxcdTA3MDAtXFx1MDcwRFxcdTA3RjctXFx1MDdGOVxcdTA4MzAtXFx1MDgzRVxcdTA4NUVcXHUwOTY0XFx1MDk2NVxcdTA5NzBcXHUwOUZEXFx1MEE3NlxcdTBBRjBcXHUwQzc3XFx1MEM4NFxcdTBERjRcXHUwRTRGXFx1MEU1QVxcdTBFNUJcXHUwRjA0LVxcdTBGMTJcXHUwRjE0XFx1MEY4NVxcdTBGRDAtXFx1MEZENFxcdTBGRDlcXHUwRkRBXFx1MTA0QS1cXHUxMDRGXFx1MTBGQlxcdTEzNjAtXFx1MTM2OFxcdTE2NkVcXHUxNkVCLVxcdTE2RURcXHUxNzM1XFx1MTczNlxcdTE3RDQtXFx1MTdENlxcdTE3RDgtXFx1MTdEQVxcdTE4MDAtXFx1MTgwNVxcdTE4MDctXFx1MTgwQVxcdTE5NDRcXHUxOTQ1XFx1MUExRVxcdTFBMUZcXHUxQUEwLVxcdTFBQTZcXHUxQUE4LVxcdTFBQURcXHUxQjVBLVxcdTFCNjBcXHUxQkZDLVxcdTFCRkZcXHUxQzNCLVxcdTFDM0ZcXHUxQzdFXFx1MUM3RlxcdTFDQzAtXFx1MUNDN1xcdTFDRDNcXHUyMDE2XFx1MjAxN1xcdTIwMjAtXFx1MjAyN1xcdTIwMzAtXFx1MjAzOFxcdTIwM0ItXFx1MjAzRVxcdTIwNDEtXFx1MjA0M1xcdTIwNDctXFx1MjA1MVxcdTIwNTNcXHUyMDU1LVxcdTIwNUVcXHUyQ0Y5LVxcdTJDRkNcXHUyQ0ZFXFx1MkNGRlxcdTJENzBcXHUyRTAwXFx1MkUwMVxcdTJFMDYtXFx1MkUwOFxcdTJFMEJcXHUyRTBFLVxcdTJFMTZcXHUyRTE4XFx1MkUxOVxcdTJFMUJcXHUyRTFFXFx1MkUxRlxcdTJFMkEtXFx1MkUyRVxcdTJFMzAtXFx1MkUzOVxcdTJFM0MtXFx1MkUzRlxcdTJFNDFcXHUyRTQzLVxcdTJFNEZcXHUyRTUyXFx1MzAwMS1cXHUzMDAzXFx1MzAzRFxcdTMwRkJcXHVBNEZFXFx1QTRGRlxcdUE2MEQtXFx1QTYwRlxcdUE2NzNcXHVBNjdFXFx1QTZGMi1cXHVBNkY3XFx1QTg3NC1cXHVBODc3XFx1QThDRVxcdUE4Q0ZcXHVBOEY4LVxcdUE4RkFcXHVBOEZDXFx1QTkyRVxcdUE5MkZcXHVBOTVGXFx1QTlDMS1cXHVBOUNEXFx1QTlERVxcdUE5REZcXHVBQTVDLVxcdUFBNUZcXHVBQURFXFx1QUFERlxcdUFBRjBcXHVBQUYxXFx1QUJFQlxcdUZFMTAtXFx1RkUxNlxcdUZFMTlcXHVGRTMwXFx1RkU0NVxcdUZFNDZcXHVGRTQ5LVxcdUZFNENcXHVGRTUwLVxcdUZFNTJcXHVGRTU0LVxcdUZFNTdcXHVGRTVGLVxcdUZFNjFcXHVGRTY4XFx1RkU2QVxcdUZFNkJcXHVGRjAxLVxcdUZGMDNcXHVGRjA1LVxcdUZGMDdcXHVGRjBBXFx1RkYwQ1xcdUZGMEVcXHVGRjBGXFx1RkYxQVxcdUZGMUJcXHVGRjFGXFx1RkYyMFxcdUZGM0NcXHVGRjYxXFx1RkY2NFxcdUZGNjUnLFxuICAgICAgICAnYXN0cmFsJzogJ1xcdUQ4MDBbXFx1REQwMC1cXHVERDAyXFx1REY5RlxcdURGRDBdfFxcdUQ4MDFcXHVERDZGfFxcdUQ4MDJbXFx1REM1N1xcdUREMUZcXHVERDNGXFx1REU1MC1cXHVERTU4XFx1REU3RlxcdURFRjAtXFx1REVGNlxcdURGMzktXFx1REYzRlxcdURGOTktXFx1REY5Q118XFx1RDgwM1tcXHVERjU1LVxcdURGNTldfFxcdUQ4MDRbXFx1REM0Ny1cXHVEQzREXFx1RENCQlxcdURDQkNcXHVEQ0JFLVxcdURDQzFcXHVERDQwLVxcdURENDNcXHVERDc0XFx1REQ3NVxcdUREQzUtXFx1RERDOFxcdUREQ0RcXHVERERCXFx1RERERC1cXHVERERGXFx1REUzOC1cXHVERTNEXFx1REVBOV18XFx1RDgwNVtcXHVEQzRCLVxcdURDNEZcXHVEQzVBXFx1REM1QlxcdURDNURcXHVEQ0M2XFx1RERDMS1cXHVEREQ3XFx1REU0MS1cXHVERTQzXFx1REU2MC1cXHVERTZDXFx1REYzQy1cXHVERjNFXXxcXHVEODA2W1xcdURDM0JcXHVERDQ0LVxcdURENDZcXHVEREUyXFx1REUzRi1cXHVERTQ2XFx1REU5QS1cXHVERTlDXFx1REU5RS1cXHVERUEyXXxcXHVEODA3W1xcdURDNDEtXFx1REM0NVxcdURDNzBcXHVEQzcxXFx1REVGN1xcdURFRjhcXHVERkZGXXxcXHVEODA5W1xcdURDNzAtXFx1REM3NF18XFx1RDgxQVtcXHVERTZFXFx1REU2RlxcdURFRjVcXHVERjM3LVxcdURGM0JcXHVERjQ0XXxcXHVEODFCW1xcdURFOTctXFx1REU5QVxcdURGRTJdfFxcdUQ4MkZcXHVEQzlGfFxcdUQ4MzZbXFx1REU4Ny1cXHVERThCXXxcXHVEODNBW1xcdURENUVcXHVERDVGXSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnUHMnLFxuICAgICAgICAnYWxpYXMnOiAnT3Blbl9QdW5jdHVhdGlvbicsXG4gICAgICAgICdibXAnOiAnXFxcXChcXFxcW1xcXFx7XFx1MEYzQVxcdTBGM0NcXHUxNjlCXFx1MjAxQVxcdTIwMUVcXHUyMDQ1XFx1MjA3RFxcdTIwOERcXHUyMzA4XFx1MjMwQVxcdTIzMjlcXHUyNzY4XFx1Mjc2QVxcdTI3NkNcXHUyNzZFXFx1Mjc3MFxcdTI3NzJcXHUyNzc0XFx1MjdDNVxcdTI3RTZcXHUyN0U4XFx1MjdFQVxcdTI3RUNcXHUyN0VFXFx1Mjk4M1xcdTI5ODVcXHUyOTg3XFx1Mjk4OVxcdTI5OEJcXHUyOThEXFx1Mjk4RlxcdTI5OTFcXHUyOTkzXFx1Mjk5NVxcdTI5OTdcXHUyOUQ4XFx1MjlEQVxcdTI5RkNcXHUyRTIyXFx1MkUyNFxcdTJFMjZcXHUyRTI4XFx1MkU0MlxcdTMwMDhcXHUzMDBBXFx1MzAwQ1xcdTMwMEVcXHUzMDEwXFx1MzAxNFxcdTMwMTZcXHUzMDE4XFx1MzAxQVxcdTMwMURcXHVGRDNGXFx1RkUxN1xcdUZFMzVcXHVGRTM3XFx1RkUzOVxcdUZFM0JcXHVGRTNEXFx1RkUzRlxcdUZFNDFcXHVGRTQzXFx1RkU0N1xcdUZFNTlcXHVGRTVCXFx1RkU1RFxcdUZGMDhcXHVGRjNCXFx1RkY1QlxcdUZGNUZcXHVGRjYyJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdTJyxcbiAgICAgICAgJ2FsaWFzJzogJ1N5bWJvbCcsXG4gICAgICAgICdibXAnOiAnXFxcXCRcXFxcKzwtPlxcXFxeYFxcXFx8flxceEEyLVxceEE2XFx4QThcXHhBOVxceEFDXFx4QUUtXFx4QjFcXHhCNFxceEI4XFx4RDdcXHhGN1xcdTAyQzItXFx1MDJDNVxcdTAyRDItXFx1MDJERlxcdTAyRTUtXFx1MDJFQlxcdTAyRURcXHUwMkVGLVxcdTAyRkZcXHUwMzc1XFx1MDM4NFxcdTAzODVcXHUwM0Y2XFx1MDQ4MlxcdTA1OEQtXFx1MDU4RlxcdTA2MDYtXFx1MDYwOFxcdTA2MEJcXHUwNjBFXFx1MDYwRlxcdTA2REVcXHUwNkU5XFx1MDZGRFxcdTA2RkVcXHUwN0Y2XFx1MDdGRVxcdTA3RkZcXHUwOUYyXFx1MDlGM1xcdTA5RkFcXHUwOUZCXFx1MEFGMVxcdTBCNzBcXHUwQkYzLVxcdTBCRkFcXHUwQzdGXFx1MEQ0RlxcdTBENzlcXHUwRTNGXFx1MEYwMS1cXHUwRjAzXFx1MEYxM1xcdTBGMTUtXFx1MEYxN1xcdTBGMUEtXFx1MEYxRlxcdTBGMzRcXHUwRjM2XFx1MEYzOFxcdTBGQkUtXFx1MEZDNVxcdTBGQzctXFx1MEZDQ1xcdTBGQ0VcXHUwRkNGXFx1MEZENS1cXHUwRkQ4XFx1MTA5RVxcdTEwOUZcXHUxMzkwLVxcdTEzOTlcXHUxNjZEXFx1MTdEQlxcdTE5NDBcXHUxOURFLVxcdTE5RkZcXHUxQjYxLVxcdTFCNkFcXHUxQjc0LVxcdTFCN0NcXHUxRkJEXFx1MUZCRi1cXHUxRkMxXFx1MUZDRC1cXHUxRkNGXFx1MUZERC1cXHUxRkRGXFx1MUZFRC1cXHUxRkVGXFx1MUZGRFxcdTFGRkVcXHUyMDQ0XFx1MjA1MlxcdTIwN0EtXFx1MjA3Q1xcdTIwOEEtXFx1MjA4Q1xcdTIwQTAtXFx1MjBCRlxcdTIxMDBcXHUyMTAxXFx1MjEwMy1cXHUyMTA2XFx1MjEwOFxcdTIxMDlcXHUyMTE0XFx1MjExNi1cXHUyMTE4XFx1MjExRS1cXHUyMTIzXFx1MjEyNVxcdTIxMjdcXHUyMTI5XFx1MjEyRVxcdTIxM0FcXHUyMTNCXFx1MjE0MC1cXHUyMTQ0XFx1MjE0QS1cXHUyMTREXFx1MjE0RlxcdTIxOEFcXHUyMThCXFx1MjE5MC1cXHUyMzA3XFx1MjMwQy1cXHUyMzI4XFx1MjMyQi1cXHUyNDI2XFx1MjQ0MC1cXHUyNDRBXFx1MjQ5Qy1cXHUyNEU5XFx1MjUwMC1cXHUyNzY3XFx1Mjc5NC1cXHUyN0M0XFx1MjdDNy1cXHUyN0U1XFx1MjdGMC1cXHUyOTgyXFx1Mjk5OS1cXHUyOUQ3XFx1MjlEQy1cXHUyOUZCXFx1MjlGRS1cXHUyQjczXFx1MkI3Ni1cXHUyQjk1XFx1MkI5Ny1cXHUyQkZGXFx1MkNFNS1cXHUyQ0VBXFx1MkU1MFxcdTJFNTFcXHUyRTgwLVxcdTJFOTlcXHUyRTlCLVxcdTJFRjNcXHUyRjAwLVxcdTJGRDVcXHUyRkYwLVxcdTJGRkJcXHUzMDA0XFx1MzAxMlxcdTMwMTNcXHUzMDIwXFx1MzAzNlxcdTMwMzdcXHUzMDNFXFx1MzAzRlxcdTMwOUJcXHUzMDlDXFx1MzE5MFxcdTMxOTFcXHUzMTk2LVxcdTMxOUZcXHUzMUMwLVxcdTMxRTNcXHUzMjAwLVxcdTMyMUVcXHUzMjJBLVxcdTMyNDdcXHUzMjUwXFx1MzI2MC1cXHUzMjdGXFx1MzI4QS1cXHUzMkIwXFx1MzJDMC1cXHUzM0ZGXFx1NERDMC1cXHU0REZGXFx1QTQ5MC1cXHVBNEM2XFx1QTcwMC1cXHVBNzE2XFx1QTcyMFxcdUE3MjFcXHVBNzg5XFx1QTc4QVxcdUE4MjgtXFx1QTgyQlxcdUE4MzYtXFx1QTgzOVxcdUFBNzctXFx1QUE3OVxcdUFCNUJcXHVBQjZBXFx1QUI2QlxcdUZCMjlcXHVGQkIyLVxcdUZCQzFcXHVGREZDXFx1RkRGRFxcdUZFNjJcXHVGRTY0LVxcdUZFNjZcXHVGRTY5XFx1RkYwNFxcdUZGMEJcXHVGRjFDLVxcdUZGMUVcXHVGRjNFXFx1RkY0MFxcdUZGNUNcXHVGRjVFXFx1RkZFMC1cXHVGRkU2XFx1RkZFOC1cXHVGRkVFXFx1RkZGQ1xcdUZGRkQnLFxuICAgICAgICAnYXN0cmFsJzogJ1xcdUQ4MDBbXFx1REQzNy1cXHVERDNGXFx1REQ3OS1cXHVERDg5XFx1REQ4Qy1cXHVERDhFXFx1REQ5MC1cXHVERDlDXFx1RERBMFxcdURERDAtXFx1RERGQ118XFx1RDgwMltcXHVEQzc3XFx1REM3OFxcdURFQzhdfFxcdUQ4MDVcXHVERjNGfFxcdUQ4MDdbXFx1REZENS1cXHVERkYxXXxcXHVEODFBW1xcdURGM0MtXFx1REYzRlxcdURGNDVdfFxcdUQ4MkZcXHVEQzlDfFxcdUQ4MzRbXFx1REMwMC1cXHVEQ0Y1XFx1REQwMC1cXHVERDI2XFx1REQyOS1cXHVERDY0XFx1REQ2QS1cXHVERDZDXFx1REQ4M1xcdUREODRcXHVERDhDLVxcdUREQTlcXHVEREFFLVxcdURERThcXHVERTAwLVxcdURFNDFcXHVERTQ1XFx1REYwMC1cXHVERjU2XXxcXHVEODM1W1xcdURFQzFcXHVERURCXFx1REVGQlxcdURGMTVcXHVERjM1XFx1REY0RlxcdURGNkZcXHVERjg5XFx1REZBOVxcdURGQzNdfFxcdUQ4MzZbXFx1REMwMC1cXHVEREZGXFx1REUzNy1cXHVERTNBXFx1REU2RC1cXHVERTc0XFx1REU3Ni1cXHVERTgzXFx1REU4NVxcdURFODZdfFxcdUQ4MzhbXFx1REQ0RlxcdURFRkZdfFxcdUQ4M0JbXFx1RENBQ1xcdURDQjBcXHVERDJFXFx1REVGMFxcdURFRjFdfFxcdUQ4M0NbXFx1REMwMC1cXHVEQzJCXFx1REMzMC1cXHVEQzkzXFx1RENBMC1cXHVEQ0FFXFx1RENCMS1cXHVEQ0JGXFx1RENDMS1cXHVEQ0NGXFx1RENEMS1cXHVEQ0Y1XFx1REQwRC1cXHVEREFEXFx1RERFNi1cXHVERTAyXFx1REUxMC1cXHVERTNCXFx1REU0MC1cXHVERTQ4XFx1REU1MFxcdURFNTFcXHVERTYwLVxcdURFNjVcXHVERjAwLVxcdURGRkZdfFxcdUQ4M0RbXFx1REMwMC1cXHVERUQ3XFx1REVFMC1cXHVERUVDXFx1REVGMC1cXHVERUZDXFx1REYwMC1cXHVERjczXFx1REY4MC1cXHVERkQ4XFx1REZFMC1cXHVERkVCXXxcXHVEODNFW1xcdURDMDAtXFx1REMwQlxcdURDMTAtXFx1REM0N1xcdURDNTAtXFx1REM1OVxcdURDNjAtXFx1REM4N1xcdURDOTAtXFx1RENBRFxcdURDQjBcXHVEQ0IxXFx1REQwMC1cXHVERDc4XFx1REQ3QS1cXHVERENCXFx1RERDRC1cXHVERTUzXFx1REU2MC1cXHVERTZEXFx1REU3MC1cXHVERTc0XFx1REU3OC1cXHVERTdBXFx1REU4MC1cXHVERTg2XFx1REU5MC1cXHVERUE4XFx1REVCMC1cXHVERUI2XFx1REVDMC1cXHVERUMyXFx1REVEMC1cXHVERUQ2XFx1REYwMC1cXHVERjkyXFx1REY5NC1cXHVERkNBXSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnU2MnLFxuICAgICAgICAnYWxpYXMnOiAnQ3VycmVuY3lfU3ltYm9sJyxcbiAgICAgICAgJ2JtcCc6ICdcXFxcJFxceEEyLVxceEE1XFx1MDU4RlxcdTA2MEJcXHUwN0ZFXFx1MDdGRlxcdTA5RjJcXHUwOUYzXFx1MDlGQlxcdTBBRjFcXHUwQkY5XFx1MEUzRlxcdTE3REJcXHUyMEEwLVxcdTIwQkZcXHVBODM4XFx1RkRGQ1xcdUZFNjlcXHVGRjA0XFx1RkZFMFxcdUZGRTFcXHVGRkU1XFx1RkZFNicsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgwN1tcXHVERkRELVxcdURGRTBdfFxcdUQ4MzhcXHVERUZGfFxcdUQ4M0JcXHVEQ0IwJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdTaycsXG4gICAgICAgICdhbGlhcyc6ICdNb2RpZmllcl9TeW1ib2wnLFxuICAgICAgICAnYm1wJzogJ1xcXFxeYFxceEE4XFx4QUZcXHhCNFxceEI4XFx1MDJDMi1cXHUwMkM1XFx1MDJEMi1cXHUwMkRGXFx1MDJFNS1cXHUwMkVCXFx1MDJFRFxcdTAyRUYtXFx1MDJGRlxcdTAzNzVcXHUwMzg0XFx1MDM4NVxcdTFGQkRcXHUxRkJGLVxcdTFGQzFcXHUxRkNELVxcdTFGQ0ZcXHUxRkRELVxcdTFGREZcXHUxRkVELVxcdTFGRUZcXHUxRkZEXFx1MUZGRVxcdTMwOUJcXHUzMDlDXFx1QTcwMC1cXHVBNzE2XFx1QTcyMFxcdUE3MjFcXHVBNzg5XFx1QTc4QVxcdUFCNUJcXHVBQjZBXFx1QUI2QlxcdUZCQjItXFx1RkJDMVxcdUZGM0VcXHVGRjQwXFx1RkZFMycsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdTbScsXG4gICAgICAgICdhbGlhcyc6ICdNYXRoX1N5bWJvbCcsXG4gICAgICAgICdibXAnOiAnXFxcXCs8LT5cXFxcfH5cXHhBQ1xceEIxXFx4RDdcXHhGN1xcdTAzRjZcXHUwNjA2LVxcdTA2MDhcXHUyMDQ0XFx1MjA1MlxcdTIwN0EtXFx1MjA3Q1xcdTIwOEEtXFx1MjA4Q1xcdTIxMThcXHUyMTQwLVxcdTIxNDRcXHUyMTRCXFx1MjE5MC1cXHUyMTk0XFx1MjE5QVxcdTIxOUJcXHUyMUEwXFx1MjFBM1xcdTIxQTZcXHUyMUFFXFx1MjFDRVxcdTIxQ0ZcXHUyMUQyXFx1MjFENFxcdTIxRjQtXFx1MjJGRlxcdTIzMjBcXHUyMzIxXFx1MjM3Q1xcdTIzOUItXFx1MjNCM1xcdTIzREMtXFx1MjNFMVxcdTI1QjdcXHUyNUMxXFx1MjVGOC1cXHUyNUZGXFx1MjY2RlxcdTI3QzAtXFx1MjdDNFxcdTI3QzctXFx1MjdFNVxcdTI3RjAtXFx1MjdGRlxcdTI5MDAtXFx1Mjk4MlxcdTI5OTktXFx1MjlEN1xcdTI5REMtXFx1MjlGQlxcdTI5RkUtXFx1MkFGRlxcdTJCMzAtXFx1MkI0NFxcdTJCNDctXFx1MkI0Q1xcdUZCMjlcXHVGRTYyXFx1RkU2NC1cXHVGRTY2XFx1RkYwQlxcdUZGMUMtXFx1RkYxRVxcdUZGNUNcXHVGRjVFXFx1RkZFMlxcdUZGRTktXFx1RkZFQycsXG4gICAgICAgICdhc3RyYWwnOiAnXFx1RDgzNVtcXHVERUMxXFx1REVEQlxcdURFRkJcXHVERjE1XFx1REYzNVxcdURGNEZcXHVERjZGXFx1REY4OVxcdURGQTlcXHVERkMzXXxcXHVEODNCW1xcdURFRjBcXHVERUYxXSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnU28nLFxuICAgICAgICAnYWxpYXMnOiAnT3RoZXJfU3ltYm9sJyxcbiAgICAgICAgJ2JtcCc6ICdcXHhBNlxceEE5XFx4QUVcXHhCMFxcdTA0ODJcXHUwNThEXFx1MDU4RVxcdTA2MEVcXHUwNjBGXFx1MDZERVxcdTA2RTlcXHUwNkZEXFx1MDZGRVxcdTA3RjZcXHUwOUZBXFx1MEI3MFxcdTBCRjMtXFx1MEJGOFxcdTBCRkFcXHUwQzdGXFx1MEQ0RlxcdTBENzlcXHUwRjAxLVxcdTBGMDNcXHUwRjEzXFx1MEYxNS1cXHUwRjE3XFx1MEYxQS1cXHUwRjFGXFx1MEYzNFxcdTBGMzZcXHUwRjM4XFx1MEZCRS1cXHUwRkM1XFx1MEZDNy1cXHUwRkNDXFx1MEZDRVxcdTBGQ0ZcXHUwRkQ1LVxcdTBGRDhcXHUxMDlFXFx1MTA5RlxcdTEzOTAtXFx1MTM5OVxcdTE2NkRcXHUxOTQwXFx1MTlERS1cXHUxOUZGXFx1MUI2MS1cXHUxQjZBXFx1MUI3NC1cXHUxQjdDXFx1MjEwMFxcdTIxMDFcXHUyMTAzLVxcdTIxMDZcXHUyMTA4XFx1MjEwOVxcdTIxMTRcXHUyMTE2XFx1MjExN1xcdTIxMUUtXFx1MjEyM1xcdTIxMjVcXHUyMTI3XFx1MjEyOVxcdTIxMkVcXHUyMTNBXFx1MjEzQlxcdTIxNEFcXHUyMTRDXFx1MjE0RFxcdTIxNEZcXHUyMThBXFx1MjE4QlxcdTIxOTUtXFx1MjE5OVxcdTIxOUMtXFx1MjE5RlxcdTIxQTFcXHUyMUEyXFx1MjFBNFxcdTIxQTVcXHUyMUE3LVxcdTIxQURcXHUyMUFGLVxcdTIxQ0RcXHUyMUQwXFx1MjFEMVxcdTIxRDNcXHUyMUQ1LVxcdTIxRjNcXHUyMzAwLVxcdTIzMDdcXHUyMzBDLVxcdTIzMUZcXHUyMzIyLVxcdTIzMjhcXHUyMzJCLVxcdTIzN0JcXHUyMzdELVxcdTIzOUFcXHUyM0I0LVxcdTIzREJcXHUyM0UyLVxcdTI0MjZcXHUyNDQwLVxcdTI0NEFcXHUyNDlDLVxcdTI0RTlcXHUyNTAwLVxcdTI1QjZcXHUyNUI4LVxcdTI1QzBcXHUyNUMyLVxcdTI1RjdcXHUyNjAwLVxcdTI2NkVcXHUyNjcwLVxcdTI3NjdcXHUyNzk0LVxcdTI3QkZcXHUyODAwLVxcdTI4RkZcXHUyQjAwLVxcdTJCMkZcXHUyQjQ1XFx1MkI0NlxcdTJCNEQtXFx1MkI3M1xcdTJCNzYtXFx1MkI5NVxcdTJCOTctXFx1MkJGRlxcdTJDRTUtXFx1MkNFQVxcdTJFNTBcXHUyRTUxXFx1MkU4MC1cXHUyRTk5XFx1MkU5Qi1cXHUyRUYzXFx1MkYwMC1cXHUyRkQ1XFx1MkZGMC1cXHUyRkZCXFx1MzAwNFxcdTMwMTJcXHUzMDEzXFx1MzAyMFxcdTMwMzZcXHUzMDM3XFx1MzAzRVxcdTMwM0ZcXHUzMTkwXFx1MzE5MVxcdTMxOTYtXFx1MzE5RlxcdTMxQzAtXFx1MzFFM1xcdTMyMDAtXFx1MzIxRVxcdTMyMkEtXFx1MzI0N1xcdTMyNTBcXHUzMjYwLVxcdTMyN0ZcXHUzMjhBLVxcdTMyQjBcXHUzMkMwLVxcdTMzRkZcXHU0REMwLVxcdTRERkZcXHVBNDkwLVxcdUE0QzZcXHVBODI4LVxcdUE4MkJcXHVBODM2XFx1QTgzN1xcdUE4MzlcXHVBQTc3LVxcdUFBNzlcXHVGREZEXFx1RkZFNFxcdUZGRThcXHVGRkVEXFx1RkZFRVxcdUZGRkNcXHVGRkZEJyxcbiAgICAgICAgJ2FzdHJhbCc6ICdcXHVEODAwW1xcdUREMzctXFx1REQzRlxcdURENzktXFx1REQ4OVxcdUREOEMtXFx1REQ4RVxcdUREOTAtXFx1REQ5Q1xcdUREQTBcXHVEREQwLVxcdURERkNdfFxcdUQ4MDJbXFx1REM3N1xcdURDNzhcXHVERUM4XXxcXHVEODA1XFx1REYzRnxcXHVEODA3W1xcdURGRDUtXFx1REZEQ1xcdURGRTEtXFx1REZGMV18XFx1RDgxQVtcXHVERjNDLVxcdURGM0ZcXHVERjQ1XXxcXHVEODJGXFx1REM5Q3xcXHVEODM0W1xcdURDMDAtXFx1RENGNVxcdUREMDAtXFx1REQyNlxcdUREMjktXFx1REQ2NFxcdURENkEtXFx1REQ2Q1xcdUREODNcXHVERDg0XFx1REQ4Qy1cXHVEREE5XFx1RERBRS1cXHVEREU4XFx1REUwMC1cXHVERTQxXFx1REU0NVxcdURGMDAtXFx1REY1Nl18XFx1RDgzNltcXHVEQzAwLVxcdURERkZcXHVERTM3LVxcdURFM0FcXHVERTZELVxcdURFNzRcXHVERTc2LVxcdURFODNcXHVERTg1XFx1REU4Nl18XFx1RDgzOFxcdURENEZ8XFx1RDgzQltcXHVEQ0FDXFx1REQyRV18XFx1RDgzQ1tcXHVEQzAwLVxcdURDMkJcXHVEQzMwLVxcdURDOTNcXHVEQ0EwLVxcdURDQUVcXHVEQ0IxLVxcdURDQkZcXHVEQ0MxLVxcdURDQ0ZcXHVEQ0QxLVxcdURDRjVcXHVERDBELVxcdUREQURcXHVEREU2LVxcdURFMDJcXHVERTEwLVxcdURFM0JcXHVERTQwLVxcdURFNDhcXHVERTUwXFx1REU1MVxcdURFNjAtXFx1REU2NVxcdURGMDAtXFx1REZGQV18XFx1RDgzRFtcXHVEQzAwLVxcdURFRDdcXHVERUUwLVxcdURFRUNcXHVERUYwLVxcdURFRkNcXHVERjAwLVxcdURGNzNcXHVERjgwLVxcdURGRDhcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REMwMC1cXHVEQzBCXFx1REMxMC1cXHVEQzQ3XFx1REM1MC1cXHVEQzU5XFx1REM2MC1cXHVEQzg3XFx1REM5MC1cXHVEQ0FEXFx1RENCMFxcdURDQjFcXHVERDAwLVxcdURENzhcXHVERDdBLVxcdUREQ0JcXHVERENELVxcdURFNTNcXHVERTYwLVxcdURFNkRcXHVERTcwLVxcdURFNzRcXHVERTc4LVxcdURFN0FcXHVERTgwLVxcdURFODZcXHVERTkwLVxcdURFQThcXHVERUIwLVxcdURFQjZcXHVERUMwLVxcdURFQzJcXHVERUQwLVxcdURFRDZcXHVERjAwLVxcdURGOTJcXHVERjk0LVxcdURGQ0FdJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdaJyxcbiAgICAgICAgJ2FsaWFzJzogJ1NlcGFyYXRvcicsXG4gICAgICAgICdibXAnOiAnIFxceEEwXFx1MTY4MFxcdTIwMDAtXFx1MjAwQVxcdTIwMjhcXHUyMDI5XFx1MjAyRlxcdTIwNUZcXHUzMDAwJ1xuICAgIH0sXG4gICAge1xuICAgICAgICAnbmFtZSc6ICdabCcsXG4gICAgICAgICdhbGlhcyc6ICdMaW5lX1NlcGFyYXRvcicsXG4gICAgICAgICdibXAnOiAnXFx1MjAyOCdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnWnAnLFxuICAgICAgICAnYWxpYXMnOiAnUGFyYWdyYXBoX1NlcGFyYXRvcicsXG4gICAgICAgICdibXAnOiAnXFx1MjAyOSdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgJ25hbWUnOiAnWnMnLFxuICAgICAgICAnYWxpYXMnOiAnU3BhY2VfU2VwYXJhdG9yJyxcbiAgICAgICAgJ2JtcCc6ICcgXFx4QTBcXHUxNjgwXFx1MjAwMC1cXHUyMDBBXFx1MjAyRlxcdTIwNUZcXHUzMDAwJ1xuICAgIH1cbl07XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucGFyc2UgPSB2b2lkIDA7XG5mdW5jdGlvbiBkZWNvZGUocywgc2VwID0gJzsnKSB7XG4gICAgcyA9IHMucmVwbGFjZSgvXFxuL2csICcnKTtcbiAgICBsZXQgcG9zID0gMDtcbiAgICBjb25zdCByZWNvcmRzID0gWycnXTtcbiAgICB3aGlsZSAocG9zIDwgcy5sZW5ndGgpIHtcbiAgICAgICAgc3dpdGNoIChzW3Bvc10pIHtcbiAgICAgICAgICAgIGNhc2UgJ1xcXFwnOlxuICAgICAgICAgICAgICAgIHBvcysrO1xuICAgICAgICAgICAgICAgIHJlY29yZHNbMF0gKz0gc1twb3NdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBzZXA6XG4gICAgICAgICAgICAgICAgcmVjb3Jkcy51bnNoaWZ0KCcnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmVjb3Jkc1swXSArPSBzW3Bvc107XG4gICAgICAgIH1cbiAgICAgICAgcG9zKys7XG4gICAgfVxuICAgIHJldHVybiByZWNvcmRzLnJldmVyc2UoKS5maWx0ZXIocmVjb3JkID0+IHJlY29yZCk7XG59XG5jb25zdCBwcmVmaXhlcyA9IHtcbiAgICBmaWxlRGlyZWN0b3J5OiAnamFicmVmLW1ldGE6IGZpbGVEaXJlY3Rvcnk6JyxcbiAgICBncm91cHN2ZXJzaW9uOiAnamFicmVmLW1ldGE6IGdyb3Vwc3ZlcnNpb246JyxcbiAgICBncm91cHN0cmVlOiAnamFicmVmLW1ldGE6IGdyb3Vwc3RyZWU6JyxcbiAgICBncm91cGluZzogJ2phYnJlZi1tZXRhOiBncm91cGluZzonLFxufTtcbi8qKlxuICogSW1wb3J0IHRoZSBKYWJSZWYgZ3JvdXBzIGZyb20gdGhlIGBAc3RyaW5nYCBjb21tZW50cyBpbiB3aGljaCB0aGV5IHdlcmUgc3RvcmVkLiBZb3Ugd291bGQgdHlwaWNhbGx5IHBhc3MgdGhlIGNvbW1lbnRzIHBhcnNlZCBieSBbW2JpYnRleC5wYXJzZV1dIGluIGhlcmUuXG4gKlxuICogSmFiUmVmIGtub3dzIHNldmVyYWwgZ3JvdXAgdHlwZXMsIGFuZCB0aGlzIHBhcnNlciBwYXJzZXMgbW9zdCwgYnV0IG5vdCBhbGwgb2YgdGhlbTpcbiAqXG4gKiAqIGluZGVwZW5kZW50IGdyb3VwOiB0aGUga2V5cyBsaXN0ZWQgaW4gdGhlIGdyb3VwIGFyZSB0aGUgZW50cmllcyB0aGF0IGFyZSBjb25zaWRlcmVkIHRvIGJlbG9uZyB0byBpdFxuICogKiBpbnRlcnNlY3Rpb246IHRoZSBrZXlzIGxpc3RlZCBpbiB0aGUgZ3JvdXAgYXJlIGNvbnNpZGVyZWQgdG8gYmVsb25nIHRvIHRoZSBncm91cCBpZiB0aGV5J3JlIGFsc28gaW4gdGhlIHBhcmVudCBncm91cFxuICogKiB1bmlvbjogdGhlIGtleXMgbGlzdGVkIGluIHRoZSBncm91cCBhcmUgY29uc2lkZXJlZCB0byBiZWxvbmcgdG8gdGhlIGdyb3VwLCBhbmQgYWxzbyB0aGUga2V5cyB0aGF0IGFyZSBpbiB0aGUgcGFyZW50IGdyb3VwXG4gKiAqIHF1ZXJ5OiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGFyc2VyXG4gKi9cbmZ1bmN0aW9uIHBhcnNlKGNvbW1lbnRzKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICByb290OiBbXSxcbiAgICAgICAgZ3JvdXBzOiB7fSxcbiAgICAgICAgZmlsZURpcmVjdG9yeTogJycsXG4gICAgICAgIHZlcnNpb246ICcnLFxuICAgIH07XG4gICAgY29uc3QgbGV2ZWxzID0gW107XG4gICAgY29uc3QgZGVjb2RlZCA9IHtcbiAgICAgICAgZmlsZURpcmVjdG9yeTogbnVsbCxcbiAgICAgICAgZ3JvdXBzdmVyc2lvbjogbnVsbCxcbiAgICAgICAgZ3JvdXBzdHJlZTogbnVsbCxcbiAgICAgICAgZ3JvdXBpbmc6IG51bGwsXG4gICAgfTtcbiAgICBmb3IgKGNvbnN0IGNvbW1lbnQgb2YgY29tbWVudHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBbbWV0YSwgcHJlZml4XSBvZiBPYmplY3QuZW50cmllcyhwcmVmaXhlcykpIHtcbiAgICAgICAgICAgIGlmIChjb21tZW50LnN0YXJ0c1dpdGgocHJlZml4KSkge1xuICAgICAgICAgICAgICAgIGRlY29kZWRbbWV0YV0gPSBkZWNvZGUoY29tbWVudC5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJlc3VsdC52ZXJzaW9uID0gZGVjb2RlZC5ncm91cHN2ZXJzaW9uICYmIGRlY29kZWQuZ3JvdXBzdmVyc2lvblswXTtcbiAgICByZXN1bHQuZmlsZURpcmVjdG9yeSA9IGRlY29kZWQuZmlsZURpcmVjdG9yeSAmJiBkZWNvZGVkLmZpbGVEaXJlY3RvcnlbMF07XG4gICAgZm9yIChjb25zdCB0cmVlIG9mIFsnZ3JvdXBzdHJlZScsICdncm91cGluZyddKSB7XG4gICAgICAgIGlmICghZGVjb2RlZFt0cmVlXSlcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBmb3IgKGNvbnN0IGVuY29kZWQgb2YgZGVjb2RlZFt0cmVlXSkge1xuICAgICAgICAgICAgY29uc3QgZmllbGRzID0gZGVjb2RlKGVuY29kZWQpO1xuICAgICAgICAgICAgY29uc3QgbGV2ZWxfdHlwZV9uYW1lID0gZGVjb2RlKGZpZWxkcy5zaGlmdCgpLCAnOicpO1xuICAgICAgICAgICAgY29uc3QgbSA9IC9eKFswLTldKykgKC4rKS8uZXhlYyhsZXZlbF90eXBlX25hbWVbMF0pO1xuICAgICAgICAgICAgaWYgKCFtKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY29uc3QgbGV2ZWwgPSBwYXJzZUludChtWzFdKTtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBtWzJdOyAvLyB0ZXN0IGZvciBTdGF0aWNHcm91cD9cbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnQWxsRW50cmllc0dyb3VwJylcbiAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gcm9vdFxuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGxldmVsX3R5cGVfbmFtZVsxXTtcbiAgICAgICAgICAgIGNvbnN0IGludGVyc2VjdGlvbiA9IGRlY29kZShmaWVsZHMuc2hpZnQoKSlbMF07XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gdHJlZSA9PT0gJ2dyb3VwaW5nJyA/IFtdIDogZmllbGRzLm1hcChmaWVsZCA9PiBkZWNvZGUoZmllbGQpWzBdKTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwID0ge1xuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgZW50cmllczoga2V5cyxcbiAgICAgICAgICAgICAgICBncm91cHM6IFtdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlc3VsdC5ncm91cHNbbmFtZV0gPSByZXN1bHQuZ3JvdXBzW25hbWVdIHx8IGdyb3VwO1xuICAgICAgICAgICAgaWYgKGxldmVscy5sZW5ndGggPCBsZXZlbCkge1xuICAgICAgICAgICAgICAgIGxldmVscy5wdXNoKGdyb3VwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldmVsc1tsZXZlbCAtIDFdID0gZ3JvdXA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGV2ZWwgPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucm9vdC5wdXNoKGdyb3VwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGxldmVsc1tsZXZlbCAtIDJdO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoaW50ZXJzZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJzAnOiAvLyBpbmRlcGVuZGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJzEnOiAvLyBpbnRlcnNlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwLmVudHJpZXMgPSBncm91cC5lbnRyaWVzLmZpbHRlcihrZXkgPT4gcGFyZW50LmVudHJpZXMuaW5jbHVkZXMoa2V5KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnMic6IC8vIHVuaW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBncm91cC5lbnRyaWVzID0gZ3JvdXAuZW50cmllcy5jb25jYXQocGFyZW50LmVudHJpZXMuZmlsdGVyKGtleSA9PiAhZ3JvdXAuZW50cmllcy5pbmNsdWRlcyhrZXkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV2ZWxzW2xldmVsIC0gMl0uZ3JvdXBzLnB1c2goZ3JvdXApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1qYWJyZWYuanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmphYnJlZiA9IGV4cG9ydHMuY2h1bmtlciA9IGV4cG9ydHMuYXN0ID0gZXhwb3J0cy5wYXJzZSA9IHZvaWQgMDtcbmNvbnN0IGJpYnRleCA9IHJlcXVpcmUoXCIuL2dyYW1tYXJcIik7XG5jb25zdCBjaHVua2VyXzEgPSByZXF1aXJlKFwiLi9jaHVua2VyXCIpO1xuY29uc3QgdW5pY29kZTJsYXRleF8xID0gcmVxdWlyZShcInVuaWNvZGUybGF0ZXhcIik7XG5jbGFzcyBQYXJzZXJFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBub2RlKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpOyAvLyAnRXJyb3InIGJyZWFrcyBwcm90b3R5cGUgY2hhaW4gaGVyZVxuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgbmV3LnRhcmdldC5wcm90b3R5cGUpOyAvLyByZXN0b3JlIHByb3RvdHlwZSBjaGFpblxuICAgICAgICB0aGlzLm5hbWUgPSB0aGlzLmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgfVxufVxuY2xhc3MgVGVYRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZSwgbm9kZSwgdGV4dCkge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTsgLy8gJ0Vycm9yJyBicmVha3MgcHJvdG90eXBlIGNoYWluIGhlcmVcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIG5ldy50YXJnZXQucHJvdG90eXBlKTsgLy8gcmVzdG9yZSBwcm90b3R5cGUgY2hhaW5cbiAgICAgICAgdGhpcy5uYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgICAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgICAgICB0aGlzLnRleHQgPSB0ZXh0O1xuICAgIH1cbn1cbmNvbnN0IGNoYXJDYXRlZ29yaWVzID0gcmVxdWlyZShcInhyZWdleHAvdG9vbHMvb3V0cHV0L2NhdGVnb3JpZXNcIik7XG5jb25zdCBjaGFyQ2xhc3MgPSB7XG4gICAgTHU6IGNoYXJDYXRlZ29yaWVzLmZpbHRlcihjYXQgPT4gWydVcHBlcmNhc2VfTGV0dGVyJywgJ1RpdGxlY2FzZV9MZXR0ZXInXS5pbmNsdWRlcyhjYXQuYWxpYXMpKS5tYXAoY2F0ID0+IGNhdC5ibXApLmpvaW4oJycpLFxuICAgIExsOiBjaGFyQ2F0ZWdvcmllcy5maW5kKGNhdCA9PiBjYXQuYWxpYXMgPT09ICdMb3dlcmNhc2VfTGV0dGVyJykuYm1wLFxuICAgIExub3RMdTogY2hhckNhdGVnb3JpZXMuZmlsdGVyKGNhdCA9PiBbJ0xvd2VyY2FzZV9MZXR0ZXInLCAnTW9kaWZpZXJfTGV0dGVyJywgJ090aGVyX0xldHRlcicsICdOb25zcGFjaW5nX01hcmsnLCAnU3BhY2luZ19NYXJrJywgJ0RlY2ltYWxfTnVtYmVyJywgJ0xldHRlcl9OdW1iZXInXS5pbmNsdWRlcyhjYXQuYWxpYXMpKS5tYXAoY2F0ID0+IGNhdC5ibXApLmpvaW4oJycpLFxuICAgIFA6IGNoYXJDYXRlZ29yaWVzLmZpbmQoY2F0ID0+IGNhdC5hbGlhcyA9PT0gJ1B1bmN0dWF0aW9uJykuYm1wLFxuICAgIEw6IGNoYXJDYXRlZ29yaWVzLmZpbmQoY2F0ID0+IGNhdC5hbGlhcyA9PT0gJ0xldHRlcicpLmJtcCxcbiAgICBOOiBjaGFyQ2F0ZWdvcmllcy5maWx0ZXIoY2F0ID0+IFsnRGVjaW1hbF9OdW1iZXInLCAnTGV0dGVyX051bWJlciddLmluY2x1ZGVzKGNhdC5hbGlhcykpLm1hcChjYXQgPT4gY2F0LmJtcCkuam9pbignJyksXG4gICAgQWxwaGFOdW06IGNoYXJDYXRlZ29yaWVzLmZpbHRlcihjYXQgPT4gWydMZXR0ZXInLCAnRGVjaW1hbF9OdW1iZXInLCAnTGV0dGVyX051bWJlciddLmluY2x1ZGVzKGNhdC5hbGlhcykpLm1hcChjYXQgPT4gY2F0LmJtcCkuam9pbignJyksXG4gICAgTEM6IGNoYXJDYXRlZ29yaWVzLmZpbmQoY2F0ID0+IGNhdC5hbGlhcyA9PT0gJ0Nhc2VkX0xldHRlcicpLmJtcCxcbn07XG5jb25zdCBtYXJrZXIgPSB7XG4gICAgYW5kOiAnXFx1MDAwMScsXG4gICAgY29tbWE6ICdcXHUwMDAyJyxcbiAgICBzcGFjZTogJ1xcdTAwMDMnLFxuICAgIGxpdGVyYWw6ICdcXHUwMDA0JyxcbiAgICBtYXJrdXA6ICdcXHUwMDA1JyxcbiAgICByZToge1xuICAgICAgICBhbmQ6IC8uLyxcbiAgICAgICAgY29tbWE6IC8uLyxcbiAgICAgICAgc3BhY2U6IC8uLyxcbiAgICAgICAgbGl0ZXJhbDogLy4vLFxuICAgICAgICBsaXRlcmFsTmFtZTogLy4vLFxuICAgIH0sXG4gICAgY2xlYW4ocykge1xuICAgICAgICByZXR1cm4gcy5yZXBsYWNlKG1hcmtlci5yZS5zcGFjZSwgJyAnKS5yZXBsYWNlKG1hcmtlci5yZS5jb21tYSwgJywgJykucmVwbGFjZShtYXJrZXIucmUubGl0ZXJhbCwgJycpO1xuICAgIH0sXG59O1xubWFya2VyLnJlID0ge1xuICAgIGFuZDogbmV3IFJlZ0V4cChtYXJrZXIuYW5kLCAnZycpLFxuICAgIGNvbW1hOiBuZXcgUmVnRXhwKG1hcmtlci5jb21tYSwgJ2cnKSxcbiAgICBzcGFjZTogbmV3IFJlZ0V4cChtYXJrZXIuc3BhY2UsICdnJyksXG4gICAgbGl0ZXJhbDogbmV3IFJlZ0V4cChtYXJrZXIubGl0ZXJhbCwgJ2cnKSxcbiAgICBsaXRlcmFsTmFtZTogbmV3IFJlZ0V4cChgXiR7bWFya2VyLmxpdGVyYWx9KFteJHttYXJrZXIubGl0ZXJhbH1dKikke21hcmtlci5saXRlcmFsfSRgKSxcbn07XG5jb25zdCBwcmVzZXJ2ZUNhc2UgPSB7XG4gICAgbGVhZGluZ0NhcDogbmV3IFJlZ0V4cChgXlske2NoYXJDbGFzcy5MdX1dWyR7Y2hhckNsYXNzLkxub3RMdX1dK1ske2NoYXJDbGFzcy5QfV0/JGApLFxuICAgIGFsbENhcHM6IG5ldyBSZWdFeHAoYF5bJHtjaGFyQ2xhc3MuTHV9JHtjaGFyQ2xhc3MuTn1dezIsfSRgKSxcbiAgICBhbGxMb3dlcjogbmV3IFJlZ0V4cChgXlske2NoYXJDbGFzcy5MbH0ke2NoYXJDbGFzcy5OfV17Mix9JGApLFxuICAgIGpvaW5lZDogbmV3IFJlZ0V4cChgXlske2NoYXJDbGFzcy5MdX1dWyR7Y2hhckNsYXNzLkxub3RMdX1dKihbLStdWyR7Y2hhckNsYXNzLkx9JHtjaGFyQ2xhc3MuTn1dKykqWyR7Y2hhckNsYXNzLlB9XSokYCksXG4gICAgaGFzVXBwZXI6IG5ldyBSZWdFeHAoYFske2NoYXJDbGFzcy5MdX1dYCksXG4gICAgaGFzTG93ZXI6IG5ldyBSZWdFeHAoYFske2NoYXJDbGFzcy5MbH1dYCksXG4gICAgaXNOdW1iZXI6IC9eWzAtOV0rJC8sXG4gICAgaGFzQWxwaGE6IG5ldyBSZWdFeHAoYFske2NoYXJDbGFzcy5MfV1gKSxcbiAgICBoYXNBbHBoYU51bTogbmV3IFJlZ0V4cChgWyR7Y2hhckNsYXNzLkFscGhhTnVtfV1gKSxcbiAgICBub3RBbHBoYU51bTogbmV3IFJlZ0V4cChgW14ke2NoYXJDbGFzcy5BbHBoYU51bX1dYCwgJ2cnKSxcbiAgICBzZW50ZW5jZVN0YXJ0OiBuZXcgUmVnRXhwKGAoXnwoW1xcdTIwMTQ6PyEuXVxcXFxzKykpWyR7Y2hhckNsYXNzLkx1fV1gLCAnZycpLFxuICAgIG1hcmt1cDogLzxcXC8/c3BhbltePl0qPi9nLFxuICAgIGFjcm9ueW06IG5ldyBSZWdFeHAoYC4qXFxcXC4ke21hcmtlci5tYXJrdXB9Klske2NoYXJDbGFzcy5MdX1dJHttYXJrZXIubWFya3VwfSpcXFxcLiRgKSxcbiAgICBub3RDYXNlU2Vuc2l0aXZlOiBuZXcgUmVnRXhwKGBbXiR7Y2hhckNsYXNzLkxDfV1gKSxcbiAgICBpc0Nhc2VTZW5zaXRpdmU6IG5ldyBSZWdFeHAoYFske2NoYXJDbGFzcy5MQ31dYCksXG4gICAgcXVvdGVkOiAvKFwiW15cIl0rXCIpfCjigJxbXuKAnF0r4oCcKS9nLFxufTtcbmNvbnN0IGZpZWxkcyA9IHtcbiAgICBjcmVhdG9yOiBbXG4gICAgICAgICdhdXRob3InLFxuICAgICAgICAnYm9va2F1dGhvcicsXG4gICAgICAgICdjb2xsYWJvcmF0b3InLFxuICAgICAgICAnY29tbWVudGF0b3InLFxuICAgICAgICAnZGlyZWN0b3InLFxuICAgICAgICAnZWRpdG9yJyxcbiAgICAgICAgJ2VkaXRvcmEnLFxuICAgICAgICAnZWRpdG9yYicsXG4gICAgICAgICdlZGl0b3JzJyxcbiAgICAgICAgJ2hvbGRlcicsXG4gICAgICAgICdzY3JpcHR3cml0ZXInLFxuICAgICAgICAndHJhbnNsYXRvcicsXG4gICAgXSxcbiAgICB0aXRsZTogW1xuICAgICAgICAndGl0bGUnLFxuICAgICAgICAnc2VyaWVzJyxcbiAgICAgICAgJ3Nob3J0dGl0bGUnLFxuICAgICAgICAnYm9va3RpdGxlJyxcbiAgICAgICAgJ3R5cGUnLFxuICAgICAgICAnb3JpZ3RpdGxlJyxcbiAgICAgICAgJ21haW50aXRsZScsXG4gICAgICAgICdldmVudHRpdGxlJyxcbiAgICBdLFxuICAgIHVubmVzdDogW1xuICAgICAgICAncHVibGlzaGVyJyxcbiAgICAgICAgJ2xvY2F0aW9uJyxcbiAgICBdLFxuICAgIHZlcmJhdGltOiBbXG4gICAgICAgICd1cmwnLFxuICAgICAgICAnZG9pJyxcbiAgICAgICAgJ2ZpbGUnLFxuICAgICAgICAnZmlsZXMnLFxuICAgICAgICAnZXByaW50JyxcbiAgICAgICAgJ3ZlcmJhJyxcbiAgICAgICAgJ3ZlcmJiJyxcbiAgICAgICAgJ3ZlcmJjJyxcbiAgICAgICAgJ2dyb3VwcycsXG4gICAgXSxcbiAgICBodG1sOiBbXG4gICAgICAgICdhbm5vdGF0aW9uJyxcbiAgICAgICAgJ2NvbW1lbnQnLFxuICAgICAgICAnYW5ub3RlJyxcbiAgICAgICAgJ3JldmlldycsXG4gICAgICAgICdub3RlcycsXG4gICAgICAgICdub3RlJyxcbiAgICBdLFxuICAgIHVuYWJicmV2OiBbXG4gICAgICAgICdqb3VybmFsJyxcbiAgICAgICAgJ2pvdXJuYWx0aXRsZScsXG4gICAgICAgICdqb3VybmFsLWZ1bGwnLFxuICAgIF0sXG59O1xuY29uc3QgZW5nbGlzaCA9IFtcbiAgICAnYW1lcmljYW4nLFxuICAgICdicml0aXNoJyxcbiAgICAnY2FuYWRpYW4nLFxuICAgICdlbmdsaXNoJyxcbiAgICAnYXVzdHJhbGlhbicsXG4gICAgJ25ld3plYWxhbmQnLFxuICAgICd1c2VuZ2xpc2gnLFxuICAgICd1a2VuZ2xpc2gnLFxuICAgICdlbicsXG4gICAgJ2VuZycsXG4gICAgJ2VuLWF1JyxcbiAgICAnZW4tYnonLFxuICAgICdlbi1jYScsXG4gICAgJ2VuLWNiJyxcbiAgICAnZW4tZ2InLFxuICAgICdlbi1pZScsXG4gICAgJ2VuLWptJyxcbiAgICAnZW4tbnonLFxuICAgICdlbi1waCcsXG4gICAgJ2VuLXR0JyxcbiAgICAnZW4tdXMnLFxuICAgICdlbi16YScsXG4gICAgJ2VuLXp3JyxcbiAgICAnYW5nbGFpcycsXG5dO1xuY2xhc3MgUGFyc2VyIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICAgICAgdGhpcy5pbl9wcmVhbWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnByZWFtYmxlID0gW107XG4gICAgICAgIHRoaXMubG9nID0gZnVuY3Rpb24gKHN0cikgeyB9OyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lIHZhcmlhYmxlLW5hbWUgb25seS1hcnJvdy1mdW5jdGlvbnMgbm8tZW1wdHlcbiAgICAgICAgZm9yIChjb25zdCBbb3B0aW9uLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob3B0aW9ucykpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgICAgIGRlbGV0ZSBvcHRpb25zW29wdGlvbl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuZXJyb3JIYW5kbGVyID09PSBmYWxzZSkge1xuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG9ubHktYXJyb3ctZnVuY3Rpb25zIG5vLWVtcHR5XG4gICAgICAgICAgICBvcHRpb25zLmVycm9ySGFuZGxlciA9IGZ1bmN0aW9uIChlcnIpIHsgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvcHRpb25zLmVycm9ySGFuZGxlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgb25seS1hcnJvdy1mdW5jdGlvbnNcbiAgICAgICAgICAgIG9wdGlvbnMuZXJyb3JIYW5kbGVyID0gZnVuY3Rpb24gKGVycikgeyB0aHJvdyBlcnI7IH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnNlbnRlbmNlQ2FzZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICBvcHRpb25zLnNlbnRlbmNlQ2FzZSA9IG9wdGlvbnMuc2VudGVuY2VDYXNlID8gZW5nbGlzaCA6IFtdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgb3B0aW9ucy5zZW50ZW5jZUNhc2UgPSBvcHRpb25zLnNlbnRlbmNlQ2FzZSB8fCBlbmdsaXNoO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0aW9ucy5zdHJpbmdzKVxuICAgICAgICAgICAgb3B0aW9ucy5zdHJpbmdzID0ge307XG4gICAgICAgIGlmICghb3B0aW9ucy51bmFiYnJldmlhdGUpXG4gICAgICAgICAgICBvcHRpb25zLnVuYWJicmV2aWF0ZSA9IHt9O1xuICAgICAgICBpZiAob3B0aW9ucy5yYXcpIHtcbiAgICAgICAgICAgIG9wdGlvbnMuc2VudGVuY2VDYXNlID0gZmFsc2U7XG4gICAgICAgICAgICBvcHRpb25zLmNhc2VQcm90ZWN0aW9uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7IGNhc2VQcm90ZWN0aW9uOiAnYXMtbmVlZGVkJywgdmVyYmF0aW1GaWVsZHM6IFsvXmNpdGV1bGlrZS1saW5rb3V0LVswLTldKyQvLCAuLi5maWVsZHMudmVyYmF0aW1dLCB2ZXJiYXRpbUNvbW1hbmRzOiBbJ3VybCcsICdocmVmJ10sIHVubmVzdEZpZWxkczogWy4uLmZpZWxkcy50aXRsZSwgLi4uZmllbGRzLnVubmVzdCwgLi4uZmllbGRzLnZlcmJhdGltXSwgdW5uZXN0TW9kZTogJ3Vud3JhcCcsIGh0bWxGaWVsZHM6IGZpZWxkcy5odG1sLCBndWVzc0FscmVhZHlTZW50ZW5jZUNhc2VkOiB0cnVlLCBtYXJrdXA6IHt9IH0sIG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBtYXJrdXBfZGVmYXVsdHMgPSB7XG4gICAgICAgICAgICBlbnF1b3RlOiB7IG9wZW46ICdcXHUyMDFjJywgY2xvc2U6ICdcXHUyMDFkJyB9LFxuICAgICAgICAgICAgc3ViOiB7IG9wZW46ICc8c3ViPicsIGNsb3NlOiAnPC9zdWI+JyB9LFxuICAgICAgICAgICAgc3VwOiB7IG9wZW46ICc8c3VwPicsIGNsb3NlOiAnPC9zdXA+JyB9LFxuICAgICAgICAgICAgYm9sZDogeyBvcGVuOiAnPGI+JywgY2xvc2U6ICc8L2I+JyB9LFxuICAgICAgICAgICAgaXRhbGljczogeyBvcGVuOiAnPGk+JywgY2xvc2U6ICc8L2k+JyB9LFxuICAgICAgICAgICAgc21hbGxDYXBzOiB7IG9wZW46ICc8c3BhbiBzdHlsZT1cImZvbnQtdmFyaWFudDpzbWFsbC1jYXBzO1wiPicsIGNsb3NlOiAnPC9zcGFuPicgfSxcbiAgICAgICAgICAgIGNhc2VQcm90ZWN0OiB7IG9wZW46ICc8c3BhbiBjbGFzcz1cIm5vY2FzZVwiPicsIGNsb3NlOiAnPC9zcGFuPicgfSxcbiAgICAgICAgICAgIHJvbWFuOiB7IG9wZW46ICcnLCBjbG9zZTogJycgfSxcbiAgICAgICAgICAgIGZpeGVkV2lkdGg6IHsgb3BlbjogJycsIGNsb3NlOiAnJyB9LFxuICAgICAgICB9O1xuICAgICAgICAvLyBwYXRjaCBpbiBiZWNhdXNlIHRoZSBvcHRpb25zIHdpbGwgbGlrZWx5IG5vdCBoYXZlIGVucXVvdGUgYW5kIGNhc2UtcHJvdGVjdFxuICAgICAgICBmb3IgKGNvbnN0IFttYXJrdXAsIHsgb3BlbiwgY2xvc2UgfV0gb2YgT2JqZWN0LmVudHJpZXMobWFya3VwX2RlZmF1bHRzKSkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLm1hcmt1cFttYXJrdXBdID0gdGhpcy5vcHRpb25zLm1hcmt1cFttYXJrdXBdIHx8IHsgb3BlbiwgY2xvc2UgfTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgWzEsIDIsIDMsIDRdKSB7IC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8tbWFnaWMtbnVtYmVyc1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLm1hcmt1cFtgaCR7aX1gXSA9IHRoaXMub3B0aW9ucy5tYXJrdXBbYGgke2l9YF0gfHwgeyBvcGVuOiBgPGgke2l9PmAsIGNsb3NlOiBgPC9oJHtpfT5gIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51bnJlc29sdmVkU3RyaW5ncyA9IHt9O1xuICAgICAgICB0aGlzLmVycm9ycyA9IFtdO1xuICAgICAgICB0aGlzLmNvbW1lbnRzID0gW107XG4gICAgICAgIHRoaXMuZW50cmllcyA9IFtdO1xuICAgICAgICB0aGlzLnN0cmluZ3MgPSB7fTtcbiAgICAgICAgdGhpcy5uZXdjb21tYW5kcyA9IHt9O1xuICAgICAgICB0aGlzLmRlZmF1bHRfc3RyaW5ncyA9IHtcbiAgICAgICAgICAgIEpBTjogW3RoaXMudGV4dCgnMDEnKV0sXG4gICAgICAgICAgICBGRUI6IFt0aGlzLnRleHQoJzAyJyldLFxuICAgICAgICAgICAgTUFSOiBbdGhpcy50ZXh0KCcwMycpXSxcbiAgICAgICAgICAgIEFQUjogW3RoaXMudGV4dCgnMDQnKV0sXG4gICAgICAgICAgICBNQVk6IFt0aGlzLnRleHQoJzA1JyldLFxuICAgICAgICAgICAgSlVOOiBbdGhpcy50ZXh0KCcwNicpXSxcbiAgICAgICAgICAgIEpVTDogW3RoaXMudGV4dCgnMDcnKV0sXG4gICAgICAgICAgICBBVUc6IFt0aGlzLnRleHQoJzA4JyldLFxuICAgICAgICAgICAgU0VQOiBbdGhpcy50ZXh0KCcwOScpXSxcbiAgICAgICAgICAgIE9DVDogW3RoaXMudGV4dCgnMTAnKV0sXG4gICAgICAgICAgICBOT1Y6IFt0aGlzLnRleHQoJzExJyldLFxuICAgICAgICAgICAgREVDOiBbdGhpcy50ZXh0KCcxMicpXSxcbiAgICAgICAgICAgIEFDTUNTOiBbdGhpcy50ZXh0KCdBQ00gQ29tcHV0aW5nIFN1cnZleXMnKV0sXG4gICAgICAgICAgICBBQ1RBOiBbdGhpcy50ZXh0KCdBY3RhIEluZm9ybWF0aWNhJyldLFxuICAgICAgICAgICAgQ0FDTTogW3RoaXMudGV4dCgnQ29tbXVuaWNhdGlvbnMgb2YgdGhlIEFDTScpXSxcbiAgICAgICAgICAgIElCTUpSRDogW3RoaXMudGV4dCgnSUJNIEpvdXJuYWwgb2YgUmVzZWFyY2ggYW5kIERldmVsb3BtZW50JyldLFxuICAgICAgICAgICAgSUJNU0o6IFt0aGlzLnRleHQoJ0lCTSBTeXN0ZW1zIEpvdXJuYWwnKV0sXG4gICAgICAgICAgICBJRUVFU0U6IFt0aGlzLnRleHQoJ0lFRUUgVHJhbnNhY3Rpb25zIG9uIFNvZnR3YXJlIEVuZ2luZWVyaW5nJyldLFxuICAgICAgICAgICAgSUVFRVRDOiBbdGhpcy50ZXh0KCdJRUVFIFRyYW5zYWN0aW9ucyBvbiBDb21wdXRlcnMnKV0sXG4gICAgICAgICAgICBJRUVFVENBRDogW3RoaXMudGV4dCgnSUVFRSBUcmFuc2FjdGlvbnMgb24gQ29tcHV0ZXItQWlkZWQgRGVzaWduIG9mIEludGVncmF0ZWQgQ2lyY3VpdHMnKV0sXG4gICAgICAgICAgICBJUEw6IFt0aGlzLnRleHQoJ0luZm9ybWF0aW9uIFByb2Nlc3NpbmcgTGV0dGVycycpXSxcbiAgICAgICAgICAgIEpBQ006IFt0aGlzLnRleHQoJ0pvdXJuYWwgb2YgdGhlIEFDTScpXSxcbiAgICAgICAgICAgIEpDU1M6IFt0aGlzLnRleHQoJ0pvdXJuYWwgb2YgQ29tcHV0ZXIgYW5kIFN5c3RlbSBTY2llbmNlcycpXSxcbiAgICAgICAgICAgIFNDUDogW3RoaXMudGV4dCgnU2NpZW5jZSBvZiBDb21wdXRlciBQcm9ncmFtbWluZycpXSxcbiAgICAgICAgICAgIFNJQ09NUDogW3RoaXMudGV4dCgnU0lBTSBKb3VybmFsIG9uIENvbXB1dGluZycpXSxcbiAgICAgICAgICAgIFRPQ1M6IFt0aGlzLnRleHQoJ0FDTSBUcmFuc2FjdGlvbnMgb24gQ29tcHV0ZXIgU3lzdGVtcycpXSxcbiAgICAgICAgICAgIFRPRFM6IFt0aGlzLnRleHQoJ0FDTSBUcmFuc2FjdGlvbnMgb24gRGF0YWJhc2UgU3lzdGVtcycpXSxcbiAgICAgICAgICAgIFRPRzogW3RoaXMudGV4dCgnQUNNIFRyYW5zYWN0aW9ucyBvbiBHcmFwaGljcycpXSxcbiAgICAgICAgICAgIFRPTVM6IFt0aGlzLnRleHQoJ0FDTSBUcmFuc2FjdGlvbnMgb24gTWF0aGVtYXRpY2FsIFNvZnR3YXJlJyldLFxuICAgICAgICAgICAgVE9PSVM6IFt0aGlzLnRleHQoJ0FDTSBUcmFuc2FjdGlvbnMgb24gT2ZmaWNlIEluZm9ybWF0aW9uIFN5c3RlbXMnKV0sXG4gICAgICAgICAgICBUT1BMQVM6IFt0aGlzLnRleHQoJ0FDTSBUcmFuc2FjdGlvbnMgb24gUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VzIGFuZCBTeXN0ZW1zJyldLFxuICAgICAgICAgICAgVENTOiBbdGhpcy50ZXh0KCdUaGVvcmV0aWNhbCBDb21wdXRlciBTY2llbmNlJyldLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBhc3QoaW5wdXQsIGNsZWFuID0gdHJ1ZSkge1xuICAgICAgICBjb25zdCBfYXN0ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgY2h1bmsgb2YgY2h1bmtlcl8xLnBhcnNlKGlucHV0KSkge1xuICAgICAgICAgICAgbGV0IGNodW5rX2FzdCA9IGJpYnRleC5wYXJzZShjaHVuay50ZXh0LCBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRoaXMub3B0aW9ucyksIHsgY29tYmluaW5nRGlhY3JpdGljczogdW5pY29kZTJsYXRleF8xLmRpYWNyaXRpY3MuY29tbWFuZHMgfSkpO1xuICAgICAgICAgICAgaWYgKGNsZWFuKVxuICAgICAgICAgICAgICAgIGNodW5rX2FzdCA9IHRoaXMuY2xlYW4oY2h1bmtfYXN0KTtcbiAgICAgICAgICAgIF9hc3QucHVzaChjaHVua19hc3QpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfYXN0O1xuICAgIH1cbiAgICBwYXJzZShpbnB1dCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmFzeW5jID8gdGhpcy5wYXJzZUFzeW5jKGlucHV0KSA6IHRoaXMucGFyc2VTeW5jKGlucHV0KTtcbiAgICB9XG4gICAgcGFyc2VTeW5jKGlucHV0KSB7XG4gICAgICAgIGZvciAoY29uc3QgY2h1bmsgb2YgY2h1bmtlcl8xLnBhcnNlKGlucHV0KSkge1xuICAgICAgICAgICAgdGhpcy5wYXJzZUNodW5rKGNodW5rKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZWQoKTtcbiAgICB9XG4gICAgYXN5bmMgcGFyc2VBc3luYyhpbnB1dCkge1xuICAgICAgICBmb3IgKGNvbnN0IGNodW5rIG9mIGF3YWl0IGNodW5rZXJfMS5wYXJzZShpbnB1dCwgeyBhc3luYzogdHJ1ZSB9KSkge1xuICAgICAgICAgICAgdGhpcy5wYXJzZUNodW5rKGNodW5rKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZWQoKTtcbiAgICB9XG4gICAgcGFyc2VkKCkge1xuICAgICAgICB0aGlzLmZpZWxkID0gbnVsbDtcbiAgICAgICAgY29uc3Qgc3RyaW5ncyA9IHt9O1xuICAgICAgICB0aGlzLmNsZWFuaW5nID0geyB0eXBlOiAnb3RoZXInIH07XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuc3RyaW5ncykpIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQgPSB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0BzdHJpbmcnLFxuICAgICAgICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICAgICAgICAgIGxldmVsOiAwLFxuICAgICAgICAgICAgICAgIHByZXNlcnZlUmFuZ2VzOiBudWxsLFxuICAgICAgICAgICAgICAgIHdvcmRzOiB7XG4gICAgICAgICAgICAgICAgICAgIHVwcGVyOiAwLFxuICAgICAgICAgICAgICAgICAgICBsb3dlcjogMCxcbiAgICAgICAgICAgICAgICAgICAgb3RoZXI6IDAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmNvbnZlcnQodGhpcy5jbGVhbih2YWx1ZSkpO1xuICAgICAgICAgICAgc3RyaW5nc1trZXldID0gdGhpcy5maWVsZC50ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlcnJvcnM6IHRoaXMuZXJyb3JzLFxuICAgICAgICAgICAgZW50cmllczogdGhpcy5lbnRyaWVzLFxuICAgICAgICAgICAgY29tbWVudHM6IHRoaXMuY29tbWVudHMsXG4gICAgICAgICAgICBzdHJpbmdzLFxuICAgICAgICAgICAgcHJlYW1ibGU6IHRoaXMucHJlYW1ibGUsXG4gICAgICAgIH07XG4gICAgfVxuICAgIHByZXNlcnZlKHN0YXJ0LCBlbmQsIHJlYXNvbikge1xuICAgICAgICBpZiAoIXRoaXMuZmllbGQucHJlc2VydmVSYW5nZXMpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICghZW5kKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnByZXNlcnZlUmFuZ2VzID0gbnVsbDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvKlxuICAgICAgICB0aGlzLmZpZWxkLnByZXNlcnZlUmFuZ2VzID0gdGhpcy5maWVsZC5wcmVzZXJ2ZVJhbmdlcy5maWx0ZXIocmFuZ2UgPT4gcmFuZ2Uuc3RhcnQgPCBzdGFydCB8fCByYW5nZS5lbmQgPiBlbmQpXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLnByZXNlcnZlUmFuZ2VzLmZpbmQocmFuZ2UgPT4gcmFuZ2Uuc3RhcnQgPD0gc3RhcnQgJiYgcmFuZ2UuZW5kID49IGVuZCkpIHJldHVyblxuICAgICAgICAqL1xuICAgICAgICAvKlxuICAgICAgICBpZiAodGhpcy5maWVsZC5wcmVzZXJ2ZVJhbmdlcyAmJiB0aGlzLmZpZWxkLnByZXNlcnZlUmFuZ2VzLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IGxhc3QgPSB0aGlzLmZpZWxkLnByZXNlcnZlUmFuZ2VzW3RoaXMuZmllbGQucHJlc2VydmVSYW5nZXMubGVuZ3RoIC0gMV1cbiAgICAgICAgICBpZiAoc3RhcnQgPCBsYXN0LnN0YXJ0KSB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoey4uLmxhc3QsIG5ldzogeyBzdGFydCwgZW5kLCByZWFzb24gfSwgdGV4dDogdGhpcy5maWVsZC50ZXh0fSkpXG4gICAgICAgIH1cbiAgICAgICAgKi9cbiAgICAgICAgdGhpcy5maWVsZC5wcmVzZXJ2ZVJhbmdlcy5wdXNoKHsgc3RhcnQsIGVuZCwgcmVhc29uIH0pO1xuICAgIH1cbiAgICBwYXJzZUNodW5rKGNodW5rKSB7XG4gICAgICAgIHRoaXMuY2h1bmsgPSBjaHVuay50ZXh0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGJpYiA9IGJpYnRleC5wYXJzZShjaHVuay50ZXh0LCBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRoaXMub3B0aW9ucyksIHsgY29tYmluaW5nRGlhY3JpdGljczogdW5pY29kZTJsYXRleF8xLmRpYWNyaXRpY3MuY29tbWFuZHMgfSkpO1xuICAgICAgICAgICAgaWYgKGJpYi5raW5kICE9PSAnQmlibGlvZ3JhcGh5JylcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5zaG93KGJpYikpO1xuICAgICAgICAgICAgYmliID0gdGhpcy5jbGVhbihiaWIpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBlbnRpdHkgb2YgYmliLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChlbnRpdHkua2luZCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdFbnRyeSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ0JyYWNlZENvbW1lbnQnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdMaW5lQ29tbWVudCc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1ByZWFtYmxlRXhwcmVzc2lvbic6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnZlcnQoZW50aXR5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdTdHJpbmdEZWNsYXJhdGlvbic6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ05vbkVudHJ5VGV4dCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYmliO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGlmICghZXJyLmxvY2F0aW9uKVxuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzLnB1c2goe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVyci5tZXNzYWdlLFxuICAgICAgICAgICAgICAgIGxpbmU6IGVyci5sb2NhdGlvbi5zdGFydC5saW5lICsgY2h1bmsub2Zmc2V0LmxpbmUsXG4gICAgICAgICAgICAgICAgY29sdW1uOiBlcnIubG9jYXRpb24uc3RhcnQuY29sdW1uLFxuICAgICAgICAgICAgICAgIHNvdXJjZTogdGhpcy5jaHVuayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2hvdyhvKSB7XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBwcmVmZXItdGVtcGxhdGVcbiAgICAgICAgbGV0IHRleHQgPSBKU09OLnN0cmluZ2lmeShvKTtcbiAgICAgICAgaWYgKHRoaXMuY2h1bmspXG4gICAgICAgICAgICB0ZXh0ICs9ICdcXG4nICsgdGhpcy5jaHVuay50cmltKCk7XG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cbiAgICB0ZXh0KHZhbHVlID0gJycpIHtcbiAgICAgICAgcmV0dXJuIHsga2luZDogJ1RleHQnLCB2YWx1ZSwgbW9kZTogJ3RleHQnIH07XG4gICAgfVxuICAgIGVycm9yKGVyciwgcmV0dXJudmFsdWUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMuZXJyb3JIYW5kbGVyID09PSAnZnVuY3Rpb24nKVxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLmVycm9ySGFuZGxlcihlcnIpO1xuICAgICAgICByZXR1cm4gcmV0dXJudmFsdWU7XG4gICAgfVxuICAgIGNvbmRlbnNlKG5vZGUpIHtcbiAgICAgICAgLy8gYXBwbHkgY2xlYW5pbmcgdG8gcmVzdWx0aW5nIGNoaWxkcmVuXG4gICAgICAgIG5vZGUudmFsdWUgPSBub2RlLnZhbHVlLm1hcChjaGlsZCA9PiB0aGlzLmNsZWFuKGNoaWxkKSk7XG4gICAgICAgIC8vIHVucGFjayByZWR1bmRhbnQgYmxvY2tzXG4gICAgICAgIG5vZGUudmFsdWUgPSBub2RlLnZhbHVlLnJlZHVjZSgoYWNjLCBjaGlsZCwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoaWxkLmtpbmQgPT09ICdCbG9jaycgJiYgIWNoaWxkLmNhc2UgJiYgT2JqZWN0LmtleXMoY2hpbGQubWFya3VwKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBhY2MgPSBhY2MuY29uY2F0KGNoaWxkLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGFjYy5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIFtdKTtcbiAgICAgICAgLy8gY29uZGVuc2UgdGV4dCBub2RlcyB0byBtYWtlIHdob2xlIHdvcmRzIGZvciBzZW50ZW5jZSBjYXNpbmdcbiAgICAgICAgbm9kZS52YWx1ZSA9IG5vZGUudmFsdWUucmVkdWNlKChhY2MsIGNoaWxkLCBpKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWNjLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGFjYy5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGFzdCA9IGFjY1thY2MubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gbm9kZS52YWx1ZVtpICsgMV07XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmNhc2VQcm90ZWN0aW9uID09PSAnc3RyaWN0JyAmJiB0aGlzLm9ubHlDYXNlUHJvdGVjdGVkKGxhc3QpICYmIGNoaWxkLmtpbmQgPT09ICdUZXh0JyAmJiAhY2hpbGQudmFsdWUubWF0Y2gocHJlc2VydmVDYXNlLmlzQ2FzZVNlbnNpdGl2ZSkgJiYgdGhpcy5vbmx5Q2FzZVByb3RlY3RlZChuZXh0KSkge1xuICAgICAgICAgICAgICAgIGxhc3QudmFsdWUucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGxhc3Quc291cmNlO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGFzdC5raW5kID09PSAnQmxvY2snICYmIGNoaWxkLmtpbmQgPT09ICdCbG9jaycgJiYgT2JqZWN0LmtleXMobGFzdC5tYXJrdXApLnNvcnQoKS5qb2luKCcvJykgPT09IE9iamVjdC5rZXlzKGNoaWxkLm1hcmt1cCkuc29ydCgpLmpvaW4oJy8nKSkge1xuICAgICAgICAgICAgICAgIGxhc3QudmFsdWUgPSBsYXN0LnZhbHVlLmNvbmNhdChjaGlsZC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGxhc3Quc291cmNlO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGFzdC5raW5kID09PSAnVGV4dCcgJiYgY2hpbGQua2luZCA9PT0gJ1RleHQnICYmIGxhc3QubW9kZSA9PT0gY2hpbGQubW9kZSkge1xuICAgICAgICAgICAgICAgIGxhc3QudmFsdWUgKz0gY2hpbGQudmFsdWU7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGxhc3Quc291cmNlO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhY2MucHVzaChjaGlsZCk7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCBbXSk7XG4gICAgfVxuICAgIG9ubHlDYXNlUHJvdGVjdGVkKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIChub2RlID09PSBudWxsIHx8IG5vZGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5vZGUua2luZCkgPT09ICdCbG9jaycgJiYgbm9kZS5jYXNlID09PSAncHJvdGVjdCcgJiYgT2JqZWN0LmtleXMobm9kZS5tYXJrdXApLmpvaW4oJy8nKSA9PT0gJyc7XG4gICAgfVxuICAgIGFyZ3VtZW50KG5vZGUsIGtpbmQpIHtcbiAgICAgICAgaWYgKCFub2RlLmFyZ3VtZW50cyB8fCAhbm9kZS5hcmd1bWVudHMucmVxdWlyZWQubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIChraW5kID09PSAnbm9uZScpO1xuICAgICAgICAvLyBleHBlY3QgJ24nIHRleHQgYXJndW1lbnRzXG4gICAgICAgIGlmICh0eXBlb2Yga2luZCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIGlmIChub2RlLmFyZ3VtZW50cy5yZXF1aXJlZC5sZW5ndGggIT09IGtpbmQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkO1xuICAgICAgICB9XG4gICAgICAgIC8vIHJldHVybiBmaXJzdCBhcmd1bWVudCBpZiBpdCdzIHRoZSBvbmx5IG9uZVxuICAgICAgICBpZiAobm9kZS5hcmd1bWVudHMucmVxdWlyZWQubGVuZ3RoICE9PSAxKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAvLyBsb29zZSBjaGVja2luZyBmb3IgdGV4dFxuICAgICAgICBpZiAoa2luZCA9PT0gJ3RleHQnKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdCA9IG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkWzBdO1xuICAgICAgICAgICAgaWYgKGZpcnN0LmtpbmQgPT09ICdCbG9jaycgJiYgZmlyc3QudmFsdWUubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0LnZhbHVlWzBdLmtpbmQgPT09ICdUZXh0JylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0LnZhbHVlWzBdLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZmFsbCBiYWNrIHRvIHN0cmljdCBraW5kIGNoZWNrXG4gICAgICAgICAgICBraW5kID0gJ1RleHQnO1xuICAgICAgICB9XG4gICAgICAgIC8vIHJldHVybiBmaXJzdCBhcmd1bWVudCBpZiBpdCdzIHRoZSBvbmx5IG9uZSBhbmQgaXMgb2YgdGhlIHNwZWNpZmllZCBraW5kXG4gICAgICAgIGlmIChub2RlLmFyZ3VtZW50cy5yZXF1aXJlZC5sZW5ndGggIT09IDEgfHwgbm9kZS5hcmd1bWVudHMucmVxdWlyZWRbMF0ua2luZCAhPT0ga2luZClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgc3dpdGNoIChraW5kKSB7XG4gICAgICAgICAgICBjYXNlICdUZXh0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5hcmd1bWVudHMucmVxdWlyZWRbMF0udmFsdWU7XG4gICAgICAgICAgICBjYXNlICdSZWd1bGFyQ29tbWFuZCc6XG4gICAgICAgICAgICBjYXNlICdCbG9jayc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkWzBdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY2xlYW4obm9kZSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSlcbiAgICAgICAgICAgIHJldHVybiBub2RlLm1hcChjaGlsZCA9PiB0aGlzLmNsZWFuKGNoaWxkKSk7XG4gICAgICAgIGRlbGV0ZSBub2RlLmxvYztcbiAgICAgICAgc3dpdGNoIChub2RlLmtpbmQpIHtcbiAgICAgICAgICAgIGNhc2UgJ0lubGluZU1hdGgnOlxuICAgICAgICAgICAgY2FzZSAnRGlzcGxheU1hdGgnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuX2Jsb2NrKG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnRW52aXJvbm1lbnQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuX2Vudmlyb25tZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnQmxvY2snOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuX2Jsb2NrKG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnQmlibGlvZ3JhcGh5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbl9iaWIobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdSZWd1bGFyQ29tbWFuZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW5fY29tbWFuZChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ0RpYWNyaXRpY0NvbW1hbmQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuX2RpYWNyaXRpYyhub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ0VudHJ5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbl9lbnRyeShub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ0ZpZWxkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnJhdyA/IG5vZGUgOiB0aGlzLmNsZWFuX2ZpZWxkKG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnU3RyaW5nRGVjbGFyYXRpb24nOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuX3N0cmluZ2RlY2wobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdTdHJpbmdSZWZlcmVuY2UnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuX3N0cmluZ3JlZihub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ1N1YnNjcmlwdENvbW1hbmQnOlxuICAgICAgICAgICAgY2FzZSAnU3VwZXJzY3JpcHRDb21tYW5kJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbl9zY3JpcHQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdTeW1ib2xDb21tYW5kJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbl9zeW1ib2wobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdQcmVhbWJsZUV4cHJlc3Npb24nOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuX3ByZWFtYmxlKG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnTnVtYmVyJzpcbiAgICAgICAgICAgIGNhc2UgJ1RleHQnOlxuICAgICAgICAgICAgY2FzZSAnQnJhY2VkQ29tbWVudCc6XG4gICAgICAgICAgICBjYXNlICdMaW5lQ29tbWVudCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yKG5ldyBQYXJzZXJFcnJvcihgbm8gY2xlYW51cCBtZXRob2QgZm9yICR7dGhpcy5zaG93KG5vZGUpfWAsIG5vZGUpLCB0aGlzLnRleHQoKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2xlYW5fcHJlYW1ibGUobm9kZSkge1xuICAgICAgICB0aGlzLmluX3ByZWFtYmxlID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgY2xlYW4gPSB0aGlzLmNsZWFuKG5vZGUudmFsdWUpO1xuICAgICAgICB0aGlzLmluX3ByZWFtYmxlID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBjbGVhbjtcbiAgICB9XG4gICAgY2xlYW5fYmliKG5vZGUpIHtcbiAgICAgICAgbm9kZS5jaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+IGNoaWxkLmtpbmQgIT09ICdOb25FbnRyeVRleHQnKS5tYXAoY2hpbGQgPT4gdGhpcy5jbGVhbihjaGlsZCkpO1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgY2xlYW5fc3RyaW5nZGVjbChub2RlKSB7XG4gICAgICAgIHRoaXMuc3RyaW5nc1tub2RlLm5hbWUudG9VcHBlckNhc2UoKV0gPSBub2RlLnZhbHVlO1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgY2xlYW5fc3RyaW5ncmVmKG5vZGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBuYW1lID0gbm9kZS5uYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IF9zdHJpbmcgPSB0aGlzLnN0cmluZ3NbbmFtZV1cbiAgICAgICAgICAgIHx8IHRoaXMub3B0aW9ucy5zdHJpbmdzW25hbWVdXG4gICAgICAgICAgICB8fCB0aGlzLmRlZmF1bHRfc3RyaW5nc1tuYW1lXVxuICAgICAgICAgICAgfHwgKGZpZWxkcy51bmFiYnJldi5pbmNsdWRlcyh0aGlzLmNsZWFuaW5nLm5hbWUpICYmICgoX2EgPSB0aGlzLm9wdGlvbnMudW5hYmJyZXZpYXRlW25hbWVdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgJiYgW3RoaXMudGV4dCh0aGlzLm9wdGlvbnMudW5hYmJyZXZpYXRlW25hbWVdLnRleHQpXSk7XG4gICAgICAgIGlmICghX3N0cmluZykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnVucmVzb2x2ZWRTdHJpbmdzW25hbWVdKVxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JzLnB1c2goeyBtZXNzYWdlOiBgVW5yZXNvbHZlZCBAc3RyaW5nIHJlZmVyZW5jZSAke0pTT04uc3RyaW5naWZ5KG5vZGUubmFtZSl9YCB9KTtcbiAgICAgICAgICAgIHRoaXMudW5yZXNvbHZlZFN0cmluZ3NbbmFtZV0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNsZWFuKHtcbiAgICAgICAgICAgIGtpbmQ6ICdCbG9jaycsXG4gICAgICAgICAgICAvLyBpZiB0aGUgc3RyaW5nIGlzbid0IGZvdW5kLCBhZGQgaXQgYXMtaXMgYnV0IGV4ZW1wdCBpdCBmcm9tIHNlbnRlbmNlIGNhc2luZ1xuICAgICAgICAgICAgY2FzZTogX3N0cmluZyA/IHVuZGVmaW5lZCA6ICdwcmVzZXJ2ZScsXG4gICAgICAgICAgICBtYXJrdXA6IHt9LFxuICAgICAgICAgICAgdmFsdWU6IF9zdHJpbmcgPyBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KF9zdHJpbmcpKSA6IFt0aGlzLnRleHQobm9kZS5uYW1lKV0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjbGVhbl9lbnRyeShub2RlKSB7XG4gICAgICAgIGNvbnN0IHNob3J0am91cm5hbHMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBub2RlLmZpZWxkcykge1xuICAgICAgICAgICAgaWYgKGZpZWxkcy51bmFiYnJldi5pbmNsdWRlcyhmaWVsZC5uYW1lKSAmJiBBcnJheS5pc0FycmF5KGZpZWxkLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFiYnIgPSBmaWVsZC52YWx1ZS5tYXAodiA9PiB2LnNvdXJjZSkuam9pbignJyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgam91cm5hbCA9IHRoaXMub3B0aW9ucy51bmFiYnJldmlhdGVbYWJicl07XG4gICAgICAgICAgICAgICAgaWYgKGpvdXJuYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgc2hvcnRqb3VybmFscy5wdXNoKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShmaWVsZCkpKSwgeyBuYW1lOiAnc2hvcnRqb3VybmFsJyB9KSk7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnZhbHVlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShqb3VybmFsLmFzdCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBub2RlLmZpZWxkcyA9IG5vZGUuZmllbGRzLmNvbmNhdChzaG9ydGpvdXJuYWxzKS5tYXAoY2hpbGQgPT4gdGhpcy5jbGVhbihjaGlsZCkpO1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgc3RhcnRDbGVhbmluZyhuYW1lKSB7XG4gICAgICAgIG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChmaWVsZHMudGl0bGUuaW5jbHVkZXMobmFtZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYW5pbmcgPSB7IHR5cGU6ICd0aXRsZScsIG5hbWUgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChmaWVsZHMuY3JlYXRvci5pbmNsdWRlcyhuYW1lLnJlcGxhY2UoL3MkLywgJycpKSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhbmluZyA9IHsgdHlwZTogJ2NyZWF0b3InLCBuYW1lOiBuYW1lLnJlcGxhY2UoL3MkLywgJycpIH07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFuaW5nID0geyB0eXBlOiAnb3RoZXInLCBuYW1lIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RyaXBOb0Nhc2Uobm9kZSwgc3RyaXAsIHByZXNlcnZlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZS5raW5kKSB7XG4gICAgICAgICAgICBjYXNlICdSZWd1bGFyQ29tbWFuZCc6XG4gICAgICAgICAgICAgICAgLy8gYSBiaXQgY2hlYXR5IHRvIGFzc3VtZSB0aGVzZSB0byBiZSBub2Nhc2VkLCBidXQgaXQncyBqdXN0IG1vcmUgbGlrZWx5IHRvIGJlIHdoYXQgcGVvcGxlIHdhbnRcbiAgICAgICAgICAgICAgICBpZiAoWydjaHNmJywgJ2JpYnN0cmluZycsICdjaXRlJ10uaW5jbHVkZXMobm9kZS5jb21tYW5kKSlcbiAgICAgICAgICAgICAgICAgICAgc3RyaXAgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkLm1hcChhcmcgPT4gdGhpcy5zdHJpcE5vQ2FzZShhcmcsIHN0cmlwLCBwcmVzZXJ2ZSkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQmxvY2snOlxuICAgICAgICAgICAgY2FzZSAnSW5saW5lTWF0aCc6XG4gICAgICAgICAgICBjYXNlICdEaXNwbGF5TWF0aCc6XG4gICAgICAgICAgICAgICAgaWYgKHN0cmlwICYmIG5vZGUuY2FzZSA9PT0gJ3Byb3RlY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmVzZXJ2ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5jYXNlID0gJ3ByZXNlcnZlJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBub2RlLmNhc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbm9kZS52YWx1ZS5tYXAodiA9PiB0aGlzLnN0cmlwTm9DYXNlKHYsIHN0cmlwIHx8IG5vZGUuY2FzZSA9PT0gJ3Byb3RlY3QnLCBwcmVzZXJ2ZSkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnRmllbGQnOlxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG5vZGUudmFsdWUpKVxuICAgICAgICAgICAgICAgICAgICBub2RlLnZhbHVlLm1hcCh2ID0+IHRoaXMuc3RyaXBOb0Nhc2Uodiwgc3RyaXAsIHByZXNlcnZlKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaXNWZXJiYXRpbUZpZWxkKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5vcHRpb25zLnZlcmJhdGltRmllbGRzLmZpbmQocCA9PiAodHlwZW9mIHAgPT09ICdzdHJpbmcnKSA/IG5hbWUgPT09IHAgOiBuYW1lLm1hdGNoKHApKTtcbiAgICB9XG4gICAgY2xlYW5fZmllbGQobm9kZSkge1xuICAgICAgICB0aGlzLnN0YXJ0Q2xlYW5pbmcobm9kZS5uYW1lKTtcbiAgICAgICAgdGhpcy5zdHJpcE5vQ2FzZShub2RlLCAhdGhpcy5vcHRpb25zLmNhc2VQcm90ZWN0aW9uIHx8IHRoaXMuaXNWZXJiYXRpbUZpZWxkKG5vZGUubmFtZSksIHRoaXMub3B0aW9ucy5zZW50ZW5jZUNhc2UubGVuZ3RoID09PSAwKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZS52YWx1ZSkpXG4gICAgICAgICAgICB0aGlzLmNvbmRlbnNlKG5vZGUpO1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgY2xlYW5fc2NyaXB0KG5vZGUpIHtcbiAgICAgICAgbGV0IG0sIHZhbHVlLCBzaW5nbGVjaGFyO1xuICAgICAgICAvLyByZWNvZ25pemUgY29tYmluZWQgZm9ybXMgbGlrZSBcXF5cXGNpcmNcbiAgICAgICAgaWYgKHNpbmdsZWNoYXIgPSB1bmljb2RlMmxhdGV4XzEubGF0ZXhbbm9kZS5zb3VyY2VdKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dChzaW5nbGVjaGFyKTtcbiAgICAgICAgaWYgKChtID0gbm9kZS5zb3VyY2UubWF0Y2goL14oW1xcXl9dKShbXnt9XSspJC8pKSAmJiAoKHNpbmdsZWNoYXIgPSB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYCR7bVsxXX0ke21bMl19YF0pIHx8IChzaW5nbGVjaGFyID0gdW5pY29kZTJsYXRleF8xLmxhdGV4W2Ake21bMV19eyR7bVsyXX19YF0pKSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQoc2luZ2xlY2hhcik7XG4gICAgICAgIGlmICgobSA9IG5vZGUuc291cmNlLm1hdGNoKC9eKFtcXF5fXSlcXHsoW157fV0rKVxcfSQvKSkgJiYgKChzaW5nbGVjaGFyID0gdW5pY29kZTJsYXRleF8xLmxhdGV4W2Ake21bMV19JHttWzJdfWBdKSB8fCAoc2luZ2xlY2hhciA9IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtgJHttWzFdfXske21bMl19fWBdKSkpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KHNpbmdsZWNoYXIpO1xuICAgICAgICBjb25zdCBjbWQgPSBub2RlLmtpbmQgPT09ICdTdXBlcnNjcmlwdENvbW1hbmQnID8gJ14nIDogJ18nO1xuICAgICAgICBpZiAodHlwZW9mIG5vZGUudmFsdWUgPT09ICdzdHJpbmcnICYmIChzaW5nbGVjaGFyID0gdW5pY29kZTJsYXRleF8xLmxhdGV4W2Ake2NtZH0ke25vZGUudmFsdWV9YF0gfHwgdW5pY29kZTJsYXRleF8xLmxhdGV4W2Ake2NtZH17JHtub2RlLnZhbHVlfX1gXSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQoc2luZ2xlY2hhcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBub2RlLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdmFsdWUgPSBbdGhpcy50ZXh0KG5vZGUudmFsdWUpXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghQXJyYXkuaXNBcnJheShub2RlLnZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBbbm9kZS52YWx1ZV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZSA9IG5vZGUudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbW9kZSA9IG5vZGUua2luZCA9PT0gJ1N1cGVyc2NyaXB0Q29tbWFuZCcgPyAnc3VwJyA6ICdzdWInO1xuICAgICAgICByZXR1cm4gdGhpcy5jbGVhbih7XG4gICAgICAgICAgICBraW5kOiAnQmxvY2snLFxuICAgICAgICAgICAgbWFya3VwOiB7IFttb2RlXTogdHJ1ZSB9LFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjbGVhbl9lbnZpcm9ubWVudChub2RlKSB7XG4gICAgICAgIHRoaXMuY29uZGVuc2Uobm9kZSk7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICBuZWVkc1Byb3RlY3Rpb24od29yZCkge1xuICAgICAgICByZXR1cm4gIXdvcmQubWF0Y2gocHJlc2VydmVDYXNlLmhhc1VwcGVyKSAmJiB3b3JkLm1hdGNoKHByZXNlcnZlQ2FzZS5oYXNMb3dlcik7XG4gICAgfVxuICAgIGNsZWFuX2Jsb2NrKG5vZGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB0aGlzLmNvbmRlbnNlKG5vZGUpO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmNhc2VQcm90ZWN0aW9uICE9PSAnc3RyaWN0JyAmJiAoKF9hID0gdGhpcy5jbGVhbmluZykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnR5cGUpID09PSAndGl0bGUnICYmIG5vZGUuY2FzZSA9PT0gJ3Byb3RlY3QnKSB7XG4gICAgICAgICAgICAvLyB0ZXN0IHdoZXRoZXIgd2UgY2FuIGdldCBhd2F5IHdpdGggc2tpcHBpbmcgY2FzZSBwcm90ZWN0aW9uIGJlY2F1c2UgaXQgY29udGFpbnMgYWxsIHdvcmRzIHRoYXQgd2lsbCBiZSBwcmVzZXJ2ZWQgYW55d2F5IHdoZW4gY29udmVydGluZyBiYWNrIHRvIFRpdGxlIENhc2VcbiAgICAgICAgICAgIGxldCBwcmVzZXJ2ZSA9IHRydWU7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGQua2luZCA9PT0gJ1RleHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY2hpbGQudmFsdWUudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZSA9ICF2YWx1ZS5tYXRjaChwcmVzZXJ2ZUNhc2UuaXNDYXNlU2Vuc2l0aXZlKSB8fCAhdmFsdWUuc3BsaXQoL1xccysvKS5maW5kKHdvcmQgPT4gdGhpcy5uZWVkc1Byb3RlY3Rpb24od29yZCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcHJlc2VydmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFwcmVzZXJ2ZSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJlc2VydmUpXG4gICAgICAgICAgICAgICAgbm9kZS5jYXNlID0gJ3ByZXNlcnZlJztcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZS5raW5kID09PSAnQmxvY2snKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFttYXJrdXAsIG9uXSBvZiBPYmplY3QuZW50cmllcyhub2RlLm1hcmt1cCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW9uKVxuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbm9kZS5tYXJrdXBbbWFya3VwXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgY2xlYW5fZGlhY3JpdGljKG5vZGUpIHtcbiAgICAgICAgY29uc3QgY2hhciA9IG5vZGUuZG90bGVzcyA/IGBcXFxcJHtub2RlLmNoYXJhY3Rlcn1gIDogbm9kZS5jaGFyYWN0ZXI7XG4gICAgICAgIGxldCB1bmljb2RlID0gdW5pY29kZTJsYXRleF8xLmxhdGV4W2BcXFxcJHtub2RlLm1hcmt9eyR7Y2hhcn19YF1cbiAgICAgICAgICAgIHx8IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtgXFxcXCR7bm9kZS5tYXJrfSR7Y2hhcn1gXVxuICAgICAgICAgICAgfHwgdW5pY29kZTJsYXRleF8xLmxhdGV4W2B7XFxcXCR7bm9kZS5tYXJrfSAke2NoYXJ9fWBdXG4gICAgICAgICAgICB8fCB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYHtcXFxcJHtub2RlLm1hcmt9JHtjaGFyfX1gXVxuICAgICAgICAgICAgfHwgdW5pY29kZTJsYXRleF8xLmxhdGV4W2BcXFxcJHtub2RlLm1hcmt9ICR7Y2hhcn1gXTtcbiAgICAgICAgaWYgKCF1bmljb2RlICYmICFub2RlLmRvdGxlc3MgJiYgbm9kZS5jaGFyYWN0ZXIubGVuZ3RoID09PSAxICYmIHVuaWNvZGUybGF0ZXhfMS5kaWFjcml0aWNzLnRvdW5pY29kZVtub2RlLm1hcmtdKVxuICAgICAgICAgICAgdW5pY29kZSA9IG5vZGUuY2hhcmFjdGVyICsgdW5pY29kZTJsYXRleF8xLmRpYWNyaXRpY3MudG91bmljb2RlW25vZGUubWFya107XG4gICAgICAgIGlmICghdW5pY29kZSAmJiAhdGhpcy5pbl9wcmVhbWJsZSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yKG5ldyBUZVhFcnJvcihgVW5oYW5kbGVkIFxcXFwke25vZGUubWFya317JHtjaGFyfX1gLCBub2RlLCB0aGlzLmNodW5rKSwgdGhpcy50ZXh0KCkpO1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0KHVuaWNvZGUpO1xuICAgIH1cbiAgICBjbGVhbl9zeW1ib2wobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5jb21tYW5kID09PSAnXFxcXCcpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KCdcXG4nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dCh1bmljb2RlMmxhdGV4XzEubGF0ZXhbYFxcXFwke25vZGUuY29tbWFuZH1gXSB8fCBub2RlLmNvbW1hbmQpO1xuICAgIH1cbiAgICBmaXJzdF90ZXh0X2Jsb2NrKG5vZGUpIHtcbiAgICAgICAgaWYgKCFub2RlKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmIChub2RlLmtpbmQgPT09ICdCbG9jaycpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoY2hpbGQua2luZCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdUZXh0JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZC52YWx1ZSA/IG5vZGUgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdCbG9jayc6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW5kaWRhdGUgPSB0aGlzLmZpcnN0X3RleHRfYmxvY2soY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FuZGlkYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjbGVhbl9jb21tYW5kKG5vZGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBsZXQgYXJnLCB1bmljb2RlO1xuICAgICAgICBpZiAodW5pY29kZSA9IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtub2RlLnNvdXJjZV0pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KHVuaWNvZGUpO1xuICAgICAgICBzd2l0Y2ggKG5vZGUuY29tbWFuZCkge1xuICAgICAgICAgICAgY2FzZSAnbmV3Y29tbWFuZCc6XG4gICAgICAgICAgICAgICAgaWYgKCgoX2EgPSBub2RlLmFyZ3VtZW50cykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlcXVpcmVkLmxlbmd0aCkgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgJiYgbm9kZS5hcmd1bWVudHMucmVxdWlyZWRbMF0ua2luZCA9PT0gJ0Jsb2NrJ1xuICAgICAgICAgICAgICAgICAgICAmJiBub2RlLmFyZ3VtZW50cy5yZXF1aXJlZFswXS52YWx1ZS5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICAgICAgJiYgbm9kZS5hcmd1bWVudHMucmVxdWlyZWRbMF0udmFsdWVbMF0ua2luZCA9PT0gJ1JlZ3VsYXJDb21tYW5kJ1xuICAgICAgICAgICAgICAgICAgICAmJiBub2RlLmFyZ3VtZW50cy5yZXF1aXJlZFsxXS5raW5kID09PSAnQmxvY2snKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmV3Y29tbWFuZHNbbm9kZS5hcmd1bWVudHMucmVxdWlyZWRbMF0udmFsdWVbMF0uY29tbWFuZF0gPSBub2RlLmFyZ3VtZW50cy5yZXF1aXJlZFsxXS52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnbmV3Y29tbWFuZD8nLCBKU09OLnN0cmluZ2lmeShub2RlLCBudWxsLCAyKSlcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2l0ZW0nOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGtpbmQ6ICdNYXJrdXAnLCB2YWx1ZTogJzxsaT4nLCBzb3VyY2U6IG5vZGUuc291cmNlIH07XG4gICAgICAgICAgICBjYXNlICdmcmFjJzpcbiAgICAgICAgICAgICAgICBpZiAoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAyKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXJnWzBdLmtpbmQgPT09ICdUZXh0JyAmJiBhcmdbMV0ua2luZCA9PT0gJ1RleHQnICYmICh1bmljb2RlID0gdW5pY29kZTJsYXRleF8xLmxhdGV4W2BcXFxcZnJhY3ske2FyZ1swXS52YWx1ZX19eyR7YXJnWzFdLnZhbHVlfX1gXSkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KHVuaWNvZGUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbih7XG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kOiAnQmxvY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZTogJ3Byb3RlY3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFya3VwOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBraW5kOiAnQmxvY2snLCBtYXJrdXA6IHsgc3VwOiB0cnVlIH0sIHZhbHVlOiBbYXJnWzBdXSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCgnXFx1MjA0NCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsga2luZDogJ0Jsb2NrJywgbWFya3VwOiB7IHN1YjogdHJ1ZSB9LCB2YWx1ZTogW2FyZ1sxXV0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIC8vIGlnbm9yZVxuICAgICAgICAgICAgY2FzZSAndnNwYWNlJzpcbiAgICAgICAgICAgIGNhc2UgJ3ZwaGFudG9tJzpcbiAgICAgICAgICAgIGNhc2UgJ3BhdGgnOlxuICAgICAgICAgICAgY2FzZSAnYWZ0ZXJncm91cCc6XG4gICAgICAgICAgICBjYXNlICdpZ25vcmVzcGFjZXMnOlxuICAgICAgICAgICAgY2FzZSAncmVsYXgnOlxuICAgICAgICAgICAgY2FzZSAnbm9vcHNvcnQnOlxuICAgICAgICAgICAgY2FzZSAnaWZkZWZpbmVkJzpcbiAgICAgICAgICAgIGNhc2UgJ0RlY2xhcmVQcmVmQ2hhcnMnOlxuICAgICAgICAgICAgY2FzZSAnZWxzZSc6XG4gICAgICAgICAgICBjYXNlICdmaSc6XG4gICAgICAgICAgICBjYXNlICdtYWtlYXRsZXR0ZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQoKTtcbiAgICAgICAgICAgIGNhc2UgJ0Vsc2V2aWVyR2x5cGgnOlxuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICdUZXh0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGUgPSB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYFxcXFwke25vZGUuY29tbWFuZH17JHthcmd9fWBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dCh1bmljb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dChTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGFyZywgMTYpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2hzZic6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYXJndW1lbnQobm9kZSwgJ25vbmUnKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dCgpO1xuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICdCbG9jaycpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbihhcmcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYmlic3RyaW5nJzpcbiAgICAgICAgICAgICAgICBpZiAoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAnQmxvY2snKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW4oYXJnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2NpdGUnOlxuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICdCbG9jaycpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbihhcmcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndGV4dHN1cGVyc2NyaXB0JzpcbiAgICAgICAgICAgIGNhc2UgJ3NwJzpcbiAgICAgICAgICAgICAgICBpZiAoKGFyZyA9IHRoaXMuYXJndW1lbnQobm9kZSwgJ1RleHQnKSkgJiYgKHVuaWNvZGUgPSB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYF57JHthcmd9fWBdKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dCh1bmljb2RlKTtcbiAgICAgICAgICAgICAgICBpZiAoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAnQmxvY2snKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW4oYXJnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RleHRzdWJzY3JpcHQnOlxuICAgICAgICAgICAgY2FzZSAnc2InOlxuICAgICAgICAgICAgICAgIGlmICgoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAnVGV4dCcpKSAmJiAodW5pY29kZSA9IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtgX3ske2FyZ319YF0pKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KHVuaWNvZGUpO1xuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICdCbG9jaycpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbihhcmcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndGV4dHNjJzpcbiAgICAgICAgICAgICAgICBpZiAoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAnQmxvY2snKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW4oYXJnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2VucXVvdGUnOlxuICAgICAgICAgICAgY2FzZSAnbWtiaWJxdW90ZSc6XG4gICAgICAgICAgICAgICAgaWYgKGFyZyA9IHRoaXMuYXJndW1lbnQobm9kZSwgJ0Jsb2NrJykpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuKGFyZyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0ZXh0YmYnOlxuICAgICAgICAgICAgY2FzZSAnbWtiaWJib2xkJzpcbiAgICAgICAgICAgICAgICBpZiAoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAnQmxvY2snKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW4oYXJnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY3Rpb24nOlxuICAgICAgICAgICAgY2FzZSAnc3Vic2VjdGlvbic6XG4gICAgICAgICAgICBjYXNlICdzdWJzdWJzZWN0aW9uJzpcbiAgICAgICAgICAgIGNhc2UgJ3N1YnN1YnN1YnNlY3Rpb24nOlxuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICdCbG9jaycpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbihhcmcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWtiaWJpdGFsaWMnOlxuICAgICAgICAgICAgY2FzZSAnbWtiaWJlbXBoJzpcbiAgICAgICAgICAgIGNhc2UgJ3RleHRpdCc6XG4gICAgICAgICAgICBjYXNlICdlbXBoJzpcbiAgICAgICAgICAgICAgICBpZiAoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAnQmxvY2snKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW4oYXJnKTtcbiAgICAgICAgICAgICAgICBpZiAoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAnVGV4dCcpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbih7IGtpbmQ6ICdCbG9jaycsIG1hcmt1cDogeyBpdGFsaWNzOiB0cnVlIH0sIHZhbHVlOiBbdGhpcy50ZXh0KGFyZyldIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYmliY3lyJzpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hcmd1bWVudChub2RlLCAnbm9uZScpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KCk7XG4gICAgICAgICAgICAgICAgaWYgKGFyZyA9IHRoaXMuYXJndW1lbnQobm9kZSwgJ0Jsb2NrJykpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuKGFyZyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdoc3BhY2UnOlxuICAgICAgICAgICAgY2FzZSAnbWF0aHJtJzpcbiAgICAgICAgICAgIGNhc2UgJ3RleHRybSc6XG4gICAgICAgICAgICBjYXNlICdvY2lyYyc6XG4gICAgICAgICAgICBjYXNlICdtYm94JzpcbiAgICAgICAgICAgICAgICBpZiAoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAndGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaWNvZGUgPSB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYFxcXFwke25vZGUuY29tbWFuZH17JHthcmd9fWBdO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KHVuaWNvZGUgfHwgKG5vZGUuY29tbWFuZCA9PT0gJ2hzcGFjZScgPyAnICcgOiBhcmcpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoIW5vZGUuYXJndW1lbnRzLnJlcXVpcmVkLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFyZyA9IHRoaXMuYXJndW1lbnQobm9kZSwgJ0Jsb2NrJykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW4oYXJnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAvLyBqdXN0IHRha2UgdGhlIFVSTD8gTm90IHRoZSBsYWJlbD9cbiAgICAgICAgICAgIGNhc2UgJ2hyZWYnOlxuICAgICAgICAgICAgICAgIGlmIChhcmcgPSB0aGlzLmFyZ3VtZW50KG5vZGUsIDIpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbihhcmdbMF0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndXJsJzpcbiAgICAgICAgICAgICAgICBpZiAoYXJnID0gdGhpcy5hcmd1bWVudChub2RlLCAnVGV4dCcpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KGFyZyk7XG4gICAgICAgICAgICAgICAgaWYgKGFyZyA9IHRoaXMuYXJndW1lbnQobm9kZSwgJ0Jsb2NrJykpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuKGFyZyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzbCc6XG4gICAgICAgICAgICBjYXNlICdlbSc6XG4gICAgICAgICAgICBjYXNlICdpdCc6XG4gICAgICAgICAgICBjYXNlICdpdHNoYXBlJzpcbiAgICAgICAgICAgIGNhc2UgJ2JmJzpcbiAgICAgICAgICAgIGNhc2UgJ2Jmc2VyaWVzJzpcbiAgICAgICAgICAgIGNhc2UgJ3NjJzpcbiAgICAgICAgICAgIGNhc2UgJ3Njc2hhcGUnOlxuICAgICAgICAgICAgY2FzZSAndHQnOlxuICAgICAgICAgICAgY2FzZSAncm0nOlxuICAgICAgICAgICAgY2FzZSAnc2YnOlxuICAgICAgICAgICAgY2FzZSAndmVyYic6XG4gICAgICAgICAgICAgICAgLy8gaGFuZGxlZCBpbiB0aGUgZ3JhbW1hclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQoKTtcbiAgICAgICAgICAgIC8vIHdvdWxkbid0IGtub3cgd2hhdCB0byBkbyB3aXRoIHRoZXNlXG4gICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KCk7XG4gICAgICAgICAgICBjYXNlICdwYXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQoJ1xcblxcbicpO1xuICAgICAgICAgICAgY2FzZSAnY3lyJzpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hcmd1bWVudChub2RlLCAnbm9uZScpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwb2xoayc6XG4gICAgICAgICAgICAgICAgaWYgKHVuaWNvZGUgPSB0aGlzLmFyZ3VtZW50KG5vZGUsICd0ZXh0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGUubGVuZ3RoID09PSAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dCh1bmljb2RlICsgJ1xcdTAzMjgnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYXJndW1lbnQobm9kZSwgJ25vbmUnKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dCgnXFx1MDMyOCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5raW5kID09PSAnUmVndWxhckNvbW1hbmQnICYmIHRoaXMubmV3Y29tbWFuZHNbbm9kZS5jb21tYW5kXSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhbih7XG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kOiAnQmxvY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFya3VwOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMubmV3Y29tbWFuZHNbbm9kZS5jb21tYW5kXSkpLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHVuaWNvZGUybGF0ZXhfMS5kaWFjcml0aWNzLnRvdW5pY29kZVtub2RlLmNvbW1hbmRdKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkID0gdGhpcy5jbGVhbihub2RlLmFyZ3VtZW50cy5yZXF1aXJlZCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkLmxlbmd0aCA9PT0gMSAmJiBub2RlLmFyZ3VtZW50cy5yZXF1aXJlZFswXS5raW5kID09PSAnVGV4dCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIGlkZWEgd2h5IEkgY2FuJ3QganVzdCBzdHJhaWdodCByZXR1cm4gdGhpcyBidXQgdHlwZXNjcmlwdCBqdXN0IHdvbid0IHNodXQgdXBcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6ICdCbG9jaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya3VwOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogW3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6ICdEaWFjcml0aWNDb21tYW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcms6IG5vZGUuY29tbWFuZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3Rlcjogbm9kZS5hcmd1bWVudHMucmVxdWlyZWRbMF0udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3RsZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYzogbm9kZS5hcmd1bWVudHMucmVxdWlyZWRbMF0ubG9jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiBub2RlLmFyZ3VtZW50cy5yZXF1aXJlZFswXS5zb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuKGJsb2NrKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChibG9jayA9IHRoaXMuZmlyc3RfdGV4dF9ibG9jayhub2RlLmFyZ3VtZW50cy5yZXF1aXJlZFswXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaXhlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sudmFsdWUgPSBibG9jay52YWx1ZS5yZWR1Y2UoKHZhbHVlLCBjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZml4ZWQgJiYgY2hpbGQua2luZCA9PT0gJ1RleHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUucHVzaCh7IGtpbmQ6ICdEaWFjcml0aWNDb21tYW5kJywgbWFyazogbm9kZS5jb21tYW5kLCBjaGFyYWN0ZXI6IGNoaWxkLnZhbHVlWzBdIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5wdXNoKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY2hpbGQpLCB7IHZhbHVlOiBjaGlsZC52YWx1ZS5zdWJzdHJpbmcoMSkgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIFtdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiAnQmxvY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmt1cDoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG5vZGUuYXJndW1lbnRzLnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvdmVybGluZSB3aXRob3V0IGFyZ3VtZW50cyBkb2Vzbid0IHNlZW0gdG8gcmVuZGVyIGluIExhVGVYXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS5jb21tYW5kID09PSAnb3ZlcmxpbmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQoJyAnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsZWFuKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiAnQmxvY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmt1cDoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFt0aGlzLnRleHQoJyAnICsgdW5pY29kZTJsYXRleF8xLmRpYWNyaXRpY3MudG91bmljb2RlW25vZGUuY29tbWFuZF0pXS5jb25jYXQobm9kZS5hcmd1bWVudHMucmVxdWlyZWQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHVuaWNvZGUgPSB1bmljb2RlMmxhdGV4XzEubGF0ZXhbbm9kZS5zb3VyY2VdIHx8IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtgJHtub2RlLnNvdXJjZX17fWBdKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0KHVuaWNvZGUpO1xuICAgICAgICAgICAgICAgIGlmICgodW5pY29kZSA9IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtgXFxcXCR7bm9kZS5jb21tYW5kfWBdIHx8IHVuaWNvZGUybGF0ZXhfMS5sYXRleFtgXFxcXCR7bm9kZS5jb21tYW5kfXt9YF0pICYmIHRoaXMuYXJndW1lbnQobm9kZSwgJ25vbmUnKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dCh1bmljb2RlKTtcbiAgICAgICAgICAgICAgICBpZiAoKGFyZyA9IHRoaXMuYXJndW1lbnQobm9kZSwgJ1RleHQnKSkgJiYgKHVuaWNvZGUgPSB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYFxcXFwke25vZGUuY29tbWFuZH17JHthcmd9fWBdKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGV4dCh1bmljb2RlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbl9wcmVhbWJsZSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQobm9kZS5zb3VyY2UpO1xuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcihuZXcgVGVYRXJyb3IoYFVuaGFuZGxlZCBjb21tYW5kOiAke25vZGUuY29tbWFuZH1gICsgdGhpcy5zaG93KG5vZGUpLCBub2RlLCB0aGlzLmNodW5rKSwgdGhpcy50ZXh0KCkpO1xuICAgIH1cbiAgICBwcmVzZXJ2ZUNhc2Uod29yZCkge1xuICAgICAgICAvLyB3b3JkID0gd29yZC5yZXBsYWNlKG5ldyBSZWdFeHAoYFwiWyR7dGhpcy5tYXJrdXAuZW5xdW90ZS5vcGVufSR7dGhpcy5tYXJrdXAuZW5xdW90ZS5jbG9zZX06KCldYCwgJ2cnKSwgJycpXG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghd29yZC50cmltKCkpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICghd29yZC5tYXRjaChwcmVzZXJ2ZUNhc2UuaGFzQWxwaGFOdW0pKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIHdvcmQgPSB3b3JkLnJlcGxhY2UoL1tcXC/igJkn4oCdOigpXS9nLCAnJyk7XG4gICAgICAgIGlmICh3b3JkID09PSAnSScpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKHdvcmQubGVuZ3RoID09PSAxKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAod29yZC5yZXBsYWNlKHByZXNlcnZlQ2FzZS5ub3RDYXNlU2Vuc2l0aXZlKSA9PT0gJycpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIC8vIHdvcmQgPSB3b3JkLnJlcGxhY2UocHJlc2VydmVDYXNlLm5vdEFscGhhTnVtLCAnJylcbiAgICAgICAgLy8gc2ltcGxlIGNhcCBhdCBzdGFydCBvZiBmaWVsZFxuICAgICAgICBpZiAod29yZC5tYXRjaChwcmVzZXJ2ZUNhc2UubGVhZGluZ0NhcCkgJiYgKChfYiA9IChfYSA9IHRoaXMuZmllbGQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubGVuZ3RoKSA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKHdvcmQubWF0Y2gocHJlc2VydmVDYXNlLmFsbENhcHMpKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmICh3b3JkLmxlbmd0aCA+IDEgJiYgd29yZC5tYXRjaChwcmVzZXJ2ZUNhc2Uuam9pbmVkKSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKHdvcmQubWF0Y2gocHJlc2VydmVDYXNlLmhhc1VwcGVyKSlcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAod29yZC5tYXRjaChwcmVzZXJ2ZUNhc2UuaXNOdW1iZXIpKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29udmVydChub2RlKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG5vZGUpKVxuICAgICAgICAgICAgcmV0dXJuIG5vZGUubWFwKGNoaWxkID0+IHRoaXMuY29udmVydChjaGlsZCkpO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJhdyAmJiB0aGlzLmZpZWxkKVxuICAgICAgICAgICAgbm9kZSA9IHRoaXMudGV4dChub2RlLnNvdXJjZSk7XG4gICAgICAgIHN3aXRjaCAobm9kZS5raW5kKSB7XG4gICAgICAgICAgICBjYXNlICdNYXJrdXAnOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLnRleHQgKz0gbm9kZS52YWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JyYWNlZENvbW1lbnQnOlxuICAgICAgICAgICAgY2FzZSAnTGluZUNvbW1lbnQnOlxuICAgICAgICAgICAgICAgIHRoaXMuY29tbWVudHMucHVzaChub2RlLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VudHJ5JzpcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnZlcnRfZW50cnkobm9kZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdOdW1iZXInOlxuICAgICAgICAgICAgICAgIHRoaXMuY29udmVydF9udW1iZXIobm9kZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdUZXh0JzpcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnZlcnRfdGV4dChub2RlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Jsb2NrJzpcbiAgICAgICAgICAgIGNhc2UgJ0lubGluZU1hdGgnOlxuICAgICAgICAgICAgY2FzZSAnRGlzcGxheU1hdGgnOlxuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5maWVsZCA/IHRoaXMuZmllbGQudGV4dC5sZW5ndGggOiBudWxsO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXNlcnZlID0gdHlwZW9mIHN0YXJ0ID09PSAnbnVtYmVyJyAmJiB0aGlzLmZpZWxkLnByZXNlcnZlUmFuZ2VzO1xuICAgICAgICAgICAgICAgIHRoaXMuY29udmVydF9ibG9jayhub2RlKTtcbiAgICAgICAgICAgICAgICBpZiAocHJlc2VydmUgJiYgKG5vZGUuY2FzZSB8fCBub2RlLmtpbmQuZW5kc1dpdGgoJ01hdGgnKSkpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJlc2VydmUoc3RhcnQsIHRoaXMuZmllbGQudGV4dC5sZW5ndGgpOyAvLyAsIGBjb252ZXJ0LWJsb2NrOiBjYXNlPSR7bm9kZS5jYXNlfSwgbWF0aD0ke25vZGUua2luZC5lbmRzV2l0aCgnTWF0aCcpfWApXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdFbnZpcm9ubWVudCc6XG4gICAgICAgICAgICAgICAgdGhpcy5jb252ZXJ0X2Vudmlyb25tZW50KG5vZGUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUHJlYW1ibGVFeHByZXNzaW9uJzpcbiAgICAgICAgICAgICAgICB0aGlzLnByZWFtYmxlLnB1c2gobm9kZS52YWx1ZS5tYXAocHJlYW1ibGUgPT4gcHJlYW1ibGUuc291cmNlKS5qb2luKCdcXG5cXG4nKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdEaXNwbGF5TWF0aCc6XG4gICAgICAgICAgICBjYXNlICdJbmxpbmVNYXRoJzpcbiAgICAgICAgICAgIGNhc2UgJ1N0cmluZ0RlY2xhcmF0aW9uJzpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3IobmV3IFBhcnNlckVycm9yKGBubyBjb252ZXJ0ZXIgZm9yICR7bm9kZS5raW5kfTogJHt0aGlzLnNob3cobm9kZSl9YCwgbm9kZSksIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3BsaXRPbmNlKHMsIHNlcCwgZnJvbUVuZCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHNwbGl0ID0gZnJvbUVuZCA/IHMubGFzdEluZGV4T2Yoc2VwKSA6IHMuaW5kZXhPZihzZXApO1xuICAgICAgICByZXR1cm4gKHNwbGl0IDwgMCkgPyBbcywgJyddIDogW3Muc3Vic3RyKDAsIHNwbGl0KSwgcy5zdWJzdHIoc3BsaXQgKyAxKV07XG4gICAgfVxuICAgIHBhcnNlTmFtZShuYW1lKSB7XG4gICAgICAgIGxldCBwYXJzZWQgPSBudWxsO1xuICAgICAgICBjb25zdCBwYXJ0cyA9IG5hbWUuc3BsaXQobWFya2VyLmNvbW1hKTtcbiAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCAmJiAhcGFydHMuZmluZChwID0+ICFwLm1hdGNoKC9eW2Etel0rKC1pKT89L2kpKSkgeyAvLyBleHRlbmRlZCBuYW1lIGZvcm1hdFxuICAgICAgICAgICAgZm9yIChjb25zdCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkID0gcGFyc2VkIHx8IHt9O1xuICAgICAgICAgICAgICAgIGNvbnN0IFthdHRyLCB2YWx1ZV0gPSB0aGlzLnNwbGl0T25jZShwYXJ0LnJlcGxhY2UobWFya2VyLnJlLnNwYWNlLCAnJyksICc9JykubWFwKHYgPT4gdi50cmltKCkpO1xuICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN3aXRjaCAoYXR0ci50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2ZhbWlseSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWQubGFzdE5hbWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdnaXZlbi1pJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZC5pbml0aWFsID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZ2l2ZW4nOlxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkLmZpcnN0TmFtZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZWZpeCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWQucHJlZml4ID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3VmZml4JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZC5zdWZmaXggPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICd1c2VwcmVmaXgnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkLnVzZXByZWZpeCA9IHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdqdW5pb3Jjb21tYSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWQudXNlcHJlZml4ID0gdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWRbYXR0ci50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IC8oLis/KVxccysodmVyZXx2b258dmFuIGRlbnx2YW4gZGVyfHZhbnxkZXxkZWx8ZGVsbGF8ZGVyfGRpfGRhfHBpZXRyb3x2YW5kZW58ZHV8c3QufHN0fGxhfGxvfHRlcnxiaW58aWJufHRlfHRlbnxvcHxiZW58YWwpXFxzKyguKykvO1xuICAgICAgICBsZXQgbTtcbiAgICAgICAgc3dpdGNoIChwYXJzZWQgPyAwIDogcGFydHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgLy8gYWxyZWFkeSBwYXJzZWRcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTogLy8gbmFtZSB3aXRob3V0IGNvbW1hc1xuICAgICAgICAgICAgICAgIC8vIGxpdGVyYWxcbiAgICAgICAgICAgICAgICBpZiAobWFya2VyLnJlLmxpdGVyYWxOYW1lLnRlc3QocGFydHNbMF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZCA9IHsgbGl0ZXJhbDogcGFydHNbMF0gfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobSA9IHBhcnRzWzBdLnJlcGxhY2UobWFya2VyLnJlLnNwYWNlLCAnICcpLm1hdGNoKHByZWZpeCkpIHsgLy8gc3BsaXQgb24gcHJlZml4XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0TmFtZTogbVsxXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDogbVsyXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3ROYW1lOiBtWzNdLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdG9wLWxldmVsIFwiZmlyc3RuYW1lIGxhc3RuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW2ZpcnN0TmFtZSwgbGFzdE5hbWVdID0gdGhpcy5zcGxpdE9uY2UocGFydHNbMF0sIG1hcmtlci5zcGFjZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsYXN0TmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkID0geyBmaXJzdE5hbWUsIGxhc3ROYW1lIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWQgPSB7IGxhc3ROYW1lOiBmaXJzdE5hbWUgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMjogLy8gbGFzdG5hbWUsIGZpcnN0bmFtZVxuICAgICAgICAgICAgICAgIHBhcnNlZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgbGFzdE5hbWU6IHBhcnRzWzBdLFxuICAgICAgICAgICAgICAgICAgICBmaXJzdE5hbWU6IHBhcnRzWzFdLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OiAvLyBsYXN0bmFtZSwgc3VmZml4LCBmaXJzdG5hbWVcbiAgICAgICAgICAgICAgICBwYXJzZWQgPSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3ROYW1lOiBwYXJ0c1swXSxcbiAgICAgICAgICAgICAgICAgICAgc3VmZml4OiBwYXJ0c1sxXSxcbiAgICAgICAgICAgICAgICAgICAgZmlyc3ROYW1lOiBwYXJ0cy5zbGljZSgyKS5qb2luKG1hcmtlci5jb21tYSksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhwYXJzZWQpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgIT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgcGFyc2VkW2tdID0gbWFya2VyLmNsZWFuKHYpLnRyaW0oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyc2VkO1xuICAgIH1cbiAgICBjb252ZXJ0X2VudHJ5KG5vZGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB0aGlzLmVudHJ5ID0ge1xuICAgICAgICAgICAga2V5OiBub2RlLmlkLFxuICAgICAgICAgICAgdHlwZTogbm9kZS50eXBlLFxuICAgICAgICAgICAgZmllbGRzOiB7fSxcbiAgICAgICAgICAgIGNyZWF0b3JzOiB7fSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnB1c2godGhpcy5lbnRyeSk7XG4gICAgICAgIC8vIG9yZGVyIHRoZXNlIGZpcnN0IGZvciBsYW5ndWFnZS1kZXBlbmRlbnQgc2VudGVuY2UgY2FzaW5nXG4gICAgICAgIGNvbnN0IG9yZGVyID0gWydsYW5naWQnLCAnaHlwaGVuYXRpb24nLCAnbGFuZ3VhZ2UnXTtcbiAgICAgICAgbm9kZS5maWVsZHMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgY29uc3QgaWEgPSBvcmRlci5pbmRleE9mKGEubmFtZSk7XG4gICAgICAgICAgICBjb25zdCBpYiA9IG9yZGVyLmluZGV4T2YoYi5uYW1lKTtcbiAgICAgICAgICAgIGlmIChpYSA9PT0gLTEgJiYgaWIgPT09IC0xKVxuICAgICAgICAgICAgICAgIHJldHVybiBhLm5hbWUubG9jYWxlQ29tcGFyZShiLm5hbWUpOyAvLyBkb2Vzbid0IG1hdHRlciByZWFsbHlcbiAgICAgICAgICAgIGlmIChpYSA9PT0gLTEpXG4gICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICBpZiAoaWIgPT09IC0xKVxuICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIHJldHVybiBpYSAtIGliO1xuICAgICAgICB9KTtcbiAgICAgICAgbGV0IHNlbnRlbmNlQ2FzZSA9ICEhdGhpcy5vcHRpb25zLnNlbnRlbmNlQ2FzZS5sZW5ndGg7IC8vIGlmIHNlbnRlbmNlQ2FzZSBpcyBlbXB0eSwgbm8gc2VudGVuY2UgY2FzaW5nXG4gICAgICAgIGZvciAoY29uc3QgZmllbGQgb2Ygbm9kZS5maWVsZHMpIHtcbiAgICAgICAgICAgIGlmIChmaWVsZC5raW5kICE9PSAnRmllbGQnKVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yKG5ldyBQYXJzZXJFcnJvcihgRXhwZWN0ZWQgRmllbGQsIGdvdCAke2ZpZWxkLmtpbmR9YCwgbm9kZSksIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0Q2xlYW5pbmcoZmllbGQubmFtZSk7XG4gICAgICAgICAgICAvKlxuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5yYXcgJiYgdGhpcy5maWVsZFR5cGUgIT09ICdjcmVhdG9yJykge1xuICAgICAgICAgICAgICB0aGlzLmVudHJ5LmZpZWxkc1tmaWVsZC5uYW1lXSA9IFsgZmllbGQudmFsdWUubWFwKHYgPT4gdi5zb3VyY2UpLmpvaW4oJycpIF1cbiAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmZpZWxkID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGZpZWxkLm5hbWUsXG4gICAgICAgICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgICAgICAgbGV2ZWw6IDAsXG4gICAgICAgICAgICAgICAgd29yZHM6IHtcbiAgICAgICAgICAgICAgICAgICAgdXBwZXI6IDAsXG4gICAgICAgICAgICAgICAgICAgIGxvd2VyOiAwLFxuICAgICAgICAgICAgICAgICAgICBvdGhlcjogMCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHByZXNlcnZlUmFuZ2VzOiAoc2VudGVuY2VDYXNlICYmIGZpZWxkcy50aXRsZS5pbmNsdWRlcyhmaWVsZC5uYW1lKSkgPyBbXSA6IG51bGwsXG4gICAgICAgICAgICAgICAgaHRtbDogdGhpcy5vcHRpb25zLmh0bWxGaWVsZHMuaW5jbHVkZXMoZmllbGQubmFtZSksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5lbnRyeS5maWVsZHNbdGhpcy5maWVsZC5uYW1lXSA9IHRoaXMuZW50cnkuZmllbGRzW3RoaXMuZmllbGQubmFtZV0gfHwgW107XG4gICAgICAgICAgICAvLyBzcGVjaWFsIGNhc2UgZm9yICd0aXRsZSA9IDIwMjAnXG4gICAgICAgICAgICBpZiAoZmllbGQudmFsdWUua2luZCA9PT0gJ051bWJlcicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVudHJ5LmZpZWxkc1t0aGlzLmZpZWxkLm5hbWVdLnB1c2goZmllbGQudmFsdWUudmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQgPSBudWxsO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb252ZXJ0KGZpZWxkLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudGV4dCA9IHRoaXMuZmllbGQudGV4dC50cmltKCk7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnRleHQgPSB0aGlzLmZpZWxkLnRleHQucmVwbGFjZSgvPFxcLyhbYS16XSk+PFxcMT4vZywgJycpO1xuICAgICAgICAgICAgdGhpcy5maWVsZC50ZXh0ID0gdGhpcy5maWVsZC50ZXh0LnJlcGxhY2UoLzwoW2Etel0pPihcXHMqKTxcXC9cXDE+L2csICckMScpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkLnRleHQpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAvLyBkaXNhYmxlIHNlbnRlbmNlQ2FzaW5nIGlmIG5vdCBhbiBlbmdsaXNoXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZmllbGQubmFtZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2xhbmdpZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnaHlwaGVuYXRpb24nOlxuICAgICAgICAgICAgICAgICAgICBzZW50ZW5jZUNhc2UgPSBzZW50ZW5jZUNhc2UgJiYgdGhpcy5vcHRpb25zLnNlbnRlbmNlQ2FzZS5pbmNsdWRlcyh0aGlzLmZpZWxkLnRleHQudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2xhbmd1YWdlJzpcbiAgICAgICAgICAgICAgICAgICAgc2VudGVuY2VDYXNlID0gc2VudGVuY2VDYXNlICYmICEhKHRoaXMuZmllbGQudGV4dC50b0xvd2VyQ2FzZSgpLnRyaW0oKS5zcGxpdCgvXFxzKixcXHMqLykuZmluZChsYW5nID0+IHRoaXMub3B0aW9ucy5zZW50ZW5jZUNhc2UuaW5jbHVkZXMobGFuZykpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBcImdyb3Vwc1wiIGlzIGEgamFicmVmIDMuOCsgbW9uc3Ryb3NpdHlcbiAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkLm5hbWUubWF0Y2goL14oa2V5d29yZHM/fGdyb3VwcykkLykpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCB0ZXh0IG9mIHRoaXMuZmllbGQudGV4dC5zcGxpdChtYXJrZXIuY29tbWEpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnRyaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRleHQpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVudHJ5LmZpZWxkc1t0aGlzLmZpZWxkLm5hbWVdLnB1c2godGV4dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5jbGVhbmluZy50eXBlID09PSAnY3JlYXRvcicpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZW50cnkuY3JlYXRvcnNbdGhpcy5maWVsZC5uYW1lXSlcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRyeS5jcmVhdG9yc1t0aGlzLmZpZWxkLm5hbWVdID0gW107XG4gICAgICAgICAgICAgICAgLy8ge00uIEhhbGxlLCBKLiBCcmVzbmFuLCBhbmQgRy4gTWlsbGVyfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkLnRleHQuaW5jbHVkZXMoYCR7bWFya2VyLmNvbW1hfSR7bWFya2VyLmFuZH1gKSkgeyAvL1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLnRleHQgPSB0aGlzLmZpZWxkLnRleHQucmVwbGFjZShuZXcgUmVnRXhwKGAke21hcmtlci5jb21tYX0ke21hcmtlci5hbmR9YCwgJ2cnKSwgbWFya2VyLmFuZCkucmVwbGFjZShuZXcgUmVnRXhwKG1hcmtlci5jb21tYSksIG1hcmtlci5hbmQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNyZWF0b3Igb2YgdGhpcy5maWVsZC50ZXh0LnNwbGl0KG1hcmtlci5hbmQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW50cnkuZmllbGRzW3RoaXMuZmllbGQubmFtZV0ucHVzaChtYXJrZXIuY2xlYW4oY3JlYXRvcikpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVudHJ5LmNyZWF0b3JzW3RoaXMuZmllbGQubmFtZV0ucHVzaCh0aGlzLnBhcnNlTmFtZShjcmVhdG9yKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoZmllbGRzLnVuYWJicmV2LmluY2x1ZGVzKGZpZWxkLm5hbWUpKSB7IC8vIGRvZXNuJ3QgZ2V0IHNlbnRlbmNlIGNhc2luZyBhbnlob3cgVE9ETzogYm9va3RpdGxlIGRvZXMhXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRyeS5maWVsZHNbdGhpcy5maWVsZC5uYW1lXS5wdXNoKCgoKF9hID0gdGhpcy5vcHRpb25zLnVuYWJicmV2aWF0ZVt0aGlzLmZpZWxkLnRleHRdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgdGhpcy5maWVsZC50ZXh0KS5ub3JtYWxpemUoJ05GQycpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkLnByZXNlcnZlUmFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZ3Vlc3NBbHJlYWR5U2VudGVuY2VDYXNlZCAmJiBNYXRoLm1heCh0aGlzLmZpZWxkLndvcmRzLnVwcGVyLCB0aGlzLmZpZWxkLndvcmRzLmxvd2VyKSA+ICh0aGlzLmZpZWxkLndvcmRzLm90aGVyICsgTWF0aC5taW4odGhpcy5maWVsZC53b3Jkcy51cHBlciwgdGhpcy5maWVsZC53b3Jkcy5sb3dlcikpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXNlcnZlKG51bGwsIG51bGwpOyAvLyAsICdtb3N0bHkgc2VudGVuY2UgY2FzZWQgYWxyZWFkeScpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0eHQgPSB0aGlzLmZpZWxkLnRleHQucmVwbGFjZShwcmVzZXJ2ZUNhc2UubWFya3VwLCBtYXJrdXAgPT4gbWFya2VyLm1hcmt1cC5yZXBlYXQobWFya3VwLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hdGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJlc2VydmVDYXNlLnNlbnRlbmNlU3RhcnQubGFzdEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgobWF0Y2ggPSBwcmVzZXJ2ZUNhc2Uuc2VudGVuY2VTdGFydC5leGVjKHR4dCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXhjbHVkZSBzdHVmZiBsaWtlIFwiVS5TLiBUYXhlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoLmluZGV4ID4gMiAmJiB0eHQuc3Vic3RyKDAsIG1hdGNoLmluZGV4ICsgMSkubWF0Y2gocHJlc2VydmVDYXNlLmFjcm9ueW0pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXNlcnZlKG1hdGNoLmluZGV4LCBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCk7IC8vICwgYHNlbnRlbmNlU3RhcnQ6ICR7bWF0Y2hbMF19IGF0ICR7bWF0Y2guaW5kZXh9Li4ke21hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RofWApXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUNhc2UucXVvdGVkLmxhc3RJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKG1hdGNoID0gcHJlc2VydmVDYXNlLnF1b3RlZC5leGVjKHRoaXMuZmllbGQudGV4dCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVzZXJ2ZShtYXRjaC5pbmRleCwgbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGgpOyAvLyAsICdxdW90ZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZW50cnkuZmllbGRzW3RoaXMuZmllbGQubmFtZV0ucHVzaCh0aGlzLmNvbnZlcnRUb1NlbnRlbmNlQ2FzZSh0aGlzLmZpZWxkLnRleHQpLm5vcm1hbGl6ZSgnTkZDJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmllbGQgPSBudWxsO1xuICAgIH1cbiAgICBjb252ZXJ0VG9TZW50ZW5jZUNhc2UodGV4dCkge1xuICAgICAgICBpZiAoIXRoaXMuZmllbGQucHJlc2VydmVSYW5nZXMpXG4gICAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgLy8gYWx3YXlzIGtlZXAgdGhlIGxlYWRpbmcgY2hhciwgYnV0IHNraXAgbWFya3VwXG4gICAgICAgIGNvbnN0IGxlYWQgPSB0ZXh0Lm1hdGNoKC9eKDxbXj5dKz4pKi4vKTtcbiAgICAgICAgaWYgKGxlYWQpIHtcbiAgICAgICAgICAgIHRoaXMucHJlc2VydmUobGVhZFswXS5sZW5ndGggLSAxLCBsZWFkWzBdLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnByZXNlcnZlKDAsIDEpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBzZW50ZW5jZUNhc2VkID0gdGV4dC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLygoW1xcPyFdXFxzKnxeKShbXFwnXFxcIsKhwr/igJzigJjigJ7Cq1xcc10rKT9bXlxcc10pL2csIHggPT4geC50b1VwcGVyQ2FzZSgpKTtcbiAgICAgICAgZm9yIChjb25zdCB7IHN0YXJ0LCBlbmQgfSBvZiB0aGlzLmZpZWxkLnByZXNlcnZlUmFuZ2VzKSB7XG4gICAgICAgICAgICBzZW50ZW5jZUNhc2VkID0gc2VudGVuY2VDYXNlZC5zdWJzdHJpbmcoMCwgc3RhcnQpICsgdGV4dC5zdWJzdHJpbmcoc3RhcnQsIGVuZCkgKyBzZW50ZW5jZUNhc2VkLnN1YnN0cmluZyhlbmQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0ZXh0ICE9PSBzZW50ZW5jZUNhc2VkKVxuICAgICAgICAgICAgdGhpcy5lbnRyeS5zZW50ZW5jZUNhc2VkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHNlbnRlbmNlQ2FzZWQ7XG4gICAgfVxuICAgIGNvbnZlcnRfbnVtYmVyKG5vZGUpIHtcbiAgICAgICAgdGhpcy5maWVsZC50ZXh0ICs9IGAke25vZGUudmFsdWV9YDtcbiAgICB9XG4gICAgY29udmVydF90ZXh0KG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUubW9kZSA9PT0gJ3ZlcmJhdGltJykge1xuICAgICAgICAgICAgdGhpcy5maWVsZC50ZXh0ICs9IG5vZGUudmFsdWUudHJpbSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIGhldXJpc3RpYyB0byBkZXRlY3QgcHJlLXNlbnRlbmNlY2FzZWQgdGV4dFxuICAgICAgICBmb3IgKGNvbnN0IHdvcmQgb2Ygbm9kZS52YWx1ZS5zcGxpdCgvXFxiLykpIHtcbiAgICAgICAgICAgIGlmICh3b3JkLm1hdGNoKHByZXNlcnZlQ2FzZS5hbGxMb3dlcikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLndvcmRzLmxvd2VyKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh3b3JkLm1hdGNoKHByZXNlcnZlQ2FzZS5hbGxDYXBzKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQud29yZHMudXBwZXIrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHdvcmQubWF0Y2gocHJlc2VydmVDYXNlLmhhc0FscGhhKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQud29yZHMub3RoZXIrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5maWVsZC5sZXZlbCA9PT0gMCAmJiB0aGlzLmNsZWFuaW5nLnR5cGUgPT09ICdjcmVhdG9yJykge1xuICAgICAgICAgICAgdGhpcy5maWVsZC50ZXh0ICs9IG5vZGUudmFsdWUucmVwbGFjZSgvXFxzK2FuZFxccysvaWcsIG1hcmtlci5hbmQpLnJlcGxhY2UoL1xccyosXFxzKi9nLCBtYXJrZXIuY29tbWEpLnJlcGxhY2UoL1xccysvZywgbWFya2VyLnNwYWNlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5maWVsZC5sZXZlbCA9PT0gMCAmJiB0aGlzLmZpZWxkLm5hbWUubWF0Y2goL14oa2V5d29yZHM/fGdyb3VwcykkLykpIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudGV4dCArPSBub2RlLnZhbHVlLnJlcGxhY2UoL1xccypbOyxdXFxzKi9nLCBtYXJrZXIuY29tbWEpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZpZWxkLmh0bWwpIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudGV4dCArPSBub2RlLnZhbHVlLnJlcGxhY2UoLyYvZywgJyZhbXA7JykucmVwbGFjZSgvPC9nLCAnJmx0OycpLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmZpZWxkLnByZXNlcnZlUmFuZ2VzKSB7XG4gICAgICAgICAgICBjb25zdCB3b3JkcyA9IG5vZGUudmFsdWUuc3BsaXQoLyhcXHMrKS8pO1xuICAgICAgICAgICAgZm9yIChjb25zdCB3b3JkIG9mIHdvcmRzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmZpZWxkLnRleHQubGVuZ3RoO1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQudGV4dCArPSB3b3JkO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByZXNlcnZlQ2FzZSh3b3JkKSlcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVzZXJ2ZShzdGFydCwgdGhpcy5maWVsZC50ZXh0Lmxlbmd0aCk7IC8vICwgYHdvcmQ6ICR7SlNPTi5zdHJpbmdpZnkod29yZCl9YClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQudGV4dCArPSBub2RlLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnZlcnRfZW52aXJvbm1lbnQobm9kZSkge1xuICAgICAgICB0aGlzLmZpZWxkLnRleHQgKz0geyBlbnVtZXJhdGU6ICc8b2w+JywgaXRlbWl6ZTogJzx1bD4nIH1bbm9kZS5lbnZdO1xuICAgICAgICB0aGlzLmNvbnZlcnRfYmxvY2soT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBub2RlKSwgeyBraW5kOiAnQmxvY2snLCBtYXJrdXA6IHt9IH0pKTtcbiAgICAgICAgdGhpcy5maWVsZC50ZXh0ICs9IHsgZW51bWVyYXRlOiAnPC9vbD4nLCBpdGVtaXplOiAnPC91bD4nIH1bbm9kZS5lbnZdO1xuICAgIH1cbiAgICBjb252ZXJ0X2Jsb2NrKG5vZGUpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmZpZWxkLnRleHQubGVuZ3RoO1xuICAgICAgICBsZXQgcHJlZml4ID0gJyc7XG4gICAgICAgIGxldCBwb3N0Zml4ID0gJyc7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuY2FzZVByb3RlY3Rpb24gIT09ICdzdHJpY3QnICYmIHRoaXMuY2xlYW5pbmcudHlwZSA9PT0gJ290aGVyJylcbiAgICAgICAgICAgIGRlbGV0ZSBub2RlLmNhc2U7XG4gICAgICAgIGlmICh0aGlzLmNsZWFuaW5nLnR5cGUgPT09ICdjcmVhdG9yJyAmJiBub2RlLmNhc2UgPT09ICdwcm90ZWN0Jykge1xuICAgICAgICAgICAgcHJlZml4ICs9IG1hcmtlci5saXRlcmFsO1xuICAgICAgICAgICAgcG9zdGZpeCA9IG1hcmtlci5saXRlcmFsICsgcG9zdGZpeDtcbiAgICAgICAgICAgIGRlbGV0ZSBub2RlLmNhc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUuY2FzZSA9PT0gJ3Byb3RlY3QnKSB7XG4gICAgICAgICAgICBwcmVmaXggKz0gdGhpcy5vcHRpb25zLm1hcmt1cC5jYXNlUHJvdGVjdC5vcGVuO1xuICAgICAgICAgICAgcG9zdGZpeCA9IHRoaXMub3B0aW9ucy5tYXJrdXAuY2FzZVByb3RlY3QuY2xvc2UgKyBwb3N0Zml4O1xuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlLmtpbmQgPT09ICdCbG9jaycpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbWFya3VwIG9mIE9iamVjdC5rZXlzKG5vZGUubWFya3VwKSkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5vcHRpb25zLm1hcmt1cFttYXJrdXBdKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvcihuZXcgUGFyc2VyRXJyb3IoYG1hcmt1cDogJHttYXJrdXB9YCwgbm9kZSksIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgcHJlZml4ICs9IHRoaXMub3B0aW9ucy5tYXJrdXBbbWFya3VwXS5vcGVuO1xuICAgICAgICAgICAgICAgIHBvc3RmaXggPSB0aGlzLm9wdGlvbnMubWFya3VwW21hcmt1cF0uY2xvc2UgKyBwb3N0Zml4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVuZCA9IHtcbiAgICAgICAgICAgIHdpdGhvdXRQcmVmaXg6IHRoaXMuZmllbGQudGV4dC5sZW5ndGgsXG4gICAgICAgICAgICB3aXRoUHJlZml4OiB0aGlzLmZpZWxkLnRleHQubGVuZ3RoICsgcHJlZml4Lmxlbmd0aCxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5maWVsZC50ZXh0ICs9IHByZWZpeDtcbiAgICAgICAgdGhpcy5maWVsZC5sZXZlbCsrO1xuICAgICAgICB0aGlzLmNvbnZlcnQobm9kZS52YWx1ZSk7XG4gICAgICAgIHRoaXMuZmllbGQubGV2ZWwtLTtcbiAgICAgICAgY29uc3QgYWRkZWQgPSB0aGlzLmZpZWxkLnRleHQuc3Vic3RyaW5nKGVuZC53aXRoUHJlZml4KTtcbiAgICAgICAgY29uc3QgYWRkZWRfdGV4dCA9IGFkZGVkLnJlcGxhY2UoLzxcXC8/W14+XSs+L2csICcnKTtcbiAgICAgICAgY29uc3QgbmVlZHNQcm90ZWN0aW9uID0gYWRkZWRfdGV4dCAmJiAoKHRoaXMub3B0aW9ucy5jYXNlUHJvdGVjdGlvbiA9PT0gJ3N0cmljdCcgJiYgYWRkZWRfdGV4dC5tYXRjaChwcmVzZXJ2ZUNhc2UuaXNDYXNlU2Vuc2l0aXZlKSlcbiAgICAgICAgICAgIHx8XG4gICAgICAgICAgICAgICAgKHRoaXMub3B0aW9ucy5jYXNlUHJvdGVjdGlvbiA9PT0gJ2FzLW5lZWRlZCcgJiYgYWRkZWRfdGV4dC5zcGxpdCgvXFxzKy8pLmZpbmQod29yZCA9PiB0aGlzLm5lZWRzUHJvdGVjdGlvbih3b3JkKSkpKTtcbiAgICAgICAgaWYgKCFhZGRlZCkgeyAvLyBub3RoaW5nIHdhcyBhZGRlZCwgc28gcmVtb3ZlIHByZWZpeFxuICAgICAgICAgICAgdGhpcy5maWVsZC50ZXh0ID0gdGhpcy5maWVsZC50ZXh0LnN1YnN0cmluZygwLCBlbmQud2l0aG91dFByZWZpeCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5maWVsZC5wcmVzZXJ2ZVJhbmdlcyAmJiBwcmVmaXggPT09IHRoaXMub3B0aW9ucy5tYXJrdXAuY2FzZVByb3RlY3Qub3BlbiAmJiAhbmVlZHNQcm90ZWN0aW9uKSB7XG4gICAgICAgICAgICAvLyBzb21ldGhpbmcgd2FzIGFkZGVkIHRoYXQgZGlkbid0IGFjdHVhbGx5IG5lZWQgY2FzZSBwcm90ZWN0aW9uXG4gICAgICAgICAgICB0aGlzLmZpZWxkLnRleHQgPSB0aGlzLmZpZWxkLnRleHQuc3Vic3RyaW5nKDAsIGVuZC53aXRob3V0UHJlZml4KSArIGFkZGVkO1xuICAgICAgICAgICAgdGhpcy5maWVsZC5wcmVzZXJ2ZVJhbmdlcyA9IHRoaXMuZmllbGQucHJlc2VydmVSYW5nZXMuZmlsdGVyKHJhbmdlID0+IHJhbmdlLnN0YXJ0IDwgZW5kLndpdGhvdXRQcmVmaXgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5maWVsZC50ZXh0ICs9IHBvc3RmaXg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWVsZC50ZXh0ID0gdGhpcy5maWVsZC50ZXh0LnJlcGxhY2UoLzwoc3VwfHN1Yik+KFtePD5dKyk8XFwvXFwxPiQvaSwgKG0sIG1vZGUsIGNoYXJzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjbWQgPSBtb2RlID09PSAnc3VwJyA/ICdeJyA6ICdfJztcbiAgICAgICAgICAgIGxldCBzY3JpcHQgPSAnJztcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hhciBvZiBjaGFycykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuaWNvZGUgPSB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYCR7Y21kfSR7Y2hhcn1gXSB8fCB1bmljb2RlMmxhdGV4XzEubGF0ZXhbYCR7Y21kfXske2NoYXJ9fWBdO1xuICAgICAgICAgICAgICAgIHNjcmlwdCArPSB1bmljb2RlID8gdW5pY29kZSA6IGA8JHttb2RlfT4ke2NoYXJ9PC8ke21vZGV9PmA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzY3JpcHQgPSBzY3JpcHQucmVwbGFjZShuZXcgUmVnRXhwKGA8LyR7bW9kZX0+PCR7bW9kZX0+YCwgJ2cnKSwgJycpO1xuICAgICAgICAgICAgcmV0dXJuIHNjcmlwdC5sZW5ndGggPCBtLmxlbmd0aCA/IHNjcmlwdCA6IG07XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAobm9kZS5jYXNlICYmIHRoaXMuZmllbGQucHJlc2VydmVSYW5nZXMpXG4gICAgICAgICAgICB0aGlzLnByZXNlcnZlKHN0YXJ0LCB0aGlzLmZpZWxkLnRleHQubGVuZ3RoKTsgLy8gLCAnaW4gY29udmVydC1ibG9jayAnICsgbm9kZS5zb3VyY2UgfHwgJzxzb3VyY2U+JylcbiAgICB9XG59XG4vKipcbiAqIHBhcnNlIGJpYnRleC4gVGhpcyB3aWxsIHRyeSB0byBjb252ZXJ0IFRlWCBjb21tYW5kcyBpbnRvIHVuaWNvZGUgZXF1aXZhbGVudHMsIGFuZCBhcHBseSBgQHN0cmluZ2AgZXhwYW5zaW9uXG4gKi9cbmZ1bmN0aW9uIHBhcnNlKGlucHV0LCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBwYXJzZXIgPSBuZXcgUGFyc2VyKG9wdGlvbnMpO1xuICAgIHJldHVybiBwYXJzZXIucGFyc2UoaW5wdXQpO1xufVxuZXhwb3J0cy5wYXJzZSA9IHBhcnNlO1xuZnVuY3Rpb24gYXN0KGlucHV0LCBvcHRpb25zID0ge30sIGNsZWFuID0gdHJ1ZSkge1xuICAgIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIob3B0aW9ucyk7XG4gICAgcmV0dXJuIHBhcnNlci5hc3QoaW5wdXQsIGNsZWFuKTtcbn1cbmV4cG9ydHMuYXN0ID0gYXN0O1xudmFyIGNodW5rZXJfMiA9IHJlcXVpcmUoXCIuL2NodW5rZXJcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJjaHVua2VyXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBjaHVua2VyXzIucGFyc2U7IH0gfSk7XG52YXIgamFicmVmXzEgPSByZXF1aXJlKFwiLi9qYWJyZWZcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJqYWJyZWZcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGphYnJlZl8xLnBhcnNlOyB9IH0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwiaW1wb3J0ICogYXMgQmliVGVYUGFyc2VyIGZyb20gJ0ByZXRvcnF1ZXJlL2JpYnRleC1wYXJzZXInO1xuaW1wb3J0IHsgRW50cnkgYXMgRW50cnlEYXRhQmliTGFUZVggfSBmcm9tICdAcmV0b3JxdWVyZS9iaWJ0ZXgtcGFyc2VyJztcbi8vIEFsc28gbWFrZSBFbnRyeURhdGFCaWJMYVRlWCBhdmFpbGFibGUgdG8gb3RoZXIgbW9kdWxlc1xuZXhwb3J0IHsgRW50cnkgYXMgRW50cnlEYXRhQmliTGFUZVggfSBmcm9tICdAcmV0b3JxdWVyZS9iaWJ0ZXgtcGFyc2VyJztcblxuLy8gVHJpY2s6IGFsbG93IHN0cmluZyBpbmRleGluZyBvbnRvIG9iamVjdCBwcm9wZXJ0aWVzXG5leHBvcnQgaW50ZXJmYWNlIElJbmRleGFibGUge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmNvbnN0IGRhdGFiYXNlVHlwZXMgPSBbJ2NzbC1qc29uJywgJ2JpYmxhdGV4J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBEYXRhYmFzZVR5cGUgPSB0eXBlb2YgZGF0YWJhc2VUeXBlc1tudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgVEVNUExBVEVfVkFSSUFCTEVTID0ge1xuICBjaXRla2V5OiAnVW5pcXVlIGNpdGVrZXknLFxuICBhYnN0cmFjdDogJycsXG4gIGF1dGhvclN0cmluZzogJ0NvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGF1dGhvciBuYW1lcycsXG4gIGNvbnRhaW5lclRpdGxlOlxuICAgICdUaXRsZSBvZiB0aGUgY29udGFpbmVyIGhvbGRpbmcgdGhlIHJlZmVyZW5jZSAoZS5nLiBib29rIHRpdGxlIGZvciBhIGJvb2sgY2hhcHRlciwgb3IgdGhlIGpvdXJuYWwgdGl0bGUgZm9yIGEgam91cm5hbCBhcnRpY2xlKScsXG4gIERPSTogJycsXG4gIGVwcmludDogJycsXG4gIGVwcmludHR5cGU6ICcnLFxuICBldmVudFBsYWNlOiAnTG9jYXRpb24gb2YgZXZlbnQnLFxuICBub3RlOiAnJyxcbiAgcGFnZTogJ1BhZ2Ugb3IgcGFnZSByYW5nZScsXG4gIHB1Ymxpc2hlcjogJycsXG4gIHB1Ymxpc2hlclBsYWNlOiAnTG9jYXRpb24gb2YgcHVibGlzaGVyJyxcbiAgdGl0bGU6ICcnLFxuICB0aXRsZVNob3J0OiAnJyxcbiAgVVJMOiAnJyxcbiAgeWVhcjogJ1B1YmxpY2F0aW9uIHllYXInLFxuICB6b3Rlcm9TZWxlY3RVUkk6ICdVUkkgdG8gb3BlbiB0aGUgcmVmZXJlbmNlIGluIFpvdGVybycsXG59O1xuXG5leHBvcnQgY2xhc3MgTGlicmFyeSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbnRyaWVzOiB7IFtjaXRla2V5OiBzdHJpbmddOiBFbnRyeSB9KSB7fVxuXG4gIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZW50cmllcykubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvciB0aGUgZ2l2ZW4gY2l0ZWtleSwgZmluZCB0aGUgY29ycmVzcG9uZGluZyBgRW50cnlgIGFuZCByZXR1cm4gYVxuICAgKiBjb2xsZWN0aW9uIG9mIHRlbXBsYXRlIHZhcmlhYmxlIGFzc2lnbm1lbnRzLlxuICAgKi9cbiAgZ2V0VGVtcGxhdGVWYXJpYWJsZXNGb3JDaXRla2V5KGNpdGVrZXk6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGNvbnN0IGVudHJ5OiBFbnRyeSA9IHRoaXMuZW50cmllc1tjaXRla2V5XTtcbiAgICBjb25zdCBzaG9ydGN1dHMgPSB7XG4gICAgICBjaXRla2V5OiBjaXRla2V5LFxuXG4gICAgICBhYnN0cmFjdDogZW50cnkuYWJzdHJhY3QsXG4gICAgICBhdXRob3JTdHJpbmc6IGVudHJ5LmF1dGhvclN0cmluZyxcbiAgICAgIGNvbnRhaW5lclRpdGxlOiBlbnRyeS5jb250YWluZXJUaXRsZSxcbiAgICAgIERPSTogZW50cnkuRE9JLFxuICAgICAgZXByaW50OiBlbnRyeS5lcHJpbnQsXG4gICAgICBlcHJpbnR0eXBlOiBlbnRyeS5lcHJpbnR0eXBlLFxuICAgICAgZXZlbnRQbGFjZTogZW50cnkuZXZlbnRQbGFjZSxcbiAgICAgIG5vdGU6IGVudHJ5Lm5vdGUsXG4gICAgICBwYWdlOiBlbnRyeS5wYWdlLFxuICAgICAgcHVibGlzaGVyOiBlbnRyeS5wdWJsaXNoZXIsXG4gICAgICBwdWJsaXNoZXJQbGFjZTogZW50cnkucHVibGlzaGVyUGxhY2UsXG4gICAgICB0aXRsZTogZW50cnkudGl0bGUsXG4gICAgICB0aXRsZVNob3J0OiBlbnRyeS50aXRsZVNob3J0LFxuICAgICAgVVJMOiBlbnRyeS5VUkwsXG4gICAgICB5ZWFyOiBlbnRyeS55ZWFyPy50b1N0cmluZygpLFxuICAgICAgem90ZXJvU2VsZWN0VVJJOiBlbnRyeS56b3Rlcm9TZWxlY3RVUkksXG4gICAgfTtcblxuICAgIHJldHVybiB7IGVudHJ5OiBlbnRyeS50b0pTT04oKSwgLi4uc2hvcnRjdXRzIH07XG4gIH1cbn1cblxuLyoqXG4gKiBMb2FkIHJlZmVyZW5jZSBlbnRyaWVzIGZyb20gdGhlIGdpdmVuIHJhdyBkYXRhYmFzZSBkYXRhLlxuICpcbiAqIFJldHVybnMgYSBsaXN0IG9mIGBFbnRyeURhdGFgLCB3aGljaCBzaG91bGQgYmUgd3JhcHBlZCB3aXRoIHRoZSByZWxldmFudFxuICogYWRhcHRlciBhbmQgdXNlZCB0byBpbnN0YW50aWF0ZSBhIGBMaWJyYXJ5YC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvYWRFbnRyaWVzKFxuICBkYXRhYmFzZVJhdzogc3RyaW5nLFxuICBkYXRhYmFzZVR5cGU6IERhdGFiYXNlVHlwZSxcbik6IEVudHJ5RGF0YVtdIHtcbiAgbGV0IGxpYnJhcnlBcnJheTogRW50cnlEYXRhW107XG5cbiAgaWYgKGRhdGFiYXNlVHlwZSA9PSAnY3NsLWpzb24nKSB7XG4gICAgbGlicmFyeUFycmF5ID0gSlNPTi5wYXJzZShkYXRhYmFzZVJhdyk7XG4gIH0gZWxzZSBpZiAoZGF0YWJhc2VUeXBlID09ICdiaWJsYXRleCcpIHtcbiAgICBjb25zdCBvcHRpb25zOiBCaWJUZVhQYXJzZXIuUGFyc2VyT3B0aW9ucyA9IHtcbiAgICAgIGVycm9ySGFuZGxlcjogKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ0NpdGF0aW9uIHBsdWdpbjogbm9uLWZhdGFsIGVycm9yIGxvYWRpbmcgQmliTGFUZVggZW50cnk6JyxcbiAgICAgICAgICBlcnIsXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBwYXJzZWQgPSBCaWJUZVhQYXJzZXIucGFyc2UoXG4gICAgICBkYXRhYmFzZVJhdyxcbiAgICAgIG9wdGlvbnMsXG4gICAgKSBhcyBCaWJUZVhQYXJzZXIuQmlibGlvZ3JhcGh5O1xuXG4gICAgcGFyc2VkLmVycm9ycy5mb3JFYWNoKChlcnJvcikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYENpdGF0aW9uIHBsdWdpbjogZmF0YWwgZXJyb3IgbG9hZGluZyBCaWJMYVRlWCBlbnRyeWAgK1xuICAgICAgICAgIGAgKGxpbmUgJHtlcnJvci5saW5lfSwgY29sdW1uICR7ZXJyb3IuY29sdW1ufSk6YCxcbiAgICAgICAgZXJyb3IubWVzc2FnZSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBsaWJyYXJ5QXJyYXkgPSBwYXJzZWQuZW50cmllcztcbiAgfVxuXG4gIHJldHVybiBsaWJyYXJ5QXJyYXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yIHtcbiAgZ2l2ZW4/OiBzdHJpbmc7XG4gIGZhbWlseT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBbiBgRW50cnlgIHJlcHJlc2VudHMgYSBzaW5nbGUgcmVmZXJlbmNlIGluIGEgcmVmZXJlbmNlIGRhdGFiYXNlLlxuICogRWFjaCBlbnRyeSBoYXMgYSB1bmlxdWUgaWRlbnRpZmllciwga25vd24gaW4gbW9zdCByZWZlcmVuY2UgbWFuYWdlcnMgYXMgaXRzXG4gKiBcImNpdGVrZXkuXCJcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudHJ5IHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZW50cnkgKGFsc28gdGhlIGNpdGVrZXkpLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlkOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IHR5cGU6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgYWJzdHJhY3Q/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBhdXRob3I/OiBBdXRob3JbXTtcblxuICAvKipcbiAgICogQSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBhdXRob3JzLCBlYWNoIG9mIHRoZSBmb3JtYXQgYDxmaXJzdG5hbWU+IDxsYXN0bmFtZT5gLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGF1dGhvclN0cmluZz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgdGhpcyByZWZlcmVuY2UgLS0gaW4gdGhlIGNhc2Ugb2YgYSBib29rXG4gICAqIGNoYXB0ZXIgcmVmZXJlbmNlLCB0aGUgbmFtZSBvZiB0aGUgYm9vazsgaW4gdGhlIGNhc2Ugb2YgYSBqb3VybmFsIGFydGljbGUsXG4gICAqIHRoZSBuYW1lIG9mIHRoZSBqb3VybmFsLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGNvbnRhaW5lclRpdGxlPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBET0k/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBmaWxlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBvZiBpc3N1ZS4gTWFueSByZWZlcmVuY2VzIGRvIG5vdCBjb250YWluIGluZm9ybWF0aW9uIGFib3V0IG1vbnRoXG4gICAqIGFuZCBkYXkgb2YgaXNzdWU7IGluIHRoaXMgY2FzZSwgdGhlIGBpc3N1ZWREYXRlYCB3aWxsIGNvbnRhaW4gZHVtbXkgbWluaW11bVxuICAgKiB2YWx1ZXMgZm9yIHRob3NlIGVsZW1lbnRzLiAoQSByZWZlcmVuY2Ugd2hpY2ggaXMgb25seSBlbmNvZGVkIGFzIGJlaW5nXG4gICAqIGlzc3VlZCBpbiAyMDAxIGlzIHJlcHJlc2VudGVkIGhlcmUgd2l0aCBhIGRhdGUgMjAwMS0wMS0wMSAwMDowMDowMCBVVEMuKVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzc3VlZERhdGU/OiBEYXRlO1xuXG4gIC8qKlxuICAgKiBQYWdlIG9yIHBhZ2UgcmFuZ2Ugb2YgdGhlIHJlZmVyZW5jZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBwYWdlPzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgdGl0bGU/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCB0aXRsZVNob3J0Pzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgVVJMPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBldmVudFBsYWNlPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBwdWJsaXNoZXI/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBwdWJsaXNoZXJQbGFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogQmliTGFUZVgtc3BlY2lmaWMgcHJvcGVydGllc1xuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGVwcmludD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGVwcmludHR5cGU/OiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIF95ZWFyPzogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IHllYXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5feWVhclxuICAgICAgPyBwYXJzZUludCh0aGlzLl95ZWFyKVxuICAgICAgOiB0aGlzLmlzc3VlZERhdGU/LmdldFVUQ0Z1bGxZZWFyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX25vdGU/OiBzdHJpbmdbXTtcblxuICBwdWJsaWMgZ2V0IG5vdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbm90ZVxuICAgICAgPy5tYXAoKGVsKSA9PiBlbC5yZXBsYWNlKC8oem90ZXJvOlxcL1xcLy4rKS9nLCAnW0xpbmtdKCQxKScpKVxuICAgICAgLmpvaW4oJ1xcblxcbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgVVJJIHdoaWNoIHdpbGwgb3BlbiB0aGUgcmVsZXZhbnQgZW50cnkgaW4gdGhlIFpvdGVybyBjbGllbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHpvdGVyb1NlbGVjdFVSSSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgem90ZXJvOi8vc2VsZWN0L2l0ZW1zL0Ake3RoaXMuaWR9YDtcbiAgfVxuXG4gIHRvSlNPTigpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgY29uc3QganNvbk9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzKTtcblxuICAgIC8vIGFkZCBnZXR0ZXIgdmFsdWVzXG4gICAgY29uc3QgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyk7XG4gICAgT2JqZWN0LmVudHJpZXMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMocHJvdG8pKVxuICAgICAgLmZpbHRlcigoWywgZGVzY3JpcHRvcl0pID0+IHR5cGVvZiBkZXNjcmlwdG9yLmdldCA9PSAnZnVuY3Rpb24nKVxuICAgICAgLmZvckVhY2goKFtrZXksIGRlc2NyaXB0b3JdKSA9PiB7XG4gICAgICAgIGlmIChkZXNjcmlwdG9yICYmIGtleVswXSAhPT0gJ18nKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9ICh0aGlzIGFzIElJbmRleGFibGUpW2tleV07XG4gICAgICAgICAgICBqc29uT2JqW2tleV0gPSB2YWw7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIGpzb25PYmo7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgRW50cnlEYXRhID0gRW50cnlEYXRhQ1NMIHwgRW50cnlEYXRhQmliTGFUZVg7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50cnlEYXRhQ1NMIHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuXG4gIGFic3RyYWN0Pzogc3RyaW5nO1xuICBhdXRob3I/OiBBdXRob3JbXTtcbiAgJ2NvbnRhaW5lci10aXRsZSc/OiBzdHJpbmc7XG4gIERPST86IHN0cmluZztcbiAgJ2V2ZW50LXBsYWNlJz86IHN0cmluZztcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgaXNzdWVkPzogeyAnZGF0ZS1wYXJ0cyc6IFthbnlbXV0gfTtcbiAgcGFnZT86IHN0cmluZztcbiAgcHVibGlzaGVyPzogc3RyaW5nO1xuICAncHVibGlzaGVyLXBsYWNlJz86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gICd0aXRsZS1zaG9ydCc/OiBzdHJpbmc7XG4gIFVSTD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEVudHJ5Q1NMQWRhcHRlciBleHRlbmRzIEVudHJ5IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhOiBFbnRyeURhdGFDU0wpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZXByaW50OiBzdHJpbmcgPSBudWxsO1xuICBlcHJpbnR0eXBlOiBzdHJpbmcgPSBudWxsO1xuICBmaWxlczogc3RyaW5nW10gPSBudWxsO1xuXG4gIGdldCBpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmlkO1xuICB9XG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEudHlwZTtcbiAgfVxuXG4gIGdldCBhYnN0cmFjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmFic3RyYWN0O1xuICB9XG4gIGdldCBhdXRob3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5hdXRob3I7XG4gIH1cblxuICBnZXQgYXV0aG9yU3RyaW5nKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmRhdGEuYXV0aG9yXG4gICAgICA/IHRoaXMuZGF0YS5hdXRob3IubWFwKChhKSA9PiBgJHthLmdpdmVufSAke2EuZmFtaWx5fWApLmpvaW4oJywgJylcbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIGdldCBjb250YWluZXJUaXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhWydjb250YWluZXItdGl0bGUnXTtcbiAgfVxuXG4gIGdldCBET0koKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5ET0k7XG4gIH1cblxuICBnZXQgZXZlbnRQbGFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhWydldmVudC1wbGFjZSddO1xuICB9XG5cbiAgZ2V0IGlzc3VlZERhdGUoKSB7XG4gICAgaWYgKFxuICAgICAgIShcbiAgICAgICAgdGhpcy5kYXRhLmlzc3VlZCAmJlxuICAgICAgICB0aGlzLmRhdGEuaXNzdWVkWydkYXRlLXBhcnRzJ10gJiZcbiAgICAgICAgdGhpcy5kYXRhLmlzc3VlZFsnZGF0ZS1wYXJ0cyddWzBdLmxlbmd0aCA+IDBcbiAgICAgIClcbiAgICApXG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IHRoaXMuZGF0YS5pc3N1ZWRbJ2RhdGUtcGFydHMnXVswXTtcbiAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgKG1vbnRoIHx8IDEpIC0gMSwgZGF5IHx8IDEpKTtcbiAgfVxuXG4gIGdldCBwYWdlKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEucGFnZTtcbiAgfVxuXG4gIGdldCBwdWJsaXNoZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5wdWJsaXNoZXI7XG4gIH1cblxuICBnZXQgcHVibGlzaGVyUGxhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVsncHVibGlzaGVyLXBsYWNlJ107XG4gIH1cblxuICBnZXQgdGl0bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS50aXRsZTtcbiAgfVxuXG4gIGdldCB0aXRsZVNob3J0KCkge1xuICAgIHJldHVybiB0aGlzLmRhdGFbJ3RpdGxlLXNob3J0J107XG4gIH1cblxuICBnZXQgVVJMKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEuVVJMO1xuICB9XG59XG5cbmNvbnN0IEJJQkxBVEVYX1BST1BFUlRZX01BUFBJTkc6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGFic3RyYWN0OiAnYWJzdHJhY3QnLFxuICBib29rdGl0bGU6ICdfY29udGFpbmVyVGl0bGUnLFxuICBkYXRlOiAnaXNzdWVkJyxcbiAgZG9pOiAnRE9JJyxcbiAgZXByaW50OiAnZXByaW50JyxcbiAgZXByaW50dHlwZTogJ2VwcmludHR5cGUnLFxuICBldmVudHRpdGxlOiAnZXZlbnQnLFxuICBqb3VybmFsOiAnX2NvbnRhaW5lclRpdGxlJyxcbiAgam91cm5hbHRpdGxlOiAnX2NvbnRhaW5lclRpdGxlJyxcbiAgbG9jYXRpb246ICdwdWJsaXNoZXJQbGFjZScsXG4gIHBhZ2VzOiAncGFnZScsXG4gIHNob3J0am91cm5hbDogJ2NvbnRhaW5lclRpdGxlU2hvcnQnLFxuICB0aXRsZTogJ3RpdGxlJyxcbiAgc2hvcnR0aXRsZTogJ3RpdGxlU2hvcnQnLFxuICB1cmw6ICdVUkwnLFxuICB2ZW51ZTogJ2V2ZW50UGxhY2UnLFxuICB5ZWFyOiAnX3llYXInLFxuICBwdWJsaXNoZXI6ICdwdWJsaXNoZXInLFxuICBub3RlOiAnX25vdGUnLFxufTtcblxuLy8gQmliTGFUZVggcGFyc2VyIHJldHVybnMgYXJyYXlzIG9mIHByb3BlcnR5IHZhbHVlcyAoYWxsb3dpbmcgZm9yIHJlcGVhdGVkXG4vLyBwcm9wZXJ0eSBlbnRyaWVzKS4gRm9yIHRoZSBmb2xsb3dpbmcgZmllbGRzLCBqdXN0IGJsaW5kbHkgdGFrZSB0aGUgZmlyc3QuXG5jb25zdCBCSUJMQVRFWF9QUk9QRVJUWV9UQUtFX0ZJUlNUOiBzdHJpbmdbXSA9IFtcbiAgJ2Fic3RyYWN0JyxcbiAgJ2Jvb2t0aXRsZScsXG4gICdfY29udGFpbmVyVGl0bGUnLFxuICAnZGF0ZScsXG4gICdkb2knLFxuICAnZXByaW50JyxcbiAgJ2VwcmludHR5cGUnLFxuICAnZXZlbnR0aXRsZScsXG4gICdqb3VybmFsdGl0bGUnLFxuICAnbG9jYXRpb24nLFxuICAncGFnZXMnLFxuICAnc2hvcnRqb3VybmFsJyxcbiAgJ3RpdGxlJyxcbiAgJ3Nob3J0dGl0bGUnLFxuICAndXJsJyxcbiAgJ3ZlbnVlJyxcbiAgJ195ZWFyJyxcbiAgJ3B1Ymxpc2hlcicsXG5dO1xuXG5leHBvcnQgY2xhc3MgRW50cnlCaWJMYVRlWEFkYXB0ZXIgZXh0ZW5kcyBFbnRyeSB7XG4gIGFic3RyYWN0Pzogc3RyaW5nO1xuICBfY29udGFpbmVyVGl0bGU/OiBzdHJpbmc7XG4gIGNvbnRhaW5lclRpdGxlU2hvcnQ/OiBzdHJpbmc7XG4gIERPST86IHN0cmluZztcbiAgZXByaW50Pzogc3RyaW5nO1xuICBlcHJpbnR0eXBlPzogc3RyaW5nO1xuICBldmVudD86IHN0cmluZztcbiAgZXZlbnRQbGFjZT86IHN0cmluZztcbiAgaXNzdWVkPzogc3RyaW5nO1xuICBwYWdlPzogc3RyaW5nO1xuICBwdWJsaXNoZXI/OiBzdHJpbmc7XG4gIHB1Ymxpc2hlclBsYWNlPzogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgdGl0bGVTaG9ydD86IHN0cmluZztcbiAgVVJMPzogc3RyaW5nO1xuICBfeWVhcj86IHN0cmluZztcbiAgX25vdGU/OiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGE6IEVudHJ5RGF0YUJpYkxhVGVYKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIE9iamVjdC5lbnRyaWVzKEJJQkxBVEVYX1BST1BFUlRZX01BUFBJTkcpLmZvckVhY2goXG4gICAgICAobWFwOiBbc3RyaW5nLCBzdHJpbmddKSA9PiB7XG4gICAgICAgIGNvbnN0IFtzcmMsIHRndF0gPSBtYXA7XG4gICAgICAgIGlmIChzcmMgaW4gdGhpcy5kYXRhLmZpZWxkcykge1xuICAgICAgICAgIGxldCB2YWwgPSB0aGlzLmRhdGEuZmllbGRzW3NyY107XG4gICAgICAgICAgaWYgKEJJQkxBVEVYX1BST1BFUlRZX1RBS0VfRklSU1QuaW5jbHVkZXMoc3JjKSkge1xuICAgICAgICAgICAgdmFsID0gKHZhbCBhcyBhbnlbXSlbMF07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgKHRoaXMgYXMgSUluZGV4YWJsZSlbdGd0XSA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEua2V5O1xuICB9XG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEudHlwZTtcbiAgfVxuXG4gIGdldCBmaWxlcygpOiBzdHJpbmdbXSB7XG4gICAgLy8gRm9yIHNvbWUgcmVhc29uIHRoZSBiaWJ0ZXggcGFyc2VyIGRvZXNuJ3QgcmVsaWFibHkgcGFyc2UgZmlsZSBsaXN0IHRvXG4gICAgLy8gYXJyYXkgOyBzbyB3ZSdsbCBkbyBpdCBtYW51YWxseSAvIHJlZHVuZGFudGx5XG4gICAgbGV0IHJldDogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAodGhpcy5kYXRhLmZpZWxkcy5maWxlKSB7XG4gICAgICByZXQgPSByZXQuY29uY2F0KHRoaXMuZGF0YS5maWVsZHMuZmlsZS5mbGF0TWFwKCh4KSA9PiB4LnNwbGl0KCc7JykpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGF0YS5maWVsZHMuZmlsZXMpIHtcbiAgICAgIHJldCA9IHJldC5jb25jYXQodGhpcy5kYXRhLmZpZWxkcy5maWxlcy5mbGF0TWFwKCh4KSA9PiB4LnNwbGl0KCc7JykpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgZ2V0IGF1dGhvclN0cmluZygpIHtcbiAgICBpZiAodGhpcy5kYXRhLmNyZWF0b3JzLmF1dGhvcikge1xuICAgICAgY29uc3QgbmFtZXMgPSB0aGlzLmRhdGEuY3JlYXRvcnMuYXV0aG9yLm1hcCgobmFtZSkgPT4ge1xuICAgICAgICBpZiAobmFtZS5saXRlcmFsKSByZXR1cm4gbmFtZS5saXRlcmFsO1xuICAgICAgICBjb25zdCBwYXJ0cyA9IFtuYW1lLmZpcnN0TmFtZSwgbmFtZS5wcmVmaXgsIG5hbWUubGFzdE5hbWUsIG5hbWUuc3VmZml4XTtcbiAgICAgICAgLy8gRHJvcCBhbnkgbnVsbCBwYXJ0cyBhbmQgam9pblxuICAgICAgICByZXR1cm4gcGFydHMuZmlsdGVyKCh4KSA9PiB4KS5qb2luKCcgJyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuYW1lcy5qb2luKCcsICcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhLmZpZWxkcy5hdXRob3I/LmpvaW4oJywgJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGNvbnRhaW5lclRpdGxlKCkge1xuICAgIGlmICh0aGlzLl9jb250YWluZXJUaXRsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2NvbnRhaW5lclRpdGxlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLmZpZWxkcy5lcHJpbnQpIHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuZGF0YS5maWVsZHMuZXByaW50dHlwZVxuICAgICAgICA/IGAke3RoaXMuZGF0YS5maWVsZHMuZXByaW50dHlwZX06YFxuICAgICAgICA6ICcnO1xuICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5kYXRhLmZpZWxkcy5wcmltYXJ5Y2xhc3NcbiAgICAgICAgPyBgIFske3RoaXMuZGF0YS5maWVsZHMucHJpbWFyeWNsYXNzfV1gXG4gICAgICAgIDogJyc7XG4gICAgICByZXR1cm4gYCR7cHJlZml4fSR7dGhpcy5kYXRhLmZpZWxkcy5lcHJpbnR9JHtzdWZmaXh9YDtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNzdWVkRGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc3N1ZWQgPyBuZXcgRGF0ZSh0aGlzLmlzc3VlZCkgOiBudWxsO1xuICB9XG5cbiAgZ2V0IGF1dGhvcigpOiBBdXRob3JbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5jcmVhdG9ycy5hdXRob3I/Lm1hcCgoYSkgPT4gKHtcbiAgICAgIGdpdmVuOiBhLmZpcnN0TmFtZSxcbiAgICAgIGZhbWlseTogYS5sYXN0TmFtZSxcbiAgICB9KSk7XG4gIH1cbn1cbiIsImltcG9ydCB7XG4gIEFic3RyYWN0VGV4dENvbXBvbmVudCxcbiAgQXBwLFxuICBEcm9wZG93bkNvbXBvbmVudCxcbiAgRmlsZVN5c3RlbUFkYXB0ZXIsXG4gIFBsdWdpblNldHRpbmdUYWIsXG4gIFNldHRpbmcsXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IENpdGF0aW9uUGx1Z2luIGZyb20gJy4vbWFpbic7XG5pbXBvcnQgeyBJSW5kZXhhYmxlLCBEYXRhYmFzZVR5cGUsIFRFTVBMQVRFX1ZBUklBQkxFUyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBDSVRBVElPTl9EQVRBQkFTRV9GT1JNQVRfTEFCRUxTOiBSZWNvcmQ8RGF0YWJhc2VUeXBlLCBzdHJpbmc+ID0ge1xuICAnY3NsLWpzb24nOiAnQ1NMLUpTT04nLFxuICBiaWJsYXRleDogJ0JpYkxhVGVYJyxcbn07XG5cbmV4cG9ydCBjbGFzcyBDaXRhdGlvbnNQbHVnaW5TZXR0aW5ncyB7XG4gIHB1YmxpYyBjaXRhdGlvbkV4cG9ydFBhdGg6IHN0cmluZztcbiAgY2l0YXRpb25FeHBvcnRGb3JtYXQ6IERhdGFiYXNlVHlwZSA9ICdjc2wtanNvbic7XG5cbiAgbGl0ZXJhdHVyZU5vdGVUaXRsZVRlbXBsYXRlID0gJ0B7e2NpdGVrZXl9fSc7XG4gIGxpdGVyYXR1cmVOb3RlRm9sZGVyID0gJ1JlYWRpbmcgbm90ZXMnO1xuICBsaXRlcmF0dXJlTm90ZUNvbnRlbnRUZW1wbGF0ZTogc3RyaW5nID1cbiAgICAnLS0tXFxuJyArXG4gICAgJ3RpdGxlOiB7e3RpdGxlfX1cXG4nICtcbiAgICAnYXV0aG9yczoge3thdXRob3JTdHJpbmd9fVxcbicgK1xuICAgICd5ZWFyOiB7e3llYXJ9fVxcbicgK1xuICAgICctLS1cXG5cXG4nO1xuXG4gIG1hcmtkb3duQ2l0YXRpb25UZW1wbGF0ZSA9ICdbQHt7Y2l0ZWtleX19XSc7XG4gIGFsdGVybmF0aXZlTWFya2Rvd25DaXRhdGlvblRlbXBsYXRlID0gJ0B7e2NpdGVrZXl9fSc7XG59XG5cbmV4cG9ydCBjbGFzcyBDaXRhdGlvblNldHRpbmdUYWIgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcbiAgcHJpdmF0ZSBwbHVnaW46IENpdGF0aW9uUGx1Z2luO1xuXG4gIGNpdGF0aW9uUGF0aExvYWRpbmdFbDogSFRNTEVsZW1lbnQ7XG4gIGNpdGF0aW9uUGF0aEVycm9yRWw6IEhUTUxFbGVtZW50O1xuICBjaXRhdGlvblBhdGhTdWNjZXNzRWw6IEhUTUxFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwbHVnaW46IENpdGF0aW9uUGx1Z2luKSB7XG4gICAgc3VwZXIoYXBwLCBwbHVnaW4pO1xuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xuICB9XG5cbiAgb3BlbigpOiB2b2lkIHtcbiAgICBzdXBlci5vcGVuKCk7XG4gICAgdGhpcy5jaGVja0NpdGF0aW9uRXhwb3J0UGF0aChcbiAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmNpdGF0aW9uRXhwb3J0UGF0aCxcbiAgICApLnRoZW4oKCkgPT4gdGhpcy5zaG93Q2l0YXRpb25FeHBvcnRQYXRoU3VjY2VzcygpKTtcbiAgfVxuXG4gIGFkZFZhbHVlQ2hhbmdlQ2FsbGJhY2s8VCBleHRlbmRzIEhUTUxUZXh0QXJlYUVsZW1lbnQgfCBIVE1MSW5wdXRFbGVtZW50PihcbiAgICBjb21wb25lbnQ6IEFic3RyYWN0VGV4dENvbXBvbmVudDxUPiB8IERyb3Bkb3duQ29tcG9uZW50LFxuICAgIHNldHRpbmdzS2V5OiBzdHJpbmcsXG4gICAgY2I/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCxcbiAgKTogdm9pZCB7XG4gICAgY29tcG9uZW50Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgKHRoaXMucGx1Z2luLnNldHRpbmdzIGFzIElJbmRleGFibGUpW3NldHRpbmdzS2V5XSA9IHZhbHVlO1xuICAgICAgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCkudGhlbigoKSA9PiB7XG4gICAgICAgIGlmIChjYikge1xuICAgICAgICAgIGNiKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBidWlsZFZhbHVlSW5wdXQ8VCBleHRlbmRzIEhUTUxUZXh0QXJlYUVsZW1lbnQgfCBIVE1MSW5wdXRFbGVtZW50PihcbiAgICBjb21wb25lbnQ6IEFic3RyYWN0VGV4dENvbXBvbmVudDxUPiB8IERyb3Bkb3duQ29tcG9uZW50LFxuICAgIHNldHRpbmdzS2V5OiBzdHJpbmcsXG4gICAgY2I/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCxcbiAgKTogdm9pZCB7XG4gICAgY29tcG9uZW50LnNldFZhbHVlKCh0aGlzLnBsdWdpbi5zZXR0aW5ncyBhcyBJSW5kZXhhYmxlKVtzZXR0aW5nc0tleV0pO1xuICAgIHRoaXMuYWRkVmFsdWVDaGFuZ2VDYWxsYmFjayhjb21wb25lbnQsIHNldHRpbmdzS2V5LCBjYik7XG4gIH1cblxuICBkaXNwbGF5KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgY29udGFpbmVyRWwgfSA9IHRoaXM7XG5cbiAgICBjb250YWluZXJFbC5lbXB0eSgpO1xuICAgIGNvbnRhaW5lckVsLnNldEF0dHIoJ2lkJywgJ3pvdGVyb1NldHRpbmdUYWInKTtcblxuICAgIGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdoMicsIHsgdGV4dDogJ0NpdGF0aW9uIHBsdWdpbiBzZXR0aW5ncycgfSk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdDaXRhdGlvbiBkYXRhYmFzZSBmb3JtYXQnKVxuICAgICAgLmFkZERyb3Bkb3duKChjb21wb25lbnQpID0+XG4gICAgICAgIHRoaXMuYnVpbGRWYWx1ZUlucHV0KFxuICAgICAgICAgIGNvbXBvbmVudC5hZGRPcHRpb25zKENJVEFUSU9OX0RBVEFCQVNFX0ZPUk1BVF9MQUJFTFMpLFxuICAgICAgICAgICdjaXRhdGlvbkV4cG9ydEZvcm1hdCcsXG4gICAgICAgICAgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrQ2l0YXRpb25FeHBvcnRQYXRoKFxuICAgICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5jaXRhdGlvbkV4cG9ydFBhdGgsXG4gICAgICAgICAgICApLnRoZW4oKHN1Y2Nlc3MpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNpdGF0aW9uUGF0aFN1Y2Nlc3NFbC5hZGRDbGFzcygnZC1ub25lJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaXRhdGlvblBhdGhMb2FkaW5nRWwucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5wbHVnaW4ubG9hZExpYnJhcnkoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2l0YXRpb25QYXRoTG9hZGluZ0VsLmFkZENsYXNzKCdkLW5vbmUnKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0NpdGF0aW9uRXhwb3J0UGF0aFN1Y2Nlc3MoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgICk7XG5cbiAgICAvLyBOQjogd2UgZm9yY2UgcmVsb2FkIG9mIHRoZSBsaWJyYXJ5IG9uIHBhdGggY2hhbmdlLlxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoJ0NpdGF0aW9uIGRhdGFiYXNlIHBhdGgnKVxuICAgICAgLnNldERlc2MoXG4gICAgICAgICdQYXRoIHRvIGNpdGF0aW9uIGxpYnJhcnkgZXhwb3J0ZWQgYnkgeW91ciByZWZlcmVuY2UgbWFuYWdlci4gJyArXG4gICAgICAgICAgJ0NhbiBiZSBhbiBhYnNvbHV0ZSBwYXRoIG9yIGEgcGF0aCByZWxhdGl2ZSB0byB0aGUgY3VycmVudCB2YXVsdCByb290IGZvbGRlci4gJyArXG4gICAgICAgICAgJ0NpdGF0aW9ucyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmVsb2FkZWQgd2hlbmV2ZXIgdGhpcyBmaWxlIHVwZGF0ZXMuJyxcbiAgICAgIClcbiAgICAgIC5hZGRUZXh0KChpbnB1dCkgPT5cbiAgICAgICAgdGhpcy5idWlsZFZhbHVlSW5wdXQoXG4gICAgICAgICAgaW5wdXQuc2V0UGxhY2Vob2xkZXIoJy9wYXRoL3RvL2V4cG9ydC5qc29uJyksXG4gICAgICAgICAgJ2NpdGF0aW9uRXhwb3J0UGF0aCcsXG4gICAgICAgICAgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrQ2l0YXRpb25FeHBvcnRQYXRoKHZhbHVlKS50aGVuKFxuICAgICAgICAgICAgICAoc3VjY2VzcykgPT5cbiAgICAgICAgICAgICAgICBzdWNjZXNzICYmXG4gICAgICAgICAgICAgICAgdGhpcy5wbHVnaW5cbiAgICAgICAgICAgICAgICAgIC5sb2FkTGlicmFyeSgpXG4gICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB0aGlzLnNob3dDaXRhdGlvbkV4cG9ydFBhdGhTdWNjZXNzKCkpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LFxuICAgICAgICApLFxuICAgICAgKTtcblxuICAgIHRoaXMuY2l0YXRpb25QYXRoTG9hZGluZ0VsID0gY29udGFpbmVyRWwuY3JlYXRlRWwoJ3AnLCB7XG4gICAgICBjbHM6ICd6b3Rlcm9TZXR0aW5nQ2l0YXRpb25QYXRoTG9hZGluZyBkLW5vbmUnLFxuICAgICAgdGV4dDogJ0xvYWRpbmcgY2l0YXRpb24gZGF0YWJhc2UuLi4nLFxuICAgIH0pO1xuICAgIHRoaXMuY2l0YXRpb25QYXRoRXJyb3JFbCA9IGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdwJywge1xuICAgICAgY2xzOiAnem90ZXJvU2V0dGluZ0NpdGF0aW9uUGF0aEVycm9yIGQtbm9uZScsXG4gICAgICB0ZXh0OlxuICAgICAgICAnVGhlIGNpdGF0aW9uIGV4cG9ydCBmaWxlIGNhbm5vdCBiZSBmb3VuZC4gUGxlYXNlIGNoZWNrIHRoZSBwYXRoIGFib3ZlLicsXG4gICAgfSk7XG4gICAgdGhpcy5jaXRhdGlvblBhdGhTdWNjZXNzRWwgPSBjb250YWluZXJFbC5jcmVhdGVFbCgncCcsIHtcbiAgICAgIGNsczogJ3pvdGVyb1NldHRpbmdDaXRhdGlvblBhdGhTdWNjZXNzIGQtbm9uZScsXG4gICAgICB0ZXh0OiAnTG9hZGVkIGxpYnJhcnkgd2l0aCB7e259fSByZWZlcmVuY2VzLicsXG4gICAgfSk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdMaXRlcmF0dXJlIG5vdGUgZm9sZGVyJylcbiAgICAgIC5hZGRUZXh0KChpbnB1dCkgPT4gdGhpcy5idWlsZFZhbHVlSW5wdXQoaW5wdXQsICdsaXRlcmF0dXJlTm90ZUZvbGRlcicpKVxuICAgICAgLnNldERlc2MoXG4gICAgICAgICdTYXZlIGxpdGVyYXR1cmUgbm90ZSBmaWxlcyBpbiB0aGlzIGZvbGRlciB3aXRoaW4geW91ciB2YXVsdC4gSWYgZW1wdHksIG5vdGVzIHdpbGwgYmUgc3RvcmVkIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgdmF1bHQuJyxcbiAgICAgICk7XG5cbiAgICBjb250YWluZXJFbC5jcmVhdGVFbCgnaDMnLCB7IHRleHQ6ICdUZW1wbGF0ZSBzZXR0aW5ncycgfSk7XG4gICAgY29uc3QgdGVtcGxhdGVJbnN0cnVjdGlvbnNFbCA9IGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdwJyk7XG4gICAgdGVtcGxhdGVJbnN0cnVjdGlvbnNFbC5hcHBlbmQoXG4gICAgICBjcmVhdGVTcGFuKHtcbiAgICAgICAgdGV4dDpcbiAgICAgICAgICAnVGhlIGZvbGxvd2luZyBzZXR0aW5ncyBkZXRlcm1pbmUgaG93IHRoZSBub3RlcyBhbmQgbGlua3MgY3JlYXRlZCBieSAnICtcbiAgICAgICAgICAndGhlIHBsdWdpbiB3aWxsIGJlIHJlbmRlcmVkLiBZb3UgbWF5IHNwZWNpZnkgYSBjdXN0b20gdGVtcGxhdGUgZm9yICcgK1xuICAgICAgICAgICdlYWNoIHR5cGUgb2YgY29udGVudC4gVGVtcGxhdGVzIGFyZSBpbnRlcnByZXRlZCB1c2luZyAnLFxuICAgICAgfSksXG4gICAgKTtcbiAgICB0ZW1wbGF0ZUluc3RydWN0aW9uc0VsLmFwcGVuZChcbiAgICAgIGNyZWF0ZUVsKCdhJywge1xuICAgICAgICB0ZXh0OiAnSGFuZGxlYmFycycsXG4gICAgICAgIGhyZWY6ICdodHRwczovL2hhbmRsZWJhcnNqcy5jb20vZ3VpZGUvZXhwcmVzc2lvbnMuaHRtbCcsXG4gICAgICB9KSxcbiAgICApO1xuICAgIHRlbXBsYXRlSW5zdHJ1Y3Rpb25zRWwuYXBwZW5kKFxuICAgICAgY3JlYXRlU3Bhbih7XG4gICAgICAgIHRleHQ6ICcgc3ludGF4LiBZb3UgY2FuIG1ha2UgcmVmZXJlbmNlIHRvIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzOicsXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgY29uc3QgdGVtcGxhdGVWYXJpYWJsZVVsID0gY29udGFpbmVyRWwuY3JlYXRlRWwoJ3VsJywge1xuICAgICAgYXR0cjogeyBpZDogJ2NpdGF0aW9uVGVtcGxhdGVWYXJpYWJsZXMnIH0sXG4gICAgfSk7XG4gICAgT2JqZWN0LmVudHJpZXMoVEVNUExBVEVfVkFSSUFCTEVTKS5mb3JFYWNoKCh2YXJpYWJsZURhdGEpID0+IHtcbiAgICAgIGNvbnN0IFtrZXksIGRlc2NyaXB0aW9uXSA9IHZhcmlhYmxlRGF0YSxcbiAgICAgICAgdGVtcGxhdGVWYXJpYWJsZUl0ZW0gPSB0ZW1wbGF0ZVZhcmlhYmxlVWwuY3JlYXRlRWwoJ2xpJyk7XG5cbiAgICAgIHRlbXBsYXRlVmFyaWFibGVJdGVtLmNyZWF0ZUVsKCdzcGFuJywge1xuICAgICAgICBjbHM6ICd0ZXh0LW1vbm9zcGFjZScsXG4gICAgICAgIHRleHQ6ICd7eycgKyBrZXkgKyAnfX0nLFxuICAgICAgfSk7XG5cbiAgICAgIHRlbXBsYXRlVmFyaWFibGVJdGVtLmNyZWF0ZUVsKCdzcGFuJywge1xuICAgICAgICB0ZXh0OiBkZXNjcmlwdGlvbiA/IGAg4oCUICR7ZGVzY3JpcHRpb259YCA6ICcnLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZUVudHJ5SW5zdHJ1Y3Rpb25zRWwgPSBjb250YWluZXJFbC5jcmVhdGVFbCgncCcpO1xuICAgIHRlbXBsYXRlRW50cnlJbnN0cnVjdGlvbnNFbC5hcHBlbmQoXG4gICAgICBjcmVhdGVTcGFuKHsgdGV4dDogJ0FkdmFuY2VkIHVzZXJzIG1heSBhbHNvIHJlZmVyIHRvIHRoZSAnIH0pLFxuICAgICAgY3JlYXRlU3Bhbih7IHRleHQ6ICd7e2VudHJ5fX0nLCBjbHM6ICd0ZXh0LW1vbm9zcGFjZScgfSksXG4gICAgICBjcmVhdGVTcGFuKHtcbiAgICAgICAgdGV4dDpcbiAgICAgICAgICAnIHZhcmlhYmxlLCB3aGljaCBjb250YWlucyB0aGUgZnVsbCBvYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlICcgK1xuICAgICAgICAgICdyZWZlcmVuY2UgYXMgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBwbHVnaW4uIFNlZSB0aGUgJyxcbiAgICAgIH0pLFxuICAgICAgY3JlYXRlRWwoJ2EnLCB7XG4gICAgICAgIHRleHQ6ICdwbHVnaW4gZG9jdW1lbnRhdGlvbicsXG4gICAgICAgIGhyZWY6ICdodHRwOi8vd3d3LmZvbGRsLm1lL29ic2lkaWFuLWNpdGF0aW9uLXBsdWdpbi9jbGFzc2VzL2VudHJ5Lmh0bWwnLFxuICAgICAgfSksXG4gICAgICBjcmVhdGVTcGFuKHsgdGV4dDogXCIgZm9yIGluZm9ybWF0aW9uIG9uIHRoaXMgb2JqZWN0J3Mgc3RydWN0dXJlLlwiIH0pLFxuICAgICk7XG5cbiAgICBjb250YWluZXJFbC5jcmVhdGVFbCgnaDMnLCB7IHRleHQ6ICdMaXRlcmF0dXJlIG5vdGUgdGVtcGxhdGVzJyB9KTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoJ0xpdGVyYXR1cmUgbm90ZSB0aXRsZSB0ZW1wbGF0ZScpXG4gICAgICAuYWRkVGV4dCgoaW5wdXQpID0+XG4gICAgICAgIHRoaXMuYnVpbGRWYWx1ZUlucHV0KGlucHV0LCAnbGl0ZXJhdHVyZU5vdGVUaXRsZVRlbXBsYXRlJyksXG4gICAgICApO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZSgnTGl0ZXJhdHVyZSBub3RlIGNvbnRlbnQgdGVtcGxhdGUnKVxuICAgICAgLmFkZFRleHRBcmVhKChpbnB1dCkgPT5cbiAgICAgICAgdGhpcy5idWlsZFZhbHVlSW5wdXQoaW5wdXQsICdsaXRlcmF0dXJlTm90ZUNvbnRlbnRUZW1wbGF0ZScpLFxuICAgICAgKTtcblxuICAgIGNvbnRhaW5lckVsLmNyZWF0ZUVsKCdoMycsIHsgdGV4dDogJ01hcmtkb3duIGNpdGF0aW9uIHRlbXBsYXRlcycgfSk7XG4gICAgY29udGFpbmVyRWwuY3JlYXRlRWwoJ3AnLCB7XG4gICAgICB0ZXh0OlxuICAgICAgICAnWW91IGNhbiBpbnNlcnQgUGFuZG9jLXN0eWxlIE1hcmtkb3duIGNpdGF0aW9ucyByYXRoZXIgdGhhbiBsaXRlcmF0dXJlIG5vdGVzIGJ5IHVzaW5nIHRoZSBcIkluc2VydCBNYXJrZG93biBjaXRhdGlvblwiIGNvbW1hbmQuIFRoZSBiZWxvdyBvcHRpb25zIGFsbG93IGN1c3RvbWl6YXRpb24gb2YgdGhlIE1hcmtkb3duIGNpdGF0aW9uIGZvcm1hdC4nLFxuICAgIH0pO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZSgnTWFya2Rvd24gcHJpbWFyeSBjaXRhdGlvbiB0ZW1wbGF0ZScpXG4gICAgICAuYWRkVGV4dCgoaW5wdXQpID0+XG4gICAgICAgIHRoaXMuYnVpbGRWYWx1ZUlucHV0KGlucHV0LCAnbWFya2Rvd25DaXRhdGlvblRlbXBsYXRlJyksXG4gICAgICApO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZSgnTWFya2Rvd24gc2Vjb25kYXJ5IGNpdGF0aW9uIHRlbXBsYXRlJylcbiAgICAgIC5hZGRUZXh0KChpbnB1dCkgPT5cbiAgICAgICAgdGhpcy5idWlsZFZhbHVlSW5wdXQoaW5wdXQsICdhbHRlcm5hdGl2ZU1hcmtkb3duQ2l0YXRpb25UZW1wbGF0ZScpLFxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWZmIHRoZSBwYXRoIGV4aXN0czsgZGlzcGxheXMgZXJyb3IgYXMgYSBzaWRlLWVmZmVjdFxuICAgKi9cbiAgYXN5bmMgY2hlY2tDaXRhdGlvbkV4cG9ydFBhdGgoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuY2l0YXRpb25QYXRoTG9hZGluZ0VsLmFkZENsYXNzKCdkLW5vbmUnKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBGaWxlU3lzdGVtQWRhcHRlci5yZWFkTG9jYWxGaWxlKFxuICAgICAgICB0aGlzLnBsdWdpbi5yZXNvbHZlTGlicmFyeVBhdGgoZmlsZVBhdGgpLFxuICAgICAgKTtcbiAgICAgIHRoaXMuY2l0YXRpb25QYXRoRXJyb3JFbC5hZGRDbGFzcygnZC1ub25lJyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5jaXRhdGlvblBhdGhTdWNjZXNzRWwuYWRkQ2xhc3MoJ2Qtbm9uZScpO1xuICAgICAgdGhpcy5jaXRhdGlvblBhdGhFcnJvckVsLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHNob3dDaXRhdGlvbkV4cG9ydFBhdGhTdWNjZXNzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wbHVnaW4ubGlicmFyeSkgcmV0dXJuO1xuXG4gICAgdGhpcy5jaXRhdGlvblBhdGhTdWNjZXNzRWwuc2V0VGV4dChcbiAgICAgIGBMb2FkZWQgbGlicmFyeSB3aXRoICR7dGhpcy5wbHVnaW4ubGlicmFyeS5zaXplfSByZWZlcmVuY2VzLmAsXG4gICAgKTtcbiAgICB0aGlzLmNpdGF0aW9uUGF0aFN1Y2Nlc3NFbC5yZW1vdmVDbGFzcygnZC1ub25lJyk7XG4gIH1cbn1cbiIsIid1c2Ugc3RyaWN0J1xuXG52YXIgbWVzc2FnZUlkcyA9IDBcblxuZnVuY3Rpb24gb25NZXNzYWdlIChzZWxmLCBlKSB7XG4gIHZhciBtZXNzYWdlID0gZS5kYXRhXG4gIGlmICghQXJyYXkuaXNBcnJheShtZXNzYWdlKSB8fCBtZXNzYWdlLmxlbmd0aCA8IDIpIHtcbiAgICAvLyBJZ25vcmUgLSB0aGlzIG1lc3NhZ2UgaXMgbm90IGZvciB1cy5cbiAgICByZXR1cm5cbiAgfVxuICB2YXIgbWVzc2FnZUlkID0gbWVzc2FnZVswXVxuICB2YXIgZXJyb3IgPSBtZXNzYWdlWzFdXG4gIHZhciByZXN1bHQgPSBtZXNzYWdlWzJdXG5cbiAgdmFyIGNhbGxiYWNrID0gc2VsZi5fY2FsbGJhY2tzW21lc3NhZ2VJZF1cblxuICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgLy8gSWdub3JlIC0gdXNlciBtaWdodCBoYXZlIGNyZWF0ZWQgbXVsdGlwbGUgUHJvbWlzZVdvcmtlcnMuXG4gICAgLy8gVGhpcyBtZXNzYWdlIGlzIG5vdCBmb3IgdXMuXG4gICAgcmV0dXJuXG4gIH1cblxuICBkZWxldGUgc2VsZi5fY2FsbGJhY2tzW21lc3NhZ2VJZF1cbiAgY2FsbGJhY2soZXJyb3IsIHJlc3VsdClcbn1cblxuZnVuY3Rpb24gUHJvbWlzZVdvcmtlciAod29ya2VyKSB7XG4gIHZhciBzZWxmID0gdGhpc1xuICBzZWxmLl93b3JrZXIgPSB3b3JrZXJcbiAgc2VsZi5fY2FsbGJhY2tzID0ge31cblxuICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uIChlKSB7XG4gICAgb25NZXNzYWdlKHNlbGYsIGUpXG4gIH0pXG59XG5cblByb21pc2VXb3JrZXIucHJvdG90eXBlLnBvc3RNZXNzYWdlID0gZnVuY3Rpb24gKHVzZXJNZXNzYWdlKSB7XG4gIHZhciBzZWxmID0gdGhpc1xuICB2YXIgbWVzc2FnZUlkID0gbWVzc2FnZUlkcysrXG5cbiAgdmFyIG1lc3NhZ2VUb1NlbmQgPSBbbWVzc2FnZUlkLCB1c2VyTWVzc2FnZV1cblxuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIHNlbGYuX2NhbGxiYWNrc1ttZXNzYWdlSWRdID0gZnVuY3Rpb24gKGVycm9yLCByZXN1bHQpIHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBFcnJvcihlcnJvci5tZXNzYWdlKSlcbiAgICAgIH1cbiAgICAgIHJlc29sdmUocmVzdWx0KVxuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICh0eXBlb2Ygc2VsZi5fd29ya2VyLmNvbnRyb2xsZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAvLyBzZXJ2aWNlIHdvcmtlciwgdXNlIE1lc3NhZ2VDaGFubmVscyBiZWNhdXNlIGUuc291cmNlIGlzIGJyb2tlbiBpbiBDaHJvbWUgPCA1MTpcbiAgICAgIC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTU0MzE5OFxuICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKVxuICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICBvbk1lc3NhZ2Uoc2VsZiwgZSlcbiAgICAgIH1cbiAgICAgIHNlbGYuX3dvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKG1lc3NhZ2VUb1NlbmQsIFtjaGFubmVsLnBvcnQyXSlcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gd2ViIHdvcmtlclxuICAgICAgc2VsZi5fd29ya2VyLnBvc3RNZXNzYWdlKG1lc3NhZ2VUb1NlbmQpXG4gICAgfVxuICB9KVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFByb21pc2VXb3JrZXJcbiIsIi8qKlxuICogRGVjbGFyZXMgcHJvcGVydGllcyBhbmQgbWV0aG9kcyB3aGljaCBhcmUgbWlzc2luZyBmcm9tIHRoZSBPYnNpZGlhbiBBUEkuXG4gKi9cblxuaW1wb3J0IHsgTm90aWNlIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5leHBvcnQgY2xhc3MgTm90aWNlRXh0IGV4dGVuZHMgTm90aWNlIHtcbiAgc3RhdGljIERJU0FQUEVBUklOR19DTEFTUyA9ICdtb2QtZGlzYXBwZWFyaW5nJztcblxuICBub3RpY2VFbDogSFRNTEVsZW1lbnQ7XG59XG4iLCJpbXBvcnQgeyBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCBQcm9taXNlV29ya2VyIGZyb20gJ3Byb21pc2Utd29ya2VyJztcblxuaW1wb3J0IHsgTm90aWNlRXh0IH0gZnJvbSAnLi9vYnNpZGlhbi1leHRlbnNpb25zJztcblxuZXhwb3J0IGNvbnN0IERJU0FMTE9XRURfRklMRU5BTUVfQ0hBUkFDVEVSU19SRSA9IC9bKlwiXFxcXC88Pjp8P10vZztcblxuLyoqXG4gKiBNYW5hZ2VzIGEgY2F0ZWdvcnkgb2Ygbm90aWNlcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIFVJLiBQcmV2ZW50cyBtdWx0aXBsZVxuICogbm90aWNlcyBiZWluZyBzaG93biBhdCB0aGUgc2FtZSB0aW1lLlxuICovXG5leHBvcnQgY2xhc3MgTm90aWZpZXIge1xuICBzdGF0aWMgRElTQVBQRUFSSU5HX0NMQVNTID0gJ21vZC1kaXNhcHBlYXJpbmcnO1xuICBjdXJyZW50Tm90aWNlPzogTm90aWNlRXh0O1xuICBtdXRhdGlvbk9ic2VydmVyPzogTXV0YXRpb25PYnNlcnZlcjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGVmYXVsdE1lc3NhZ2U6IHN0cmluZykge31cblxuICB1bmxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgbm90aWNlIHdhcyBzaG93biwgYW5kIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgc2hvdyhtZXNzYWdlPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UgfHwgdGhpcy5kZWZhdWx0TWVzc2FnZTtcbiAgICBpZiAodGhpcy5jdXJyZW50Tm90aWNlKSByZXR1cm4gZmFsc2U7XG5cbiAgICB0aGlzLmN1cnJlbnROb3RpY2UgPSBuZXcgTm90aWNlKG1lc3NhZ2UpIGFzIE5vdGljZUV4dDtcblxuICAgIC8vIFNldCB1cCBtdXRhdGlvbiBvYnNlcnZlciB0byB3YXRjaCBmb3Igd2hlbiB0aGUgbm90aWNlIGRpc2FwcGVhcnMuXG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGNoYW5nZXMsIG9ic2VydmVyKSA9PiB7XG4gICAgICBjb25zdCBpc0Rpc2FwcGVhcmluZyA9IGNoYW5nZXMuc29tZSgoY2hhbmdlKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsID0gY2hhbmdlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBjaGFuZ2UudHlwZSA9PSAnYXR0cmlidXRlcycgJiZcbiAgICAgICAgICBlbC5oYXNDbGFzcyhOb3RpY2VFeHQuRElTQVBQRUFSSU5HX0NMQVNTKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICBpZiAoaXNEaXNhcHBlYXJpbmcpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50Tm90aWNlID0gbnVsbDtcbiAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuY3VycmVudE5vdGljZS5ub3RpY2VFbCwge1xuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJ10sXG4gICAgfSk7XG4gIH1cblxuICBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudE5vdGljZT8uaGlkZSgpO1xuICAgIHRoaXMubXV0YXRpb25PYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuXG4gICAgdGhpcy5jdXJyZW50Tm90aWNlID0gbnVsbDtcbiAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSBudWxsO1xuICB9XG59XG5cbi8qKlxuICogTWFuYWdlcyBhIFdvcmtlciwgcmVjb3JkaW5nIGl0cyBzdGF0ZSBhbmQgb3B0aW9uYWxseSBwcmV2ZW50aW5nXG4gKiBtZXNzYWdlIHBvc3RpbmdzIGJlZm9yZSByZXNwb25zZXMgdG8gcHJpb3IgbWVzc2FnZXMgaGF2ZSBiZWVuIHJlY2VpdmVkLlxuICovXG5leHBvcnQgY2xhc3MgV29ya2VyTWFuYWdlciB7XG4gIHByaXZhdGUgd29ya2VyID0gbmV3IFByb21pc2VXb3JrZXIodGhpcy5fd29ya2VyKTtcbiAgb3B0aW9uczogV29ya2VyTWFuYWdlck9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIE9ubHkgcmVsZXZhbnQgd2hlbiBgYmxvY2tpbmdDaGFubmVsYCBvcHRpb24gaXMgdHJ1ZS5cbiAgICogVGhlbiB0aGlzIHByb3BlcnR5IGlzIHRydWUgaWZmIHRoZSB3b3JrZXIgaXMgY3VycmVudGx5IHByb2Nlc3NpbmcgYVxuICAgKiByZWNlaXZlZCBtZXNzYWdlLCBhbmQgaGFzIG5vdCB5ZXQgcG9zdGVkIGEgcmVzcG9uc2UuXG4gICAqL1xuICBibG9ja2VkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfd29ya2VyOiBXb3JrZXIsIG9wdGlvbnM6IFdvcmtlck1hbmFnZXJPcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0geyAuLi53b3JrZXJNYW5hZ2VyRGVmYXVsdE9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0IHRvIHBvc3QgYSBtZXNzYWdlIHRvIHRoZSB3b3JrZXIgYW5kIHJldHVybiBhIHByb21pc2UgcmVzcG9uc2UuXG4gICAqXG4gICAqIElmIGBibG9ja2luZ0NoYW5uZWxgIG9wdGlvbiBpcyB0cnVlIGFuZCB0aGUgY2hhbm5lbCBpcyBjdXJyZW50bHkgYmxvY2tlZCxcbiAgICogdGhlIG1lc3NhZ2Ugd2lsbCBiZSBkaXNjYXJkZWQgYW5kIGFuIGVycm9yIHdpbGwgYmUgdGhyb3duLlxuICAgKi9cbiAgYXN5bmMgcG9zdDxUUmVzdWx0ID0gYW55LCBUSW5wdXQgPSBhbnk+KG1zZzogVElucHV0KTogUHJvbWlzZTxUUmVzdWx0PiB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5ibG9ja2luZ0NoYW5uZWwgJiYgdGhpcy5ibG9ja2VkKSB7XG4gICAgICB0aHJvdyBuZXcgV29ya2VyTWFuYWdlckJsb2NrZWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLmJsb2NrZWQgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzLndvcmtlci5wb3N0TWVzc2FnZShtc2cpLnRoZW4oXG4gICAgICAocmVzdWx0KSA9PiB7XG4gICAgICAgIHRoaXMuYmxvY2tlZCA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9LFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFdvcmtlck1hbmFnZXJCbG9ja2VkIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignV29ya2VyTWFuYWdlcjogZGlzY2FyZGVkIG1lc3NhZ2UgYmVjYXVzZSBjaGFubmVsIGlzIGJsb2NrZWQnKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgV29ya2VyTWFuYWdlckJsb2NrZWQucHJvdG90eXBlKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtlck1hbmFnZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIElmIHRydWUsIHRyZWF0IHRoZSB3b3JrZXIgY2hhbm5lbCBhcyBibG9ja2luZyAtLSB3aGVuIHRoZSB3b3JrZXIgcmVjZWl2ZXNcbiAgICogYSBtZXNzYWdlLCBubyBvdGhlciBtZXNzYWdlcyBjYW4gYmUgc2VudCB1bnRpbCB0aGUgd29ya2VyIHNlbmRzIGEgbWVzc2FnZS5cbiAgICogTWVzc2FnZXMgd2hpY2ggYXJlIHNlbnQgZHVyaW5nIHRoZSBibG9ja2luZyBwZXJpb2Qgd2lsbCBiZSBkaXNjYXJkZWQuXG4gICAqL1xuICBibG9ja2luZ0NoYW5uZWw6IGJvb2xlYW47XG59XG5cbmNvbnN0IHdvcmtlck1hbmFnZXJEZWZhdWx0T3B0aW9uczogV29ya2VyTWFuYWdlck9wdGlvbnMgPSB7XG4gIGJsb2NraW5nQ2hhbm5lbDogZmFsc2UsXG59O1xuIiwiaW1wb3J0IHtcbiAgRmlsZVN5c3RlbUFkYXB0ZXIsXG4gIE1hcmtkb3duU291cmNlVmlldyxcbiAgTWFya2Rvd25WaWV3LFxuICBub3JtYWxpemVQYXRoLFxuICBQbHVnaW4sXG4gIFRGaWxlLFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2hva2lkYXIgZnJvbSAnY2hva2lkYXInO1xuaW1wb3J0ICogYXMgQ29kZU1pcnJvciBmcm9tICdjb2RlbWlycm9yJztcblxuaW1wb3J0IHtcbiAgY29tcGlsZSBhcyBjb21waWxlVGVtcGxhdGUsXG4gIFRlbXBsYXRlRGVsZWdhdGUgYXMgVGVtcGxhdGUsXG59IGZyb20gJ2hhbmRsZWJhcnMnO1xuXG5cbmltcG9ydCBDaXRhdGlvbkV2ZW50cyBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQge1xuICBJbnNlcnRDaXRhdGlvbk1vZGFsLFxuICBJbnNlcnROb3RlTGlua01vZGFsLFxuICBJbnNlcnROb3RlQ29udGVudE1vZGFsLFxuICBPcGVuTm90ZU1vZGFsLFxufSBmcm9tICcuL21vZGFscyc7XG5pbXBvcnQgeyBWYXVsdEV4dCB9IGZyb20gJy4vb2JzaWRpYW4tZXh0ZW5zaW9ucy5kJztcbmltcG9ydCB7IENpdGF0aW9uU2V0dGluZ1RhYiwgQ2l0YXRpb25zUGx1Z2luU2V0dGluZ3MgfSBmcm9tICcuL3NldHRpbmdzJztcbmltcG9ydCB7XG4gIEVudHJ5LFxuICBFbnRyeURhdGEsXG4gIEVudHJ5QmliTGFUZVhBZGFwdGVyLFxuICBFbnRyeUNTTEFkYXB0ZXIsXG4gIElJbmRleGFibGUsXG4gIExpYnJhcnksXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgRElTQUxMT1dFRF9GSUxFTkFNRV9DSEFSQUNURVJTX1JFLFxuICBOb3RpZmllcixcbiAgV29ya2VyTWFuYWdlcixcbiAgV29ya2VyTWFuYWdlckJsb2NrZWQsXG59IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgTG9hZFdvcmtlciBmcm9tICd3ZWItd29ya2VyOi4vd29ya2VyJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2l0YXRpb25QbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xuICBzZXR0aW5nczogQ2l0YXRpb25zUGx1Z2luU2V0dGluZ3M7XG4gIGxpYnJhcnk6IExpYnJhcnk7XG5cbiAgLy8gVGVtcGxhdGUgY29tcGlsYXRpb24gb3B0aW9uc1xuICBwcml2YXRlIHRlbXBsYXRlU2V0dGluZ3MgPSB7XG4gICAgbm9Fc2NhcGU6IHRydWUsXG4gIH07XG5cbiAgcHJpdmF0ZSBsb2FkV29ya2VyID0gbmV3IFdvcmtlck1hbmFnZXIobmV3IExvYWRXb3JrZXIoKSwge1xuICAgIGJsb2NraW5nQ2hhbm5lbDogdHJ1ZSxcbiAgfSk7XG5cbiAgZXZlbnRzID0gbmV3IENpdGF0aW9uRXZlbnRzKCk7XG5cbiAgbG9hZEVycm9yTm90aWZpZXIgPSBuZXcgTm90aWZpZXIoXG4gICAgJ1VuYWJsZSB0byBsb2FkIGNpdGF0aW9ucy4gUGxlYXNlIHVwZGF0ZSBDaXRhdGlvbnMgcGx1Z2luIHNldHRpbmdzLicsXG4gICk7XG4gIGxpdGVyYXR1cmVOb3RlRXJyb3JOb3RpZmllciA9IG5ldyBOb3RpZmllcihcbiAgICAnVW5hYmxlIHRvIGFjY2VzcyBsaXRlcmF0dXJlIG5vdGUuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBsaXRlcmF0dXJlIG5vdGUgZm9sZGVyIGV4aXN0cywgb3IgdXBkYXRlIHRoZSBDaXRhdGlvbnMgcGx1Z2luIHNldHRpbmdzLicsXG4gICk7XG5cbiAgZ2V0IGVkaXRvcigpOiBDb2RlTWlycm9yLkVkaXRvciB7XG4gICAgY29uc3QgdmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5hY3RpdmVMZWFmLnZpZXc7XG4gICAgaWYgKCEodmlldyBpbnN0YW5jZW9mIE1hcmtkb3duVmlldykpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3Qgc291cmNlVmlldyA9IHZpZXcuc291cmNlTW9kZTtcbiAgICByZXR1cm4gKHNvdXJjZVZpZXcgYXMgTWFya2Rvd25Tb3VyY2VWaWV3KS5jbUVkaXRvcjtcbiAgfVxuXG4gIGFzeW5jIGxvYWRTZXR0aW5ncygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnNldHRpbmdzID0gbmV3IENpdGF0aW9uc1BsdWdpblNldHRpbmdzKCk7XG5cbiAgICBjb25zdCBsb2FkZWRTZXR0aW5ncyA9IGF3YWl0IHRoaXMubG9hZERhdGEoKTtcbiAgICBpZiAoIWxvYWRlZFNldHRpbmdzKSByZXR1cm47XG5cbiAgICBjb25zdCB0b0xvYWQgPSBbXG4gICAgICAnY2l0YXRpb25FeHBvcnRQYXRoJyxcbiAgICAgICdjaXRhdGlvbkV4cG9ydEZvcm1hdCcsXG4gICAgICAnbGl0ZXJhdHVyZU5vdGVUaXRsZVRlbXBsYXRlJyxcbiAgICAgICdsaXRlcmF0dXJlTm90ZUZvbGRlcicsXG4gICAgICAnbGl0ZXJhdHVyZU5vdGVDb250ZW50VGVtcGxhdGUnLFxuICAgICAgJ21hcmtkb3duQ2l0YXRpb25UZW1wbGF0ZScsXG4gICAgICAnYWx0ZXJuYXRpdmVNYXJrZG93bkNpdGF0aW9uVGVtcGxhdGUnLFxuICAgIF07XG4gICAgdG9Mb2FkLmZvckVhY2goKHNldHRpbmcpID0+IHtcbiAgICAgIGlmIChzZXR0aW5nIGluIGxvYWRlZFNldHRpbmdzKSB7XG4gICAgICAgICh0aGlzLnNldHRpbmdzIGFzIElJbmRleGFibGUpW3NldHRpbmddID0gbG9hZGVkU2V0dGluZ3Nbc2V0dGluZ107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzYXZlU2V0dGluZ3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcbiAgfVxuXG4gIG9ubG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRTZXR0aW5ncygpLnRoZW4oKCkgPT4gdGhpcy5pbml0KCkpO1xuICB9XG5cbiAgYXN5bmMgaW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5jaXRhdGlvbkV4cG9ydFBhdGgpIHtcbiAgICAgIC8vIExvYWQgbGlicmFyeSBmb3IgdGhlIGZpcnN0IHRpbWVcbiAgICAgIHRoaXMubG9hZExpYnJhcnkoKTtcblxuICAgICAgLy8gU2V0IHVwIGEgd2F0Y2hlciB0byByZWZyZXNoIHdoZW5ldmVyIHRoZSBleHBvcnQgaXMgdXBkYXRlZFxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gV2FpdCB1bnRpbCBmaWxlcyBhcmUgZmluaXNoZWQgYmVpbmcgd3JpdHRlbiBiZWZvcmUgZ29pbmcgYWhlYWQgd2l0aFxuICAgICAgICAvLyB0aGUgcmVmcmVzaCAtLSBoZXJlLCB3ZSByZXF1ZXN0IHRoYXQgYGNoYW5nZWAgZXZlbnRzIGJlIGFjY3VtdWxhdGVkXG4gICAgICAgIC8vIHVudGlsIG5vdGhpbmcgc2hvd3MgdXAgZm9yIDUwMCBtc1xuICAgICAgICAvLyBUT0RPIG1hZ2ljIG51bWJlclxuICAgICAgICBjb25zdCB3YXRjaE9wdGlvbnMgPSB7XG4gICAgICAgICAgYXdhaXRXcml0ZUZpbmlzaDoge1xuICAgICAgICAgICAgc3RhYmlsaXR5VGhyZXNob2xkOiA1MDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBjaG9raWRhclxuICAgICAgICAgIC53YXRjaChcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZUxpYnJhcnlQYXRoKHRoaXMuc2V0dGluZ3MuY2l0YXRpb25FeHBvcnRQYXRoKSxcbiAgICAgICAgICAgIHdhdGNoT3B0aW9ucyxcbiAgICAgICAgICApXG4gICAgICAgICAgLm9uKCdjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRMaWJyYXJ5KCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgdGhpcy5sb2FkRXJyb3JOb3RpZmllci5zaG93KCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRPRE8gc2hvdyB3YXJuaW5nP1xuICAgIH1cblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ29wZW4tbGl0ZXJhdHVyZS1ub3RlJyxcbiAgICAgIG5hbWU6ICdPcGVuIGxpdGVyYXR1cmUgbm90ZScsXG4gICAgICBob3RrZXlzOiBbeyBtb2RpZmllcnM6IFsnQ3RybCcsICdTaGlmdCddLCBrZXk6ICdvJyB9XSxcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1vZGFsID0gbmV3IE9wZW5Ob3RlTW9kYWwodGhpcy5hcHAsIHRoaXMpO1xuICAgICAgICBtb2RhbC5vcGVuKCk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAndXBkYXRlLWJpYi1kYXRhJyxcbiAgICAgIG5hbWU6ICdSZWZyZXNoIGNpdGF0aW9uIGRhdGFiYXNlJyxcbiAgICAgIGhvdGtleXM6IFt7IG1vZGlmaWVyczogWydDdHJsJywgJ1NoaWZ0J10sIGtleTogJ3InIH1dLFxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkTGlicmFyeSgpO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XG4gICAgICBpZDogJ2luc2VydC1jaXRhdGlvbicsXG4gICAgICBuYW1lOiAnSW5zZXJ0IGxpdGVyYXR1cmUgbm90ZSBsaW5rJyxcbiAgICAgIGhvdGtleXM6IFt7IG1vZGlmaWVyczogWydDdHJsJywgJ1NoaWZ0J10sIGtleTogJ2UnIH1dLFxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgY29uc3QgbW9kYWwgPSBuZXcgSW5zZXJ0Tm90ZUxpbmtNb2RhbCh0aGlzLmFwcCwgdGhpcyk7XG4gICAgICAgIG1vZGFsLm9wZW4oKTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6ICdpbnNlcnQtbGl0ZXJhdHVyZS1ub3RlLWNvbnRlbnQnLFxuICAgICAgbmFtZTogJ0luc2VydCBsaXRlcmF0dXJlIG5vdGUgY29udGVudCBpbiB0aGUgY3VycmVudCBwYW5lJyxcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1vZGFsID0gbmV3IEluc2VydE5vdGVDb250ZW50TW9kYWwodGhpcy5hcHAsIHRoaXMpO1xuICAgICAgICBtb2RhbC5vcGVuKCk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAnaW5zZXJ0LW1hcmtkb3duLWNpdGF0aW9uJyxcbiAgICAgIG5hbWU6ICdJbnNlcnQgTWFya2Rvd24gY2l0YXRpb24nLFxuICAgICAgY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgY29uc3QgbW9kYWwgPSBuZXcgSW5zZXJ0Q2l0YXRpb25Nb2RhbCh0aGlzLmFwcCwgdGhpcyk7XG4gICAgICAgIG1vZGFsLm9wZW4oKTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZFNldHRpbmdUYWIobmV3IENpdGF0aW9uU2V0dGluZ1RhYih0aGlzLmFwcCwgdGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgYSBwcm92aWRlZCBsaWJyYXJ5IHBhdGgsIGFsbG93aW5nIGZvciByZWxhdGl2ZSBwYXRocyByb290ZWQgYXRcbiAgICogdGhlIHZhdWx0IGRpcmVjdG9yeS5cbiAgICovXG4gIHJlc29sdmVMaWJyYXJ5UGF0aChyYXdQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhdWx0Um9vdCA9XG4gICAgICB0aGlzLmFwcC52YXVsdC5hZGFwdGVyIGluc3RhbmNlb2YgRmlsZVN5c3RlbUFkYXB0ZXJcbiAgICAgICAgPyB0aGlzLmFwcC52YXVsdC5hZGFwdGVyLmdldEJhc2VQYXRoKClcbiAgICAgICAgOiAnLyc7XG4gICAgcmV0dXJuIHBhdGgucmVzb2x2ZSh2YXVsdFJvb3QsIHJhd1BhdGgpO1xuICB9XG5cbiAgYXN5bmMgbG9hZExpYnJhcnkoKTogUHJvbWlzZTxMaWJyYXJ5PiB7XG4gICAgY29uc29sZS5kZWJ1ZygnQ2l0YXRpb24gcGx1Z2luOiBSZWxvYWRpbmcgbGlicmFyeScpO1xuICAgIGlmICh0aGlzLnNldHRpbmdzLmNpdGF0aW9uRXhwb3J0UGF0aCkge1xuICAgICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLnJlc29sdmVMaWJyYXJ5UGF0aChcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5jaXRhdGlvbkV4cG9ydFBhdGgsXG4gICAgICApO1xuXG4gICAgICAvLyBVbmxvYWQgY3VycmVudCBsaWJyYXJ5LlxuICAgICAgdGhpcy5ldmVudHMudHJpZ2dlcignbGlicmFyeS1sb2FkLXN0YXJ0Jyk7XG4gICAgICB0aGlzLmxpYnJhcnkgPSBudWxsO1xuXG4gICAgICByZXR1cm4gRmlsZVN5c3RlbUFkYXB0ZXIucmVhZExvY2FsRmlsZShmaWxlUGF0aClcbiAgICAgICAgLnRoZW4oKGJ1ZmZlcikgPT4ge1xuICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgcmVtYWluaW5nIGVycm9yIG1lc3NhZ2UsIGhpZGUgaXRcbiAgICAgICAgICB0aGlzLmxvYWRFcnJvck5vdGlmaWVyLmhpZGUoKTtcblxuICAgICAgICAgIC8vIERlY29kZSBmaWxlIGFzIFVURi04LlxuICAgICAgICAgIGNvbnN0IGRhdGFWaWV3ID0gbmV3IERhdGFWaWV3KGJ1ZmZlcik7XG4gICAgICAgICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigndXRmOCcpO1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGVjb2Rlci5kZWNvZGUoZGF0YVZpZXcpO1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMubG9hZFdvcmtlci5wb3N0KHtcbiAgICAgICAgICAgIGRhdGFiYXNlUmF3OiB2YWx1ZSxcbiAgICAgICAgICAgIGRhdGFiYXNlVHlwZTogdGhpcy5zZXR0aW5ncy5jaXRhdGlvbkV4cG9ydEZvcm1hdCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oKGVudHJpZXM6IEVudHJ5RGF0YVtdKSA9PiB7XG4gICAgICAgICAgbGV0IGFkYXB0ZXI6IG5ldyAoZGF0YTogRW50cnlEYXRhKSA9PiBFbnRyeTtcbiAgICAgICAgICBsZXQgaWRLZXk6IHN0cmluZztcblxuICAgICAgICAgIHN3aXRjaCAodGhpcy5zZXR0aW5ncy5jaXRhdGlvbkV4cG9ydEZvcm1hdCkge1xuICAgICAgICAgICAgY2FzZSAnYmlibGF0ZXgnOlxuICAgICAgICAgICAgICBhZGFwdGVyID0gRW50cnlCaWJMYVRlWEFkYXB0ZXI7XG4gICAgICAgICAgICAgIGlkS2V5ID0gJ2tleSc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY3NsLWpzb24nOlxuICAgICAgICAgICAgICBhZGFwdGVyID0gRW50cnlDU0xBZGFwdGVyO1xuICAgICAgICAgICAgICBpZEtleSA9ICdpZCc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMubGlicmFyeSA9IG5ldyBMaWJyYXJ5KFxuICAgICAgICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgICAgICBlbnRyaWVzLm1hcCgoZSkgPT4gWyhlIGFzIElJbmRleGFibGUpW2lkS2V5XSwgbmV3IGFkYXB0ZXIoZSldKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKFxuICAgICAgICAgICAgYENpdGF0aW9uIHBsdWdpbjogc3VjY2Vzc2Z1bGx5IGxvYWRlZCBsaWJyYXJ5IHdpdGggJHt0aGlzLmxpYnJhcnkuc2l6ZX0gZW50cmllcy5gLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLmV2ZW50cy50cmlnZ2VyKCdsaWJyYXJ5LWxvYWQtY29tcGxldGUnKTtcblxuICAgICAgICAgIHJldHVybiB0aGlzLmxpYnJhcnk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgV29ya2VyTWFuYWdlckJsb2NrZWQpIHtcbiAgICAgICAgICAgIC8vIFNpbGVudGx5IGNhdGNoIFdvcmtlck1hbmFnZXIgZXJyb3IsIHdoaWNoIHdpbGwgYmUgdGhyb3duIGlmIHRoZVxuICAgICAgICAgICAgLy8gbGlicmFyeSBpcyBhbHJlYWR5IGJlaW5nIGxvYWRlZFxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgdGhpcy5sb2FkRXJyb3JOb3RpZmllci5zaG93KCk7XG5cbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ0NpdGF0aW9ucyBwbHVnaW46IGNpdGF0aW9uIGV4cG9ydCBwYXRoIGlzIG5vdCBzZXQuIFBsZWFzZSB1cGRhdGUgcGx1Z2luIHNldHRpbmdzLicsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWZmIHRoZSBsaWJyYXJ5IGlzIGN1cnJlbnRseSBiZWluZyBsb2FkZWQgb24gdGhlIHdvcmtlciB0aHJlYWQuXG4gICAqL1xuICBnZXQgaXNMaWJyYXJ5TG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkV29ya2VyLmJsb2NrZWQ7XG4gIH1cblxuICBnZXQgbGl0ZXJhdHVyZU5vdGVUaXRsZVRlbXBsYXRlKCk6IFRlbXBsYXRlIHtcbiAgICByZXR1cm4gY29tcGlsZVRlbXBsYXRlKFxuICAgICAgdGhpcy5zZXR0aW5ncy5saXRlcmF0dXJlTm90ZVRpdGxlVGVtcGxhdGUsXG4gICAgICB0aGlzLnRlbXBsYXRlU2V0dGluZ3MsXG4gICAgKTtcbiAgfVxuXG4gIGdldCBsaXRlcmF0dXJlTm90ZUNvbnRlbnRUZW1wbGF0ZSgpOiBUZW1wbGF0ZSB7XG4gICAgcmV0dXJuIGNvbXBpbGVUZW1wbGF0ZShcbiAgICAgIHRoaXMuc2V0dGluZ3MubGl0ZXJhdHVyZU5vdGVDb250ZW50VGVtcGxhdGUsXG4gICAgICB0aGlzLnRlbXBsYXRlU2V0dGluZ3MsXG4gICAgKTtcbiAgfVxuXG4gIGdldCBtYXJrZG93bkNpdGF0aW9uVGVtcGxhdGUoKTogVGVtcGxhdGUge1xuICAgIHJldHVybiBjb21waWxlVGVtcGxhdGUoXG4gICAgICB0aGlzLnNldHRpbmdzLm1hcmtkb3duQ2l0YXRpb25UZW1wbGF0ZSxcbiAgICAgIHRoaXMudGVtcGxhdGVTZXR0aW5ncyxcbiAgICApO1xuICB9XG5cbiAgZ2V0IGFsdGVybmF0aXZlTWFya2Rvd25DaXRhdGlvblRlbXBsYXRlKCk6IFRlbXBsYXRlIHtcbiAgICByZXR1cm4gY29tcGlsZVRlbXBsYXRlKFxuICAgICAgdGhpcy5zZXR0aW5ncy5hbHRlcm5hdGl2ZU1hcmtkb3duQ2l0YXRpb25UZW1wbGF0ZSxcbiAgICAgIHRoaXMudGVtcGxhdGVTZXR0aW5ncyxcbiAgICApO1xuICB9XG5cbiAgZ2V0VGl0bGVGb3JDaXRla2V5KGNpdGVrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdW5zYWZlVGl0bGUgPSB0aGlzLmxpdGVyYXR1cmVOb3RlVGl0bGVUZW1wbGF0ZShcbiAgICAgIHRoaXMubGlicmFyeS5nZXRUZW1wbGF0ZVZhcmlhYmxlc0ZvckNpdGVrZXkoY2l0ZWtleSksXG4gICAgKTtcbiAgICByZXR1cm4gdW5zYWZlVGl0bGUucmVwbGFjZShESVNBTExPV0VEX0ZJTEVOQU1FX0NIQVJBQ1RFUlNfUkUsICdfJyk7XG4gIH1cblxuICBnZXRQYXRoRm9yQ2l0ZWtleShjaXRla2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRpdGxlID0gdGhpcy5nZXRUaXRsZUZvckNpdGVrZXkoY2l0ZWtleSk7XG4gICAgLy8gVE9ETyBlc2NhcGUgbm90ZSB0aXRsZVxuICAgIHJldHVybiBwYXRoLmpvaW4odGhpcy5zZXR0aW5ncy5saXRlcmF0dXJlTm90ZUZvbGRlciwgYCR7dGl0bGV9Lm1kYCk7XG4gIH1cblxuICBnZXRJbml0aWFsQ29udGVudEZvckNpdGVrZXkoY2l0ZWtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5saXRlcmF0dXJlTm90ZUNvbnRlbnRUZW1wbGF0ZShcbiAgICAgIHRoaXMubGlicmFyeS5nZXRUZW1wbGF0ZVZhcmlhYmxlc0ZvckNpdGVrZXkoY2l0ZWtleSksXG4gICAgKTtcbiAgfVxuXG4gIGdldE1hcmtkb3duQ2l0YXRpb25Gb3JDaXRla2V5KGNpdGVrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubWFya2Rvd25DaXRhdGlvblRlbXBsYXRlKFxuICAgICAgdGhpcy5saWJyYXJ5LmdldFRlbXBsYXRlVmFyaWFibGVzRm9yQ2l0ZWtleShjaXRla2V5KSxcbiAgICApO1xuICB9XG5cbiAgZ2V0QWx0ZXJuYXRpdmVNYXJrZG93bkNpdGF0aW9uRm9yQ2l0ZWtleShjaXRla2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmFsdGVybmF0aXZlTWFya2Rvd25DaXRhdGlvblRlbXBsYXRlKFxuICAgICAgdGhpcy5saWJyYXJ5LmdldFRlbXBsYXRlVmFyaWFibGVzRm9yQ2l0ZWtleShjaXRla2V5KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1biBhIGNhc2UtaW5zZW5zaXRpdmUgc2VhcmNoIGZvciB0aGUgbGl0ZXJhdHVyZSBub3RlIGZpbGUgY29ycmVzcG9uZGluZyB0b1xuICAgKiB0aGUgZ2l2ZW4gY2l0ZWtleS4gSWYgbm8gY29ycmVzcG9uZGluZyBmaWxlIGlzIGZvdW5kLCBjcmVhdGUgb25lLlxuICAgKi9cbiAgYXN5bmMgZ2V0T3JDcmVhdGVMaXRlcmF0dXJlTm90ZUZpbGUoY2l0ZWtleTogc3RyaW5nKTogUHJvbWlzZTxURmlsZT4ge1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldFBhdGhGb3JDaXRla2V5KGNpdGVrZXkpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gbm9ybWFsaXplUGF0aChwYXRoKTtcblxuICAgIGxldCBmaWxlID0gdGhpcy5hcHAudmF1bHQuZ2V0QWJzdHJhY3RGaWxlQnlQYXRoKG5vcm1hbGl6ZWRQYXRoKTtcbiAgICBpZiAoZmlsZSA9PSBudWxsKSB7XG4gICAgICAvLyBGaXJzdCB0cnkgYSBjYXNlLWluc2Vuc2l0aXZlIGxvb2t1cC5cbiAgICAgIGNvbnN0IG1hdGNoZXMgPSB0aGlzLmFwcC52YXVsdFxuICAgICAgICAuZ2V0TWFya2Rvd25GaWxlcygpXG4gICAgICAgIC5maWx0ZXIoKGYpID0+IGYucGF0aC50b0xvd2VyQ2FzZSgpID09IG5vcm1hbGl6ZWRQYXRoLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKG1hdGNoZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBmaWxlID0gbWF0Y2hlc1swXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZmlsZSA9IGF3YWl0IHRoaXMuYXBwLnZhdWx0LmNyZWF0ZShcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICB0aGlzLmdldEluaXRpYWxDb250ZW50Rm9yQ2l0ZWtleShjaXRla2V5KSxcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChleGMpIHtcbiAgICAgICAgICB0aGlzLmxpdGVyYXR1cmVOb3RlRXJyb3JOb3RpZmllci5zaG93KCk7XG4gICAgICAgICAgdGhyb3cgZXhjO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbGUgYXMgVEZpbGU7XG4gIH1cblxuICBhc3luYyBvcGVuTGl0ZXJhdHVyZU5vdGUoY2l0ZWtleTogc3RyaW5nLCBuZXdQYW5lOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5nZXRPckNyZWF0ZUxpdGVyYXR1cmVOb3RlRmlsZShjaXRla2V5KVxuICAgICAgLnRoZW4oKGZpbGU6IFRGaWxlKSA9PiB7XG4gICAgICAgIHRoaXMuYXBwLndvcmtzcGFjZS5nZXRMZWFmKG5ld1BhbmUpLm9wZW5GaWxlKGZpbGUpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChjb25zb2xlLmVycm9yKTtcbiAgfVxuXG4gIGFzeW5jIGluc2VydExpdGVyYXR1cmVOb3RlTGluayhjaXRla2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmdldE9yQ3JlYXRlTGl0ZXJhdHVyZU5vdGVGaWxlKGNpdGVrZXkpXG4gICAgICAudGhlbigoZmlsZTogVEZpbGUpID0+IHtcbiAgICAgICAgY29uc3QgdXNlTWFya2Rvd246IGJvb2xlYW4gPSAoPFZhdWx0RXh0PnRoaXMuYXBwLnZhdWx0KS5nZXRDb25maWcoXG4gICAgICAgICAgJ3VzZU1hcmtkb3duTGlua3MnLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMuZ2V0VGl0bGVGb3JDaXRla2V5KGNpdGVrZXkpO1xuXG4gICAgICAgIGxldCBsaW5rVGV4dDogc3RyaW5nO1xuICAgICAgICBpZiAodXNlTWFya2Rvd24pIHtcbiAgICAgICAgICBjb25zdCB1cmkgPSBlbmNvZGVVUkkoXG4gICAgICAgICAgICB0aGlzLmFwcC5tZXRhZGF0YUNhY2hlLmZpbGVUb0xpbmt0ZXh0KGZpbGUsICcnLCBmYWxzZSksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBsaW5rVGV4dCA9IGBbJHt0aXRsZX1dKCR7dXJpfSlgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxpbmtUZXh0ID0gYFtbJHt0aXRsZX1dXWA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKGxpbmtUZXh0KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goY29uc29sZS5lcnJvcik7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IGxpdGVyYXR1cmUgbm90ZSBjb250ZW50IGZvciBhIGdpdmVuIHJlZmVyZW5jZSBhbmQgaW5zZXJ0IGluIHRoZVxuICAgKiBjdXJyZW50bHkgYWN0aXZlIHBhbmUuXG4gICAqL1xuICBhc3luYyBpbnNlcnRMaXRlcmF0dXJlTm90ZUNvbnRlbnQoY2l0ZWtleTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0SW5pdGlhbENvbnRlbnRGb3JDaXRla2V5KGNpdGVrZXkpO1xuICAgIHRoaXMuZWRpdG9yLnJlcGxhY2VSYW5nZShjb250ZW50LCB0aGlzLmVkaXRvci5nZXRDdXJzb3IoKSk7XG4gIH1cblxuICBhc3luYyBpbnNlcnRNYXJrZG93bkNpdGF0aW9uKFxuICAgIGNpdGVrZXk6IHN0cmluZyxcbiAgICBhbHRlcm5hdGl2ZSA9IGZhbHNlLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmdW5jID0gYWx0ZXJuYXRpdmVcbiAgICAgID8gdGhpcy5nZXRBbHRlcm5hdGl2ZU1hcmtkb3duQ2l0YXRpb25Gb3JDaXRla2V5XG4gICAgICA6IHRoaXMuZ2V0TWFya2Rvd25DaXRhdGlvbkZvckNpdGVrZXk7XG4gICAgY29uc3QgY2l0YXRpb24gPSBmdW5jLmJpbmQodGhpcykoY2l0ZWtleSk7XG5cbiAgICB0aGlzLmVkaXRvci5yZXBsYWNlUmFuZ2UoY2l0YXRpb24sIHRoaXMuZWRpdG9yLmdldEN1cnNvcigpKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbInBhdGgiLCJyZXF1aXJlJCQwIiwiUE9TSVhfUkVHRVhfU09VUkNFIiwicGFyc2UiLCJzY2FuIiwicmVxdWlyZSQkMSIsImZzIiwicGljb21hdGNoIiwic3lzUGF0aCIsInV0aWxzIiwiaXNPYmplY3QiLCJpc051bWJlciIsInN0cmluZ2lmeSIsInRvUmVnZXhSYW5nZSIsInV0aWwiLCJmaWxsIiwiTUFYX0xFTkdUSCIsIkNIQVJfQ09NTUEiLCJDSEFSX0RPVCIsIkNIQVJfTEVGVF9QQVJFTlRIRVNFUyIsIkNIQVJfUklHSFRfUEFSRU5USEVTRVMiLCJDSEFSX0xFRlRfQ1VSTFlfQlJBQ0UiLCJDSEFSX1JJR0hUX0NVUkxZX0JSQUNFIiwiQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUIiwiQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCIsImNvbXBpbGUiLCJleHBhbmQiLCJwcm9taXNpZnkiLCJTVEFSIiwib3BlbiIsInN0YXQiLCJsc3RhdCIsIkVWX0FERCIsIkVWX0NIQU5HRSIsIkVWX0FERF9ESVIiLCJFVl9FUlJPUiIsIlNUUl9EQVRBIiwiU1RSX0VORCIsIkVNUFRZX0ZOIiwicmVhbHBhdGgiLCJzdGF0TWV0aG9kcyIsInJlcXVpcmUkJDIiLCJFVl9VTkxJTksiLCJCUkFDRV9TVEFSVCIsIkJBTkciLCJGVU5DVElPTl9UWVBFIiwiRU1QVFlfU1RSIiwiaXNXaW5kb3dzIiwicmVxdWlyZSQkMyIsInJlYWRkaXIiLCJicmFjZXMiLCJGc0V2ZW50c0hhbmRsZXIiLCJOb2RlRnNIYW5kbGVyIiwicmVhZGRpcnAiLCJfdXRpbHMiLCJfZXhjZXB0aW9uIiwiZ2xvYmFsIiwiX2hlbHBlcnNCbG9ja0hlbHBlck1pc3NpbmciLCJfaGVscGVyc0VhY2giLCJfaGVscGVyc0hlbHBlck1pc3NpbmciLCJfaGVscGVyc0lmIiwiX2hlbHBlcnNMb2ciLCJfaGVscGVyc0xvb2t1cCIsIl9oZWxwZXJzV2l0aCIsIl9kZWNvcmF0b3JzSW5saW5lIiwiX2xvZ2dlciIsIl9jcmVhdGVOZXdMb29rdXBPYmplY3QiLCJoZWxwZXJzIiwiZGVjb3JhdG9ycyIsIl9oZWxwZXJzIiwiX2RlY29yYXRvcnMiLCJfaW50ZXJuYWxQcm90b0FjY2VzcyIsIl9iYXNlIiwiX2ludGVybmFsV3JhcEhlbHBlciIsImJhc2UiLCJfaGFuZGxlYmFyc0Jhc2UiLCJfaGFuZGxlYmFyc1NhZmVTdHJpbmciLCJfaGFuZGxlYmFyc0V4Y2VwdGlvbiIsIl9oYW5kbGViYXJzVXRpbHMiLCJydW50aW1lIiwiX2hhbmRsZWJhcnNSdW50aW1lIiwiX2hhbmRsZWJhcnNOb0NvbmZsaWN0IiwiX3Zpc2l0b3IiLCJfcGFyc2VyIiwiX3doaXRlc3BhY2VDb250cm9sIiwiX2FzdCIsIkFycmF5U2V0IiwiTWFwcGluZ0xpc3QiLCJiYXNlNjRWTFEiLCJxdWlja1NvcnQiLCJTb3VyY2VNYXBHZW5lcmF0b3IiLCJkZWZpbmUiLCJfY29kZUdlbiIsIl9oYW5kbGViYXJzQ29tcGlsZXJBc3QiLCJfaGFuZGxlYmFyc0NvbXBpbGVySmF2YXNjcmlwdENvbXBpbGVyIiwiX2hhbmRsZWJhcnNDb21waWxlclZpc2l0b3IiLCJfaGFuZGxlYmFyc0NvbXBpbGVyQ29tcGlsZXIiLCJfaGFuZGxlYmFyc0NvbXBpbGVyQmFzZSIsImhhbmRsZWJhcnMiLCJyZXF1aXJlIiwiRXZlbnRzIiwicmVuZGVyTWF0Y2hlcyIsIkZ1enp5U3VnZ2VzdE1vZGFsIiwiTm90aWNlIiwiY2hhckNhdGVnb3JpZXMiLCJjaHVua2VyXzEiLCJiaWJ0ZXgiLCJ1bmljb2RlMmxhdGV4XzEiLCJqYWJyZWZfMSIsIlNldHRpbmciLCJGaWxlU3lzdGVtQWRhcHRlciIsIlBsdWdpblNldHRpbmdUYWIiLCJQcm9taXNlV29ya2VyIiwiTG9hZFdvcmtlciIsIk1hcmtkb3duVmlldyIsImNob2tpZGFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLndhdGNoIiwicGF0aC5yZXNvbHZlIiwiY29tcGlsZVRlbXBsYXRlIiwicGF0aC5qb2luIiwibm9ybWFsaXplUGF0aCIsIlBsdWdpbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxhQUFhLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ25DLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjO0FBQ3pDLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFlBQVksS0FBSyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNwRixRQUFRLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUMxRyxJQUFJLE9BQU8sYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFDRjtBQUNPLFNBQVMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDaEMsSUFBSSxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLElBQUksU0FBUyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQzNDLElBQUksQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN6RixDQUFDO0FBQ0Q7QUFDTyxJQUFJLFFBQVEsR0FBRyxXQUFXO0FBQ2pDLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksU0FBUyxRQUFRLENBQUMsQ0FBQyxFQUFFO0FBQ3JELFFBQVEsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0QsWUFBWSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdCLFlBQVksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekYsU0FBUztBQUNULFFBQVEsT0FBTyxDQUFDLENBQUM7QUFDakIsTUFBSztBQUNMLElBQUksT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMzQyxFQUFDO0FBNEJEO0FBQ08sU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFO0FBQzdELElBQUksU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxLQUFLLFlBQVksQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ2hILElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsVUFBVSxPQUFPLEVBQUUsTUFBTSxFQUFFO0FBQy9ELFFBQVEsU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUNuRyxRQUFRLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUN0RyxRQUFRLFNBQVMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRTtBQUN0SCxRQUFRLElBQUksQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM5RSxLQUFLLENBQUMsQ0FBQztBQUNQLENBQUM7QUFDRDtBQUNPLFNBQVMsV0FBVyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUU7QUFDM0MsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3JILElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sTUFBTSxLQUFLLFVBQVUsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFdBQVcsRUFBRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDN0osSUFBSSxTQUFTLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLFVBQVUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUN0RSxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUUsRUFBRTtBQUN0QixRQUFRLElBQUksQ0FBQyxFQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsaUNBQWlDLENBQUMsQ0FBQztBQUN0RSxRQUFRLE9BQU8sQ0FBQyxFQUFFLElBQUk7QUFDdEIsWUFBWSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6SyxZQUFZLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDcEQsWUFBWSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDekIsZ0JBQWdCLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU07QUFDOUMsZ0JBQWdCLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUN4RSxnQkFBZ0IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztBQUNqRSxnQkFBZ0IsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUztBQUNqRSxnQkFBZ0I7QUFDaEIsb0JBQW9CLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7QUFDaEksb0JBQW9CLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7QUFDMUcsb0JBQW9CLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtBQUN6RixvQkFBb0IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FB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LElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzlFLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUM7QUFDdkQsS0FBSztBQUNMO0FBQ0EsSUFBSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0MsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtBQUM3RCxNQUFNLElBQUksQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQztBQUM5QixNQUFNLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDO0FBQ3BELE1BQU0sT0FBTztBQUNiLEtBQUs7QUFDTDtBQUNBLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDcEIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQztBQUNmLEdBQUcsQ0FBQztBQUNKO0FBQ0EsRUFBRSxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEtBQUs7QUFDdkMsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ3hFO0FBQ0EsSUFBSSxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN0QixJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FB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S0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDakMsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQ3BELENBQUMsQ0FBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSztBQUNsRixFQUFFLE1BQU0sS0FBSyxHQUFHLElBQUksWUFBWSxNQUFNLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hGLEVBQUUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDRiwyQkFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUMsQ0FBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQU8sS0FBSyxTQUFTLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxLQUFLO0FBQ3hDLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxD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QUcsUUFBUSxDQUFDO0FBQzlCLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUM1QyxHQUFHO0FBQ0g7QUFDQSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNiLElBQUksSUFBSSxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QyxJQUFJLFNBQVMsR0FBRyxlQUFlLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2xFLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BCLEdBQUc7QUFDSDtBQUNBLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO0FBQ2QsSUFBSSxTQUFTLEdBQUcsZUFBZSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ25ELEdBQUc7QUFDSDtBQUNBLEVBQUUsS0FBSyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7QUFDOUIsRUFBRSxLQUFLLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztBQUM5QixFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLFNBQVMsRUFBRSxTQUFlLENBQUMsQ0FBQztBQUM3RDtBQUNBLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRTtBQUM3QixJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QyxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sSUFBSSxD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QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ25CLEVBQUUsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ2YsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUQsRUFBRSxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFDRDtBQUNBLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDdkIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFDRDtBQUNBLFNBQVMsUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQ2pDLEVBQUUsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUNEO0FBQ0EsU0FBUyxVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRTtBQUM5QixFQUFFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFDRDtBQUNBLFNBQVMsVUFBVSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUU7QUFDcEMsRUFBRSxPQUFPLE9BQU8sSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxD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QU8sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO0FBQzVFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDM0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztBQUMxQixLQUFLO0FBQ0w7QUFDQSxJQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxNQUFNLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEM7QUFDQSxNQUFNLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7QUFDM0QsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNwQyxRQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdkIsUUFBUSxTQUFTO0FBQ2pCLE9BQU87QUFDUDtBQUNBLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtBQUNsQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNoRCxRQUFRLFNBQVM7QUFDakIsT0FBTztBQUNQO0FBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7QUFDaEQsUUFBUSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDckQsUUFBUSxTQUFTO0FBQ2pCLE9B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QUFDQSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdEQsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDO0FBQ3hCLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3BELEVBQUUsT0FBTyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7QUFDdEM7QUFDQTtBQUNBO0FBQ0EsRUFBRSxNQUFNLElBQUksR0FBR0EsMkJBQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdDLEVBQUUsTUFBTSxRQUFRLEdBQUdBLDJCQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pDLEVBQUUsV0FBVyxHQUFHLFdBQVcsSUFBSSxJQUFJO0FBQ25DLE1BQU0sV0FBVztBQUNqQixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzdEO0FBQ0E7QUFDQTtBQUNBLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPO0FBQ25EO0FBQ0E7QUFDQSxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7QUFDN0UsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDcEMsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2QyxFQUFFLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ25EO0FBQ0E7QUFDQSxFQUFFLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUN4RTtBQUNBO0FBQ0EsRUFBRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ2hELEVBQUUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO0FBQ3hDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDeEMsR0FBRztBQUNIO0FBQ0E7QUFDQSxFQUFFLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztBQUNyQixFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxHQUFHQSwyQkFBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMzRSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtBQUN6RSxJQUFJLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ2hFLElBQUksSUFBSSxLQUFLLEtBQUt3QixRQUFNLEVBQUUsT0FBTztBQUNqQyxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2pDLEVBQUUsTUFBTSxTQUFTLEdBQUcsV0FBVyxHQUFHLGFBQWEsR0FBR1UsV0FBUyxDQUFDO0FBQzVELEVBQUUsSUFBSSxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3hFO0FBQ0E7QUFDQSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtBQUNqQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUIsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxDQUFDLElBQUksRUFBRTtBQUNqQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFDO0FBQ3ZCLEVBQUUsTUFBTSxHQUFHLEdBQUdsQywyQkFBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNwQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDQSwyQkFBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxDQUFDLElBQUksRUFBRTtBQUNqQixFQUFFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPO0FBQ3ZCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFFLENBQUMsQ0FBQztBQUN0QyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtBQUM3QixFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTztBQUN0QixFQUFFLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JDLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtBQUNiLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2xDLEdBQUc7QUFDSCxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEIsQ0FBQztBQUNEO0FBQ0EsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7QUFDdEIsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTztBQUMxQixFQUFFLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUN6RSxFQUFFLElBQUksTUFBTSxHQUFHNkMsVUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2QyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FB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LENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFF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QUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMxSCxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN6RSxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdEMsb0JBQW9CLE1BQU07QUFDMUIsZ0JBQWdCLEtBQUssRUFBRTtBQUN2QixvQkFBb0IsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUMsb0JBQW9CLE1BQU07QUFDMUIsZ0JBQWdCLEtBQUssR0FBRztBQUN4QixvQkFBb0IsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLG9CQUFvQixNQUFNO0FBQzFCLGdCQUFnQixLQUFLLEdBQUc7QUFDeEIsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzVDLG9CQUFvQixNQUFNO0FBQzFCLGFBQWE7QUFDYixTQUFTO0FBQ1QsUUFBUSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDL2pkLFFBQVEsY0FBYyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFB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LEVBQUU7QUFDdkIsb0JBQW9CLE9BQU8sRUFBRSxDQUFDO0FBRTlCLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLE9BQU8sRUFBRSxDQUFDO0FBRTlCLGdCQUFnQixLQUFLLEVBQUU7QUFDdkI7QUFDQSxvQkFBb0IsTUFBTTtBQUMxQixnQkFBZ0IsS0FBSyxFQUFFO0FBQ3ZCLG9CQUFvQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7QUFFOUMsZ0JBQWdCLEtBQUssRUFBRTtBQUN2QixvQkFBb0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBRTlDLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBRTVFLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBRTVFLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLE9BQU8sRUFBRSxDQUFDO0FBRTlCLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLE9BQU8sRUFBRSxDQUFDO0FBRTlCLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLE9BQU8sRUFBRSxDQUFDO0FBRTlCLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLE9BQU8sRUFBRSxDQUFDO0FBRTlCLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLE9BQU8sRUFBRSxDQUFDO0FBRTlCLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLE9BQU8sRUFBRSxDQUFDO0FBRTlCLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLE9BQU8sRUFBRSxDQUFDO0FBRTlCLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLE9BQU8sRUFBRSxDQUFDO0FBRTlCLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLE9BQU8sRUFBRSxDQUFDO0FBRTlCLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBRW5GLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLE9BQU8sU0FBUyxDQUFDO0FBRXJDLGdCQUFnQixLQUFLLEVBQUU7QUFDdkIsb0JBQW9CLE9BQU8sQ0FBQyxDQUFDO0FBRTdCLGFBQWE7QUFDYixTQUFTLENBQUM7QUFDVixRQUFRLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxlQUFlLEVBQUUsK0NBQStDLEVBQUUsd0JBQXdCLEVBQUUsb0VBQW9FLEVBQUUsOEJBQThCLEVBQUUseUJBQXlCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLDRCQUE0QixFQUFFLGlDQUFpQyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLDRCQUE0QixFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLDZCQUE2QixFQUFFLHdCQUF3QixFQUFFLHlDQUF5QyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUseURBQXlELEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3ZqQyxRQUFRLEtBQUssQ0FBQyxVQUFVLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztBQUNoYSxRQUFRLE9BQU8sS0FBSyxDQUFDO0FBQ3JCLEtBQUssR0FBRyxDQUFDO0FBQ1QsSUFBSSxNQUFNLENBQUMsS0FB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RyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDekIsRUFBRSxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNoQixDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO0FBQ3JDLEVBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLFdBQVcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQUksVUFBVSxHQUFHLGdCQUFnQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEI7QUFDQSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdCLElBQUksSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFB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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFO0FBQ3BDLElBQUksT0FBTyxDQUFDLElBQUksWUFBWSxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUNELGFBQWEsR0FBRyxLQUFLLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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LEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xDLFlBQVksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQyxZQUFZLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xDLFlBQVksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQyxZQUFZLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xDLFlBQVksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQyxZQUFZLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEMsWUFBWSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDdkQsWUFBWSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDakQsWUFBWSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFDMUQsWUFBWSxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7QUFDMUUsWUFBWSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFC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LENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RSxlQUFlQSxhQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzdELGVBQWVBLGFBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLGVBQWVBLGFBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRCxlQUFlQSxhQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRCxRQUFRLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSUEsYUFBZSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUN2SCxZQUFZLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHQSxhQUFlLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkYsUUFBUSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7QUFDekMsWUFBWSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUks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QUFBRCxDQUxBLENBQTBDLEtBQUssR0FLOUM7QUFXRCxJQUFNLDJCQUEyQixHQUF5QjtJQUN4RCxlQUFlLEVBQUUsS0FBSztDQUN2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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 diff --git a/.obsidian/plugins/obsidian-citation-plugin/manifest.json b/.obsidian/plugins/obsidian-citation-plugin/manifest.json new file mode 100644 index 00000000..8bd5e59e --- /dev/null +++ b/.obsidian/plugins/obsidian-citation-plugin/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-citation-plugin", + "name": "Citations", + "version": "0.4.5", + "minAppVersion": "0.9.20", + "description": "Automatically search and insert citations from a Zotero library", + "author": "Jon Gauthier", + "authorUrl": "http://foldl.me", + "isDesktopOnly": true +} diff --git a/.obsidian/plugins/obsidian-citation-plugin/styles.css b/.obsidian/plugins/obsidian-citation-plugin/styles.css new file mode 100644 index 00000000..729a0d16 --- /dev/null +++ b/.obsidian/plugins/obsidian-citation-plugin/styles.css @@ -0,0 +1,114 @@ +/** Citations modal **/ + +/* + * Loading animation from + * https://loading.io/css/ + */ + .zoteroModalLoading { + color: var(--text-muted); + text-align: center; + } +.zoteroModalLoadingAnimation { + display: inline-block; + width: 80px; + height: 80px; +} +.zoteroModalLoadingAnimation { + content: " "; + display: block; + width: 32px; + height: 32px; + margin: 10px auto; + border-radius: 50%; + border: 3px solid #eee; + border-color: #eee transparent #eee transparent; + animation: lds-dual-ring 1.2s linear infinite; +} +@keyframes lds-dual-ring { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + +#zoteroSettingTab .text-monospace { + font-family: monospace; +} + +.zoteroModalResults .suggestion-item { + height: fit-content; + line-height: 1.5rem; +} + +.zoteroTitle { + font-size: 14px; + display: block; +} +.zoteroAuthors { + color: #555; + font-size: 13px; +} +.zoteroAuthorsEmpty::after { + font-style: italic; + content: 'Unknown authors'; +} +.zoteroCitekey { + color: #555; + font-size: 13px; + font-family: monospace; + display: inline-block; + margin-right: 5px; + padding-right: 5px; + border-right: 1px solid #ccc; +} + +.theme-dark .zoteroTitle { + font-size: 14px; + display: block; +} +.theme-dark .zoteroAuthors { + color: #aaa; + font-size: 13px; +} +.theme-dark .zoteroCitekey { + color: #aaa; + font-size: 13px; + font-family: monospace; + display: inline-block; + margin-right: 5px; + padding-right: 5px; + border-right: 1px solid #aaa; +} + +/** Settings dialog **/ +.d-none { + display: none; +} +.zoteroSettingCitationPathLoading, +.zoteroSettingCitationPathError, +.zoteroSettingCitationPathSuccess { + font-size: 14px; +} +.zoteroSettingCitationPathLoading { + color: var(--text-muted); +} +.zoteroSettingCitationPathError { + color: var(--text-error); +} +.zoteroSettingCitationPathError:hover { + color: var(--text-error-hover); +} +.zoteroSettingCitationPathSuccess { + color: var(--text-accent); +} +.zoteroSettingCitationPathSuccess:hover { + color: var(--text-accent-hover); +} + +#zoteroSettingTab textarea { + resize: vertical; + width: 100%; + min-height: 10em; +} diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/data.json b/.obsidian/plugins/obsidian-excalidraw-plugin/data.json index 6fabead5..8ec1e121 100644 --- a/.obsidian/plugins/obsidian-excalidraw-plugin/data.json +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/data.json @@ -73,7 +73,7 @@ "library2": { "type": "excalidrawlib", "version": 2, - "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.9.19", + "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.0.16", "libraryItems": [ { "status": "published", @@ -10409,7 +10409,7 @@ "containerId": null, "originalText": "!", "lineHeight": 1.222222222222222, - "baseline": 17 + "baseline": 18 } ], "id": "a4aCbz4Mh-PMppX8JV9oJ", @@ -47208,7 +47208,7 @@ "containerId": null, "originalText": "5\n\n4\n\n3\n\n2\n\n1 \n\n0\n\n\n-1\n\n-2\n\n-3\n\n-4\n\n-5", "lineHeight": 1.2490706319702598, - "baseline": 441 + "baseline": 442 }, { "type": "line", @@ -48424,7 +48424,7 @@ "containerId": null, "originalText": "5\n\n4\n\n3\n\n2\n\n1 \n\n0\n\n\n-1\n\n-2\n\n-3\n\n-4\n\n-5", "lineHeight": 1.2490706319702598, - "baseline": 441 + "baseline": 442 }, { "type": "line", @@ -61506,7 +61506,7 @@ "containerId": null, "originalText": "KEY", "lineHeight": 1.2989276108437504, - "baseline": 16 + "baseline": 17 }, { "type": "text", @@ -61543,7 +61543,7 @@ "containerId": null, "originalText": "DATA", "lineHeight": 1.2989276108437484, - "baseline": 16 + "baseline": 17 } ], "id": "0fN1YgloN8QEBcG1nuLU0", @@ -68690,7 +68690,7 @@ "containerId": null, "originalText": "0", "lineHeight": 1.2305837462742493, - "baseline": 15 + "baseline": 16 }, { "type": "text", @@ -68727,7 +68727,7 @@ "containerId": null, "originalText": "1", "lineHeight": 1.2305837462742486, - "baseline": 15 + "baseline": 16 }, { "type": "text", @@ -68764,7 +68764,7 @@ "containerId": null, "originalText": "2", "lineHeight": 1.2305837462742486, - "baseline": 15 + "baseline": 16 }, { "type": "text", @@ -68801,7 +68801,7 @@ "containerId": null, "originalText": "3", "lineHeight": 1.230583746274251, - "baseline": 15 + "baseline": 16 }, { "type": "text", @@ -68838,7 +68838,7 @@ "containerId": null, "originalText": "4", "lineHeight": 1.2305837462742497, - "baseline": 15 + "baseline": 16 }, { "type": "text", @@ -68875,7 +68875,7 @@ "containerId": null, "originalText": "0", "lineHeight": 1.2665105496217897, - "baseline": 17 + "baseline": 18 }, { "type": "text", @@ -68912,7 +68912,7 @@ "containerId": null, "originalText": "1", "lineHeight": 1.266510549621791, - "baseline": 17 + "baseline": 18 }, { "type": "text", @@ -68949,7 +68949,7 @@ "containerId": null, "originalText": "2", "lineHeight": 1.2665105496217899, - "baseline": 17 + "baseline": 18 }, { "type": "text", @@ -68986,7 +68986,7 @@ "containerId": null, "originalText": "3", "lineHeight": 1.2665105496217897, - "baseline": 17 + "baseline": 18 }, { "type": "text", @@ -69023,7 +69023,7 @@ "containerId": null, "originalText": "4", "lineHeight": 1.2665105496217892, - "baseline": 17 + "baseline": 18 }, { "type": "rectangle", @@ -69870,7 +69870,7 @@ "containerId": null, "originalText": "5", "lineHeight": 1.2305837462742497, - "baseline": 15 + "baseline": 16 }, { "type": "rectangle", @@ -70177,7 +70177,7 @@ "containerId": null, "originalText": "6", "lineHeight": 1.230583746274251, - "baseline": 15 + "baseline": 16 }, { "type": "rectangle", @@ -70484,7 +70484,7 @@ "containerId": null, "originalText": "7", "lineHeight": 1.2305837462742502, - "baseline": 15 + "baseline": 16 }, { "type": "rectangle", @@ -70791,7 +70791,7 @@ "containerId": null, "originalText": "8", "lineHeight": 1.23058374627425, - "baseline": 15 + "baseline": 16 }, { "type": "rectangle", @@ -71098,7 +71098,7 @@ "containerId": null, "originalText": "9", "lineHeight": 1.2305837462742488, - "baseline": 15 + "baseline": 16 }, { "type": "rectangle", @@ -71270,7 +71270,7 @@ "containerId": null, "originalText": "5", "lineHeight": 1.2665105496217908, - "baseline": 17 + "baseline": 18 }, { "type": "text", @@ -71307,7 +71307,7 @@ "containerId": null, "originalText": "6", "lineHeight": 1.2665105496217908, - "baseline": 17 + "baseline": 18 }, { "type": "text", @@ -71344,7 +71344,7 @@ "containerId": null, "originalText": "7", "lineHeight": 1.2665105496217899, - "baseline": 17 + "baseline": 18 }, { "type": "text", @@ -71381,7 +71381,7 @@ "containerId": null, "originalText": "8", "lineHeight": 1.2665105496217905, - "baseline": 17 + "baseline": 18 }, { "type": "text", @@ -71418,7 +71418,7 @@ "containerId": null, "originalText": "9", "lineHeight": 1.2665105496217908, - "baseline": 17 + "baseline": 18 } ], "id": "v64rHLhwhoMh6YxxcvFRW", @@ -72138,7 +72138,7 @@ "containerId": null, "originalText": "0", "lineHeight": 1.2258489560818937, - "baseline": 15 + "baseline": 16 }, { "type": "text", @@ -72175,7 +72175,7 @@ "containerId": null, "originalText": "1", "lineHeight": 1.2258489560818937, - "baseline": 15 + "baseline": 16 }, { "type": "text", @@ -72212,7 +72212,7 @@ "containerId": null, "originalText": "2", "lineHeight": 1.2258489560818915, - "baseline": 15 + "baseline": 16 }, { "type": "text", @@ -72249,7 +72249,7 @@ "containerId": null, "originalText": "3", "lineHeight": 1.2258489560818941, - "baseline": 15 + "baseline": 16 }, { "type": "text", @@ -72286,7 +72286,7 @@ "containerId": null, "originalText": "4", "lineHeight": 1.2258489560818953, - "baseline": 15 + "baseline": 16 }, { "type": "text", @@ -72948,7 +72948,7 @@ "containerId": null, "originalText": "0", "lineHeight": 1.2227829575141542, - "baseline": 15 + "baseline": 16 }, { "type": "text", @@ -72985,7 +72985,7 @@ "containerId": null, "originalText": "1", "lineHeight": 1.2227829575141567, - "baseline": 15 + "baseline": 16 }, { "type": "text", @@ -73022,7 +73022,7 @@ "containerId": null, "originalText": "2", "lineHeight": 1.2227829575141556, - "baseline": 15 + "baseline": 16 }, { "type": "text", @@ -73059,7 +73059,7 @@ "containerId": null, "originalText": "3", "lineHeight": 1.222782957514155, - "baseline": 15 + "baseline": 16 }, { "type": "text", diff --git a/.obsidian/plugins/obsidian-kanban/data.json b/.obsidian/plugins/obsidian-kanban/data.json index b70e699a..a231b4f5 100644 --- a/.obsidian/plugins/obsidian-kanban/data.json +++ b/.obsidian/plugins/obsidian-kanban/data.json @@ -3,5 +3,6 @@ "date-format": "YYYY-MM-DD", "link-date-to-daily-note": true, "prepend-archive-format": "YYYY-MM-DD HH:mm", - "show-view-as-markdown": false + "show-view-as-markdown": false, + "lane-width": 350 } \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-minimal-settings/data.json b/.obsidian/plugins/obsidian-minimal-settings/data.json index d609fd9e..57313625 100644 --- a/.obsidian/plugins/obsidian-minimal-settings/data.json +++ b/.obsidian/plugins/obsidian-minimal-settings/data.json @@ -9,7 +9,7 @@ "lineWidth": 40, "lineWidthWide": 5000, "maxWidth": 98, - "textNormal": 22.5, + "textNormal": 16.5, "textSmall": 13, "imgGrid": false, "imgWidth": "img-default-width", diff --git a/.obsidian/plugins/obsidian-pocket/data.json b/.obsidian/plugins/obsidian-pocket/data.json index 23a878e9..ae4098bd 100644 --- a/.obsidian/plugins/obsidian-pocket/data.json +++ b/.obsidian/plugins/obsidian-pocket/data.json @@ -1,5 +1,5 @@ { - "pocket-sync-tag": "obsidian_export", + "pocket-sync-tag": null, "item-notes-folder": "sources", "frontmatter-url-key": "link" } \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-spaced-repetition/data.json b/.obsidian/plugins/obsidian-spaced-repetition/data.json index 662acbec..f3ecd918 100644 --- a/.obsidian/plugins/obsidian-spaced-repetition/data.json +++ b/.obsidian/plugins/obsidian-spaced-repetition/data.json @@ -30,7 +30,7 @@ "noteFoldersToIgnore": [], "openRandomNote": false, "autoNextNote": true, - "disableFileMenuReviewOptions": true, + "disableFileMenuReviewOptions": false, "maxNDaysNotesReviewQueue": 365, "initiallyExpandAllSubdecksInTree": true, "baseEase": 250, @@ -43,7 +43,7 @@ "singlelineCardSeparator": "::", "singlelineReversedCardSeparator": ":::" }, - "buryDate": "2024-01-10", + "buryDate": "2024-02-28", "buryList": [], "historyDeck": "" } \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-vault-statistics-plugin/data.json b/.obsidian/plugins/obsidian-vault-statistics-plugin/data.json index b848d418..d5a77bcb 100644 --- a/.obsidian/plugins/obsidian-vault-statistics-plugin/data.json +++ b/.obsidian/plugins/obsidian-vault-statistics-plugin/data.json @@ -1,9 +1,9 @@ { "displayIndividualItems": false, "showNotes": true, - "showAttachments": false, - "showFiles": false, - "showLinks": false, - "showWords": false, - "showSize": false + "showAttachments": true, + "showFiles": true, + "showLinks": true, + "showWords": true, + "showSize": true } \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-zotero-desktop-connector/data.json b/.obsidian/plugins/obsidian-zotero-desktop-connector/data.json new file mode 100644 index 00000000..887f7a5a --- /dev/null +++ b/.obsidian/plugins/obsidian-zotero-desktop-connector/data.json @@ -0,0 +1,19 @@ +{ + "database": "Zotero", + "noteImportFolder": "sources", + "pdfExportImageDPI": 120, + "pdfExportImageFormat": "jpg", + "pdfExportImageQuality": 90, + "citeFormats": [], + "exportFormats": [ + { + "name": "Import #1", + "outputPathTemplate": "sources/{{citekey}}.md", + "imageOutputPathTemplate": "images/{{citekey}}/", + "imageBaseNameTemplate": "image" + } + ], + "citeSuggestTemplate": "[[{{citekey}}]]", + "openNoteAfterImport": true, + "whichNotesToOpenAfterImport": "first-imported-note" +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-zotero-desktop-connector/main.js b/.obsidian/plugins/obsidian-zotero-desktop-connector/main.js new file mode 100644 index 00000000..a58535d5 --- /dev/null +++ b/.obsidian/plugins/obsidian-zotero-desktop-connector/main.js @@ -0,0 +1,191 @@ +var aT=Object.create;var Yr=Object.defineProperty;var nT=Object.getOwnPropertyDescriptor;var iT=Object.getOwnPropertyNames;var rT=Object.getPrototypeOf,oT=Object.prototype.hasOwnProperty;var O=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),sT=(e,t)=>{for(var a in t)Yr(e,a,{get:t[a],enumerable:!0})},Tm=(e,t,a,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of iT(t))!oT.call(e,i)&&i!==a&&Yr(e,i,{get:()=>t[i],enumerable:!(n=nT(t,i))||n.enumerable});return e};var _e=(e,t,a)=>(a=e!=null?aT(rT(e)):{},Tm(t||!e||!e.__esModule?Yr(a,"default",{value:e,enumerable:!0}):a,e)),lT=e=>Tm(Yr({},"__esModule",{value:!0}),e);var Rm=O((hD,Om)=>{Om.exports=Pm;Pm.sync=uT;var km=require("fs");function cT(e,t){var a=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!a||(a=a.split(";"),a.indexOf("")!==-1))return!0;for(var n=0;n{Lm.exports=Nm;Nm.sync=pT;var Bm=require("fs");function Nm(e,t,a){Bm.stat(e,function(n,i){a(n,n?!1:jm(i,t))})}function pT(e,t){return jm(Bm.statSync(e),t)}function jm(e,t){return e.isFile()&&dT(e,t)}function dT(e,t){var a=e.mode,n=e.uid,i=e.gid,r=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),o=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),s=parseInt("100",8),l=parseInt("010",8),u=parseInt("001",8),c=s|l,f=a&u||a&l&&i===o||a&s&&n===r||a&c&&r===0;return f}});var Mc=O((gD,Dm)=>{var bD=require("fs"),Kr;process.platform==="win32"||global.TESTING_WINDOWS?Kr=Rm():Kr=Mm();Dm.exports=Lc;Lc.sync=fT;function Lc(e,t,a){if(typeof t=="function"&&(a=t,t={}),!a){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,i){Lc(e,t||{},function(r,o){r?i(r):n(o)})})}Kr(e,t||{},function(n,i){n&&(n.code==="EACCES"||t&&t.ignoreErrors)&&(n=null,i=!1),a(n,i)})}function fT(e,t){try{return Kr.sync(e,t||{})}catch(a){if(t&&t.ignoreErrors||a.code==="EACCES")return!1;throw a}}});var Jm=O((xD,Um)=>{var Cn=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",zm=require("path"),mT=Cn?";":":",Gm=Mc(),Hm=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),Wm=(e,t)=>{let a=t.colon||mT,n=e.match(/\//)||Cn&&e.match(/\\/)?[""]:[...Cn?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(a)],i=Cn?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",r=Cn?i.split(a):[""];return Cn&&e.indexOf(".")!==-1&&r[0]!==""&&r.unshift(""),{pathEnv:n,pathExt:r,pathExtExe:i}},Vm=(e,t,a)=>{typeof t=="function"&&(a=t,t={}),t||(t={});let{pathEnv:n,pathExt:i,pathExtExe:r}=Wm(e,t),o=[],s=u=>new Promise((c,f)=>{if(u===n.length)return t.all&&o.length?c(o):f(Hm(e));let p=n[u],b=/^".*"$/.test(p)?p.slice(1,-1):p,d=zm.join(b,e),m=!b&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;c(l(m,u,0))}),l=(u,c,f)=>new Promise((p,b)=>{if(f===i.length)return p(s(c+1));let d=i[f];Gm(u+d,{pathExt:r},(m,h)=>{if(!m&&h)if(t.all)o.push(u+d);else return p(u+d);return p(l(u,c,f+1))})});return a?s(0).then(u=>a(null,u),a):s(0)},hT=(e,t)=>{t=t||{};let{pathEnv:a,pathExt:n,pathExtExe:i}=Wm(e,t),r=[];for(let o=0;o{"use strict";var Zm=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Dc.exports=Zm;Dc.exports.default=Zm});var Ym=O((wD,$m)=>{"use strict";var qm=require("path"),vT=Jm(),bT=zc();function Xm(e,t){let a=e.options.env||process.env,n=process.cwd(),i=e.options.cwd!=null,r=i&&process.chdir!==void 0&&!process.chdir.disabled;if(r)try{process.chdir(e.options.cwd)}catch(s){}let o;try{o=vT.sync(e.command,{path:a[bT({env:a})],pathExt:t?qm.delimiter:void 0})}catch(s){}finally{r&&process.chdir(n)}return o&&(o=qm.resolve(i?e.options.cwd:"",o)),o}function gT(e){return Xm(e)||Xm(e,!0)}$m.exports=gT});var Km=O((ED,Hc)=>{"use strict";var Gc=/([()\][%!^"`<>&|;, *?])/g;function xT(e){return e=e.replace(Gc,"^$1"),e}function yT(e,t){return e=`${e}`,e=e.replace(/(\\*)"/g,'$1$1\\"'),e=e.replace(/(\\*)$/,"$1$1"),e=`"${e}"`,e=e.replace(Gc,"^$1"),t&&(e=e.replace(Gc,"^$1")),e}Hc.exports.command=xT;Hc.exports.argument=yT});var eh=O((SD,Qm)=>{"use strict";Qm.exports=/^#!(.*)/});var ah=O((CD,th)=>{"use strict";var wT=eh();th.exports=(e="")=>{let t=e.match(wT);if(!t)return null;let[a,n]=t[0].replace(/#! ?/,"").split(" "),i=a.split("/").pop();return i==="env"?n:n?`${i} ${n}`:i}});var ih=O((AD,nh)=>{"use strict";var Wc=require("fs"),ET=ah();function ST(e){let a=Buffer.alloc(150),n;try{n=Wc.openSync(e,"r"),Wc.readSync(n,a,0,150,0),Wc.closeSync(n)}catch(i){}return ET(a.toString())}nh.exports=ST});var lh=O((ID,sh)=>{"use strict";var CT=require("path"),rh=Ym(),oh=Km(),AT=ih(),IT=process.platform==="win32",_T=/\.(?:com|exe)$/i,TT=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function kT(e){e.file=rh(e);let t=e.file&&AT(e.file);return t?(e.args.unshift(e.file),e.command=t,rh(e)):e.file}function FT(e){if(!IT)return e;let t=kT(e),a=!_T.test(t);if(e.options.forceShell||a){let n=TT.test(t);e.command=CT.normalize(e.command),e.command=oh.command(e.command),e.args=e.args.map(r=>oh.argument(r,n));let i=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${i}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function PT(e,t,a){t&&!Array.isArray(t)&&(a=t,t=null),t=t?t.slice(0):[],a=Object.assign({},a);let n={command:e,args:t,options:a,file:void 0,original:{command:e,args:t}};return a.shell?n:FT(n)}sh.exports=PT});var ph=O((_D,uh)=>{"use strict";var Vc=process.platform==="win32";function Uc(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function OT(e,t){if(!Vc)return;let a=e.emit;e.emit=function(n,i){if(n==="exit"){let r=ch(i,t,"spawn");if(r)return a.call(e,"error",r)}return a.apply(e,arguments)}}function ch(e,t){return Vc&&e===1&&!t.file?Uc(t.original,"spawn"):null}function RT(e,t){return Vc&&e===1&&!t.file?Uc(t.original,"spawnSync"):null}uh.exports={hookChildProcess:OT,verifyENOENT:ch,verifyENOENTSync:RT,notFoundError:Uc}});var qc=O((TD,An)=>{"use strict";var dh=require("child_process"),Jc=lh(),Zc=ph();function fh(e,t,a){let n=Jc(e,t,a),i=dh.spawn(n.command,n.args,n.options);return Zc.hookChildProcess(i,n),i}function BT(e,t,a){let n=Jc(e,t,a),i=dh.spawnSync(n.command,n.args,n.options);return i.error=i.error||Zc.verifyENOENTSync(i.status,n),i}An.exports=fh;An.exports.spawn=fh;An.exports.sync=BT;An.exports._parse=Jc;An.exports._enoent=Zc});var hh=O((kD,mh)=>{"use strict";mh.exports=e=>{let t=typeof e=="string"?` +`:` +`.charCodeAt(),a=typeof e=="string"?"\r":"\r".charCodeAt();return e[e.length-1]===t&&(e=e.slice(0,e.length-1)),e[e.length-1]===a&&(e=e.slice(0,e.length-1)),e}});var gh=O((FD,ki)=>{"use strict";var Ti=require("path"),vh=zc(),bh=e=>{e={cwd:process.cwd(),path:process.env[vh()],execPath:process.execPath,...e};let t,a=Ti.resolve(e.cwd),n=[];for(;t!==a;)n.push(Ti.join(a,"node_modules/.bin")),t=a,a=Ti.resolve(a,"..");let i=Ti.resolve(e.cwd,e.execPath,"..");return n.push(i),n.concat(e.path).join(Ti.delimiter)};ki.exports=bh;ki.exports.default=bh;ki.exports.env=e=>{e={env:process.env,...e};let t={...e.env},a=vh({env:t});return e.path=t[a],t[a]=ki.exports(e),t}});var yh=O((PD,Xc)=>{"use strict";var xh=(e,t)=>{for(let a of Reflect.ownKeys(t))Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a));return e};Xc.exports=xh;Xc.exports.default=xh});var Eh=O((OD,eo)=>{"use strict";var NT=yh(),Qr=new WeakMap,wh=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let a,n=0,i=e.displayName||e.name||"",r=function(...o){if(Qr.set(r,++n),n===1)a=e.apply(this,o),e=null;else if(t.throw===!0)throw new Error(`Function \`${i}\` can only be called once`);return a};return NT(r,e),Qr.set(r,n),r};eo.exports=wh;eo.exports.default=wh;eo.exports.callCount=e=>{if(!Qr.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return Qr.get(e)}});var Sh=O(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.SIGNALS=void 0;var jT=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}];to.SIGNALS=jT});var $c=O(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.SIGRTMAX=In.getRealtimeSignals=void 0;var LT=function(){let e=Ah-Ch+1;return Array.from({length:e},MT)};In.getRealtimeSignals=LT;var MT=function(e,t){return{name:`SIGRT${t+1}`,number:Ch+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}},Ch=34,Ah=64;In.SIGRTMAX=Ah});var Ih=O(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.getSignals=void 0;var DT=require("os"),zT=Sh(),GT=$c(),HT=function(){let e=(0,GT.getRealtimeSignals)();return[...zT.SIGNALS,...e].map(WT)};ao.getSignals=HT;var WT=function({name:e,number:t,description:a,action:n,forced:i=!1,standard:r}){let{signals:{[e]:o}}=DT.constants,s=o!==void 0;return{name:e,number:s?o:t,description:a,supported:s,action:n,forced:i,standard:r}}});var Th=O(_n=>{"use strict";Object.defineProperty(_n,"__esModule",{value:!0});_n.signalsByNumber=_n.signalsByName=void 0;var VT=require("os"),_h=Ih(),UT=$c(),JT=function(){return(0,_h.getSignals)().reduce(ZT,{})},ZT=function(e,{name:t,number:a,description:n,supported:i,action:r,forced:o,standard:s}){return{...e,[t]:{name:t,number:a,description:n,supported:i,action:r,forced:o,standard:s}}},qT=JT();_n.signalsByName=qT;var XT=function(){let e=(0,_h.getSignals)(),t=UT.SIGRTMAX+1,a=Array.from({length:t},(n,i)=>$T(i,e));return Object.assign({},...a)},$T=function(e,t){let a=YT(e,t);if(a===void 0)return{};let{name:n,description:i,supported:r,action:o,forced:s,standard:l}=a;return{[e]:{name:n,number:e,description:i,supported:r,action:o,forced:s,standard:l}}},YT=function(e,t){let a=t.find(({name:n})=>VT.constants.signals[n]===e);return a!==void 0?a:t.find(n=>n.number===e)},KT=XT();_n.signalsByNumber=KT});var Fh=O((LD,kh)=>{"use strict";var{signalsByName:QT}=Th(),e4=({timedOut:e,timeout:t,errorCode:a,signal:n,signalDescription:i,exitCode:r,isCanceled:o})=>e?`timed out after ${t} milliseconds`:o?"was canceled":a!==void 0?`failed with ${a}`:n!==void 0?`was killed with ${n} (${i})`:r!==void 0?`failed with exit code ${r}`:"failed",t4=({stdout:e,stderr:t,all:a,error:n,signal:i,exitCode:r,command:o,escapedCommand:s,timedOut:l,isCanceled:u,killed:c,parsed:{options:{timeout:f}}})=>{r=r===null?void 0:r,i=i===null?void 0:i;let p=i===void 0?void 0:QT[i].description,b=n&&n.code,m=`Command ${e4({timedOut:l,timeout:f,errorCode:b,signal:i,signalDescription:p,exitCode:r,isCanceled:u})}: ${o}`,h=Object.prototype.toString.call(n)==="[object Error]",v=h?`${m} +${n.message}`:m,x=[v,t,e].filter(Boolean).join(` +`);return h?(n.originalMessage=n.message,n.message=x):n=new Error(x),n.shortMessage=v,n.command=o,n.escapedCommand=s,n.exitCode=r,n.signal=i,n.signalDescription=p,n.stdout=e,n.stderr=t,a!==void 0&&(n.all=a),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=c&&!l,n};kh.exports=t4});var Oh=O((MD,Yc)=>{"use strict";var no=["stdin","stdout","stderr"],a4=e=>no.some(t=>e[t]!==void 0),Ph=e=>{if(!e)return;let{stdio:t}=e;if(t===void 0)return no.map(n=>e[n]);if(a4(e))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${no.map(n=>`\`${n}\``).join(", ")}`);if(typeof t=="string")return t;if(!Array.isArray(t))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);let a=Math.max(t.length,no.length);return Array.from({length:a},(n,i)=>t[i])};Yc.exports=Ph;Yc.exports.node=e=>{let t=Ph(e);return t==="ipc"?"ipc":t===void 0||typeof t=="string"?[t,t,t,"ipc"]:t.includes("ipc")?t:[...t,"ipc"]}});var Rh=O((DD,io)=>{io.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&io.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&io.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var eu=O((zD,Fn)=>{var Ge=global.process,qa=function(e){return e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function"};qa(Ge)?(Bh=require("assert"),Tn=Rh(),Nh=/^win/i.test(Ge.platform),Fi=require("events"),typeof Fi!="function"&&(Fi=Fi.EventEmitter),Ge.__signal_exit_emitter__?at=Ge.__signal_exit_emitter__:(at=Ge.__signal_exit_emitter__=new Fi,at.count=0,at.emitted={}),at.infinite||(at.setMaxListeners(1/0),at.infinite=!0),Fn.exports=function(e,t){if(!qa(global.process))return function(){};Bh.equal(typeof e,"function","a callback must be provided for exit handler"),kn===!1&&Kc();var a="exit";t&&t.alwaysLast&&(a="afterexit");var n=function(){at.removeListener(a,e),at.listeners("exit").length===0&&at.listeners("afterexit").length===0&&ro()};return at.on(a,e),n},ro=function(){!kn||!qa(global.process)||(kn=!1,Tn.forEach(function(t){try{Ge.removeListener(t,oo[t])}catch(a){}}),Ge.emit=so,Ge.reallyExit=Qc,at.count-=1)},Fn.exports.unload=ro,Xa=function(t,a,n){at.emitted[t]||(at.emitted[t]=!0,at.emit(t,a,n))},oo={},Tn.forEach(function(e){oo[e]=function(){if(qa(global.process)){var a=Ge.listeners(e);a.length===at.count&&(ro(),Xa("exit",null,e),Xa("afterexit",null,e),Nh&&e==="SIGHUP"&&(e="SIGINT"),Ge.kill(Ge.pid,e))}}}),Fn.exports.signals=function(){return Tn},kn=!1,Kc=function(){kn||!qa(global.process)||(kn=!0,at.count+=1,Tn=Tn.filter(function(t){try{return Ge.on(t,oo[t]),!0}catch(a){return!1}}),Ge.emit=Lh,Ge.reallyExit=jh)},Fn.exports.load=Kc,Qc=Ge.reallyExit,jh=function(t){qa(global.process)&&(Ge.exitCode=t||0,Xa("exit",Ge.exitCode,null),Xa("afterexit",Ge.exitCode,null),Qc.call(Ge,Ge.exitCode))},so=Ge.emit,Lh=function(t,a){if(t==="exit"&&qa(global.process)){a!==void 0&&(Ge.exitCode=a);var n=so.apply(this,arguments);return Xa("exit",Ge.exitCode,null),Xa("afterexit",Ge.exitCode,null),n}else return so.apply(this,arguments)}):Fn.exports=function(){return function(){}};var Bh,Tn,Nh,Fi,at,ro,Xa,oo,kn,Kc,Qc,jh,so,Lh});var Dh=O((GD,Mh)=>{"use strict";var n4=require("os"),i4=eu(),r4=1e3*5,o4=(e,t="SIGTERM",a={})=>{let n=e(t);return s4(e,t,a,n),n},s4=(e,t,a,n)=>{if(!l4(t,a,n))return;let i=u4(a),r=setTimeout(()=>{e("SIGKILL")},i);r.unref&&r.unref()},l4=(e,{forceKillAfterTimeout:t},a)=>c4(e)&&t!==!1&&a,c4=e=>e===n4.constants.signals.SIGTERM||typeof e=="string"&&e.toUpperCase()==="SIGTERM",u4=({forceKillAfterTimeout:e=!0})=>{if(e===!0)return r4;if(!Number.isFinite(e)||e<0)throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},p4=(e,t)=>{e.kill()&&(t.isCanceled=!0)},d4=(e,t,a)=>{e.kill(t),a(Object.assign(new Error("Timed out"),{timedOut:!0,signal:t}))},f4=(e,{timeout:t,killSignal:a="SIGTERM"},n)=>{if(t===0||t===void 0)return n;let i,r=new Promise((s,l)=>{i=setTimeout(()=>{d4(e,a,l)},t)}),o=n.finally(()=>{clearTimeout(i)});return Promise.race([r,o])},m4=({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},h4=async(e,{cleanup:t,detached:a},n)=>{if(!t||a)return n;let i=i4(()=>{e.kill()});return n.finally(()=>{i()})};Mh.exports={spawnedKill:o4,spawnedCancel:p4,setupTimeout:f4,validateTimeout:m4,setExitHandler:h4}});var Gh=O((HD,zh)=>{"use strict";var Xt=e=>e!==null&&typeof e=="object"&&typeof e.pipe=="function";Xt.writable=e=>Xt(e)&&e.writable!==!1&&typeof e._write=="function"&&typeof e._writableState=="object";Xt.readable=e=>Xt(e)&&e.readable!==!1&&typeof e._read=="function"&&typeof e._readableState=="object";Xt.duplex=e=>Xt.writable(e)&&Xt.readable(e);Xt.transform=e=>Xt.duplex(e)&&typeof e._transform=="function";zh.exports=Xt});var Wh=O((WD,Hh)=>{"use strict";var{PassThrough:v4}=require("stream");Hh.exports=e=>{e={...e};let{array:t}=e,{encoding:a}=e,n=a==="buffer",i=!1;t?i=!(a||n):a=a||"utf8",n&&(a=null);let r=new v4({objectMode:i});a&&r.setEncoding(a);let o=0,s=[];return r.on("data",l=>{s.push(l),i?o=s.length:o+=l.length}),r.getBufferedValue=()=>t?s:n?Buffer.concat(s,o):s.join(""),r.getBufferedLength=()=>o,r}});var Vh=O((VD,Pi)=>{"use strict";var{constants:b4}=require("buffer"),g4=require("stream"),{promisify:x4}=require("util"),y4=Wh(),w4=x4(g4.pipeline),lo=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function tu(e,t){if(!e)throw new Error("Expected a stream");t={maxBuffer:1/0,...t};let{maxBuffer:a}=t,n=y4(t);return await new Promise((i,r)=>{let o=s=>{s&&n.getBufferedLength()<=b4.MAX_LENGTH&&(s.bufferedData=n.getBufferedValue()),r(s)};(async()=>{try{await w4(e,n),i()}catch(s){o(s)}})(),n.on("data",()=>{n.getBufferedLength()>a&&o(new lo)})}),n.getBufferedValue()}Pi.exports=tu;Pi.exports.buffer=(e,t)=>tu(e,{...t,encoding:"buffer"});Pi.exports.array=(e,t)=>tu(e,{...t,array:!0});Pi.exports.MaxBufferError=lo});var au=O((UD,Uh)=>{"use strict";var{PassThrough:E4}=require("stream");Uh.exports=function(){var e=[],t=new E4({objectMode:!0});return t.setMaxListeners(0),t.add=a,t.isEmpty=n,t.on("unpipe",i),Array.prototype.slice.call(arguments).forEach(a),t;function a(r){return Array.isArray(r)?(r.forEach(a),this):(e.push(r),r.once("end",i.bind(null,r)),r.once("error",t.emit.bind(t,"error")),r.pipe(t,{end:!1}),this)}function n(){return e.length==0}function i(r){e=e.filter(function(o){return o!==r}),!e.length&&t.readable&&t.end()}}});var Xh=O((JD,qh)=>{"use strict";var Zh=Gh(),Jh=Vh(),S4=au(),C4=(e,t)=>{t===void 0||e.stdin===void 0||(Zh(t)?t.pipe(e.stdin):e.stdin.end(t))},A4=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let a=S4();return e.stdout&&a.add(e.stdout),e.stderr&&a.add(e.stderr),a},nu=async(e,t)=>{if(e){e.destroy();try{return await t}catch(a){return a.bufferedData}}},iu=(e,{encoding:t,buffer:a,maxBuffer:n})=>{if(!(!e||!a))return t?Jh(e,{encoding:t,maxBuffer:n}):Jh.buffer(e,{maxBuffer:n})},I4=async({stdout:e,stderr:t,all:a},{encoding:n,buffer:i,maxBuffer:r},o)=>{let s=iu(e,{encoding:n,buffer:i,maxBuffer:r}),l=iu(t,{encoding:n,buffer:i,maxBuffer:r}),u=iu(a,{encoding:n,buffer:i,maxBuffer:r*2});try{return await Promise.all([o,s,l,u])}catch(c){return Promise.all([{error:c,signal:c.signal,timedOut:c.timedOut},nu(e,s),nu(t,l),nu(a,u)])}},_4=({input:e})=>{if(Zh(e))throw new TypeError("The `input` option cannot be a stream in sync mode")};qh.exports={handleInput:C4,makeAllStream:A4,getSpawnedResult:I4,validateInputSync:_4}});var Yh=O((ZD,$h)=>{"use strict";var T4=(async()=>{})().constructor.prototype,k4=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(T4,e)]),F4=(e,t)=>{for(let[a,n]of k4){let i=typeof t=="function"?(...r)=>Reflect.apply(n.value,t(),r):n.value.bind(t);Reflect.defineProperty(e,a,{...n,value:i})}return e},P4=e=>new Promise((t,a)=>{e.on("exit",(n,i)=>{t({exitCode:n,signal:i})}),e.on("error",n=>{a(n)}),e.stdin&&e.stdin.on("error",n=>{a(n)})});$h.exports={mergePromise:F4,getSpawnedPromise:P4}});var ev=O((qD,Qh)=>{"use strict";var Kh=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],O4=/^[\w.-]+$/,R4=/"/g,B4=e=>typeof e!="string"||O4.test(e)?e:`"${e.replace(R4,'\\"')}"`,N4=(e,t)=>Kh(e,t).join(" "),j4=(e,t)=>Kh(e,t).map(a=>B4(a)).join(" "),L4=/ +/g,M4=e=>{let t=[];for(let a of e.trim().split(L4)){let n=t[t.length-1];n&&n.endsWith("\\")?t[t.length-1]=`${n.slice(0,-1)} ${a}`:t.push(a)}return t};Qh.exports={joinCommand:N4,getEscapedCommand:j4,parseCommand:M4}});var sv=O((XD,Pn)=>{"use strict";var D4=require("path"),ru=require("child_process"),z4=qc(),G4=hh(),H4=gh(),W4=Eh(),co=Fh(),av=Oh(),{spawnedKill:V4,spawnedCancel:U4,setupTimeout:J4,validateTimeout:Z4,setExitHandler:q4}=Dh(),{handleInput:X4,getSpawnedResult:$4,makeAllStream:Y4,validateInputSync:K4}=Xh(),{mergePromise:tv,getSpawnedPromise:Q4}=Yh(),{joinCommand:nv,parseCommand:iv,getEscapedCommand:rv}=ev(),ek=1e3*1e3*100,tk=({env:e,extendEnv:t,preferLocal:a,localDir:n,execPath:i})=>{let r=t?{...process.env,...e}:e;return a?H4.env({env:r,cwd:n,execPath:i}):r},ov=(e,t,a={})=>{let n=z4._parse(e,t,a);return e=n.command,t=n.args,a=n.options,a={maxBuffer:ek,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:a.cwd||process.cwd(),execPath:process.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,...a},a.env=tk(a),a.stdio=av(a),process.platform==="win32"&&D4.basename(e,".exe")==="cmd"&&t.unshift("/q"),{file:e,args:t,options:a,parsed:n}},Oi=(e,t,a)=>typeof t!="string"&&!Buffer.isBuffer(t)?a===void 0?void 0:"":e.stripFinalNewline?G4(t):t,uo=(e,t,a)=>{let n=ov(e,t,a),i=nv(e,t),r=rv(e,t);Z4(n.options);let o;try{o=ru.spawn(n.file,n.args,n.options)}catch(b){let d=new ru.ChildProcess,m=Promise.reject(co({error:b,stdout:"",stderr:"",all:"",command:i,escapedCommand:r,parsed:n,timedOut:!1,isCanceled:!1,killed:!1}));return tv(d,m)}let s=Q4(o),l=J4(o,n.options,s),u=q4(o,n.options,l),c={isCanceled:!1};o.kill=V4.bind(null,o.kill.bind(o)),o.cancel=U4.bind(null,o,c);let p=W4(async()=>{let[{error:b,exitCode:d,signal:m,timedOut:h},v,x,E]=await $4(o,n.options,u),g=Oi(n.options,v),w=Oi(n.options,x),C=Oi(n.options,E);if(b||d!==0||m!==null){let y=co({error:b,exitCode:d,signal:m,stdout:g,stderr:w,all:C,command:i,escapedCommand:r,parsed:n,timedOut:h,isCanceled:c.isCanceled,killed:o.killed});if(!n.options.reject)return y;throw y}return{command:i,escapedCommand:r,exitCode:0,stdout:g,stderr:w,all:C,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return X4(o,n.options.input),o.all=Y4(o,n.options),tv(o,p)};Pn.exports=uo;Pn.exports.sync=(e,t,a)=>{let n=ov(e,t,a),i=nv(e,t),r=rv(e,t);K4(n.options);let o;try{o=ru.spawnSync(n.file,n.args,n.options)}catch(u){throw co({error:u,stdout:"",stderr:"",all:"",command:i,escapedCommand:r,parsed:n,timedOut:!1,isCanceled:!1,killed:!1})}let s=Oi(n.options,o.stdout,o.error),l=Oi(n.options,o.stderr,o.error);if(o.error||o.status!==0||o.signal!==null){let u=co({stdout:s,stderr:l,error:o.error,signal:o.signal,exitCode:o.status,command:i,escapedCommand:r,parsed:n,timedOut:o.error&&o.error.code==="ETIMEDOUT",isCanceled:!1,killed:o.signal!==null});if(!n.options.reject)return u;throw u}return{command:i,escapedCommand:r,exitCode:0,stdout:s,stderr:l,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}};Pn.exports.command=(e,t)=>{let[a,...n]=iv(e);return uo(a,n,t)};Pn.exports.commandSync=(e,t)=>{let[a,...n]=iv(e);return uo.sync(a,n,t)};Pn.exports.node=(e,t,a={})=>{t&&!Array.isArray(t)&&typeof t=="object"&&(a=t,t=[]);let n=av.node(a),i=process.execArgv.filter(s=>!s.startsWith("--inspect")),{nodePath:r=process.execPath,nodeOptions:o=i}=a;return uo(r,[...o,e,...Array.isArray(t)?t:[]],{...a,stdin:void 0,stdout:void 0,stderr:void 0,stdio:n,shell:!1})}});var o0=O((Eo,r0)=>{"use strict";Eo.__esModule=!0;Eo.default={scheme:"threezerotwofour",author:"jan t. sott (http://github.com/idleberg)",base00:"#090300",base01:"#3a3432",base02:"#4a4543",base03:"#5c5855",base04:"#807d7c",base05:"#a5a2a2",base06:"#d6d5d4",base07:"#f7f7f7",base08:"#db2d20",base09:"#e8bbd0",base0A:"#fded02",base0B:"#01a252",base0C:"#b5e4f4",base0D:"#01a0e4",base0E:"#a16a94",base0F:"#cdab53"};r0.exports=Eo.default});var l0=O((So,s0)=>{"use strict";So.__esModule=!0;So.default={scheme:"apathy",author:"jannik siebert (https://github.com/janniks)",base00:"#031A16",base01:"#0B342D",base02:"#184E45",base03:"#2B685E",base04:"#5F9C92",base05:"#81B5AC",base06:"#A7CEC8",base07:"#D2E7E4",base08:"#3E9688",base09:"#3E7996",base0A:"#3E4C96",base0B:"#883E96",base0C:"#963E4C",base0D:"#96883E",base0E:"#4C963E",base0F:"#3E965B"};s0.exports=So.default});var u0=O((Co,c0)=>{"use strict";Co.__esModule=!0;Co.default={scheme:"ashes",author:"jannik siebert (https://github.com/janniks)",base00:"#1C2023",base01:"#393F45",base02:"#565E65",base03:"#747C84",base04:"#ADB3BA",base05:"#C7CCD1",base06:"#DFE2E5",base07:"#F3F4F5",base08:"#C7AE95",base09:"#C7C795",base0A:"#AEC795",base0B:"#95C7AE",base0C:"#95AEC7",base0D:"#AE95C7",base0E:"#C795AE",base0F:"#C79595"};c0.exports=Co.default});var d0=O((Ao,p0)=>{"use strict";Ao.__esModule=!0;Ao.default={scheme:"atelier dune",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune)",base00:"#20201d",base01:"#292824",base02:"#6e6b5e",base03:"#7d7a68",base04:"#999580",base05:"#a6a28c",base06:"#e8e4cf",base07:"#fefbec",base08:"#d73737",base09:"#b65611",base0A:"#cfb017",base0B:"#60ac39",base0C:"#1fad83",base0D:"#6684e1",base0E:"#b854d4",base0F:"#d43552"};p0.exports=Ao.default});var m0=O((Io,f0)=>{"use strict";Io.__esModule=!0;Io.default={scheme:"atelier forest",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest)",base00:"#1b1918",base01:"#2c2421",base02:"#68615e",base03:"#766e6b",base04:"#9c9491",base05:"#a8a19f",base06:"#e6e2e0",base07:"#f1efee",base08:"#f22c40",base09:"#df5320",base0A:"#d5911a",base0B:"#5ab738",base0C:"#00ad9c",base0D:"#407ee7",base0E:"#6666ea",base0F:"#c33ff3"};f0.exports=Io.default});var v0=O((_o,h0)=>{"use strict";_o.__esModule=!0;_o.default={scheme:"atelier heath",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath)",base00:"#1b181b",base01:"#292329",base02:"#695d69",base03:"#776977",base04:"#9e8f9e",base05:"#ab9bab",base06:"#d8cad8",base07:"#f7f3f7",base08:"#ca402b",base09:"#a65926",base0A:"#bb8a35",base0B:"#379a37",base0C:"#159393",base0D:"#516aec",base0E:"#7b59c0",base0F:"#cc33cc"};h0.exports=_o.default});var g0=O((To,b0)=>{"use strict";To.__esModule=!0;To.default={scheme:"atelier lakeside",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/)",base00:"#161b1d",base01:"#1f292e",base02:"#516d7b",base03:"#5a7b8c",base04:"#7195a8",base05:"#7ea2b4",base06:"#c1e4f6",base07:"#ebf8ff",base08:"#d22d72",base09:"#935c25",base0A:"#8a8a0f",base0B:"#568c3b",base0C:"#2d8f6f",base0D:"#257fad",base0E:"#5d5db1",base0F:"#b72dd2"};b0.exports=To.default});var y0=O((ko,x0)=>{"use strict";ko.__esModule=!0;ko.default={scheme:"atelier seaside",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/)",base00:"#131513",base01:"#242924",base02:"#5e6e5e",base03:"#687d68",base04:"#809980",base05:"#8ca68c",base06:"#cfe8cf",base07:"#f0fff0",base08:"#e6193c",base09:"#87711d",base0A:"#c3c322",base0B:"#29a329",base0C:"#1999b3",base0D:"#3d62f5",base0E:"#ad2bee",base0F:"#e619c3"};x0.exports=ko.default});var E0=O((Fo,w0)=>{"use strict";Fo.__esModule=!0;Fo.default={scheme:"bespin",author:"jan t. sott",base00:"#28211c",base01:"#36312e",base02:"#5e5d5c",base03:"#666666",base04:"#797977",base05:"#8a8986",base06:"#9d9b97",base07:"#baae9e",base08:"#cf6a4c",base09:"#cf7d34",base0A:"#f9ee98",base0B:"#54be0d",base0C:"#afc4db",base0D:"#5ea6ea",base0E:"#9b859d",base0F:"#937121"};w0.exports=Fo.default});var C0=O((Po,S0)=>{"use strict";Po.__esModule=!0;Po.default={scheme:"brewer",author:"timoth\xE9e poisot (http://github.com/tpoisot)",base00:"#0c0d0e",base01:"#2e2f30",base02:"#515253",base03:"#737475",base04:"#959697",base05:"#b7b8b9",base06:"#dadbdc",base07:"#fcfdfe",base08:"#e31a1c",base09:"#e6550d",base0A:"#dca060",base0B:"#31a354",base0C:"#80b1d3",base0D:"#3182bd",base0E:"#756bb1",base0F:"#b15928"};S0.exports=Po.default});var I0=O((Oo,A0)=>{"use strict";Oo.__esModule=!0;Oo.default={scheme:"bright",author:"chris kempson (http://chriskempson.com)",base00:"#000000",base01:"#303030",base02:"#505050",base03:"#b0b0b0",base04:"#d0d0d0",base05:"#e0e0e0",base06:"#f5f5f5",base07:"#ffffff",base08:"#fb0120",base09:"#fc6d24",base0A:"#fda331",base0B:"#a1c659",base0C:"#76c7b7",base0D:"#6fb3d2",base0E:"#d381c3",base0F:"#be643c"};A0.exports=Oo.default});var T0=O((Ro,_0)=>{"use strict";Ro.__esModule=!0;Ro.default={scheme:"chalk",author:"chris kempson (http://chriskempson.com)",base00:"#151515",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#b0b0b0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#f5f5f5",base08:"#fb9fb1",base09:"#eda987",base0A:"#ddb26f",base0B:"#acc267",base0C:"#12cfc0",base0D:"#6fc2ef",base0E:"#e1a3ee",base0F:"#deaf8f"};_0.exports=Ro.default});var F0=O((Bo,k0)=>{"use strict";Bo.__esModule=!0;Bo.default={scheme:"codeschool",author:"brettof86",base00:"#232c31",base01:"#1c3657",base02:"#2a343a",base03:"#3f4944",base04:"#84898c",base05:"#9ea7a6",base06:"#a7cfa3",base07:"#b5d8f6",base08:"#2a5491",base09:"#43820d",base0A:"#a03b1e",base0B:"#237986",base0C:"#b02f30",base0D:"#484d79",base0E:"#c59820",base0F:"#c98344"};k0.exports=Bo.default});var O0=O((No,P0)=>{"use strict";No.__esModule=!0;No.default={scheme:"colors",author:"mrmrs (http://clrs.cc)",base00:"#111111",base01:"#333333",base02:"#555555",base03:"#777777",base04:"#999999",base05:"#bbbbbb",base06:"#dddddd",base07:"#ffffff",base08:"#ff4136",base09:"#ff851b",base0A:"#ffdc00",base0B:"#2ecc40",base0C:"#7fdbff",base0D:"#0074d9",base0E:"#b10dc9",base0F:"#85144b"};P0.exports=No.default});var B0=O((jo,R0)=>{"use strict";jo.__esModule=!0;jo.default={scheme:"default",author:"chris kempson (http://chriskempson.com)",base00:"#181818",base01:"#282828",base02:"#383838",base03:"#585858",base04:"#b8b8b8",base05:"#d8d8d8",base06:"#e8e8e8",base07:"#f8f8f8",base08:"#ab4642",base09:"#dc9656",base0A:"#f7ca88",base0B:"#a1b56c",base0C:"#86c1b9",base0D:"#7cafc2",base0E:"#ba8baf",base0F:"#a16946"};R0.exports=jo.default});var j0=O((Lo,N0)=>{"use strict";Lo.__esModule=!0;Lo.default={scheme:"eighties",author:"chris kempson (http://chriskempson.com)",base00:"#2d2d2d",base01:"#393939",base02:"#515151",base03:"#747369",base04:"#a09f93",base05:"#d3d0c8",base06:"#e8e6df",base07:"#f2f0ec",base08:"#f2777a",base09:"#f99157",base0A:"#ffcc66",base0B:"#99cc99",base0C:"#66cccc",base0D:"#6699cc",base0E:"#cc99cc",base0F:"#d27b53"};N0.exports=Lo.default});var M0=O((Mo,L0)=>{"use strict";Mo.__esModule=!0;Mo.default={scheme:"embers",author:"jannik siebert (https://github.com/janniks)",base00:"#16130F",base01:"#2C2620",base02:"#433B32",base03:"#5A5047",base04:"#8A8075",base05:"#A39A90",base06:"#BEB6AE",base07:"#DBD6D1",base08:"#826D57",base09:"#828257",base0A:"#6D8257",base0B:"#57826D",base0C:"#576D82",base0D:"#6D5782",base0E:"#82576D",base0F:"#825757"};L0.exports=Mo.default});var z0=O((Do,D0)=>{"use strict";Do.__esModule=!0;Do.default={scheme:"flat",author:"chris kempson (http://chriskempson.com)",base00:"#2C3E50",base01:"#34495E",base02:"#7F8C8D",base03:"#95A5A6",base04:"#BDC3C7",base05:"#e0e0e0",base06:"#f5f5f5",base07:"#ECF0F1",base08:"#E74C3C",base09:"#E67E22",base0A:"#F1C40F",base0B:"#2ECC71",base0C:"#1ABC9C",base0D:"#3498DB",base0E:"#9B59B6",base0F:"#be643c"};D0.exports=Do.default});var H0=O((zo,G0)=>{"use strict";zo.__esModule=!0;zo.default={scheme:"google",author:"seth wright (http://sethawright.com)",base00:"#1d1f21",base01:"#282a2e",base02:"#373b41",base03:"#969896",base04:"#b4b7b4",base05:"#c5c8c6",base06:"#e0e0e0",base07:"#ffffff",base08:"#CC342B",base09:"#F96A38",base0A:"#FBA922",base0B:"#198844",base0C:"#3971ED",base0D:"#3971ED",base0E:"#A36AC7",base0F:"#3971ED"};G0.exports=zo.default});var V0=O((Go,W0)=>{"use strict";Go.__esModule=!0;Go.default={scheme:"grayscale",author:"alexandre gavioli (https://github.com/alexx2/)",base00:"#101010",base01:"#252525",base02:"#464646",base03:"#525252",base04:"#ababab",base05:"#b9b9b9",base06:"#e3e3e3",base07:"#f7f7f7",base08:"#7c7c7c",base09:"#999999",base0A:"#a0a0a0",base0B:"#8e8e8e",base0C:"#868686",base0D:"#686868",base0E:"#747474",base0F:"#5e5e5e"};W0.exports=Go.default});var J0=O((Ho,U0)=>{"use strict";Ho.__esModule=!0;Ho.default={scheme:"green screen",author:"chris kempson (http://chriskempson.com)",base00:"#001100",base01:"#003300",base02:"#005500",base03:"#007700",base04:"#009900",base05:"#00bb00",base06:"#00dd00",base07:"#00ff00",base08:"#007700",base09:"#009900",base0A:"#007700",base0B:"#00bb00",base0C:"#005500",base0D:"#009900",base0E:"#00bb00",base0F:"#005500"};U0.exports=Ho.default});var q0=O((Wo,Z0)=>{"use strict";Wo.__esModule=!0;Wo.default={scheme:"harmonic16",author:"jannik siebert (https://github.com/janniks)",base00:"#0b1c2c",base01:"#223b54",base02:"#405c79",base03:"#627e99",base04:"#aabcce",base05:"#cbd6e2",base06:"#e5ebf1",base07:"#f7f9fb",base08:"#bf8b56",base09:"#bfbf56",base0A:"#8bbf56",base0B:"#56bf8b",base0C:"#568bbf",base0D:"#8b56bf",base0E:"#bf568b",base0F:"#bf5656"};Z0.exports=Wo.default});var $0=O((Vo,X0)=>{"use strict";Vo.__esModule=!0;Vo.default={scheme:"hopscotch",author:"jan t. sott",base00:"#322931",base01:"#433b42",base02:"#5c545b",base03:"#797379",base04:"#989498",base05:"#b9b5b8",base06:"#d5d3d5",base07:"#ffffff",base08:"#dd464c",base09:"#fd8b19",base0A:"#fdcc59",base0B:"#8fc13e",base0C:"#149b93",base0D:"#1290bf",base0E:"#c85e7c",base0F:"#b33508"};X0.exports=Vo.default});var K0=O((Uo,Y0)=>{"use strict";Uo.__esModule=!0;Uo.default={scheme:"isotope",author:"jan t. sott",base00:"#000000",base01:"#404040",base02:"#606060",base03:"#808080",base04:"#c0c0c0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#ffffff",base08:"#ff0000",base09:"#ff9900",base0A:"#ff0099",base0B:"#33ff00",base0C:"#00ffff",base0D:"#0066ff",base0E:"#cc00ff",base0F:"#3300ff"};Y0.exports=Uo.default});var eb=O((Jo,Q0)=>{"use strict";Jo.__esModule=!0;Jo.default={scheme:"marrakesh",author:"alexandre gavioli (http://github.com/alexx2/)",base00:"#201602",base01:"#302e00",base02:"#5f5b17",base03:"#6c6823",base04:"#86813b",base05:"#948e48",base06:"#ccc37a",base07:"#faf0a5",base08:"#c35359",base09:"#b36144",base0A:"#a88339",base0B:"#18974e",base0C:"#75a738",base0D:"#477ca1",base0E:"#8868b3",base0F:"#b3588e"};Q0.exports=Jo.default});var ab=O((Zo,tb)=>{"use strict";Zo.__esModule=!0;Zo.default={scheme:"mocha",author:"chris kempson (http://chriskempson.com)",base00:"#3B3228",base01:"#534636",base02:"#645240",base03:"#7e705a",base04:"#b8afad",base05:"#d0c8c6",base06:"#e9e1dd",base07:"#f5eeeb",base08:"#cb6077",base09:"#d28b71",base0A:"#f4bc87",base0B:"#beb55b",base0C:"#7bbda4",base0D:"#8ab3b5",base0E:"#a89bb9",base0F:"#bb9584"};tb.exports=Zo.default});var ib=O((qo,nb)=>{"use strict";qo.__esModule=!0;qo.default={scheme:"monokai",author:"wimer hazenberg (http://www.monokai.nl)",base00:"#272822",base01:"#383830",base02:"#49483e",base03:"#75715e",base04:"#a59f85",base05:"#f8f8f2",base06:"#f5f4f1",base07:"#f9f8f5",base08:"#f92672",base09:"#fd971f",base0A:"#f4bf75",base0B:"#a6e22e",base0C:"#a1efe4",base0D:"#66d9ef",base0E:"#ae81ff",base0F:"#cc6633"};nb.exports=qo.default});var ob=O((Xo,rb)=>{"use strict";Xo.__esModule=!0;Xo.default={scheme:"ocean",author:"chris kempson (http://chriskempson.com)",base00:"#2b303b",base01:"#343d46",base02:"#4f5b66",base03:"#65737e",base04:"#a7adba",base05:"#c0c5ce",base06:"#dfe1e8",base07:"#eff1f5",base08:"#bf616a",base09:"#d08770",base0A:"#ebcb8b",base0B:"#a3be8c",base0C:"#96b5b4",base0D:"#8fa1b3",base0E:"#b48ead",base0F:"#ab7967"};rb.exports=Xo.default});var lb=O(($o,sb)=>{"use strict";$o.__esModule=!0;$o.default={scheme:"paraiso",author:"jan t. sott",base00:"#2f1e2e",base01:"#41323f",base02:"#4f424c",base03:"#776e71",base04:"#8d8687",base05:"#a39e9b",base06:"#b9b6b0",base07:"#e7e9db",base08:"#ef6155",base09:"#f99b15",base0A:"#fec418",base0B:"#48b685",base0C:"#5bc4bf",base0D:"#06b6ef",base0E:"#815ba4",base0F:"#e96ba8"};sb.exports=$o.default});var ub=O((Yo,cb)=>{"use strict";Yo.__esModule=!0;Yo.default={scheme:"pop",author:"chris kempson (http://chriskempson.com)",base00:"#000000",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#b0b0b0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#ffffff",base08:"#eb008a",base09:"#f29333",base0A:"#f8ca12",base0B:"#37b349",base0C:"#00aabb",base0D:"#0e5a94",base0E:"#b31e8d",base0F:"#7a2d00"};cb.exports=Yo.default});var db=O((Ko,pb)=>{"use strict";Ko.__esModule=!0;Ko.default={scheme:"railscasts",author:"ryan bates (http://railscasts.com)",base00:"#2b2b2b",base01:"#272935",base02:"#3a4055",base03:"#5a647e",base04:"#d4cfc9",base05:"#e6e1dc",base06:"#f4f1ed",base07:"#f9f7f3",base08:"#da4939",base09:"#cc7833",base0A:"#ffc66d",base0B:"#a5c261",base0C:"#519f50",base0D:"#6d9cbe",base0E:"#b6b3eb",base0F:"#bc9458"};pb.exports=Ko.default});var mb=O((Qo,fb)=>{"use strict";Qo.__esModule=!0;Qo.default={scheme:"shapeshifter",author:"tyler benziger (http://tybenz.com)",base00:"#000000",base01:"#040404",base02:"#102015",base03:"#343434",base04:"#555555",base05:"#ababab",base06:"#e0e0e0",base07:"#f9f9f9",base08:"#e92f2f",base09:"#e09448",base0A:"#dddd13",base0B:"#0ed839",base0C:"#23edda",base0D:"#3b48e3",base0E:"#f996e2",base0F:"#69542d"};fb.exports=Qo.default});var vb=O((es,hb)=>{"use strict";es.__esModule=!0;es.default={scheme:"solarized",author:"ethan schoonover (http://ethanschoonover.com/solarized)",base00:"#002b36",base01:"#073642",base02:"#586e75",base03:"#657b83",base04:"#839496",base05:"#93a1a1",base06:"#eee8d5",base07:"#fdf6e3",base08:"#dc322f",base09:"#cb4b16",base0A:"#b58900",base0B:"#859900",base0C:"#2aa198",base0D:"#268bd2",base0E:"#6c71c4",base0F:"#d33682"};hb.exports=es.default});var gb=O((ts,bb)=>{"use strict";ts.__esModule=!0;ts.default={scheme:"summerfruit",author:"christopher corley (http://cscorley.github.io/)",base00:"#151515",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#B0B0B0",base05:"#D0D0D0",base06:"#E0E0E0",base07:"#FFFFFF",base08:"#FF0086",base09:"#FD8900",base0A:"#ABA800",base0B:"#00C918",base0C:"#1faaaa",base0D:"#3777E6",base0E:"#AD00A1",base0F:"#cc6633"};bb.exports=ts.default});var yb=O((as,xb)=>{"use strict";as.__esModule=!0;as.default={scheme:"tomorrow",author:"chris kempson (http://chriskempson.com)",base00:"#1d1f21",base01:"#282a2e",base02:"#373b41",base03:"#969896",base04:"#b4b7b4",base05:"#c5c8c6",base06:"#e0e0e0",base07:"#ffffff",base08:"#cc6666",base09:"#de935f",base0A:"#f0c674",base0B:"#b5bd68",base0C:"#8abeb7",base0D:"#81a2be",base0E:"#b294bb",base0F:"#a3685a"};xb.exports=as.default});var Eb=O((ns,wb)=>{"use strict";ns.__esModule=!0;ns.default={scheme:"london tube",author:"jan t. sott",base00:"#231f20",base01:"#1c3f95",base02:"#5a5758",base03:"#737171",base04:"#959ca1",base05:"#d9d8d8",base06:"#e7e7e8",base07:"#ffffff",base08:"#ee2e24",base09:"#f386a1",base0A:"#ffd204",base0B:"#00853e",base0C:"#85cebc",base0D:"#009ddc",base0E:"#98005d",base0F:"#b06110"};wb.exports=ns.default});var Cb=O((is,Sb)=>{"use strict";is.__esModule=!0;is.default={scheme:"twilight",author:"david hart (http://hart-dev.com)",base00:"#1e1e1e",base01:"#323537",base02:"#464b50",base03:"#5f5a60",base04:"#838184",base05:"#a7a7a7",base06:"#c3c3c3",base07:"#ffffff",base08:"#cf6a4c",base09:"#cda869",base0A:"#f9ee98",base0B:"#8f9d6a",base0C:"#afc4db",base0D:"#7587a6",base0E:"#9b859d",base0F:"#9b703f"};Sb.exports=is.default});var Ab=O(de=>{"use strict";de.__esModule=!0;function me(e){return e&&e.__esModule?e.default:e}var Yk=o0();de.threezerotwofour=me(Yk);var Kk=l0();de.apathy=me(Kk);var Qk=u0();de.ashes=me(Qk);var e5=d0();de.atelierDune=me(e5);var t5=m0();de.atelierForest=me(t5);var a5=v0();de.atelierHeath=me(a5);var n5=g0();de.atelierLakeside=me(n5);var i5=y0();de.atelierSeaside=me(i5);var r5=E0();de.bespin=me(r5);var o5=C0();de.brewer=me(o5);var s5=I0();de.bright=me(s5);var l5=T0();de.chalk=me(l5);var c5=F0();de.codeschool=me(c5);var u5=O0();de.colors=me(u5);var p5=B0();de.default=me(p5);var d5=j0();de.eighties=me(d5);var f5=M0();de.embers=me(f5);var m5=z0();de.flat=me(m5);var h5=H0();de.google=me(h5);var v5=V0();de.grayscale=me(v5);var b5=J0();de.greenscreen=me(b5);var g5=q0();de.harmonic=me(g5);var x5=$0();de.hopscotch=me(x5);var y5=K0();de.isotope=me(y5);var w5=eb();de.marrakesh=me(w5);var E5=ab();de.mocha=me(E5);var S5=ib();de.monokai=me(S5);var C5=ob();de.ocean=me(C5);var A5=lb();de.paraiso=me(A5);var I5=ub();de.pop=me(I5);var _5=db();de.railscasts=me(_5);var T5=mb();de.shapeshifter=me(T5);var k5=vb();de.solarized=me(k5);var F5=gb();de.summerfruit=me(F5);var P5=yb();de.tomorrow=me(P5);var O5=Eb();de.tube=me(O5);var R5=Cb();de.twilight=me(R5)});var Ru=O((w8,Ib)=>{"use strict";Ib.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var Tb=O((E8,_b)=>{_b.exports=function(t){return!t||typeof t=="string"?!1:t instanceof Array||Array.isArray(t)||t.length>=0&&(t.splice instanceof Function||Object.getOwnPropertyDescriptor(t,t.length-1)&&t.constructor.name!=="String")}});var Pb=O((S8,Fb)=>{"use strict";var B5=Tb(),N5=Array.prototype.concat,j5=Array.prototype.slice,kb=Fb.exports=function(t){for(var a=[],n=0,i=t.length;n{var Hi=Ru(),Wi=Pb(),Ob=Object.hasOwnProperty,Rb=Object.create(null);for(rs in Hi)Ob.call(Hi,rs)&&(Rb[Hi[rs]]=rs);var rs,Tt=Bb.exports={to:{},get:{}};Tt.get=function(e){var t=e.substring(0,3).toLowerCase(),a,n;switch(t){case"hsl":a=Tt.get.hsl(e),n="hsl";break;case"hwb":a=Tt.get.hwb(e),n="hwb";break;default:a=Tt.get.rgb(e),n="rgb";break}return a?{model:n,value:a}:null};Tt.get.rgb=function(e){if(!e)return null;var t=/^#([a-f0-9]{3,4})$/i,a=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,n=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,i=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,r=/^(\w+)$/,o=[0,0,0,1],s,l,u;if(s=e.match(a)){for(u=s[2],s=s[1],l=0;l<3;l++){var c=l*2;o[l]=parseInt(s.slice(c,c+2),16)}u&&(o[3]=parseInt(u,16)/255)}else if(s=e.match(t)){for(s=s[1],u=s[3],l=0;l<3;l++)o[l]=parseInt(s[l]+s[l],16);u&&(o[3]=parseInt(u+u,16)/255)}else if(s=e.match(n)){for(l=0;l<3;l++)o[l]=parseInt(s[l+1],0);s[4]&&(s[5]?o[3]=parseFloat(s[4])*.01:o[3]=parseFloat(s[4]))}else if(s=e.match(i)){for(l=0;l<3;l++)o[l]=Math.round(parseFloat(s[l+1])*2.55);s[4]&&(s[5]?o[3]=parseFloat(s[4])*.01:o[3]=parseFloat(s[4]))}else return(s=e.match(r))?s[1]==="transparent"?[0,0,0,0]:Ob.call(Hi,s[1])?(o=Hi[s[1]],o[3]=1,o):null:null;for(l=0;l<3;l++)o[l]=Fa(o[l],0,255);return o[3]=Fa(o[3],0,1),o};Tt.get.hsl=function(e){if(!e)return null;var t=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,a=e.match(t);if(a){var n=parseFloat(a[4]),i=(parseFloat(a[1])%360+360)%360,r=Fa(parseFloat(a[2]),0,100),o=Fa(parseFloat(a[3]),0,100),s=Fa(isNaN(n)?1:n,0,1);return[i,r,o,s]}return null};Tt.get.hwb=function(e){if(!e)return null;var t=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,a=e.match(t);if(a){var n=parseFloat(a[4]),i=(parseFloat(a[1])%360+360)%360,r=Fa(parseFloat(a[2]),0,100),o=Fa(parseFloat(a[3]),0,100),s=Fa(isNaN(n)?1:n,0,1);return[i,r,o,s]}return null};Tt.to.hex=function(){var e=Wi(arguments);return"#"+os(e[0])+os(e[1])+os(e[2])+(e[3]<1?os(Math.round(e[3]*255)):"")};Tt.to.rgb=function(){var e=Wi(arguments);return e.length<4||e[3]===1?"rgb("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+")":"rgba("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+", "+e[3]+")"};Tt.to.rgb.percent=function(){var e=Wi(arguments),t=Math.round(e[0]/255*100),a=Math.round(e[1]/255*100),n=Math.round(e[2]/255*100);return e.length<4||e[3]===1?"rgb("+t+"%, "+a+"%, "+n+"%)":"rgba("+t+"%, "+a+"%, "+n+"%, "+e[3]+")"};Tt.to.hsl=function(){var e=Wi(arguments);return e.length<4||e[3]===1?"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)":"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+e[3]+")"};Tt.to.hwb=function(){var e=Wi(arguments),t="";return e.length>=4&&e[3]!==1&&(t=", "+e[3]),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+t+")"};Tt.to.keyword=function(e){return Rb[e.slice(0,3)]};function Fa(e,t,a){return Math.min(Math.max(t,e),a)}function os(e){var t=Math.round(e).toString(16).toUpperCase();return t.length<2?"0"+t:t}});var Bu=O((A8,Db)=>{var Ka=Ru(),Mb={};for(ss in Ka)Ka.hasOwnProperty(ss)&&(Mb[Ka[ss]]=ss);var ss,Y=Db.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(vt in Y)if(Y.hasOwnProperty(vt)){if(!("channels"in Y[vt]))throw new Error("missing channels property: "+vt);if(!("labels"in Y[vt]))throw new Error("missing channel labels property: "+vt);if(Y[vt].labels.length!==Y[vt].channels)throw new Error("channel and label counts mismatch: "+vt);jb=Y[vt].channels,Lb=Y[vt].labels,delete Y[vt].channels,delete Y[vt].labels,Object.defineProperty(Y[vt],"channels",{value:jb}),Object.defineProperty(Y[vt],"labels",{value:Lb})}var jb,Lb,vt;Y.rgb.hsl=function(e){var t=e[0]/255,a=e[1]/255,n=e[2]/255,i=Math.min(t,a,n),r=Math.max(t,a,n),o=r-i,s,l,u;return r===i?s=0:t===r?s=(a-n)/o:a===r?s=2+(n-t)/o:n===r&&(s=4+(t-a)/o),s=Math.min(s*60,360),s<0&&(s+=360),u=(i+r)/2,r===i?l=0:u<=.5?l=o/(r+i):l=o/(2-r-i),[s,l*100,u*100]};Y.rgb.hsv=function(e){var t,a,n,i,r,o=e[0]/255,s=e[1]/255,l=e[2]/255,u=Math.max(o,s,l),c=u-Math.min(o,s,l),f=function(p){return(u-p)/6/c+1/2};return c===0?i=r=0:(r=c/u,t=f(o),a=f(s),n=f(l),o===u?i=n-a:s===u?i=1/3+t-n:l===u&&(i=2/3+a-t),i<0?i+=1:i>1&&(i-=1)),[i*360,r*100,u*100]};Y.rgb.hwb=function(e){var t=e[0],a=e[1],n=e[2],i=Y.rgb.hsl(e)[0],r=1/255*Math.min(t,Math.min(a,n));return n=1-1/255*Math.max(t,Math.max(a,n)),[i,r*100,n*100]};Y.rgb.cmyk=function(e){var t=e[0]/255,a=e[1]/255,n=e[2]/255,i,r,o,s;return s=Math.min(1-t,1-a,1-n),i=(1-t-s)/(1-s)||0,r=(1-a-s)/(1-s)||0,o=(1-n-s)/(1-s)||0,[i*100,r*100,o*100,s*100]};function L5(e,t){return Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)+Math.pow(e[2]-t[2],2)}Y.rgb.keyword=function(e){var t=Mb[e];if(t)return t;var a=1/0,n;for(var i in Ka)if(Ka.hasOwnProperty(i)){var r=Ka[i],o=L5(e,r);o.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92;var i=t*.4124+a*.3576+n*.1805,r=t*.2126+a*.7152+n*.0722,o=t*.0193+a*.1192+n*.9505;return[i*100,r*100,o*100]};Y.rgb.lab=function(e){var t=Y.rgb.xyz(e),a=t[0],n=t[1],i=t[2],r,o,s;return a/=95.047,n/=100,i/=108.883,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,i=i>.008856?Math.pow(i,1/3):7.787*i+16/116,r=116*n-16,o=500*(a-n),s=200*(n-i),[r,o,s]};Y.hsl.rgb=function(e){var t=e[0]/360,a=e[1]/100,n=e[2]/100,i,r,o,s,l;if(a===0)return l=n*255,[l,l,l];n<.5?r=n*(1+a):r=n+a-n*a,i=2*n-r,s=[0,0,0];for(var u=0;u<3;u++)o=t+1/3*-(u-1),o<0&&o++,o>1&&o--,6*o<1?l=i+(r-i)*6*o:2*o<1?l=r:3*o<2?l=i+(r-i)*(2/3-o)*6:l=i,s[u]=l*255;return s};Y.hsl.hsv=function(e){var t=e[0],a=e[1]/100,n=e[2]/100,i=a,r=Math.max(n,.01),o,s;return n*=2,a*=n<=1?n:2-n,i*=r<=1?r:2-r,s=(n+a)/2,o=n===0?2*i/(r+i):2*a/(n+a),[t,o*100,s*100]};Y.hsv.rgb=function(e){var t=e[0]/60,a=e[1]/100,n=e[2]/100,i=Math.floor(t)%6,r=t-Math.floor(t),o=255*n*(1-a),s=255*n*(1-a*r),l=255*n*(1-a*(1-r));switch(n*=255,i){case 0:return[n,l,o];case 1:return[s,n,o];case 2:return[o,n,l];case 3:return[o,s,n];case 4:return[l,o,n];case 5:return[n,o,s]}};Y.hsv.hsl=function(e){var t=e[0],a=e[1]/100,n=e[2]/100,i=Math.max(n,.01),r,o,s;return s=(2-a)*n,r=(2-a)*i,o=a*i,o/=r<=1?r:2-r,o=o||0,s/=2,[t,o*100,s*100]};Y.hwb.rgb=function(e){var t=e[0]/360,a=e[1]/100,n=e[2]/100,i=a+n,r,o,s,l;i>1&&(a/=i,n/=i),r=Math.floor(6*t),o=1-n,s=6*t-r,r&1&&(s=1-s),l=a+s*(o-a);var u,c,f;switch(r){default:case 6:case 0:u=o,c=l,f=a;break;case 1:u=l,c=o,f=a;break;case 2:u=a,c=o,f=l;break;case 3:u=a,c=l,f=o;break;case 4:u=l,c=a,f=o;break;case 5:u=o,c=a,f=l;break}return[u*255,c*255,f*255]};Y.cmyk.rgb=function(e){var t=e[0]/100,a=e[1]/100,n=e[2]/100,i=e[3]/100,r,o,s;return r=1-Math.min(1,t*(1-i)+i),o=1-Math.min(1,a*(1-i)+i),s=1-Math.min(1,n*(1-i)+i),[r*255,o*255,s*255]};Y.xyz.rgb=function(e){var t=e[0]/100,a=e[1]/100,n=e[2]/100,i,r,o;return i=t*3.2406+a*-1.5372+n*-.4986,r=t*-.9689+a*1.8758+n*.0415,o=t*.0557+a*-.204+n*1.057,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*12.92,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:r*12.92,o=o>.0031308?1.055*Math.pow(o,1/2.4)-.055:o*12.92,i=Math.min(Math.max(0,i),1),r=Math.min(Math.max(0,r),1),o=Math.min(Math.max(0,o),1),[i*255,r*255,o*255]};Y.xyz.lab=function(e){var t=e[0],a=e[1],n=e[2],i,r,o;return t/=95.047,a/=100,n/=108.883,t=t>.008856?Math.pow(t,1/3):7.787*t+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,i=116*a-16,r=500*(t-a),o=200*(a-n),[i,r,o]};Y.lab.xyz=function(e){var t=e[0],a=e[1],n=e[2],i,r,o;r=(t+16)/116,i=a/500+r,o=r-n/200;var s=Math.pow(r,3),l=Math.pow(i,3),u=Math.pow(o,3);return r=s>.008856?s:(r-16/116)/7.787,i=l>.008856?l:(i-16/116)/7.787,o=u>.008856?u:(o-16/116)/7.787,i*=95.047,r*=100,o*=108.883,[i,r,o]};Y.lab.lch=function(e){var t=e[0],a=e[1],n=e[2],i,r,o;return i=Math.atan2(n,a),r=i*360/2/Math.PI,r<0&&(r+=360),o=Math.sqrt(a*a+n*n),[t,o,r]};Y.lch.lab=function(e){var t=e[0],a=e[1],n=e[2],i,r,o;return o=n/360*2*Math.PI,i=a*Math.cos(o),r=a*Math.sin(o),[t,i,r]};Y.rgb.ansi16=function(e){var t=e[0],a=e[1],n=e[2],i=1 in arguments?arguments[1]:Y.rgb.hsv(e)[2];if(i=Math.round(i/50),i===0)return 30;var r=30+(Math.round(n/255)<<2|Math.round(a/255)<<1|Math.round(t/255));return i===2&&(r+=60),r};Y.hsv.ansi16=function(e){return Y.rgb.ansi16(Y.hsv.rgb(e),e[2])};Y.rgb.ansi256=function(e){var t=e[0],a=e[1],n=e[2];if(t===a&&a===n)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;var i=16+36*Math.round(t/255*5)+6*Math.round(a/255*5)+Math.round(n/255*5);return i};Y.ansi16.rgb=function(e){var t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];var a=(~~(e>50)+1)*.5,n=(t&1)*a*255,i=(t>>1&1)*a*255,r=(t>>2&1)*a*255;return[n,i,r]};Y.ansi256.rgb=function(e){if(e>=232){var t=(e-232)*10+8;return[t,t,t]}e-=16;var a,n=Math.floor(e/36)/5*255,i=Math.floor((a=e%36)/6)/5*255,r=a%6/5*255;return[n,i,r]};Y.rgb.hex=function(e){var t=((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255),a=t.toString(16).toUpperCase();return"000000".substring(a.length)+a};Y.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var a=t[0];t[0].length===3&&(a=a.split("").map(function(s){return s+s}).join(""));var n=parseInt(a,16),i=n>>16&255,r=n>>8&255,o=n&255;return[i,r,o]};Y.rgb.hcg=function(e){var t=e[0]/255,a=e[1]/255,n=e[2]/255,i=Math.max(Math.max(t,a),n),r=Math.min(Math.min(t,a),n),o=i-r,s,l;return o<1?s=r/(1-o):s=0,o<=0?l=0:i===t?l=(a-n)/o%6:i===a?l=2+(n-t)/o:l=4+(t-a)/o+4,l/=6,l%=1,[l*360,o*100,s*100]};Y.hsl.hcg=function(e){var t=e[1]/100,a=e[2]/100,n=1,i=0;return a<.5?n=2*t*a:n=2*t*(1-a),n<1&&(i=(a-.5*n)/(1-n)),[e[0],n*100,i*100]};Y.hsv.hcg=function(e){var t=e[1]/100,a=e[2]/100,n=t*a,i=0;return n<1&&(i=(a-n)/(1-n)),[e[0],n*100,i*100]};Y.hcg.rgb=function(e){var t=e[0]/360,a=e[1]/100,n=e[2]/100;if(a===0)return[n*255,n*255,n*255];var i=[0,0,0],r=t%1*6,o=r%1,s=1-o,l=0;switch(Math.floor(r)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=s,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=s,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=s}return l=(1-a)*n,[(a*i[0]+l)*255,(a*i[1]+l)*255,(a*i[2]+l)*255]};Y.hcg.hsv=function(e){var t=e[1]/100,a=e[2]/100,n=t+a*(1-t),i=0;return n>0&&(i=t/n),[e[0],i*100,n*100]};Y.hcg.hsl=function(e){var t=e[1]/100,a=e[2]/100,n=a*(1-t)+.5*t,i=0;return n>0&&n<.5?i=t/(2*n):n>=.5&&n<1&&(i=t/(2*(1-n))),[e[0],i*100,n*100]};Y.hcg.hwb=function(e){var t=e[1]/100,a=e[2]/100,n=t+a*(1-t);return[e[0],(n-t)*100,(1-n)*100]};Y.hwb.hcg=function(e){var t=e[1]/100,a=e[2]/100,n=1-a,i=n-t,r=0;return i<1&&(r=(n-i)/(1-i)),[e[0],i*100,r*100]};Y.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};Y.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};Y.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};Y.gray.hsl=Y.gray.hsv=function(e){return[0,0,e[0]]};Y.gray.hwb=function(e){return[0,100,e[0]]};Y.gray.cmyk=function(e){return[0,0,0,e[0]]};Y.gray.lab=function(e){return[e[0],0,0]};Y.gray.hex=function(e){var t=Math.round(e[0]/100*255)&255,a=(t<<16)+(t<<8)+t,n=a.toString(16).toUpperCase();return"000000".substring(n.length)+n};Y.rgb.gray=function(e){var t=(e[0]+e[1]+e[2])/3;return[t/255*100]}});var Gb=O((I8,zb)=>{var ls=Bu();function M5(){for(var e={},t=Object.keys(ls),a=t.length,n=0;n{var Nu=Bu(),H5=Gb(),Ln={},W5=Object.keys(Nu);function V5(e){var t=function(a){return a==null?a:(arguments.length>1&&(a=Array.prototype.slice.call(arguments)),e(a))};return"conversion"in e&&(t.conversion=e.conversion),t}function U5(e){var t=function(a){if(a==null)return a;arguments.length>1&&(a=Array.prototype.slice.call(arguments));var n=e(a);if(typeof n=="object")for(var i=n.length,r=0;r{"use strict";var Vi=Nb(),kt=Wb(),Mu=[].slice,Vb=["keyword","gray","hex"],ju={};Object.keys(kt).forEach(function(e){ju[Mu.call(kt[e].labels).sort().join("")]=e});var cs={};function st(e,t){if(!(this instanceof st))return new st(e,t);if(t&&t in Vb&&(t=null),t&&!(t in kt))throw new Error("Unknown model: "+t);var a,n;if(e==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(e instanceof st)this.model=e.model,this.color=e.color.slice(),this.valpha=e.valpha;else if(typeof e=="string"){var i=Vi.get(e);if(i===null)throw new Error("Unable to parse color from string: "+e);this.model=i.model,n=kt[this.model].channels,this.color=i.value.slice(0,n),this.valpha=typeof i.value[n]=="number"?i.value[n]:1}else if(e.length){this.model=t||"rgb",n=kt[this.model].channels;var r=Mu.call(e,0,n);this.color=Lu(r,n),this.valpha=typeof e[n]=="number"?e[n]:1}else if(typeof e=="number")e&=16777215,this.model="rgb",this.color=[e>>16&255,e>>8&255,e&255],this.valpha=1;else{this.valpha=1;var o=Object.keys(e);"alpha"in e&&(o.splice(o.indexOf("alpha"),1),this.valpha=typeof e.alpha=="number"?e.alpha:0);var s=o.sort().join("");if(!(s in ju))throw new Error("Unable to parse color from object: "+JSON.stringify(e));this.model=ju[s];var l=kt[this.model].labels,u=[];for(a=0;aa?(t+.05)/(a+.05):(a+.05)/(t+.05)},level:function(e){var t=this.contrast(e);return t>=7.1?"AAA":t>=4.5?"AA":""},isDark:function(){var e=this.rgb().color,t=(e[0]*299+e[1]*587+e[2]*114)/1e3;return t<128},isLight:function(){return!this.isDark()},negate:function(){for(var e=this.rgb(),t=0;t<3;t++)e.color[t]=255-e.color[t];return e},lighten:function(e){var t=this.hsl();return t.color[2]+=t.color[2]*e,t},darken:function(e){var t=this.hsl();return t.color[2]-=t.color[2]*e,t},saturate:function(e){var t=this.hsl();return t.color[1]+=t.color[1]*e,t},desaturate:function(e){var t=this.hsl();return t.color[1]-=t.color[1]*e,t},whiten:function(e){var t=this.hwb();return t.color[1]+=t.color[1]*e,t},blacken:function(e){var t=this.hwb();return t.color[2]+=t.color[2]*e,t},grayscale:function(){var e=this.rgb().color,t=e[0]*.3+e[1]*.59+e[2]*.11;return st.rgb(t,t,t)},fade:function(e){return this.alpha(this.valpha-this.valpha*e)},opaquer:function(e){return this.alpha(this.valpha+this.valpha*e)},rotate:function(e){var t=this.hsl(),a=t.color[0];return a=(a+e)%360,a=a<0?360+a:a,t.color[0]=a,t},mix:function(e,t){if(!e||!e.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof e);var a=e.rgb(),n=this.rgb(),i=t===void 0?.5:t,r=2*i-1,o=a.alpha()-n.alpha(),s=((r*o===-1?r:(r+o)/(1+r*o))+1)/2,l=1-s;return st.rgb(s*a.red()+l*n.red(),s*a.green()+l*n.green(),s*a.blue()+l*n.blue(),a.alpha()*i+n.alpha()*(1-i))}};Object.keys(kt).forEach(function(e){if(Vb.indexOf(e)===-1){var t=kt[e].channels;st.prototype[e]=function(){if(this.model===e)return new st(this);if(arguments.length)return new st(arguments,e);var a=typeof arguments[t]=="number"?t:this.valpha;return new st(q5(kt[this.model][e].raw(this.color)).concat(a),e)},st[e]=function(a){return typeof a=="number"&&(a=Lu(Mu.call(arguments),t)),new st(a,e)}}});function J5(e,t){return Number(e.toFixed(t))}function Z5(e){return function(t){return J5(t,e)}}function Ue(e,t,a){return e=Array.isArray(e)?e:[e],e.forEach(function(n){(cs[n]||(cs[n]=[]))[t]=a}),e=e[0],function(n){var i;return arguments.length?(a&&(n=a(n)),i=this[e](),i.color[t]=n,i):(i=this[e]().color[t],a&&(i=a(i)),i)}}function et(e){return function(t){return Math.max(0,Math.min(e,t))}}function q5(e){return Array.isArray(e)?e:[e]}function Lu(e,t){for(var a=0;a{var X5="Expected a function",Zb="__lodash_placeholder__",en=1,ps=2,$5=4,Qa=8,Ui=16,Mn=32,Ji=64,eg=128,Y5=256,tg=512,qb=1/0,K5=9007199254740991,Q5=17976931348623157e292,Xb=0/0,eF=[["ary",eg],["bind",en],["bindKey",ps],["curry",Qa],["curryRight",Ui],["flip",tg],["partial",Mn],["partialRight",Ji],["rearg",Y5]],tF="[object Function]",aF="[object GeneratorFunction]",nF="[object Symbol]",iF=/[\\^$.*+?()[\]{}|]/g,rF=/^\s+|\s+$/g,oF=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,sF=/\{\n\/\* \[wrapped with (.+)\] \*/,lF=/,? & /,cF=/^[-+]0x[0-9a-f]+$/i,uF=/^0b[01]+$/i,pF=/^\[object .+?Constructor\]$/,dF=/^0o[0-7]+$/i,fF=/^(?:0|[1-9]\d*)$/,mF=parseInt,hF=typeof global=="object"&&global&&global.Object===Object&&global,vF=typeof self=="object"&&self&&self.Object===Object&&self,qi=hF||vF||Function("return this")();function ag(e,t,a){switch(a.length){case 0:return e.call(t);case 1:return e.call(t,a[0]);case 2:return e.call(t,a[0],a[1]);case 3:return e.call(t,a[0],a[1],a[2])}return e.apply(t,a)}function bF(e,t){for(var a=-1,n=e?e.length:0;++a-1}function xF(e,t,a,n){for(var i=e.length,r=a+(n?1:-1);n?r--:++r2?e:void 0}();function FF(e){return Dn(e)?TF(e):{}}function PF(e){if(!Dn(e)||HF(e))return!1;var t=JF(e)||CF(e)?_F:pF;return t.test(VF(e))}function OF(e,t,a,n){for(var i=-1,r=e.length,o=a.length,s=-1,l=t.length,u=us(r-o,0),c=Array(l+u),f=!n;++s1&&x.reverse(),c&&l1?"& ":"")+t[n],t=t.join(a>2?", ":" "),e.replace(oF,`{ +/* [wrapped with `+t+`] */ +`)}function GF(e,t){return t=t==null?K5:t,!!t&&(typeof e=="number"||fF.test(e))&&e>-1&&e%1==0&&e{"use strict";var{PassThrough:LP}=require("stream");Jg.exports=e=>{e={...e};let{array:t}=e,{encoding:a}=e,n=a==="buffer",i=!1;t?i=!(a||n):a=a||"utf8",n&&(a=null);let r=new LP({objectMode:i});a&&r.setEncoding(a);let o=0,s=[];return r.on("data",l=>{s.push(l),i?o=s.length:o+=l.length}),r.getBufferedValue=()=>t?s:n?Buffer.concat(s,o):s.join(""),r.getBufferedLength=()=>o,r}});var qg=O((hz,Yi)=>{"use strict";var{constants:MP}=require("buffer"),DP=require("stream"),{promisify:zP}=require("util"),GP=Zg(),HP=zP(DP.pipeline),vs=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Yu(e,t){if(!e)throw new Error("Expected a stream");t={maxBuffer:1/0,...t};let{maxBuffer:a}=t,n=GP(t);return await new Promise((i,r)=>{let o=s=>{s&&n.getBufferedLength()<=MP.MAX_LENGTH&&(s.bufferedData=n.getBufferedValue()),r(s)};(async()=>{try{await HP(e,n),i()}catch(s){o(s)}})(),n.on("data",()=>{n.getBufferedLength()>a&&o(new vs)})}),n.getBufferedValue()}Yi.exports=Yu;Yi.exports.buffer=(e,t)=>Yu(e,{...t,encoding:"buffer"});Yi.exports.array=(e,t)=>Yu(e,{...t,array:!0});Yi.exports.MaxBufferError=vs});var Ax=O((tr,up)=>{(function(t,a){typeof tr=="object"&&typeof up=="object"?up.exports=a():typeof define=="function"&&define.amd?define([],a):typeof tr=="object"?tr.nunjucks=a():t.nunjucks=a()})(typeof self!="undefined"?self:tr,function(){return function(e){var t={};function a(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,a),i.l=!0,i.exports}return a.m=e,a.c=t,a.d=function(n,i,r){a.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:r})},a.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return a.d(i,"a",i),i},a.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},a.p="",a(a.s=11)}([function(e,s,a){"use strict";var n=Array.prototype,i=Object.prototype,r={"&":"&",'"':""","'":"'","<":"<",">":">","\\":"\"},o=/[&"'<>\\]/g,s=e.exports={};function l(T,N){return i.hasOwnProperty.call(T,N)}s.hasOwnProp=l;function u(T){return r[T]}function c(T,N,M){if(M.Update||(M=new s.TemplateError(M)),M.Update(T),!N){var D=M;M=new Error(D.message),M.name=D.name}return M}s._prettifyError=c;function f(T,N,M){var D,V;T instanceof Error&&(V=T,T=V.name+": "+V.message),Object.setPrototypeOf?(D=new Error(T),Object.setPrototypeOf(D,f.prototype)):(D=this,Object.defineProperty(D,"message",{enumerable:!1,writable:!0,value:T})),Object.defineProperty(D,"name",{value:"Template render error"}),Error.captureStackTrace&&Error.captureStackTrace(D,this.constructor);var q;if(V){var Z=Object.getOwnPropertyDescriptor(V,"stack");q=Z&&(Z.get||function(){return Z.value}),q||(q=function(){return V.stack})}else{var pe=new Error(T).stack;q=function(){return pe}}return Object.defineProperty(D,"stack",{get:function(){return q.call(D)}}),Object.defineProperty(D,"cause",{value:V}),D.lineno=N,D.colno=M,D.firstUpdate=!0,D.Update=function(ee){var oe="("+(ee||"unknown path")+")";return this.firstUpdate&&(this.lineno&&this.colno?oe+=" [Line "+this.lineno+", Column "+this.colno+"]":this.lineno&&(oe+=" [Line "+this.lineno+"]")),oe+=` + `,this.firstUpdate&&(oe+=" "),this.message=oe+(this.message||""),this.firstUpdate=!1,this},D}Object.setPrototypeOf?Object.setPrototypeOf(f.prototype,Error.prototype):f.prototype=Object.create(Error.prototype,{constructor:{value:f}}),s.TemplateError=f;function p(T){return T.replace(o,u)}s.escape=p;function b(T){return i.toString.call(T)==="[object Function]"}s.isFunction=b;function d(T){return i.toString.call(T)==="[object Array]"}s.isArray=d;function m(T){return i.toString.call(T)==="[object String]"}s.isString=m;function h(T){return i.toString.call(T)==="[object Object]"}s.isObject=h;function v(T){return T?typeof T=="string"?T.split("."):[T]:[]}function x(T){var N=v(T);return function(D){for(var V=D,q=0;qS.length)k=B.slice(0,S.length),B.slice(k.length,L).forEach(function(D,V){V2?_i-2:0),$r=2;$r<_i;$r++)Q_[$r-2]=arguments[$r];this.lineno=Ie,this.colno=Xe,this.fields.forEach(function(eT,tT){var jc=St[tT+2];jc===void 0&&(jc=null),Za[eT]=jc})},we.findAll=function(Ie,Xe){var St=this;return Xe=Xe||[],this instanceof d?this.children.forEach(function(Za){return f(Za,Ie,Xe)}):this.fields.forEach(function(Za){return f(St[Za],Ie,Xe)}),Xe},we.iterFields=function(Ie){var Xe=this;this.fields.forEach(function(St){Ie(Xe[St],St)})},ie}(c),b=function(te){s(ie,te);function ie(){return te.apply(this,arguments)||this}return i(ie,[{key:"typename",get:function(){return"Value"}},{key:"fields",get:function(){return["value"]}}]),ie}(p),d=function(te){s(ie,te);function ie(){return te.apply(this,arguments)||this}var we=ie.prototype;return we.init=function(Ie,Xe,St){te.prototype.init.call(this,Ie,Xe,St||[])},we.addChild=function(Ie){this.children.push(Ie)},i(ie,[{key:"typename",get:function(){return"NodeList"}},{key:"fields",get:function(){return["children"]}}]),ie}(p),m=d.extend("Root"),h=b.extend("Literal"),v=b.extend("Symbol"),x=d.extend("Group"),E=d.extend("Array"),g=p.extend("Pair",{fields:["key","value"]}),w=d.extend("Dict"),C=p.extend("LookupVal",{fields:["target","val"]}),y=p.extend("If",{fields:["cond","body","else_"]}),S=y.extend("IfAsync"),A=p.extend("InlineIf",{fields:["cond","body","else_"]}),_=p.extend("For",{fields:["arr","name","body","else_"]}),P=_.extend("AsyncEach"),F=_.extend("AsyncAll"),B=p.extend("Macro",{fields:["name","args","body"]}),j=B.extend("Caller"),L=p.extend("Import",{fields:["template","target","withContext"]}),k=function(te){s(ie,te);function ie(){return te.apply(this,arguments)||this}var we=ie.prototype;return we.init=function(Ie,Xe,St,Za,_i){te.prototype.init.call(this,Ie,Xe,St,Za||new d,_i)},i(ie,[{key:"typename",get:function(){return"FromImport"}},{key:"fields",get:function(){return["template","names","withContext"]}}]),ie}(p),T=p.extend("FunCall",{fields:["name","args"]}),N=T.extend("Filter"),M=N.extend("FilterAsync",{fields:["name","args","symbol"]}),D=w.extend("KeywordArgs"),V=p.extend("Block",{fields:["name","body"]}),q=p.extend("Super",{fields:["blockName","symbol"]}),Z=p.extend("TemplateRef",{fields:["template"]}),pe=Z.extend("Extends"),fe=p.extend("Include",{fields:["template","ignoreMissing"]}),ee=p.extend("Set",{fields:["targets","value"]}),oe=p.extend("Switch",{fields:["expr","cases","default"]}),U=p.extend("Case",{fields:["cond","body"]}),X=d.extend("Output"),$=p.extend("Capture",{fields:["body"]}),he=h.extend("TemplateData"),qe=p.extend("UnaryOp",{fields:["target"]}),ze=p.extend("BinOp",{fields:["left","right"]}),ht=ze.extend("In"),R=ze.extend("Is"),z=ze.extend("Or"),J=ze.extend("And"),H=qe.extend("Not"),ne=ze.extend("Add"),K=ze.extend("Concat"),Ae=ze.extend("Sub"),ue=ze.extend("Mul"),Ne=ze.extend("Div"),Nt=ze.extend("FloorDiv"),Vt=ze.extend("Mod"),Ia=ze.extend("Pow"),q_=qe.extend("Neg"),X_=qe.extend("Pos"),$_=p.extend("Compare",{fields:["expr","ops"]}),Y_=p.extend("CompareOperand",{fields:["expr","type"]}),Nc=p.extend("CallExtension",{init:function(ie,we,ge,Ie){this.parent(),this.extName=ie.__name||ie,this.prop=we,this.args=ge||new d,this.contentArgs=Ie||[],this.autoescape=ie.autoescape},fields:["extName","prop","args","contentArgs"]}),K_=Nc.extend("CallExtensionAsync");function Sn(te,ie,we){var ge=te.split(` +`);ge.forEach(function(Ie,Xe){Ie&&(we&&Xe>0||!we)&&process.stdout.write(" ".repeat(ie));var St=Xe===ge.length-1?"":` +`;process.stdout.write(""+Ie+St)})}function Ii(te,ie){if(ie=ie||0,Sn(te.typename+": ",ie),te instanceof d)Sn(` +`),te.children.forEach(function(Ie){Ii(Ie,ie+2)});else if(te instanceof Nc)Sn(te.extName+"."+te.prop+` +`),te.args&&Ii(te.args,ie+2),te.contentArgs&&te.contentArgs.forEach(function(Ie){Ii(Ie,ie+2)});else{var we=[],ge=null;te.iterFields(function(Ie,Xe){Ie instanceof p?we.push([Xe,Ie]):(ge=ge||{},ge[Xe]=Ie)}),ge?Sn(JSON.stringify(ge,null,2)+` +`,null,!0):Sn(` +`),we.forEach(function(Ie){var Xe=Ie[0],St=Ie[1];Sn("["+Xe+"] =>",ie+2),Ii(St,ie+4)})}}e.exports={Node:p,Root:m,NodeList:d,Value:b,Literal:h,Symbol:v,Group:x,Array:E,Pair:g,Dict:w,Output:X,Capture:$,TemplateData:he,If:y,IfAsync:S,InlineIf:A,For:_,AsyncEach:P,AsyncAll:F,Macro:B,Caller:j,Import:L,FromImport:k,FunCall:T,Filter:N,FilterAsync:M,KeywordArgs:D,Block:V,Super:q,Extends:pe,Include:fe,Set:ee,Switch:oe,Case:U,LookupVal:C,BinOp:ze,In:ht,Is:R,Or:z,And:J,Not:H,Add:ne,Concat:K,Sub:Ae,Mul:ue,Div:Ne,FloorDiv:Nt,Mod:Vt,Pow:Ia,Neg:q_,Pos:X_,Compare:$_,CompareOperand:Y_,CallExtension:Nc,CallExtensionAsync:K_,printNodes:Ii}},function(e,t){},function(e,t,a){"use strict";function n(h,v){h.prototype=Object.create(v.prototype),h.prototype.constructor=h,i(h,v)}function i(h,v){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(E,g){return E.__proto__=g,E},i(h,v)}var r=a(8),o=a(17),s=a(3),l=a(0),u=l.TemplateError,c=a(2),f=c.Frame,p=a(1),b=p.Obj,d={"==":"==","===":"===","!=":"!=","!==":"!==","<":"<",">":">","<=":"<=",">=":">="},m=function(h){n(v,h);function v(){return h.apply(this,arguments)||this}var x=v.prototype;return x.init=function(g,w){this.templateName=g,this.codebuf=[],this.lastId=0,this.buffer=null,this.bufferStack=[],this._scopeClosers="",this.inBlock=!1,this.throwOnUndefined=w},x.fail=function(g,w,C){throw w!==void 0&&(w+=1),C!==void 0&&(C+=1),new u(g,w,C)},x._pushBuffer=function(){var g=this._tmpid();return this.bufferStack.push(this.buffer),this.buffer=g,this._emit("var "+this.buffer+' = "";'),g},x._popBuffer=function(){this.buffer=this.bufferStack.pop()},x._emit=function(g){this.codebuf.push(g)},x._emitLine=function(g){this._emit(g+` +`)},x._emitLines=function(){for(var g=this,w=arguments.length,C=new Array(w),y=0;y0&&S._emit(","),S.compile(A,w)}),y&&this._emit(y)},x._compileExpression=function(g,w){this.assertType(g,s.Literal,s.Symbol,s.Group,s.Array,s.Dict,s.FunCall,s.Caller,s.Filter,s.LookupVal,s.Compare,s.InlineIf,s.In,s.Is,s.And,s.Or,s.Not,s.Add,s.Concat,s.Sub,s.Mul,s.Div,s.FloorDiv,s.Mod,s.Pow,s.Neg,s.Pos,s.Compare,s.NodeList),this.compile(g,w)},x.assertType=function(g){for(var w=arguments.length,C=new Array(w>1?w-1:0),y=1;y0&&y._emit(","),F){y._emitLine("function(cb) {"),y._emitLine("if(!cb) { cb = function(err) { if(err) { throw err; }}}");var j=y._pushBuffer();y._withScopedSyntax(function(){y.compile(F,w),y._emitLine("cb(null, "+j+");")}),y._popBuffer(),y._emitLine("return "+j+";"),y._emitLine("}")}else y._emit("null")}),C){var P=this._tmpid();this._emitLine(", "+this._makeCallback(P)),this._emitLine(this.buffer+" += runtime.suppressValue("+P+", "+_+" && env.opts.autoescape);"),this._addScopeLevel()}else this._emit(")"),this._emit(", "+_+` && env.opts.autoescape); +`)},x.compileCallExtensionAsync=function(g,w){this.compileCallExtension(g,w,!0)},x.compileNodeList=function(g,w){this._compileChildren(g,w)},x.compileLiteral=function(g){if(typeof g.value=="string"){var w=g.value.replace(/\\/g,"\\\\");w=w.replace(/"/g,'\\"'),w=w.replace(/\n/g,"\\n"),w=w.replace(/\r/g,"\\r"),w=w.replace(/\t/g,"\\t"),w=w.replace(/\u2028/g,"\\u2028"),this._emit('"'+w+'"')}else g.value===null?this._emit("null"):this._emit(g.value.toString())},x.compileSymbol=function(g,w){var C=g.value,y=w.lookup(C);y?this._emit(y):this._emit('runtime.contextOrFrameLookup(context, frame, "'+C+'")')},x.compileGroup=function(g,w){this._compileAggregate(g,w,"(",")")},x.compileArray=function(g,w){this._compileAggregate(g,w,"[","]")},x.compileDict=function(g,w){this._compileAggregate(g,w,"{","}")},x.compilePair=function(g,w){var C=g.key,y=g.value;C instanceof s.Symbol?C=new s.Literal(C.lineno,C.colno,C.value):C instanceof s.Literal&&typeof C.value=="string"||this.fail("compilePair: Dict keys must be strings or names",C.lineno,C.colno),this.compile(C,w),this._emit(": "),this._compileExpression(y,w)},x.compileInlineIf=function(g,w){this._emit("("),this.compile(g.cond,w),this._emit("?"),this.compile(g.body,w),this._emit(":"),g.else_!==null?this.compile(g.else_,w):this._emit('""'),this._emit(")")},x.compileIn=function(g,w){this._emit("runtime.inOperator("),this.compile(g.left,w),this._emit(","),this.compile(g.right,w),this._emit(")")},x.compileIs=function(g,w){var C=g.right.name?g.right.name.value:g.right.value;this._emit('env.getTest("'+C+'").call(context, '),this.compile(g.left,w),g.right.args&&(this._emit(","),this.compile(g.right.args,w)),this._emit(") === true")},x._binOpEmitter=function(g,w,C){this.compile(g.left,w),this._emit(C),this.compile(g.right,w)},x.compileOr=function(g,w){return this._binOpEmitter(g,w," || ")},x.compileAnd=function(g,w){return this._binOpEmitter(g,w," && ")},x.compileAdd=function(g,w){return this._binOpEmitter(g,w," + ")},x.compileConcat=function(g,w){return this._binOpEmitter(g,w,' + "" + ')},x.compileSub=function(g,w){return this._binOpEmitter(g,w," - ")},x.compileMul=function(g,w){return this._binOpEmitter(g,w," * ")},x.compileDiv=function(g,w){return this._binOpEmitter(g,w," / ")},x.compileMod=function(g,w){return this._binOpEmitter(g,w," % ")},x.compileNot=function(g,w){this._emit("!"),this.compile(g.target,w)},x.compileFloorDiv=function(g,w){this._emit("Math.floor("),this.compile(g.left,w),this._emit(" / "),this.compile(g.right,w),this._emit(")")},x.compilePow=function(g,w){this._emit("Math.pow("),this.compile(g.left,w),this._emit(", "),this.compile(g.right,w),this._emit(")")},x.compileNeg=function(g,w){this._emit("-"),this.compile(g.target,w)},x.compilePos=function(g,w){this._emit("+"),this.compile(g.target,w)},x.compileCompare=function(g,w){var C=this;this.compile(g.expr,w),g.ops.forEach(function(y){C._emit(" "+d[y.type]+" "),C.compile(y.expr,w)})},x.compileLookupVal=function(g,w){this._emit("runtime.memberLookup(("),this._compileExpression(g.target,w),this._emit("),"),this._compileExpression(g.val,w),this._emit(")")},x._getNodeName=function(g){switch(g.typename){case"Symbol":return g.value;case"FunCall":return"the return value of ("+this._getNodeName(g.name)+")";case"LookupVal":return this._getNodeName(g.target)+'["'+this._getNodeName(g.val)+'"]';case"Literal":return g.value.toString();default:return"--expression--"}},x.compileFunCall=function(g,w){this._emit("(lineno = "+g.lineno+", colno = "+g.colno+", "),this._emit("runtime.callWrap("),this._compileExpression(g.name,w),this._emit(', "'+this._getNodeName(g.name).replace(/"/g,'\\"')+'", context, '),this._compileAggregate(g.args,w,"[","])"),this._emit(")")},x.compileFilter=function(g,w){var C=g.name;this.assertType(C,s.Symbol),this._emit('env.getFilter("'+C.value+'").call(context, '),this._compileAggregate(g.args,w),this._emit(")")},x.compileFilterAsync=function(g,w){var C=g.name,y=g.symbol.value;this.assertType(C,s.Symbol),w.set(y,y),this._emit('env.getFilter("'+C.value+'").call(context, '),this._compileAggregate(g.args,w),this._emitLine(", "+this._makeCallback(y)),this._addScopeLevel()},x.compileKeywordArgs=function(g,w){this._emit("runtime.makeKeywordArgs("),this.compileDict(g,w),this._emit(")")},x.compileSet=function(g,w){var C=this,y=[];g.targets.forEach(function(S){var A=S.value,_=w.lookup(A);_==null&&(_=C._tmpid(),C._emitLine("var "+_+";")),y.push(_)}),g.value?(this._emit(y.join(" = ")+" = "),this._compileExpression(g.value,w),this._emitLine(";")):(this._emit(y.join(" = ")+" = "),this.compile(g.body,w),this._emitLine(";")),g.targets.forEach(function(S,A){var _=y[A],P=S.value;C._emitLine('frame.set("'+P+'", '+_+", true);"),C._emitLine("if(frame.topLevel) {"),C._emitLine('context.setVariable("'+P+'", '+_+");"),C._emitLine("}"),P.charAt(0)!=="_"&&(C._emitLine("if(frame.topLevel) {"),C._emitLine('context.addExport("'+P+'", '+_+");"),C._emitLine("}"))})},x.compileSwitch=function(g,w){var C=this;this._emit("switch ("),this.compile(g.expr,w),this._emit(") {"),g.cases.forEach(function(y,S){C._emit("case "),C.compile(y.cond,w),C._emit(": "),C.compile(y.body,w),y.body.children.length&&C._emitLine("break;")}),g.default&&(this._emit("default:"),this.compile(g.default,w)),this._emit("}")},x.compileIf=function(g,w,C){var y=this;this._emit("if("),this._compileExpression(g.cond,w),this._emitLine(") {"),this._withScopedSyntax(function(){y.compile(g.body,w),C&&y._emit("cb()")}),g.else_?(this._emitLine(`} +else {`),this._withScopedSyntax(function(){y.compile(g.else_,w),C&&y._emit("cb()")})):C&&(this._emitLine(`} +else {`),this._emit("cb()")),this._emitLine("}")},x.compileIfAsync=function(g,w){this._emit("(function(cb) {"),this.compileIf(g,w,!0),this._emit("})("+this._makeCallback()),this._addScopeLevel()},x._emitLoopBindings=function(g,w,C,y){var S=this,A=[{name:"index",val:C+" + 1"},{name:"index0",val:C},{name:"revindex",val:y+" - "+C},{name:"revindex0",val:y+" - "+C+" - 1"},{name:"first",val:C+" === 0"},{name:"last",val:C+" === "+y+" - 1"},{name:"length",val:y}];A.forEach(function(_){S._emitLine('frame.set("loop.'+_.name+'", '+_.val+");")})},x.compileFor=function(g,w){var C=this,y=this._tmpid(),S=this._tmpid(),A=this._tmpid();if(w=w.push(),this._emitLine("frame = frame.push();"),this._emit("var "+A+" = "),this._compileExpression(g.arr,w),this._emitLine(";"),this._emit("if("+A+") {"),this._emitLine(A+" = runtime.fromIterator("+A+");"),g.name instanceof s.Array){this._emitLine("var "+y+";"),this._emitLine("if(runtime.isArray("+A+")) {"),this._emitLine("var "+S+" = "+A+".length;"),this._emitLine("for("+y+"=0; "+y+" < "+A+".length; "+y+"++) {"),g.name.children.forEach(function(k,T){var N=C._tmpid();C._emitLine("var "+N+" = "+A+"["+y+"]["+T+"];"),C._emitLine('frame.set("'+k+'", '+A+"["+y+"]["+T+"]);"),w.set(g.name.children[T].value,N)}),this._emitLoopBindings(g,A,y,S),this._withScopedSyntax(function(){C.compile(g.body,w)}),this._emitLine("}"),this._emitLine("} else {");var _=g.name.children,P=_[0],F=_[1],B=this._tmpid(),j=this._tmpid();w.set(P.value,B),w.set(F.value,j),this._emitLine(y+" = -1;"),this._emitLine("var "+S+" = runtime.keys("+A+").length;"),this._emitLine("for(var "+B+" in "+A+") {"),this._emitLine(y+"++;"),this._emitLine("var "+j+" = "+A+"["+B+"];"),this._emitLine('frame.set("'+P.value+'", '+B+");"),this._emitLine('frame.set("'+F.value+'", '+j+");"),this._emitLoopBindings(g,A,y,S),this._withScopedSyntax(function(){C.compile(g.body,w)}),this._emitLine("}"),this._emitLine("}")}else{var L=this._tmpid();w.set(g.name.value,L),this._emitLine("var "+S+" = "+A+".length;"),this._emitLine("for(var "+y+"=0; "+y+" < "+A+".length; "+y+"++) {"),this._emitLine("var "+L+" = "+A+"["+y+"];"),this._emitLine('frame.set("'+g.name.value+'", '+L+");"),this._emitLoopBindings(g,A,y,S),this._withScopedSyntax(function(){C.compile(g.body,w)}),this._emitLine("}")}this._emitLine("}"),g.else_&&(this._emitLine("if (!"+S+") {"),this.compile(g.else_,w),this._emitLine("}")),this._emitLine("frame = frame.pop();")},x._compileAsyncLoop=function(g,w,C){var y=this,S=this._tmpid(),A=this._tmpid(),_=this._tmpid(),P=C?"asyncAll":"asyncEach";if(w=w.push(),this._emitLine("frame = frame.push();"),this._emit("var "+_+" = runtime.fromIterator("),this._compileExpression(g.arr,w),this._emitLine(");"),g.name instanceof s.Array){var F=g.name.children.length;this._emit("runtime."+P+"("+_+", "+F+", function("),g.name.children.forEach(function(L){y._emit(L.value+",")}),this._emit(S+","+A+",next) {"),g.name.children.forEach(function(L){var k=L.value;w.set(k,k),y._emitLine('frame.set("'+k+'", '+k+");")})}else{var B=g.name.value;this._emitLine("runtime."+P+"("+_+", 1, function("+B+", "+S+", "+A+",next) {"),this._emitLine('frame.set("'+B+'", '+B+");"),w.set(B,B)}this._emitLoopBindings(g,_,S,A),this._withScopedSyntax(function(){var L;C&&(L=y._pushBuffer()),y.compile(g.body,w),y._emitLine("next("+S+(L?","+L:"")+");"),C&&y._popBuffer()});var j=this._tmpid();this._emitLine("}, "+this._makeCallback(j)),this._addScopeLevel(),C&&this._emitLine(this.buffer+" += "+j+";"),g.else_&&(this._emitLine("if (!"+_+".length) {"),this.compile(g.else_,w),this._emitLine("}")),this._emitLine("frame = frame.pop();")},x.compileAsyncEach=function(g,w){this._compileAsyncLoop(g,w)},x.compileAsyncAll=function(g,w){this._compileAsyncLoop(g,w,!0)},x._compileMacro=function(g,w){var C=this,y=[],S=null,A="macro_"+this._tmpid(),_=w!==void 0;g.args.children.forEach(function(k,T){T===g.args.children.length-1&&k instanceof s.Dict?S=k:(C.assertType(k,s.Symbol),y.push(k))});var P=[].concat(y.map(function(k){return"l_"+k.value}),["kwargs"]),F=y.map(function(k){return'"'+k.value+'"'}),B=(S&&S.children||[]).map(function(k){return'"'+k.key.value+'"'}),j;_?j=w.push(!0):j=new f,this._emitLines("var "+A+" = runtime.makeMacro(","["+F.join(", ")+"], ","["+B.join(", ")+"], ","function ("+P.join(", ")+") {","var callerFrame = frame;","frame = "+(_?"frame.push(true);":"new runtime.Frame();"),"kwargs = kwargs || {};",'if (Object.prototype.hasOwnProperty.call(kwargs, "caller")) {','frame.set("caller", kwargs.caller); }'),y.forEach(function(k){C._emitLine('frame.set("'+k.value+'", l_'+k.value+");"),j.set(k.value,"l_"+k.value)}),S&&S.children.forEach(function(k){var T=k.key.value;C._emit('frame.set("'+T+'", '),C._emit('Object.prototype.hasOwnProperty.call(kwargs, "'+T+'")'),C._emit(' ? kwargs["'+T+'"] : '),C._compileExpression(k.value,j),C._emit(");")});var L=this._pushBuffer();return this._withScopedSyntax(function(){C.compile(g.body,j)}),this._emitLine("frame = "+(_?"frame.pop();":"callerFrame;")),this._emitLine("return new runtime.SafeString("+L+");"),this._emitLine("});"),this._popBuffer(),A},x.compileMacro=function(g,w){var C=this._compileMacro(g),y=g.name.value;w.set(y,C),w.parent?this._emitLine('frame.set("'+y+'", '+C+");"):(g.name.value.charAt(0)!=="_"&&this._emitLine('context.addExport("'+y+'");'),this._emitLine('context.setVariable("'+y+'", '+C+");"))},x.compileCaller=function(g,w){this._emit("(function (){");var C=this._compileMacro(g,w);this._emit("return "+C+";})()")},x._compileGetTemplate=function(g,w,C,y){var S=this._tmpid(),A=this._templateName(),_=this._makeCallback(S),P=C?"true":"false",F=y?"true":"false";return this._emit("env.getTemplate("),this._compileExpression(g.template,w),this._emitLine(", "+P+", "+A+", "+F+", "+_),S},x.compileImport=function(g,w){var C=g.target.value,y=this._compileGetTemplate(g,w,!1,!1);this._addScopeLevel(),this._emitLine(y+".getExported("+(g.withContext?"context.getVariables(), frame, ":"")+this._makeCallback(y)),this._addScopeLevel(),w.set(C,y),w.parent?this._emitLine('frame.set("'+C+'", '+y+");"):this._emitLine('context.setVariable("'+C+'", '+y+");")},x.compileFromImport=function(g,w){var C=this,y=this._compileGetTemplate(g,w,!1,!1);this._addScopeLevel(),this._emitLine(y+".getExported("+(g.withContext?"context.getVariables(), frame, ":"")+this._makeCallback(y)),this._addScopeLevel(),g.names.children.forEach(function(S){var A,_,P=C._tmpid();S instanceof s.Pair?(A=S.key.value,_=S.value.value):(A=S.value,_=A),C._emitLine("if(Object.prototype.hasOwnProperty.call("+y+', "'+A+'")) {'),C._emitLine("var "+P+" = "+y+"."+A+";"),C._emitLine("} else {"),C._emitLine(`cb(new Error("cannot import '`+A+`'")); return;`),C._emitLine("}"),w.set(_,P),w.parent?C._emitLine('frame.set("'+_+'", '+P+");"):C._emitLine('context.setVariable("'+_+'", '+P+");")})},x.compileBlock=function(g){var w=this._tmpid();this.inBlock||this._emit('(parentTemplate ? function(e, c, f, r, cb) { cb(""); } : '),this._emit('context.getBlock("'+g.name.value+'")'),this.inBlock||this._emit(")"),this._emitLine("(env, context, frame, runtime, "+this._makeCallback(w)),this._emitLine(this.buffer+" += "+w+";"),this._addScopeLevel()},x.compileSuper=function(g,w){var C=g.blockName.value,y=g.symbol.value,S=this._makeCallback(y);this._emitLine('context.getSuper(env, "'+C+'", b_'+C+", frame, runtime, "+S),this._emitLine(y+" = runtime.markSafe("+y+");"),this._addScopeLevel(),w.set(y,y)},x.compileExtends=function(g,w){var C=this._tmpid(),y=this._compileGetTemplate(g,w,!0,!1);this._emitLine("parentTemplate = "+y),this._emitLine("for(var "+C+" in parentTemplate.blocks) {"),this._emitLine("context.addBlock("+C+", parentTemplate.blocks["+C+"]);"),this._emitLine("}"),this._addScopeLevel()},x.compileInclude=function(g,w){this._emitLine("var tasks = [];"),this._emitLine("tasks.push("),this._emitLine("function(callback) {");var C=this._compileGetTemplate(g,w,!1,g.ignoreMissing);this._emitLine("callback(null,"+C+");});"),this._emitLine("});");var y=this._tmpid();this._emitLine("tasks.push("),this._emitLine("function(template, callback){"),this._emitLine("template.render(context.getVariables(), frame, "+this._makeCallback(y)),this._emitLine("callback(null,"+y+");});"),this._emitLine("});"),this._emitLine("tasks.push("),this._emitLine("function(result, callback){"),this._emitLine(this.buffer+" += result;"),this._emitLine("callback(null);"),this._emitLine("});"),this._emitLine("env.waterfall(tasks, function(){"),this._addScopeLevel()},x.compileTemplateData=function(g,w){this.compileLiteral(g,w)},x.compileCapture=function(g,w){var C=this,y=this.buffer;this.buffer="output",this._emitLine("(function() {"),this._emitLine('var output = "";'),this._withScopedSyntax(function(){C.compile(g.body,w)}),this._emitLine("return output;"),this._emitLine("})()"),this.buffer=y},x.compileOutput=function(g,w){var C=this,y=g.children;y.forEach(function(S){S instanceof s.TemplateData?S.value&&(C._emit(C.buffer+" += "),C.compileLiteral(S,w),C._emitLine(";")):(C._emit(C.buffer+" += runtime.suppressValue("),C.throwOnUndefined&&C._emit("runtime.ensureDefined("),C.compile(S,w),C.throwOnUndefined&&C._emit(","+g.lineno+","+g.colno+")"),C._emit(`, env.opts.autoescape); +`))})},x.compileRoot=function(g,w){var C=this;w&&this.fail("compileRoot: root node can't have frame"),w=new f,this._emitFuncBegin(g,"root"),this._emitLine("var parentTemplate = null;"),this._compileChildren(g,w),this._emitLine("if(parentTemplate) {"),this._emitLine("parentTemplate.rootRenderFunc(env, context, frame, runtime, cb);"),this._emitLine("} else {"),this._emitLine("cb(null, "+this.buffer+");"),this._emitLine("}"),this._emitFuncEnd(!0),this.inBlock=!0;var y=[],S=g.findAll(s.Block);S.forEach(function(A,_){var P=A.name.value;if(y.indexOf(P)!==-1)throw new Error('Block "'+P+'" defined more than once.');y.push(P),C._emitFuncBegin(A,"b_"+P);var F=new f;C._emitLine("var frame = frame.push(true);"),C.compile(A.body,F),C._emitFuncEnd()}),this._emitLine("return {"),S.forEach(function(A,_){var P="b_"+A.name.value;C._emitLine(P+": "+P+",")}),this._emitLine(`root: root +};`)},x.compile=function(g,w){var C=this["compile"+g.typename];C?C.call(this,g,w):this.fail("compile: Cannot compile node: "+g.typename,g.lineno,g.colno)},x.getCode=function(){return this.codebuf.join("")},v}(b);e.exports={compile:function(v,x,E,g,w){w===void 0&&(w={});var C=new m(g,w.throwOnUndefined),y=(E||[]).map(function(A){return A.preprocess}).filter(function(A){return!!A}),S=y.reduce(function(A,_){return _(A)},v);return C.compile(o.transform(r.parse(S,E,w),x,g)),C.getCode()},Compiler:m}},function(e,t,a){"use strict";function n(l,u){l.prototype=Object.create(u.prototype),l.prototype.constructor=l,i(l,u)}function i(l,u){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(f,p){return f.__proto__=p,f},i(l,u)}var r=a(4),o=a(1),s=o.EmitterObj;e.exports=function(l){n(u,l);function u(){return l.apply(this,arguments)||this}var c=u.prototype;return c.resolve=function(p,b){return r.resolve(r.dirname(p),b)},c.isRelative=function(p){return p.indexOf("./")===0||p.indexOf("../")===0},u}(s)},function(e,t,a){"use strict";function n(F,B){F.prototype=Object.create(B.prototype),F.prototype.constructor=F,i(F,B)}function i(F,B){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(L,k){return L.__proto__=k,L},i(F,B)}var r=a(12),o=a(15),s=a(0),l=a(5),u=a(18),c=a(10),f=c.FileSystemLoader,p=c.WebLoader,b=c.PrecompiledLoader,d=a(20),m=a(21),h=a(1),v=h.Obj,x=h.EmitterObj,E=a(2),g=E.handleError,w=E.Frame,C=a(22);function y(F,B,j){r(function(){F(B,j)})}var S={type:"code",obj:{root:function(B,j,L,k,T){try{T(null,"")}catch(N){T(g(N,null,null))}}}},A=function(F){n(B,F);function B(){return F.apply(this,arguments)||this}var j=B.prototype;return j.init=function(k,T){var N=this;T=this.opts=T||{},this.opts.dev=!!T.dev,this.opts.autoescape=T.autoescape!=null?T.autoescape:!0,this.opts.throwOnUndefined=!!T.throwOnUndefined,this.opts.trimBlocks=!!T.trimBlocks,this.opts.lstripBlocks=!!T.lstripBlocks,this.loaders=[],k?this.loaders=s.isArray(k)?k:[k]:f?this.loaders=[new f("views")]:p&&(this.loaders=[new p("/views")]),typeof window!="undefined"&&window.nunjucksPrecompiled&&this.loaders.unshift(new b(window.nunjucksPrecompiled)),this._initLoaders(),this.globals=m(),this.filters={},this.tests={},this.asyncFilters=[],this.extensions={},this.extensionsList=[],s._entries(u).forEach(function(M){var D=M[0],V=M[1];return N.addFilter(D,V)}),s._entries(d).forEach(function(M){var D=M[0],V=M[1];return N.addTest(D,V)})},j._initLoaders=function(){var k=this;this.loaders.forEach(function(T){T.cache={},typeof T.on=="function"&&(T.on("update",function(N,M){T.cache[N]=null,k.emit("update",N,M,T)}),T.on("load",function(N,M){k.emit("load",N,M,T)}))})},j.invalidateCache=function(){this.loaders.forEach(function(k){k.cache={}})},j.addExtension=function(k,T){return T.__name=k,this.extensions[k]=T,this.extensionsList.push(T),this},j.removeExtension=function(k){var T=this.getExtension(k);T&&(this.extensionsList=s.without(this.extensionsList,T),delete this.extensions[k])},j.getExtension=function(k){return this.extensions[k]},j.hasExtension=function(k){return!!this.extensions[k]},j.addGlobal=function(k,T){return this.globals[k]=T,this},j.getGlobal=function(k){if(typeof this.globals[k]=="undefined")throw new Error("global not found: "+k);return this.globals[k]},j.addFilter=function(k,T,N){var M=T;return N&&this.asyncFilters.push(k),this.filters[k]=M,this},j.getFilter=function(k){if(!this.filters[k])throw new Error("filter not found: "+k);return this.filters[k]},j.addTest=function(k,T){return this.tests[k]=T,this},j.getTest=function(k){if(!this.tests[k])throw new Error("test not found: "+k);return this.tests[k]},j.resolveTemplate=function(k,T,N){var M=k.isRelative&&T?k.isRelative(N):!1;return M&&k.resolve?k.resolve(T,N):N},j.getTemplate=function(k,T,N,M,D){var V=this,q=this,Z=null;if(k&&k.raw&&(k=k.raw),s.isFunction(N)&&(D=N,N=null,T=T||!1),s.isFunction(T)&&(D=T,T=!1),k instanceof P)Z=k;else{if(typeof k!="string")throw new Error("template names must be a string: "+k);for(var pe=0;pe0&&!this.skip(r.TOKEN_COMMA)&&this.fail("parseFrom: expected comma",d.lineno,d.colno);var E=this.parsePrimary();if(E.value.charAt(0)==="_"&&this.fail("parseFrom: names starting with an underscore cannot be imported",E.lineno,E.colno),this.skipSymbol("as")){var g=this.parsePrimary();h.addChild(new o.Pair(E.lineno,E.colno,E,g))}else h.addChild(E);v=this.parseWithContext()}return new o.FromImport(d.lineno,d.colno,m,h,v)},p.parseBlock=function(){var d=this.peekToken();this.skipSymbol("block")||this.fail("parseBlock: expected block",d.lineno,d.colno);var m=new o.Block(d.lineno,d.colno);m.name=this.parsePrimary(),m.name instanceof o.Symbol||this.fail("parseBlock: variable name expected",d.lineno,d.colno),this.advanceAfterBlockEnd(d.value),m.body=this.parseUntilBlocks("endblock"),this.skipSymbol("endblock"),this.skipSymbol(m.name.value);var h=this.peekToken();return h||this.fail("parseBlock: expected endblock, got end of file"),this.advanceAfterBlockEnd(h.value),m},p.parseExtends=function(){var d="extends",m=this.peekToken();this.skipSymbol(d)||this.fail("parseTemplateRef: expected "+d);var h=new o.Extends(m.lineno,m.colno);return h.template=this.parseExpression(),this.advanceAfterBlockEnd(m.value),h},p.parseInclude=function(){var d="include",m=this.peekToken();this.skipSymbol(d)||this.fail("parseInclude: expected "+d);var h=new o.Include(m.lineno,m.colno);return h.template=this.parseExpression(),this.skipSymbol("ignore")&&this.skipSymbol("missing")&&(h.ignoreMissing=!0),this.advanceAfterBlockEnd(m.value),h},p.parseIf=function(){var d=this.peekToken(),m;this.skipSymbol("if")||this.skipSymbol("elif")||this.skipSymbol("elseif")?m=new o.If(d.lineno,d.colno):this.skipSymbol("ifAsync")?m=new o.IfAsync(d.lineno,d.colno):this.fail("parseIf: expected if, elif, or elseif",d.lineno,d.colno),m.cond=this.parseExpression(),this.advanceAfterBlockEnd(d.value),m.body=this.parseUntilBlocks("elif","elseif","else","endif");var h=this.peekToken();switch(h&&h.value){case"elseif":case"elif":m.else_=this.parseIf();break;case"else":this.advanceAfterBlockEnd(),m.else_=this.parseUntilBlocks("endif"),this.advanceAfterBlockEnd();break;case"endif":m.else_=null,this.advanceAfterBlockEnd();break;default:this.fail("parseIf: expected elif, else, or endif, got end of file")}return m},p.parseSet=function(){var d=this.peekToken();this.skipSymbol("set")||this.fail("parseSet: expected set",d.lineno,d.colno);for(var m=new o.Set(d.lineno,d.colno,[]),h;(h=this.parsePrimary())&&(m.targets.push(h),!!this.skip(r.TOKEN_COMMA)););return this.skipValue(r.TOKEN_OPERATOR,"=")?(m.value=this.parseExpression(),this.advanceAfterBlockEnd(d.value)):this.skip(r.TOKEN_BLOCK_END)?(m.body=new o.Capture(d.lineno,d.colno,this.parseUntilBlocks("endset")),m.value=null,this.advanceAfterBlockEnd()):this.fail("parseSet: expected = or block end in set tag",d.lineno,d.colno),m},p.parseSwitch=function(){var d="switch",m="endswitch",h="case",v="default",x=this.peekToken();!this.skipSymbol(d)&&!this.skipSymbol(h)&&!this.skipSymbol(v)&&this.fail('parseSwitch: expected "switch," "case" or "default"',x.lineno,x.colno);var E=this.parseExpression();this.advanceAfterBlockEnd(d),this.parseUntilBlocks(h,v,m);var g=this.peekToken(),w=[],C;do{this.skipSymbol(h);var y=this.parseExpression();this.advanceAfterBlockEnd(d);var S=this.parseUntilBlocks(h,v,m);w.push(new o.Case(g.line,g.col,y,S)),g=this.peekToken()}while(g&&g.value===h);switch(g.value){case v:this.advanceAfterBlockEnd(),C=this.parseUntilBlocks(m),this.advanceAfterBlockEnd();break;case m:this.advanceAfterBlockEnd();break;default:this.fail('parseSwitch: expected "case," "default" or "endswitch," got EOF.')}return new o.Switch(x.lineno,x.colno,E,w,C)},p.parseStatement=function(){var d=this.peekToken(),m;if(d.type!==r.TOKEN_SYMBOL&&this.fail("tag name expected",d.lineno,d.colno),this.breakOnBlocks&&l.indexOf(this.breakOnBlocks,d.value)!==-1)return null;switch(d.value){case"raw":return this.parseRaw();case"verbatim":return this.parseRaw("verbatim");case"if":case"ifAsync":return this.parseIf();case"for":case"asyncEach":case"asyncAll":return this.parseFor();case"block":return this.parseBlock();case"extends":return this.parseExtends();case"include":return this.parseInclude();case"set":return this.parseSet();case"macro":return this.parseMacro();case"call":return this.parseCall();case"import":return this.parseImport();case"from":return this.parseFrom();case"filter":return this.parseFilterStatement();case"switch":return this.parseSwitch();default:if(this.extensions.length)for(var h=0;h0;){var w=E[0],C=E[1],y=E[2];y===d?v+=1:y===m&&(v-=1),v===0?(x+=C,this.tokens.backN(w.length-C.length)):x+=w}return new o.Output(g.lineno,g.colno,[new o.TemplateData(g.lineno,g.colno,x)])},p.parsePostfix=function(d){for(var m,h=this.peekToken();h;){if(h.type===r.TOKEN_LEFT_PAREN)d=new o.FunCall(h.lineno,h.colno,d,this.parseSignature());else if(h.type===r.TOKEN_LEFT_BRACKET)m=this.parseAggregate(),m.children.length>1&&this.fail("invalid index"),d=new o.LookupVal(h.lineno,h.colno,d,m.children[0]);else if(h.type===r.TOKEN_OPERATOR&&h.value==="."){this.nextToken();var v=this.nextToken();v.type!==r.TOKEN_SYMBOL&&this.fail("expected name as lookup value, got "+v.value,v.lineno,v.colno),m=new o.Literal(v.lineno,v.colno,v.value),d=new o.LookupVal(h.lineno,h.colno,d,m)}else break;h=this.peekToken()}return d},p.parseExpression=function(){var d=this.parseInlineIf();return d},p.parseInlineIf=function(){var d=this.parseOr();if(this.skipSymbol("if")){var m=this.parseOr(),h=d;d=new o.InlineIf(d.lineno,d.colno),d.body=h,d.cond=m,this.skipSymbol("else")?d.else_=this.parseOr():d.else_=null}return d},p.parseOr=function(){for(var d=this.parseAnd();this.skipSymbol("or");){var m=this.parseAnd();d=new o.Or(d.lineno,d.colno,d,m)}return d},p.parseAnd=function(){for(var d=this.parseNot();this.skipSymbol("and");){var m=this.parseNot();d=new o.And(d.lineno,d.colno,d,m)}return d},p.parseNot=function(){var d=this.peekToken();return this.skipSymbol("not")?new o.Not(d.lineno,d.colno,this.parseNot()):this.parseIn()},p.parseIn=function(){for(var d=this.parseIs();;){var m=this.nextToken();if(!m)break;var h=m.type===r.TOKEN_SYMBOL&&m.value==="not";if(h||this.pushToken(m),this.skipSymbol("in")){var v=this.parseIs();d=new o.In(d.lineno,d.colno,d,v),h&&(d=new o.Not(d.lineno,d.colno,d))}else{h&&this.pushToken(m);break}}return d},p.parseIs=function(){var d=this.parseCompare();if(this.skipSymbol("is")){var m=this.skipSymbol("not"),h=this.parseCompare();d=new o.Is(d.lineno,d.colno,d,h),m&&(d=new o.Not(d.lineno,d.colno,d))}return d},p.parseCompare=function(){for(var d=["==","===","!=","!==","<",">","<=",">="],m=this.parseConcat(),h=[];;){var v=this.nextToken();if(v)if(d.indexOf(v.value)!==-1)h.push(new o.CompareOperand(v.lineno,v.colno,this.parseConcat(),v.value));else{this.pushToken(v);break}else break}return h.length?new o.Compare(h[0].lineno,h[0].colno,m,h):m},p.parseConcat=function(){for(var d=this.parseAdd();this.skipValue(r.TOKEN_TILDE,"~");){var m=this.parseAdd();d=new o.Concat(d.lineno,d.colno,d,m)}return d},p.parseAdd=function(){for(var d=this.parseSub();this.skipValue(r.TOKEN_OPERATOR,"+");){var m=this.parseSub();d=new o.Add(d.lineno,d.colno,d,m)}return d},p.parseSub=function(){for(var d=this.parseMul();this.skipValue(r.TOKEN_OPERATOR,"-");){var m=this.parseMul();d=new o.Sub(d.lineno,d.colno,d,m)}return d},p.parseMul=function(){for(var d=this.parseDiv();this.skipValue(r.TOKEN_OPERATOR,"*");){var m=this.parseDiv();d=new o.Mul(d.lineno,d.colno,d,m)}return d},p.parseDiv=function(){for(var d=this.parseFloorDiv();this.skipValue(r.TOKEN_OPERATOR,"/");){var m=this.parseFloorDiv();d=new o.Div(d.lineno,d.colno,d,m)}return d},p.parseFloorDiv=function(){for(var d=this.parseMod();this.skipValue(r.TOKEN_OPERATOR,"//");){var m=this.parseMod();d=new o.FloorDiv(d.lineno,d.colno,d,m)}return d},p.parseMod=function(){for(var d=this.parsePow();this.skipValue(r.TOKEN_OPERATOR,"%");){var m=this.parsePow();d=new o.Mod(d.lineno,d.colno,d,m)}return d},p.parsePow=function(){for(var d=this.parseUnary();this.skipValue(r.TOKEN_OPERATOR,"**");){var m=this.parseUnary();d=new o.Pow(d.lineno,d.colno,d,m)}return d},p.parseUnary=function(d){var m=this.peekToken(),h;return this.skipValue(r.TOKEN_OPERATOR,"-")?h=new o.Neg(m.lineno,m.colno,this.parseUnary(!0)):this.skipValue(r.TOKEN_OPERATOR,"+")?h=new o.Pos(m.lineno,m.colno,this.parseUnary(!0)):h=this.parsePrimary(),d||(h=this.parseFilter(h)),h},p.parsePrimary=function(d){var m=this.nextToken(),h,v=null;if(m?m.type===r.TOKEN_STRING?h=m.value:m.type===r.TOKEN_INT?h=parseInt(m.value,10):m.type===r.TOKEN_FLOAT?h=parseFloat(m.value):m.type===r.TOKEN_BOOLEAN?m.value==="true"?h=!0:m.value==="false"?h=!1:this.fail("invalid boolean: "+m.value,m.lineno,m.colno):m.type===r.TOKEN_NONE?h=null:m.type===r.TOKEN_REGEX&&(h=new RegExp(m.value.body,m.value.flags)):this.fail("expected expression, got end of file"),h!==void 0?v=new o.Literal(m.lineno,m.colno,h):m.type===r.TOKEN_SYMBOL?v=new o.Symbol(m.lineno,m.colno,m.value):(this.pushToken(m),v=this.parseAggregate()),d||(v=this.parsePostfix(v)),v)return v;throw this.error("unexpected token: "+m.value,m.lineno,m.colno)},p.parseFilterName=function(){for(var d=this.expect(r.TOKEN_SYMBOL),m=d.value;this.skipValue(r.TOKEN_OPERATOR,".");)m+="."+this.expect(r.TOKEN_SYMBOL).value;return new o.Symbol(d.lineno,d.colno,m)},p.parseFilterArgs=function(d){if(this.peekToken().type===r.TOKEN_LEFT_PAREN){var m=this.parsePostfix(d);return m.args.children}return[]},p.parseFilter=function(d){for(;this.skip(r.TOKEN_PIPE);){var m=this.parseFilterName();d=new o.Filter(m.lineno,m.colno,m,new o.NodeList(m.lineno,m.colno,[d].concat(this.parseFilterArgs(d))))}return d},p.parseFilterStatement=function(){var d=this.peekToken();this.skipSymbol("filter")||this.fail("parseFilterStatement: expected filter");var m=this.parseFilterName(),h=this.parseFilterArgs(m);this.advanceAfterBlockEnd(d.value);var v=new o.Capture(m.lineno,m.colno,this.parseUntilBlocks("endfilter"));this.advanceAfterBlockEnd();var x=new o.Filter(m.lineno,m.colno,m,new o.NodeList(m.lineno,m.colno,[v].concat(h)));return new o.Output(m.lineno,m.colno,[x])},p.parseAggregate=function(){var d=this.nextToken(),m;switch(d.type){case r.TOKEN_LEFT_PAREN:m=new o.Group(d.lineno,d.colno);break;case r.TOKEN_LEFT_BRACKET:m=new o.Array(d.lineno,d.colno);break;case r.TOKEN_LEFT_CURLY:m=new o.Dict(d.lineno,d.colno);break;default:return null}for(;;){var h=this.peekToken().type;if(h===r.TOKEN_RIGHT_PAREN||h===r.TOKEN_RIGHT_BRACKET||h===r.TOKEN_RIGHT_CURLY){this.nextToken();break}if(m.children.length>0&&(this.skip(r.TOKEN_COMMA)||this.fail("parseAggregate: expected comma after expression",d.lineno,d.colno)),m instanceof o.Dict){var v=this.parsePrimary();this.skip(r.TOKEN_COLON)||this.fail("parseAggregate: expected colon after dict key",d.lineno,d.colno);var x=this.parseExpression();m.addChild(new o.Pair(v.lineno,v.colno,v,x))}else{var E=this.parseExpression();m.addChild(E)}}return m},p.parseSignature=function(d,m){var h=this.peekToken();if(!m&&h.type!==r.TOKEN_LEFT_PAREN){if(d)return null;this.fail("expected arguments",h.lineno,h.colno)}h.type===r.TOKEN_LEFT_PAREN&&(h=this.nextToken());for(var v=new o.NodeList(h.lineno,h.colno),x=new o.KeywordArgs(h.lineno,h.colno),E=!1;;){if(h=this.peekToken(),!m&&h.type===r.TOKEN_RIGHT_PAREN){this.nextToken();break}else if(m&&h.type===r.TOKEN_BLOCK_END)break;if(E&&!this.skip(r.TOKEN_COMMA))this.fail("parseSignature: expected comma after expression",h.lineno,h.colno);else{var g=this.parseExpression();this.skipValue(r.TOKEN_OPERATOR,"=")?x.addChild(new o.Pair(g.lineno,g.colno,g,this.parseExpression())):v.addChild(g)}E=!0}return x.children.length&&v.addChild(x),v},p.parseUntilBlocks=function(){for(var d=this.breakOnBlocks,m=arguments.length,h=new Array(m),v=0;v=","//","**"],J=he+this.current(),H;switch(n.indexOf(z,J)!==-1&&(this.forward(),he=J,n.indexOf(z,J+this.current())!==-1&&(he=J+this.current(),this.forward())),he){case"(":H=w;break;case")":H=C;break;case"[":H=y;break;case"]":H=S;break;case"{":H=A;break;case"}":H=_;break;case",":H=F;break;case":":H=B;break;case"~":H=j;break;case"|":H=L;break;default:H=P}return Z(H,he,U,X)}else if($=this._extractUntil(i+r),$.match(/^[-+]?[0-9]+$/))if(this.current()==="."){this.forward();var ne=this._extract(o);return Z(T,$+"."+ne,U,X)}else return Z(k,$,U,X);else{if($.match(/^(true|false)$/))return Z(N,$,U,X);if($==="none")return Z(M,$,U,X);if($==="null")return Z(M,$,U,X);if($)return Z(D,$,U,X);throw new Error("Unexpected value while parsing: "+$)}}else{var K=this.tags.BLOCK_START.charAt(0)+this.tags.VARIABLE_START.charAt(0)+this.tags.COMMENT_START.charAt(0)+this.tags.COMMENT_END.charAt(0);if(this.isFinished())return null;if(($=this._extractString(this.tags.BLOCK_START+"-"))||($=this._extractString(this.tags.BLOCK_START)))return this.in_code=!0,Z(h,$,U,X);if(($=this._extractString(this.tags.VARIABLE_START+"-"))||($=this._extractString(this.tags.VARIABLE_START)))return this.in_code=!0,Z(x,$,U,X);$="";var Ae,ue=!1;for(this._matches(this.tags.COMMENT_START)&&(ue=!0,$=this._extractString(this.tags.COMMENT_START));(Ae=this._extractUntil(K))!==null;)if($+=Ae,(this._matches(this.tags.BLOCK_START)||this._matches(this.tags.VARIABLE_START)||this._matches(this.tags.COMMENT_START))&&!ue){if(this.lstripBlocks&&this._matches(this.tags.BLOCK_START)&&this.colno>0&&this.colno<=$.length){var Ne=$.slice(-this.colno);if(/^\s+$/.test(Ne)&&($=$.slice(0,-this.colno),!$.length))return this.nextToken()}break}else if(this._matches(this.tags.COMMENT_END)){if(!ue)throw new Error("unexpected end of comment");$+=this._extractString(this.tags.COMMENT_END);break}else $+=this.current(),this.forward();if(Ae===null&&ue)throw new Error("expected end of comment, got end of file");return Z(ue?g:m,$,U,X)}},ee._parseString=function(U){this.forward();for(var X="";!this.isFinished()&&this.current()!==U;){var $=this.current();if($==="\\"){switch(this.forward(),this.current()){case"n":X+=` +`;break;case"t":X+=" ";break;case"r":X+="\r";break;default:X+=this.current()}this.forward()}else X+=$,this.forward()}return this.forward(),X},ee._matches=function(U){if(this.index+U.length>this.len)return null;var X=this.str.slice(this.index,this.index+U.length);return X===U},ee._extractString=function(U){return this._matches(U)?(this.forwardN(U.length),U):null},ee._extractUntil=function(U){return this._extractMatching(!0,U||"")},ee._extract=function(U){return this._extractMatching(!1,U)},ee._extractMatching=function(U,X){if(this.isFinished())return null;var $=X.indexOf(this.current());if(U&&$===-1||!U&&$!==-1){var he=this.current();this.forward();for(var qe=X.indexOf(this.current());(U&&qe===-1||!U&&qe!==-1)&&!this.isFinished();)he+=this.current(),this.forward(),qe=X.indexOf(this.current());return he}return""},ee._extractRegex=function(U){var X=this.currentStr().match(U);return X?(this.forwardN(X[0].length),X):null},ee.isFinished=function(){return this.index>=this.len},ee.forwardN=function(U){for(var X=0;Xu){for(var h=0,v=r.length-l;h0&&(B=A[0]),B instanceof Error)throw B;var j=new Error("Unhandled error."+(B?" ("+B.message+")":""));throw j.context=B,j}var L=F[S];if(L===void 0)return!1;if(typeof L=="function")i(L,this,A);else for(var k=L.length,T=v(L,k),_=0;_0&&B.length>P&&!B.warned){B.warned=!0;var j=new Error("Possible EventEmitter memory leak detected. "+B.length+" "+String(S)+" listeners added. Use emitter.setMaxListeners() to increase limit");j.name="MaxListenersExceededWarning",j.emitter=y,j.type=S,j.count=B.length,o(j)}return y}l.prototype.addListener=function(S,A){return p(this,S,A,!1)},l.prototype.on=l.prototype.addListener,l.prototype.prependListener=function(S,A){return p(this,S,A,!0)};function b(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(y,S,A){var _={fired:!1,wrapFn:void 0,target:y,type:S,listener:A},P=b.bind(_);return P.listener=A,_.wrapFn=P,P}l.prototype.once=function(S,A){return c(A),this.on(S,d(this,S,A)),this},l.prototype.prependOnceListener=function(S,A){return c(A),this.prependListener(S,d(this,S,A)),this},l.prototype.removeListener=function(S,A){var _,P,F,B,j;if(c(A),P=this._events,P===void 0)return this;if(_=P[S],_===void 0)return this;if(_===A||_.listener===A)--this._eventsCount===0?this._events=Object.create(null):(delete P[S],P.removeListener&&this.emit("removeListener",S,_.listener||A));else if(typeof _!="function"){for(F=-1,B=_.length-1;B>=0;B--)if(_[B]===A||_[B].listener===A){j=_[B].listener,F=B;break}if(F<0)return this;F===0?_.shift():x(_,F),_.length===1&&(P[S]=_[0]),P.removeListener!==void 0&&this.emit("removeListener",S,j||A)}return this},l.prototype.off=l.prototype.removeListener,l.prototype.removeAllListeners=function(S){var A,_,P;if(_=this._events,_===void 0)return this;if(_.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):_[S]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete _[S]),this;if(arguments.length===0){var F=Object.keys(_),B;for(P=0;P=0;P--)this.removeListener(S,A[P]);return this};function m(y,S,A){var _=y._events;if(_===void 0)return[];var P=_[S];return P===void 0?[]:typeof P=="function"?A?[P.listener||P]:[P]:A?E(P):v(P,P.length)}l.prototype.listeners=function(S){return m(this,S,!0)},l.prototype.rawListeners=function(S){return m(this,S,!1)},l.listenerCount=function(y,S){return typeof y.listenerCount=="function"?y.listenerCount(S):h.call(y,S)},l.prototype.listenerCount=h;function h(y){var S=this._events;if(S!==void 0){var A=S[y];if(typeof A=="function")return 1;if(A!==void 0)return A.length}return 0}l.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]};function v(y,S){for(var A=new Array(S),_=0;_=z)return R;var J=z-R.length,H=n.repeat(" ",J/2-J%2),ne=n.repeat(" ",J/2);return i.copySafeness(R,H+R+ne)}r.center=c;function f(R,z,J){return J?R||z:R!==void 0?R:z}r.default=f;function p(R,z,J){if(!n.isObject(R))throw new n.TemplateError("dictsort filter: val must be an object");var H=[];for(var ne in R)H.push([ne,R[ne]]);var K;if(J===void 0||J==="key")K=0;else if(J==="value")K=1;else throw new n.TemplateError("dictsort filter: You can only sort by either key or value");return H.sort(function(Ae,ue){var Ne=Ae[K],Nt=ue[K];return z||(n.isString(Ne)&&(Ne=Ne.toUpperCase()),n.isString(Nt)&&(Nt=Nt.toUpperCase())),Ne>Nt?1:Ne===Nt?0:-1}),H}r.dictsort=p;function b(R,z){return JSON.stringify(R,null,z)}r.dump=b;function d(R){return R instanceof i.SafeString?R:(R=R==null?"":R,i.markSafe(n.escape(R.toString())))}r.escape=d;function m(R){return R instanceof i.SafeString?R:(R=R==null?"":R,i.markSafe(R.toString()))}r.safe=m;function h(R){return R[0]}r.first=h;function v(R){return R=R==null?"":R,i.markSafe(n.escape(R.toString()))}r.forceescape=v;function x(R,z){return n.groupBy(R,z,this.env.opts.throwOnUndefined)}r.groupby=x;function E(R,z,J){if(R=o(R,""),R==="")return"";z=z||4;var H=R.split(` +`),ne=n.repeat(" ",z),K=H.map(function(Ae,ue){return ue===0&&!J?Ae:""+ne+Ae}).join(` +`);return i.copySafeness(R,K)}r.indent=E;function g(R,z,J){return z=z||"",J&&(R=n.map(R,function(H){return H[J]})),R.join(z)}r.join=g;function w(R){return R[R.length-1]}r.last=w;function C(R){var z=o(R,"");return z!==void 0?typeof Map=="function"&&z instanceof Map||typeof Set=="function"&&z instanceof Set?z.size:n.isObject(z)&&!(z instanceof i.SafeString)?n.keys(z).length:z.length:0}r.length=C;function y(R){if(n.isString(R))return R.split("");if(n.isObject(R))return n._entries(R||{}).map(function(z){var J=z[0],H=z[1];return{key:J,value:H}});if(n.isArray(R))return R;throw new n.TemplateError("list filter: type not iterable")}r.list=y;function S(R){return R=o(R,""),R.toLowerCase()}r.lower=S;function A(R){return R==null?"":i.copySafeness(R,R.replace(/\r\n|\n/g,`
    +`))}r.nl2br=A;function _(R){return R[Math.floor(Math.random()*R.length)]}r.random=_;function P(R){function z(J,H,ne){H===void 0&&(H="truthy");var K=this,Ae=K.env.getTest(H);return n.toArray(J).filter(function(Ne){return Ae.call(K,Ne,ne)===R})}return z}r.reject=P(!1);function F(R,z){return R.filter(function(J){return!J[z]})}r.rejectattr=F,r.select=P(!0);function B(R,z){return R.filter(function(J){return!!J[z]})}r.selectattr=B;function j(R,z,J,H){var ne=R;if(z instanceof RegExp)return R.replace(z,J);typeof H=="undefined"&&(H=-1);var K="";if(typeof z=="number")z=""+z;else if(typeof z!="string")return R;if(typeof R=="number"&&(R=""+R),typeof R!="string"&&!(R instanceof i.SafeString))return R;if(z==="")return K=J+R.split("").join(J)+J,i.copySafeness(R,K);var Ae=R.indexOf(z);if(H===0||Ae===-1)return R;for(var ue=0,Ne=0;Ae>-1&&(H===-1||Ne=ne&&Vt.push(J),K.push(Vt)}return K}r.slice=T;function N(R,z,J){return J===void 0&&(J=0),z&&(R=n.map(R,function(H){return H[z]})),J+R.reduce(function(H,ne){return H+ne},0)}r.sum=N,r.sort=i.makeMacro(["value","reverse","case_sensitive","attribute"],[],function(z,J,H,ne){var K=this,Ae=n.map(z,function(Ne){return Ne}),ue=n.getAttrGetter(ne);return Ae.sort(function(Ne,Nt){var Vt=ne?ue(Ne):Ne,Ia=ne?ue(Nt):Nt;if(K.env.opts.throwOnUndefined&&ne&&(Vt===void 0||Ia===void 0))throw new TypeError('sort: attribute "'+ne+'" resolved to undefined');return!H&&n.isString(Vt)&&n.isString(Ia)&&(Vt=Vt.toLowerCase(),Ia=Ia.toLowerCase()),VtIa?J?-1:1:0}),Ae});function M(R){return i.copySafeness(R,R)}r.string=M;function D(R,z){R=o(R,"");var J=/<\/?([a-z][a-z0-9]*)\b[^>]*>|/gi,H=q(R.replace(J,"")),ne="";return z?ne=H.replace(/^ +| +$/gm,"").replace(/ +/g," ").replace(/(\r\n)/g,` +`).replace(/\n\n\n+/g,` + +`):ne=H.replace(/\s+/gi," "),i.copySafeness(R,ne)}r.striptags=D;function V(R){R=o(R,"");var z=R.split(" ").map(function(J){return u(J)});return i.copySafeness(R,z.join(" "))}r.title=V;function q(R){return i.copySafeness(R,R.replace(/^\s*|\s*$/g,""))}r.trim=q;function Z(R,z,J,H){var ne=R;if(R=o(R,""),z=z||255,R.length<=z)return R;if(J)R=R.substring(0,z);else{var K=R.lastIndexOf(" ",z);K===-1&&(K=z),R=R.substring(0,K)}return R+=H!=null?H:"...",i.copySafeness(ne,R)}r.truncate=Z;function pe(R){return R=o(R,""),R.toUpperCase()}r.upper=pe;function fe(R){var z=encodeURIComponent;if(n.isString(R))return z(R);var J=n.isArray(R)?R:n._entries(R);return J.map(function(H){var ne=H[0],K=H[1];return z(ne)+"="+z(K)}).join("&")}r.urlencode=fe;var ee=/^(?:\(|<|<)?(.*?)(?:\.|,|\)|\n|>)?$/,oe=/^[\w.!#$%&'*+\-\/=?\^`{|}~]+@[a-z\d\-]+(\.[a-z\d\-]+)+$/i,U=/^https?:\/\/.*$/,X=/^www\./,$=/\.(?:org|net|com)(?:\:|\/|$)/;function he(R,z,J){s(z)&&(z=1/0);var H=J===!0?' rel="nofollow"':"",ne=R.split(/(\s+)/).filter(function(K){return K&&K.length}).map(function(K){var Ae=K.match(ee),ue=Ae?Ae[1]:K,Ne=ue.substr(0,z);return U.test(ue)?'"+Ne+"":X.test(ue)?'"+Ne+"":oe.test(ue)?''+ue+"":$.test(ue)?'"+Ne+"":K});return ne.join("")}r.urlize=he;function qe(R){R=o(R,"");var z=R?R.match(/\w+/g):null;return z?z.length:null}r.wordcount=qe;function ze(R,z){var J=parseFloat(R);return s(J)?z:J}r.float=ze;var ht=i.makeMacro(["value","default","base"],[],function(z,J,H){H===void 0&&(H=10);var ne=parseInt(z,H);return s(ne)?J:ne});r.int=ht,r.d=r.default,r.e=r.escape},function(e,t,a){"use strict";function n(s,l){s.prototype=Object.create(l.prototype),s.prototype.constructor=s,i(s,l)}function i(s,l){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(c,f){return c.__proto__=f,c},i(s,l)}var r=a(6),o=function(s){n(l,s);function l(c){var f;return f=s.call(this)||this,f.precompiled=c||{},f}var u=l.prototype;return u.getSource=function(f){return this.precompiled[f]?{src:{type:"code",obj:this.precompiled[f]},path:f}:null},l}(r);e.exports={PrecompiledLoader:o}},function(e,t,a){"use strict";var n=a(2).SafeString;function i(_){return typeof _=="function"}t.callable=i;function r(_){return _!==void 0}t.defined=r;function o(_,P){return _%P===0}t.divisibleby=o;function s(_){return _ instanceof n}t.escaped=s;function l(_,P){return _===P}t.equalto=l,t.eq=t.equalto,t.sameas=t.equalto;function u(_){return _%2===0}t.even=u;function c(_){return!_}t.falsy=c;function f(_,P){return _>=P}t.ge=f;function p(_,P){return _>P}t.greaterthan=p,t.gt=t.greaterthan;function b(_,P){return _<=P}t.le=b;function d(_,P){return _=o.length&&(s=0),this.current=o[s],this.current}}}function i(o){o=o||",";var s=!0;return function(){var l=s?"":o;return s=!1,l}}function r(){return{range:function(s,l,u){typeof l=="undefined"?(l=s,s=0,u=1):u||(u=1);var c=[];if(u>0)for(var f=s;fl;p+=u)c.push(p);return c},cycler:function(){return n(Array.prototype.slice.call(arguments))},joiner:function(s){return i(s)}}}e.exports=r},function(e,t,a){var n=a(4);e.exports=function(r,o){function s(l,u){if(this.name=l,this.path=l,this.defaultEngine=u.defaultEngine,this.ext=n.extname(l),!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");this.ext||(this.name+=this.ext=(this.defaultEngine[0]!=="."?".":"")+this.defaultEngine)}return s.prototype.render=function(u,c){r.render(this.name,u,c)},o.set("view",s),o.set("nunjucksEnv",r),r}},function(e,t,a){"use strict";var n=a(4),i=a(4),r=a(0),o=r._prettifyError,s=a(5),l=a(7),u=l.Environment,c=a(24);function f(m,h){return Array.isArray(h)?h.some(function(v){return m.match(v)}):!1}function p(m,h){h=h||{},h.isString=!0;var v=h.env||new u([]),x=h.wrapper||c;if(!h.name)throw new Error('the "name" option is required when compiling a string');return x([d(m,h.name,v)],h)}function b(m,h){h=h||{};var v=h.env||new u([]),x=h.wrapper||c;if(h.isString)return p(m,h);var E=n.existsSync(m)&&n.statSync(m),g=[],w=[];function C(A){n.readdirSync(A).forEach(function(_){var P=i.join(A,_),F=P.substr(i.join(m,"/").length),B=n.statSync(P);B&&B.isDirectory()?(F+="/",f(F,h.exclude)||C(P)):f(F,h.include)&&w.push(P)})}if(E.isFile())g.push(d(n.readFileSync(m,"utf-8"),h.name||m,v));else if(E.isDirectory()){C(m);for(var y=0;yw.length||S>0&&_>=y||S<0&&_<=y);_+=S)A.push(i.memberLookup(w,_));return A}function x(w,C){return Object.prototype.hasOwnProperty.call(w,C)}var E={pop:function(C){if(C===void 0)return this.pop();if(C>=this.length||C<0)throw new Error("KeyError");return this.splice(C,1)},append:function(C){return this.push(C)},remove:function(C){for(var y=0;y{var Rs=require("buffer"),ea=Rs.Buffer;function Qx(e,t){for(var a in e)t[a]=e[a]}ea.from&&ea.alloc&&ea.allocUnsafe&&ea.allocUnsafeSlow?ey.exports=Rs:(Qx(Rs,Sp),Sp.Buffer=pn);function pn(e,t,a){return ea(e,t,a)}pn.prototype=Object.create(ea.prototype);Qx(ea,pn);pn.from=function(e,t,a){if(typeof e=="number")throw new TypeError("Argument must not be a number");return ea(e,t,a)};pn.alloc=function(e,t,a){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=ea(e);return t!==void 0?typeof a=="string"?n.fill(t,a):n.fill(t):n.fill(0),n};pn.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return ea(e)};pn.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return Rs.SlowBuffer(e)}});var oy=O((JG,Cp)=>{"use strict";Cp.exports=VO;Cp.exports.parse=qO;var ty=require("path").basename,BO=Bs().Buffer,NO=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,jO=/%[0-9A-Fa-f]{2}/,LO=/%([0-9A-Fa-f]{2})/g,ny=/[^\x20-\x7e\xa0-\xff]/g,MO=/\\([\u0000-\u007f])/g,DO=/([\\"])/g,ay=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g,zO=/^[\x20-\x7e\x80-\xff]+$/,GO=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,HO=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/,WO=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function VO(e,t){var a=t||{},n=a.type||"attachment",i=UO(e,a.fallback);return JO(new ry(n,i))}function UO(e,t){if(e!==void 0){var a={};if(typeof e!="string")throw new TypeError("filename must be a string");if(t===void 0&&(t=!0),typeof t!="string"&&typeof t!="boolean")throw new TypeError("fallback must be a string or boolean");if(typeof t=="string"&&ny.test(t))throw new TypeError("fallback must be ISO-8859-1 string");var n=ty(e),i=zO.test(n),r=typeof t!="string"?t&&iy(n):ty(t),o=typeof r=="string"&&r!==n;return(o||!i||jO.test(n))&&(a["filename*"]=n),(i||o)&&(a.filename=o?r:n),a}}function JO(e){var t=e.parameters,a=e.type;if(!a||typeof a!="string"||!GO.test(a))throw new TypeError("invalid type");var n=String(a).toLowerCase();if(t&&typeof t=="object")for(var i,r=Object.keys(t).sort(),o=0;o{"use strict";sy.exports=e=>{let t=new Uint8Array(e);if(!(t&&t.length>1))return null;let a=(n,i)=>{i=Object.assign({offset:0},i);for(let r=0;rs[o]===66&&s[o+1]===130);if(i>=0){let r=i+3,o=s=>Array.from(s).every((l,u)=>n[r+u]===l.charCodeAt(0));if(o("matroska"))return{ext:"mkv",mime:"video/x-matroska"};if(o("webm"))return{ext:"webm",mime:"video/webm"}}}return a([0,0,0,20,102,116,121,112,113,116,32,32])||a([102,114,101,101],{offset:4})||a([102,116,121,112,113,116,32,32],{offset:4})||a([109,100,97,116],{offset:4})||a([119,105,100,101],{offset:4})?{ext:"mov",mime:"video/quicktime"}:a([82,73,70,70])&&a([65,86,73],{offset:8})?{ext:"avi",mime:"video/x-msvideo"}:a([48,38,178,117,142,102,207,17,166,217])?{ext:"wmv",mime:"video/x-ms-wmv"}:a([0,0,1,186])?{ext:"mpg",mime:"video/mpeg"}:a([73,68,51])||a([255,251])?{ext:"mp3",mime:"audio/mpeg"}:a([102,116,121,112,77,52,65],{offset:4})||a([77,52,65,32])?{ext:"m4a",mime:"audio/m4a"}:a([79,112,117,115,72,101,97,100],{offset:28})?{ext:"opus",mime:"audio/opus"}:a([79,103,103,83])?{ext:"ogg",mime:"audio/ogg"}:a([102,76,97,67])?{ext:"flac",mime:"audio/x-flac"}:a([82,73,70,70])&&a([87,65,86,69],{offset:8})?{ext:"wav",mime:"audio/x-wav"}:a([35,33,65,77,82,10])?{ext:"amr",mime:"audio/amr"}:a([37,80,68,70])?{ext:"pdf",mime:"application/pdf"}:a([77,90])?{ext:"exe",mime:"application/x-msdownload"}:(t[0]===67||t[0]===70)&&a([87,83],{offset:1})?{ext:"swf",mime:"application/x-shockwave-flash"}:a([123,92,114,116,102])?{ext:"rtf",mime:"application/rtf"}:a([0,97,115,109])?{ext:"wasm",mime:"application/wasm"}:a([119,79,70,70])&&(a([0,1,0,0],{offset:4})||a([79,84,84,79],{offset:4}))?{ext:"woff",mime:"application/font-woff"}:a([119,79,70,50])&&(a([0,1,0,0],{offset:4})||a([79,84,84,79],{offset:4}))?{ext:"woff2",mime:"application/font-woff"}:a([76,80],{offset:34})&&(a([0,0,1],{offset:8})||a([1,0,2],{offset:8})||a([2,0,2],{offset:8}))?{ext:"eot",mime:"application/octet-stream"}:a([0,1,0,0,0])?{ext:"ttf",mime:"application/font-sfnt"}:a([79,84,84,79,0])?{ext:"otf",mime:"application/font-sfnt"}:a([0,0,1,0])?{ext:"ico",mime:"image/x-icon"}:a([70,76,86,1])?{ext:"flv",mime:"video/x-flv"}:a([37,33])?{ext:"ps",mime:"application/postscript"}:a([253,55,122,88,90,0])?{ext:"xz",mime:"application/x-xz"}:a([83,81,76,105])?{ext:"sqlite",mime:"application/x-sqlite3"}:a([78,69,83,26])?{ext:"nes",mime:"application/x-nintendo-nes-rom"}:a([67,114,50,52])?{ext:"crx",mime:"application/x-google-chrome-extension"}:a([77,83,67,70])||a([73,83,99,40])?{ext:"cab",mime:"application/vnd.ms-cab-compressed"}:a([33,60,97,114,99,104,62,10,100,101,98,105,97,110,45,98,105,110,97,114,121])?{ext:"deb",mime:"application/x-deb"}:a([33,60,97,114,99,104,62])?{ext:"ar",mime:"application/x-unix-archive"}:a([237,171,238,219])?{ext:"rpm",mime:"application/x-rpm"}:a([31,160])||a([31,157])?{ext:"Z",mime:"application/x-compress"}:a([76,90,73,80])?{ext:"lz",mime:"application/x-lzip"}:a([208,207,17,224,161,177,26,225])?{ext:"msi",mime:"application/x-msi"}:a([6,14,43,52,2,5,1,1,13,1,2,1,1,2])?{ext:"mxf",mime:"application/mxf"}:a([66,76,69,78,68,69,82])?{ext:"blend",mime:"application/x-blender"}:null}});var uy=O((qG,cy)=>{"use strict";var QO=ly(),e3=new Set(["7z","bz2","gz","rar","tar","zip","xz","gz"]);cy.exports=e=>{let t=QO(e);return e3.has(t&&t.ext)?t:null}});var dy=O((XG,py)=>{var Na=require("constants"),t3=process.cwd,Ns=null,a3=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return Ns||(Ns=t3.call(process)),Ns};try{process.cwd()}catch(e){}typeof process.chdir=="function"&&(Ap=process.chdir,process.chdir=function(e){Ns=null,Ap.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,Ap));var Ap;py.exports=n3;function n3(e){Na.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(e),e.lutimes||a(e),e.chown=r(e.chown),e.fchown=r(e.fchown),e.lchown=r(e.lchown),e.chmod=n(e.chmod),e.fchmod=n(e.fchmod),e.lchmod=n(e.lchmod),e.chownSync=o(e.chownSync),e.fchownSync=o(e.fchownSync),e.lchownSync=o(e.lchownSync),e.chmodSync=i(e.chmodSync),e.fchmodSync=i(e.fchmodSync),e.lchmodSync=i(e.lchmodSync),e.stat=s(e.stat),e.fstat=s(e.fstat),e.lstat=s(e.lstat),e.statSync=l(e.statSync),e.fstatSync=l(e.fstatSync),e.lstatSync=l(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(c,f,p){p&&process.nextTick(p)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(c,f,p,b){b&&process.nextTick(b)},e.lchownSync=function(){}),a3==="win32"&&(e.rename=typeof e.rename!="function"?e.rename:function(c){function f(p,b,d){var m=Date.now(),h=0;c(p,b,function v(x){if(x&&(x.code==="EACCES"||x.code==="EPERM"||x.code==="EBUSY")&&Date.now()-m<6e4){setTimeout(function(){e.stat(b,function(E,g){E&&E.code==="ENOENT"?c(p,b,v):d(x)})},h),h<100&&(h+=10);return}d&&d(x)})}return Object.setPrototypeOf&&Object.setPrototypeOf(f,c),f}(e.rename)),e.read=typeof e.read!="function"?e.read:function(c){function f(p,b,d,m,h,v){var x;if(v&&typeof v=="function"){var E=0;x=function(g,w,C){if(g&&g.code==="EAGAIN"&&E<10)return E++,c.call(e,p,b,d,m,h,x);v.apply(this,arguments)}}return c.call(e,p,b,d,m,h,x)}return Object.setPrototypeOf&&Object.setPrototypeOf(f,c),f}(e.read),e.readSync=typeof e.readSync!="function"?e.readSync:function(c){return function(f,p,b,d,m){for(var h=0;;)try{return c.call(e,f,p,b,d,m)}catch(v){if(v.code==="EAGAIN"&&h<10){h++;continue}throw v}}}(e.readSync);function t(c){c.lchmod=function(f,p,b){c.open(f,Na.O_WRONLY|Na.O_SYMLINK,p,function(d,m){if(d){b&&b(d);return}c.fchmod(m,p,function(h){c.close(m,function(v){b&&b(h||v)})})})},c.lchmodSync=function(f,p){var b=c.openSync(f,Na.O_WRONLY|Na.O_SYMLINK,p),d=!0,m;try{m=c.fchmodSync(b,p),d=!1}finally{if(d)try{c.closeSync(b)}catch(h){}else c.closeSync(b)}return m}}function a(c){Na.hasOwnProperty("O_SYMLINK")&&c.futimes?(c.lutimes=function(f,p,b,d){c.open(f,Na.O_SYMLINK,function(m,h){if(m){d&&d(m);return}c.futimes(h,p,b,function(v){c.close(h,function(x){d&&d(v||x)})})})},c.lutimesSync=function(f,p,b){var d=c.openSync(f,Na.O_SYMLINK),m,h=!0;try{m=c.futimesSync(d,p,b),h=!1}finally{if(h)try{c.closeSync(d)}catch(v){}else c.closeSync(d)}return m}):c.futimes&&(c.lutimes=function(f,p,b,d){d&&process.nextTick(d)},c.lutimesSync=function(){})}function n(c){return c&&function(f,p,b){return c.call(e,f,p,function(d){u(d)&&(d=null),b&&b.apply(this,arguments)})}}function i(c){return c&&function(f,p){try{return c.call(e,f,p)}catch(b){if(!u(b))throw b}}}function r(c){return c&&function(f,p,b,d){return c.call(e,f,p,b,function(m){u(m)&&(m=null),d&&d.apply(this,arguments)})}}function o(c){return c&&function(f,p,b){try{return c.call(e,f,p,b)}catch(d){if(!u(d))throw d}}}function s(c){return c&&function(f,p,b){typeof p=="function"&&(b=p,p=null);function d(m,h){h&&(h.uid<0&&(h.uid+=4294967296),h.gid<0&&(h.gid+=4294967296)),b&&b.apply(this,arguments)}return p?c.call(e,f,p,d):c.call(e,f,d)}}function l(c){return c&&function(f,p){var b=p?c.call(e,f,p):c.call(e,f);return b&&(b.uid<0&&(b.uid+=4294967296),b.gid<0&&(b.gid+=4294967296)),b}}function u(c){if(!c||c.code==="ENOSYS")return!0;var f=!process.getuid||process.getuid()!==0;return!!(f&&(c.code==="EINVAL"||c.code==="EPERM"))}}});var hy=O(($G,my)=>{var fy=require("stream").Stream;my.exports=i3;function i3(e){return{ReadStream:t,WriteStream:a};function t(n,i){if(!(this instanceof t))return new t(n,i);fy.call(this);var r=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,i=i||{};for(var o=Object.keys(i),s=0,l=o.length;sthis.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){r._read()});return}e.open(this.path,this.flags,this.mode,function(c,f){if(c){r.emit("error",c),r.readable=!1;return}r.fd=f,r.emit("open",f),r._read()})}function a(n,i){if(!(this instanceof a))return new a(n,i);fy.call(this),this.path=n,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,i=i||{};for(var r=Object.keys(i),o=0,s=r.length;o= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var by=O((YG,vy)=>{"use strict";vy.exports=o3;var r3=Object.getPrototypeOf||function(e){return e.__proto__};function o3(e){if(e===null||typeof e!="object")return e;if(e instanceof Object)var t={__proto__:r3(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(a){Object.defineProperty(t,a,Object.getOwnPropertyDescriptor(e,a))}),t}});var wy=O((KG,Tp)=>{var We=require("fs"),s3=dy(),l3=hy(),c3=by(),js=require("util"),ct,Ms;typeof Symbol=="function"&&typeof Symbol.for=="function"?(ct=Symbol.for("graceful-fs.queue"),Ms=Symbol.for("graceful-fs.previous")):(ct="___graceful-fs.queue",Ms="___graceful-fs.previous");function u3(){}function yy(e,t){Object.defineProperty(e,ct,{get:function(){return t}})}var dn=u3;js.debuglog?dn=js.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(dn=function(){var e=js.format.apply(js,arguments);e="GFS4: "+e.split(/\n/).join(` +GFS4: `),console.error(e)});We[ct]||(gy=global[ct]||[],yy(We,gy),We.close=function(e){function t(a,n){return e.call(We,a,function(i){i||xy(),typeof n=="function"&&n.apply(this,arguments)})}return Object.defineProperty(t,Ms,{value:e}),t}(We.close),We.closeSync=function(e){function t(a){e.apply(We,arguments),xy()}return Object.defineProperty(t,Ms,{value:e}),t}(We.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){dn(We[ct]),require("assert").equal(We[ct].length,0)}));var gy;global[ct]||yy(global,We[ct]);Tp.exports=Ip(c3(We));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!We.__patched&&(Tp.exports=Ip(We),We.__patched=!0);function Ip(e){s3(e),e.gracefulify=Ip,e.createReadStream=w,e.createWriteStream=C;var t=e.readFile;e.readFile=a;function a(A,_,P){return typeof _=="function"&&(P=_,_=null),F(A,_,P);function F(B,j,L,k){return t(B,j,function(T){T&&(T.code==="EMFILE"||T.code==="ENFILE")?Jn([F,[B,j,L],T,k||Date.now(),Date.now()]):typeof L=="function"&&L.apply(this,arguments)})}}var n=e.writeFile;e.writeFile=i;function i(A,_,P,F){return typeof P=="function"&&(F=P,P=null),B(A,_,P,F);function B(j,L,k,T,N){return n(j,L,k,function(M){M&&(M.code==="EMFILE"||M.code==="ENFILE")?Jn([B,[j,L,k,T],M,N||Date.now(),Date.now()]):typeof T=="function"&&T.apply(this,arguments)})}}var r=e.appendFile;r&&(e.appendFile=o);function o(A,_,P,F){return typeof P=="function"&&(F=P,P=null),B(A,_,P,F);function B(j,L,k,T,N){return r(j,L,k,function(M){M&&(M.code==="EMFILE"||M.code==="ENFILE")?Jn([B,[j,L,k,T],M,N||Date.now(),Date.now()]):typeof T=="function"&&T.apply(this,arguments)})}}var s=e.copyFile;s&&(e.copyFile=l);function l(A,_,P,F){return typeof P=="function"&&(F=P,P=0),B(A,_,P,F);function B(j,L,k,T,N){return s(j,L,k,function(M){M&&(M.code==="EMFILE"||M.code==="ENFILE")?Jn([B,[j,L,k,T],M,N||Date.now(),Date.now()]):typeof T=="function"&&T.apply(this,arguments)})}}var u=e.readdir;e.readdir=f;var c=/^v[0-5]\./;function f(A,_,P){typeof _=="function"&&(P=_,_=null);var F=c.test(process.version)?function(L,k,T,N){return u(L,B(L,k,T,N))}:function(L,k,T,N){return u(L,k,B(L,k,T,N))};return F(A,_,P);function B(j,L,k,T){return function(N,M){N&&(N.code==="EMFILE"||N.code==="ENFILE")?Jn([F,[j,L,k],N,T||Date.now(),Date.now()]):(M&&M.sort&&M.sort(),typeof k=="function"&&k.call(this,N,M))}}}if(process.version.substr(0,4)==="v0.8"){var p=l3(e);v=p.ReadStream,E=p.WriteStream}var b=e.ReadStream;b&&(v.prototype=Object.create(b.prototype),v.prototype.open=x);var d=e.WriteStream;d&&(E.prototype=Object.create(d.prototype),E.prototype.open=g),Object.defineProperty(e,"ReadStream",{get:function(){return v},set:function(A){v=A},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return E},set:function(A){E=A},enumerable:!0,configurable:!0});var m=v;Object.defineProperty(e,"FileReadStream",{get:function(){return m},set:function(A){m=A},enumerable:!0,configurable:!0});var h=E;Object.defineProperty(e,"FileWriteStream",{get:function(){return h},set:function(A){h=A},enumerable:!0,configurable:!0});function v(A,_){return this instanceof v?(b.apply(this,arguments),this):v.apply(Object.create(v.prototype),arguments)}function x(){var A=this;S(A.path,A.flags,A.mode,function(_,P){_?(A.autoClose&&A.destroy(),A.emit("error",_)):(A.fd=P,A.emit("open",P),A.read())})}function E(A,_){return this instanceof E?(d.apply(this,arguments),this):E.apply(Object.create(E.prototype),arguments)}function g(){var A=this;S(A.path,A.flags,A.mode,function(_,P){_?(A.destroy(),A.emit("error",_)):(A.fd=P,A.emit("open",P))})}function w(A,_){return new e.ReadStream(A,_)}function C(A,_){return new e.WriteStream(A,_)}var y=e.open;e.open=S;function S(A,_,P,F){return typeof P=="function"&&(F=P,P=null),B(A,_,P,F);function B(j,L,k,T,N){return y(j,L,k,function(M,D){M&&(M.code==="EMFILE"||M.code==="ENFILE")?Jn([B,[j,L,k,T],M,N||Date.now(),Date.now()]):typeof T=="function"&&T.apply(this,arguments)})}}return e}function Jn(e){dn("ENQUEUE",e[0].name,e[1]),We[ct].push(e),_p()}var Ls;function xy(){for(var e=Date.now(),t=0;t2&&(We[ct][t][3]=e,We[ct][t][4]=e);_p()}function _p(){if(clearTimeout(Ls),Ls=void 0,We[ct].length!==0){var e=We[ct].shift(),t=e[0],a=e[1],n=e[2],i=e[3],r=e[4];if(i===void 0)dn("RETRY",t.name,a),t.apply(null,a);else if(Date.now()-i>=6e4){dn("TIMEOUT",t.name,a);var o=a.pop();typeof o=="function"&&o.call(null,n)}else{var s=Date.now()-r,l=Math.max(r-i,1),u=Math.min(l*1.2,100);s>=u?(dn("RETRY",t.name,a),t.apply(null,a.concat([i]))):We[ct].push(e)}Ls===void 0&&(Ls=setTimeout(_p,0))}}});var Sy=O((QG,Ey)=>{"use strict";Ey.exports=e=>{let t=new Uint8Array(e);if(!(t&&t.length>1))return null;let a=(n,i)=>{i=Object.assign({offset:0},i);for(let r=0;rs[o]===66&&s[o+1]===130);if(i>=0){let r=i+3,o=s=>Array.from(s).every((l,u)=>n[r+u]===l.charCodeAt(0));if(o("matroska"))return{ext:"mkv",mime:"video/x-matroska"};if(o("webm"))return{ext:"webm",mime:"video/webm"}}}return a([0,0,0,20,102,116,121,112,113,116,32,32])||a([102,114,101,101],{offset:4})||a([102,116,121,112,113,116,32,32],{offset:4})||a([109,100,97,116],{offset:4})||a([119,105,100,101],{offset:4})?{ext:"mov",mime:"video/quicktime"}:a([82,73,70,70])&&a([65,86,73],{offset:8})?{ext:"avi",mime:"video/x-msvideo"}:a([48,38,178,117,142,102,207,17,166,217])?{ext:"wmv",mime:"video/x-ms-wmv"}:a([0,0,1,186])?{ext:"mpg",mime:"video/mpeg"}:a([73,68,51])||a([255,251])?{ext:"mp3",mime:"audio/mpeg"}:a([102,116,121,112,77,52,65],{offset:4})||a([77,52,65,32])?{ext:"m4a",mime:"audio/m4a"}:a([79,112,117,115,72,101,97,100],{offset:28})?{ext:"opus",mime:"audio/opus"}:a([79,103,103,83])?{ext:"ogg",mime:"audio/ogg"}:a([102,76,97,67])?{ext:"flac",mime:"audio/x-flac"}:a([82,73,70,70])&&a([87,65,86,69],{offset:8})?{ext:"wav",mime:"audio/x-wav"}:a([35,33,65,77,82,10])?{ext:"amr",mime:"audio/amr"}:a([37,80,68,70])?{ext:"pdf",mime:"application/pdf"}:a([77,90])?{ext:"exe",mime:"application/x-msdownload"}:(t[0]===67||t[0]===70)&&a([87,83],{offset:1})?{ext:"swf",mime:"application/x-shockwave-flash"}:a([123,92,114,116,102])?{ext:"rtf",mime:"application/rtf"}:a([0,97,115,109])?{ext:"wasm",mime:"application/wasm"}:a([119,79,70,70])&&(a([0,1,0,0],{offset:4})||a([79,84,84,79],{offset:4}))?{ext:"woff",mime:"font/woff"}:a([119,79,70,50])&&(a([0,1,0,0],{offset:4})||a([79,84,84,79],{offset:4}))?{ext:"woff2",mime:"font/woff2"}:a([76,80],{offset:34})&&(a([0,0,1],{offset:8})||a([1,0,2],{offset:8})||a([2,0,2],{offset:8}))?{ext:"eot",mime:"application/octet-stream"}:a([0,1,0,0,0])?{ext:"ttf",mime:"font/ttf"}:a([79,84,84,79,0])?{ext:"otf",mime:"font/otf"}:a([0,0,1,0])?{ext:"ico",mime:"image/x-icon"}:a([70,76,86,1])?{ext:"flv",mime:"video/x-flv"}:a([37,33])?{ext:"ps",mime:"application/postscript"}:a([253,55,122,88,90,0])?{ext:"xz",mime:"application/x-xz"}:a([83,81,76,105])?{ext:"sqlite",mime:"application/x-sqlite3"}:a([78,69,83,26])?{ext:"nes",mime:"application/x-nintendo-nes-rom"}:a([67,114,50,52])?{ext:"crx",mime:"application/x-google-chrome-extension"}:a([77,83,67,70])||a([73,83,99,40])?{ext:"cab",mime:"application/vnd.ms-cab-compressed"}:a([33,60,97,114,99,104,62,10,100,101,98,105,97,110,45,98,105,110,97,114,121])?{ext:"deb",mime:"application/x-deb"}:a([33,60,97,114,99,104,62])?{ext:"ar",mime:"application/x-unix-archive"}:a([237,171,238,219])?{ext:"rpm",mime:"application/x-rpm"}:a([31,160])||a([31,157])?{ext:"Z",mime:"application/x-compress"}:a([76,90,73,80])?{ext:"lz",mime:"application/x-lzip"}:a([208,207,17,224,161,177,26,225])?{ext:"msi",mime:"application/x-msi"}:a([6,14,43,52,2,5,1,1,13,1,2,1,1,2])?{ext:"mxf",mime:"application/mxf"}:a([71],{offset:4})&&(a([71],{offset:192})||a([71],{offset:196}))?{ext:"mts",mime:"video/mp2t"}:a([66,76,69,78,68,69,82])?{ext:"blend",mime:"application/x-blender"}:a([66,80,71,251])?{ext:"bpg",mime:"image/bpg"}:null}});var Ds=O((eH,Cy)=>{"use strict";var va=Cy.exports=function(e){return e!==null&&typeof e=="object"&&typeof e.pipe=="function"};va.writable=function(e){return va(e)&&e.writable!==!1&&typeof e._write=="function"&&typeof e._writableState=="object"};va.readable=function(e){return va(e)&&e.readable!==!1&&typeof e._read=="function"&&typeof e._readableState=="object"};va.duplex=function(e){return va.writable(e)&&va.readable(e)};va.transform=function(e){return va.duplex(e)&&typeof e._transform=="function"&&typeof e._transformState=="object"}});var ir=O((tH,kp)=>{"use strict";typeof process=="undefined"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0?kp.exports={nextTick:p3}:kp.exports=process;function p3(e,t,a,n){if(typeof e!="function")throw new TypeError('"callback" argument must be a function');var i=arguments.length,r,o;switch(i){case 0:case 1:return process.nextTick(e);case 2:return process.nextTick(function(){e.call(null,t)});case 3:return process.nextTick(function(){e.call(null,t,a)});case 4:return process.nextTick(function(){e.call(null,t,a,n)});default:for(r=new Array(i-1),o=0;o{function d3(e){return Array.isArray?Array.isArray(e):zs(e)==="[object Array]"}mt.isArray=d3;function f3(e){return typeof e=="boolean"}mt.isBoolean=f3;function m3(e){return e===null}mt.isNull=m3;function h3(e){return e==null}mt.isNullOrUndefined=h3;function v3(e){return typeof e=="number"}mt.isNumber=v3;function b3(e){return typeof e=="string"}mt.isString=b3;function g3(e){return typeof e=="symbol"}mt.isSymbol=g3;function x3(e){return e===void 0}mt.isUndefined=x3;function y3(e){return zs(e)==="[object RegExp]"}mt.isRegExp=y3;function w3(e){return typeof e=="object"&&e!==null}mt.isObject=w3;function E3(e){return zs(e)==="[object Date]"}mt.isDate=E3;function S3(e){return zs(e)==="[object Error]"||e instanceof Error}mt.isError=S3;function C3(e){return typeof e=="function"}mt.isFunction=C3;function A3(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e=="undefined"}mt.isPrimitive=A3;mt.isBuffer=require("buffer").Buffer.isBuffer;function zs(e){return Object.prototype.toString.call(e)}});var fn=O((nH,Fp)=>{typeof Object.create=="function"?Fp.exports=function(t,a){a&&(t.super_=a,t.prototype=Object.create(a.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Fp.exports=function(t,a){if(a){t.super_=a;var n=function(){};n.prototype=a.prototype,t.prototype=new n,t.prototype.constructor=t}}});var Iy=O((iH,Ay)=>{var I3={}.toString;Ay.exports=Array.isArray||function(e){return I3.call(e)=="[object Array]"}});var Pp=O((rH,_y)=>{_y.exports=require("events").EventEmitter});var Hs=O((Op,ky)=>{var Gs=require("buffer"),ba=Gs.Buffer;function Ty(e,t){for(var a in e)t[a]=e[a]}ba.from&&ba.alloc&&ba.allocUnsafe&&ba.allocUnsafeSlow?ky.exports=Gs:(Ty(Gs,Op),Op.Buffer=qn);function qn(e,t,a){return ba(e,t,a)}Ty(ba,qn);qn.from=function(e,t,a){if(typeof e=="number")throw new TypeError("Argument must not be a number");return ba(e,t,a)};qn.alloc=function(e,t,a){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=ba(e);return t!==void 0?typeof a=="string"?n.fill(t,a):n.fill(t):n.fill(0),n};qn.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return ba(e)};qn.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return Gs.SlowBuffer(e)}});var Py=O((oH,Rp)=>{"use strict";function _3(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Fy=Hs().Buffer,rr=require("util");function T3(e,t,a){e.copy(t,a)}Rp.exports=function(){function e(){_3(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(a){var n={data:a,next:null};this.length>0?this.tail.next=n:this.head=n,this.tail=n,++this.length},e.prototype.unshift=function(a){var n={data:a,next:this.head};this.length===0&&(this.tail=n),this.head=n,++this.length},e.prototype.shift=function(){if(this.length!==0){var a=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,a}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(a){if(this.length===0)return"";for(var n=this.head,i=""+n.data;n=n.next;)i+=a+n.data;return i},e.prototype.concat=function(a){if(this.length===0)return Fy.alloc(0);for(var n=Fy.allocUnsafe(a>>>0),i=this.head,r=0;i;)T3(i.data,n,r),r+=i.data.length,i=i.next;return n},e}();rr&&rr.inspect&&rr.inspect.custom&&(Rp.exports.prototype[rr.inspect.custom]=function(){var e=rr.inspect({length:this.length});return this.constructor.name+" "+e})});var Bp=O((sH,Oy)=>{"use strict";var Ws=ir();function k3(e,t){var a=this,n=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return n||i?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,Ws.nextTick(Vs,this,e)):Ws.nextTick(Vs,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(r){!t&&r?a._writableState?a._writableState.errorEmitted||(a._writableState.errorEmitted=!0,Ws.nextTick(Vs,a,r)):Ws.nextTick(Vs,a,r):t&&t(r)}),this)}function F3(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Vs(e,t){e.emit("error",t)}Oy.exports={destroy:k3,undestroy:F3}});var Gp=O((cH,Vy)=>{"use strict";var $n=ir();Vy.exports=Me;var P3=Iy(),or;Me.ReadableState=Dy;var lH=require("events").EventEmitter,jy=function(e,t){return e.listeners(t).length},Dp=Pp(),sr=Hs().Buffer,O3=(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:{}).Uint8Array||function(){};function R3(e){return sr.from(e)}function B3(e){return sr.isBuffer(e)||e instanceof O3}var Ly=Object.create(Zn());Ly.inherits=fn();var Np=require("util"),Ce=void 0;Np&&Np.debuglog?Ce=Np.debuglog("stream"):Ce=function(){};var N3=Py(),My=Bp(),Xn;Ly.inherits(Me,Dp);var jp=["error","close","destroy","pause","resume"];function j3(e,t,a){if(typeof e.prependListener=="function")return e.prependListener(t,a);!e._events||!e._events[t]?e.on(t,a):P3(e._events[t])?e._events[t].unshift(a):e._events[t]=[a,e._events[t]]}function Dy(e,t){or=or||ja(),e=e||{};var a=t instanceof or;this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var n=e.highWaterMark,i=e.readableHighWaterMark,r=this.objectMode?16:16*1024;n||n===0?this.highWaterMark=n:a&&(i||i===0)?this.highWaterMark=i:this.highWaterMark=r,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new N3,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(Xn||(Xn=require("string_decoder/").StringDecoder),this.decoder=new Xn(e.encoding),this.encoding=e.encoding)}function Me(e){if(or=or||ja(),!(this instanceof Me))return new Me(e);this._readableState=new Dy(e,this),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),Dp.call(this)}Object.defineProperty(Me.prototype,"destroyed",{get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}});Me.prototype.destroy=My.destroy;Me.prototype._undestroy=My.undestroy;Me.prototype._destroy=function(e,t){this.push(null),t(e)};Me.prototype.push=function(e,t){var a=this._readableState,n;return a.objectMode?n=!0:typeof e=="string"&&(t=t||a.defaultEncoding,t!==a.encoding&&(e=sr.from(e,t),t=""),n=!0),zy(this,e,t,!1,n)};Me.prototype.unshift=function(e){return zy(this,e,null,!0,!1)};function zy(e,t,a,n,i){var r=e._readableState;if(t===null)r.reading=!1,z3(e,r);else{var o;i||(o=L3(r,t)),o?e.emit("error",o):r.objectMode||t&&t.length>0?(typeof t!="string"&&!r.objectMode&&Object.getPrototypeOf(t)!==sr.prototype&&(t=R3(t)),n?r.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):Lp(e,r,t,!0):r.ended?e.emit("error",new Error("stream.push() after EOF")):(r.reading=!1,r.decoder&&!a?(t=r.decoder.write(t),r.objectMode||t.length!==0?Lp(e,r,t,!1):Gy(e,r)):Lp(e,r,t,!1))):n||(r.reading=!1)}return M3(r)}function Lp(e,t,a,n){t.flowing&&t.length===0&&!t.sync?(e.emit("data",a),e.read(0)):(t.length+=t.objectMode?1:a.length,n?t.buffer.unshift(a):t.buffer.push(a),t.needReadable&&Us(e)),Gy(e,t)}function L3(e,t){var a;return!B3(t)&&typeof t!="string"&&t!==void 0&&!e.objectMode&&(a=new TypeError("Invalid non-string/buffer chunk")),a}function M3(e){return!e.ended&&(e.needReadable||e.length=Ry?e=Ry:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function By(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=D3(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}Me.prototype.read=function(e){Ce("read",e),e=parseInt(e,10);var t=this._readableState,a=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return Ce("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?Mp(this):Us(this),null;if(e=By(e,t),e===0&&t.ended)return t.length===0&&Mp(this),null;var n=t.needReadable;Ce("need readable",n),(t.length===0||t.length-e0?i=Hy(e,t):i=null,i===null?(t.needReadable=!0,e=0):t.length-=e,t.length===0&&(t.ended||(t.needReadable=!0),a!==e&&t.ended&&Mp(this)),i!==null&&this.emit("data",i),i};function z3(e,t){if(!t.ended){if(t.decoder){var a=t.decoder.end();a&&a.length&&(t.buffer.push(a),t.length+=t.objectMode?1:a.length)}t.ended=!0,Us(e)}}function Us(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(Ce("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?$n.nextTick(Ny,e):Ny(e))}function Ny(e){Ce("emit readable"),e.emit("readable"),zp(e)}function Gy(e,t){t.readingMore||(t.readingMore=!0,$n.nextTick(G3,e,t))}function G3(e,t){for(var a=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length1&&Wy(n.pipes,e)!==-1)&&!u&&(Ce("false write response, pause",n.awaitDrain),n.awaitDrain++,f=!0),a.pause())}function b(v){Ce("onerror",v),h(),e.removeListener("error",b),jy(e,"error")===0&&e.emit("error",v)}j3(e,"error",b);function d(){e.removeListener("finish",m),h()}e.once("close",d);function m(){Ce("onfinish"),e.removeListener("close",d),h()}e.once("finish",m);function h(){Ce("unpipe"),a.unpipe(e)}return e.emit("pipe",a),n.flowing||(Ce("pipe resume"),a.resume()),e};function H3(e){return function(){var t=e._readableState;Ce("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&jy(e,"data")&&(t.flowing=!0,zp(e))}}Me.prototype.unpipe=function(e){var t=this._readableState,a={hasUnpiped:!1};if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,a),this);if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var r=0;r=t.length?(t.decoder?a=t.buffer.join(""):t.buffer.length===1?a=t.buffer.head.data:a=t.buffer.concat(t.length),t.buffer.clear()):a=J3(e,t.buffer,t.decoder),a}function J3(e,t,a){var n;return er.length?r.length:e;if(o===r.length?i+=r:i+=r.slice(0,e),e-=o,e===0){o===r.length?(++n,a.next?t.head=a.next:t.head=t.tail=null):(t.head=a,a.data=r.slice(o));break}++n}return t.length-=n,i}function q3(e,t){var a=sr.allocUnsafe(e),n=t.head,i=1;for(n.data.copy(a),e-=n.data.length;n=n.next;){var r=n.data,o=e>r.length?r.length:e;if(r.copy(a,a.length-e,0,o),e-=o,e===0){o===r.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=r.slice(o));break}++i}return t.length-=i,a}function Mp(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,$n.nextTick(X3,t,e))}function X3(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function Wy(e,t){for(var a=0,n=e.length;a{Uy.exports=$3;function $3(e,t){if(Hp("noDeprecation"))return e;var a=!1;function n(){if(!a){if(Hp("throwDeprecation"))throw new Error(t);Hp("traceDeprecation")?console.trace(t):console.warn(t),a=!0}return e.apply(this,arguments)}return n}function Hp(e){try{if(!global.localStorage)return!1}catch(a){return!1}var t=global.localStorage[e];return t==null?!1:String(t).toLowerCase()==="true"}});var Vp=O((pH,ew)=>{"use strict";var mn=ir();ew.exports=Ye;function qy(e){var t=this;this.next=null,this.entry=null,this.finish=function(){m6(t,e)}}var Y3=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:mn.nextTick,Yn;Ye.WritableState=cr;var Xy=Object.create(Zn());Xy.inherits=fn();var K3={deprecate:Jy()},$y=Pp(),Zs=Hs().Buffer,Q3=(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:{}).Uint8Array||function(){};function e6(e){return Zs.from(e)}function t6(e){return Zs.isBuffer(e)||e instanceof Q3}var Yy=Bp();Xy.inherits(Ye,$y);function a6(){}function cr(e,t){Yn=Yn||ja(),e=e||{};var a=t instanceof Yn;this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var n=e.highWaterMark,i=e.writableHighWaterMark,r=this.objectMode?16:16*1024;n||n===0?this.highWaterMark=n:a&&(i||i===0)?this.highWaterMark=i:this.highWaterMark=r,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=e.decodeStrings===!1;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(s){c6(t,s)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new qy(this)}cr.prototype.getBuffer=function(){for(var t=this.bufferedRequest,a=[];t;)a.push(t),t=t.next;return a};(function(){try{Object.defineProperty(cr.prototype,"buffer",{get:K3.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}})();var Js;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Js=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ye,Symbol.hasInstance,{value:function(e){return Js.call(this,e)?!0:this!==Ye?!1:e&&e._writableState instanceof cr}})):Js=function(e){return e instanceof this};function Ye(e){if(Yn=Yn||ja(),!Js.call(Ye,this)&&!(this instanceof Yn))return new Ye(e);this._writableState=new cr(e,this),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),$y.call(this)}Ye.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function n6(e,t){var a=new Error("write after end");e.emit("error",a),mn.nextTick(t,a)}function i6(e,t,a,n){var i=!0,r=!1;return a===null?r=new TypeError("May not write null values to stream"):typeof a!="string"&&a!==void 0&&!t.objectMode&&(r=new TypeError("Invalid non-string/buffer chunk")),r&&(e.emit("error",r),mn.nextTick(n,r),i=!1),i}Ye.prototype.write=function(e,t,a){var n=this._writableState,i=!1,r=!n.objectMode&&t6(e);return r&&!Zs.isBuffer(e)&&(e=e6(e)),typeof t=="function"&&(a=t,t=null),r?t="buffer":t||(t=n.defaultEncoding),typeof a!="function"&&(a=a6),n.ended?n6(this,a):(r||i6(this,n,e,a))&&(n.pendingcb++,i=o6(this,n,r,e,t,a)),i};Ye.prototype.cork=function(){var e=this._writableState;e.corked++};Ye.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&Ky(this,e))};Ye.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this};function r6(e,t,a){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=Zs.from(t,a)),t}Object.defineProperty(Ye.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function o6(e,t,a,n,i,r){if(!a){var o=r6(t,n,i);n!==o&&(a=!0,i="buffer",n=o)}var s=t.objectMode?1:n.length;t.length+=s;var l=t.length{"use strict";var tw=ir(),h6=Object.keys||function(e){var t=[];for(var a in e)t.push(a);return t};iw.exports=ga;var aw=Object.create(Zn());aw.inherits=fn();var nw=Gp(),Jp=Vp();aw.inherits(ga,nw);for(Up=h6(Jp.prototype),qs=0;qs{rw.exports=ja()});var lw=O((mH,sw)=>{var Zp=ow(),g6=require("util"),Kn=Bs().Buffer;function Je(e){if(!(this instanceof Je))return new Je(e);if(this._bufs=[],this.length=0,typeof e=="function"){this._callback=e;var t=function(n){this._callback&&(this._callback(n),this._callback=null)}.bind(this);this.on("pipe",function(n){n.on("error",t)}),this.on("unpipe",function(n){n.removeListener("error",t)})}else this.append(e);Zp.call(this)}g6.inherits(Je,Zp);Je.prototype._offset=function(t){var a=0,n=0,i;if(t===0)return[0,0];for(;nthis.length)&&(i=this.length),n>=this.length||i<=0)return t||Kn.alloc(0);var r=!!t,o=this._offset(n),s=i-n,l=s,u=r&&a||0,c=o[1],f,p;if(n===0&&i==this.length){if(!r)return this._bufs.length===1?this._bufs[0]:Kn.concat(this._bufs,this.length);for(p=0;pf)this._bufs[p].copy(t,u,c),u+=f;else{this._bufs[p].copy(t,u,c,c+l),u+=f;break}l-=f,c&&(c=0)}return t.length>u?t.slice(0,u):t};Je.prototype.shallowSlice=function(t,a){t=t||0,a=a||this.length,t<0&&(t+=this.length),a<0&&(a+=this.length);var n=this._offset(t),i=this._offset(a),r=this._bufs.slice(n[0],i[0]+1);return i[1]==0?r.pop():r[r.length-1]=r[r.length-1].slice(0,i[1]),n[1]!=0&&(r[0]=r[0].slice(n[1])),new Je(r)};Je.prototype.toString=function(t,a,n){return this.slice(a,n).toString(t)};Je.prototype.consume=function(t){if(t=Math.trunc(t),Number.isNaN(t)||t<=0)return this;for(;this._bufs.length;)if(t>=this._bufs[0].length)t-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(t),this.length-=t;break}return this};Je.prototype.duplicate=function(){for(var t=0,a=new Je;t{cw.exports=y6;var x6=Object.prototype.hasOwnProperty;function y6(){for(var e={},t=0;t{dw.exports=E6;var pw=Buffer.from&&Buffer.from!==Uint8Array.from?Buffer.from:w6;function w6(e,t){return new Buffer(e,t)}function E6(e,t){if(Buffer.isBuffer(e))return e;if(typeof e=="string")return pw(e,t);if(Array.isArray(e))return pw(e);throw new Error("Input should be a buffer or a string")}});var mw=O((bH,fw)=>{var S6=function(){try{if(!Buffer.isEncoding("latin1"))return!1;var e=Buffer.alloc?Buffer.alloc(4):new Buffer(4);return e.fill("ab","ucs2"),e.toString("hex")==="61006200"}catch(t){return!1}}();function C6(e){return e.length===1&&e.charCodeAt(0)<256}function $s(e,t,a,n){if(a<0||n>e.length)throw new RangeError("Out of range index");return a=a>>>0,n=n===void 0?e.length:n>>>0,n>a&&e.fill(t,a,n),e}function A6(e,t,a,n){if(a<0||n>e.length)throw new RangeError("Out of range index");if(n<=a)return e;a=a>>>0,n=n===void 0?e.length:n>>>0;for(var i=a,r=t.length;i<=n-r;)t.copy(e,i),i+=r;return i!==n&&t.copy(e,i,0,n-i),e}function I6(e,t,a,n,i){if(S6)return e.fill(t,a,n,i);if(typeof t=="number")return $s(e,t,a,n);if(typeof t=="string"){if(typeof a=="string"?(i=a,a=0,n=e.length):typeof n=="string"&&(i=n,n=e.length),i!==void 0&&typeof i!="string")throw new TypeError("encoding must be a string");if(i==="latin1"&&(i="binary"),typeof i=="string"&&!Buffer.isEncoding(i))throw new TypeError("Unknown encoding: "+i);if(t==="")return $s(e,0,a,n);if(C6(t))return $s(e,t.charCodeAt(0),a,n);t=new Buffer(t,i)}return Buffer.isBuffer(t)?A6(e,t,a,n):$s(e,0,a,n)}fw.exports=I6});var vw=O((gH,hw)=>{function _6(e){if(typeof e!="number")throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative');return Buffer.allocUnsafe?Buffer.allocUnsafe(e):new Buffer(e)}hw.exports=_6});var Xp=O((xH,gw)=>{var bw=mw(),T6=vw();gw.exports=function(t,a,n){if(typeof t!="number")throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative');if(Buffer.alloc)return Buffer.alloc(t,a,n);var i=T6(t);return t===0?i:a===void 0?bw(i,0):(typeof n!="string"&&(n=void 0),bw(i,a,n))}});var Yp=O(ei=>{var k6=qp(),F6=Xp(),P6="0000000000000000000",O6="7777777777777777777",xw="0".charCodeAt(0),R6="ustar\x0000",B6=parseInt("7777",8),N6=function(e,t,a){return typeof e!="number"?a:(e=~~e,e>=t?t:e>=0||(e+=t,e>=0)?e:0)},j6=function(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},L6=function(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},yw=function(e,t,a,n){for(;at?O6.slice(0,t)+" ":P6.slice(0,t-e.length)+e+" "};function M6(e){var t;if(e[0]===128)t=!0;else if(e[0]===255)t=!1;else return null;for(var a=!1,n=[],i=e.length-1;i>0;i--){var r=e[i];t?n.push(r):a&&r===0?n.push(0):a?(a=!1,n.push(256-r)):n.push(255-r)}var o=0,s=n.length;for(i=0;i=Math.pow(10,a)&&a++,t+a+e};ei.decodeLongPath=function(e,t){return Qn(e,0,e.length,t)};ei.encodePax=function(e){var t="";e.name&&(t+=$p(" path="+e.name+` +`)),e.linkname&&(t+=$p(" linkpath="+e.linkname+` +`));var a=e.pax;if(a)for(var n in a)t+=$p(" "+n+"="+a[n]+` +`);return k6(t)};ei.decodePax=function(e){for(var t={};e.length;){for(var a=0;a100;){var i=a.indexOf("/");if(i===-1)return null;n+=n?"/"+a.slice(0,i):a.slice(0,i),a=a.slice(i+1)}return Buffer.byteLength(a)>100||Buffer.byteLength(n)>155||e.linkname&&Buffer.byteLength(e.linkname)>100?null:(t.write(a),t.write(La(e.mode&B6,6),100),t.write(La(e.uid,6),108),t.write(La(e.gid,6),116),t.write(La(e.size,11),124),t.write(La(e.mtime.getTime()/1e3|0,11),136),t[156]=xw+L6(e.type),e.linkname&&t.write(e.linkname,157),t.write(R6,257),e.uname&&t.write(e.uname,265),e.gname&&t.write(e.gname,297),t.write(La(e.devmajor||0,6),329),t.write(La(e.devminor||0,6),337),n&&t.write(n,345),t.write(La(ww(t),6),148),t)};ei.decode=function(e,t){var a=e[156]===0?0:e[156]-xw,n=Qn(e,0,100,t),i=Ma(e,100,8),r=Ma(e,108,8),o=Ma(e,116,8),s=Ma(e,124,12),l=Ma(e,136,12),u=j6(a),c=e[157]===0?null:Qn(e,157,100,t),f=Qn(e,265,32),p=Qn(e,297,32),b=Ma(e,329,8),d=Ma(e,337,8);e[345]&&(n=Qn(e,345,155,t)+"/"+n),a===0&&n&&n[n.length-1]==="/"&&(a=5);var m=ww(e);if(m===8*32)return null;if(m!==Ma(e,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");return{name:n,mode:i,uid:r,gid:o,size:s,mtime:new Date(1e3*l),type:u,linkname:c,uname:f,gname:p,devmajor:b,devminor:d}}});var Kp=O((wH,Cw)=>{"use strict";Cw.exports=xa;var Ys=ja(),Sw=Object.create(Zn());Sw.inherits=fn();Sw.inherits(xa,Ys);function D6(e,t){var a=this._transformState;a.transforming=!1;var n=a.writecb;if(!n)return this.emit("error",new Error("write callback called multiple times"));a.writechunk=null,a.writecb=null,t!=null&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";_w.exports=ur;var Aw=Kp(),Iw=Object.create(Zn());Iw.inherits=fn();Iw.inherits(ur,Aw);function ur(e){if(!(this instanceof ur))return new ur(e);Aw.call(this,e)}ur.prototype._transform=function(e,t,a){a(null,e)}});var ti=O((ta,kw)=>{ta=kw.exports=Gp();ta.Stream=ta;ta.Readable=ta;ta.Writable=Vp();ta.Duplex=ja();ta.Transform=Kp();ta.PassThrough=Tw()});var jw=O((SH,Nw)=>{var Pw=require("util"),G6=lw(),H6=uw(),pr=Yp(),Ow=ti().Writable,Rw=ti().PassThrough,Bw=function(){},Fw=function(e){return e&=511,e&&512-e},W6=function(e,t){var a=new Ks(e,t);return a.end(),a},V6=function(e,t){return t.path&&(e.name=t.path),t.linkpath&&(e.linkname=t.linkpath),t.size&&(e.size=parseInt(t.size,10)),e.pax=t,e},Ks=function(e,t){this._parent=e,this.offset=t,Rw.call(this)};Pw.inherits(Ks,Rw);Ks.prototype.destroy=function(e){this._parent.destroy(e)};var ya=function(e){if(!(this instanceof ya))return new ya(e);Ow.call(this,e),e=e||{},this._offset=0,this._buffer=G6(),this._missing=0,this._partial=!1,this._onparse=Bw,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var t=this,a=t._buffer,n=function(){t._continue()},i=function(p){if(t._locked=!1,p)return t.destroy(p);t._stream||n()},r=function(){t._stream=null;var p=Fw(t._header.size);p?t._parse(p,o):t._parse(512,f),t._locked||n()},o=function(){t._buffer.consume(Fw(t._header.size)),t._parse(512,f),n()},s=function(){var p=t._header.size;t._paxGlobal=pr.decodePax(a.slice(0,p)),a.consume(p),r()},l=function(){var p=t._header.size;t._pax=pr.decodePax(a.slice(0,p)),t._paxGlobal&&(t._pax=H6(t._paxGlobal,t._pax)),a.consume(p),r()},u=function(){var p=t._header.size;this._gnuLongPath=pr.decodeLongPath(a.slice(0,p),e.filenameEncoding),a.consume(p),r()},c=function(){var p=t._header.size;this._gnuLongLinkPath=pr.decodeLongPath(a.slice(0,p),e.filenameEncoding),a.consume(p),r()},f=function(){var p=t._offset,b;try{b=t._header=pr.decode(a.slice(0,512),e.filenameEncoding)}catch(d){t.emit("error",d)}if(a.consume(512),!b){t._parse(512,f),n();return}if(b.type==="gnu-long-path"){t._parse(b.size,u),n();return}if(b.type==="gnu-long-link-path"){t._parse(b.size,c),n();return}if(b.type==="pax-global-header"){t._parse(b.size,s),n();return}if(b.type==="pax-header"){t._parse(b.size,l),n();return}if(t._gnuLongPath&&(b.name=t._gnuLongPath,t._gnuLongPath=null),t._gnuLongLinkPath&&(b.linkname=t._gnuLongLinkPath,t._gnuLongLinkPath=null),t._pax&&(t._header=b=V6(b,t._pax),t._pax=null),t._locked=!0,!b.size||b.type==="directory"){t._parse(512,f),t.emit("entry",b,W6(t,p),i);return}t._stream=new Ks(t,p),t.emit("entry",b,t._stream,i),t._parse(b.size,r),n()};this._onheader=f,this._parse(512,f)};Pw.inherits(ya,Ow);ya.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.emit("close"))};ya.prototype._parse=function(e,t){this._destroyed||(this._offset+=e,this._missing=e,t===this._onheader&&(this._partial=!1),this._onparse=t)};ya.prototype._continue=function(){if(!this._destroyed){var e=this._cb;this._cb=Bw,this._overflow?this._write(this._overflow,void 0,e):e()}};ya.prototype._write=function(e,t,a){if(!this._destroyed){var n=this._stream,i=this._buffer,r=this._missing;if(e.length&&(this._partial=!0),e.lengthr&&(o=e.slice(r),e=e.slice(0,r)),n?n.end(e):i.append(e),this._overflow=o,this._onparse()}};ya.prototype._final=function(e){if(this._partial)return this.destroy(new Error("Unexpected end of data"));e()};Nw.exports=ya});var Mw=O((CH,Lw)=>{Lw.exports=require("constants")});var Gw=O((AH,zw)=>{zw.exports=Dw;function Dw(e,t){if(e&&t)return Dw(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(n){a[n]=e[n]}),a;function a(){for(var n=new Array(arguments.length),i=0;i{var Hw=Gw();Qp.exports=Hw(Qs);Qp.exports.strict=Hw(Ww);Qs.proto=Qs(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Qs(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return Ww(this)},configurable:!0})});function Qs(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function Ww(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},a=e.name||"Function wrapped with `once`";return t.onceError=a+" shouldn't be called more than once",t.called=!1,t}});var td=O((_H,Uw)=>{var U6=ed(),J6=function(){},Z6=function(e){return e.setHeader&&typeof e.abort=="function"},q6=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},Vw=function(e,t,a){if(typeof t=="function")return Vw(e,null,t);t||(t={}),a=U6(a||J6);var n=e._writableState,i=e._readableState,r=t.readable||t.readable!==!1&&e.readable,o=t.writable||t.writable!==!1&&e.writable,s=!1,l=function(){e.writable||u()},u=function(){o=!1,r||a.call(e)},c=function(){r=!1,o||a.call(e)},f=function(h){a.call(e,h?new Error("exited with error code: "+h):null)},p=function(h){a.call(e,h)},b=function(){process.nextTick(d)},d=function(){if(!s){if(r&&!(i&&i.ended&&!i.destroyed))return a.call(e,new Error("premature close"));if(o&&!(n&&n.ended&&!n.destroyed))return a.call(e,new Error("premature close"))}},m=function(){e.req.on("finish",u)};return Z6(e)?(e.on("complete",u),e.on("abort",b),e.req?m():e.on("request",m)):o&&!n&&(e.on("end",l),e.on("close",l)),q6(e)&&e.on("exit",f),e.on("end",c),e.on("finish",u),t.error!==!1&&e.on("error",p),e.on("close",b),function(){s=!0,e.removeListener("complete",u),e.removeListener("abort",b),e.removeListener("request",m),e.req&&e.req.removeListener("finish",u),e.removeListener("end",l),e.removeListener("close",l),e.removeListener("finish",u),e.removeListener("exit",f),e.removeListener("end",c),e.removeListener("error",p),e.removeListener("close",b)}};Uw.exports=Vw});var $w=O((TH,Xw)=>{var ai=Mw(),Jw=td(),tl=require("util"),X6=Xp(),$6=qp(),Zw=ti().Readable,ni=ti().Writable,Y6=require("string_decoder").StringDecoder,el=Yp(),K6=parseInt("755",8),Q6=parseInt("644",8),qw=X6(1024),nd=function(){},ad=function(e,t){t&=511,t&&e.push(qw.slice(0,512-t))};function eR(e){switch(e&ai.S_IFMT){case ai.S_IFBLK:return"block-device";case ai.S_IFCHR:return"character-device";case ai.S_IFDIR:return"directory";case ai.S_IFIFO:return"fifo";case ai.S_IFLNK:return"symlink"}return"file"}var al=function(e){ni.call(this),this.written=0,this._to=e,this._destroyed=!1};tl.inherits(al,ni);al.prototype._write=function(e,t,a){if(this.written+=e.length,this._to.push(e))return a();this._to._drain=a};al.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var nl=function(){ni.call(this),this.linkname="",this._decoder=new Y6("utf-8"),this._destroyed=!1};tl.inherits(nl,ni);nl.prototype._write=function(e,t,a){this.linkname+=this._decoder.write(e),a()};nl.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var dr=function(){ni.call(this),this._destroyed=!1};tl.inherits(dr,ni);dr.prototype._write=function(e,t,a){a(new Error("No body allowed for this entry"))};dr.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var aa=function(e){if(!(this instanceof aa))return new aa(e);Zw.call(this,e),this._drain=nd,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};tl.inherits(aa,Zw);aa.prototype.entry=function(e,t,a){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof t=="function"&&(a=t,t=null),a||(a=nd);var n=this;if((!e.size||e.type==="symlink")&&(e.size=0),e.type||(e.type=eR(e.mode)),e.mode||(e.mode=e.type==="directory"?K6:Q6),e.uid||(e.uid=0),e.gid||(e.gid=0),e.mtime||(e.mtime=new Date),typeof t=="string"&&(t=$6(t)),Buffer.isBuffer(t))return e.size=t.length,this._encode(e),this.push(t),ad(n,e.size),process.nextTick(a),new dr;if(e.type==="symlink"&&!e.linkname){var i=new nl;return Jw(i,function(o){if(o)return n.destroy(),a(o);e.linkname=i.linkname,n._encode(e),a()}),i}if(this._encode(e),e.type!=="file"&&e.type!=="contiguous-file")return process.nextTick(a),new dr;var r=new al(this);return this._stream=r,Jw(r,function(o){if(n._stream=null,o)return n.destroy(),a(o);if(r.written!==e.size)return n.destroy(),a(new Error("size mismatch"));ad(n,e.size),n._finalizing&&n.finalize(),a()}),r}};aa.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(qw),this.push(null))};aa.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};aa.prototype._encode=function(e){if(!e.pax){var t=el.encode(e);if(t){this.push(t);return}}this._encodePax(e)};aa.prototype._encodePax=function(e){var t=el.encodePax({name:e.name,linkname:e.linkname,pax:e.pax}),a={name:"PaxHeader",mode:e.mode,uid:e.uid,gid:e.gid,size:t.length,mtime:e.mtime,type:"pax-header",linkname:e.linkname&&"PaxHeader",uname:e.uname,gname:e.gname,devmajor:e.devmajor,devminor:e.devminor};this.push(el.encode(a)),this.push(t),ad(this,t.length),a.size=e.size,a.type=e.type,this.push(el.encode(a))};aa.prototype._read=function(e){var t=this._drain;this._drain=nd,t()};Xw.exports=aa});var Yw=O(id=>{id.extract=jw();id.pack=$w()});var il=O((FH,Qw)=>{"use strict";var Kw=Sy(),tR=Ds(),aR=Yw();Qw.exports=()=>e=>{if(!Buffer.isBuffer(e)&&!tR(e))return Promise.reject(new TypeError(`Expected a Buffer or Stream, got ${typeof e}`));if(Buffer.isBuffer(e)&&(!Kw(e)||Kw(e).ext!=="tar"))return Promise.resolve([]);let t=aR.extract(),a=[];t.on("entry",(i,r,o)=>{let s=[];r.on("data",l=>s.push(l)),r.on("end",()=>{let l={data:Buffer.concat(s),mode:i.mode,mtime:i.mtime,path:i.name,type:i.type};(i.type==="symlink"||i.type==="link")&&(l.linkname=i.linkname),a.push(l),o()})});let n=new Promise((i,r)=>{Buffer.isBuffer(e)||e.on("error",r),t.on("finish",()=>i(a)),t.on("error",r)});return t.then=n.then.bind(n),t.catch=n.catch.bind(n),Buffer.isBuffer(e)?t.end(e):e.pipe(t),t}});var t1=O((PH,e1)=>{"use strict";var ii=e=>Array.from(e).map(t=>t.charCodeAt(0)),nR=ii("META-INF/mozilla.rsa"),iR=ii("[Content_Types].xml"),rR=ii("_rels/.rels");e1.exports=e=>{let t=new Uint8Array(e);if(!(t&&t.length>1))return null;let a=(n,i)=>{i=Object.assign({offset:0},i);for(let r=0;ro.findIndex((s,l,u)=>u[l]===80&&u[l+1]===75&&u[l+2]===3&&u[l+3]===4),r=i(n);if(r!==-1){let o=t.subarray(r+8,r+8+1e3),s=i(o);if(s!==-1){let l=8+r+s+30;if(a(ii("word/"),{offset:l}))return{ext:"docx",mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"};if(a(ii("ppt/"),{offset:l}))return{ext:"pptx",mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation"};if(a(ii("xl/"),{offset:l}))return{ext:"xlsx",mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}}}}}if(a([80,75])&&(t[2]===3||t[2]===5||t[2]===7)&&(t[3]===4||t[3]===6||t[3]===8))return{ext:"zip",mime:"application/zip"};if(a([117,115,116,97,114],{offset:257}))return{ext:"tar",mime:"application/x-tar"};if(a([82,97,114,33,26,7])&&(t[6]===0||t[6]===1))return{ext:"rar",mime:"application/x-rar-compressed"};if(a([31,139,8]))return{ext:"gz",mime:"application/gzip"};if(a([66,90,104]))return{ext:"bz2",mime:"application/x-bzip2"};if(a([55,122,188,175,39,28]))return{ext:"7z",mime:"application/x-7z-compressed"};if(a([120,1]))return{ext:"dmg",mime:"application/x-apple-diskimage"};if(a([51,103,112,53])||a([0,0,0])&&a([102,116,121,112],{offset:4})&&(a([109,112,52,49],{offset:8})||a([109,112,52,50],{offset:8})||a([105,115,111,109],{offset:8})||a([105,115,111,50],{offset:8})||a([109,109,112,52],{offset:8})||a([77,52,86],{offset:8})||a([100,97,115,104],{offset:8})))return{ext:"mp4",mime:"video/mp4"};if(a([77,84,104,100]))return{ext:"mid",mime:"audio/midi"};if(a([26,69,223,163])){let n=t.subarray(4,4100),i=n.findIndex((r,o,s)=>s[o]===66&&s[o+1]===130);if(i!==-1){let r=i+3,o=s=>Array.from(s).every((l,u)=>n[r+u]===l.charCodeAt(0));if(o("matroska"))return{ext:"mkv",mime:"video/x-matroska"};if(o("webm"))return{ext:"webm",mime:"video/webm"}}}if(a([0,0,0,20,102,116,121,112,113,116,32,32])||a([102,114,101,101],{offset:4})||a([102,116,121,112,113,116,32,32],{offset:4})||a([109,100,97,116],{offset:4})||a([119,105,100,101],{offset:4}))return{ext:"mov",mime:"video/quicktime"};if(a([82,73,70,70])&&a([65,86,73],{offset:8}))return{ext:"avi",mime:"video/x-msvideo"};if(a([48,38,178,117,142,102,207,17,166,217]))return{ext:"wmv",mime:"video/x-ms-wmv"};if(a([0,0,1,186]))return{ext:"mpg",mime:"video/mpeg"};for(let n=0;n<2&&n{var a1=[0,1,3,7,15,31,63,127,255],fr=function(e){this.stream=e,this.bitOffset=0,this.curByte=0,this.hasByte=!1};fr.prototype._ensureByte=function(){this.hasByte||(this.curByte=this.stream.readByte(),this.hasByte=!0)};fr.prototype.read=function(e){for(var t=0;e>0;){this._ensureByte();var a=8-this.bitOffset;if(e>=a)t<<=a,t|=a1[a]&this.curByte,this.hasByte=!1,this.bitOffset=0,e-=a;else{t<<=e;var n=a-e;t|=(this.curByte&a1[e]<>n,this.bitOffset+=e,e=0}}return t};fr.prototype.seek=function(e){var t=e%8,a=(e-t)/8;this.bitOffset=t,this.stream.seek(a),this.hasByte=!1};fr.prototype.pi=function(){var e=new Buffer(6),t;for(t=0;t{var hn=function(){};hn.prototype.readByte=function(){throw new Error("abstract method readByte() not implemented")};hn.prototype.read=function(e,t,a){for(var n=0;n{s1.exports=function(){var e=new Uint32Array([0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188]),t=function(){var a=4294967295;this.getCRC=function(){return~a>>>0},this.updateCRC=function(n){a=a<<8^e[(a>>>24^n)&255]},this.updateCRCRun=function(n,i){for(;i-- >0;)a=a<<8^e[(a>>>24^n)&255]}};return t}()});var c1=O((NH,oR)=>{oR.exports={name:"seek-bzip",version:"1.0.6",contributors:["C. Scott Ananian (http://cscott.net)","Eli Skeggs","Kevin Kwok","Rob Landley (http://landley.net)"],description:"a pure-JavaScript Node.JS module for random-access decoding bzip2 data",main:"./lib/index.js",repository:{type:"git",url:"https://github.com/cscott/seek-bzip.git"},license:"MIT",bin:{"seek-bunzip":"./bin/seek-bunzip","seek-table":"./bin/seek-bzip-table"},directories:{test:"test"},dependencies:{commander:"^2.8.1"},devDependencies:{fibers:"~1.0.6",mocha:"~2.2.5"},scripts:{test:"mocha"}}});var b1=O((jH,v1)=>{var sR=i1(),mr=o1(),f1=l1(),m1=c1(),rl=20,u1=258,p1=0,lR=1,cR=2,uR=6,pR=50,dR="314159265359",fR="177245385090",d1=function(e,t){var a=e[t],n;for(n=t;n>0;n--)e[n]=e[n-1];return e[0]=a,a},De={OK:0,LAST_BLOCK:-1,NOT_BZIP_DATA:-2,UNEXPECTED_INPUT_EOF:-3,UNEXPECTED_OUTPUT_EOF:-4,DATA_ERROR:-5,OUT_OF_MEMORY:-6,OBSOLETE_INPUT:-7,END_OF_BLOCK:-8},Da={};Da[De.LAST_BLOCK]="Bad file checksum";Da[De.NOT_BZIP_DATA]="Not bzip data";Da[De.UNEXPECTED_INPUT_EOF]="Unexpected input EOF";Da[De.UNEXPECTED_OUTPUT_EOF]="Unexpected output EOF";Da[De.DATA_ERROR]="Data error";Da[De.OUT_OF_MEMORY]="Out of memory";Da[De.OBSOLETE_INPUT]="Obsolete (pre 0.9.5) bzip format not supported.";var ut=function(e,t){var a=Da[e]||"unknown error";t&&(a+=": "+t);var n=new TypeError(a);throw n.errorCode=e,n},gt=function(e,t){this.writePos=this.writeCurrent=this.writeCount=0,this._start_bunzip(e,t)};gt.prototype._init_block=function(){var e=this._get_next_block();return e?(this.blockCRC=new f1,!0):(this.writeCount=-1,!1)};gt.prototype._start_bunzip=function(e,t){var a=new Buffer(4);(e.read(a,0,4)!==4||String.fromCharCode(a[0],a[1],a[2])!=="BZh")&&ut(De.NOT_BZIP_DATA,"bad magic");var n=a[3]-48;(n<1||n>9)&&ut(De.NOT_BZIP_DATA,"level out of range"),this.reader=new sR(e),this.dbufSize=1e5*n,this.nextoutput=0,this.outputStream=t,this.streamCRC=0};gt.prototype._get_next_block=function(){var e,t,a,n=this.reader,i=n.pi();if(i===fR)return!1;i!==dR&&ut(De.NOT_BZIP_DATA),this.targetBlockCRC=n.read(32)>>>0,this.streamCRC=(this.targetBlockCRC^(this.streamCRC<<1|this.streamCRC>>>31))>>>0,n.read(1)&&ut(De.OBSOLETE_INPUT);var r=n.read(24);r>this.dbufSize&&ut(De.DATA_ERROR,"initial position out of bounds");var o=n.read(16),s=new Buffer(256),l=0;for(e=0;e<16;e++)if(o&1<<15-e){var u=e*16;for(a=n.read(16),t=0;t<16;t++)a&1<<15-t&&(s[l++]=u+t)}var c=n.read(3);(cuR)&&ut(De.DATA_ERROR);var f=n.read(15);f===0&&ut(De.DATA_ERROR);var p=new Buffer(256);for(e=0;e=c&&ut(De.DATA_ERROR);b[e]=d1(p,t)}var d=l+2,m=[],h;for(t=0;trl)&&ut(De.DATA_ERROR),!!n.read(1);)n.read(1)?o--:o++;v[e]=o}var E,g;for(E=g=v[0],e=1;eg?g=v[e]:v[e]=f&&ut(De.DATA_ERROR),h=m[b[A++]]),e=h.minLen,t=n.read(e);e>h.maxLen&&ut(De.DATA_ERROR),!(t<=h.limit[e]);e++)t=t<<1|n.read(1);t-=h.base[e],(t<0||t>=u1)&&ut(De.DATA_ERROR);var F=h.permute[t];if(F===p1||F===lR){y||(y=1,o=0),F===p1?o+=y:o+=2*y,y<<=1;continue}if(y)for(y=0,S+o>this.dbufSize&&ut(De.DATA_ERROR),_=s[p[0]],C[_]+=o;o--;)P[S++]=_;if(F>l)break;S>=this.dbufSize&&ut(De.DATA_ERROR),e=F-1,_=d1(p,e),_=s[_],C[_]++,P[S++]=_}for((r<0||r>=S)&&ut(De.DATA_ERROR),t=0,e=0;e<256;e++)a=t+C[e],C[e]=t,t=a;for(e=0;e>=8,L=-1),this.writePos=B,this.writeCurrent=j,this.writeCount=S,this.writeRun=L,!0};gt.prototype._read_bunzip=function(e,t){var a,n,i;if(this.writeCount<0)return 0;for(var r=0,o=this.dbuf,s=this.writePos,l=this.writeCurrent,u=this.writeCount,c=this.outputsize,f=this.writeRun;u;){for(u--,n=l,s=o[s],l=s&255,s>>=8,f++===3?(a=l,i=n,l=-1):(a=1,i=l),this.blockCRC.updateCRCRun(i,a);a--;)this.outputStream.writeByte(i),this.nextoutput++;l!=n&&(f=0)}return this.writeCount=u,this.blockCRC.getCRC()!==this.targetBlockCRC&&ut(De.DATA_ERROR,"Bad block CRC (got "+this.blockCRC.getCRC().toString(16)+" expected "+this.targetBlockCRC.toString(16)+")"),this.nextoutput};var rd=function(e){if("readByte"in e)return e;var t=new mr;return t.pos=0,t.readByte=function(){return e[this.pos++]},t.seek=function(a){this.pos=a},t.eof=function(){return this.pos>=e.length},t},h1=function(e){var t=new mr,a=!0;if(e)if(typeof e=="number")t.buffer=new Buffer(e),a=!1;else{if("writeByte"in e)return e;t.buffer=e,a=!1}else t.buffer=new Buffer(16384);return t.pos=0,t.writeByte=function(n){if(a&&this.pos>=this.buffer.length){var i=new Buffer(this.buffer.length*2);this.buffer.copy(i),this.buffer=i}this.buffer[this.pos++]=n},t.getBuffer=function(){if(this.pos!==this.buffer.length){if(!a)throw new TypeError("outputsize does not match decoded input");var n=new Buffer(this.pos);this.buffer.copy(n,0,0,this.pos),this.buffer=n}return this.buffer},t._coerced=!0,t};gt.Err=De;gt.decode=function(e,t,a){for(var n=rd(e),i=h1(t),r=new gt(n,i);!("eof"in n&&n.eof());)if(r._init_block())r._read_bunzip();else{var o=r.reader.read(32)>>>0;if(o!==r.streamCRC&&ut(De.DATA_ERROR,"Bad stream CRC (got "+r.streamCRC.toString(16)+" expected "+o.toString(16)+")"),a&&"eof"in n&&!n.eof())r._start_bunzip(n,i);else break}if("getBuffer"in i)return i.getBuffer()};gt.decodeBlock=function(e,t,a){var n=rd(e),i=h1(a),r=new gt(n,i);r.reader.seek(t);var o=r._get_next_block();if(o&&(r.blockCRC=new f1,r.writeCopies=0,r._read_bunzip()),"getBuffer"in i)return i.getBuffer()};gt.table=function(e,t,a){var n=new mr;n.delegate=rd(e),n.pos=0,n.readByte=function(){return this.pos++,this.delegate.readByte()},n.delegate.eof&&(n.eof=n.delegate.eof.bind(n.delegate));var i=new mr;i.pos=0,i.writeByte=function(){this.pos++};for(var r=new gt(n,i),o=r.dbufSize;!("eof"in n&&n.eof());){var s=n.pos*8+r.reader.bitOffset;if(r.reader.hasByte&&(s-=8),r._init_block()){var l=i.pos;r._read_bunzip(),t(s,i.pos-l)}else{var u=r.reader.read(32);if(a&&"eof"in n&&!n.eof())r._start_bunzip(n,i),console.assert(r.dbufSize===o,"shouldn't change block size within multistream file");else break}}};gt.Stream=mr;gt.version=m1.version;gt.license=m1.license;v1.exports=gt});var y1=O((g1,x1)=>{var mR=require("stream");g1=x1.exports=od;od.through=od;function od(e,t,a){e=e||function(c){this.queue(c)},t=t||function(){this.queue(null)};var n=!1,i=!1,r=[],o=!1,s=new mR;s.readable=s.writable=!0,s.paused=!1,s.autoDestroy=!(a&&a.autoDestroy===!1),s.write=function(c){return e.call(this,c),!s.paused};function l(){for(;r.length&&!s.paused;){var c=r.shift();if(c===null)return s.emit("end");s.emit("data",c)}}s.queue=s.push=function(c){return o||(c===null&&(o=!0),r.push(c),l()),s},s.on("end",function(){s.readable=!1,!s.writable&&s.autoDestroy&&process.nextTick(function(){s.destroy()})});function u(){s.writable=!1,t.call(s),!s.readable&&s.autoDestroy&&s.destroy()}return s.end=function(c){if(!n)return n=!0,arguments.length&&s.write(c),u(),s},s.destroy=function(){if(!i)return i=!0,n=!0,r.length=0,s.writable=s.readable=!1,s.emit("close"),s},s.pause=function(){if(!s.paused)return s.paused=!0,s},s.resume=function(){return s.paused&&(s.paused=!1,s.emit("resume")),l(),s.paused||s.emit("drain"),s},s}});var E1=O((LH,w1)=>{function sd(e){this.name="Bzip2Error",this.message=e,this.stack=new Error().stack}sd.prototype=new Error;var pt={Error:function(e){throw new sd(e)}},na={};na.Bzip2Error=sd;na.crcTable=[0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188];na.array=function(e){var t=0,a=0,n=[0,1,3,7,15,31,63,127,255];return function(i){for(var r=0;i>0;){var o=8-t;i>=o?(r<<=o,r|=n[o]&e[a++],t=0,i-=o):(r<<=i,r|=(e[a]&n[i]<<8-i-t)>>8-i-t,t+=i,i=0)}return r}};na.simple=function(e,t){var a=na.array(e),n=na.header(a),i=!1,r=1e5*n,o=new Int32Array(r);do i=na.decompress(a,t,o,r);while(!i)};na.header=function(e){this.byteCount=new Int32Array(256),this.symToByte=new Uint8Array(256),this.mtfSymbol=new Int32Array(256),this.selectors=new Uint8Array(32768),e(8*3)!=4348520&&pt.Error("No magic number found");var t=e(8)-48;return(t<1||t>9)&&pt.Error("Not a BZIP archive"),t};na.decompress=function(e,t,a,n,i){for(var r=20,o=258,s=0,l=1,u=50,c=-1,f="",p=0;p<6;p++)f+=e(8).toString(16);if(f=="177245385090"){var b=e(32)|0;return b!==i&&pt.Error("Error in bzip2: crc32 do not match"),e(null),null}f!="314159265359"&&pt.Error("eek not valid bzip data");var d=e(32)|0;e(1)&&pt.Error("unsupported obsolete version");var m=e(24);m>n&&pt.Error("Initial position larger than buffer size");var h=e(16),v=0;for(p=0;p<16;p++)if(h&1<<15-p){var x=e(16);for(D=0;D<16;D++)x&1<<15-D&&(this.symToByte[v++]=16*p+D)}var E=e(3);(E<2||E>6)&&pt.Error("another error");var g=e(15);g==0&&pt.Error("meh");for(var p=0;p=E&&pt.Error("whoops another error");for(var w=this.mtfSymbol[D],x=D-1;x>=0;x--)this.mtfSymbol[x+1]=this.mtfSymbol[x];this.mtfSymbol[0]=w,this.selectors[p]=w}for(var T=v+2,C=[],y=new Uint8Array(o),S=new Uint16Array(r+1),A,D=0;Dr)&&pt.Error("I gave up a while ago on writing error messages"),!!e(1);)e(1)?h--:h++;y[p]=h}var _,P;_=P=y[0];for(var p=1;pP?P=y[p]:y[p]<_&&(_=y[p]);A=C[D]={},A.permute=new Int32Array(o),A.limit=new Int32Array(r+1),A.base=new Int32Array(r+1),A.minLen=_,A.maxLen=P;for(var F=A.base,B=A.limit,j=0,p=_;p<=P;p++)for(var h=0;h=g&&pt.Error("meow i'm a kitty, that's an error"),A=C[this.selectors[N++]],F=A.base,B=A.limit),p=A.minLen,D=e(p);p>A.maxLen&&pt.Error("rawr i'm a dinosaur"),!(D<=B[p]);)p++,D=D<<1|e(1);D-=F[p],(D<0||D>=o)&&pt.Error("moo i'm a cow");var M=A.permute[D];if(M==s||M==l){L||(L=1,h=0),M==s?h+=L:h+=2*L,L<<=1;continue}if(L)for(L=0,k+h>n&&pt.Error("Boom."),w=this.symToByte[this.mtfSymbol[0]],this.byteCount[w]+=h;h--;)a[k++]=w;if(M>v)break;k>=n&&pt.Error("I can't think of anything. Error"),p=M-1,w=this.mtfSymbol[p];for(var x=p-1;x>=0;x--)this.mtfSymbol[x+1]=this.mtfSymbol[x];this.mtfSymbol[0]=w,w=this.symToByte[w],this.byteCount[w]++,a[k++]=w}(m<0||m>=k)&&pt.Error("I'm a monkey and I'm throwing something at someone, namely you");for(var D=0,p=0;p<256;p++)x=D+this.byteCount[p],this.byteCount[p]=D,D=x;for(var p=0;p>=8,Z=-1),k=k;for(var pe,fe,ee;k;){for(k--,fe=q,V=a[V],q=V&255,V>>=8,Z++==3?(pe=q,ee=fe,q=-1):(pe=1,ee=q);pe--;)c=(c<<8^this.crcTable[(c>>24^ee)&255])&4294967295,t(ee);q!=fe&&(Z=0)}return c=(c^-1)>>>0,(c|0)!=(d|0)&&pt.Error("Error in bzip2: crc32 do not match"),i=(c^(i<<1|i>>>31))&4294967295,i};w1.exports=na});var A1=O((MH,C1)=>{var S1=[0,1,3,7,15,31,63,127,255];C1.exports=function(t){var a=0,n=0,i=t(),r=function(o){if(o===null&&a!=0){a=0,n++;return}for(var s=0;o>0;){n>=i.length&&(n=0,i=t());var l=8-a;a===0&&o>0&&r.bytesRead++,o>=l?(s<<=l,s|=S1[l]&i[n++],a=0,o-=l):(s<<=o,s|=(i[n]&S1[o]<<8-o-a)>>8-o-a,a+=o,o=0)}return s};return r.bytesRead=0,r}});var T1=O((DH,_1)=>{var hR=y1(),I1=E1(),vR=A1();_1.exports=bR;function bR(){var e=[],t=0,a=0,n=!1,i=!1,r=null,o=null;function s(c){if(a){var f=1e5*a,p=new Int32Array(f),b=[],d=function(m){b.push(m)};return o=I1.decompress(r,d,p,f,o),o===null?(a=0,!1):(c(Buffer.from(b)),!0)}else return a=I1.header(r),o=0,!0}var l=0;function u(c){if(!n)try{return s(function(f){c.queue(f),f!==null&&(l+=f.length)})}catch(f){return c.emit("error",f),n=!0,!1}}return hR(function(f){for(e.push(f),t+=f.length,r===null&&(r=vR(function(){return e.shift()}));!n&&t-r.bytesRead+1>=(25e3+1e5*a||4);)u(this)},function(f){for(;!n&&r&&t>r.bytesRead;)u(this);n||(o!==null&&this.emit("error",new Error("input stream ended prematurely")),this.queue(null))})}});var O1=O((zH,P1)=>{"use strict";var k1=il(),F1=t1(),gR=Ds(),xR=b1(),yR=T1();P1.exports=()=>e=>!Buffer.isBuffer(e)&&!gR(e)?Promise.reject(new TypeError(`Expected a Buffer or Stream, got ${typeof e}`)):Buffer.isBuffer(e)&&(!F1(e)||F1(e).ext!=="bz2")?Promise.resolve([]):Buffer.isBuffer(e)?k1()(xR.decode(e)):k1()(e.pipe(yR()))});var B1=O((GH,R1)=>{"use strict";R1.exports=e=>{let t=new Uint8Array(e);if(!(t&&t.length>1))return null;let a=(n,i)=>{i=Object.assign({offset:0},i);for(let r=0;rs[o]===66&&s[o+1]===130);if(i>=0){let r=i+3,o=s=>Array.from(s).every((l,u)=>n[r+u]===l.charCodeAt(0));if(o("matroska"))return{ext:"mkv",mime:"video/x-matroska"};if(o("webm"))return{ext:"webm",mime:"video/webm"}}}return a([0,0,0,20,102,116,121,112,113,116,32,32])||a([102,114,101,101],{offset:4})||a([102,116,121,112,113,116,32,32],{offset:4})||a([109,100,97,116],{offset:4})||a([119,105,100,101],{offset:4})?{ext:"mov",mime:"video/quicktime"}:a([82,73,70,70])&&a([65,86,73],{offset:8})?{ext:"avi",mime:"video/x-msvideo"}:a([48,38,178,117,142,102,207,17,166,217])?{ext:"wmv",mime:"video/x-ms-wmv"}:a([0,0,1,186])?{ext:"mpg",mime:"video/mpeg"}:a([73,68,51])||a([255,251])?{ext:"mp3",mime:"audio/mpeg"}:a([102,116,121,112,77,52,65],{offset:4})||a([77,52,65,32])?{ext:"m4a",mime:"audio/m4a"}:a([79,112,117,115,72,101,97,100],{offset:28})?{ext:"opus",mime:"audio/opus"}:a([79,103,103,83])?{ext:"ogg",mime:"audio/ogg"}:a([102,76,97,67])?{ext:"flac",mime:"audio/x-flac"}:a([82,73,70,70])&&a([87,65,86,69],{offset:8})?{ext:"wav",mime:"audio/x-wav"}:a([35,33,65,77,82,10])?{ext:"amr",mime:"audio/amr"}:a([37,80,68,70])?{ext:"pdf",mime:"application/pdf"}:a([77,90])?{ext:"exe",mime:"application/x-msdownload"}:(t[0]===67||t[0]===70)&&a([87,83],{offset:1})?{ext:"swf",mime:"application/x-shockwave-flash"}:a([123,92,114,116,102])?{ext:"rtf",mime:"application/rtf"}:a([0,97,115,109])?{ext:"wasm",mime:"application/wasm"}:a([119,79,70,70])&&(a([0,1,0,0],{offset:4})||a([79,84,84,79],{offset:4}))?{ext:"woff",mime:"font/woff"}:a([119,79,70,50])&&(a([0,1,0,0],{offset:4})||a([79,84,84,79],{offset:4}))?{ext:"woff2",mime:"font/woff2"}:a([76,80],{offset:34})&&(a([0,0,1],{offset:8})||a([1,0,2],{offset:8})||a([2,0,2],{offset:8}))?{ext:"eot",mime:"application/octet-stream"}:a([0,1,0,0,0])?{ext:"ttf",mime:"font/ttf"}:a([79,84,84,79,0])?{ext:"otf",mime:"font/otf"}:a([0,0,1,0])?{ext:"ico",mime:"image/x-icon"}:a([70,76,86,1])?{ext:"flv",mime:"video/x-flv"}:a([37,33])?{ext:"ps",mime:"application/postscript"}:a([253,55,122,88,90,0])?{ext:"xz",mime:"application/x-xz"}:a([83,81,76,105])?{ext:"sqlite",mime:"application/x-sqlite3"}:a([78,69,83,26])?{ext:"nes",mime:"application/x-nintendo-nes-rom"}:a([67,114,50,52])?{ext:"crx",mime:"application/x-google-chrome-extension"}:a([77,83,67,70])||a([73,83,99,40])?{ext:"cab",mime:"application/vnd.ms-cab-compressed"}:a([33,60,97,114,99,104,62,10,100,101,98,105,97,110,45,98,105,110,97,114,121])?{ext:"deb",mime:"application/x-deb"}:a([33,60,97,114,99,104,62])?{ext:"ar",mime:"application/x-unix-archive"}:a([237,171,238,219])?{ext:"rpm",mime:"application/x-rpm"}:a([31,160])||a([31,157])?{ext:"Z",mime:"application/x-compress"}:a([76,90,73,80])?{ext:"lz",mime:"application/x-lzip"}:a([208,207,17,224,161,177,26,225])?{ext:"msi",mime:"application/x-msi"}:a([6,14,43,52,2,5,1,1,13,1,2,1,1,2])?{ext:"mxf",mime:"application/mxf"}:a([71],{offset:4})&&(a([71],{offset:192})||a([71],{offset:196}))?{ext:"mts",mime:"video/mp2t"}:a([66,76,69,78,68,69,82])?{ext:"blend",mime:"application/x-blender"}:a([66,80,71,251])?{ext:"bpg",mime:"image/bpg"}:null}});var L1=O((HH,j1)=>{"use strict";var wR=require("zlib"),ER=il(),N1=B1(),SR=Ds();j1.exports=()=>e=>{if(!Buffer.isBuffer(e)&&!SR(e))return Promise.reject(new TypeError(`Expected a Buffer or Stream, got ${typeof e}`));if(Buffer.isBuffer(e)&&(!N1(e)||N1(e).ext!=="gz"))return Promise.resolve([]);let t=wR.createGunzip(),a=ER()(t);return Buffer.isBuffer(e)?t.end(e):e.pipe(t),a}});var D1=O((WH,M1)=>{"use strict";M1.exports=function(e){return e&&e.length>1?e[0]===255&&e[1]===216&&e[2]===255?{ext:"jpg",mime:"image/jpeg"}:e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71?{ext:"png",mime:"image/png"}:e[0]===71&&e[1]===73&&e[2]===70?{ext:"gif",mime:"image/gif"}:e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80?{ext:"webp",mime:"image/webp"}:e[0]===70&&e[1]===76&&e[2]===73&&e[3]===70?{ext:"flif",mime:"image/flif"}:(e[0]===73&&e[1]===73&&e[2]===42&&e[3]===0||e[0]===77&&e[1]===77&&e[2]===0&&e[3]===42)&&e[8]===67&&e[9]===82?{ext:"cr2",mime:"image/x-canon-cr2"}:e[0]===73&&e[1]===73&&e[2]===42&&e[3]===0||e[0]===77&&e[1]===77&&e[2]===0&&e[3]===42?{ext:"tif",mime:"image/tiff"}:e[0]===66&&e[1]===77?{ext:"bmp",mime:"image/bmp"}:e[0]===73&&e[1]===73&&e[2]===188?{ext:"jxr",mime:"image/vnd.ms-photo"}:e[0]===56&&e[1]===66&&e[2]===80&&e[3]===83?{ext:"psd",mime:"image/vnd.adobe.photoshop"}:e[0]===80&&e[1]===75&&e[2]===3&&e[3]===4&&e[30]===109&&e[31]===105&&e[32]===109&&e[33]===101&&e[34]===116&&e[35]===121&&e[36]===112&&e[37]===101&&e[38]===97&&e[39]===112&&e[40]===112&&e[41]===108&&e[42]===105&&e[43]===99&&e[44]===97&&e[45]===116&&e[46]===105&&e[47]===111&&e[48]===110&&e[49]===47&&e[50]===101&&e[51]===112&&e[52]===117&&e[53]===98&&e[54]===43&&e[55]===122&&e[56]===105&&e[57]===112?{ext:"epub",mime:"application/epub+zip"}:e[0]===80&&e[1]===75&&e[2]===3&&e[3]===4&&e[30]===77&&e[31]===69&&e[32]===84&&e[33]===65&&e[34]===45&&e[35]===73&&e[36]===78&&e[37]===70&&e[38]===47&&e[39]===109&&e[40]===111&&e[41]===122&&e[42]===105&&e[43]===108&&e[44]===108&&e[45]===97&&e[46]===46&&e[47]===114&&e[48]===115&&e[49]===97?{ext:"xpi",mime:"application/x-xpinstall"}:e[0]===80&&e[1]===75&&(e[2]===3||e[2]===5||e[2]===7)&&(e[3]===4||e[3]===6||e[3]===8)?{ext:"zip",mime:"application/zip"}:e[257]===117&&e[258]===115&&e[259]===116&&e[260]===97&&e[261]===114?{ext:"tar",mime:"application/x-tar"}:e[0]===82&&e[1]===97&&e[2]===114&&e[3]===33&&e[4]===26&&e[5]===7&&(e[6]===0||e[6]===1)?{ext:"rar",mime:"application/x-rar-compressed"}:e[0]===31&&e[1]===139&&e[2]===8?{ext:"gz",mime:"application/gzip"}:e[0]===66&&e[1]===90&&e[2]===104?{ext:"bz2",mime:"application/x-bzip2"}:e[0]===55&&e[1]===122&&e[2]===188&&e[3]===175&&e[4]===39&&e[5]===28?{ext:"7z",mime:"application/x-7z-compressed"}:e[0]===120&&e[1]===1?{ext:"dmg",mime:"application/x-apple-diskimage"}:e[0]===0&&e[1]===0&&e[2]===0&&(e[3]===24||e[3]===32)&&e[4]===102&&e[5]===116&&e[6]===121&&e[7]===112||e[0]===51&&e[1]===103&&e[2]===112&&e[3]===53||e[0]===0&&e[1]===0&&e[2]===0&&e[3]===28&&e[4]===102&&e[5]===116&&e[6]===121&&e[7]===112&&e[8]===109&&e[9]===112&&e[10]===52&&e[11]===50&&e[16]===109&&e[17]===112&&e[18]===52&&e[19]===49&&e[20]===109&&e[21]===112&&e[22]===52&&e[23]===50&&e[24]===105&&e[25]===115&&e[26]===111&&e[27]===109||e[0]===0&&e[1]===0&&e[2]===0&&e[3]===28&&e[4]===102&&e[5]===116&&e[6]===121&&e[7]===112&&e[8]===105&&e[9]===115&&e[10]===111&&e[11]===109||e[0]===0&&e[1]===0&&e[2]===0&&e[3]===28&&e[4]===102&&e[5]===116&&e[6]===121&&e[7]===112&&e[8]===109&&e[9]===112&&e[10]===52&&e[11]===50&&e[12]===0&&e[13]===0&&e[14]===0&&e[15]===0?{ext:"mp4",mime:"video/mp4"}:e[0]===0&&e[1]===0&&e[2]===0&&e[3]===28&&e[4]===102&&e[5]===116&&e[6]===121&&e[7]===112&&e[8]===77&&e[9]===52&&e[10]===86?{ext:"m4v",mime:"video/x-m4v"}:e[0]===77&&e[1]===84&&e[2]===104&&e[3]===100?{ext:"mid",mime:"audio/midi"}:e[31]===109&&e[32]===97&&e[33]===116&&e[34]===114&&e[35]===111&&e[36]===115&&e[37]===107&&e[38]===97?{ext:"mkv",mime:"video/x-matroska"}:e[0]===26&&e[1]===69&&e[2]===223&&e[3]===163?{ext:"webm",mime:"video/webm"}:e[0]===0&&e[1]===0&&e[2]===0&&e[3]===20&&e[4]===102&&e[5]===116&&e[6]===121&&e[7]===112?{ext:"mov",mime:"video/quicktime"}:e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70&&e[8]===65&&e[9]===86&&e[10]===73?{ext:"avi",mime:"video/x-msvideo"}:e[0]===48&&e[1]===38&&e[2]===178&&e[3]===117&&e[4]===142&&e[5]===102&&e[6]===207&&e[7]===17&&e[8]===166&&e[9]===217?{ext:"wmv",mime:"video/x-ms-wmv"}:e[0]===0&&e[1]===0&&e[2]===1&&e[3].toString(16)[0]==="b"?{ext:"mpg",mime:"video/mpeg"}:e[0]===73&&e[1]===68&&e[2]===51||e[0]===255&&e[1]===251?{ext:"mp3",mime:"audio/mpeg"}:e[4]===102&&e[5]===116&&e[6]===121&&e[7]===112&&e[8]===77&&e[9]===52&&e[10]===65||e[0]===77&&e[1]===52&&e[2]===65&&e[3]===32?{ext:"m4a",mime:"audio/m4a"}:e[28]===79&&e[29]===112&&e[30]===117&&e[31]===115&&e[32]===72&&e[33]===101&&e[34]===97&&e[35]===100?{ext:"opus",mime:"audio/opus"}:e[0]===79&&e[1]===103&&e[2]===103&&e[3]===83?{ext:"ogg",mime:"audio/ogg"}:e[0]===102&&e[1]===76&&e[2]===97&&e[3]===67?{ext:"flac",mime:"audio/x-flac"}:e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70&&e[8]===87&&e[9]===65&&e[10]===86&&e[11]===69?{ext:"wav",mime:"audio/x-wav"}:e[0]===35&&e[1]===33&&e[2]===65&&e[3]===77&&e[4]===82&&e[5]===10?{ext:"amr",mime:"audio/amr"}:e[0]===37&&e[1]===80&&e[2]===68&&e[3]===70?{ext:"pdf",mime:"application/pdf"}:e[0]===77&&e[1]===90?{ext:"exe",mime:"application/x-msdownload"}:(e[0]===67||e[0]===70)&&e[1]===87&&e[2]===83?{ext:"swf",mime:"application/x-shockwave-flash"}:e[0]===123&&e[1]===92&&e[2]===114&&e[3]===116&&e[4]===102?{ext:"rtf",mime:"application/rtf"}:e[0]===119&&e[1]===79&&e[2]===70&&e[3]===70&&(e[4]===0&&e[5]===1&&e[6]===0&&e[7]===0||e[4]===79&&e[5]===84&&e[6]===84&&e[7]===79)?{ext:"woff",mime:"application/font-woff"}:e[0]===119&&e[1]===79&&e[2]===70&&e[3]===50&&(e[4]===0&&e[5]===1&&e[6]===0&&e[7]===0||e[4]===79&&e[5]===84&&e[6]===84&&e[7]===79)?{ext:"woff2",mime:"application/font-woff"}:e[34]===76&&e[35]===80&&(e[8]===0&&e[9]===0&&e[10]===1||e[8]===1&&e[9]===0&&e[10]===2||e[8]===2&&e[9]===0&&e[10]===2)?{ext:"eot",mime:"application/octet-stream"}:e[0]===0&&e[1]===1&&e[2]===0&&e[3]===0&&e[4]===0?{ext:"ttf",mime:"application/font-sfnt"}:e[0]===79&&e[1]===84&&e[2]===84&&e[3]===79&&e[4]===0?{ext:"otf",mime:"application/font-sfnt"}:e[0]===0&&e[1]===0&&e[2]===1&&e[3]===0?{ext:"ico",mime:"image/x-icon"}:e[0]===70&&e[1]===76&&e[2]===86&&e[3]===1?{ext:"flv",mime:"video/x-flv"}:e[0]===37&&e[1]===33?{ext:"ps",mime:"application/postscript"}:e[0]===253&&e[1]===55&&e[2]===122&&e[3]===88&&e[4]===90&&e[5]===0?{ext:"xz",mime:"application/x-xz"}:e[0]===83&&e[1]===81&&e[2]===76&&e[3]===105?{ext:"sqlite",mime:"application/x-sqlite3"}:e[0]===78&&e[1]===69&&e[2]===83&&e[3]===26?{ext:"nes",mime:"application/x-nintendo-nes-rom"}:e[0]===67&&e[1]===114&&e[2]===50&&e[3]===52?{ext:"crx",mime:"application/x-google-chrome-extension"}:e[0]===77&&e[1]===83&&e[2]===67&&e[3]===70||e[0]===73&&e[1]===83&&e[2]===99&&e[3]===40?{ext:"cab",mime:"application/vnd.ms-cab-compressed"}:e[0]===33&&e[1]===60&&e[2]===97&&e[3]===114&&e[4]===99&&e[5]===104&&e[6]===62&&e[7]===10&&e[8]===100&&e[9]===101&&e[10]===98&&e[11]===105&&e[12]===97&&e[13]===110&&e[14]===45&&e[15]===98&&e[16]===105&&e[17]===110&&e[18]===97&&e[19]===114&&e[20]===121?{ext:"deb",mime:"application/x-deb"}:e[0]===33&&e[1]===60&&e[2]===97&&e[3]===114&&e[4]===99&&e[5]===104&&e[6]===62?{ext:"ar",mime:"application/x-unix-archive"}:e[0]===237&&e[1]===171&&e[2]===238&&e[3]===219?{ext:"rpm",mime:"application/x-rpm"}:e[0]===31&&e[1]===160||e[0]===31&&e[1]===157?{ext:"Z",mime:"application/x-compress"}:e[0]===76&&e[1]===90&&e[2]===73&&e[3]===80?{ext:"lz",mime:"application/x-lzip"}:e[0]===208&&e[1]===207&&e[2]===17&&e[3]===224&&e[4]===161&&e[5]===177&&e[6]===26&&e[7]===225?{ext:"msi",mime:"application/x-msi"}:null:null}});var Z1=O((VH,J1)=>{"use strict";var cd="pending",z1="settled",ol="fulfilled",sl="rejected",CR=function(){},G1=typeof global!="undefined"&&typeof global.process!="undefined"&&typeof global.process.emit=="function",AR=typeof setImmediate=="undefined"?setTimeout:setImmediate,hr=[],ld;function IR(){for(var e=0;e{"use strict";q1.exports=typeof Promise=="function"?Promise:Z1()});var cl=O((JH,Y1)=>{"use strict";var $1=Object.getOwnPropertySymbols,PR=Object.prototype.hasOwnProperty,OR=Object.prototype.propertyIsEnumerable;function RR(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function BR(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},a=0;a<10;a++)t["_"+String.fromCharCode(a)]=a;var n=Object.getOwnPropertyNames(t).map(function(r){return t[r]});if(n.join("")!=="0123456789")return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(r){i[r]=r}),Object.keys(Object.assign({},i)).join("")==="abcdefghijklmnopqrst"}catch(r){return!1}}Y1.exports=BR()?Object.assign:function(e,t){for(var a,n=RR(e),i,r=1;r{var NR=require("stream").PassThrough,jR=cl();K1.exports=function(e){e=jR({},e);var t=e.array,a=e.encoding,n=a==="buffer",i=!1;t?i=!(a||n):a=a||"utf8",n&&(a=null);var r=0,o=[],s=new NR({objectMode:i});return a&&s.setEncoding(a),s.on("data",function(l){o.push(l),i?r=o.length:r+=l.length}),s.getBufferedValue=function(){return t?o:n?Buffer.concat(o,r):o.join("")},s.getBufferedLength=function(){return r},s}});var tE=O((qH,ul)=>{"use strict";var eE=X1(),pd=cl(),LR=Q1();function dd(e,t){if(!e)return eE.reject(new Error("Expected a stream"));t=pd({maxBuffer:1/0},t);var a=t.maxBuffer,n,i,r=new eE(function(o,s){n=LR(t),e.once("error",l),e.pipe(n),n.on("data",function(){n.getBufferedLength()>a&&s(new Error("maxBuffer exceeded"))}),n.once("error",l),n.on("end",o),i=function(){e.unpipe&&e.unpipe(n)};function l(u){u&&(u.bufferedData=n.getBufferedValue()),s(u)}});return r.then(i,i),r.then(function(){return n.getBufferedValue()})}ul.exports=dd;ul.exports.buffer=function(e,t){return dd(e,pd({},t,{encoding:"buffer"}))};ul.exports.array=function(e,t){return dd(e,pd({},t,{array:!0}))}});var rE=O((XH,iE)=>{"use strict";var aE=function(e,t,a){return function(){for(var n=this,i=new Array(arguments.length),r=0;r{lE.exports=pl;function pl(){this.pending=0,this.max=1/0,this.listeners=[],this.waiting=[],this.error=null}pl.prototype.go=function(e){this.pending0&&e.pending{var br=require("fs"),dl=require("util"),fd=require("stream"),uE=fd.Readable,md=fd.Writable,MR=fd.PassThrough,DR=cE(),fl=require("events").EventEmitter;gr.createFromBuffer=zR;gr.createFromFd=GR;gr.BufferSlicer=Ea;gr.FdSlicer=wa;dl.inherits(wa,fl);function wa(e,t){t=t||{},fl.call(this),this.fd=e,this.pend=new DR,this.pend.max=1,this.refCount=0,this.autoClose=!!t.autoClose}wa.prototype.read=function(e,t,a,n,i){var r=this;r.pend.go(function(o){br.read(r.fd,e,t,a,n,function(s,l,u){o(),i(s,l,u)})})};wa.prototype.write=function(e,t,a,n,i){var r=this;r.pend.go(function(o){br.write(r.fd,e,t,a,n,function(s,l,u){o(),i(s,l,u)})})};wa.prototype.createReadStream=function(e){return new ml(this,e)};wa.prototype.createWriteStream=function(e){return new hl(this,e)};wa.prototype.ref=function(){this.refCount+=1};wa.prototype.unref=function(){var e=this;if(e.refCount-=1,e.refCount>0)return;if(e.refCount<0)throw new Error("invalid unref");e.autoClose&&br.close(e.fd,t);function t(a){a?e.emit("error",a):e.emit("close")}};dl.inherits(ml,uE);function ml(e,t){t=t||{},uE.call(this,t),this.context=e,this.context.ref(),this.start=t.start||0,this.endOffset=t.end,this.pos=this.start,this.destroyed=!1}ml.prototype._read=function(e){var t=this;if(!t.destroyed){var a=Math.min(t._readableState.highWaterMark,e);if(t.endOffset!=null&&(a=Math.min(a,t.endOffset-t.pos)),a<=0){t.destroyed=!0,t.push(null),t.context.unref();return}t.context.pend.go(function(n){if(t.destroyed)return n();var i=new Buffer(a);br.read(t.context.fd,i,0,a,t.pos,function(r,o){r?t.destroy(r):o===0?(t.destroyed=!0,t.push(null),t.context.unref()):(t.pos+=o,t.push(i.slice(0,o))),n()})})}};ml.prototype.destroy=function(e){this.destroyed||(e=e||new Error("stream destroyed"),this.destroyed=!0,this.emit("error",e),this.context.unref())};dl.inherits(hl,md);function hl(e,t){t=t||{},md.call(this,t),this.context=e,this.context.ref(),this.start=t.start||0,this.endOffset=t.end==null?1/0:+t.end,this.bytesWritten=0,this.pos=this.start,this.destroyed=!1,this.on("finish",this.destroy.bind(this))}hl.prototype._write=function(e,t,a){var n=this;if(!n.destroyed){if(n.pos+e.length>n.endOffset){var i=new Error("maximum file length exceeded");i.code="ETOOBIG",n.destroy(),a(i);return}n.context.pend.go(function(r){if(n.destroyed)return r();br.write(n.context.fd,e,0,e.length,n.pos,function(o,s){o?(n.destroy(),r(),a(o)):(n.bytesWritten+=s,n.pos+=s,n.emit("progress"),r(),a())})})}};hl.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.context.unref())};dl.inherits(Ea,fl);function Ea(e,t){fl.call(this),t=t||{},this.refCount=0,this.buffer=e,this.maxChunkSize=t.maxChunkSize||Number.MAX_SAFE_INTEGER}Ea.prototype.read=function(e,t,a,n,i){var r=n+a,o=r-this.buffer.length,s=o>0?o:a;this.buffer.copy(e,t,n,r),setImmediate(function(){i(null,s)})};Ea.prototype.write=function(e,t,a,n,i){e.copy(this.buffer,n,t,t+a),setImmediate(function(){i(null,a,e)})};Ea.prototype.createReadStream=function(e){e=e||{};var t=new MR(e);t.destroyed=!1,t.start=e.start||0,t.endOffset=e.end,t.pos=t.endOffset||this.buffer.length;for(var a=this.buffer.slice(t.start,t.pos),n=0;;){var i=n+this.maxChunkSize;if(i>=a.length){na.endOffset){var s=new Error("maximum file length exceeded");s.code="ETOOBIG",a.destroyed=!0,r(s);return}n.copy(t.buffer,a.pos,0,n.length),a.bytesWritten+=n.length,a.pos=o,a.emit("progress"),r()}},a.destroy=function(){a.destroyed=!0},a};Ea.prototype.ref=function(){this.refCount+=1};Ea.prototype.unref=function(){if(this.refCount-=1,this.refCount<0)throw new Error("invalid unref")};function zR(e,t){return new Ea(e,t)}function GR(e,t){return new wa(e,t)}});var mE=O((KH,fE)=>{var za=require("buffer").Buffer,hd=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];typeof Int32Array!="undefined"&&(hd=new Int32Array(hd));function dE(e){if(za.isBuffer(e))return e;var t=typeof za.alloc=="function"&&typeof za.from=="function";if(typeof e=="number")return t?za.alloc(e):new za(e);if(typeof e=="string")return t?za.from(e):new za(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function HR(e){var t=dE(4);return t.writeInt32BE(e,0),t}function vd(e,t){e=dE(e),za.isBuffer(t)&&(t=t.readUInt32BE(0));for(var a=~~t^-1,n=0;n>>8;return a^-1}function bd(){return HR(vd.apply(null,arguments))}bd.signed=function(){return vd.apply(null,arguments)};bd.unsigned=function(){return vd.apply(null,arguments)>>>0};fE.exports=bd});var wE=O(ra=>{var gd=require("fs"),WR=require("zlib"),hE=pE(),VR=mE(),gl=require("util"),xl=require("events").EventEmitter,vE=require("stream").Transform,xd=require("stream").PassThrough,UR=require("stream").Writable;ra.open=JR;ra.fromFd=bE;ra.fromBuffer=ZR;ra.fromRandomAccessReader=yd;ra.dosDateTimeToDate=xE;ra.validateFileName=yE;ra.ZipFile=Ga;ra.Entry=xr;ra.RandomAccessReader=Ha;function JR(e,t,a){typeof t=="function"&&(a=t,t=null),t==null&&(t={}),t.autoClose==null&&(t.autoClose=!0),t.lazyEntries==null&&(t.lazyEntries=!1),t.decodeStrings==null&&(t.decodeStrings=!0),t.validateEntrySizes==null&&(t.validateEntrySizes=!0),t.strictFileNames==null&&(t.strictFileNames=!1),a==null&&(a=bl),gd.open(e,"r",function(n,i){if(n)return a(n);bE(i,t,function(r,o){r&&gd.close(i,bl),a(r,o)})})}function bE(e,t,a){typeof t=="function"&&(a=t,t=null),t==null&&(t={}),t.autoClose==null&&(t.autoClose=!1),t.lazyEntries==null&&(t.lazyEntries=!1),t.decodeStrings==null&&(t.decodeStrings=!0),t.validateEntrySizes==null&&(t.validateEntrySizes=!0),t.strictFileNames==null&&(t.strictFileNames=!1),a==null&&(a=bl),gd.fstat(e,function(n,i){if(n)return a(n);var r=hE.createFromFd(e,{autoClose:!0});yd(r,i.size,t,a)})}function ZR(e,t,a){typeof t=="function"&&(a=t,t=null),t==null&&(t={}),t.autoClose=!1,t.lazyEntries==null&&(t.lazyEntries=!1),t.decodeStrings==null&&(t.decodeStrings=!0),t.validateEntrySizes==null&&(t.validateEntrySizes=!0),t.strictFileNames==null&&(t.strictFileNames=!1);var n=hE.createFromBuffer(e,{maxChunkSize:65536});yd(n,e.length,t,a)}function yd(e,t,a,n){typeof a=="function"&&(n=a,a=null),a==null&&(a={}),a.autoClose==null&&(a.autoClose=!0),a.lazyEntries==null&&(a.lazyEntries=!1),a.decodeStrings==null&&(a.decodeStrings=!0);var i=!!a.decodeStrings;if(a.validateEntrySizes==null&&(a.validateEntrySizes=!0),a.strictFileNames==null&&(a.strictFileNames=!1),n==null&&(n=bl),typeof t!="number")throw new Error("expected totalSize parameter to be a number");if(t>Number.MAX_SAFE_INTEGER)throw new Error("zip file too large. only file sizes up to 2^52 are supported due to JavaScript's Number type being an IEEE 754 double.");e.ref();var r=22,o=65535,s=Math.min(r+o,t),l=ia(s),u=t-l.length;ri(e,l,0,s,u,function(c){if(c)return n(c);for(var f=s-r;f>=0;f-=1)if(l.readUInt32LE(f)===101010256){var p=l.slice(f),b=p.readUInt16LE(4);if(b!==0)return n(new Error("multi-disk zip files are not supported: found disk number: "+b));var d=p.readUInt16LE(10),m=p.readUInt32LE(16),h=p.readUInt16LE(20),v=p.length-r;if(h!==v)return n(new Error("invalid comment length. expected: "+v+". found: "+h));var x=i?vl(p,22,p.length,!1):p.slice(22);if(!(d===65535||m===4294967295))return n(null,new Ga(e,m,t,d,x,a.autoClose,a.lazyEntries,i,a.validateEntrySizes,a.strictFileNames));var E=ia(20),g=u+f-E.length;ri(e,E,0,E.length,g,function(w){if(w)return n(w);if(E.readUInt32LE(0)!==117853008)return n(new Error("invalid zip64 end of central directory locator signature"));var C=oi(E,8),y=ia(56);ri(e,y,0,y.length,C,function(S){return S?n(S):y.readUInt32LE(0)!==101075792?n(new Error("invalid zip64 end of central directory record signature")):(d=oi(y,32),m=oi(y,48),n(null,new Ga(e,m,t,d,x,a.autoClose,a.lazyEntries,i,a.validateEntrySizes,a.strictFileNames)))})});return}n(new Error("end of central directory record signature not found"))})}gl.inherits(Ga,xl);function Ga(e,t,a,n,i,r,o,s,l,u){var c=this;xl.call(c),c.reader=e,c.reader.on("error",function(f){gE(c,f)}),c.reader.once("close",function(){c.emit("close")}),c.readEntryCursor=t,c.fileSize=a,c.entryCount=n,c.comment=i,c.entriesRead=0,c.autoClose=!!r,c.lazyEntries=!!o,c.decodeStrings=!!s,c.validateEntrySizes=!!l,c.strictFileNames=!!u,c.isOpen=!0,c.emittedError=!1,c.lazyEntries||c._readEntry()}Ga.prototype.close=function(){this.isOpen&&(this.isOpen=!1,this.reader.unref())};function Zt(e,t){e.autoClose&&e.close(),gE(e,t)}function gE(e,t){e.emittedError||(e.emittedError=!0,e.emit("error",t))}Ga.prototype.readEntry=function(){if(!this.lazyEntries)throw new Error("readEntry() called without lazyEntries:true");this._readEntry()};Ga.prototype._readEntry=function(){var e=this;if(e.entryCount===e.entriesRead){setImmediate(function(){e.autoClose&&e.close(),!e.emittedError&&e.emit("end")});return}if(!e.emittedError){var t=ia(46);ri(e.reader,t,0,t.length,e.readEntryCursor,function(a){if(a)return Zt(e,a);if(!e.emittedError){var n=new xr,i=t.readUInt32LE(0);if(i!==33639248)return Zt(e,new Error("invalid central directory file header signature: 0x"+i.toString(16)));if(n.versionMadeBy=t.readUInt16LE(4),n.versionNeededToExtract=t.readUInt16LE(6),n.generalPurposeBitFlag=t.readUInt16LE(8),n.compressionMethod=t.readUInt16LE(10),n.lastModFileTime=t.readUInt16LE(12),n.lastModFileDate=t.readUInt16LE(14),n.crc32=t.readUInt32LE(16),n.compressedSize=t.readUInt32LE(20),n.uncompressedSize=t.readUInt32LE(24),n.fileNameLength=t.readUInt16LE(28),n.extraFieldLength=t.readUInt16LE(30),n.fileCommentLength=t.readUInt16LE(32),n.internalFileAttributes=t.readUInt16LE(36),n.externalFileAttributes=t.readUInt32LE(38),n.relativeOffsetOfLocalHeader=t.readUInt32LE(42),n.generalPurposeBitFlag&64)return Zt(e,new Error("strong encryption is not supported"));e.readEntryCursor+=46,t=ia(n.fileNameLength+n.extraFieldLength+n.fileCommentLength),ri(e.reader,t,0,t.length,e.readEntryCursor,function(r){if(r)return Zt(e,r);if(!e.emittedError){var o=(n.generalPurposeBitFlag&2048)!==0;n.fileName=e.decodeStrings?vl(t,0,n.fileNameLength,o):t.slice(0,n.fileNameLength);var s=n.fileNameLength+n.extraFieldLength,l=t.slice(n.fileNameLength,s);n.extraFields=[];for(var u=0;ul.length)return Zt(e,new Error("extra field length exceeds extra field buffer size"));var d=ia(f);l.copy(d,0,p,b),n.extraFields.push({id:c,data:d}),u=b}if(n.fileComment=e.decodeStrings?vl(t,s,s+n.fileCommentLength,o):t.slice(s,s+n.fileCommentLength),n.comment=n.fileComment,e.readEntryCursor+=t.length,e.entriesRead+=1,n.uncompressedSize===4294967295||n.compressedSize===4294967295||n.relativeOffsetOfLocalHeader===4294967295){for(var m=null,u=0;um.length)return Zt(e,new Error("zip64 extended information extra field does not include uncompressed size"));n.uncompressedSize=oi(m,v),v+=8}if(n.compressedSize===4294967295){if(v+8>m.length)return Zt(e,new Error("zip64 extended information extra field does not include compressed size"));n.compressedSize=oi(m,v),v+=8}if(n.relativeOffsetOfLocalHeader===4294967295){if(v+8>m.length)return Zt(e,new Error("zip64 extended information extra field does not include relative header offset"));n.relativeOffsetOfLocalHeader=oi(m,v),v+=8}}if(e.decodeStrings)for(var u=0;ue.compressedSize)throw new Error("options.start > entry.compressedSize")}if(t.end!=null){if(r=t.end,r<0)throw new Error("options.end < 0");if(r>e.compressedSize)throw new Error("options.end > entry.compressedSize");if(rn.fileSize)return a(new Error("file data overflows file bounds: "+b+" + "+e.compressedSize+" > "+n.fileSize));var m=n.reader.createReadStream({start:b+i,end:b+r}),h=m;if(p){var v=!1,x=WR.createInflateRaw();m.on("error",function(E){setImmediate(function(){v||x.emit("error",E)})}),m.pipe(x),n.validateEntrySizes?(h=new yr(e.uncompressedSize),x.on("error",function(E){setImmediate(function(){v||h.emit("error",E)})}),x.pipe(h)):h=x,h.destroy=function(){v=!0,x!==h&&x.unpipe(h),m.unpipe(x),m.destroy()}}a(null,h)}finally{n.reader.unref()}})};function xr(){}xr.prototype.getLastModDate=function(){return xE(this.lastModFileDate,this.lastModFileTime)};xr.prototype.isEncrypted=function(){return(this.generalPurposeBitFlag&1)!==0};xr.prototype.isCompressed=function(){return this.compressionMethod===8};function xE(e,t){var a=e&31,n=(e>>5&15)-1,i=(e>>9&127)+1980,r=0,o=(t&31)*2,s=t>>5&63,l=t>>11&31;return new Date(i,n,a,l,s,o,r)}function yE(e){return e.indexOf("\\")!==-1?"invalid characters in fileName: "+e:/^[a-zA-Z]:/.test(e)||/^\//.test(e)?"absolute path: "+e:e.split("/").indexOf("..")!==-1?"invalid relative path: "+e:null}function ri(e,t,a,n,i,r){if(n===0)return setImmediate(function(){r(null,ia(0))});e.read(t,a,n,i,function(o,s){if(o)return r(o);if(sthis.expectedByteCount){var n="too many bytes in the stream. expected "+this.expectedByteCount+". got at least "+this.actualByteCount;return a(new Error(n))}a(null,e)};yr.prototype._flush=function(e){if(this.actualByteCount0)return;if(e.refCount<0)throw new Error("invalid unref");e.close(t);function t(a){if(a)return e.emit("error",a);e.emit("close")}};Ha.prototype.createReadStream=function(e){var t=e.start,a=e.end;if(t===a){var n=new xd;return setImmediate(function(){n.end()}),n}var i=this._readStreamForRange(t,a),r=!1,o=new yl(this);i.on("error",function(l){setImmediate(function(){r||o.emit("error",l)})}),o.destroy=function(){i.unpipe(o),o.unref(),i.destroy()};var s=new yr(a-t);return o.on("error",function(l){setImmediate(function(){r||s.emit("error",l)})}),s.destroy=function(){r=!0,o.unpipe(s),o.destroy()},i.pipe(o).pipe(s)};Ha.prototype._readStreamForRange=function(e,t){throw new Error("not implemented")};Ha.prototype.read=function(e,t,a,n,i){var r=this.createReadStream({start:n,end:n+a}),o=new UR,s=0;o._write=function(l,u,c){l.copy(e,t+s,0,l.length),s+=l.length,c()},o.on("finish",i),r.on("error",function(l){i(l)}),r.pipe(o)};Ha.prototype.close=function(e){setImmediate(e)};gl.inherits(yl,xd);function yl(e){xd.call(this),this.context=e,this.context.ref(),this.unreffedYet=!1}yl.prototype._flush=function(e){this.unref(),e()};yl.prototype.unref=function(e){this.unreffedYet||(this.unreffedYet=!0,this.context.unref())};var qR="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0";function vl(e,t,a,n){if(n)return e.toString("utf8",t,a);for(var i="",r=t;r{"use strict";var EE=D1(),XR=tE(),SE=rE(),$R=wE(),YR=(e,t)=>{let r=e.versionMadeBy>>8;return(t&61440)===40960?"symlink":(t&61440)===16384||r===0&&e.externalFileAttributes===16?"directory":"file"},KR=(e,t)=>{let a={mode:e.externalFileAttributes>>16&65535,mtime:e.getLastModDate(),path:e.fileName};return a.type=YR(e,a.mode),a.mode===0&&a.type==="directory"&&(a.mode=493),a.mode===0&&(a.mode=420),SE(t.openReadStream.bind(t))(e).then(XR.buffer).then(n=>(a.data=n,a.type==="symlink"&&(a.linkname=n.toString()),a)).catch(n=>{throw t.close(),n})},QR=e=>new Promise((t,a)=>{let n=[];e.readEntry(),e.on("entry",i=>{KR(i,e).catch(a).then(r=>{n.push(r),e.readEntry()})}),e.on("error",a),e.on("end",()=>t(n))});CE.exports=()=>e=>Buffer.isBuffer(e)?!EE(e)||EE(e).ext!=="zip"?Promise.resolve([]):SE($R.fromBuffer)(e,{lazyEntries:!0}).then(QR):Promise.reject(new TypeError(`Expected a Buffer, got ${typeof e}`))});var TE=O((tW,_E)=>{"use strict";var IE=(e,t)=>function(){let a=t.promiseModule,n=new Array(arguments.length);for(let i=0;i{t.errorFirst?n.push(function(o,s){if(t.multiArgs){let l=new Array(arguments.length-1);for(let u=1;u{t=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:!0,promiseModule:Promise},t);let a=i=>{let r=o=>typeof o=="string"?i===o:o.test(i);return t.include?t.include.some(r):!t.exclude.some(r)},n;typeof e=="function"?n=function(){return t.excludeMain?e.apply(this,arguments):IE(e,t).apply(this,arguments)}:n=Object.create(Object.getPrototypeOf(e));for(let i in e){let r=e[i];n[i]=typeof r=="function"&&a(i)?IE(r,t):r}return n}});var OE=O((aW,wd)=>{"use strict";var eB=require("fs"),vn=require("path"),kE=TE(),FE={mode:511&~process.umask(),fs:eB},PE=e=>{if(process.platform==="win32"&&/[<>:"|?*]/.test(e.replace(vn.parse(e).root,""))){let a=new Error(`Path contains invalid characters: ${e}`);throw a.code="EINVAL",a}};wd.exports=(e,t)=>Promise.resolve().then(()=>{PE(e),t=Object.assign({},FE,t);let a=kE(t.fs.mkdir),n=kE(t.fs.stat),i=r=>a(r,t.mode).then(()=>r).catch(o=>{if(o.code==="ENOENT"){if(o.message.includes("null bytes")||vn.dirname(r)===r)throw o;return i(vn.dirname(r)).then(()=>i(r))}return n(r).then(s=>s.isDirectory()?r:Promise.reject()).catch(()=>{throw o})});return i(vn.resolve(e))});wd.exports.sync=(e,t)=>{PE(e),t=Object.assign({},FE,t);let a=n=>{try{t.fs.mkdirSync(n,t.mode)}catch(i){if(i.code==="ENOENT"){if(i.message.includes("null bytes")||vn.dirname(n)===n)throw i;return a(vn.dirname(n)),a(n)}try{if(!t.fs.statSync(n).isDirectory())throw new Error("The path is not a directory")}catch(r){throw i}}return n};return a(vn.resolve(e))}});var jE=O((nW,NE)=>{"use strict";var RE=function(e,t,a){return function(){for(var n=this,i=new Array(arguments.length),r=0;r{"use strict";LE.exports=function(t,a){if(a){if(typeof a!="object")throw new TypeError(String(a)+" is not an object. Expected an object that has boolean `includeZero` property.");if("includeZero"in a){if(typeof a.includeZero!="boolean")throw new TypeError(String(a.includeZero)+" is neither true nor false. `includeZero` option must be a Boolean value.");if(a.includeZero&&t===0)return!0}}return Number.isSafeInteger(t)&&t>=1}});var zE=O((rW,DE)=>{"use strict";var wr=require("path"),Er=require("util"),tB=ME();DE.exports=function(t,a,n){if(typeof t!="string")throw new TypeError(Er.inspect(t)+" is not a string. First argument to strip-dirs must be a path string.");if(wr.posix.isAbsolute(t)||wr.win32.isAbsolute(t))throw new Error(`${t} is an absolute path. strip-dirs requires a relative path.`);if(!tB(a,{includeZero:!0}))throw new Error("The Second argument of strip-dirs must be a natural number or 0, but received "+Er.inspect(a)+".");if(n){if(typeof n!="object")throw new TypeError(Er.inspect(n)+" is not an object. Expected an object with a boolean `disallowOverflow` property.");if(Array.isArray(n))throw new TypeError(Er.inspect(n)+" is an array. Expected an object with a boolean `disallowOverflow` property.");if("disallowOverflow"in n&&typeof n.disallowOverflow!="boolean")throw new TypeError(Er.inspect(n.disallowOverflow)+" is neither true nor false. `disallowOverflow` option must be a Boolean value.")}else n={disallowOverflow:!1};let i=wr.normalize(t).split(wr.sep);if(i.length>1&&i[0]==="."&&i.shift(),a>i.length-1){if(n.disallowOverflow)throw new RangeError("Cannot strip more directories than there are.");a=i.length-1}return wr.join.apply(null,i.slice(a))}});var HE=O((oW,GE)=>{"use strict";var wl=require("path"),aB=wy(),nB=il(),iB=O1(),rB=L1(),oB=AE(),Ed=OE(),sB=jE(),lB=zE(),Pt=sB(aB),cB=(e,t)=>t.plugins.length===0?Promise.resolve([]):Promise.all(t.plugins.map(a=>a(e,t))).then(a=>a.reduce((n,i)=>n.concat(i))),Sd=(e,t)=>Pt.realpath(e).catch(a=>{let n=wl.dirname(e);return Sd(n,t)}).then(a=>{if(a.indexOf(t)!==0)throw new Error("Refusing to create a directory outside the output path.");return Ed(e).then(Pt.realpath)}),uB=(e,t)=>Pt.readlink(e).catch(a=>null).then(a=>{if(a)throw new Error("Refusing to write into a symlink");return t}),pB=(e,t,a)=>cB(e,a).then(n=>(a.strip>0&&(n=n.map(i=>(i.path=lB(i.path,a.strip),i)).filter(i=>i.path!==".")),typeof a.filter=="function"&&(n=n.filter(a.filter)),typeof a.map=="function"&&(n=n.map(a.map)),t?Promise.all(n.map(i=>{let r=wl.join(t,i.path),o=i.mode&~process.umask(),s=new Date;return i.type==="directory"?Ed(t).then(l=>Pt.realpath(l)).then(l=>Sd(r,l)).then(()=>Pt.utimes(r,s,i.mtime)).then(()=>i):Ed(t).then(l=>Pt.realpath(l)).then(l=>Sd(wl.dirname(r),l).then(()=>l)).then(l=>i.type==="file"?uB(r,l):l).then(l=>Pt.realpath(wl.dirname(r)).then(u=>{if(u.indexOf(l)!==0)throw new Error("Refusing to write outside output directory: "+u)})).then(()=>i.type==="link"||i.type==="symlink"&&process.platform==="win32"?Pt.link(i.linkname,r):i.type==="symlink"?Pt.symlink(i.linkname,r):Pt.writeFile(r,i.data,{mode:o})).then(()=>i.type==="file"&&Pt.utimes(r,s,i.mtime)).then(()=>i)})):n));GE.exports=(e,t,a)=>typeof e!="string"&&!Buffer.isBuffer(e)?Promise.reject(new TypeError("Input file required")):(typeof t=="object"&&(a=t,t=null),a=Object.assign({plugins:[nB(),iB(),rB(),oB()]},a),(typeof e=="string"?Pt.readFile(e):Promise.resolve(e)).then(i=>pB(i,t,a)))});var VE=O((sW,WE)=>{"use strict";var dB=/[|\\{}()[\]^$+*?.]/g;WE.exports=function(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(dB,"\\$&")}});var JE=O((lW,UE)=>{"use strict";var fB=VE();UE.exports=function(e,t){if(typeof e!="string"||typeof t!="string")throw new TypeError("Expected a string");return e.replace(new RegExp("(?:"+fB(t)+"){2,}","g"),t)}});var ZE=O((cW,Cd)=>{"use strict";Cd.exports=()=>/[<>:"\/\\|?*\x00-\x1F]/g;Cd.exports.windowsNames=()=>/^(con|prn|aux|nul|com[0-9]|lpt[0-9])$/i});var XE=O((uW,qE)=>{"use strict";var mB=/[|\\{}()[\]^$+*?.]/g;qE.exports=function(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(mB,"\\$&")}});var YE=O((pW,$E)=>{"use strict";var hB=XE();$E.exports=function(e,t){if(typeof e!="string"||typeof t!="string")throw new TypeError;return t=hB(t),e.replace(new RegExp("^"+t+"|"+t+"$","g"),"")}});var QE=O((dW,Id)=>{"use strict";var El=require("path"),vB=JE(),Ad=ZE(),bB=YE(),gB=100,KE=/[\u0000-\u001f\u0080-\u009f]/g,xB=/^\.+/,Sl=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let a=t.replacement===void 0?"!":t.replacement;if(Ad().test(a)&&KE.test(a))throw new Error("Replacement string cannot contain reserved filename characters");return e=e.replace(Ad(),a),e=e.replace(KE,a),e=e.replace(xB,a),a.length>0&&(e=vB(e,a),e=e.length>1?bB(e,a):e),e=Ad.windowsNames().test(e)?e+a:e,e=e.slice(0,gB),e};Sl.path=(e,t)=>(e=El.resolve(e),El.join(El.dirname(e),Sl(El.basename(e),t)));Id.exports=Sl;Id.exports.default=Sl});var aS=O((fW,tS)=>{var yB=ed(),wB=td(),_d=require("fs"),Sr=function(){},EB=/^v?\.0/.test(process.version),Cl=function(e){return typeof e=="function"},SB=function(e){return!EB||!_d?!1:(e instanceof(_d.ReadStream||Sr)||e instanceof(_d.WriteStream||Sr))&&Cl(e.close)},CB=function(e){return e.setHeader&&Cl(e.abort)},AB=function(e,t,a,n){n=yB(n);var i=!1;e.on("close",function(){i=!0}),wB(e,{readable:t,writable:a},function(o){if(o)return n(o);i=!0,n()});var r=!1;return function(o){if(!i&&!r){if(r=!0,SB(e))return e.close(Sr);if(CB(e))return e.abort();if(Cl(e.destroy))return e.destroy();n(o||new Error("stream was destroyed"))}}},eS=function(e){e()},IB=function(e,t){return e.pipe(t)},_B=function(){var e=Array.prototype.slice.call(arguments),t=Cl(e[e.length-1]||Sr)&&e.pop()||Sr;if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new Error("pump requires two streams per minimum");var a,n=e.map(function(i,r){var o=r0;return AB(i,o,s,function(l){a||(a=l),l&&n.forEach(eS),!o&&(n.forEach(eS),t(a))})});return e.reduce(IB)};tS.exports=_B});var iS=O((mW,nS)=>{"use strict";var{PassThrough:TB}=require("stream");nS.exports=e=>{e=Object.assign({},e);let{array:t}=e,{encoding:a}=e,n=a==="buffer",i=!1;t?i=!(a||n):a=a||"utf8",n&&(a=null);let r=0,o=[],s=new TB({objectMode:i});return a&&s.setEncoding(a),s.on("data",l=>{o.push(l),i?r=o.length:r+=l.length}),s.getBufferedValue=()=>t?o:n?Buffer.concat(o,r):o.join(""),s.getBufferedLength=()=>r,s}});var rS=O((hW,Cr)=>{"use strict";var kB=aS(),FB=iS(),Al=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};function Td(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t=Object.assign({maxBuffer:1/0},t);let{maxBuffer:a}=t,n;return new Promise((i,r)=>{let o=s=>{s&&(s.bufferedData=n.getBufferedValue()),r(s)};n=kB(e,FB(t),s=>{if(s){o(s);return}i()}),n.on("data",()=>{n.getBufferedLength()>a&&o(new Al)})}).then(()=>n.getBufferedValue())}Cr.exports=Td;Cr.exports.buffer=(e,t)=>Td(e,Object.assign({},t,{encoding:"buffer"}));Cr.exports.array=(e,t)=>Td(e,Object.assign({},t,{array:!0}));Cr.exports.MaxBufferError=Al});var sS=O((vW,oS)=>{"use strict";oS.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}});var dS=O((bW,pS)=>{"use strict";var uS="%[a-f0-9]{2}",lS=new RegExp("("+uS+")|([^%]+?)","gi"),cS=new RegExp("("+uS+")+","gi");function kd(e,t){try{return[decodeURIComponent(e.join(""))]}catch(i){}if(e.length===1)return e;t=t||1;var a=e.slice(0,t),n=e.slice(t);return Array.prototype.concat.call([],kd(a),kd(n))}function PB(e){try{return decodeURIComponent(e)}catch(n){for(var t=e.match(lS)||[],a=1;a{"use strict";var RB=sS(),mS=cl(),fS=dS();function BB(e){switch(e.arrayFormat){case"index":return function(t,a,n){return a===null?[Ot(t,e),"[",n,"]"].join(""):[Ot(t,e),"[",Ot(n,e),"]=",Ot(a,e)].join("")};case"bracket":return function(t,a){return a===null?Ot(t,e):[Ot(t,e),"[]=",Ot(a,e)].join("")};default:return function(t,a){return a===null?Ot(t,e):[Ot(t,e),"=",Ot(a,e)].join("")}}}function NB(e){var t;switch(e.arrayFormat){case"index":return function(a,n,i){if(t=/\[(\d*)\]$/.exec(a),a=a.replace(/\[\d*\]$/,""),!t){i[a]=n;return}i[a]===void 0&&(i[a]={}),i[a][t[1]]=n};case"bracket":return function(a,n,i){if(t=/(\[\])$/.exec(a),a=a.replace(/\[\]$/,""),t){if(i[a]===void 0){i[a]=[n];return}}else{i[a]=n;return}i[a]=[].concat(i[a],n)};default:return function(a,n,i){if(i[a]===void 0){i[a]=n;return}i[a]=[].concat(i[a],n)}}}function Ot(e,t){return t.encode?t.strict?RB(e):encodeURIComponent(e):e}function hS(e){return Array.isArray(e)?e.sort():typeof e=="object"?hS(Object.keys(e)).sort(function(t,a){return Number(t)-Number(a)}).map(function(t){return e[t]}):e}function vS(e){var t=e.indexOf("?");return t===-1?"":e.slice(t+1)}function bS(e,t){t=mS({arrayFormat:"none"},t);var a=NB(t),n=Object.create(null);return typeof e!="string"||(e=e.trim().replace(/^[?#&]/,""),!e)?n:(e.split("&").forEach(function(i){var r=i.replace(/\+/g," ").split("="),o=r.shift(),s=r.length>0?r.join("="):void 0;s=s===void 0?null:fS(s),a(fS(o),s,n)}),Object.keys(n).sort().reduce(function(i,r){var o=n[r];return o&&typeof o=="object"&&!Array.isArray(o)?i[r]=hS(o):i[r]=o,i},Object.create(null)))}Ar.extract=vS;Ar.parse=bS;Ar.stringify=function(e,t){var a={encode:!0,strict:!0,arrayFormat:"none"};t=mS(a,t),t.sort===!1&&(t.sort=function(){});var n=BB(t);return e?Object.keys(e).sort(t.sort).map(function(i){var r=e[i];if(r===void 0)return"";if(r===null)return Ot(i,t);if(Array.isArray(r)){var o=[];return r.slice().forEach(function(s){s!==void 0&&o.push(n(i,s,o.length))}),o.join("&")}return Ot(i,t)+"="+Ot(r,t)}).filter(function(i){return i.length>0}).join("&"):""};Ar.parseUrl=function(e,t){return{url:e.split("?")[0]||"",query:bS(vS(e),t)}}});var Fd=O((xW,xS)=>{"use strict";xS.exports=(e,t)=>{if(typeof e!="string")throw new TypeError(`Expected \`url\` to be of type \`string\`, got \`${typeof e}\``);return e=e.trim(),t=Object.assign({https:!1},t),/^\.*\/|^(?!localhost)\w+:/.test(e)?e:e.replace(/^(?!(?:\w+:)?\/\/)/,t.https?"https://":"http://")}});var Pd=O((yW,yS)=>{"use strict";var jB=Object.prototype.toString;yS.exports=function(e){var t;return jB.call(e)==="[object Object]"&&(t=Object.getPrototypeOf(e),t===null||t===Object.getPrototypeOf({}))}});var ES=O((wW,wS)=>{"use strict";var Od=Pd();wS.exports=(e,t)=>{if(!Od(e))throw new TypeError("Expected a plain object");if(t=t||{},typeof t=="function")throw new TypeError("Specify the compare function as an option instead");let a=t.deep,n=[],i=[],r=o=>{let s=n.indexOf(o);if(s!==-1)return i[s];let l={},u=Object.keys(o).sort(t.compare);n.push(o),i.push(l);for(let c=0;c{"use strict";var Rd=require("url"),LB=require("punycode"),SS=gS(),MB=Fd(),DB=ES(),zB={"http:":80,"https:":443,"ftp:":21},GB={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function CS(e,t){return t.some(a=>a instanceof RegExp?a.test(e):a===e)}AS.exports=(e,t)=>{if(t=Object.assign({normalizeProtocol:!0,normalizeHttps:!1,stripFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0},t),typeof e!="string")throw new TypeError("Expected a string");let a=e.startsWith("//");e=MB(e.trim()).replace(/^\/\//,"http://");let n=Rd.parse(e);if(t.normalizeHttps&&n.protocol==="https:"&&(n.protocol="http:"),!n.hostname&&!n.pathname)throw new Error("Invalid URL");delete n.host,delete n.query,t.stripFragment&&delete n.hash;let i=zB[n.protocol];if(Number(n.port)===i&&delete n.port,n.pathname&&(n.pathname=n.pathname.replace(/\/{2,}/g,"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),t.removeDirectoryIndex===!0&&(t.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(t.removeDirectoryIndex)&&t.removeDirectoryIndex.length>0){let o=n.pathname.split("/"),s=o[o.length-1];CS(s,t.removeDirectoryIndex)&&(o=o.slice(0,o.length-1),n.pathname=o.slice(1).join("/")+"/")}if(GB[n.protocol]){let o=n.protocol+"//"+n.hostname,s=Rd.resolve(o,n.pathname);n.pathname=s.replace(o,"")}n.hostname&&(n.hostname=LB.toUnicode(n.hostname).toLowerCase(),n.hostname=n.hostname.replace(/\.$/,""),t.stripWWW&&(n.hostname=n.hostname.replace(/^www\./,""))),n.search==="?"&&delete n.search;let r=SS.parse(n.search);if(Array.isArray(t.removeQueryParameters))for(let o in r)CS(o,t.removeQueryParameters)&&delete r[o];return t.sortQueryParameters&&(n.search=SS.stringify(DB(r))),n.search!==null&&(n.search=decodeURIComponent(n.search)),e=Rd.format(n),(t.removeTrailingSlash||n.pathname==="/")&&(e=e.replace(/\/$/,"")),a&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),e}});var TS=O((SW,_S)=>{"use strict";var HB=require("stream").PassThrough;_S.exports=e=>{e=Object.assign({},e);let t=e.array,a=e.encoding,n=a==="buffer",i=!1;t?i=!(a||n):a=a||"utf8",n&&(a=null);let r=0,o=[],s=new HB({objectMode:i});return a&&s.setEncoding(a),s.on("data",l=>{o.push(l),i?r=o.length:r+=l.length}),s.getBufferedValue=()=>t?o:n?Buffer.concat(o,r):o.join(""),s.getBufferedLength=()=>r,s}});var kS=O((CW,Il)=>{"use strict";var WB=TS();function Bd(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t=Object.assign({maxBuffer:1/0},t);let a=t.maxBuffer,n,i,r=new Promise((o,s)=>{let l=u=>{u&&(u.bufferedData=n.getBufferedValue()),s(u)};n=WB(t),e.once("error",l),e.pipe(n),n.on("data",()=>{n.getBufferedLength()>a&&s(new Error("maxBuffer exceeded"))}),n.once("error",l),n.on("end",o),i=()=>{e.unpipe&&e.unpipe(n)}});return r.then(i,i),r.then(()=>n.getBufferedValue())}Il.exports=Bd;Il.exports.buffer=(e,t)=>Bd(e,Object.assign({},t,{encoding:"buffer"}));Il.exports.array=(e,t)=>Bd(e,Object.assign({},t,{array:!0}))});var PS=O((AW,FS)=>{"use strict";function VB(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var UB=[200,203,204,206,300,301,404,405,410,414,501],JB=[200,203,204,300,301,302,303,307,308,404,405,410,414,501],ZB={connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},qB={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Nd(e){var t={};if(!e)return t;for(var a=e.trim().split(/\s*,\s*/),r=a,n=Array.isArray(r),i=0,r=n?r:r[Symbol.iterator]();;){var o;if(n){if(i>=r.length)break;o=r[i++]}else{if(i=r.next(),i.done)break;o=i.value}var s=o,l=s.split(/\s*=\s*/,2),u=l[0],c=l[1];t[u]=c===void 0?!0:c.replace(/^"|"$/g,"")}return t}function XB(e){var t=[];for(var a in e){var n=e[a];t.push(n===!0?a:a+"="+n)}if(t.length)return t.join(", ")}FS.exports=function(){function e(t,a){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=n.shared,r=n.cacheHeuristic,o=n.immutableMinTimeToLive,s=n.ignoreCargoCult,l=n._fromObject;if(VB(this,e),l){this._fromObject(l);return}if(!a||!a.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(t),this._responseTime=this.now(),this._isShared=i!==!1,this._cacheHeuristic=r!==void 0?r:.1,this._immutableMinTtl=o!==void 0?o:24*3600*1e3,this._status="status"in a?a.status:200,this._resHeaders=a.headers,this._rescc=Nd(a.headers["cache-control"]),this._method="method"in t?t.method:"GET",this._url=t.url,this._host=t.headers.host,this._noAuthorization=!t.headers.authorization,this._reqHeaders=a.headers.vary?t.headers:null,this._reqcc=Nd(t.headers["cache-control"]),s&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":XB(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),!a.headers["cache-control"]&&/no-cache/.test(a.headers.pragma)&&(this._rescc["no-cache"]=!0)}return e.prototype.now=function(){return Date.now()},e.prototype.storable=function(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&JB.indexOf(this._status)!==-1&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc.public||this._rescc["max-age"]||this._rescc["s-maxage"]||UB.indexOf(this._status)!==-1))},e.prototype._hasExplicitExpiration=function(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires},e.prototype._assertRequestHasHeaders=function(a){if(!a||!a.headers)throw Error("Request headers missing")},e.prototype.satisfiesWithoutRevalidation=function(a){this._assertRequestHasHeaders(a);var n=Nd(a.headers["cache-control"]);if(n["no-cache"]||/no-cache/.test(a.headers.pragma)||n["max-age"]&&this.age()>n["max-age"]||n["min-fresh"]&&this.timeToLive()<1e3*n["min-fresh"])return!1;if(this.stale()){var i=n["max-stale"]&&!this._rescc["must-revalidate"]&&(n["max-stale"]===!0||n["max-stale"]>this.age()-this.maxAge());if(!i)return!1}return this._requestMatches(a,!1)},e.prototype._requestMatches=function(a,n){return(!this._url||this._url===a.url)&&this._host===a.headers.host&&(!a.method||this._method===a.method||n&&a.method==="HEAD")&&this._varyMatches(a)},e.prototype._allowsStoringAuthenticated=function(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]},e.prototype._varyMatches=function(a){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;for(var n=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/),o=n,i=Array.isArray(o),r=0,o=i?o:o[Symbol.iterator]();;){var s;if(i){if(r>=o.length)break;s=o[r++]}else{if(r=o.next(),r.done)break;s=r.value}var l=s;if(a.headers[l]!==this._reqHeaders[l])return!1}return!0},e.prototype._copyWithoutHopByHopHeaders=function(a){var n={};for(var i in a)ZB[i]||(n[i]=a[i]);if(a.connection)for(var r=a.connection.trim().split(/\s*,\s*/),l=r,o=Array.isArray(l),s=0,l=o?l:l[Symbol.iterator]();;){var u;if(o){if(s>=l.length)break;u=l[s++]}else{if(s=l.next(),s.done)break;u=s.value}var c=u;delete n[c]}if(n.warning){var f=n.warning.split(/,/).filter(function(p){return!/^\s*1[0-9][0-9]/.test(p)});f.length?n.warning=f.join(",").trim():delete n.warning}return n},e.prototype.responseHeaders=function(){var a=this._copyWithoutHopByHopHeaders(this._resHeaders),n=this.age();return n>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(a.warning=(a.warning?`${a.warning}, `:"")+'113 - "rfc7234 5.5.4"'),a.age=`${Math.round(n)}`,a},e.prototype.date=function(){var a=Date.parse(this._resHeaders.date),n=8*3600*1e3;return Number.isNaN(a)||athis._responseTime+n?this._responseTime:a},e.prototype.age=function(){var a=Math.max(0,(this._responseTime-this.date())/1e3);if(this._resHeaders.age){var n=this._ageValue();n>a&&(a=n)}var i=(this.now()-this._responseTime)/1e3;return a+i},e.prototype._ageValue=function(){var a=parseInt(this._resHeaders.age);return isFinite(a)?a:0},e.prototype.maxAge=function(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return parseInt(this._rescc["s-maxage"],10)}if(this._rescc["max-age"])return parseInt(this._rescc["max-age"],10);var a=this._rescc.immutable?this._immutableMinTtl:0,n=this.date();if(this._resHeaders.expires){var i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ir)return Math.max(a,(n-r)/1e3*this._cacheHeuristic)}return a},e.prototype.timeToLive=function(){return Math.max(0,this.maxAge()-this.age())*1e3},e.prototype.stale=function(){return this.maxAge()<=this.age()},e.fromObject=function(a){return new this(void 0,void 0,{_fromObject:a})},e.prototype._fromObject=function(a){if(this._responseTime)throw Error("Reinitialized");if(!a||a.v!==1)throw Error("Invalid serialization");this._responseTime=a.t,this._isShared=a.sh,this._cacheHeuristic=a.ch,this._immutableMinTtl=a.imm!==void 0?a.imm:24*3600*1e3,this._status=a.st,this._resHeaders=a.resh,this._rescc=a.rescc,this._method=a.m,this._url=a.u,this._host=a.h,this._noAuthorization=a.a,this._reqHeaders=a.reqh,this._reqcc=a.reqcc},e.prototype.toObject=function(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}},e.prototype.revalidationHeaders=function(a){this._assertRequestHasHeaders(a);var n=this._copyWithoutHopByHopHeaders(a.headers);if(delete n["if-range"],!this._requestMatches(a,!0)||!this.storable())return delete n["if-none-match"],delete n["if-modified-since"],n;this._resHeaders.etag&&(n["if-none-match"]=n["if-none-match"]?`${n["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag);var i=n["accept-ranges"]||n["if-match"]||n["if-unmodified-since"]||this._method&&this._method!="GET";if(i){if(delete n["if-modified-since"],n["if-none-match"]){var r=n["if-none-match"].split(/,/).filter(function(o){return!/^\s*W\//.test(o)});r.length?n["if-none-match"]=r.join(",").trim():delete n["if-none-match"]}}else this._resHeaders["last-modified"]&&!n["if-modified-since"]&&(n["if-modified-since"]=this._resHeaders["last-modified"]);return n},e.prototype.revalidatedPolicy=function(a,n){if(this._assertRequestHasHeaders(a),!n||!n.headers)throw Error("Response headers missing");var i=!1;if(n.status!==void 0&&n.status!=304?i=!1:n.headers.etag&&!/^\s*W\//.test(n.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===n.headers.etag:this._resHeaders.etag&&n.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===n.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===n.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!n.headers.etag&&!n.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(a,n),modified:!0};var r={};for(var o in this._resHeaders)r[o]=o in n.headers&&!qB[o]?n.headers[o]:this._resHeaders[o];var s=Object.assign({},n,{status:this._status,method:this._method,headers:r});return{policy:new this.constructor(a,s),modified:!1}},e}()});var jd=O((IW,OS)=>{"use strict";OS.exports=function(e){for(var t={},a=Object.keys(Object(e)),n=0;n{"use strict";var $B=require("stream").Readable,YB=jd(),Ld=class extends $B{constructor(t,a,n,i){if(typeof t!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof a!="object")throw new TypeError("Argument `headers` should be an object");if(!(n instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof i!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=t,this.headers=YB(a),this.body=n,this.url=i}_read(){this.push(this.body),this.push(null)}};RS.exports=Ld});var jS=O((TW,NS)=>{"use strict";NS.exports=function(e){for(var t={},a=Object.keys(Object(e)),n=0;n{"use strict";var KB=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];LS.exports=(e,t)=>{let a=new Set(Object.keys(e).concat(KB));for(let n of a)n in t||(t[n]=typeof e[n]=="function"?e[n].bind(e):e[n])}});var DS=O((FW,MS)=>{"use strict";var QB=require("stream").PassThrough,eN=Md(),tN=e=>{if(!(e&&e.pipe))throw new TypeError("Parameter `response` must be a response stream.");let t=new QB;return eN(e,t),e.pipe(t)};MS.exports=tN});var zS=O(Dd=>{Dd.stringify=function e(t){if(typeof t=="undefined")return t;if(t&&Buffer.isBuffer(t))return JSON.stringify(":base64:"+t.toString("base64"));if(t&&t.toJSON&&(t=t.toJSON()),t&&typeof t=="object"){var a="",n=Array.isArray(t);a=n?"[":"{";var i=!0;for(var r in t){var o=typeof t[r]=="function"||!n&&typeof t[r]=="undefined";Object.hasOwnProperty.call(t,r)&&!o&&(i||(a+=","),i=!1,n?t[r]==null?a+="null":a+=e(t[r]):t[r]!==void 0&&(a+=e(r)+":"+e(t[r])))}return a+=n?"]":"}",a}else return typeof t=="string"?JSON.stringify(/^:/.test(t)?":"+t:t):typeof t=="undefined"?"null":JSON.stringify(t)};Dd.parse=function(e){return JSON.parse(e,function(t,a){return typeof a=="string"?/^:base64:/.test(a)?new Buffer(a.substring(8),"base64"):/^:/.test(a)?a.substring(1):a:a})}});var WS=O((OW,HS)=>{"use strict";var aN=require("events"),GS=zS(),nN=e=>{let t={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(e.adapter||e.uri){let a=e.adapter||/^[^:]*/.exec(e.uri)[0];return new(require(t[a]))(e)}return new Map},zd=class extends aN{constructor(t,a){if(super(),this.opts=Object.assign({namespace:"keyv"},typeof t=="string"?{uri:t}:t,a),!this.opts.store){let n=Object.assign({},this.opts);this.opts.store=nN(n)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",n=>this.emit("error",n)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(t){return`${this.opts.namespace}:${t}`}get(t){t=this._getKeyPrefix(t);let a=this.opts.store;return Promise.resolve().then(()=>a.get(t)).then(n=>{if(n=typeof n=="string"?GS.parse(n):n,n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(t);return}return n.value}})}set(t,a,n){t=this._getKeyPrefix(t),typeof n=="undefined"&&(n=this.opts.ttl),n===0&&(n=void 0);let i=this.opts.store;return Promise.resolve().then(()=>{let r=typeof n=="number"?Date.now()+n:null;return a={value:a,expires:r},i.set(t,GS.stringify(a),n)}).then(()=>!0)}delete(t){t=this._getKeyPrefix(t);let a=this.opts.store;return Promise.resolve().then(()=>a.delete(t))}clear(){let t=this.opts.store;return Promise.resolve().then(()=>t.clear())}};HS.exports=zd});var ZS=O((RW,JS)=>{"use strict";var iN=require("events"),VS=require("url"),rN=IS(),oN=kS(),Gd=PS(),US=BS(),sN=jS(),lN=DS(),cN=WS(),Ir=class e{constructor(t,a){if(typeof t!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new cN({uri:typeof a=="string"&&a,store:typeof a!="string"&&a,namespace:"cacheable-request"}),this.createCacheableRequest(t)}createCacheableRequest(t){return(a,n)=>{typeof a=="string"&&(a=VS.parse(a)),a=Object.assign({headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1},a),a.headers=sN(a.headers);let i=new iN,r=rN(VS.format(a)),o=`${a.method}:${r}`,s=!1,l=!1,u=f=>{l=!0;let p=b=>{if(s){let m=Gd.fromObject(s.cachePolicy).revalidatedPolicy(f,b);if(!m.modified){let h=m.policy.responseHeaders();b=new US(b.statusCode,h,s.body,s.url),b.cachePolicy=m.policy,b.fromCache=!0}}b.fromCache||(b.cachePolicy=new Gd(f,b),b.fromCache=!1);let d;f.cache&&b.cachePolicy.storable()?(d=lN(b),oN.buffer(b).then(m=>{let h={cachePolicy:b.cachePolicy.toObject(),url:b.url,statusCode:b.fromCache?s.statusCode:b.statusCode,body:m},v=f.strictTtl?b.cachePolicy.timeToLive():void 0;return this.cache.set(o,h,v)}).catch(m=>i.emit("error",new e.CacheError(m)))):f.cache&&s&&this.cache.delete(o).catch(m=>i.emit("error",new e.CacheError(m))),i.emit("response",d||b),typeof n=="function"&&n(d||b)};try{let b=t(f,p);i.emit("request",b)}catch(b){i.emit("error",new e.RequestError(b))}},c=f=>Promise.resolve().then(()=>f.cache?this.cache.get(o):void 0).then(p=>{if(typeof p=="undefined")return u(f);let b=Gd.fromObject(p.cachePolicy);if(b.satisfiesWithoutRevalidation(f)){let d=b.responseHeaders(),m=new US(p.statusCode,d,p.body,p.url);m.cachePolicy=b,m.fromCache=!0,i.emit("response",m),typeof n=="function"&&n(m)}else s=p,f.headers=b.revalidationHeaders(f),u(f)});return this.cache.on("error",f=>i.emit("error",new e.CacheError(f))),c(a).catch(f=>{a.automaticFailover&&!l&&u(a),i.emit("error",new e.CacheError(f))}),i}}};Ir.RequestError=class extends Error{constructor(e){super(e.message),this.name="RequestError",Object.assign(this,e)}};Ir.CacheError=class extends Error{constructor(e){super(e.message),this.name="CacheError",Object.assign(this,e)}};JS.exports=Ir});var qS=O((jW,Wd)=>{"use strict";var Hd=require("stream");function si(e,t,a){typeof a=="undefined"&&(a=t,t=e,e=null),Hd.Duplex.call(this,e),typeof a.read!="function"&&(a=new Hd.Readable(e).wrap(a)),this._writable=t,this._readable=a,this._waiting=!1;var n=this;t.once("finish",function(){n.end()}),this.once("finish",function(){t.end()}),a.on("readable",function(){n._waiting&&(n._waiting=!1,n._read())}),a.once("end",function(){n.push(null)}),(!e||typeof e.bubbleErrors=="undefined"||e.bubbleErrors)&&(t.on("error",function(i){n.emit("error",i)}),a.on("error",function(i){n.emit("error",i)}))}si.prototype=Object.create(Hd.Duplex.prototype,{constructor:{value:si}});si.prototype._write=function(t,a,n){this._writable.write(t,a,n)};si.prototype._read=function(){for(var t,a=0;(t=this._readable.read())!==null;)this.push(t),a++;a===0&&(this._waiting=!0)};Wd.exports=function(t,a,n){return new si(t,a,n)};Wd.exports.DuplexWrapper=si});var eC=O((LW,QS)=>{var XS=ti().Readable,uN=fn();QS.exports=_l;_l.ctor=$S;_l.obj=fN;var pN=$S();function dN(e){return e=e.slice(),function(t,a){var n=null,i=e.length?e.shift():null;i instanceof Error&&(n=i,i=null),a(n,i)}}function _l(e,t){(typeof e!="object"||Array.isArray(e))&&(t=e,e={});var a=new pN(e);return a._from=Array.isArray(t)?dN(t):t||YS,a}function $S(e,t){typeof e=="function"&&(t=e,e={}),e=KS(e),uN(a,XS);function a(n){if(!(this instanceof a))return new a(n);this._reading=!1,this._callback=o,this.destroyed=!1,XS.call(this,n||e);var i=this,r=this._readableState.highWaterMark;function o(s,l){if(!i.destroyed){if(s)return i.destroy(s);if(l===null)return i.push(null);i._reading=!1,i.push(l)&&i._read(r)}}}return a.prototype._from=t||YS,a.prototype._read=function(n){this._reading||this.destroyed||(this._reading=!0,this._from(n,this._callback))},a.prototype.destroy=function(n){if(!this.destroyed){this.destroyed=!0;var i=this;process.nextTick(function(){n&&i.emit("error",n),i.emit("close")})}},a}function fN(e,t){return(typeof e=="function"||Array.isArray(e))&&(t=e,e={}),e=KS(e),e.objectMode=!0,e.highWaterMark=16,_l(e,t)}function YS(){}function KS(e){return e=e||{},e}});var aC=O((MW,tC)=>{"use strict";tC.exports=e=>e instanceof Promise||e!==null&&typeof e=="object"&&typeof e.then=="function"&&typeof e.catch=="function"});var rC=O((DW,Vd)=>{"use strict";var nC=eC(),iC=aC();Vd.exports=e=>{Array.isArray(e)&&(e=e.slice());let t,a;n(e);function n(i){e=i,t=iC(e)?e:null,a=!t&&e[Symbol.iterator]&&typeof e!="string"&&!Buffer.isBuffer(e)?e[Symbol.iterator]():null}return nC(function i(r,o){if(t){t.then(n).then(()=>i.call(this,r,o),o);return}if(a){let l=a.next();setImmediate(o,null,l.done?null:l.value);return}if(e.length===0){setImmediate(o,null,null);return}let s=e.slice(0,r);e=e.slice(r),setImmediate(o,null,s)})};Vd.exports.obj=e=>{Array.isArray(e)&&(e=e.slice());let t,a;n(e);function n(i){e=i,t=iC(e)?e:null,a=!t&&e[Symbol.iterator]?e[Symbol.iterator]():null}return nC.obj(function i(r,o){if(t){t.then(n).then(()=>i.call(this,r,o),o);return}if(a){let s=a.next();setImmediate(o,null,s.done?null:s.value);return}this.push(e),setImmediate(o,null,null)})}});var Zd=O((Ud,Jd)=>{"use strict";Object.defineProperty(Ud,"__esModule",{value:!0});var oC=require("util"),mN=Object.prototype.toString,_r=e=>t=>typeof t===e,Tl=e=>{let t=mN.call(e).slice(8,-1);return t||null},Ke=e=>t=>Tl(t)===e;function oa(e){if(e===null)return"null";if(e===!0||e===!1)return"boolean";let t=typeof e;if(t==="undefined")return"undefined";if(t==="string")return"string";if(t==="number")return"number";if(t==="symbol")return"symbol";if(oa.function_(e))return"Function";if(Array.isArray(e))return"Array";if(Buffer.isBuffer(e))return"Buffer";let a=Tl(e);if(a)return a;if(e instanceof String||e instanceof Boolean||e instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}(function(e){let t=v=>typeof v=="object";e.undefined=_r("undefined"),e.string=_r("string"),e.number=_r("number"),e.function_=_r("function"),e.null_=v=>v===null,e.class_=v=>e.function_(v)&&v.toString().startsWith("class "),e.boolean=v=>v===!0||v===!1,e.symbol=_r("symbol"),e.array=Array.isArray,e.buffer=Buffer.isBuffer,e.nullOrUndefined=v=>e.null_(v)||e.undefined(v),e.object=v=>!e.nullOrUndefined(v)&&(e.function_(v)||t(v)),e.iterable=v=>!e.nullOrUndefined(v)&&e.function_(v[Symbol.iterator]),e.generator=v=>e.iterable(v)&&e.function_(v.next)&&e.function_(v.throw),e.nativePromise=Ke("Promise");let a=v=>!e.null_(v)&&t(v)&&e.function_(v.then)&&e.function_(v.catch);e.promise=v=>e.nativePromise(v)||a(v);let n=v=>x=>e.function_(x)&&e.function_(x.constructor)&&x.constructor.name===v;e.generatorFunction=n("GeneratorFunction"),e.asyncFunction=n("AsyncFunction"),e.boundFunction=v=>e.function_(v)&&!v.hasOwnProperty("prototype"),e.regExp=Ke("RegExp"),e.date=Ke("Date"),e.error=Ke("Error"),e.map=Ke("Map"),e.set=Ke("Set"),e.weakMap=Ke("WeakMap"),e.weakSet=Ke("WeakSet"),e.int8Array=Ke("Int8Array"),e.uint8Array=Ke("Uint8Array"),e.uint8ClampedArray=Ke("Uint8ClampedArray"),e.int16Array=Ke("Int16Array"),e.uint16Array=Ke("Uint16Array"),e.int32Array=Ke("Int32Array"),e.uint32Array=Ke("Uint32Array"),e.float32Array=Ke("Float32Array"),e.float64Array=Ke("Float64Array"),e.arrayBuffer=Ke("ArrayBuffer"),e.sharedArrayBuffer=Ke("SharedArrayBuffer"),e.dataView=Ke("DataView"),e.directInstanceOf=(v,x)=>e.object(v)&&e.object(x)&&Object.getPrototypeOf(v)===x.prototype,e.truthy=v=>!!v,e.falsy=v=>!v,e.nan=v=>Number.isNaN(v);let i=new Set(["undefined","string","number","boolean","symbol"]);e.primitive=v=>e.null_(v)||i.has(typeof v),e.integer=v=>Number.isInteger(v),e.safeInteger=v=>Number.isSafeInteger(v),e.plainObject=v=>{let x;return Tl(v)==="Object"&&(x=Object.getPrototypeOf(v),x===null||x===Object.getPrototypeOf({}))};let r=new Set(["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"]);e.typedArray=v=>{let x=Tl(v);return x===null?!1:r.has(x)};let o=v=>e.safeInteger(v)&&v>-1;e.arrayLike=v=>!e.nullOrUndefined(v)&&!e.function_(v)&&o(v.length),e.inRange=(v,x)=>{if(e.number(x))return v>=Math.min(0,x)&&v<=Math.max(x,0);if(e.array(x)&&x.length===2)return v>=Math.min.apply(null,x)&&v<=Math.max.apply(null,x);throw new TypeError(`Invalid range: ${oC.inspect(x)}`)};let s=1,l=["innerHTML","ownerDocument","style","attributes","nodeValue"];e.domElement=v=>e.object(v)&&v.nodeType===s&&e.string(v.nodeName)&&!e.plainObject(v)&&l.every(x=>x in v),e.nodeStream=v=>!e.nullOrUndefined(v)&&t(v)&&e.function_(v.pipe),e.infinite=v=>v===1/0||v===-1/0;let u=v=>x=>e.integer(x)&&Math.abs(x%2)===v;e.even=u(0),e.odd=u(1);let c=v=>e.string(v)&&/\S/.test(v)===!1,f=v=>(e.string(v)||e.array(v))&&v.length===0,p=v=>!e.map(v)&&!e.set(v)&&e.object(v)&&Object.keys(v).length===0,b=v=>(e.map(v)||e.set(v))&&v.size===0;e.empty=v=>e.falsy(v)||f(v)||p(v)||b(v),e.emptyOrWhitespace=v=>e.empty(v)||c(v);let d=(v,x,E)=>{let g=Array.prototype.slice.call(E,1);if(e.function_(x)===!1)throw new TypeError(`Invalid predicate: ${oC.inspect(x)}`);if(g.length===0)throw new TypeError("Invalid number of values");return v.call(g,x)};function m(v){return d(Array.prototype.some,v,arguments)}e.any=m;function h(v){return d(Array.prototype.every,v,arguments)}e.all=h})(oa||(oa={}));Object.defineProperties(oa,{class:{value:oa.class_},function:{value:oa.function_},null:{value:oa.null_}});Ud.default=oa;Jd.exports=oa;Jd.exports.default=oa});var lC=O((zW,sC)=>{"use strict";var hN=require("stream").PassThrough;sC.exports=e=>{e=Object.assign({},e);let t=e.array,a=e.encoding,n=a==="buffer",i=!1;t?i=!(a||n):a=a||"utf8",n&&(a=null);let r=0,o=[],s=new hN({objectMode:i});return a&&s.setEncoding(a),s.on("data",l=>{o.push(l),i?r=o.length:r+=l.length}),s.getBufferedValue=()=>t?o:n?Buffer.concat(o,r):o.join(""),s.getBufferedLength=()=>r,s}});var cC=O((GW,kl)=>{"use strict";var vN=lC();function qd(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t=Object.assign({maxBuffer:1/0},t);let a=t.maxBuffer,n,i,r=new Promise((o,s)=>{let l=u=>{u&&(u.bufferedData=n.getBufferedValue()),s(u)};n=vN(t),e.once("error",l),e.pipe(n),n.on("data",()=>{n.getBufferedLength()>a&&s(new Error("maxBuffer exceeded"))}),n.once("error",l),n.on("end",o),i=()=>{e.unpipe&&e.unpipe(n)}});return r.then(i,i),r.then(()=>n.getBufferedValue())}kl.exports=qd;kl.exports.buffer=(e,t)=>qd(e,Object.assign({},t,{encoding:"buffer"}));kl.exports.array=(e,t)=>qd(e,Object.assign({},t,{array:!0}))});var pC=O((HW,uC)=>{"use strict";uC.exports=function(e,t){if(e.timeoutTimer)return e;var a=isNaN(t)?t:{socket:t,connect:t},n=e._headers?" to "+e._headers.host:"";a.connect!==void 0&&(e.timeoutTimer=setTimeout(function(){e.abort();var s=new Error("Connection timed out on request"+n);s.code="ETIMEDOUT",e.emit("error",s)},a.connect)),e.on("socket",function(s){if(!(s.connecting||s._connecting)){r();return}s.once("connect",r)});function i(){e.timeoutTimer&&(clearTimeout(e.timeoutTimer),e.timeoutTimer=null)}function r(){i(),a.socket!==void 0&&e.setTimeout(a.socket,function(){e.abort();var s=new Error("Socket timed out on request"+n);s.code="ESOCKETTIMEDOUT",e.emit("error",s)})}return e.on("error",i)}});var fC=O((WW,dC)=>{"use strict";var bN=require("url"),gN=Fd();dC.exports=(e,t)=>{if(typeof e!="string")throw new TypeError(`Expected \`url\` to be of type \`string\`, got \`${typeof e}\` instead.`);let a=gN(e,Object.assign({https:!0},t));return bN.parse(a)}});var hC=O((VW,mC)=>{"use strict";function xN(e){var t={protocol:e.protocol,hostname:e.hostname,hash:e.hash,search:e.search,pathname:e.pathname,path:`${e.pathname}${e.search}`,href:e.href};return e.port!==""&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username}:${e.password}`),t}mC.exports=xN});var vC=O(()=>{});var gC=O((ZW,bC)=>{"use strict";var yN=["ETIMEDOUT","ECONNRESET","EADDRINUSE","ESOCKETTIMEDOUT","ECONNREFUSED","EPIPE","EHOSTUNREACH","EAI_AGAIN"],wN=["ENOTFOUND","ENETUNREACH","UNABLE_TO_GET_ISSUER_CERT","UNABLE_TO_GET_CRL","UNABLE_TO_DECRYPT_CERT_SIGNATURE","UNABLE_TO_DECRYPT_CRL_SIGNATURE","UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY","CERT_SIGNATURE_FAILURE","CRL_SIGNATURE_FAILURE","CERT_NOT_YET_VALID","CERT_HAS_EXPIRED","CRL_NOT_YET_VALID","CRL_HAS_EXPIRED","ERROR_IN_CERT_NOT_BEFORE_FIELD","ERROR_IN_CERT_NOT_AFTER_FIELD","ERROR_IN_CRL_LAST_UPDATE_FIELD","ERROR_IN_CRL_NEXT_UPDATE_FIELD","OUT_OF_MEM","DEPTH_ZERO_SELF_SIGNED_CERT","SELF_SIGNED_CERT_IN_CHAIN","UNABLE_TO_GET_ISSUER_CERT_LOCALLY","UNABLE_TO_VERIFY_LEAF_SIGNATURE","CERT_CHAIN_TOO_LONG","CERT_REVOKED","INVALID_CA","PATH_LENGTH_EXCEEDED","INVALID_PURPOSE","CERT_UNTRUSTED","CERT_REJECTED"];bC.exports=function(e){return!e||!e.code||yN.indexOf(e.code)!==-1?!0:wN.indexOf(e.code)===-1}});var yC=O((qW,xC)=>{"use strict";xC.exports=typeof Symbol=="function"&&typeof Symbol("")=="symbol"});var EC=O((XW,wC)=>{"use strict";wC.exports=yC()&&typeof Symbol.toStringTag=="symbol"});var CC=O(($W,SC)=>{"use strict";SC.exports=function(t){return typeof t=="object"&&t!==null}});var _C=O((YW,IC)=>{"use strict";var EN=EC(),AC=CC(),SN=Object.prototype.toString,CN="[object URL]",AN="hash",IN="host",_N="hostname",TN="href",kN="password",FN="pathname",PN="port",ON="protocol",RN="search",BN="username",Xd=(e,t)=>AC(e)?!EN&&SN.call(e)===CN?!0:!(!(TN in e)||!(ON in e)||!(BN in e)||!(kN in e)||!(_N in e)||!(PN in e)||!(IN in e)||!(FN in e)||!(RN in e)||!(AN in e)||t!==!0&&!AC(e.searchParams)):!1;Xd.lenient=e=>Xd(e,!0);IC.exports=Xd});var Yd=O((KW,$d)=>{"use strict";var Fl=class extends Error{constructor(){super("Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Pl=class e{static fn(t){return function(){let a=[].slice.apply(arguments);return new e((n,i,r)=>{a.push(r),t.apply(null,a).then(n,i)})}}constructor(t){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._promise=new Promise((a,n)=>(this._reject=n,t(i=>{this._isPending=!1,a(i)},i=>{this._isPending=!1,n(i)},i=>{this._cancelHandlers.push(i)})))}then(t,a){return this._promise.then(t,a)}catch(t){return this._promise.catch(t)}finally(t){return this._promise.finally(t)}cancel(){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._reject(new Fl)}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Pl.prototype,Promise.prototype);$d.exports=Pl;$d.exports.CancelError=Fl});var kC=O((QW,TC)=>{"use strict";TC.exports=(e,t)=>(t=t||(()=>{}),e.then(a=>new Promise(n=>{n(t())}).then(()=>a),a=>new Promise(n=>{n(t())}).then(()=>{throw a})))});var Qd=O((eV,Kd)=>{"use strict";var NN=kC(),Ol=class extends Error{constructor(t){super(t),this.name="TimeoutError"}};Kd.exports=(e,t,a)=>new Promise((n,i)=>{if(typeof t!="number"||t<0)throw new TypeError("Expected `ms` to be a positive number");let r=setTimeout(()=>{if(typeof a=="function"){try{n(a())}catch(l){i(l)}return}let o=typeof a=="string"?a:`Promise timed out after ${t} milliseconds`,s=a instanceof Error?a:new Ol(o);typeof e.cancel=="function"&&e.cancel(),i(s)},t);NN(e.then(n,i),()=>{clearTimeout(r)})});Kd.exports.TimeoutError=Ol});var OC=O((tV,PC)=>{"use strict";var FC=(e,t)=>function(){let a=t.promiseModule,n=new Array(arguments.length);for(let i=0;i{t.errorFirst?n.push(function(o,s){if(t.multiArgs){let l=new Array(arguments.length-1);for(let u=1;u{t=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:!0,promiseModule:Promise},t);let a=i=>{let r=o=>typeof o=="string"?i===o:o.test(i);return t.include?t.include.some(r):!t.exclude.some(r)},n;typeof e=="function"?n=function(){return t.excludeMain?e.apply(this,arguments):FC(e,t).apply(this,arguments)}:n=Object.create(Object.getPrototypeOf(e));for(let i in e){let r=e[i];n[i]=typeof r=="function"&&a(i)?FC(r,t):r}return n}});var RC=O((aV,jN)=>{jN.exports={name:"got",version:"8.3.2",description:"Simplified HTTP requests",license:"MIT",repository:"sindresorhus/got",maintainers:[{name:"Sindre Sorhus",email:"sindresorhus@gmail.com",url:"sindresorhus.com"},{name:"Vsevolod Strukchinsky",email:"floatdrop@gmail.com",url:"github.com/floatdrop"},{name:"Alexander Tesfamichael",email:"alex.tesfamichael@gmail.com",url:"alextes.me"}],engines:{node:">=4"},scripts:{test:"xo && nyc ava",coveralls:"nyc report --reporter=text-lcov | coveralls"},files:["index.js","errors.js"],keywords:["http","https","get","got","url","uri","request","util","utility","simple","curl","wget","fetch","net","network","electron"],dependencies:{"@sindresorhus/is":"^0.7.0","cacheable-request":"^2.1.1","decompress-response":"^3.3.0",duplexer3:"^0.1.4","get-stream":"^3.0.0","into-stream":"^3.1.0","is-retry-allowed":"^1.1.0",isurl:"^1.0.0-alpha5","lowercase-keys":"^1.0.0","mimic-response":"^1.0.0","p-cancelable":"^0.4.0","p-timeout":"^2.0.1",pify:"^3.0.0","safe-buffer":"^5.1.1","timed-out":"^4.0.1","url-parse-lax":"^3.0.0","url-to-options":"^1.0.1"},devDependencies:{ava:"^0.25.0",coveralls:"^3.0.0","form-data":"^2.1.1","get-port":"^3.0.0",nyc:"^11.0.2","p-event":"^1.3.0",pem:"^1.4.4",proxyquire:"^1.8.0",sinon:"^4.0.0","slow-stream":"0.0.4",tempfile:"^2.0.0",tempy:"^0.2.1","universal-url":"1.0.0-alpha",xo:"^0.20.0"},ava:{concurrency:4},browser:{"decompress-response":!1,electron:!1}}});var BC=O((nV,la)=>{"use strict";var LN=require("url"),ef=require("http"),MN=Yd(),DN=Zd(),sa=class extends Error{constructor(t,a,n){super(t),Error.captureStackTrace(this,this.constructor),this.name="GotError",DN.undefined(a.code)||(this.code=a.code),Object.assign(this,{host:n.host,hostname:n.hostname,method:n.method,path:n.path,protocol:n.protocol,url:n.href})}};la.exports.GotError=sa;la.exports.CacheError=class extends sa{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};la.exports.RequestError=class extends sa{constructor(e,t){super(e.message,e,t),this.name="RequestError"}};la.exports.ReadError=class extends sa{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};la.exports.ParseError=class extends sa{constructor(e,t,a,n){super(`${e.message} in "${LN.format(a)}": +${n.slice(0,77)}...`,e,a),this.name="ParseError",this.statusCode=t,this.statusMessage=ef.STATUS_CODES[this.statusCode]}};la.exports.HTTPError=class extends sa{constructor(e,t,a,n){t?t=t.replace(/\r?\n/g," ").trim():t=ef.STATUS_CODES[e],super(`Response code ${e} (${t})`,{},n),this.name="HTTPError",this.statusCode=e,this.statusMessage=t,this.headers=a}};la.exports.MaxRedirectsError=class extends sa{constructor(e,t,a){super("Redirected 10 times. Aborting.",{},a),this.name="MaxRedirectsError",this.statusCode=e,this.statusMessage=ef.STATUS_CODES[this.statusCode],this.redirectUrls=t}};la.exports.UnsupportedProtocolError=class extends sa{constructor(e){super(`Unsupported protocol "${e.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};la.exports.CancelError=MN.CancelError});var qC=O((pV,ZC)=>{"use strict";var WC=require("events"),zN=require("http"),GN=require("https"),NC=require("stream").PassThrough,HN=require("stream").Transform,Tr=require("url"),jC=require("fs"),LC=require("querystring"),MC=ZS(),WN=qS(),VN=rC(),xe=Zd(),DC=cC(),UN=pC(),JN=fC(),ZN=hC(),qN=jd(),zC=vC(),XN=Md(),$N=gC(),YN=_C(),KN=Yd(),QN=Qd(),GC=OC(),Rl=Bs().Buffer,HC=RC(),ej=BC(),tj=new Set([300,301,302,303,304,305,307,308]),aj=new Set([300,303,307,308]),tf=e=>xe.nodeStream(e)&&xe.function(e.getBoundary),nj=e=>{let t=e.body;return e.headers["content-length"]?Number(e.headers["content-length"]):!t&&!e.stream?0:xe.string(t)?Rl.byteLength(t):tf(t)?GC(t.getLength.bind(t))():t instanceof jC.ReadStream?GC(jC.stat)(t.path).then(a=>a.size):xe.nodeStream(t)&&xe.buffer(t._buffer)?t._buffer.length:null};function VC(e){e=e||{};let t=new WC,a=e.href||Tr.resolve(Tr.format(e),e.path),n=[],i=xe.object(e.agent)?e.agent:null,r=0,o,s,l=0,u=c=>{if(c.protocol!=="http:"&&c.protocol!=="https:"){t.emit("error",new tt.UnsupportedProtocolError(c));return}let f=c.protocol==="https:"?GN:zN;if(i){let m=c.protocol==="https:"?"https":"http";c.agent=i[m]||c.agent}if(c.useElectronNet&&process.versions.electron){let m=require("electron");f=m.net||m.remote.net}let p,d=new MC(f.request,c.cache)(c,m=>{clearInterval(p),t.emit("uploadProgress",{percent:1,transferred:l,total:s});let h=m.statusCode;m.url=o||a,m.requestUrl=a;let v=c.followRedirect&&"location"in m.headers,x=v&&tj.has(h);if(v&&aj.has(h)||x&&(c.method==="GET"||c.method==="HEAD")){if(m.resume(),h===303&&(c.method="GET"),n.length>=10){t.emit("error",new tt.MaxRedirectsError(h,n,c),null,m);return}let g=Rl.from(m.headers.location,"binary").toString();o=Tr.resolve(Tr.format(c),g),n.push(o);let w=Object.assign({},c,Tr.parse(o));t.emit("redirect",m,w),u(w);return}setImmediate(()=>{try{ij(m,c,t,n)}catch(g){t.emit("error",g)}})});d.on("error",m=>{m instanceof MC.RequestError?t.emit("error",new tt.RequestError(m,c)):t.emit("error",new tt.CacheError(m,c))}),d.once("request",m=>{let h=!1;m.once("abort",v=>{h=!0}),m.once("error",v=>{if(clearInterval(p),h)return;let x=c.retries(++r,v);if(x){setTimeout(u,x,c);return}t.emit("error",new tt.RequestError(v,c))}),t.once("request",v=>{t.emit("uploadProgress",{percent:0,transferred:0,total:s});let x=v.connection;if(x){let E=x.connecting===void 0?x._connecting:x.connecting,g=()=>{p=setInterval(()=>{if(x.destroyed){clearInterval(p);return}let C=l,y=v._header?Rl.byteLength(v._header):0;l=x.bytesWritten-y,s&&l>s&&(l=s),!(l===C||l===s)&&t.emit("uploadProgress",{percent:s?l/s:0,transferred:l,total:s})},150)};E?x.once("connect",g):g()}}),c.gotTimeout&&(clearInterval(p),UN(m,c.gotTimeout)),setImmediate(()=>{t.emit("request",m)})})};return setImmediate(()=>{Promise.resolve(nj(e)).then(c=>{s=c,xe.undefined(e.headers["content-length"])&&xe.undefined(e.headers["transfer-encoding"])&&tf(e.body)&&(e.headers["content-length"]=c),u(e)}).catch(c=>{t.emit("error",c)})}),t}function ij(e,t,a,n){let i=Number(e.headers["content-length"])||null,r=0,o=new HN({transform(l,u,c){r+=l.length;let f=i?r/i:0;f<1&&a.emit("downloadProgress",{percent:f,transferred:r,total:i}),c(null,l)},flush(l){a.emit("downloadProgress",{percent:1,transferred:r,total:i}),l()}});XN(e,o),o.redirectUrls=n;let s=t.decompress===!0&&xe.function(zC)&&t.method!=="HEAD"?zC(o):o;!t.decompress&&["gzip","deflate"].indexOf(e.headers["content-encoding"])!==-1&&(t.encoding=null),a.emit("response",s),a.emit("downloadProgress",{percent:0,transferred:0,total:i}),e.pipe(o)}function rj(e){let t=r=>e.gotTimeout&&e.gotTimeout.request?QN(r,e.gotTimeout.request,new tt.RequestError({message:"Request timed out",code:"ETIMEDOUT"},e)):r,a=new WC,n=new KN((r,o,s)=>{let l=VC(e),u=!1;s(()=>{u=!0}),l.on("request",c=>{if(u&&c.abort(),s(()=>{c.abort()}),xe.nodeStream(e.body)){e.body.pipe(c),e.body=void 0;return}c.end(e.body)}),l.on("response",c=>{(xe.null(e.encoding)?DC.buffer(c):DC(c,e)).catch(p=>o(new tt.ReadError(p,e))).then(p=>{let b=c.statusCode,d=e.followRedirect?299:399;if(c.body=p,e.json&&c.body)try{c.body=JSON.parse(c.body)}catch(m){if(b>=200&&b<300)throw new tt.ParseError(m,b,e,p)}if(e.throwHttpErrors&&b!==304&&(b<200||b>d))throw new tt.HTTPError(b,c.statusMessage,c.headers,e);r(c)}).catch(p=>{Object.defineProperty(p,"response",{value:c}),o(p)})}),l.once("error",o),l.on("redirect",a.emit.bind(a,"redirect")),l.on("uploadProgress",a.emit.bind(a,"uploadProgress")),l.on("downloadProgress",a.emit.bind(a,"downloadProgress"))});Object.defineProperty(n,"canceled",{get(){return n.isCanceled}});let i=t(n);return i.cancel=n.cancel.bind(n),i.on=(r,o)=>(a.on(r,o),i),i}function UC(e){e.stream=!0;let t=new NC,a=new NC,n=WN(t,a),i;if(e.gotTimeout&&e.gotTimeout.request&&(i=setTimeout(()=>{n.emit("error",new tt.RequestError({message:"Request timed out",code:"ETIMEDOUT"},e))},e.gotTimeout.request)),e.json)throw new Error("Got can not be used as a stream when the `json` option is used");e.body&&(n.write=()=>{throw new Error("Got's stream is not writable when the `body` option is used")});let r=VC(e);return r.on("request",o=>{if(n.emit("request",o),xe.nodeStream(e.body)){e.body.pipe(o);return}if(e.body){o.end(e.body);return}if(e.method==="POST"||e.method==="PUT"||e.method==="PATCH"){t.pipe(o);return}o.end()}),r.on("response",o=>{clearTimeout(i);let s=o.statusCode;if(o.on("error",l=>{n.emit("error",new tt.ReadError(l,e))}),o.pipe(a),e.throwHttpErrors&&s!==304&&(s<200||s>299)){n.emit("error",new tt.HTTPError(s,o.statusMessage,o.headers,e),null,o);return}n.emit("response",o)}),r.on("error",n.emit.bind(n,"error")),r.on("redirect",n.emit.bind(n,"redirect")),r.on("uploadProgress",n.emit.bind(n,"uploadProgress")),r.on("downloadProgress",n.emit.bind(n,"downloadProgress")),n}function JC(e,t){if(!xe.string(e)&&!xe.object(e))throw new TypeError(`Parameter \`url\` must be a string or object, not ${xe(e)}`);if(xe.string(e)){e=e.replace(/^unix:/,"http://$&");try{decodeURI(e)}catch(r){throw new Error("Parameter `url` must contain valid UTF-8 character sequences")}if(e=JN(e),e.auth)throw new Error("Basic authentication must be done with the `auth` option")}else YN.lenient(e)&&(e=ZN(e));t=Object.assign({path:"",retries:2,cache:!1,decompress:!0,useElectronNet:!1,throwHttpErrors:!0},e,{protocol:e.protocol||"http:"},t);let a=qN(t.headers);for(let r of Object.keys(a))xe.nullOrUndefined(a[r])&&delete a[r];t.headers=Object.assign({"user-agent":`${HC.name}/${HC.version} (https://github.com/sindresorhus/got)`},a),t.decompress&&xe.undefined(t.headers["accept-encoding"])&&(t.headers["accept-encoding"]="gzip, deflate");let n=t.query;n&&(xe.string(n)||(t.query=LC.stringify(n)),t.path=`${t.path.split("?")[0]}?${t.query}`,delete t.query),t.json&&xe.undefined(t.headers.accept)&&(t.headers.accept="application/json");let i=t.body;if(xe.nullOrUndefined(i))t.method=(t.method||"GET").toUpperCase();else{let r=t.headers;if(!xe.nodeStream(i)&&!xe.string(i)&&!xe.buffer(i)&&!(t.form||t.json))throw new TypeError("The `body` option must be a stream.Readable, string, Buffer or plain Object");let o=xe.plainObject(i)||xe.array(i);if((t.form||t.json)&&!o)throw new TypeError("The `body` option must be a plain Object or Array when the `form` or `json` option is used");if(tf(i)?r["content-type"]=r["content-type"]||`multipart/form-data; boundary=${i.getBoundary()}`:t.form&&o?(r["content-type"]=r["content-type"]||"application/x-www-form-urlencoded",t.body=LC.stringify(i)):t.json&&o&&(r["content-type"]=r["content-type"]||"application/json",t.body=JSON.stringify(i)),xe.undefined(r["content-length"])&&xe.undefined(r["transfer-encoding"])&&!xe.nodeStream(i)){let s=xe.string(t.body)?Rl.byteLength(t.body):t.body.length;r["content-length"]=s}xe.buffer(i)&&(t.body=VN(i),t.body._buffer=i),t.method=(t.method||"POST").toUpperCase()}if(t.hostname==="unix"){let r=/(.+?):(.+)/.exec(t.path);r&&(t.socketPath=r[1],t.path=r[2],t.host=null)}if(!xe.function(t.retries)){let r=t.retries;t.retries=(o,s)=>{if(o>r||!$N(s))return 0;let l=Math.random()*100;return(1<UC(JC(e,t));var oj=["get","post","put","patch","head","delete"];for(let e of oj)tt[e]=(t,a)=>tt(t,Object.assign({},a,{method:e})),tt.stream[e]=(t,a)=>tt.stream(t,Object.assign({},a,{method:e}));Object.assign(tt,ej);ZC.exports=tt});var af=O((dV,$C)=>{"use strict";var XC=(e,t)=>function(...a){let n=t.promiseModule;return new n((i,r)=>{t.multiArgs?a.push((...o)=>{t.errorFirst?o[0]?r(o):(o.shift(),i(o)):i(o)}):t.errorFirst?a.push((o,s)=>{o?r(o):i(s)}):a.push(i),e.apply(this,a)})};$C.exports=(e,t)=>{t=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:!0,promiseModule:Promise},t);let a=typeof e;if(!(e!==null&&(a==="object"||a==="function")))throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${e===null?"null":a}\``);let n=r=>{let o=s=>typeof s=="string"?r===s:s.test(r);return t.include?t.include.some(o):!t.exclude.some(o)},i;a==="function"?i=function(...r){return t.excludeMain?e(...r):XC(e,t).apply(this,r)}:i=Object.create(Object.getPrototypeOf(e));for(let r in e){let o=e[r];i[r]=typeof o=="function"&&n(r)?XC(o,t):o}return i}});var fA=O((ce,dA)=>{ce=dA.exports=be;var Te;typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?Te=function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:Te=function(){};ce.SEMVER_SPEC_VERSION="2.0.0";var rf=256,Bl=Number.MAX_SAFE_INTEGER||9007199254740991,nf=16,Oe=ce.re=[],G=ce.src=[],ve=0,li=ve++;G[li]="0|[1-9]\\d*";var ci=ve++;G[ci]="[0-9]+";var cf=ve++;G[cf]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var KC=ve++;G[KC]="("+G[li]+")\\.("+G[li]+")\\.("+G[li]+")";var QC=ve++;G[QC]="("+G[ci]+")\\.("+G[ci]+")\\.("+G[ci]+")";var of=ve++;G[of]="(?:"+G[li]+"|"+G[cf]+")";var sf=ve++;G[sf]="(?:"+G[ci]+"|"+G[cf]+")";var uf=ve++;G[uf]="(?:-("+G[of]+"(?:\\."+G[of]+")*))";var pf=ve++;G[pf]="(?:-?("+G[sf]+"(?:\\."+G[sf]+")*))";var lf=ve++;G[lf]="[0-9A-Za-z-]+";var Pr=ve++;G[Pr]="(?:\\+("+G[lf]+"(?:\\."+G[lf]+")*))";var df=ve++,eA="v?"+G[KC]+G[uf]+"?"+G[Pr]+"?";G[df]="^"+eA+"$";var ff="[v=\\s]*"+G[QC]+G[pf]+"?"+G[Pr]+"?",mf=ve++;G[mf]="^"+ff+"$";var di=ve++;G[di]="((?:<|>)?=?)";var Nl=ve++;G[Nl]=G[ci]+"|x|X|\\*";var jl=ve++;G[jl]=G[li]+"|x|X|\\*";var bn=ve++;G[bn]="[v=\\s]*("+G[jl]+")(?:\\.("+G[jl]+")(?:\\.("+G[jl]+")(?:"+G[uf]+")?"+G[Pr]+"?)?)?";var pi=ve++;G[pi]="[v=\\s]*("+G[Nl]+")(?:\\.("+G[Nl]+")(?:\\.("+G[Nl]+")(?:"+G[pf]+")?"+G[Pr]+"?)?)?";var tA=ve++;G[tA]="^"+G[di]+"\\s*"+G[bn]+"$";var aA=ve++;G[aA]="^"+G[di]+"\\s*"+G[pi]+"$";var nA=ve++;G[nA]="(?:^|[^\\d])(\\d{1,"+nf+"})(?:\\.(\\d{1,"+nf+"}))?(?:\\.(\\d{1,"+nf+"}))?(?:$|[^\\d])";var Hl=ve++;G[Hl]="(?:~>?)";var Ll=ve++;G[Ll]="(\\s*)"+G[Hl]+"\\s+";Oe[Ll]=new RegExp(G[Ll],"g");var sj="$1~",iA=ve++;G[iA]="^"+G[Hl]+G[bn]+"$";var rA=ve++;G[rA]="^"+G[Hl]+G[pi]+"$";var Wl=ve++;G[Wl]="(?:\\^)";var Ml=ve++;G[Ml]="(\\s*)"+G[Wl]+"\\s+";Oe[Ml]=new RegExp(G[Ml],"g");var lj="$1^",oA=ve++;G[oA]="^"+G[Wl]+G[bn]+"$";var sA=ve++;G[sA]="^"+G[Wl]+G[pi]+"$";var hf=ve++;G[hf]="^"+G[di]+"\\s*("+ff+")$|^$";var vf=ve++;G[vf]="^"+G[di]+"\\s*("+eA+")$|^$";var kr=ve++;G[kr]="(\\s*)"+G[di]+"\\s*("+ff+"|"+G[bn]+")";Oe[kr]=new RegExp(G[kr],"g");var cj="$1$2$3",lA=ve++;G[lA]="^\\s*("+G[bn]+")\\s+-\\s+("+G[bn]+")\\s*$";var cA=ve++;G[cA]="^\\s*("+G[pi]+")\\s+-\\s+("+G[pi]+")\\s*$";var uA=ve++;G[uA]="(<|>)?=?\\s*\\*";for(Wa=0;Warf)return null;var a=t.loose?Oe[mf]:Oe[df];if(!a.test(e))return null;try{return new be(e,t)}catch(n){return null}}ce.valid=uj;function uj(e,t){var a=gn(e,t);return a?a.version:null}ce.clean=pj;function pj(e,t){var a=gn(e.trim().replace(/^[=v]+/,""),t);return a?a.version:null}ce.SemVer=be;function be(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof be){if(e.loose===t.loose)return e;e=e.version}else if(typeof e!="string")throw new TypeError("Invalid Version: "+e);if(e.length>rf)throw new TypeError("version is longer than "+rf+" characters");if(!(this instanceof be))return new be(e,t);Te("SemVer",e,t),this.options=t,this.loose=!!t.loose;var a=e.trim().match(t.loose?Oe[mf]:Oe[df]);if(!a)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+a[1],this.minor=+a[2],this.patch=+a[3],this.major>Bl||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Bl||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Bl||this.patch<0)throw new TypeError("Invalid patch version");a[4]?this.prerelease=a[4].split(".").map(function(n){if(/^[0-9]+$/.test(n)){var i=+n;if(i>=0&&i=0;)typeof this.prerelease[a]=="number"&&(this.prerelease[a]++,a=-2);a===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this};ce.inc=dj;function dj(e,t,a,n){typeof a=="string"&&(n=a,a=void 0);try{return new be(e,a).inc(t,n).version}catch(i){return null}}ce.diff=fj;function fj(e,t){if(bf(e,t))return null;var a=gn(e),n=gn(t),i="";if(a.prerelease.length||n.prerelease.length){i="pre";var r="prerelease"}for(var o in a)if((o==="major"||o==="minor"||o==="patch")&&a[o]!==n[o])return i+o;return r}ce.compareIdentifiers=ui;var YC=/^[0-9]+$/;function ui(e,t){var a=YC.test(e),n=YC.test(t);return a&&n&&(e=+e,t=+t),e===t?0:a&&!n?-1:n&&!a?1:e0}ce.lt=Dl;function Dl(e,t,a){return Sa(e,t,a)<0}ce.eq=bf;function bf(e,t,a){return Sa(e,t,a)===0}ce.neq=pA;function pA(e,t,a){return Sa(e,t,a)!==0}ce.gte=gf;function gf(e,t,a){return Sa(e,t,a)>=0}ce.lte=xf;function xf(e,t,a){return Sa(e,t,a)<=0}ce.cmp=zl;function zl(e,t,a,n){switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof a=="object"&&(a=a.version),e===a;case"!==":return typeof e=="object"&&(e=e.version),typeof a=="object"&&(a=a.version),e!==a;case"":case"=":case"==":return bf(e,a,n);case"!=":return pA(e,a,n);case">":return Fr(e,a,n);case">=":return gf(e,a,n);case"<":return Dl(e,a,n);case"<=":return xf(e,a,n);default:throw new TypeError("Invalid operator: "+t)}}ce.Comparator=Gt;function Gt(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof Gt){if(e.loose===!!t.loose)return e;e=e.value}if(!(this instanceof Gt))return new Gt(e,t);Te("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Or?this.value="":this.value=this.operator+this.semver.version,Te("comp",this)}var Or={};Gt.prototype.parse=function(e){var t=this.options.loose?Oe[hf]:Oe[vf],a=e.match(t);if(!a)throw new TypeError("Invalid comparator: "+e);this.operator=a[1],this.operator==="="&&(this.operator=""),a[2]?this.semver=new be(a[2],this.options.loose):this.semver=Or};Gt.prototype.toString=function(){return this.value};Gt.prototype.test=function(e){return Te("Comparator.test",e,this.options.loose),this.semver===Or?!0:(typeof e=="string"&&(e=new be(e,this.options)),zl(e,this.operator,this.semver,this.options))};Gt.prototype.intersects=function(e,t){if(!(e instanceof Gt))throw new TypeError("a Comparator is required");(!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1});var a;if(this.operator==="")return a=new Ve(e.value,t),Gl(this.value,a,t);if(e.operator==="")return a=new Ve(this.value,t),Gl(e.semver,a,t);var n=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),i=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),r=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),s=zl(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=zl(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return n||i||r&&o||s||l};ce.Range=Ve;function Ve(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof Ve)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new Ve(e.raw,t);if(e instanceof Gt)return new Ve(e.value,t);if(!(this instanceof Ve))return new Ve(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(function(a){return this.parseRange(a.trim())},this).filter(function(a){return a.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}Ve.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim(),this.range};Ve.prototype.toString=function(){return this.range};Ve.prototype.parseRange=function(e){var t=this.options.loose;e=e.trim();var a=t?Oe[cA]:Oe[lA];e=e.replace(a,Pj),Te("hyphen replace",e),e=e.replace(Oe[kr],cj),Te("comparator trim",e,Oe[kr]),e=e.replace(Oe[Ll],sj),e=e.replace(Oe[Ml],lj),e=e.split(/\s+/).join(" ");var n=t?Oe[hf]:Oe[vf],i=e.split(" ").map(function(r){return Sj(r,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(i=i.filter(function(r){return!!r.match(n)})),i=i.map(function(r){return new Gt(r,this.options)},this),i};Ve.prototype.intersects=function(e,t){if(!(e instanceof Ve))throw new TypeError("a Range is required");return this.set.some(function(a){return a.every(function(n){return e.set.some(function(i){return i.every(function(r){return n.intersects(r,t)})})})})};ce.toComparators=Ej;function Ej(e,t){return new Ve(e,t).set.map(function(a){return a.map(function(n){return n.value}).join(" ").trim().split(" ")})}function Sj(e,t){return Te("comp",e,t),e=Ij(e,t),Te("caret",e),e=Cj(e,t),Te("tildes",e),e=Tj(e,t),Te("xrange",e),e=Fj(e,t),Te("stars",e),e}function xt(e){return!e||e.toLowerCase()==="x"||e==="*"}function Cj(e,t){return e.trim().split(/\s+/).map(function(a){return Aj(a,t)}).join(" ")}function Aj(e,t){var a=t.loose?Oe[rA]:Oe[iA];return e.replace(a,function(n,i,r,o,s){Te("tilde",e,n,i,r,o,s);var l;return xt(i)?l="":xt(r)?l=">="+i+".0.0 <"+(+i+1)+".0.0":xt(o)?l=">="+i+"."+r+".0 <"+i+"."+(+r+1)+".0":s?(Te("replaceTilde pr",s),l=">="+i+"."+r+"."+o+"-"+s+" <"+i+"."+(+r+1)+".0"):l=">="+i+"."+r+"."+o+" <"+i+"."+(+r+1)+".0",Te("tilde return",l),l})}function Ij(e,t){return e.trim().split(/\s+/).map(function(a){return _j(a,t)}).join(" ")}function _j(e,t){Te("caret",e,t);var a=t.loose?Oe[sA]:Oe[oA];return e.replace(a,function(n,i,r,o,s){Te("caret",e,n,i,r,o,s);var l;return xt(i)?l="":xt(r)?l=">="+i+".0.0 <"+(+i+1)+".0.0":xt(o)?i==="0"?l=">="+i+"."+r+".0 <"+i+"."+(+r+1)+".0":l=">="+i+"."+r+".0 <"+(+i+1)+".0.0":s?(Te("replaceCaret pr",s),i==="0"?r==="0"?l=">="+i+"."+r+"."+o+"-"+s+" <"+i+"."+r+"."+(+o+1):l=">="+i+"."+r+"."+o+"-"+s+" <"+i+"."+(+r+1)+".0":l=">="+i+"."+r+"."+o+"-"+s+" <"+(+i+1)+".0.0"):(Te("no pr"),i==="0"?r==="0"?l=">="+i+"."+r+"."+o+" <"+i+"."+r+"."+(+o+1):l=">="+i+"."+r+"."+o+" <"+i+"."+(+r+1)+".0":l=">="+i+"."+r+"."+o+" <"+(+i+1)+".0.0"),Te("caret return",l),l})}function Tj(e,t){return Te("replaceXRanges",e,t),e.split(/\s+/).map(function(a){return kj(a,t)}).join(" ")}function kj(e,t){e=e.trim();var a=t.loose?Oe[aA]:Oe[tA];return e.replace(a,function(n,i,r,o,s,l){Te("xRange",e,n,i,r,o,s,l);var u=xt(r),c=u||xt(o),f=c||xt(s),p=f;return i==="="&&p&&(i=""),u?i===">"||i==="<"?n="<0.0.0":n="*":i&&p?(c&&(o=0),s=0,i===">"?(i=">=",c?(r=+r+1,o=0,s=0):(o=+o+1,s=0)):i==="<="&&(i="<",c?r=+r+1:o=+o+1),n=i+r+"."+o+"."+s):c?n=">="+r+".0.0 <"+(+r+1)+".0.0":f&&(n=">="+r+"."+o+".0 <"+r+"."+(+o+1)+".0"),Te("xRange return",n),n})}function Fj(e,t){return Te("replaceStars",e,t),e.trim().replace(Oe[uA],"")}function Pj(e,t,a,n,i,r,o,s,l,u,c,f,p){return xt(a)?t="":xt(n)?t=">="+a+".0.0":xt(i)?t=">="+a+"."+n+".0":t=">="+t,xt(l)?s="":xt(u)?s="<"+(+l+1)+".0.0":xt(c)?s="<"+l+"."+(+u+1)+".0":f?s="<="+l+"."+u+"."+c+"-"+f:s="<="+s,(t+" "+s).trim()}Ve.prototype.test=function(e){if(!e)return!1;typeof e=="string"&&(e=new be(e,this.options));for(var t=0;t0){var i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}ce.satisfies=Gl;function Gl(e,t,a){try{t=new Ve(t,a)}catch(n){return!1}return t.test(e)}ce.maxSatisfying=Rj;function Rj(e,t,a){var n=null,i=null;try{var r=new Ve(t,a)}catch(o){return null}return e.forEach(function(o){r.test(o)&&(!n||i.compare(o)===-1)&&(n=o,i=new be(n,a))}),n}ce.minSatisfying=Bj;function Bj(e,t,a){var n=null,i=null;try{var r=new Ve(t,a)}catch(o){return null}return e.forEach(function(o){r.test(o)&&(!n||i.compare(o)===1)&&(n=o,i=new be(n,a))}),n}ce.minVersion=Nj;function Nj(e,t){e=new Ve(e,t);var a=new be("0.0.0");if(e.test(a)||(a=new be("0.0.0-0"),e.test(a)))return a;a=null;for(var n=0;n":o.prerelease.length===0?o.patch++:o.prerelease.push(0),o.raw=o.format();case"":case">=":(!a||Fr(a,o))&&(a=o);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+r.operator)}})}return a&&e.test(a)?a:null}ce.validRange=jj;function jj(e,t){try{return new Ve(e,t).range||"*"}catch(a){return null}}ce.ltr=Lj;function Lj(e,t,a){return yf(e,t,"<",a)}ce.gtr=Mj;function Mj(e,t,a){return yf(e,t,">",a)}ce.outside=yf;function yf(e,t,a,n){e=new be(e,n),t=new Ve(t,n);var i,r,o,s,l;switch(a){case">":i=Fr,r=xf,o=Dl,s=">",l=">=";break;case"<":i=Dl,r=gf,o=Fr,s="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Gl(e,t,n))return!1;for(var u=0;u=0.0.0")),f=f||b,p=p||b,i(b.semver,f.semver,n)?f=b:o(b.semver,p.semver,n)&&(p=b)}),f.operator===s||f.operator===l||(!p.operator||p.operator===s)&&r(e,p.semver))return!1;if(p.operator===l&&o(e,p.semver))return!1}return!0}ce.prerelease=Dj;function Dj(e,t){var a=gn(e,t);return a&&a.prerelease.length?a.prerelease:null}ce.intersects=zj;function zj(e,t,a){return e=new Ve(e,a),t=new Ve(t,a),e.intersects(t)}ce.coerce=Gj;function Gj(e){if(e instanceof be)return e;if(typeof e!="string")return null;var t=e.match(Oe[nA]);return t==null?null:gn(t[1]+"."+(t[2]||"0")+"."+(t[3]||"0"))}});var yA=O((fV,Ul)=>{"use strict";var Vl=require("fs"),Ca=require("path"),mA=af(),Hj=fA(),hA={mode:511&~process.umask(),fs:Vl},vA=Hj.satisfies(process.version,">=10.12.0"),bA=e=>{if(process.platform==="win32"&&/[<>:"|?*]/.test(e.replace(Ca.parse(e).root,""))){let a=new Error(`Path contains invalid characters: ${e}`);throw a.code="EINVAL",a}},gA=e=>{let t=new Error(`operation not permitted, mkdir '${e}'`);return t.code="EPERM",t.errno=-4048,t.path=e,t.syscall="mkdir",t},xA=(e,t)=>Promise.resolve().then(()=>{bA(e),t=Object.assign({},hA,t);let a=mA(t.fs.mkdir),n=mA(t.fs.stat);if(vA&&t.fs.mkdir===Vl.mkdir){let r=Ca.resolve(e);return a(r,{mode:t.mode,recursive:!0}).then(()=>r)}let i=r=>a(r,t.mode).then(()=>r).catch(o=>{if(o.code==="EPERM")throw o;if(o.code==="ENOENT"){if(Ca.dirname(r)===r)throw gA(r);if(o.message.includes("null bytes"))throw o;return i(Ca.dirname(r)).then(()=>i(r))}return n(r).then(s=>s.isDirectory()?r:Promise.reject()).catch(()=>{throw o})});return i(Ca.resolve(e))});Ul.exports=xA;Ul.exports.default=xA;Ul.exports.sync=(e,t)=>{if(bA(e),t=Object.assign({},hA,t),vA&&t.fs.mkdirSync===Vl.mkdirSync){let n=Ca.resolve(e);return Vl.mkdirSync(n,{mode:t.mode,recursive:!0}),n}let a=n=>{try{t.fs.mkdirSync(n,t.mode)}catch(i){if(i.code==="EPERM")throw i;if(i.code==="ENOENT"){if(Ca.dirname(n)===n)throw gA(n);if(i.message.includes("null bytes"))throw i;return a(Ca.dirname(n)),a(n)}try{if(!t.fs.statSync(n).isDirectory())throw new Error("The path is not a directory")}catch(r){throw i}}return n};return a(Ca.resolve(e))}});var CA=O((mV,Jl)=>{"use strict";var Wj=Qd(),Vj=Symbol.asyncIterator||"@@asyncIterator",wA=e=>{let t=e.on||e.addListener||e.addEventListener,a=e.off||e.removeListener||e.removeEventListener;if(!t||!a)throw new TypeError("Emitter is not compatible");return{addListener:t.bind(e),removeListener:a.bind(e)}},EA=e=>Array.isArray(e)?e:[e],SA=(e,t,a)=>{let n,i=new Promise((r,o)=>{if(a=Object.assign({rejectionEvents:["error"],multiArgs:!1,resolveImmediately:!1},a),!(a.count>=0&&(a.count===1/0||Number.isInteger(a.count))))throw new TypeError("The `count` option should be at least 0 or more");let s=EA(t),l=[],{addListener:u,removeListener:c}=wA(e),f=(...b)=>{let d=a.multiArgs?b:b[0];a.filter&&!a.filter(d)||(l.push(d),a.count===l.length&&(n(),r(l)))},p=b=>{n(),o(b)};n=()=>{for(let b of s)c(b,f);for(let b of a.rejectionEvents)c(b,p)};for(let b of s)u(b,f);for(let b of a.rejectionEvents)u(b,p);a.resolveImmediately&&r(l)});if(i.cancel=n,typeof a.timeout=="number"){let r=Wj(i,a.timeout);return r.cancel=n,r}return i};Jl.exports=(e,t,a)=>{typeof a=="function"&&(a={filter:a}),a=Object.assign({},a,{count:1,resolveImmediately:!1});let n=SA(e,t,a),i=n.then(r=>r[0]);return i.cancel=n.cancel,i};Jl.exports.multiple=SA;Jl.exports.iterator=(e,t,a)=>{typeof a=="function"&&(a={filter:a});let n=EA(t);a=Object.assign({rejectionEvents:["error"],resolutionEvents:[],limit:1/0,multiArgs:!1},a);let{limit:i}=a;if(!(i>=0&&(i===1/0||Number.isInteger(i))))throw new TypeError("The `limit` option should be a non-negative integer or Infinity");if(i===0)return{[Symbol.asyncIterator](){return this},next(){return Promise.resolve({done:!0,value:void 0})}};let o=!1,{addListener:s,removeListener:l}=wA(e),u=!1,c,f=!1,p=[],b=[],d=0,m=(...E)=>{d++,o=d===i;let g=a.multiArgs?E:E[0];if(p.length>0){let{resolve:w}=p.shift();w({done:!1,value:g}),o&&h();return}b.push(g),o&&h()},h=()=>{u=!0;for(let E of n)l(E,m);for(let E of a.rejectionEvents)l(E,v);for(let E of a.resolutionEvents)l(E,x);for(;p.length>0;){let{resolve:E}=p.shift();E({done:!0,value:void 0})}},v=(...E)=>{if(c=a.multiArgs?E:E[0],p.length>0){let{reject:g}=p.shift();g(c)}else f=!0;h()},x=(...E)=>{let g=a.multiArgs?E:E[0];if(!(a.filter&&!a.filter(g))){if(p.length>0){let{resolve:w}=p.shift();w({done:!0,value:g})}else b.push(g);h()}};for(let E of n)s(E,m);for(let E of a.rejectionEvents)s(E,v);for(let E of a.resolutionEvents)s(E,x);return{[Vj](){return this},next(){if(b.length>0){let E=b.shift();return Promise.resolve({done:u&&b.length===0&&!o,value:E})}return f?(f=!1,Promise.reject(c)):u?Promise.resolve({done:!0,value:void 0}):new Promise((E,g)=>p.push({resolve:E,reject:g}))},return(E){return h(),Promise.resolve({done:u,value:E})}}}});var IA=O(Rr=>{"use strict";Rr.stringToBytes=e=>[...e].map(t=>t.charCodeAt(0));var AA=(e,t,a)=>String.fromCharCode(...e.slice(t,a));Rr.readUInt64LE=(e,t=0)=>{let a=e[t],n=1,i=0;for(;++i<8;)n*=256,a+=e[t+i]*n;return a};Rr.tarHeaderChecksumMatches=e=>{if(e.length<512)return!1;let t=128,a=256,n=0;for(let r=0;r<148;r++){let o=e[r];a+=o,n+=o&t}for(let r=156;r<512;r++){let o=e[r];a+=o,n+=o&t}let i=parseInt(AA(e,148,154),8);return i===a||i===a-(n<<1)};Rr.uint8ArrayUtf8ByteString=AA});var _A=O((exports,module)=>{"use strict";var{stringToBytes,readUInt64LE,tarHeaderChecksumMatches,uint8ArrayUtf8ByteString}=IA(),xpiZipFilename=stringToBytes("META-INF/mozilla.rsa"),oxmlContentTypes=stringToBytes("[Content_Types].xml"),oxmlRels=stringToBytes("_rels/.rels"),fileType=e=>{if(!(e instanceof Uint8Array||e instanceof ArrayBuffer||Buffer.isBuffer(e)))throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`Buffer\` or \`ArrayBuffer\`, got \`${typeof e}\``);let t=e instanceof Uint8Array?e:new Uint8Array(e);if(!(t&&t.length>1))return;let a=(i,r)=>{r=Object.assign({offset:0},r);for(let o=0;oa(stringToBytes(i),r);if(a([255,216,255]))return{ext:"jpg",mime:"image/jpeg"};if(a([137,80,78,71,13,10,26,10]))return{ext:"png",mime:"image/png"};if(a([71,73,70]))return{ext:"gif",mime:"image/gif"};if(a([87,69,66,80],{offset:8}))return{ext:"webp",mime:"image/webp"};if(a([70,76,73,70]))return{ext:"flif",mime:"image/flif"};if((a([73,73,42,0])||a([77,77,0,42]))&&a([67,82],{offset:8}))return{ext:"cr2",mime:"image/x-canon-cr2"};if(a([73,73,82,79,8,0,0,0,24]))return{ext:"orf",mime:"image/x-olympus-orf"};if(a([73,73,42,0,16,251,134,1]))return{ext:"arw",mime:"image/x-sony-arw"};if(a([73,73,42,0,8,0,0,0,45]))return{ext:"dng",mime:"image/x-adobe-dng"};if(a([73,73,42,0,48,61,114,1,28]))return{ext:"nef",mime:"image/x-nikon-nef"};if(a([73,73,42,0])||a([77,77,0,42]))return{ext:"tif",mime:"image/tiff"};if(a([66,77]))return{ext:"bmp",mime:"image/bmp"};if(a([73,73,188]))return{ext:"jxr",mime:"image/vnd.ms-photo"};if(a([56,66,80,83]))return{ext:"psd",mime:"image/vnd.adobe.photoshop"};if(a([80,75,3,4])){if(a([109,105,109,101,116,121,112,101,97,112,112,108,105,99,97,116,105,111,110,47,101,112,117,98,43,122,105,112],{offset:30}))return{ext:"epub",mime:"application/epub+zip"};if(a(xpiZipFilename,{offset:30}))return{ext:"xpi",mime:"application/x-xpinstall"};if(n("mimetypeapplication/vnd.oasis.opendocument.text",{offset:30}))return{ext:"odt",mime:"application/vnd.oasis.opendocument.text"};if(n("mimetypeapplication/vnd.oasis.opendocument.spreadsheet",{offset:30}))return{ext:"ods",mime:"application/vnd.oasis.opendocument.spreadsheet"};if(n("mimetypeapplication/vnd.oasis.opendocument.presentation",{offset:30}))return{ext:"odp",mime:"application/vnd.oasis.opendocument.presentation"};let i=(l,u=0)=>l.findIndex((c,f,p)=>f>=u&&p[f]===80&&p[f+1]===75&&p[f+2]===3&&p[f+3]===4),r=0,o=!1,s;do{let l=r+30;if(o||(o=a(oxmlContentTypes,{offset:l})||a(oxmlRels,{offset:l})),s||(n("word/",{offset:l})?s={ext:"docx",mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}:n("ppt/",{offset:l})?s={ext:"pptx",mime:"application/vnd.openxmlformats-officedocument.presentationml.presentation"}:n("xl/",{offset:l})&&(s={ext:"xlsx",mime:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})),o&&s)return s;r=i(t,l)}while(r>=0);if(s)return s}if(a([80,75])&&(t[2]===3||t[2]===5||t[2]===7)&&(t[3]===4||t[3]===6||t[3]===8))return{ext:"zip",mime:"application/zip"};if(a([48,48,48,48,48,48],{offset:148,mask:[248,248,248,248,248,248]})&&tarHeaderChecksumMatches(t))return{ext:"tar",mime:"application/x-tar"};if(a([82,97,114,33,26,7])&&(t[6]===0||t[6]===1))return{ext:"rar",mime:"application/x-rar-compressed"};if(a([31,139,8]))return{ext:"gz",mime:"application/gzip"};if(a([66,90,104]))return{ext:"bz2",mime:"application/x-bzip2"};if(a([55,122,188,175,39,28]))return{ext:"7z",mime:"application/x-7z-compressed"};if(a([120,1]))return{ext:"dmg",mime:"application/x-apple-diskimage"};if(a([102,114,101,101],{offset:4})||a([109,100,97,116],{offset:4})||a([109,111,111,118],{offset:4})||a([119,105,100,101],{offset:4}))return{ext:"mov",mime:"video/quicktime"};if(a([102,116,121,112],{offset:4})&&t[8]&96&&t[9]&96&&t[10]&96&&t[11]&96){let i=uint8ArrayUtf8ByteString(t,8,12);switch(i){case"mif1":return{ext:"heic",mime:"image/heif"};case"msf1":return{ext:"heic",mime:"image/heif-sequence"};case"heic":case"heix":return{ext:"heic",mime:"image/heic"};case"hevc":case"hevx":return{ext:"heic",mime:"image/heic-sequence"};case"qt ":return{ext:"mov",mime:"video/quicktime"};case"M4V ":case"M4VH":case"M4VP":return{ext:"m4v",mime:"video/x-m4v"};case"M4P ":return{ext:"m4p",mime:"video/mp4"};case"M4B ":return{ext:"m4b",mime:"audio/mp4"};case"M4A ":return{ext:"m4a",mime:"audio/x-m4a"};case"F4V ":return{ext:"f4v",mime:"video/mp4"};case"F4P ":return{ext:"f4p",mime:"video/mp4"};case"F4A ":return{ext:"f4a",mime:"audio/mp4"};case"F4B ":return{ext:"f4b",mime:"audio/mp4"};default:return i.startsWith("3g")?i.startsWith("3g2")?{ext:"3g2",mime:"video/3gpp2"}:{ext:"3gp",mime:"video/3gpp"}:{ext:"mp4",mime:"video/mp4"}}}if(a([77,84,104,100]))return{ext:"mid",mime:"audio/midi"};if(a([26,69,223,163])){let i=t.subarray(4,4100),r=i.findIndex((o,s,l)=>l[s]===66&&l[s+1]===130);if(r!==-1){let o=r+3,s=l=>[...l].every((u,c)=>i[o+c]===u.charCodeAt(0));if(s("matroska"))return{ext:"mkv",mime:"video/x-matroska"};if(s("webm"))return{ext:"webm",mime:"video/webm"}}}if(a([82,73,70,70])){if(a([65,86,73],{offset:8}))return{ext:"avi",mime:"video/vnd.avi"};if(a([87,65,86,69],{offset:8}))return{ext:"wav",mime:"audio/vnd.wave"};if(a([81,76,67,77],{offset:8}))return{ext:"qcp",mime:"audio/qcelp"}}if(a([48,38,178,117,142,102,207,17,166,217])){let i=30;do{let r=readUInt64LE(t,i+16);if(a([145,7,220,183,183,169,207,17,142,230,0,192,12,32,83,101],{offset:i})){if(a([64,158,105,248,77,91,207,17,168,253,0,128,95,92,68,43],{offset:i+24}))return{ext:"wma",mime:"audio/x-ms-wma"};if(a([192,239,25,188,77,91,207,17,168,253,0,128,95,92,68,43],{offset:i+24}))return{ext:"wmv",mime:"video/x-ms-asf"};break}i+=r}while(i+24<=t.length);return{ext:"asf",mime:"application/vnd.ms-asf"}}if(a([0,0,1,186])||a([0,0,1,179]))return{ext:"mpg",mime:"video/mpeg"};for(let i=0;i<2&&inew Promise((resolve,reject)=>{let stream=eval("require")("stream");readableStream.once("readable",()=>{let e=new stream.PassThrough,t=readableStream.read(module.exports.minimumBytes)||readableStream.read();try{e.fileType=fileType(t)}catch(a){reject(a)}readableStream.unshift(t),stream.pipeline?resolve(stream.pipeline(readableStream,e,()=>{})):resolve(readableStream.pipe(e))})})});var TA=O((vV,Uj)=>{Uj.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var FA=O((bV,kA)=>{kA.exports=TA()});var RA=O((gV,OA)=>{"use strict";var PA=FA();OA.exports=function(){var e={};return Object.keys(PA).forEach(function(t){var a=PA[t];a.extensions&&a.extensions.length>0&&a.extensions.forEach(function(n){e[n]=t})}),e}});var jA=O((xV,NA)=>{"use strict";var BA=Pd();NA.exports=function(e,t){if(!BA(e))throw new TypeError("Expected a plain object");t=t||{},typeof t=="function"&&(t={compare:t});var a=t.deep,n=[],i=[],r=function(o){var s=n.indexOf(o);if(s!==-1)return i[s];var l={},u=Object.keys(o).sort(t.compare);n.push(o),i.push(l);for(var c=0;c{"use strict";var LA=jA();wf.exports.desc=function(e){return LA(e,function(t,a){return a.length-t.length})};wf.exports.asc=function(e){return LA(e,function(t,a){return t.length-a.length})}});var GA=O((wV,Ef)=>{"use strict";var DA=RA(),zA=MA();Ef.exports=e=>{let t=zA.desc(DA()),a=Object.keys(t).filter(n=>e.endsWith(n));return a.length===0?[]:a.map(n=>({ext:n,mime:t[n]}))};Ef.exports.mime=e=>{let t=zA.desc(DA()),a=Object.keys(t).filter(n=>t[n]===e);return a.length===0?[]:a.map(n=>({ext:n,mime:t[n]}))}});var UA=O((EV,VA)=>{"use strict";var Jj=require("fs"),Br=require("path"),{URL:Zj}=require("url"),qj=oy(),HA=uy(),WA=HE(),Xj=QE(),$j=rS(),Yj=qC(),Kj=yA(),Qj=af(),e9=CA(),t9=_A(),a9=GA(),n9=Qj(Jj),i9=e=>Br.basename(new Zj(e.requestUrl).pathname),r9=e=>{let t=e.headers["content-type"];if(!t)return null;let a=a9.mime(t);return a.length!==1?null:a[0].ext},o9=(e,t)=>{let a=e.headers["content-disposition"];if(a){let i=qj.parse(a);if(i.parameters&&i.parameters.filename)return i.parameters.filename}let n=i9(e);if(!Br.extname(n)){let i=(t9(t)||{}).ext||r9(e);i&&(n=`${n}.${i}`)}return n};VA.exports=(e,t,a)=>{typeof t=="object"&&(a=t,t=null),a=Object.assign({encoding:null,rejectUnauthorized:process.env.npm_config_strict_ssl!=="false"},a);let n=Yj.stream(e,a),i=e9(n,"response").then(r=>{let o=a.encoding===null?"buffer":a.encoding;return Promise.all([$j(n,{encoding:o}),r])}).then(r=>{let[o,s]=r;if(!t)return a.extract&&HA(o)?WA(o,a):o;let l=a.filename||Xj(o9(s,o)),u=Br.join(t,l);return a.extract&&HA(o)?WA(o,Br.dirname(u),a):Kj(Br.dirname(u)).then(()=>n9.writeFile(u,o)).then(()=>o)});return n.then=i.then.bind(i),n.catch=i.catch.bind(i),n}});var r2=O((OV,i2)=>{var KA=Mc(),{join:u9,delimiter:p9,sep:XA,posix:$A}=require("path"),YA=process.platform==="win32",QA=new RegExp(`[${$A.sep}${XA===$A.sep?"":XA}]`.replace(/(\\)/g,"\\$1")),d9=new RegExp(`^\\.${QA.source}`),e2=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),t2=(e,{path:t=process.env.PATH,pathExt:a=process.env.PATHEXT,delimiter:n=p9})=>{let i=e.match(QA)?[""]:[...YA?[process.cwd()]:[],...(t||"").split(n)];if(YA){let r=a||[".EXE",".CMD",".BAT",".COM"].join(n),o=r.split(n).reduce((s,l)=>(s.push(l),s.push(l.toLowerCase()),s),[]);return e.includes(".")&&o[0]!==""&&o.unshift(""),{pathEnv:i,pathExt:o,pathExtExe:r}}return{pathEnv:i,pathExt:[""]}},a2=(e,t)=>{let a=/^".*"$/.test(e)?e.slice(1,-1):e;return(!a&&d9.test(t)?t.slice(0,2):"")+u9(a,t)},n2=async(e,t={})=>{let{pathEnv:a,pathExt:n,pathExtExe:i}=t2(e,t),r=[];for(let o of a){let s=a2(o,e);for(let l of n){let u=s+l;if(await KA(u,{pathExt:i,ignoreErrors:!0})){if(!t.all)return u;r.push(u)}}}if(t.all&&r.length)return r;if(t.nothrow)return null;throw e2(e)},f9=(e,t={})=>{let{pathEnv:a,pathExt:n,pathExtExe:i}=t2(e,t),r=[];for(let o of a){let s=a2(o,e);for(let l of n){let u=s+l;if(KA.sync(u,{pathExt:i,ignoreErrors:!0})){if(!t.all)return u;r.push(u)}}}if(t.all&&r.length)return r;if(t.nothrow)return null;throw e2(e)};i2.exports=n2;n2.sync=f9});var P2=O(ke=>{"use strict";var it=typeof Symbol=="function"&&Symbol.for,zf=it?Symbol.for("react.element"):60103,Gf=it?Symbol.for("react.portal"):60106,ac=it?Symbol.for("react.fragment"):60107,nc=it?Symbol.for("react.strict_mode"):60108,ic=it?Symbol.for("react.profiler"):60114,rc=it?Symbol.for("react.provider"):60109,oc=it?Symbol.for("react.context"):60110,Hf=it?Symbol.for("react.async_mode"):60111,sc=it?Symbol.for("react.concurrent_mode"):60111,lc=it?Symbol.for("react.forward_ref"):60112,cc=it?Symbol.for("react.suspense"):60113,C9=it?Symbol.for("react.suspense_list"):60120,uc=it?Symbol.for("react.memo"):60115,pc=it?Symbol.for("react.lazy"):60116,A9=it?Symbol.for("react.block"):60121,I9=it?Symbol.for("react.fundamental"):60117,_9=it?Symbol.for("react.responder"):60118,T9=it?Symbol.for("react.scope"):60119;function Rt(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case zf:switch(e=e.type,e){case Hf:case sc:case ac:case ic:case nc:case cc:return e;default:switch(e=e&&e.$$typeof,e){case oc:case lc:case pc:case uc:case rc:return e;default:return t}}case Gf:return t}}}function F2(e){return Rt(e)===sc}ke.AsyncMode=Hf;ke.ConcurrentMode=sc;ke.ContextConsumer=oc;ke.ContextProvider=rc;ke.Element=zf;ke.ForwardRef=lc;ke.Fragment=ac;ke.Lazy=pc;ke.Memo=uc;ke.Portal=Gf;ke.Profiler=ic;ke.StrictMode=nc;ke.Suspense=cc;ke.isAsyncMode=function(e){return F2(e)||Rt(e)===Hf};ke.isConcurrentMode=F2;ke.isContextConsumer=function(e){return Rt(e)===oc};ke.isContextProvider=function(e){return Rt(e)===rc};ke.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===zf};ke.isForwardRef=function(e){return Rt(e)===lc};ke.isFragment=function(e){return Rt(e)===ac};ke.isLazy=function(e){return Rt(e)===pc};ke.isMemo=function(e){return Rt(e)===uc};ke.isPortal=function(e){return Rt(e)===Gf};ke.isProfiler=function(e){return Rt(e)===ic};ke.isStrictMode=function(e){return Rt(e)===nc};ke.isSuspense=function(e){return Rt(e)===cc};ke.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===ac||e===sc||e===ic||e===nc||e===cc||e===C9||typeof e=="object"&&e!==null&&(e.$$typeof===pc||e.$$typeof===uc||e.$$typeof===rc||e.$$typeof===oc||e.$$typeof===lc||e.$$typeof===I9||e.$$typeof===_9||e.$$typeof===T9||e.$$typeof===A9)};ke.typeOf=Rt});var R2=O((kU,O2)=>{"use strict";O2.exports=P2()});var z2=O((FU,D2)=>{"use strict";var Wf=R2(),k9={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},F9={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},P9={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},L2={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Vf={};Vf[Wf.ForwardRef]=P9;Vf[Wf.Memo]=L2;function B2(e){return Wf.isMemo(e)?L2:Vf[e.$$typeof]||k9}var O9=Object.defineProperty,R9=Object.getOwnPropertyNames,N2=Object.getOwnPropertySymbols,B9=Object.getOwnPropertyDescriptor,N9=Object.getPrototypeOf,j2=Object.prototype;function M2(e,t,a){if(typeof t!="string"){if(j2){var n=N9(t);n&&n!==j2&&M2(e,n,a)}var i=R9(t);N2&&(i=i.concat(N2(t)));for(var r=B2(e),o=B2(t),s=0;sBc});module.exports=lT(fD);var En=require("obsidian");var fo=_e(require("node:process"),1),uv=_e(sv(),1);function ou({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}var ak=ou();function su(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(ak,"")}var po=_e(require("node:process"),1),lv=require("node:os"),nk=()=>{let{env:e}=po.default;if(po.default.platform==="win32")return e.COMSPEC||"cmd.exe";try{let{shell:t}=(0,lv.userInfo)();if(t)return t}catch(t){}return po.default.platform==="darwin"?e.SHELL||"/bin/zsh":e.SHELL||"/bin/sh"},ik=nk(),cv=ik;var rk=["-ilc",'echo -n "_SHELL_ENV_DELIMITER_"; env; echo -n "_SHELL_ENV_DELIMITER_"; exit'],ok={DISABLE_AUTO_UPDATE:"true"},sk=e=>{e=e.split("_SHELL_ENV_DELIMITER_")[1];let t={};for(let a of su(e).split(` +`).filter(n=>!!n)){let[n,...i]=a.split("=");t[n]=i.join("=")}return t};async function pv(e){if(fo.default.platform==="win32")return fo.default.env;try{let{stdout:t}=await(0,uv.default)(e||cv,rk,{env:ok});return sk(t)}catch(t){if(e)throw t;return fo.default.env}}async function dv(){let{PATH:e}=await pv();return e}var Ba=require("obsidian");var Ni,Q,bv,lk,$a,fv,gv,lu,xv,mo={},yv=[],ck=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,bo=Array.isArray;function ma(e,t){for(var a in t)e[a]=t[a];return e}function wv(e){var t=e.parentNode;t&&t.removeChild(e)}function se(e,t,a){var n,i,r,o={};for(r in t)r=="key"?n=t[r]:r=="ref"?i=t[r]:o[r]=t[r];if(arguments.length>2&&(o.children=arguments.length>3?Ni.call(arguments,2):a),typeof e=="function"&&e.defaultProps!=null)for(r in e.defaultProps)o[r]===void 0&&(o[r]=e.defaultProps[r]);return Ri(e,o,n,i,null)}function Ri(e,t,a,n,i){var r={type:e,props:t,key:a,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:i==null?++bv:i};return i==null&&Q.vnode!=null&&Q.vnode(r),r}function uu(){return{current:null}}function rt(e){return e.children}function Ct(e,t){this.props=e,this.context=t}function Bi(e,t){if(t==null)return e.__?Bi(e.__,e.__.__k.indexOf(e)+1):null;for(var a;tt&&$a.sort(lu));ho.__r=0}function Sv(e,t,a,n,i,r,o,s,l,u){var c,f,p,b,d,m,h,v=n&&n.__k||yv,x=v.length;for(a.__k=[],c=0;c0?Ri(b.type,b.props,b.key,b.ref?b.ref:null,b.__v):b)!=null){if(b.__=a,b.__b=a.__b+1,(p=v[c])===null||p&&b.key==p.key&&b.type===p.type)v[c]=void 0;else for(f=0;f=0;t--)if((a=e.__k[t])&&(n=Iv(a)))return n}return null}function uk(e,t,a,n,i){var r;for(r in a)r==="children"||r==="key"||r in t||vo(e,r,null,a[r],n);for(r in t)i&&typeof t[r]!="function"||r==="children"||r==="key"||r==="value"||r==="checked"||a[r]===t[r]||vo(e,r,t[r],a[r],n)}function mv(e,t,a){t[0]==="-"?e.setProperty(t,a==null?"":a):e[t]=a==null?"":typeof a!="number"||ck.test(t)?a:a+"px"}function vo(e,t,a,n,i){var r;e:if(t==="style")if(typeof a=="string")e.style.cssText=a;else{if(typeof n=="string"&&(e.style.cssText=n=""),n)for(t in n)a&&t in a||mv(e.style,t,"");if(a)for(t in a)n&&a[t]===n[t]||mv(e.style,t,a[t])}else if(t[0]==="o"&&t[1]==="n")r=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+r]=a,a?n||e.addEventListener(t,r?vv:hv,r):e.removeEventListener(t,r?vv:hv,r);else if(t!=="dangerouslySetInnerHTML"){if(i)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!=="width"&&t!=="height"&&t!=="href"&&t!=="list"&&t!=="form"&&t!=="tabIndex"&&t!=="download"&&t!=="rowSpan"&&t!=="colSpan"&&t in e)try{e[t]=a==null?"":a;break e}catch(o){}typeof a=="function"||(a==null||a===!1&&t[4]!=="-"?e.removeAttribute(t):e.setAttribute(t,a))}}function hv(e){return this.l[e.type+!1](Q.event?Q.event(e):e)}function vv(e){return this.l[e.type+!0](Q.event?Q.event(e):e)}function pu(e,t,a,n,i,r,o,s,l){var u,c,f,p,b,d,m,h,v,x,E,g,w,C,y,S=t.type;if(t.constructor!==void 0)return null;a.__h!=null&&(l=a.__h,s=t.__e=a.__e,t.__h=null,r=[s]),(u=Q.__b)&&u(t);try{e:if(typeof S=="function"){if(h=t.props,v=(u=S.contextType)&&n[u.__c],x=u?v?v.props.value:u.__:n,a.__c?m=(c=t.__c=a.__c).__=c.__E:("prototype"in S&&S.prototype.render?t.__c=c=new S(h,x):(t.__c=c=new Ct(h,x),c.constructor=S,c.render=dk),v&&v.sub(c),c.props=h,c.state||(c.state={}),c.context=x,c.__n=n,f=c.__d=!0,c.__h=[],c._sb=[]),c.__s==null&&(c.__s=c.state),S.getDerivedStateFromProps!=null&&(c.__s==c.state&&(c.__s=ma({},c.__s)),ma(c.__s,S.getDerivedStateFromProps(h,c.__s))),p=c.props,b=c.state,c.__v=t,f)S.getDerivedStateFromProps==null&&c.componentWillMount!=null&&c.componentWillMount(),c.componentDidMount!=null&&c.__h.push(c.componentDidMount);else{if(S.getDerivedStateFromProps==null&&h!==p&&c.componentWillReceiveProps!=null&&c.componentWillReceiveProps(h,x),!c.__e&&c.shouldComponentUpdate!=null&&c.shouldComponentUpdate(h,c.__s,x)===!1||t.__v===a.__v){for(t.__v!==a.__v&&(c.props=h,c.state=c.__s,c.__d=!1),c.__e=!1,t.__e=a.__e,t.__k=a.__k,t.__k.forEach(function(A){A&&(A.__=t)}),E=0;E2&&(s.children=arguments.length>3?Ni.call(arguments,2):a),Ri(e.type,s,n||e.key,i||e.ref,null)}function _a(e,t){var a={__c:t="__cC"+xv++,__:e,Consumer:function(n,i){return n.children(i)},Provider:function(n){var i,r;return this.getChildContext||(i=[],(r={})[t]=this,this.getChildContext=function(){return r},this.shouldComponentUpdate=function(o){this.props.value!==o.value&&i.some(function(s){s.__e=!0,cu(s)})},this.sub=function(o){i.push(o);var s=o.componentWillUnmount;o.componentWillUnmount=function(){i.splice(i.indexOf(o),1),s&&s.call(o)}}),n.children}};return a.Provider.__=a.Consumer.contextType=a}Ni=yv.slice,Q={__e:function(e,t,a,n){for(var i,r,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((r=i.constructor)&&r.getDerivedStateFromError!=null&&(i.setState(r.getDerivedStateFromError(e)),o=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,n||{}),o=i.__d),o)return i.__E=i}catch(s){e=s}throw e}},bv=0,lk=function(e){return e!=null&&e.constructor===void 0},Ct.prototype.setState=function(e,t){var a;a=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=ma({},this.state),typeof e=="function"&&(e=e(ma({},a),this.props)),e&&ma(a,e),e!=null&&this.__v&&(t&&this._sb.push(t),cu(this))},Ct.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),cu(this))},Ct.prototype.render=rt,$a=[],gv=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,lu=function(e,t){return e.__v.__b-t.__v.__b},ho.__r=0,xv=0;var Ta,je,fu,Pv,Rn=0,Mv=[],go=[],Ov=Q.__b,Rv=Q.__r,Bv=Q.diffed,Nv=Q.__c,jv=Q.unmount;function Bn(e,t){Q.__h&&Q.__h(je,e,Rn||t),Rn=0;var a=je.__H||(je.__H={__:[],__h:[]});return e>=a.__.length&&a.__.push({__V:go}),a.__[e]}function Re(e){return Rn=1,hu(Hv,e)}function hu(e,t,a){var n=Bn(Ta++,2);if(n.t=e,!n.__c&&(n.__=[a?a(t):Hv(void 0,t),function(s){var l=n.__N?n.__N[0]:n.__[0],u=n.t(l,s);l!==u&&(n.__N=[u,n.__[1]],n.__c.setState({}))}],n.__c=je,!je.u)){var i=function(s,l,u){if(!n.__c.__H)return!0;var c=n.__c.__H.__.filter(function(p){return p.__c});if(c.every(function(p){return!p.__N}))return!r||r.call(this,s,l,u);var f=!1;return c.forEach(function(p){if(p.__N){var b=p.__[0];p.__=p.__N,p.__N=void 0,b!==p.__[0]&&(f=!0)}}),!(!f&&n.__c.props===s)&&(!r||r.call(this,s,l,u))};je.u=!0;var r=je.shouldComponentUpdate,o=je.componentWillUpdate;je.componentWillUpdate=function(s,l,u){if(this.__e){var c=r;r=void 0,i(s,l,u),r=c}o&&o.call(this,s,l,u)},je.shouldComponentUpdate=i}return n.__N||n.__}function ha(e,t){var a=Bn(Ta++,3);!Q.__s&&vu(a.__H,t)&&(a.__=e,a.i=t,je.__H.__h.push(a))}function ka(e,t){var a=Bn(Ta++,4);!Q.__s&&vu(a.__H,t)&&(a.__=e,a.i=t,je.__h.push(a))}function ot(e){return Rn=5,At(function(){return{current:e}},[])}function Dv(e,t,a){Rn=6,ka(function(){return typeof e=="function"?(e(t()),function(){return e(null)}):e?(e.current=t(),function(){return e.current=null}):void 0},a==null?a:a.concat(e))}function At(e,t){var a=Bn(Ta++,7);return vu(a.__H,t)?(a.__V=e(),a.i=t,a.__h=e,a.__V):a.__}function Fe(e,t){return Rn=8,At(function(){return e},t)}function Yt(e){var t=je.context[e.__c],a=Bn(Ta++,9);return a.c=e,t?(a.__==null&&(a.__=!0,t.sub(je)),t.props.value):e.__}function zv(e,t){Q.useDebugValue&&Q.useDebugValue(t?t(e):e)}function Gv(){var e=Bn(Ta++,11);if(!e.__){for(var t=je.__v;t!==null&&!t.__m&&t.__!==null;)t=t.__;var a=t.__m||(t.__m=[0,0]);e.__="P"+a[0]+"-"+a[1]++}return e.__}function fk(){for(var e;e=Mv.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(xo),e.__H.__h.forEach(mu),e.__H.__h=[]}catch(t){e.__H.__h=[],Q.__e(t,e.__v)}}Q.__b=function(e){je=null,Ov&&Ov(e)},Q.__r=function(e){Rv&&Rv(e),Ta=0;var t=(je=e.__c).__H;t&&(fu===je?(t.__h=[],je.__h=[],t.__.forEach(function(a){a.__N&&(a.__=a.__N),a.__V=go,a.__N=a.i=void 0})):(t.__h.forEach(xo),t.__h.forEach(mu),t.__h=[],Ta=0)),fu=je},Q.diffed=function(e){Bv&&Bv(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(Mv.push(t)!==1&&Pv===Q.requestAnimationFrame||((Pv=Q.requestAnimationFrame)||mk)(fk)),t.__H.__.forEach(function(a){a.i&&(a.__H=a.i),a.__V!==go&&(a.__=a.__V),a.i=void 0,a.__V=go})),fu=je=null},Q.__c=function(e,t){t.some(function(a){try{a.__h.forEach(xo),a.__h=a.__h.filter(function(n){return!n.__||mu(n)})}catch(n){t.some(function(i){i.__h&&(i.__h=[])}),t=[],Q.__e(n,a.__v)}}),Nv&&Nv(e,t)},Q.unmount=function(e){jv&&jv(e);var t,a=e.__c;a&&a.__H&&(a.__H.__.forEach(function(n){try{xo(n)}catch(i){t=i}}),a.__H=void 0,t&&Q.__e(t,a.__v))};var Lv=typeof requestAnimationFrame=="function";function mk(e){var t,a=function(){clearTimeout(n),Lv&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(a,100);Lv&&(t=requestAnimationFrame(a))}function xo(e){var t=je,a=e.__c;typeof a=="function"&&(e.__c=void 0,a()),je=t}function mu(e){var t=je;e.__c=e.__(),je=t}function vu(e,t){return!e||e.length!==t.length||t.some(function(a,n){return a!==e[n]})}function Hv(e,t){return typeof t=="function"?t(e):t}function Yv(e,t){for(var a in t)e[a]=t[a];return e}function gu(e,t){for(var a in e)if(a!=="__source"&&!(a in t))return!0;for(var n in t)if(n!=="__source"&&e[n]!==t[n])return!0;return!1}function bu(e,t){return e===t&&(e!==0||1/e==1/t)||e!=e&&t!=t}function xu(e){this.props=e}function hk(e,t){function a(i){var r=this.props.ref,o=r==i.ref;return!o&&r&&(r.call?r(null):r.current=null),t?!t(this.props,i)||!o:gu(this.props,i)}function n(i){return this.shouldComponentUpdate=a,se(e,i)}return n.displayName="Memo("+(e.displayName||e.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n}(xu.prototype=new Ct).isPureReactComponent=!0,xu.prototype.shouldComponentUpdate=function(e,t){return gu(this.props,e)||gu(this.state,t)};var Wv=Q.__b;Q.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Wv&&Wv(e)};var vk=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function Nn(e){function t(a){var n=Yv({},a);return delete n.ref,e(n,a.ref||null)}return t.$$typeof=vk,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}var Vv=function(e,t){return e==null?null:$t($t(e).map(t))},bk={map:Vv,forEach:Vv,count:function(e){return e?$t(e).length:0},only:function(e){var t=$t(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:$t},gk=Q.__e;Q.__e=function(e,t,a,n){if(e.then){for(var i,r=t;r=r.__;)if((i=r.__c)&&i.__c)return t.__e==null&&(t.__e=a.__e,t.__k=a.__k),i.__c(e,t)}gk(e,t,a,n)};var Uv=Q.unmount;function Kv(e,t,a){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach(function(n){typeof n.__c=="function"&&n.__c()}),e.__c.__H=null),(e=Yv({},e)).__c!=null&&(e.__c.__P===a&&(e.__c.__P=t),e.__c=null),e.__k=e.__k&&e.__k.map(function(n){return Kv(n,t,a)})),e}function Qv(e,t,a){return e&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(n){return Qv(n,t,a)}),e.__c&&e.__c.__P===t&&(e.__e&&a.insertBefore(e.__e,e.__d),e.__c.__e=!0,e.__c.__P=a)),e}function yo(){this.__u=0,this.t=null,this.__b=null}function e0(e){var t=e.__.__c;return t&&t.__a&&t.__a(e)}function xk(e){var t,a,n;function i(r){if(t||(t=e()).then(function(o){a=o.default||o},function(o){n=o}),n)throw n;if(!a)throw t;return se(a,r)}return i.displayName="Lazy",i.__f=!0,i}function ji(){this.u=null,this.o=null}Q.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&e.__h===!0&&(e.type=null),Uv&&Uv(e)},(yo.prototype=new Ct).__c=function(e,t){var a=t.__c,n=this;n.t==null&&(n.t=[]),n.t.push(a);var i=e0(n.__v),r=!1,o=function(){r||(r=!0,a.__R=null,i?i(s):s())};a.__R=o;var s=function(){if(!--n.__u){if(n.state.__a){var u=n.state.__a;n.__v.__k[0]=Qv(u,u.__c.__P,u.__c.__O)}var c;for(n.setState({__a:n.__b=null});c=n.t.pop();)c.forceUpdate()}},l=t.__h===!0;n.__u++||l||n.setState({__a:n.__b=n.__v.__k[0]}),e.then(o,o)},yo.prototype.componentWillUnmount=function(){this.t=[]},yo.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var a=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=Kv(this.__b,a,n.__O=n.__P)}this.__b=null}var i=t.__a&&se(rt,null,e.fallback);return i&&(i.__h=null),[se(rt,null,t.__a?null:e.children),i]};var Jv=function(e,t,a){if(++a[1]===a[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(a=e.u;a;){for(;a.length>3;)a.pop()();if(a[1]>>1,1),t.i.removeChild(n)}}),On(se(yk,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function yu(e,t){var a=se(wk,{__v:e,i:t});return a.containerInfo=t,a}(ji.prototype=new Ct).__a=function(e){var t=this,a=e0(t.__v),n=t.o.get(e);return n[0]++,function(i){var r=function(){t.props.revealOrder?(n.push(i),Jv(t,e,n)):i()};a?a(r):r()}},ji.prototype.render=function(e){this.u=null,this.o=new Map;var t=$t(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var a=t.length;a--;)this.o.set(t[a],this.u=[1,0,this.u]);return e.children},ji.prototype.componentDidUpdate=ji.prototype.componentDidMount=function(){var e=this;this.o.forEach(function(t,a){Jv(e,a,t)})};var t0=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.element")||60103,Ek=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Sk=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Ck=/[A-Z0-9]/g,Ak=typeof document!="undefined",Ik=function(e){return(typeof Symbol!="undefined"&&typeof Symbol()=="symbol"?/fil|che|rad/:/fil|che|ra/).test(e)};function _k(e,t,a){return t.__k==null&&(t.textContent=""),On(e,t),typeof a=="function"&&a(),e?e.__c:null}function Tk(e,t,a){return du(e,t),typeof a=="function"&&a(),e?e.__c:null}Ct.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(Ct.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var Zv=Q.event;function kk(){}function Fk(){return this.cancelBubble}function Pk(){return this.defaultPrevented}Q.event=function(e){return Zv&&(e=Zv(e)),e.persist=kk,e.isPropagationStopped=Fk,e.isDefaultPrevented=Pk,e.nativeEvent=e};var wu,Ok={enumerable:!1,configurable:!0,get:function(){return this.class}},qv=Q.vnode;Q.vnode=function(e){typeof e.type=="string"&&function(t){var a=t.props,n=t.type,i={};for(var r in a){var o=a[r];if(!(r==="value"&&"defaultValue"in a&&o==null||Ak&&r==="children"&&n==="noscript"||r==="class"||r==="className")){var s=r.toLowerCase();r==="defaultValue"&&"value"in a&&a.value==null?r="value":r==="download"&&o===!0?o="":s==="ondoubleclick"?r="ondblclick":s!=="onchange"||n!=="input"&&n!=="textarea"||Ik(a.type)?s==="onfocus"?r="onfocusin":s==="onblur"?r="onfocusout":Sk.test(r)?r=s:n.indexOf("-")===-1&&Ek.test(r)?r=r.replace(Ck,"-$&").toLowerCase():o===null&&(o=void 0):s=r="oninput",s==="oninput"&&i[r=s]&&(r="oninputCapture"),i[r]=o}}n=="select"&&i.multiple&&Array.isArray(i.value)&&(i.value=$t(a.children).forEach(function(l){l.props.selected=i.value.indexOf(l.props.value)!=-1})),n=="select"&&i.defaultValue!=null&&(i.value=$t(a.children).forEach(function(l){l.props.selected=i.multiple?i.defaultValue.indexOf(l.props.value)!=-1:i.defaultValue==l.props.value})),a.class&&!a.className?(i.class=a.class,Object.defineProperty(i,"className",Ok)):(a.className&&!a.class||a.class&&a.className)&&(i.class=i.className=a.className),t.props=i}(e),e.$$typeof=t0,qv&&qv(e)};var Xv=Q.__r;Q.__r=function(e){Xv&&Xv(e),wu=e.__c};var $v=Q.diffed;Q.diffed=function(e){$v&&$v(e);var t=e.props,a=e.__e;a!=null&&e.type==="textarea"&&"value"in t&&t.value!==a.value&&(a.value=t.value==null?"":t.value),wu=null};var Rk={ReactCurrentDispatcher:{current:{readContext:function(e){return wu.__n[e.__c].props.value}}}};function Bk(e){return se.bind(null,e)}function a0(e){return!!e&&e.$$typeof===t0}function Nk(e){return a0(e)?Fv.apply(null,arguments):e}function jk(e){return!!e.__k&&(On(null,e),!0)}function Lk(e){return e&&(e.base||e.nodeType===1&&e)||null}var Mk=function(e,t){return e(t)},Dk=function(e,t){return e(t)},zk=rt;function n0(e){e()}function Gk(e){return e}function Hk(){return[!1,n0]}var wo=ka;function Wk(e,t){var a=t(),n=Re({h:{__:a,v:t}}),i=n[0].h,r=n[1];return ka(function(){i.__=a,i.v=t,bu(i.__,t())||r({h:i})},[e,a,t]),ha(function(){return bu(i.__,i.v())||r({h:i}),e(function(){bu(i.__,i.v())||r({h:i})})},[e]),a}var I={useState:Re,useId:Gv,useReducer:hu,useEffect:ha,useLayoutEffect:ka,useInsertionEffect:wo,useTransition:Hk,useDeferredValue:Gk,useSyncExternalStore:Wk,startTransition:n0,useRef:ot,useImperativeHandle:Dv,useMemo:At,useCallback:Fe,useContext:Yt,useDebugValue:zv,version:"17.0.2",Children:bk,render:_k,hydrate:Tk,unmountComponentAtNode:jk,createPortal:yu,createElement:se,createContext:_a,createFactory:Bk,cloneElement:Nk,createRef:uu,Fragment:rt,isValidElement:a0,findDOMNode:Lk,Component:Ct,PureComponent:xu,memo:hk,forwardRef:Nn,flushSync:Dk,unstable_batchedUpdates:Mk,StrictMode:zk,Suspense:yo,SuspenseList:ji,lazy:xk,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Rk};function W(){return W=Object.assign?Object.assign.bind():function(e){for(var t=1;t3&&arguments[3]!==void 0?arguments[3]:0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1/0,r;if(e==="Object"){let o=Object.getOwnPropertyNames(t);a&&o.sort(a===!0?void 0:a),o=o.slice(n,i+1),r={entries:o.map(s=>({key:s,value:t[s]}))}}else if(e==="Array")r={entries:t.slice(n,i+1).map((o,s)=>({key:s+n,value:o}))};else{let o=0,s=[],l=!0,u=Uk(t);for(let c of t){if(o>i){l=!1;break}n<=o&&(u&&Array.isArray(c)?typeof c[0]=="string"||typeof c[0]=="number"?s.push({key:c[0],value:c[1]}):s.push({key:`[entry ${o}]`,value:{"[key]":c[0],"[value]":c[1]}}):s.push({key:o,value:c})),o++}r={hasMore:!l,entries:s}}return r}function Su(e,t,a){let n=[];for(;t-e>a*a;)a=a*a;for(let i=e;i<=t;i+=a)n.push({from:i,to:Math.min(t,i+a-1)});return n}function Cu(e,t,a,n){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,r=arguments.length>5&&arguments[5]!==void 0?arguments[5]:1/0,o=Jk.bind(null,e,t,a);if(!n)return o().entries;let s=r<1/0,l=Math.min(r-i,Vk(e,t));if(e!=="Iterable"){if(l<=n||n<7)return o(i,r).entries}else if(l<=n&&!s)return o(i,r).entries;let u;if(e==="Iterable"){let{hasMore:c,entries:f}=o(i,i+n-1);u=c?[...f,...Su(i+n,i+2*n-1,n)]:f}else u=s?Su(i,r,n):[...o(0,n-5).entries,...Su(n-4,l-5,n),...o(l-4,l-1).entries];return u}function Au(e){let{styling:t,from:a,to:n,renderChildNodes:i,nodeType:r}=e,[o,s]=Re(!1),l=Fe(()=>{s(!o)},[o]);return o?I.createElement("div",t("itemRange",o),i(e,a,n)):I.createElement("div",W({},t("itemRange",o),{onClick:l}),I.createElement(Mi,{nodeType:r,styling:t,expanded:!1,onClick:l,arrowStyle:"double"}),`${a} ... ${n}`)}function Zk(e){return e.to!==void 0}function i0(e,t,a){let{nodeType:n,data:i,collectionLimit:r,circularCache:o,keyPath:s,postprocessValue:l,sortObjectKeys:u}=e,c=[];return Cu(n,i,u,r,t,a).forEach(f=>{if(Zk(f))c.push(I.createElement(Au,W({},e,{key:`ItemRange--${f.from}-${f.to}`,from:f.from,to:f.to,renderChildNodes:i0})));else{let{key:p,value:b}=f,d=o.indexOf(b)!==-1;c.push(I.createElement(Di,W({},e,{postprocessValue:l,collectionLimit:r,key:`Node--${p}`,keyPath:[p,...s],value:l(b),circularCache:[...o,b],isCircular:d,hideRoot:!1})))}}),c}function Ya(e){let{circularCache:t=[],collectionLimit:a,createItemString:n,data:i,expandable:r,getItemString:o,hideRoot:s,isCircular:l,keyPath:u,labelRenderer:c,level:f=0,nodeType:p,nodeTypeIndicator:b,shouldExpandNodeInitially:d,styling:m}=e,[h,v]=Re(l?!1:d(u,i,f)),x=Fe(()=>{r&&v(!h)},[r,h]),E=h||s&&f===0?i0({...e,circularCache:t,level:f+1}):null,g=I.createElement("span",m("nestedNodeItemType",h),b),w=o(p,i,g,n(i,a),u),C=[u,p,h,r];return s?I.createElement("li",m("rootNode",...C),I.createElement("ul",m("rootNodeChildren",...C),E)):I.createElement("li",m("nestedNode",...C),r&&I.createElement(Mi,{styling:m,nodeType:p,expanded:h,onClick:x}),I.createElement("label",W({},m(["label","nestedNodeLabel"],...C),{onClick:x}),c(...C)),I.createElement("span",W({},m("nestedNodeItemString",...C),{onClick:x}),w),I.createElement("ul",m("nestedNodeChildren",...C),E))}function qk(e){let t=Object.getOwnPropertyNames(e).length;return`${t} ${t!==1?"keys":"key"}`}function Iu(e){let{data:t,...a}=e;return I.createElement(Ya,W({},a,{data:t,nodeType:"Object",nodeTypeIndicator:a.nodeType==="Error"?"Error()":"{}",createItemString:qk,expandable:Object.getOwnPropertyNames(t).length>0}))}function Xk(e){return`${e.length} ${e.length!==1?"items":"item"}`}function _u(e){let{data:t,...a}=e;return I.createElement(Ya,W({},a,{data:t,nodeType:"Array",nodeTypeIndicator:"[]",createItemString:Xk,expandable:t.length>0}))}function $k(e,t){let a=0,n=!1;if(Number.isSafeInteger(e.size))a=e.size;else for(let i of e){if(t&&a+1>t){n=!0;break}a+=1}return`${n?">":""}${a} ${a!==1?"entries":"entry"}`}function Tu(e){return I.createElement(Ya,W({},e,{nodeType:"Iterable",nodeTypeIndicator:"()",createItemString:$k,expandable:!0}))}function Ut(e){let{nodeType:t,styling:a,labelRenderer:n,keyPath:i,valueRenderer:r,value:o,valueGetter:s=l=>l}=e;return I.createElement("li",a("value",t,i),I.createElement("label",a(["label","valueLabel"],t,i),n(i,t,!1,!1)),I.createElement("span",a("valueText",t,i),r(s(o),o,...i)))}function Di(e){let{getItemString:t,keyPath:a,labelRenderer:n,styling:i,value:r,valueRenderer:o,isCustomNode:s,...l}=e,u=s(r)?"Custom":Eu(r),c={getItemString:t,key:a[0],keyPath:a,labelRenderer:n,nodeType:u,styling:i,value:r,valueRenderer:o},f={...l,...c,data:r,isCustomNode:s};switch(u){case"Object":case"Error":case"WeakMap":case"WeakSet":return I.createElement(Iu,f);case"Array":return I.createElement(_u,f);case"Iterable":case"Map":case"Set":return I.createElement(Tu,f);case"String":return I.createElement(Ut,W({},c,{valueGetter:p=>`"${p}"`}));case"Number":return I.createElement(Ut,c);case"Boolean":return I.createElement(Ut,W({},c,{valueGetter:p=>p?"true":"false"}));case"Date":return I.createElement(Ut,W({},c,{valueGetter:p=>p.toISOString()}));case"Null":return I.createElement(Ut,W({},c,{valueGetter:()=>"null"}));case"Undefined":return I.createElement(Ut,W({},c,{valueGetter:()=>"undefined"}));case"Function":case"Symbol":return I.createElement(Ut,W({},c,{valueGetter:p=>p.toString()}));case"Custom":return I.createElement(Ut,c);default:return I.createElement(Ut,W({},c,{valueGetter:()=>`<${u}>`}))}}function ft(e){"@babel/helpers - typeof";return ft=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ft(e)}function ku(e,t){if(ft(e)!=="object"||e===null)return e;var a=e[Symbol.toPrimitive];if(a!==void 0){var n=a.call(e,t||"default");if(ft(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function zi(e){var t=ku(e,"string");return ft(t)==="symbol"?t:String(t)}function jt(e,t,a){return t=zi(t),t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function Fu(e){if(Array.isArray(e))return e}function Pu(e,t){var a=e==null?null:typeof Symbol!="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(a!=null){var n,i,r,o,s=[],l=!0,u=!1;try{if(r=(a=a.call(e)).next,t===0){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=r.call(a)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(c){u=!0,i=c}finally{try{if(!l&&a.return!=null&&(o=a.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function jn(e,t){(t==null||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a1?o-1:0),l=1;l1?o-1:0),l=1;l1?o-1:0),l=1;l1?o-1:0),l=1;l1?o-1:0),l=1;l2?n-2:0),r=2;r1&&arguments[1]!==void 0?arguments[1]:{},a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=t.defaultBase16,i=n===void 0?vg:n,r=t.base16Themes,o=r===void 0?null:r,s=iP(a,o);s&&(a=It(It({},s),a));for(var l=hg.reduce(function(m,h){return m[h]=a[h]||i[h],m},{}),u=Object.keys(a).reduce(function(m,h){return hg.indexOf(h)===-1&&(m[h]=a[h]),m},{}),c=e(l),f=aP(u,c),p=arguments.length,b=new Array(p>3?p-3:0),d=3;d({BACKGROUND_COLOR:e.base00,TEXT_COLOR:e.base07,STRING_COLOR:e.base0B,DATE_COLOR:e.base0B,NUMBER_COLOR:e.base09,BOOLEAN_COLOR:e.base09,NULL_COLOR:e.base08,UNDEFINED_COLOR:e.base08,FUNCTION_COLOR:e.base08,SYMBOL_COLOR:e.base08,LABEL_COLOR:e.base0D,ARROW_COLOR:e.base0D,ITEM_STRING_COLOR:e.base0B,ITEM_STRING_EXPANDED_COLOR:e.base03}),oP=e=>({String:e.STRING_COLOR,Date:e.DATE_COLOR,Number:e.NUMBER_COLOR,Boolean:e.BOOLEAN_COLOR,Null:e.NULL_COLOR,Undefined:e.UNDEFINED_COLOR,Function:e.FUNCTION_COLOR,Symbol:e.SYMBOL_COLOR}),sP=e=>{let t=rP(e);return{tree:{border:0,padding:0,marginTop:"0.5em",marginBottom:"0.5em",marginLeft:"0.125em",marginRight:0,listStyle:"none",MozUserSelect:"none",WebkitUserSelect:"none",backgroundColor:t.BACKGROUND_COLOR},value:(a,n,i)=>{let{style:r}=a;return{style:{...r,paddingTop:"0.25em",paddingRight:0,marginLeft:"0.875em",WebkitUserSelect:"text",MozUserSelect:"text",wordWrap:"break-word",paddingLeft:i.length>1?"2.125em":"1.25em",textIndent:"-0.5em",wordBreak:"break-all"}}},label:{display:"inline-block",color:t.LABEL_COLOR},valueLabel:{margin:"0 0.5em 0 0"},valueText:(a,n)=>{let{style:i}=a;return{style:{...i,color:oP(t)[n]}}},itemRange:(a,n)=>({style:{paddingTop:n?0:"0.25em",cursor:"pointer",color:t.LABEL_COLOR}}),arrow:(a,n,i)=>{let{style:r}=a;return{style:{...r,marginLeft:0,transition:"150ms",WebkitTransition:"150ms",MozTransition:"150ms",WebkitTransform:i?"rotateZ(90deg)":"rotateZ(0deg)",MozTransform:i?"rotateZ(90deg)":"rotateZ(0deg)",transform:i?"rotateZ(90deg)":"rotateZ(0deg)",transformOrigin:"45% 50%",WebkitTransformOrigin:"45% 50%",MozTransformOrigin:"45% 50%",position:"relative",lineHeight:"1.1em",fontSize:"0.75em"}}},arrowContainer:(a,n)=>{let{style:i}=a;return{style:{...i,display:"inline-block",paddingRight:"0.5em",paddingLeft:n==="double"?"1em":0,cursor:"pointer"}}},arrowSign:{color:t.ARROW_COLOR},arrowSignInner:{position:"absolute",top:0,left:"-0.4em"},nestedNode:(a,n,i,r,o)=>{let{style:s}=a;return{style:{...s,position:"relative",paddingTop:"0.25em",marginLeft:n.length>1?"0.875em":0,paddingLeft:o?0:"1.125em"}}},rootNode:{padding:0,margin:0},nestedNodeLabel:(a,n,i,r,o)=>{let{style:s}=a;return{style:{...s,margin:0,padding:0,WebkitUserSelect:o?"inherit":"text",MozUserSelect:o?"inherit":"text",cursor:o?"pointer":"default"}}},nestedNodeItemString:(a,n,i,r)=>{let{style:o}=a;return{style:{...o,paddingLeft:"0.5em",cursor:"default",color:r?t.ITEM_STRING_EXPANDED_COLOR:t.ITEM_STRING_COLOR}}},nestedNodeItemType:{marginLeft:"0.3em",marginRight:"0.3em"},nestedNodeChildren:(a,n,i)=>{let{style:r}=a;return{style:{...r,padding:0,margin:0,listStyle:"none",display:i?"block":"none"}}},rootNodeChildren:{padding:0,margin:0,listStyle:"none"}}},lP=bg(sP,{defaultBase16:yg}),wg=lP;var Eg=e=>e,cP=(e,t,a)=>a===0,uP=(e,t,a,n)=>I.createElement("span",null,a," ",n),pP=e=>{let[t]=e;return I.createElement("span",null,t,":")},dP=()=>!1;function Sg(e){let{data:t,theme:a,invertTheme:n,keyPath:i=["root"],labelRenderer:r=pP,valueRenderer:o=Eg,shouldExpandNodeInitially:s=cP,hideRoot:l=!1,getItemString:u=uP,postprocessValue:c=Eg,isCustomNode:f=dP,collectionLimit:p=50,sortObjectKeys:b=!1}=e,d=At(()=>wg(n?xg(a):a),[a,n]);return I.createElement("ul",d("tree"),I.createElement(Di,{keyPath:l?[]:i,value:c(t),isCustomNode:f,styling:d,labelRenderer:r,valueRenderer:o,shouldExpandNodeInitially:s,hideRoot:l,getItemString:u,postprocessValue:c,collectionLimit:p,sortObjectKeys:b}))}var Ra=require("fs"),Be=require("obsidian"),Jt=_e(require("path"));var px=require("node:buffer"),dx=_e(require("node:path"),1),xs=_e(require("node:child_process"),1),Ki=_e(require("node:process"),1),fx=_e(qc(),1);function Ju(e){let t=typeof e=="string"?` +`:` +`.charCodeAt(),a=typeof e=="string"?"\r":"\r".charCodeAt();return e[e.length-1]===t&&(e=e.slice(0,-1)),e[e.length-1]===a&&(e=e.slice(0,-1)),e}var Xi=_e(require("node:process"),1),Gn=_e(require("node:path"),1),Cg=_e(require("node:url"),1);function ds(e={}){let{env:t=process.env,platform:a=process.platform}=e;return a!=="win32"?"PATH":Object.keys(t).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"}function fP(e={}){let{cwd:t=Xi.default.cwd(),path:a=Xi.default.env[ds()],execPath:n=Xi.default.execPath}=e,i,r=t instanceof URL?Cg.default.fileURLToPath(t):t,o=Gn.default.resolve(r),s=[];for(;i!==o;)s.push(Gn.default.join(o,"node_modules/.bin")),i=o,o=Gn.default.resolve(o,"..");return s.push(Gn.default.resolve(r,n,"..")),[...s,a].join(Gn.default.delimiter)}function Ag({env:e=Xi.default.env,...t}={}){e={...e};let a=ds({env:e});return t.path=e[a],e[a]=fP(t),e}var mP=(e,t,a,n)=>{if(a==="length"||a==="prototype"||a==="arguments"||a==="caller")return;let i=Object.getOwnPropertyDescriptor(e,a),r=Object.getOwnPropertyDescriptor(t,a);!hP(i,r)&&n||Object.defineProperty(e,a,r)},hP=function(e,t){return e===void 0||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value)},vP=(e,t)=>{let a=Object.getPrototypeOf(t);a!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,a)},bP=(e,t)=>`/* Wrapped ${e}*/ +${t}`,gP=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),xP=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),yP=(e,t,a)=>{let n=a===""?"":`with ${a.trim()}() `,i=bP.bind(null,n,t.toString());Object.defineProperty(i,"name",xP),Object.defineProperty(e,"toString",{...gP,value:i})};function Zu(e,t,{ignoreNonConfigurable:a=!1}={}){let{name:n}=e;for(let i of Reflect.ownKeys(t))mP(e,t,i,a);return vP(e,t),yP(e,t,n),e}var fs=new WeakMap,Ig=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let a,n=0,i=e.displayName||e.name||"",r=function(...o){if(fs.set(r,++n),n===1)a=e.apply(this,o),e=null;else if(t.throw===!0)throw new Error(`Function \`${i}\` can only be called once`);return a};return Zu(r,e),fs.set(r,n),r};Ig.callCount=e=>{if(!fs.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return fs.get(e)};var _g=Ig;var Rg=require("node:os");var Tg=()=>{let e=Fg-kg+1;return Array.from({length:e},wP)},wP=(e,t)=>({name:`SIGRT${t+1}`,number:kg+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),kg=34,Fg=64;var Og=require("node:os");var Pg=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}];var qu=()=>{let e=Tg();return[...Pg,...e].map(EP)},EP=({name:e,number:t,description:a,action:n,forced:i=!1,standard:r})=>{let{signals:{[e]:o}}=Og.constants,s=o!==void 0;return{name:e,number:s?o:t,description:a,supported:s,action:n,forced:i,standard:r}};var SP=()=>{let e=qu();return Object.fromEntries(e.map(CP))},CP=({name:e,number:t,description:a,supported:n,action:i,forced:r,standard:o})=>[e,{name:e,number:t,description:a,supported:n,action:i,forced:r,standard:o}],Bg=SP(),AP=()=>{let e=qu(),t=64+1,a=Array.from({length:t},(n,i)=>IP(i,e));return Object.assign({},...a)},IP=(e,t)=>{let a=_P(e,t);if(a===void 0)return{};let{name:n,description:i,supported:r,action:o,forced:s,standard:l}=a;return{[e]:{name:n,number:e,description:i,supported:r,action:o,forced:s,standard:l}}},_P=(e,t)=>{let a=t.find(({name:n})=>Rg.constants.signals[n]===e);return a!==void 0?a:t.find(n=>n.number===e)},rz=AP();var TP=({timedOut:e,timeout:t,errorCode:a,signal:n,signalDescription:i,exitCode:r,isCanceled:o})=>e?`timed out after ${t} milliseconds`:o?"was canceled":a!==void 0?`failed with ${a}`:n!==void 0?`was killed with ${n} (${i})`:r!==void 0?`failed with exit code ${r}`:"failed",$i=({stdout:e,stderr:t,all:a,error:n,signal:i,exitCode:r,command:o,escapedCommand:s,timedOut:l,isCanceled:u,killed:c,parsed:{options:{timeout:f}}})=>{r=r===null?void 0:r,i=i===null?void 0:i;let p=i===void 0?void 0:Bg[i].description,b=n&&n.code,m=`Command ${TP({timedOut:l,timeout:f,errorCode:b,signal:i,signalDescription:p,exitCode:r,isCanceled:u})}: ${o}`,h=Object.prototype.toString.call(n)==="[object Error]",v=h?`${m} +${n.message}`:m,x=[v,t,e].filter(Boolean).join(` +`);return h?(n.originalMessage=n.message,n.message=x):n=new Error(x),n.shortMessage=v,n.command=o,n.escapedCommand=s,n.exitCode=r,n.signal=i,n.signalDescription=p,n.stdout=e,n.stderr=t,a!==void 0&&(n.all=a),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=c&&!l,n};var ms=["stdin","stdout","stderr"],kP=e=>ms.some(t=>e[t]!==void 0),Ng=e=>{if(!e)return;let{stdio:t}=e;if(t===void 0)return ms.map(n=>e[n]);if(kP(e))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${ms.map(n=>`\`${n}\``).join(", ")}`);if(typeof t=="string")return t;if(!Array.isArray(t))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);let a=Math.max(t.length,ms.length);return Array.from({length:a},(n,i)=>t[i])};var jg=_e(require("node:os"),1),Lg=_e(eu(),1),FP=1e3*5,Mg=(e,t="SIGTERM",a={})=>{let n=e(t);return PP(e,t,a,n),n},PP=(e,t,a,n)=>{if(!OP(t,a,n))return;let i=BP(a),r=setTimeout(()=>{e("SIGKILL")},i);r.unref&&r.unref()},OP=(e,{forceKillAfterTimeout:t},a)=>RP(e)&&t!==!1&&a,RP=e=>e===jg.default.constants.signals.SIGTERM||typeof e=="string"&&e.toUpperCase()==="SIGTERM",BP=({forceKillAfterTimeout:e=!0})=>{if(e===!0)return FP;if(!Number.isFinite(e)||e<0)throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},Dg=(e,t)=>{e.kill()&&(t.isCanceled=!0)},NP=(e,t,a)=>{e.kill(t),a(Object.assign(new Error("Timed out"),{timedOut:!0,signal:t}))},zg=(e,{timeout:t,killSignal:a="SIGTERM"},n)=>{if(t===0||t===void 0)return n;let i,r=new Promise((s,l)=>{i=setTimeout(()=>{NP(e,a,l)},t)}),o=n.finally(()=>{clearTimeout(i)});return Promise.race([r,o])},Gg=({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},Hg=async(e,{cleanup:t,detached:a},n)=>{if(!t||a)return n;let i=(0,Lg.default)(()=>{e.kill()});return n.finally(()=>{i()})};var Wg=require("node:fs"),Vg=require("node:child_process");function hs(e){return e!==null&&typeof e=="object"&&typeof e.pipe=="function"}function Xu(e){return hs(e)&&e.writable!==!1&&typeof e._write=="function"&&typeof e._writableState=="object"}var jP=e=>e instanceof Vg.ChildProcess&&typeof e.then=="function",$u=(e,t,a)=>{if(typeof a=="string")return e[t].pipe((0,Wg.createWriteStream)(a)),e;if(Xu(a))return e[t].pipe(a),e;if(!jP(a))throw new TypeError("The second argument must be a string, a stream or an Execa child process.");if(!Xu(a.stdin))throw new TypeError("The target child process's stdin must be available.");return e[t].pipe(a.stdin),a},Ug=e=>{e.stdout!==null&&(e.pipeStdout=$u.bind(void 0,e,"stdout")),e.stderr!==null&&(e.pipeStderr=$u.bind(void 0,e,"stderr")),e.all!==void 0&&(e.pipeAll=$u.bind(void 0,e,"all"))};var bs=require("node:fs");var ep=_e(qg(),1),Xg=_e(au(),1),$g=e=>{if(e!==void 0)throw new TypeError("The `input` and `inputFile` options cannot be both set.")},WP=({input:e,inputFile:t})=>typeof t!="string"?e:($g(e),(0,bs.readFileSync)(t)),Yg=e=>{let t=WP(e);if(hs(t))throw new TypeError("The `input` option cannot be a stream in sync mode");return t},VP=({input:e,inputFile:t})=>typeof t!="string"?e:($g(e),(0,bs.createReadStream)(t)),Kg=(e,t)=>{let a=VP(t);a!==void 0&&(hs(a)?a.pipe(e.stdin):e.stdin.end(a))},Qg=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let a=(0,Xg.default)();return e.stdout&&a.add(e.stdout),e.stderr&&a.add(e.stderr),a},Ku=async(e,t)=>{if(!(!e||t===void 0)){e.destroy();try{return await t}catch(a){return a.bufferedData}}},Qu=(e,{encoding:t,buffer:a,maxBuffer:n})=>{if(!(!e||!a))return t?(0,ep.default)(e,{encoding:t,maxBuffer:n}):ep.default.buffer(e,{maxBuffer:n})},ex=async({stdout:e,stderr:t,all:a},{encoding:n,buffer:i,maxBuffer:r},o)=>{let s=Qu(e,{encoding:n,buffer:i,maxBuffer:r}),l=Qu(t,{encoding:n,buffer:i,maxBuffer:r}),u=Qu(a,{encoding:n,buffer:i,maxBuffer:r*2});try{return await Promise.all([o,s,l,u])}catch(c){return Promise.all([{error:c,signal:c.signal,timedOut:c.timedOut},Ku(e,s),Ku(t,l),Ku(a,u)])}};var UP=(async()=>{})().constructor.prototype,JP=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(UP,e)]),tp=(e,t)=>{for(let[a,n]of JP){let i=typeof t=="function"?(...r)=>Reflect.apply(n.value,t(),r):n.value.bind(t);Reflect.defineProperty(e,a,{...n,value:i})}},tx=e=>new Promise((t,a)=>{e.on("exit",(n,i)=>{t({exitCode:n,signal:i})}),e.on("error",n=>{a(n)}),e.stdin&&e.stdin.on("error",n=>{a(n)})});var ix=require("node:buffer"),rx=require("node:child_process"),ox=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],ZP=/^[\w.-]+$/,qP=/"/g,XP=e=>typeof e!="string"||ZP.test(e)?e:`"${e.replace(qP,'\\"')}"`,ap=(e,t)=>ox(e,t).join(" "),np=(e,t)=>ox(e,t).map(a=>XP(a)).join(" "),$P=/ +/g;var ax=e=>{let t=typeof e;if(t==="string")return e;if(t==="number")return String(e);if(t==="object"&&e!==null&&!(e instanceof rx.ChildProcess)&&"stdout"in e){let a=typeof e.stdout;if(a==="string")return e.stdout;if(ix.Buffer.isBuffer(e.stdout))return e.stdout.toString();throw new TypeError(`Unexpected "${a}" stdout in template expression`)}throw new TypeError(`Unexpected "${t}" in template expression`)},nx=(e,t,a)=>a||e.length===0||t.length===0?[...e,...t]:[...e.slice(0,-1),`${e[e.length-1]}${t[0]}`,...t.slice(1)],YP=({templates:e,expressions:t,tokens:a,index:n,template:i})=>{let r=i!=null?i:e.raw[n],o=r.split($P).filter(Boolean),s=nx(a,o,r.startsWith(" "));if(n===t.length)return s;let l=t[n],u=Array.isArray(l)?l.map(c=>ax(c)):[ax(l)];return nx(s,u,r.endsWith(" "))},ip=(e,t)=>{let a=[];for(let[n,i]of e.entries())a=YP({templates:e,expressions:t,tokens:a,index:n,template:i});return a};var sx=require("node:util"),lx=_e(require("node:process"),1),cx=(0,sx.debuglog)("execa").enabled,gs=(e,t)=>String(e).padStart(t,"0"),KP=()=>{let e=new Date;return`${gs(e.getHours(),2)}:${gs(e.getMinutes(),2)}:${gs(e.getSeconds(),2)}.${gs(e.getMilliseconds(),3)}`},rp=(e,{verbose:t})=>{t&&lx.default.stderr.write(`[${KP()}] ${e} +`)};var QP=1e3*1e3*100,eO=({env:e,extendEnv:t,preferLocal:a,localDir:n,execPath:i})=>{let r=t?{...Ki.default.env,...e}:e;return a?Ag({env:r,cwd:n,execPath:i}):r},mx=(e,t,a={})=>{let n=fx.default._parse(e,t,a);return e=n.command,t=n.args,a=n.options,a={maxBuffer:QP,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:a.cwd||Ki.default.cwd(),execPath:Ki.default.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:cx,...a},a.env=eO(a),a.stdio=Ng(a),Ki.default.platform==="win32"&&dx.default.basename(e,".exe")==="cmd"&&t.unshift("/q"),{file:e,args:t,options:a,parsed:n}},Qi=(e,t,a)=>typeof t!="string"&&!px.Buffer.isBuffer(t)?a===void 0?void 0:"":e.stripFinalNewline?Ju(t):t;function er(e,t,a){let n=mx(e,t,a),i=ap(e,t),r=np(e,t);rp(r,n.options),Gg(n.options);let o;try{o=xs.default.spawn(n.file,n.args,n.options)}catch(b){let d=new xs.default.ChildProcess,m=Promise.reject($i({error:b,stdout:"",stderr:"",all:"",command:i,escapedCommand:r,parsed:n,timedOut:!1,isCanceled:!1,killed:!1}));return tp(d,m),d}let s=tx(o),l=zg(o,n.options,s),u=Hg(o,n.options,l),c={isCanceled:!1};o.kill=Mg.bind(null,o.kill.bind(o)),o.cancel=Dg.bind(null,o,c);let p=_g(async()=>{let[{error:b,exitCode:d,signal:m,timedOut:h},v,x,E]=await ex(o,n.options,u),g=Qi(n.options,v),w=Qi(n.options,x),C=Qi(n.options,E);if(b||d!==0||m!==null){let y=$i({error:b,exitCode:d,signal:m,stdout:g,stderr:w,all:C,command:i,escapedCommand:r,parsed:n,timedOut:h,isCanceled:c.isCanceled||(n.options.signal?n.options.signal.aborted:!1),killed:o.killed});if(!n.options.reject)return y;throw y}return{command:i,escapedCommand:r,exitCode:0,stdout:g,stderr:w,all:C,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return Kg(o,n.options),o.all=Qg(o,n.options),Ug(o),tp(o,p),o}function tO(e,t,a){let n=mx(e,t,a),i=ap(e,t),r=np(e,t);rp(r,n.options);let o=Yg(n.options),s;try{s=xs.default.spawnSync(n.file,n.args,{...n.options,input:o})}catch(c){throw $i({error:c,stdout:"",stderr:"",all:"",command:i,escapedCommand:r,parsed:n,timedOut:!1,isCanceled:!1,killed:!1})}let l=Qi(n.options,s.stdout,s.error),u=Qi(n.options,s.stderr,s.error);if(s.error||s.status!==0||s.signal!==null){let c=$i({stdout:l,stderr:u,error:s.error,signal:s.signal,exitCode:s.status,command:i,escapedCommand:r,parsed:n,timedOut:s.error&&s.error.code==="ETIMEDOUT",isCanceled:!1,killed:s.signal!==null});if(!n.options.reject)return c;throw c}return{command:i,escapedCommand:r,exitCode:0,stdout:l,stderr:u,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}}var aO=({input:e,inputFile:t,stdio:a})=>e===void 0&&t===void 0&&a===void 0?{stdin:"inherit"}:{},ux=(e={})=>({preferLocal:!0,...aO(e),...e});function hx(e){function t(a,...n){if(!Array.isArray(a))return hx({...e,...a});let[i,...r]=ip(a,n);return er(i,r,ux(e))}return t.sync=(a,...n)=>{if(!Array.isArray(a))throw new TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[i,...r]=ip(a,n);return tO(i,r,ux(e))},t}var Bz=hx();var lt=_e(require("fs")),op=require("obsidian"),tn=_e(require("os")),Lt=_e(require("path"));function sp(){return require("electron").remote.BrowserWindow.getFocusedWindow()}function lp(e){return e<10?`0${e}`:e.toString()}function an(){return app.vault.adapter.getBasePath()}function _t(){return Lt.default.join(an(),"./.obsidian/plugins/obsidian-zotero-desktop-connector/")}function nn(){return tn.default.platform()==="win32"?"pdfannots2json.exe":`pdfannots2json-${tn.default.platform()}-${tn.default.arch()}`}function vx(){tn.default.platform()!=="win32"&<.default.renameSync(Lt.default.join(_t(),cp()),Lt.default.join(_t(),nn()))}function cp(){return tn.default.platform()==="win32"?"pdfannots2json.exe":"pdfannots2json"}function bx(){return tn.default.platform()==="win32"?"pdf-annots2json.exe":"pdf-annots2json"}function Hn(e){return e?lt.default.existsSync(e):lt.default.existsSync(Lt.default.join(_t(),nn()))}function gx(e){return e?lt.default.existsSync(e):lt.default.existsSync(Lt.default.join(_t(),cp()))}function xx(){return lt.default.existsSync(Lt.default.join(_t(),bx()))}function yx(){lt.default.rmSync(Lt.default.join(_t(),nn()))}function wx(){lt.default.rmSync(Lt.default.join(_t(),cp()))}function Ex(){lt.default.rmSync(Lt.default.join(_t(),bx()))}async function Sx(e){try{let t=await er(e||Lt.default.join(_t(),nn()),["-v"]);if(t.stderr&&!t.stderr.includes("warning"))throw new op.Notice(`Error checking PDF utility version: ${t.stderr}`,1e4),new Error(t.stderr);return t.stdout.trim()}catch(t){throw console.error(t),new op.Notice(`Error checking PDF utility version: ${t.message}`,1e4),t}}function nO(e=0){return e|lt.default.constants.S_IXUSR|lt.default.constants.S_IXGRP|lt.default.constants.S_IXOTH}function iO(e){if(console.error("Error: pdfannots2json not executable",e),e.code==="ENOENT")return!1}function Cx(e){let t=e||Lt.default.join(_t(),nn());try{return lt.default.accessSync(t,lt.default.constants.X_OK),!0}catch(a){}try{let a=lt.default.statSync(t);return lt.default.chmodSync(t,nO(a.mode)),!0}catch(a){return iO(a)}}var Tx=require("obsidian");var Wn=_e(Ax()),ys=require("obsidian");Wn.default.runtime.memberLookup=function(t,a){if(t!=null)return a=="__proto__"||a=="constructor"?function(){return function(){}}:typeof t[a]=="function"?(...n)=>t[a].apply(t,n):t[a]};function rO(e){return e?e.split("."):[]}function oO(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function sO(e){let t=rO(e);return function(n){let i=n;for(let r=0;r{let o=typeof r=="string"?r:i(r);return o?typeof n[0]=="string"&&["startswith","endswith","contains"].includes(a)?(o=o.toString().toLocaleLowerCase(),n.some(s=>{let l=s.toLocaleLowerCase();return a==="startswith"?o.startsWith(l):a==="endswith"?o.endsWith(l):a==="contains"?o.includes(l):!0})):["dateafter","dateonorafter","datebefore","dateonorbefore"].includes(a)?n.some(s=>{if(!ys.moment.isMoment(o)||!ys.moment.isMoment(s))return!1;switch(a){case"dateafter":return o.isAfter(s);case"dateonorafter":return o.isSameOrAfter(s);case"datebefore":return o.isBefore(s);case"dateonorbefore":return o.isSameOrBefore(s)}}):!1:!1})}function cO(e,t){return e instanceof ys.moment?e.format(t):"Error: `format` can only be applied to dates. Tried for format "+typeof e}var Kt=class{constructor(){this.tags=["persist"]}parse(t,a){let n=t.nextToken(),i=t.parseSignature(null,!0);t.advanceAfterBlockEnd(n.value);let r=t.parseUntilBlocks("endpersist");return t.advanceAfterBlockEnd(),new a.CallExtension(this,"run",i,[r])}run(t,a,n){var o;let i="";(o=t==null?void 0:t.ctx)!=null&&o._retained&&t.ctx._retained[a]&&(i=t.ctx._retained[a]);let r=n();return i&&(r=r.trimStart()),new Wn.default.runtime.SafeString(`%% begin ${a} %%${i}${r}%% end ${a} %%`)}static hasPersist(t){return/%% begin (.+?) %%([\w\W]*?)%% end \1 %%/gi.test(t)}static prepareTemplateData(t,a){let n={};if(!a)return t;let i=a.matchAll(/%% begin (.+?) %%([\w\W]*?)%% end \1 %%/gi);for(let r of i)n[r[1]]=r[2];return{...t,_retained:n}}};Kt.id="PersistExtension";var pp=class extends Wn.Loader{constructor(){super(...arguments);this.async=!0}setSourceFile(a){this.sourceFile=a}getLinkPath(a){let n=a.trim().match(/^\[\[([^\]]+)\]\]$/);return n||(n=a.trim().match(/^\[[^\]]*\]\(([^)]+)\)$/),n)?n[1]:null}getSource(a,n){let i=this.getLinkPath(a);if(!i)return n(new Error("Cannot find file. Invalid markdown link: "+a),null);let r=app.metadataCache.getFirstLinkpathDest(i,this.sourceFile||"");if(!r)return n(new Error("Cannot find file. File not found: "+a),null);app.vault.cachedRead(r).then(o=>{let s={src:o,path:i,noCache:!0};n(null,s),this.emit("load",a,s)}).catch(o=>{n(o,null)})}},Ix=new pp,ar=new Wn.default.Environment(Ix,{autoescape:!1});ar.addFilter("setAttribute",function(e,t,a){return e[t]=a,e});ar.addFilter("filterby",lO);ar.addFilter("format",cO);ar.addExtension(Kt.id,new Kt);function bt(e,t,a){return new Promise((n,i)=>{Ix.setSourceFile(e),ar.renderString(t,a,(r,o)=>{if(r)return i(r);n(o)})})}var uO=` +{%- if creators and creators.length > 0 -%} + {%- for creator in creators -%} + {%- if creator.name -%} + {{creator.name}} + {%- else -%} + {{creator.firstName}} {{creator.lastName}} + {%- endif -%} + {% if not loop.last %}, {% endif %} + {%- endfor -%} +{%- endif -%} +`,pO=` +{%- if attachments and attachments.length > 0 -%} +{%- set file = attachments | filterby("path", "endswith", ".pdf") | first -%} +{%- if file and file.path and file.path.endsWith(".pdf") -%} + [{{file.title}}](file://{{file.path | replace(" ", "%20")}}) +{%- endif -%} +{%- endif -%} +`,dO=` +{%- if attachments and attachments.length > 0 -%} +{%- set file = attachments | filterby("path", "endswith", ".pdf") | first -%} +{%- if file and file.path and file.path.endsWith(".pdf") -%} + [{{file.title}}]({{file.desktopURI}}) +{%- endif -%} +{%- endif -%} +`,_x=` +{%- if annotations and annotations.length > 0 -%} +{%- set annots = annotations | filterby("date", "dateafter", lastExportDate) -%} +{%- if annots.length > 0 %} +**Imported: {{importDate | format("YYYY-MM-DD")}}** + +{% for annotation in annots -%} + {%- if annotation.annotatedText -%} + > \u201C{{annotation.annotatedText}}\u201D{% if annotation.color %} {{annotation.colorCategory}} {{annotation.type | capitalize}} {% else %} {{annotation.type | capitalize}} {% endif %}[Page {{annotation.page}}]({{annotation.attachment.desktopURI.replace("select", "open-pdf")}}?page={{annotation.pageLabel}}&annotation={{annotation.id}}) + {%- endif %} + {%- if annotation.imageRelativePath -%} + > ![[{{annotation.imageRelativePath}}]] + {%- endif %} +{% if annotation.comment %} +{{annotation.comment}} +{% endif %} +{% endfor -%} +{%- endif -%} +{%- endif -%} +`;async function ws(e,t){var r,o,s;if(!t)return t;let a=(t.creators||[]).reduce((l,u)=>(l[u.creatorType]||(l[u.creatorType]=[]),l[u.creatorType].push(u),l),{});await Promise.all(Object.keys(a).map(async l=>{t[`${l}s`]=(await bt(e,uO,{creators:a[l]})).trim()}));let n=(await bt(e,pO,t)).trim();n&&(t.pdfLink=n);let i=(await bt(e,dO,t)).trim();if(i&&(t.pdfZoteroLink=i),(r=t.notes)!=null&&r.length){let l=t.notes.reduce((u,c)=>c.note?`${u} + +${c.note.trim()}`:u,"").trim();l&&(t.markdownNotes=l)}return(o=t.tags)!=null&&o.length&&(t.allTags=t.tags.map(l=>l.tag).join(", "),t.hashTags=t.tags.map(l=>`#${l.tag.replace(/\s+/g,"-")}`).join(", ")),(s=t.annotations)!=null&&s.length&&(t.formattedAnnotationsNew=(await bt(e,_x,t)).trim(),t.formattedAnnotations=(await bt(e,_x,{...t,lastExportDate:(0,Tx.moment)(0)})).trim()),t}var Pa=require("obsidian");var kx=require("obsidian"),nt=class extends kx.Modal{constructor(a,n){super(a);this.message=n}onOpen(){this.contentEl.createDiv({text:this.message})}onClose(){this.contentEl.empty()}};var Es=_e(require("path")),Mt={"Content-Type":"application/json","User-Agent":"obsidian/zotero",Accept:"application/json",Connection:"keep-alive"};function Dt(e,t){return e==="Zotero"?"23119":e==="Juris-M"?"24119":t||"23119"}async function Ss(e){let t=Es.default.dirname(e);await app.vault.adapter.exists(t)||await app.vault.createFolder(t)}function Fx(e){return e.replace(/\s*[*?]+\s*/g," ").trim().replace(/\s*[:"<>|]+\s*/g," - ").trim()}function Vn(e){let t=Es.default.parse(e),a=Fx(t.dir),n=Fx(t.name);return Es.default.join(a,`${n}${t.ext}`)}function fO(e){let t="0",a="0",n="0";e.length==4?(t="0x"+e[1]+e[1],a="0x"+e[2]+e[2],n="0x"+e[3]+e[3]):e.length==7&&(t="0x"+e[1]+e[2],a="0x"+e[3]+e[4],n="0x"+e[5]+e[6]);let i=+t/255,r=+a/255,o=+n/255,s=Math.min(i,r,o),l=Math.max(i,r,o),u=l-s,c=0,f=0,p=0;return u==0?c=0:l==i?c=(r-o)/u%6:l==r?c=(o-i)/u+2:c=(i-r)/u+4,c=Math.round(c*60),c<0&&(c+=360),p=(l+s)/2,f=u==0?0:u/(1-Math.abs(2*p-1)),f=+(f*100).toFixed(1),p=+(p*100).toFixed(1),{h:c,s:f,l:p}}function Px(e){let{h:t,s:a,l:n}=fO(e);return n<12?"Black":n>98?"White":a<2?"Gray":t<15?"Red":t<45?"Orange":t<65?"Yellow":t<170?"Green":t<190?"Cyan":t<263?"Blue":t<280?"Purple":t<335?"Magenta":"Red"}function Qt(e,t,a){let n=t.split("/").pop(),i=`zotero://${e}`,r="";if(/group/.test(t)?r=t.replace("http://zotero.org",i):r=`${i}/library/items/${n}`,a){let o=new URLSearchParams(a);r+=`?${o}`}return r}var Pe=require("obsidian");var dp=class e{constructor(t){this.compare=t;this.heapArray=[];this._limit=0}static getChildrenIndexOf(t){return[t*2+1,t*2+2]}static getParentIndexOf(t){if(t<=0)return-1;let a=t%2?1:2;return Math.floor((t-a)/2)}push(t){return this._sortNodeUp(this.heapArray.push(t)-1),!0}length(){return this.heapArray.length}peek(){return this.heapArray[0]}pop(){let t=this.heapArray.pop();return this.length()>0&&t!==void 0?this.replace(t):t}replace(t){let a=this.heapArray[0];return this.heapArray[0]=t,this._sortNodeDown(0),a}size(){return this.length()}_moveNode(t,a){[this.heapArray[t],this.heapArray[a]]=[this.heapArray[a],this.heapArray[t]]}_sortNodeDown(t){let a=t(this.heapArray.length>o&&this.compare(this.heapArray[o],this.heapArray[r])<0&&(r=o),r);for(;a;){let r=e.getChildrenIndexOf(t),o=r.reduce(i,r[0]),s=this.heapArray[o];typeof s!="undefined"&&this.compare(n,s)>0?(this._moveNode(t,o),t=o):a=!1}}_sortNodeUp(t){let a=t>0;for(;a;){let n=e.getParentIndexOf(t);n>=0&&this.compare(this.heapArray[n],this.heapArray[t])>0?(this._moveNode(t,n),t=n):a=!1}}};function mO(e,t){return e.prio-t.prio||e.counter-t.counter}var fp=class{constructor(t,a){this.maxConcurrent=t||1,this.minCycle=a||0,this.queueRunning=new Map,this.queueWaiting=new dp(mO),this.lastRun=0,this.nextTimer=null,this.counter=0}tryRun(){for(;this.queueWaiting.size()>0&&this.queueRunning.sizeactiveWindow.setTimeout(()=>{this.nextTimer=null,this.tryRun(),a()},this.minCycle-Date.now()+this.lastRun)));return}let t=this.queueWaiting.pop();if(t!==void 0){let a,i={wait:new Promise(o=>{a=o}),signal:a},r={hash:t.hash,prio:t.prio,finish:i};if(this.queueRunning.has(t.hash))throw new Error("async-await-queue: duplicate hash "+t.hash);this.queueRunning.set(t.hash,r),this.lastRun=Date.now(),t.start.signal()}}}end(t){let a=this.queueRunning.get(t);if(a===void 0)throw new Error("async-await-queue: queue desync for "+t);this.queueRunning.delete(t),a.finish.signal(),this.tryRun()}async wait(t,a){let n=a!=null?a:0,i,r=new Promise(s=>{i=s}),o={hash:t,prio:n,start:{signal:i,wait:r},counter:this.counter++};this.queueWaiting.push(o),this.tryRun(),await r,this.lastRun=Date.now()}run(t,a){let n=a!=null?a:0,i=Symbol();return this.wait(i,n).then(t).finally(()=>{this.end(i)})}stat(){return{running:this.queueRunning.size,waiting:this.queueWaiting.size(),last:this.lastRun}}async flush(t){for(;this.queueRunning.size>0||this.queueWaiting.size()>0;){let a=this.queueWaiting.peek();if(a&&await a.start.wait,t!==void 0&&this.queueWaiting.size()0&&await this.queueRunning.values().next().value.finish.wait}}},Ee=new fp(1);async function Ox(e,t){let a,n=new nt(app,"Fetching notes from Zotero...");n.open();let i=Symbol();try{await Ee.wait(i),a=await(0,Pe.request)({method:"POST",url:`http://127.0.0.1:${Dt(t.database,t.port)}/better-bibtex/json-rpc`,body:JSON.stringify({jsonrpc:"2.0",method:"item.notes",params:[e.map(r=>r.key)]}),headers:Mt})}catch(r){return console.error(r),n.close(),new Pe.Notice(`Error retrieving notes: ${r.message}`,1e4),Ee.end(i),null}Ee.end(i),n.close();try{return JSON.parse(a).result}catch(r){return console.error(r),new Pe.Notice(`Error retrieving notes: ${r.message}`,1e4),null}}async function Rx(e,t){let a,n=new nt(app,"Fetching collections from Zotero...");n.open();let i=Symbol();try{await Ee.wait(i),a=await(0,Pe.request)({method:"POST",url:`http://127.0.0.1:${Dt(t.database,t.port)}/better-bibtex/json-rpc`,body:JSON.stringify({jsonrpc:"2.0",method:"item.collections",params:[[e.key],!0]}),headers:Mt})}catch(r){return console.error(r),n.close(),new Pe.Notice(`Error retrieving notes: ${r.message}`,1e4),Ee.end(i),null}Ee.end(i),n.close();try{return JSON.parse(a).result[e.key].map(s=>{let l=s,u=[s.name];for(;l.parentCollection;)u.push(l.parentCollection.name),l=l.parentCollection;return{key:s.key,name:s.name,fullPath:u.reverse().join("/")}})}catch(r){return console.error(r),new Pe.Notice(`Error retrieving notes: ${r.message}`,1e4),null}}async function Cs(e,t){let a,n=new nt(app,"Fetching collections from Zotero...");n.open();let i=Symbol();try{await Ee.wait(i),a=await(0,Pe.request)({method:"POST",url:`http://127.0.0.1:${Dt(t.database,t.port)}/better-bibtex/json-rpc`,body:JSON.stringify({jsonrpc:"2.0",method:"item.attachments",params:[e.key]}),headers:Mt})}catch(r){return console.error(r),n.close(),new Pe.Notice(`Error retrieving notes: ${r.message}`,1e4),Ee.end(i),null}Ee.end(i),n.close();try{return JSON.parse(a).result}catch(r){return console.error(r),new Pe.Notice(`Error retrieving notes: ${r.message}`,1e4),null}}function Bx(e,t,a,n,i){return mp([e],t,a,n,i)}async function mp(e,t,a,n,i){var l;if(!e||!e.length)return null;let r,o;i||(o=new nt(app,"Fetching data from Zotero..."),o.open());let s=Symbol();try{let u={quickCopy:!0,contentType:"html"};a&&(delete u.quickCopy,u.id=a),await Ee.wait(s),r=await(0,Pe.request)({method:"POST",url:`http://127.0.0.1:${Dt(t.database,t.port)}/better-bibtex/json-rpc`,body:JSON.stringify({jsonrpc:"2.0",method:"item.bibliography",params:[e.map(c=>c.key),u,e[0].library]}),headers:Mt})}catch(u){return console.error(u),!i&&o.close(),new Pe.Notice(`Error retrieving formatted bibliography: ${u.message}`,1e4),Ee.end(s),null}Ee.end(s),!i&&o.close();try{let u=JSON.parse(r);if((l=u.error)!=null&&l.message)throw new Error(u.error.message);return n==="html"?u.result:(0,Pe.htmlToMarkdown)(u.result)}catch(u){console.error(u),console.error(`Response from BBT: ${r}`);let c=`Error converting formatted bibliography to markdown: ${u.message}`;return u.message.includes("element/document/fragment")&&(c="Error: Received empty bibliography from Zotero. Ensure Zotero's quick copy settings are set and the selected citation style is installed."),new Pe.Notice(c,1e4),null}}async function nr(e,t,a){var o;let n,i=new nt(app,"Fetching data from Zotero...");i.open();let r=Symbol();try{await Ee.wait(r),n=await(0,Pe.request)({method:"POST",url:`http://127.0.0.1:${Dt(t.database,t.port)}/better-bibtex/json-rpc`,body:JSON.stringify({jsonrpc:"2.0",method:"item.export",params:[e.map(s=>s.key),"36a3b0b5-bad0-4a04-b79b-441c7cef77db",a]}),headers:Mt})}catch(s){return console.error(s),i.close(),new Pe.Notice(`Error retrieving item data: ${s.message}`,1e4),Ee.end(r),null}Ee.end(r),i.close();try{let s=JSON.parse(n);if((o=s.error)!=null&&o.message)throw new Error(s.error.message);return Array.isArray(s.result)?JSON.parse(s.result[2]).items:JSON.parse(s.result).items}catch(s){return console.error(s),new Pe.Notice(`Error retrieving item data: ${s.message}`,1e4),null}}async function Nx(e,t,a){let n,i=new nt(app,"Fetching data from Zotero...");i.open();let r={},o=[],s=Symbol();try{await Ee.wait(s),n=await(0,Pe.request)({method:"POST",url:`http://127.0.0.1:${Dt(a.database,a.port)}/better-bibtex/json-rpc`,body:JSON.stringify({jsonrpc:"2.0",method:"item.citationkey",params:[t.map(f=>{let p=f.split("/").pop();return o.push(p),r[p]=f,`${e}:${p}`})]}),headers:Mt})}catch(f){return console.error(f),i.close(),new Pe.Notice(`Error retrieving item data: ${f.message}`,1e4),Ee.end(s),null}Ee.end(s),i.close();let l={},u=[];try{let f=JSON.parse(n);Object.keys(f.result).forEach(p=>{let b=p.split(":").pop();f.result[p]?(u.push({key:f.result[p],library:e}),l[b]={citekey:f.result[p],uri:r[b]}):l[b]={uri:r[b]}})}catch(f){return console.error(f),new Pe.Notice(`Error retrieving item data: ${f.message}`,1e4),null}let c=u.length?await nr(u,a,e):[];return o.map(f=>{if(l[f].citekey){let p=c.find(b=>{var d;return((d=rn(b))==null?void 0:d.key)===l[f].citekey});if(p)return p}return l[f]})}async function jx(e,t){var r;let a,n=new nt(app,"Fetching data from Zotero...");n.open();let i=Symbol();try{await Ee.wait(i),a=await(0,Pe.request)({method:"POST",url:`http://127.0.0.1:${Dt(t.database,t.port)}/better-bibtex/json-rpc`,body:JSON.stringify({jsonrpc:"2.0",method:"item.export",params:[[e.key],"f4b52ab0-f878-4556-85a0-c7aeedd09dfc",e.library]}),headers:Mt})}catch(o){return console.error(o),n.close(),new Pe.Notice(`Error retrieving item data: ${o.message}`,1e4),Ee.end(i),null}Ee.end(i),n.close();try{let o=JSON.parse(a);if((r=o.error)!=null&&r.message)throw new Error(o.error.message);let l=(Array.isArray(o.result)?JSON.parse(o.result[2]):JSON.parse(o.result)).map(u=>{let{issued:c}=u;if(!c||!c["date-parts"])return null;let f=c["date-parts"][0];return f.length?(0,Pe.moment)(`${f[0]}-${f[1]?lp(f[1]):"01"}-${f[2]?lp(f[2]):"01"}`,"YYYY-MM-DD"):null}).filter(u=>u);return l[0]?l[0]:null}catch(o){return console.error(o),new Pe.Notice(`Error retrieving item data: ${o.message}`,1e4),null}}function rn(e){return!e.citekey&&!e.citationKey?null:{key:e.citekey||e.citationKey,library:e.libraryID}}var As=!1,Lx=0;async function hp(e,t){if(As&&Date.now()-Lx<1e3*30)return As;let a;t||(a=new nt(app,"Fetching data from Zotero..."),a.open());let n=Symbol();try{await Ee.wait(n);let i=await(0,Pa.request)({method:"GET",url:`http://127.0.0.1:${Dt(e.database,e.port)}/better-bibtex/cayw?probe=true`,headers:Mt});return a==null||a.close(),As=i==="ready",Lx=Date.now(),Ee.end(n),As}catch(i){return a==null||a.close(),!t&&new Pa.Notice("Cannot connect to Zotero. Please ensure it is running and the Better BibTeX plugin is installed",1e4),Ee.end(n),!1}}function hO(e){switch(e.format){case"formatted-bibliography":return"format=formatted-bibliography";case"formatted-citation":return`format=formatted-citation${e.cslStyle?`&style=${e.cslStyle}`:""}`;case"pandoc":return`format=pandoc${e.brackets?"&brackets=true":""}`;case"latex":return`format=latex&command=${e.command||"cite"}`;case"biblatex":return`format=biblatex&command=${e.command||"autocite"}`}}async function Mx(e,t){let a=sp();if(!await hp(t))return null;let n=new nt(app,"Awaiting item selection from Zotero...");n.open();let i=Symbol();try{if(e.format==="formatted-bibliography"){n.close();let o=await on(t);return await mp(o,t,e.cslStyle)}await Ee.wait(i);let r=await(0,Pa.request)({method:"GET",url:`http://127.0.0.1:${Dt(t.database,t.port)}/better-bibtex/cayw?${hO(e)}`,headers:Mt});return a.show(),n.close(),Ee.end(i),r}catch(r){return a.show(),console.error(r),n.close(),new Pa.Notice(`Error processing citation: ${r.message}`,1e4),Ee.end(i),null}}async function on(e){try{let t=await vO(e);if(!t)return[];let a=t.map(n=>rn(n)).filter(n=>!!n);return a.length?a:[]}catch(t){return[]}}async function vO(e){let t=sp();if(!await hp(e))return null;let a=new nt(app,"Awaiting item selection from Zotero...");a.open();let n=Symbol();try{await Ee.wait(n);let i=await(0,Pa.request)({method:"GET",url:`http://127.0.0.1:${Dt(e.database,e.port)}/better-bibtex/cayw?format=translate&translator=36a3b0b5-bad0-4a04-b79b-441c7cef77db&exportNotes=false`,headers:Mt});return t.show(),a.close(),Ee.end(n),i?JSON.parse(i).items||[]:null}catch(i){return t.show(),console.error(i),a.close(),new Pa.Notice(`Error retrieving cite key: ${i.message}`,1e4),Ee.end(n),null}}var Oa=require("fs"),zt=require("obsidian"),cn=_e(require("path"));var sn=require("obsidian");function Is(e,t){if(!t)return null;let a=app.vault.getAbstractFileByPath(bp(t));return a?app.vault.cachedRead(a):(new sn.Notice(`Error: ${e} template not found ${t}`),null)}async function Dx(e){let{exportFormat:t}=e,a=!t.headerTemplatePath&&!t.annotationTemplatePath&&!t.footerTemplatePath;return t.templatePath||a?{template:await Is("",t.templatePath)}:{headerTemplate:await Is("Header",t.headerTemplatePath),annotationTemplate:await Is("Annotation",t.annotationTemplatePath),footerTemplate:await Is("Footer",t.footerTemplatePath)}}function zx(e){let t=e.match(/%% Import Date: (\S+) %%\n$/);return t&&t[1]?(0,sn.moment)(t[1]):(t=e.match(/%% Export Date: (\S+) %%\n$/),t&&t[1]?(0,sn.moment)(t[1]):(0,sn.moment)(0))}function vp(e){return e+` + +%% Import Date: ${(0,sn.moment)().toISOString(!0)} %% +`}function Gx(e){let t=e.match(/%% Begin annotations %%([\w\W]+)%% End annotations %%/);return t&&t[1]?t[1].trim():""}function Hx(e){return` +%% Begin annotations %% +${e} +%% End annotations %% +`}function ln(e){return e.startsWith("/")?e.replace(/^\/+/,""):e}function bp(e){return e.endsWith(".md")||(e+=".md"),e.startsWith("/")&&(e=ln(e)),e}async function gp(e,t,a,n){let i=new DOMParser().parseFromString(t,"text/html"),r=i.querySelectorAll("[data-annotation]"),o=i.querySelectorAll("[data-citation]");for(let s of Array.from(r))try{let l=s.dataset.annotation,u=l?JSON.parse(decodeURIComponent(l)):null;if(!u)return;let c=u.annotationKey,f=s instanceof HTMLImageElement;if(f){let p=a[c];if(p){let b=cn.default.parse(p),d=await bO(c,b.ext.slice(1),n),h=cn.default.parse(cn.default.join(an(),d)).dir;(0,Oa.existsSync)(h)||(0,Oa.mkdirSync)(h,{recursive:!0});let v=cn.default.join(b.dir,`${c}${b.ext}`);try{if(!(0,Oa.existsSync)(v)){let x=v;if(v=p,!(0,Oa.existsSync)(v))throw new Error("Cannot find annotation image: "+x)}(0,Oa.copyFileSync)(v,cn.default.join(an(),d))}catch(x){new zt.Notice("Error: unable to copy annotation image from Zotero into your vault",7e3),console.error(x)}s.src=d}}s.insertAdjacentElement(f?"afterend":"beforebegin",createEl("a",{text:"Go to annotation",href:Qt("open-pdf",u.attachmentURI,{page:u.pageLabel,annotation:u.annotationKey})})),f?s.insertAdjacentElement("afterend",createEl("br")):s.insertAdjacentElement("beforebegin",createSpan({text:" "}))}catch(l){console.error(l)}return o.forEach(s=>{var l;try{let u=s.dataset.citation,c=u?JSON.parse(decodeURIComponent(u)):null;if(!c||!c.citationItems.length||!((l=c.citationItems[0].uris)!=null&&l.length))return;let f=s.querySelector("span");if(!f)return;let p=f.innerText;f.empty(),f.createEl("a",{text:p,href:Qt("select",c.citationItems[0].uris[0])})}catch(u){console.error(u)}}),i.body.innerHTML}async function xp(e,t){let a=await on(e);if(!a.length)return;let n=await Ox(a,e);if(!n){new zt.Notice("No notes found for selected items",7e3);return}let i=Object.keys(n);if(!i.length){new zt.Notice("No notes found for selected items",7e3);return}let r={};for(let s of a){let l=await Cs(s,e);if(l){let u={};l.forEach(c=>{var f;(f=c.annotations)==null||f.forEach(p=>{p.annotationType==="image"&&(u[p.key]=p.annotationImagePath)})}),r[s.key]=u}}let o={};for(let s of i){let l=[];for(let u of n[s])l.push((0,zt.htmlToMarkdown)(await gp(s,u,r[s],t)));o[s]=l.join(` + +`)}return o}async function bO(e,t,a){let n=app.vault.getConfig("attachmentFolderPath"),i=n==="."||n==="./",r=null;n.startsWith("./")&&(r=n.slice(2)),i?n=a||"":r&&(n=cn.default.join(a||"",r)),n=(0,zt.normalizePath)(n);let o=app.vault.getAbstractFileByPathInsensitive(n);return!o&&r&&(await app.vault.createFolder(n),o=app.vault.getAbstractFileByPathInsensitive(n)),o instanceof zt.TFolder?`${o.getParentPrefix()+e}.${t}`:`${e}.${t}`}function Wx(e,t){e.replaceSelection(Object.values(t).join(` + +`))}async function Vx(e,t){let a=Object.keys(t),n=[];for(let i of a){let r=await gO(e,i,t[i]);if(!r)break;n.push(r)}return n.map(i=>i.path)}async function gO(e,t,a){let n=(0,zt.normalizePath)(Vn(ln(`${e}/${t}.md`))),i=app.vault.getAbstractFileByPath(n);try{i?await app.vault.modify(i,a):(await Ss(n),i=await app.vault.create(n,a))}catch(r){return console.error(r),new zt.Notice(`Error creating file "${n}": ${r.message}`,1e4),null}return i}var un=require("obsidian"),_s=_e(require("path"));var xO={noWrite:"-w",imageOutputPath:"-o",imageBaseName:"-n",imageFormat:"-f",imageDPI:"-d",imageQuality:"-q",ignoreBefore:"-b",attemptOCR:"-e",ocrLang:"-l",tesseractPath:"--tesseract-path",tessDataDir:"--tess-data-dir"};async function yp(e,t,a){let n=new nt(app,"Extracting annotations...");n.open();let i=[e];Object.keys(t).forEach(r=>{let o=t[r];if(o===""||o===void 0)return"";let s=xO[r];typeof o=="boolean"?o&&i.push(s):(i.push(s),typeof o=="string"&&o.startsWith("-")?i.push(`"${o}"`):i.push(o.toString()))});try{if(!Cx(a))return new un.Notice("Error: PDF utility is not executable",1e4),"[]";let o=await er(a||_s.default.join(_t(),nn()),i);if(n.close(),o.stderr.toLowerCase().includes("password"))return new un.Notice(`Error opening ${_s.default.basename(e)}: PDF is password protected`,1e4),"[]";if(o.stderr&&!o.stderr.includes("warning"))throw new un.Notice(`Error processing PDF: ${o.stderr}`,1e4),new Error(o.stderr);return o.stdout}catch(r){if(n.close(),r.message.toLowerCase().includes("password"))return new un.Notice(`Error opening ${_s.default.basename(e)}: PDF is password protected`,1e4),"[]";if(r.message.toLowerCase().includes("type3"))return new un.Notice(`Error processing annotations: ${r.message}`,1e4),"[]";throw console.error(r),new un.Notice(`Error processing PDF: ${r.message}`,1e4),r}}async function yO(e,t,a,n,i){t.note&&(t.note=(0,Be.htmlToMarkdown)(await gp(e.key,t.note,{}))),t.dateAdded&&(t.dateAdded=(0,Be.moment)(t.dateAdded)),t.dateModified&&(t.dateModified=(0,Be.moment)(t.dateModified)),t.desktopURI=Qt("select",t.uri),t.relations=await Zx(t,e.library,a,n,i)}function wO(e){var t;e.dateAdded&&(e.dateAdded=(0,Be.moment)(e.dateAdded)),e.dateModified&&(e.dateModified=(0,Be.moment)(e.dateModified)),e.uri&&(e.itemKey=e.uri.split("/").pop(),e.desktopURI=e.select||Qt("select",e.uri),(t=e.path)!=null&&t.endsWith(".pdf")&&(e.pdfURI=Qt("open-pdf",e.uri)))}function Ux(e,t,a){e.date=(0,Be.moment)(e.date),e.attachment=t,e.source="pdf",e.imagePath&&(e.imageBaseName=Jt.default.basename(e.imagePath),e.imageExtension=Jt.default.extname(e.imagePath).slice(1),e.imageRelativePath=(0,Be.normalizePath)(Jt.default.join(a,e.imageBaseName))),e.desktopURI=Qt("open-pdf",t.uri,{page:e.pageLabel})}function Jx(e,t,a,n,i,r=!1){var l;let o=e.annotationPosition.rects[0],s={date:(0,Be.moment)(e.dateModified),attachment:t,page:e.annotationPosition.pageIndex+1,pageLabel:e.annotationPageLabel,id:e.key,type:e.annotationType,x:o[0],y:o[1],color:e.annotationColor,colorCategory:Px(e.annotationColor),desktopURI:Qt("open-pdf",t.uri,{page:e.annotationPageLabel,annotation:e.key}),source:"zotero"};if(e.annotationText&&(s.annotatedText=e.annotationText),e.annotationComment&&(s.comment=e.annotationComment),e.annotationImagePath){let u=Jt.default.parse(e.annotationImagePath);s.imageBaseName=`${i}-${s.page}-x${Math.round(s.x)}-y${Math.round(s.y)}${u.ext}`,s.imageRelativePath=(0,Be.normalizePath)(Jt.default.join(n,s.imageBaseName)),s.imageExtension=u.ext.slice(1);let c=Jt.default.join(a,s.imageBaseName);if(r){(0,Ra.existsSync)(a)||(0,Ra.mkdirSync)(a,{recursive:!0});let f=Jt.default.join(u.dir,`${e.key}${u.ext}`);try{if(!(0,Ra.existsSync)(f)){let p=f;if(f=e.annotationImagePath,!(0,Ra.existsSync)(f))throw new Error("Cannot find annotation image: "+p)}(0,Ra.copyFileSync)(f,c)}catch(p){new Be.Notice("Error: unable to copy annotation image from Zotero into your vault",7e3),console.error(p)}}s.imagePath=c}return(l=e.tags)!=null&&l.length&&(s.tags=e.tags,s.allTags=e.tags.map(u=>u.tag).join(", "),s.hashTags=e.tags.map(u=>`#${u.tag.replace(/\s+/g,"-")}`).join(", ")),s}function Fs(e){let t=[],a=/^\+\s*/;return e.forEach(n=>{if(typeof n.comment=="string"&&a.test(n.comment)){n.comment=n.comment.replace(a,"");let i=t[t.length-1];if(i){i.annotatedText=i.annotatedText?i.annotatedText+"..."+n.annotatedText:n.annotatedText,i.comment=i.comment?i.comment+"..."+n.comment:n.comment;return}}t.push(n)}),t}async function Zx(e,t,a,n,i){var o;if(e.relations&&!Array.isArray(e.relations)){let s=[];for(let l of Object.values(e.relations))Array.isArray(l)&&s.push(...l);e.relations=s}if(!((o=e.relations)!=null&&o.length))return[];let r=await Nx(t,e.relations,n);for(let s of r)rn(s)&&await Ps(s,a,n,i,!0);return r}async function Ps(e,t,a,n,i){let r=rn(e);if(e.importDate=t,e.exportDate=t,e.desktopURI=e.select||Qt("select",e.uri,e.itemKey),e.accessDate&&(e.accessDate=(0,Be.moment)(e.accessDate)),e.dateAdded&&(e.dateAdded=(0,Be.moment)(e.dateAdded)),e.dateModified&&(e.dateModified=(0,Be.moment)(e.dateModified)),r){e.citekey||(e.citekey=r.key),e.citationKey||(e.citationKey=r.key);try{e.date=await jx(r,a)}catch(o){}try{e.collections=await Rx(r,a)}catch(o){}try{e.bibliography=await Bx(r,a,n)}catch(o){e.bibliography="Error generating bibliography"}}if(e.notes)for(let o of e.notes)await yO(r,o,t,a,n);if(e.attachments)for(let o of e.attachments)wO(o);i||(e.relations=await Zx(e,e.libraryID,t,a,n))}function qx(e,t){let a=e.message;try{if(a){let n=a.match(/\[Line (\d+), Column (\d+)]/);if(n){let r=t.split(/\n/g)[Number(n[1])-1],o=" ".repeat(Number(n[2])-1)+"^";return`${a} + +${r} +${o}`}}}catch(n){}return a}function Ts(e,t,a){new Be.Notice(createFragment(n=>{n.createSpan({text:`Error parsing template "${t}": `}),n.createEl("code",{text:qx(e,a)})}),1e4)}function ks(e,t,a){return new Error(`Error parsing template "${t}": ${qx(e,a)}`)}async function wp(e,t,a,n){let{template:i,headerTemplate:r,annotationTemplate:o,footerTemplate:s}=await Dx(e);if(!i&&!r&&!o&&!s)throw new Error(`No templates found for export ${e.exportFormat.name}`);let l="",u=!1;if(i){try{l=await bt(e.exportFormat.templatePath,i,t),u=Kt.hasPersist(l)}catch(m){if(n)throw ks(m,e.exportFormat.templatePath,i);return Ts(m,e.exportFormat.templatePath,i),!1}return u?vp(l):l}let c="",f="",p="";try{c=r?await bt(e.exportFormat.headerTemplatePath,r,t):""}catch(m){if(n)throw ks(m,e.exportFormat.headerTemplatePath,r);return Ts(m,e.exportFormat.headerTemplatePath,r),!1}try{f=o?await bt(e.exportFormat.annotationTemplatePath,o,t):""}catch(m){if(n)throw ks(m,e.exportFormat.annotationTemplatePath,o);return Ts(m,e.exportFormat.annotationTemplatePath,o),!1}try{p=s?await bt(e.exportFormat.footerTemplatePath,s,t):""}catch(m){if(n)throw ks(m,e.exportFormat.footerTemplatePath,s);return Ts(m,e.exportFormat.footerTemplatePath,s),!1}let b=[];r&&c.trim()&&b.push(c);let d=o&&(a+f).trim();return d&&b.push(Hx(a+f)),s&&p.trim()&&b.push(p),d?vp(b.join("")):b.join("")}function EO({exportFormat:e}){return e.templatePath||e.headerTemplatePath||e.annotationTemplatePath||e.footerTemplatePath||""}async function Xx(e,t){let a={};try{let n=rn(e);n&&(a=(await Cs(n,t)||[]).reduce((r,o)=>(o!=null&&o.path&&(r[o.path]=o),r),{}))}catch(n){console.error(n)}return a}async function $x(e,t,a){var i;let n=t.attachments.find(r=>{var o,s;return((o=r.path)==null?void 0:o.endsWith(".pdf"))&&((s=r.annotations)==null?void 0:s.length)});return t.annotations=(i=n==null?void 0:n.annotations)!=null?i:[],t.lastImportDate=a,t.lastExportDate=a,t.isFirstImport=a.valueOf()===0,await ws(e,t)}async function Ep(e,t){var h,v;let a=(0,Be.moment)(),{database:n,exportFormat:i,settings:r}=e,o=EO(e),s=Hn(),l=t||await on(n);if(!l.length)return[];let u=l[0].library,c;try{c=await nr(l,n,u)}catch(x){return[]}let f=[];for(let x=0,E=c.length;x{if(!b.has(x)){let g=app.vault.getAbstractFileByPath(x),w=g?await app.vault.cachedRead(g):"",C=g?Gx(w):"",y=g?zx(w):(0,Be.moment)(0);b.set(x,{item:E,file:g,fileContent:w,lastImportDate:y,existingAnnotations:C})}},m=async x=>(0,Be.normalizePath)(Vn(ln(await bt(o,i.outputPathTemplate,x))));for(let x=0,E=c.length;x{var M;(M=N.annotationPosition.rects)!=null&&M.length&&T.push(Jx(N,A,j,B,L,!0))})),T.length&&r.shouldConcat&&(T=Fs(T)),P&&s)try{let N=await yp(_,{imageBaseName:L,imageDPI:r.pdfExportImageDPI,imageFormat:r.pdfExportImageFormat,imageOutputPath:j,imageQuality:r.pdfExportImageQuality,attemptOCR:r.pdfExportImageOCR,ocrLang:r.pdfExportImageOCRLang,tesseractPath:r.pdfExportImageTesseractPath,tessDataDir:r.pdfExportImageTessDataDir},r.exeOverridePath),M=JSON.parse(N);for(let D of M)Ux(D,A,B);r.shouldConcat&&M.length&&(M=Fs(M)),T.push(...M)}catch(N){}T.length&&(A.annotations=T),await d(k,g)}}for(let[x,E]of b.entries())try{let{existingAnnotations:g,file:w,fileContent:C,item:y,lastImportDate:S}=E,A=await $x(x,y,S),_=await wp(e,Kt.prepareTemplateData(A,C),g);if(!_)continue;w?await app.vault.modify(w,_):(await Ss(x),await app.vault.create(x,_)),f.push(x)}catch(g){new Be.Notice(`Import failed for ${x}, check developer console for details`,7e3),console.error(g)}return f}async function Yx(e){let t=(0,Be.moment)(),{database:a,format:n}=e,i=await on(a);if(!i.length)return null;let r=i[0].library,o;try{o=await nr(i,a,r)}catch(l){return null}if(o.length===0)return null;let s=[];for(let l=0,u=o.length;l{var d;return!!((d=b.path)!=null&&d.endsWith(".pdf"))})||c.length?c[0]:null,...o[l]};s.push(await bt("",n.template,p))}return s.join(" ")}function SO(e){let t=e.exportFormats.find(n=>!!n.cslStyle);if(t)return t.cslStyle;let a=e.citeFormats.find(n=>!!n.cslStyle);if(a)return a.cslStyle}async function Kx(e){var u,c;let t={database:e.database,port:e.port},a=await on(t),n=Hn();if(!a.length)return null;let i=a[0].library,r;try{r=await nr(a,t,i)}catch(f){return null}let o=(0,Be.moment)(),s=SO(e);for(let f=0,p=r.length;f{var C;(C=w.annotationPosition.rects)!=null&&C.length&&g.push(Jx(w,d[h],Jt.default.join(l,"output_path"),"base_name","output_path"))}),e.shouldConcat&&g.length&&(g=Fs(g)),n)try{let w=await yp(E,{noWrite:!0,imageBaseName:"base_name",imageDPI:e.pdfExportImageDPI,imageFormat:e.pdfExportImageFormat,imageOutputPath:Jt.default.join(l,"output_path"),imageQuality:e.pdfExportImageQuality,attemptOCR:e.pdfExportImageOCR,ocrLang:e.pdfExportImageOCRLang,tesseractPath:e.pdfExportImageTesseractPath,tessDataDir:e.pdfExportImageTessDataDir},e.exeOverridePath),C=JSON.parse(w);for(let y of C)Ux(y,d[h],"output_path");e.shouldConcat&&C.length&&(C=Fs(C)),g.push(...C)}catch(w){return!1}g.length&&(x.annotations=g)}}return await Promise.all(r.map(async f=>{await $x("",f,(0,Be.moment)(0))})),r}var Un="zdc-debug",CO={scheme:"Tomorrow",author:"Chris Kempson (http://chriskempson.com)",base00:"#ffffff",base01:"#e0e0e0",base02:"#d6d6d6",base03:"#8e908c",base04:"#969896",base05:"#4d4d4c",base06:"#282a2e",base07:"#1d1f21",base08:"#c82829",base09:"#f5871f",base0A:"#eab700",base0B:"#718c00",base0C:"#3e999f",base0D:"#4271ae",base0E:"#8959a8",base0F:"#a3685a"},AO={scheme:"Tomorrow Night",author:"Chris Kempson (http://chriskempson.com)",base00:"#1d1f21",base01:"#282a2e",base02:"#373b41",base03:"#969896",base04:"#b4b7b4",base05:"#c5c8c6",base06:"#e0e0e0",base07:"#ffffff",base08:"#cc6666",base09:"#de935f",base0A:"#f0c674",base0B:"#b5bd68",base0C:"#8abeb7",base0D:"#81a2be",base0E:"#b294bb",base0F:"#a3685a"};function IO({plugin:e,formatIndex:t,templateData:a}){let[n,i]=I.useState(null),[r,o]=I.useState(null),[s,l]=I.useState(0);return I.useEffect(()=>{let u=e.settings.exportFormats[t],c=u.templatePath?e.app.vault.getAbstractFileByPath(bp(u.templatePath)):null,f=b=>{b&&b===c&&l(Date.now())},p=()=>{l(Date.now())};return e.emitter.on("fileUpdated",f),e.emitter.on("settingsUpdated",p),()=>{e.emitter.off("fileUpdated",f),e.emitter.off("settingsUpdated",p)}},[t]),I.useEffect(()=>{if(i(null),t===null)return;let u={settings:e.settings,database:{database:e.settings.database,port:e.settings.port},exportFormat:e.settings.exportFormats[t]};(async()=>{try{let f="",p=(0,Ba.moment)(0),b=await wp(u,Kt.prepareTemplateData({...a,lastImportDate:p,lastExportDate:p},f),"",!0);o(b||null)}catch(f){i(f.message)}})()},[t,s,a]),!r&&!n?null:I.createElement("div",{className:`zt-json-viewer__preview${n?" error":""}`},I.createElement("pre",null,I.createElement("code",null,n||r)))}function _O({plugin:e}){let[t,a]=I.useState(null),[n,i]=I.useState(null),[r,o]=I.useState(null),s=I.useCallback(()=>{Kx(e.settings).then(l=>{!l||l.length===0?a("No data retrieved"):(a(null),i(l[0]))})},[]);return I.createElement("div",{className:"zt-json-viewer"},I.createElement("div",{className:"zt-json-viewer__btns"},I.createElement("div",null,I.createElement("button",{onClick:s},"Prompt For Selection")),I.createElement("div",null,I.createElement("select",{className:"dropdown",onChange:l=>{l.target.value?o(Number(l.target.value)):o(null)}},I.createElement("option",{value:""},"Preview Import Format"),e.settings.exportFormats.map((l,u)=>I.createElement("option",{key:u,value:u},l.name))))),t?I.createElement("div",null,t):I.createElement("div",null,n&&I.createElement(I.Fragment,null,r!==null&&I.createElement(IO,{plugin:e,formatIndex:r,templateData:n}),I.createElement("div",{className:"zt-json-viewer__data"},I.createElement(Sg,{data:n,sortObjectKeys:(l,u)=>l.localeCompare(u),isCustomNode:l=>l instanceof Ba.moment,valueRenderer:RO,labelRenderer:TO,theme:document.body.hasClass("theme-dark")?AO:CO,invertTheme:!1})))))}var Os=class extends Ba.ItemView{constructor(a,n){super(n);this.plugin=a,this.mountJsonViewer()}getViewType(){return Un}getIcon(){return"gear"}getDisplayText(){return"Zotero Data Explorer"}mountJsonViewer(){I.unmountComponentAtNode(this.contentEl),I.render(I.createElement(_O,{plugin:this.plugin}),this.contentEl)}unmountJsonViewer(){I.unmountComponentAtNode(this.contentEl)}async onClose(){this.unmountJsonViewer()}},TO=(e,t)=>{let a=e.length===1,n=e.slice(0,-1),i=kO(n);return I.createElement("span",{onContextMenu:a?void 0:o=>{let s=new Ba.Menu().addItem(l=>l.setIcon("lucide-copy").setTitle("Copy template path").onClick(()=>{navigator.clipboard.writeText(`{{${i}}}`)}));t==="Array"&&s.addItem(l=>l.setIcon("lucide-copy").setTitle("Copy template for loop").onClick(()=>{navigator.clipboard.writeText(`{% for item in ${i} %} +{% item %} +{% endfor %}`)})),o.preventDefault(),s.showAtMouseEvent(o)}},a?"Template Data":e[0])},kO=e=>e.map(PO).reverse().join(""),FO=/^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u,PO=(e,t,a)=>typeof e=="number"?`[${e}]`:FO.test(e)?t===a.length-1?`${e}`:`.${e}`:`[${JSON.stringify(e)}]`,OO=/^#(?:[\dA-F]{3}){1,2}$|^#(?:[\dA-F]{4}){1,2}$/i,RO=(e,t)=>t instanceof Ba.moment?I.createElement(I.Fragment,null,"\u{1F4C5} ",t.format("l LTS")):typeof t=="string"&&OO.test(t)?I.createElement(I.Fragment,null,I.createElement("span",{style:{backgroundColor:t},className:"zt-color-chip"}),t):typeof t=="string"&&t.length>800?t.slice(0,800)+"...":e;var ZA=_e(UA()),Zl=require("obsidian"),Sf=_e(require("os"));var JA=require("obsidian");function ca({name:e,className:t}){return I.createElement("span",{"data-icon":e,className:t,ref:a=>{a&&(0,JA.setIcon)(a,e)}})}function s9({name:e,description:t}){return I.createElement("div",{className:"setting-item-info"},I.createElement("div",{className:"setting-item-name"},e),I.createElement("div",{className:"setting-item-description"},t))}function He({name:e,description:t,children:a,isHeading:n}){return I.createElement("div",{className:`zt-setting-item setting-item${n?" setting-item-heading":""}`},I.createElement(s9,{name:e,description:t}),I.createElement("div",{className:"setting-item-control"},a))}var Va="1.0.15",Cf=1,l9={darwin:{x64:`https://github.com/mgmeyers/pdfannots2json/releases/download/${Va}/pdfannots2json.Mac.Intel.tar.gz`,arm64:`https://github.com/mgmeyers/pdfannots2json/releases/download/${Va}/pdfannots2json.Mac.M1.tar.gz`},linux:{x64:`https://github.com/mgmeyers/pdfannots2json/releases/download/${Va}/pdfannots2json.Linux.x64.tar.gz`},win32:{x64:`https://github.com/mgmeyers/pdfannots2json/releases/download/${Va}/pdfannots2json.Windows.x64.zip`}};function c9(){let e=l9[Sf.default.platform()];if(!e)return null;let t=e[Sf.default.arch()];return t||null}async function Af(){let e=c9();if(console.log("Obsidian Zotero Integration: Downloading "+e),!e)return!1;try{xx()&&Ex(),gx()&&wx(),Hn()&&yx(),await(0,ZA.default)(e,_t(),{extract:!0}),vx()}catch(t){console.error(t),new Zl.Notice("Error downloading PDF utility. Check the console for more details.",1e4)}return!0}function qA(e){let[t,a]=I.useState(null),[n,i]=I.useState(!1),[r,o]=I.useState(!1),[s,l]=I.useState(e.settings.exeOverridePath),u=I.useMemo(()=>(0,Zl.debounce)(m=>{l(m),e.updateSetting("exeOverridePath",m)},150,!0),[]);I.useEffect(()=>{let m=Hn(s);o(m),m&&Sx(s).then(h=>{a(`v${Va}`===h)}).catch(()=>{})},[s]);let c=I.useCallback(()=>{i(!0),Af().then(m=>{i(!1),m&&(a(!0),o(!0))})},[]),f=["Extracting data from PDFs requires an external tool.","This plugin will still work without it, but annotations will not be included in exports."],b=I.createElement(He,{name:"PDF Utility Path Override",description:I.createElement(I.Fragment,null,"Override the path to the PDF utility. Specify an absolute path to the pdfannots2json executable."," ",I.createElement("a",{href:"https://github.com/mgmeyers/pdfannots2json/releases",target:"_blank",rel:"noreferrer"},"Download the executable here.")," ","You may need to provide Obsidian the appropriate OS permissions to access the executable.")},I.createElement("input",{onChange:m=>u(m.target.value),type:"text",spellCheck:!1,value:s}),I.createElement("div",{className:"clickable-icon setting-editor-extra-setting-button","aria-label":"Select the pdfannots2json executable",onClick:()=>{let m=require("electron").remote.dialog.showOpenDialogSync({properties:["openFile"]});m&&m.length&&u(m[0])}},I.createElement(ca,{name:"lucide-folder-open"})));if(r&&t)return I.createElement(I.Fragment,null,I.createElement(He,{name:"PDF Utility",description:f.join(" ")},I.createElement("div",{className:"zt-asset-success"},I.createElement("div",{className:"zt-asset-success__icon"},I.createElement(ca,{name:"check-small"})),I.createElement("div",{className:"zt-asset-success__message"},"PDF utility is up to date."))),b);let d=I.createElement(I.Fragment,null,f.join(" ")," ",r&&I.createElement("strong",{className:"mod-warning"},"The PDF extraction tool requires updating. Please re-download."),!r&&!s&&I.createElement("strong",null,"Click the button to download."));return I.createElement(I.Fragment,null,I.createElement(He,{name:"PDF Utility",description:d},!s&&I.createElement("button",{disabled:n,onClick:c},n?"Downloading...":"Download")),b)}var Ja=require("obsidian");var V_=_e(r2());function o2(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),a.push.apply(a,n)}return a}function ae(e){for(var t=1;t0?$e(wi,--wt):0,xi--,Qe===10&&(xi=1,Kl--),Qe}function Et(){return Qe=wt2||yi(Qe)>3?"":" "}function g2(e,t){for(;--t&&Et()&&!(Qe<48||Qe>102||Qe>57&&Qe<65||Qe>70&&Qe<97););return Si(e,Dr()+(t<6&&Ht()==32&&Et()==32))}function Mf(e){for(;Et();)switch(Qe){case e:return wt;case 34:case 39:e!==34&&e!==39&&Mf(Qe);break;case 40:e===41&&Mf(e);break;case 92:Et();break}return wt}function x2(e,t){for(;Et()&&e+Qe!==47+10;)if(e+Qe===42+42&&Ht()===47)break;return"/*"+Si(t,wt-1)+"*"+xn(e===47?e:Et())}function y2(e){for(;!yi(Ht());)Et();return Si(e,wt)}function S2(e){return ec(tc("",null,null,null,[""],e=Ql(e),0,[0],e))}function tc(e,t,a,n,i,r,o,s,l){for(var u=0,c=0,f=o,p=0,b=0,d=0,m=1,h=1,v=1,x=0,E="",g=i,w=r,C=n,y=E;h;)switch(d=x,x=Et()){case 40:if(d!=108&&$e(y,f-1)==58){Lr(y+=ye(Ci(x),"&","&\f"),"&\f")!=-1&&(v=-1);break}case 34:case 39:case 91:y+=Ci(x);break;case 9:case 10:case 13:case 32:y+=b2(d);break;case 92:y+=g2(Dr()-1,7);continue;case 47:switch(Ht()){case 42:case 47:gi(v9(x2(Et(),Dr()),t,a),l);break;default:y+="/"}break;case 123*m:s[u++]=yt(y)*v;case 125*m:case 59:case 0:switch(x){case 0:case 125:h=0;case 59+c:v==-1&&(y=ye(y,/\f/g,"")),b>0&&yt(y)-f&&gi(b>32?E2(y+";",n,a,f-1):E2(ye(y," ","")+";",n,a,f-2),l);break;case 59:y+=";";default:if(gi(C=w2(y,t,a,u,c,i,s,E,g=[],w=[],f),r),x===123)if(c===0)tc(y,t,C,C,g,r,f,s,w);else switch(p===99&&$e(y,3)===110?100:p){case 100:case 108:case 109:case 115:tc(e,C,C,n&&gi(w2(e,C,C,0,0,i,s,E,i,g=[],f),w),i,w,f,s,n?g:w);break;default:tc(y,C,C,C,[""],w,0,s,w)}}u=c=b=0,m=v=1,E=y="",f=o;break;case 58:f=1+yt(y),b=d;default:if(m<1){if(x==123)--m;else if(x==125&&m++==0&&v2()==125)continue}switch(y+=xn(x),x*m){case 38:v=c>0?1:(y+="\f",-1);break;case 44:s[u++]=(yt(y)-1)*v,v=1;break;case 64:Ht()===45&&(y+=Ci(Et())),p=Ht(),c=f=yt(E=y+=y2(Dr())),x++;break;case 45:d===45&&yt(y)==2&&(m=0)}}return r}function w2(e,t,a,n,i,r,o,s,l,u,c){for(var f=i-1,p=i===0?r:[""],b=bi(p),d=0,m=0,h=0;d0?p[v]+" "+x:ye(x,/&\f/g,p[v])))&&(l[h++]=E);return Mr(e,t,a,i===0?mi:s,l,u,c)}function v9(e,t,a){return Mr(e,t,a,Xl,xn(h2()),Ua(e,2,-2),0)}function E2(e,t,a,n){return Mr(e,t,a,hi,Ua(e,0,n),Ua(e,n+1,-1),n)}function yn(e,t){for(var a="",n=bi(e),i=0;i6)switch($e(e,t+1)){case 109:if($e(e,t+4)!==45)break;case 102:return ye(e,/(.+:)(.+)-([^]+)/,"$1"+Se+"$2-$3$1"+jr+($e(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~Lr(e,"stretch")?k2(ye(e,"stretch","fill-available"),t)+e:e}break;case 4949:if($e(e,t+1)!==115)break;case 6444:switch($e(e,yt(e)-3-(~Lr(e,"!important")&&10))){case 107:return ye(e,":",":"+Se)+e;case 101:return ye(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Se+($e(e,14)===45?"inline-":"")+"box$3$1"+Se+"$2$3$1"+dt+"$2box$3")+e}break;case 5936:switch($e(e,t+11)){case 114:return Se+e+dt+ye(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Se+e+dt+ye(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Se+e+dt+ye(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return Se+e+dt+e+e}return e}var E9=function(t,a,n,i){if(t.length>-1&&!t.return)switch(t.type){case hi:t.return=k2(t.value,t.length);break;case $l:return yn([Ei(t,{value:ye(t.value,"@","@"+Se)})],i);case mi:if(t.length)return Lf(t.props,function(r){switch(jf(r,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return yn([Ei(t,{props:[ye(r,/:(read-\w+)/,":"+jr+"$1")]})],i);case"::placeholder":return yn([Ei(t,{props:[ye(r,/:(plac\w+)/,":"+Se+"input-$1")]}),Ei(t,{props:[ye(r,/:(plac\w+)/,":"+jr+"$1")]}),Ei(t,{props:[ye(r,/:(plac\w+)/,dt+"input-$1")]})],i)}return""})}},S9=[E9],Df=function(t){var a=t.key;if(a==="css"){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,function(m){var h=m.getAttribute("data-emotion");h.indexOf(" ")!==-1&&(document.head.appendChild(m),m.setAttribute("data-s",""))})}var i=t.stylisPlugins||S9,r={},o,s=[];o=t.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+a+' "]'),function(m){for(var h=m.getAttribute("data-emotion").split(" "),v=1;v=4;++n,i-=4)a=e.charCodeAt(n)&255|(e.charCodeAt(++n)&255)<<8|(e.charCodeAt(++n)&255)<<16|(e.charCodeAt(++n)&255)<<24,a=(a&65535)*1540483477+((a>>>16)*59797<<16),a^=a>>>24,t=(a&65535)*1540483477+((a>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(i){case 3:t^=(e.charCodeAt(n+2)&255)<<16;case 2:t^=(e.charCodeAt(n+1)&255)<<8;case 1:t^=e.charCodeAt(n)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var H2={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var L9=/[A-Z]|^ms/g,M9=/_EMO_([^_]+?)_([^]*?)_EMO_/g,J2=function(t){return t.charCodeAt(1)===45},W2=function(t){return t!=null&&typeof t!="boolean"},Zf=_2(function(e){return J2(e)?e:e.replace(L9,"-$&").toLowerCase()}),V2=function(t,a){switch(t){case"animation":case"animationName":if(typeof a=="string")return a.replace(M9,function(n,i,r){return ua={name:i,styles:r,next:ua},i})}return H2[t]!==1&&!J2(t)&&typeof a=="number"&&a!==0?a+"px":a};function zr(e,t,a){if(a==null)return"";if(a.__emotion_styles!==void 0)return a;switch(typeof a){case"boolean":return"";case"object":{if(a.anim===1)return ua={name:a.name,styles:a.styles,next:ua},a.name;if(a.styles!==void 0){var n=a.next;if(n!==void 0)for(;n!==void 0;)ua={name:n.name,styles:n.styles,next:ua},n=n.next;var i=a.styles+";";return i}return D9(e,t,a)}case"function":{if(e!==void 0){var r=ua,o=a(e);return ua=r,zr(e,t,o)}break}case"string":if(!1)var s,l;break}if(t==null)return a;var u=t[a];return u!==void 0?u:a}function D9(e,t,a){var n="";if(Array.isArray(a))for(var i=0;i=0)&&(a[i]=e[i]);return a}function Wt(e,t){if(e==null)return{};var a=Yf(e,t),n,i;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function Kf(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function K2(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}var V9=["top","right","bottom","left"],dJ=V9.reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);function pa(e){var t;return((t=e.ownerDocument)==null?void 0:t.defaultView)||window}function aI(e){return pa(e).getComputedStyle(e)}function nI(e){return e instanceof pa(e).Node}function iI(e){return nI(e)?(e.nodeName||"").toLowerCase():"#document"}function am(e){return e instanceof pa(e).HTMLElement}function em(e){return e instanceof pa(e).Element}function Q2(e){return typeof ShadowRoot!="undefined"&&(e instanceof pa(e).ShadowRoot||e instanceof ShadowRoot)}function rI(e){let{overflow:t,overflowX:a,overflowY:n,display:i}=aI(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+a)&&!["inline","contents"].includes(i)}function U9(){return!(typeof CSS=="undefined"||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function J9(e){return["html","body","#document"].includes(iI(e))}var Z9=Math.min,q9=Math.max,bc=Math.round,vc=Math.floor,nm=e=>({x:e,y:e});function X9(e){let t=aI(e),a=parseFloat(t.width)||0,n=parseFloat(t.height)||0,i=am(e),r=i?e.offsetWidth:a,o=i?e.offsetHeight:n,s=bc(a)!==r||bc(n)!==o;return s&&(a=r,n=o),{width:a,height:n,$:s}}function im(e){return em(e)?e:e.contextElement}function Qf(e){let t=im(e);if(!am(t))return nm(1);let a=t.getBoundingClientRect(),{width:n,height:i,$:r}=X9(t),o=(r?bc(a.width):a.width)/n,s=(r?bc(a.height):a.height)/i;return o&&Number.isFinite(o)||(o=1),s&&Number.isFinite(s)||(s=1),{x:o,y:s}}var eI=nm(0);function $9(e,t,a){var n,i;if(t===void 0&&(t=!0),!U9())return eI;let r=e?pa(e):window;return!a||t&&a!==r?eI:{x:((n=r.visualViewport)==null?void 0:n.offsetLeft)||0,y:((i=r.visualViewport)==null?void 0:i.offsetTop)||0}}function tI(e,t,a,n){t===void 0&&(t=!1),a===void 0&&(a=!1);let i=e.getBoundingClientRect(),r=im(e),o=nm(1);t&&(n?em(n)&&(o=Qf(n)):o=Qf(e));let s=$9(r,a,n),l=(i.left+s.x)/o.x,u=(i.top+s.y)/o.y,c=i.width/o.x,f=i.height/o.y;if(r){let p=pa(r),b=n&&em(n)?pa(n):n,d=p.frameElement;for(;d&&n&&b!==p;){let m=Qf(d),h=d.getBoundingClientRect(),v=getComputedStyle(d),x=h.left+(d.clientLeft+parseFloat(v.paddingLeft))*m.x,E=h.top+(d.clientTop+parseFloat(v.paddingTop))*m.y;l*=m.x,u*=m.y,c*=m.x,f*=m.y,l+=x,u+=E,d=pa(d).frameElement}}return K2({width:c,height:f,x:l,y:u})}function oI(e){return((nI(e)?e.ownerDocument:e.document)||window.document).documentElement}function Y9(e){if(iI(e)==="html")return e;let t=e.assignedSlot||e.parentNode||Q2(e)&&e.host||oI(e);return Q2(t)?t.host:t}function sI(e){let t=Y9(e);return J9(t)?e.ownerDocument?e.ownerDocument.body:e.body:am(t)&&rI(t)?t:sI(t)}function tm(e,t){var a;t===void 0&&(t=[]);let n=sI(e),i=n===((a=e.ownerDocument)==null?void 0:a.body),r=pa(n);return i?t.concat(r,r.visualViewport||[],rI(n)?n:[]):t.concat(n,tm(n))}function lI(e,t,a,n){n===void 0&&(n={});let{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=n,u=im(e),c=i||r?[...u?tm(u):[],...tm(t)]:[];c.forEach(h=>{i&&h.addEventListener("scroll",a,{passive:!0}),r&&h.addEventListener("resize",a)});let f=u&&s?function(h,v){let x,E=null,g=oI(h);function w(){clearTimeout(x),E&&E.disconnect(),E=null}return function C(y,S){y===void 0&&(y=!1),S===void 0&&(S=1),w();let{left:A,top:_,width:P,height:F}=h.getBoundingClientRect();if(y||v(),!P||!F)return;let B={rootMargin:-vc(_)+"px "+-vc(g.clientWidth-(A+P))+"px "+-vc(g.clientHeight-(_+F))+"px "+-vc(A)+"px",threshold:q9(0,Z9(1,S))||1},j=!0;function L(k){let T=k[0].intersectionRatio;if(T!==S){if(!j)return C();T?C(!1,T):x=setTimeout(()=>{C(!1,1e-7)},100)}j=!1}try{E=new IntersectionObserver(L,{...B,root:g.ownerDocument})}catch(k){E=new IntersectionObserver(L,B)}E.observe(h)}(!0),w}(u,a):null,p,b=-1,d=null;o&&(d=new ResizeObserver(h=>{let[v]=h;v&&v.target===u&&d&&(d.unobserve(t),cancelAnimationFrame(b),b=requestAnimationFrame(()=>{d&&d.observe(t)})),a()}),u&&!l&&d.observe(u),d.observe(t));let m=l?tI(e):null;return l&&function h(){let v=tI(e);!m||v.x===m.x&&v.y===m.y&&v.width===m.width&&v.height===m.height||a(),m=v,p=requestAnimationFrame(h)}(),a(),()=>{c.forEach(h=>{i&&h.removeEventListener("scroll",a),r&&h.removeEventListener("resize",a)}),f&&f(),d&&d.disconnect(),d=null,l&&cancelAnimationFrame(p)}}var K9=ka,gc=K9;var Q9=["className","clearValue","cx","getStyles","getClassNames","getValue","hasValue","isMulti","isRtl","options","selectOption","selectProps","setValue","theme"],Hr=function(){};function eL(e,t){return t?t[0]==="-"?e+t:e+"__"+t:e}function uI(e,t){for(var a=arguments.length,n=new Array(a>2?a-2:0),i=2;i-1}function tL(e){return Wr(e)?window.innerHeight:e.clientHeight}function fI(e){return Wr(e)?window.pageYOffset:e.scrollTop}function wc(e,t){if(Wr(e)){window.scrollTo(0,t);return}e.scrollTop=t}function aL(e){var t=getComputedStyle(e),a=t.position==="absolute",n=/(auto|scroll)/;if(t.position==="fixed")return document.documentElement;for(var i=e;i=i.parentElement;)if(t=getComputedStyle(i),!(a&&t.position==="static")&&n.test(t.overflow+t.overflowY+t.overflowX))return i;return document.documentElement}function nL(e,t,a,n){return a*((e=e/n-1)*e*e+1)+t}function xc(e,t){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:200,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Hr,i=fI(e),r=t-i,o=10,s=0;function l(){s+=o;var u=nL(s,i,r,a);wc(e,u),sa.bottom?wc(e,Math.min(t.offsetTop+t.clientHeight-e.offsetHeight+i,e.scrollHeight)):n.top-i1?a-1:0),i=1;i=d)return{placement:"bottom",maxHeight:t};if(A>=d&&!o)return r&&xc(l,_,F),{placement:"bottom",maxHeight:t};if(!o&&A>=n||o&&y>=n){r&&xc(l,_,F);var B=o?y-g:A-g;return{placement:"bottom",maxHeight:B}}if(i==="auto"||o){var j=t,L=o?C:S;return L>=n&&(j=Math.min(L-g-s,t)),{placement:"top",maxHeight:j}}if(i==="bottom")return r&&wc(l,_),{placement:"bottom",maxHeight:t};break;case"top":if(C>=d)return{placement:"top",maxHeight:t};if(S>=d&&!o)return r&&xc(l,P,F),{placement:"top",maxHeight:t};if(!o&&S>=n||o&&C>=n){var k=t;return(!o&&S>=n||o&&C>=n)&&(k=o?C-w:S-w),r&&xc(l,P,F),{placement:"top",maxHeight:k}}return{placement:"bottom",maxHeight:t};default:throw new Error('Invalid placement provided "'.concat(i,'".'))}return u}function lL(e){var t={bottom:"top",top:"bottom"};return e?t[e]:"bottom"}var xI=function(t){return t==="auto"?"bottom":t},yI=function(t,a){var n,i=t.placement,r=t.theme,o=r.borderRadius,s=r.spacing,l=r.colors;return ae((n={label:"menu"},jt(n,lL(i),"100%"),jt(n,"position","absolute"),jt(n,"width","100%"),jt(n,"zIndex",1),n),a?{}:{backgroundColor:l.neutral0,borderRadius:o,boxShadow:"0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)",marginBottom:s.menuGutter,marginTop:s.menuGutter})},wI=_a(null),EI=function(t){var a=t.children,n=t.minMenuHeight,i=t.maxMenuHeight,r=t.menuPlacement,o=t.menuPosition,s=t.menuShouldScrollIntoView,l=t.theme,u=Yt(wI)||{},c=u.setPortalPlacement,f=ot(null),p=Re(i),b=Le(p,2),d=b[0],m=b[1],h=Re(null),v=Le(h,2),x=v[0],E=v[1],g=l.spacing.controlHeight;return gc(function(){var w=f.current;if(w){var C=o==="fixed",y=s&&!C,S=sL({maxHeight:i,menuEl:w,minHeight:n,placement:r,shouldScroll:y,isFixedPosition:C,controlHeight:g});m(S.maxHeight),E(S.placement),c==null||c(S.placement)}},[i,r,o,s,n,c,g]),a({ref:f,placerProps:ae(ae({},t),{},{placement:x||xI(r),maxHeight:d})})},cL=function(t){var a=t.children,n=t.innerRef,i=t.innerProps;return re("div",W({},Ze(t,"menu",{menu:!0}),{ref:n},i),a)},uL=cL,SI=function(t,a){var n=t.maxHeight,i=t.theme.spacing.baseUnit;return ae({maxHeight:n,overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},a?{}:{paddingBottom:i,paddingTop:i})},pL=function(t){var a=t.children,n=t.innerProps,i=t.innerRef,r=t.isMulti;return re("div",W({},Ze(t,"menuList",{"menu-list":!0,"menu-list--is-multi":r}),{ref:i},n),a)},CI=function(t,a){var n=t.theme,i=n.spacing.baseUnit,r=n.colors;return ae({textAlign:"center"},a?{}:{color:r.neutral40,padding:"".concat(i*2,"px ").concat(i*3,"px")})},AI=CI,II=CI,_I=function(t){var a=t.children,n=t.innerProps;return re("div",W({},Ze(t,"noOptionsMessage",{"menu-notice":!0,"menu-notice--no-options":!0}),n),a)};_I.defaultProps={children:"No options"};var TI=function(t){var a=t.children,n=t.innerProps;return re("div",W({},Ze(t,"loadingMessage",{"menu-notice":!0,"menu-notice--loading":!0}),n),a)};TI.defaultProps={children:"Loading..."};var kI=function(t){var a=t.rect,n=t.offset,i=t.position;return{left:a.left,position:i,top:n,width:a.width,zIndex:1}},dL=function(t){var a=t.appendTo,n=t.children,i=t.controlElement,r=t.innerProps,o=t.menuPlacement,s=t.menuPosition,l=ot(null),u=ot(null),c=Re(xI(o)),f=Le(c,2),p=f[0],b=f[1],d=At(function(){return{setPortalPlacement:b}},[]),m=Re(null),h=Le(m,2),v=h[0],x=h[1],E=Fe(function(){if(i){var y=iL(i),S=s==="fixed"?0:window.pageYOffset,A=y[p]+S;(A!==(v==null?void 0:v.offset)||y.left!==(v==null?void 0:v.rect.left)||y.width!==(v==null?void 0:v.rect.width))&&x({offset:A,rect:y})}},[i,s,p,v==null?void 0:v.offset,v==null?void 0:v.rect.left,v==null?void 0:v.rect.width]);gc(function(){E()},[E]);var g=Fe(function(){typeof u.current=="function"&&(u.current(),u.current=null),i&&l.current&&(u.current=lI(i,l.current,E,{elementResize:"ResizeObserver"in window}))},[i,E]);gc(function(){g()},[g]);var w=Fe(function(y){l.current=y,g()},[g]);if(!a&&s!=="fixed"||!v)return null;var C=re("div",W({ref:w},Ze(ae(ae({},t),{},{offset:v.offset,position:s,rect:v.rect}),"menuPortal",{"menu-portal":!0}),r),n);return re(wI.Provider,{value:d},a?yu(C,a):C)},FI=function(t){var a=t.isDisabled,n=t.isRtl;return{label:"container",direction:n?"rtl":void 0,pointerEvents:a?"none":void 0,position:"relative"}},fL=function(t){var a=t.children,n=t.innerProps,i=t.isDisabled,r=t.isRtl;return re("div",W({},Ze(t,"container",{"--is-disabled":i,"--is-rtl":r}),n),a)},PI=function(t,a){var n=t.theme.spacing,i=t.isMulti,r=t.hasValue,o=t.selectProps.controlShouldRenderValue;return ae({alignItems:"center",display:i&&r&&o?"flex":"grid",flex:1,flexWrap:"wrap",WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"},a?{}:{padding:"".concat(n.baseUnit/2,"px ").concat(n.baseUnit*2,"px")})},mL=function(t){var a=t.children,n=t.innerProps,i=t.isMulti,r=t.hasValue;return re("div",W({},Ze(t,"valueContainer",{"value-container":!0,"value-container--is-multi":i,"value-container--has-value":r}),n),a)},OI=function(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},hL=function(t){var a=t.children,n=t.innerProps;return re("div",W({},Ze(t,"indicatorsContainer",{indicators:!0}),n),a)},cI,vL=["size"];var bL={name:"8mmkcg",styles:"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0"},RI=function(t){var a=t.size,n=Wt(t,vL);return re("svg",W({height:a,width:a,viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",css:bL},n))},cm=function(t){return re(RI,W({size:20},t),re("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"}))},BI=function(t){return re(RI,W({size:20},t),re("path",{d:"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"}))},NI=function(t,a){var n=t.isFocused,i=t.theme,r=i.spacing.baseUnit,o=i.colors;return ae({label:"indicatorContainer",display:"flex",transition:"color 150ms"},a?{}:{color:n?o.neutral60:o.neutral20,padding:r*2,":hover":{color:n?o.neutral80:o.neutral40}})},jI=NI,gL=function(t){var a=t.children,n=t.innerProps;return re("div",W({},Ze(t,"dropdownIndicator",{indicator:!0,"dropdown-indicator":!0}),n),a||re(BI,null))},LI=NI,xL=function(t){var a=t.children,n=t.innerProps;return re("div",W({},Ze(t,"clearIndicator",{indicator:!0,"clear-indicator":!0}),n),a||re(cm,null))},MI=function(t,a){var n=t.isDisabled,i=t.theme,r=i.spacing.baseUnit,o=i.colors;return ae({label:"indicatorSeparator",alignSelf:"stretch",width:1},a?{}:{backgroundColor:n?o.neutral10:o.neutral20,marginBottom:r*2,marginTop:r*2})},yL=function(t){var a=t.innerProps;return re("span",W({},a,Ze(t,"indicatorSeparator",{"indicator-separator":!0})))},wL=Y2(cI||(cI=Kf([` + 0%, 80%, 100% { opacity: 0; } + 40% { opacity: 1; } +`]))),DI=function(t,a){var n=t.isFocused,i=t.size,r=t.theme,o=r.colors,s=r.spacing.baseUnit;return ae({label:"loadingIndicator",display:"flex",transition:"color 150ms",alignSelf:"center",fontSize:i,lineHeight:1,marginRight:i,textAlign:"center",verticalAlign:"middle"},a?{}:{color:n?o.neutral60:o.neutral20,padding:s*2})},rm=function(t){var a=t.delay,n=t.offset;return re("span",{css:Gr({animation:"".concat(wL," 1s ease-in-out ").concat(a,"ms infinite;"),backgroundColor:"currentColor",borderRadius:"1em",display:"inline-block",marginLeft:n?"1em":void 0,height:"1em",verticalAlign:"top",width:"1em"},"","")})},zI=function(t){var a=t.innerProps,n=t.isRtl;return re("div",W({},Ze(t,"loadingIndicator",{indicator:!0,"loading-indicator":!0}),a),re(rm,{delay:0,offset:n}),re(rm,{delay:160,offset:!0}),re(rm,{delay:320,offset:!n}))};zI.defaultProps={size:4};var GI=function(t,a){var n=t.isDisabled,i=t.isFocused,r=t.theme,o=r.colors,s=r.borderRadius,l=r.spacing;return ae({label:"control",alignItems:"center",cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:l.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms"},a?{}:{backgroundColor:n?o.neutral5:o.neutral0,borderColor:n?o.neutral10:i?o.primary:o.neutral20,borderRadius:s,borderStyle:"solid",borderWidth:1,boxShadow:i?"0 0 0 1px ".concat(o.primary):void 0,"&:hover":{borderColor:i?o.primary:o.neutral30}})},EL=function(t){var a=t.children,n=t.isDisabled,i=t.isFocused,r=t.innerRef,o=t.innerProps,s=t.menuIsOpen;return re("div",W({ref:r},Ze(t,"control",{control:!0,"control--is-disabled":n,"control--is-focused":i,"control--menu-is-open":s}),o),a)},SL=EL,CL=["data"],HI=function(t,a){var n=t.theme.spacing;return a?{}:{paddingBottom:n.baseUnit*2,paddingTop:n.baseUnit*2}},AL=function(t){var a=t.children,n=t.cx,i=t.getStyles,r=t.getClassNames,o=t.Heading,s=t.headingProps,l=t.innerProps,u=t.label,c=t.theme,f=t.selectProps;return re("div",W({},Ze(t,"group",{group:!0}),l),re(o,W({},s,{selectProps:f,theme:c,getStyles:i,getClassNames:r,cx:n}),u),re("div",null,a))},WI=function(t,a){var n=t.theme,i=n.colors,r=n.spacing;return ae({label:"group",cursor:"default",display:"block"},a?{}:{color:i.neutral40,fontSize:"75%",fontWeight:500,marginBottom:"0.25em",paddingLeft:r.baseUnit*3,paddingRight:r.baseUnit*3,textTransform:"uppercase"})},IL=function(t){var a=pI(t);a.data;var n=Wt(a,CL);return re("div",W({},Ze(t,"groupHeading",{"group-heading":!0}),n))},_L=AL,TL=["innerRef","isDisabled","isHidden","inputClassName"],VI=function(t,a){var n=t.isDisabled,i=t.value,r=t.theme,o=r.spacing,s=r.colors;return ae(ae({visibility:n?"hidden":"visible",transform:i?"translateZ(0)":""},kL),a?{}:{margin:o.baseUnit/2,paddingBottom:o.baseUnit/2,paddingTop:o.baseUnit/2,color:s.neutral80})},UI={gridArea:"1 / 2",font:"inherit",minWidth:"2px",border:0,margin:0,outline:0,padding:0},kL={flex:"1 1 auto",display:"inline-grid",gridArea:"1 / 1 / 2 / 3",gridTemplateColumns:"0 min-content","&:after":ae({content:'attr(data-value) " "',visibility:"hidden",whiteSpace:"pre"},UI)},FL=function(t){return ae({label:"input",color:"inherit",background:0,opacity:t?0:1,width:"100%"},UI)},PL=function(t){var a=t.cx,n=t.value,i=pI(t),r=i.innerRef,o=i.isDisabled,s=i.isHidden,l=i.inputClassName,u=Wt(i,TL);return re("div",W({},Ze(t,"input",{"input-container":!0}),{"data-value":n||""}),re("input",W({className:a({input:!0},l),ref:r,style:FL(s),disabled:o},u)))},OL=PL,JI=function(t,a){var n=t.theme,i=n.spacing,r=n.borderRadius,o=n.colors;return ae({label:"multiValue",display:"flex",minWidth:0},a?{}:{backgroundColor:o.neutral10,borderRadius:r/2,margin:i.baseUnit/2})},ZI=function(t,a){var n=t.theme,i=n.borderRadius,r=n.colors,o=t.cropWithEllipsis;return ae({overflow:"hidden",textOverflow:o||o===void 0?"ellipsis":void 0,whiteSpace:"nowrap"},a?{}:{borderRadius:i/2,color:r.neutral80,fontSize:"85%",padding:3,paddingLeft:6})},qI=function(t,a){var n=t.theme,i=n.spacing,r=n.borderRadius,o=n.colors,s=t.isFocused;return ae({alignItems:"center",display:"flex"},a?{}:{borderRadius:r/2,backgroundColor:s?o.dangerLight:void 0,paddingLeft:i.baseUnit,paddingRight:i.baseUnit,":hover":{backgroundColor:o.dangerLight,color:o.danger}})},XI=function(t){var a=t.children,n=t.innerProps;return re("div",n,a)},RL=XI,BL=XI;function NL(e){var t=e.children,a=e.innerProps;return re("div",W({role:"button"},a),t||re(cm,{size:14}))}var jL=function(t){var a=t.children,n=t.components,i=t.data,r=t.innerProps,o=t.isDisabled,s=t.removeProps,l=t.selectProps,u=n.Container,c=n.Label,f=n.Remove;return re(u,{data:i,innerProps:ae(ae({},Ze(t,"multiValue",{"multi-value":!0,"multi-value--is-disabled":o})),r),selectProps:l},re(c,{data:i,innerProps:ae({},Ze(t,"multiValueLabel",{"multi-value__label":!0})),selectProps:l},a),re(f,{data:i,innerProps:ae(ae({},Ze(t,"multiValueRemove",{"multi-value__remove":!0})),{},{"aria-label":"Remove ".concat(a||"option")},s),selectProps:l}))},LL=jL,$I=function(t,a){var n=t.isDisabled,i=t.isFocused,r=t.isSelected,o=t.theme,s=o.spacing,l=o.colors;return ae({label:"option",cursor:"default",display:"block",fontSize:"inherit",width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)"},a?{}:{backgroundColor:r?l.primary:i?l.primary25:"transparent",color:n?l.neutral20:r?l.neutral0:"inherit",padding:"".concat(s.baseUnit*2,"px ").concat(s.baseUnit*3,"px"),":active":{backgroundColor:n?void 0:r?l.primary:l.primary50}})},ML=function(t){var a=t.children,n=t.isDisabled,i=t.isFocused,r=t.isSelected,o=t.innerRef,s=t.innerProps;return re("div",W({},Ze(t,"option",{option:!0,"option--is-disabled":n,"option--is-focused":i,"option--is-selected":r}),{ref:o,"aria-disabled":n},s),a)},DL=ML,YI=function(t,a){var n=t.theme,i=n.spacing,r=n.colors;return ae({label:"placeholder",gridArea:"1 / 1 / 2 / 3"},a?{}:{color:r.neutral50,marginLeft:i.baseUnit/2,marginRight:i.baseUnit/2})},zL=function(t){var a=t.children,n=t.innerProps;return re("div",W({},Ze(t,"placeholder",{placeholder:!0}),n),a)},GL=zL,KI=function(t,a){var n=t.isDisabled,i=t.theme,r=i.spacing,o=i.colors;return ae({label:"singleValue",gridArea:"1 / 1 / 2 / 3",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},a?{}:{color:n?o.neutral40:o.neutral80,marginLeft:r.baseUnit/2,marginRight:r.baseUnit/2})},HL=function(t){var a=t.children,n=t.isDisabled,i=t.innerProps;return re("div",W({},Ze(t,"singleValue",{"single-value":!0,"single-value--is-disabled":n}),i),a)},WL=HL,VL={ClearIndicator:xL,Control:SL,DropdownIndicator:gL,DownChevron:BI,CrossIcon:cm,Group:_L,GroupHeading:IL,IndicatorsContainer:hL,IndicatorSeparator:yL,Input:OL,LoadingIndicator:zI,Menu:uL,MenuList:pL,MenuPortal:dL,LoadingMessage:TI,NoOptionsMessage:_I,MultiValue:LL,MultiValueContainer:RL,MultiValueLabel:BL,MultiValueRemove:NL,Option:DL,Placeholder:GL,SelectContainer:fL,SingleValue:WL,ValueContainer:mL},QI=function(t){return ae(ae({},VL),t.components)};var e_=Number.isNaN||function(t){return typeof t=="number"&&t!==t};function UL(e,t){return!!(e===t||e_(e)&&e_(t))}function JL(e,t){if(e.length!==t.length)return!1;for(var a=0;a1?"s":""," ").concat(r.join(","),", selected.");case"select-option":return o?"option ".concat(i," is disabled. Select another option."):"option ".concat(i,", selected.");default:return""}},onFocus:function(t){var a=t.context,n=t.focused,i=t.options,r=t.label,o=r===void 0?"":r,s=t.selectValue,l=t.isDisabled,u=t.isSelected,c=function(d,m){return d&&d.length?"".concat(d.indexOf(m)+1," of ").concat(d.length):""};if(a==="value"&&s)return"value ".concat(o," focused, ").concat(c(s,n),".");if(a==="menu"){var f=l?" disabled":"",p="".concat(u?"selected":"focused").concat(f);return"option ".concat(o," ").concat(p,", ").concat(c(i,n),".")}return""},onFilter:function(t){var a=t.inputValue,n=t.resultsMessage;return"".concat(n).concat(a?" for search term "+a:"",".")}},$L=function(t){var a=t.ariaSelection,n=t.focusedOption,i=t.focusedValue,r=t.focusableOptions,o=t.isFocused,s=t.selectValue,l=t.selectProps,u=t.id,c=l.ariaLiveMessages,f=l.getOptionLabel,p=l.inputValue,b=l.isMulti,d=l.isOptionDisabled,m=l.isSearchable,h=l.menuIsOpen,v=l.options,x=l.screenReaderStatus,E=l.tabSelectsValue,g=l["aria-label"],w=l["aria-live"],C=At(function(){return ae(ae({},XL),c||{})},[c]),y=At(function(){var j="";if(a&&C.onChange){var L=a.option,k=a.options,T=a.removedValue,N=a.removedValues,M=a.value,D=function(oe){return Array.isArray(oe)?null:oe},V=T||L||D(M),q=V?f(V):"",Z=k||N||void 0,pe=Z?Z.map(f):[],fe=ae({isDisabled:V&&d(V,s),label:q,labels:pe},a);j=C.onChange(fe)}return j},[a,C,d,s,f]),S=At(function(){var j="",L=n||i,k=!!(n&&s&&s.includes(n));if(L&&C.onFocus){var T={focused:L,label:f(L),isDisabled:d(L,s),isSelected:k,options:r,context:L===n?"menu":"value",selectValue:s};j=C.onFocus(T)}return j},[n,i,f,d,C,r,s]),A=At(function(){var j="";if(h&&v.length&&C.onFilter){var L=x({count:r.length});j=C.onFilter({inputValue:p,resultsMessage:L})}return j},[r,p,h,C,v,x]),_=At(function(){var j="";if(C.guidance){var L=i?"value":h?"menu":"input";j=C.guidance({"aria-label":g,context:L,isDisabled:n&&d(n,s),isMulti:b,isSearchable:m,tabSelectsValue:E})}return j},[g,n,i,b,d,m,h,C,s,E]),P="".concat(S," ").concat(A," ").concat(_),F=re(rt,null,re("span",{id:"aria-selection"},y),re("span",{id:"aria-context"},P)),B=(a==null?void 0:a.action)==="initial-input-focus";return re(rt,null,re(a_,{id:u},B&&F),re(a_,{"aria-live":w,"aria-atomic":"false","aria-relevant":"additions text"},o&&!B&&F))},YL=$L,pm=[{base:"A",letters:"A\u24B6\uFF21\xC0\xC1\xC2\u1EA6\u1EA4\u1EAA\u1EA8\xC3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\xC4\u01DE\u1EA2\xC5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F"},{base:"AA",letters:"\uA732"},{base:"AE",letters:"\xC6\u01FC\u01E2"},{base:"AO",letters:"\uA734"},{base:"AU",letters:"\uA736"},{base:"AV",letters:"\uA738\uA73A"},{base:"AY",letters:"\uA73C"},{base:"B",letters:"B\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181"},{base:"C",letters:"C\u24B8\uFF23\u0106\u0108\u010A\u010C\xC7\u1E08\u0187\u023B\uA73E"},{base:"D",letters:"D\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779"},{base:"DZ",letters:"\u01F1\u01C4"},{base:"Dz",letters:"\u01F2\u01C5"},{base:"E",letters:"E\u24BA\uFF25\xC8\xC9\xCA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\xCB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E"},{base:"F",letters:"F\u24BB\uFF26\u1E1E\u0191\uA77B"},{base:"G",letters:"G\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E"},{base:"H",letters:"H\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D"},{base:"I",letters:"I\u24BE\uFF29\xCC\xCD\xCE\u0128\u012A\u012C\u0130\xCF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197"},{base:"J",letters:"J\u24BF\uFF2A\u0134\u0248"},{base:"K",letters:"K\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2"},{base:"L",letters:"L\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780"},{base:"LJ",letters:"\u01C7"},{base:"Lj",letters:"\u01C8"},{base:"M",letters:"M\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C"},{base:"N",letters:"N\u24C3\uFF2E\u01F8\u0143\xD1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4"},{base:"NJ",letters:"\u01CA"},{base:"Nj",letters:"\u01CB"},{base:"O",letters:"O\u24C4\uFF2F\xD2\xD3\xD4\u1ED2\u1ED0\u1ED6\u1ED4\xD5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\xD6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\xD8\u01FE\u0186\u019F\uA74A\uA74C"},{base:"OI",letters:"\u01A2"},{base:"OO",letters:"\uA74E"},{base:"OU",letters:"\u0222"},{base:"P",letters:"P\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754"},{base:"Q",letters:"Q\u24C6\uFF31\uA756\uA758\u024A"},{base:"R",letters:"R\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782"},{base:"S",letters:"S\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784"},{base:"T",letters:"T\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786"},{base:"TZ",letters:"\uA728"},{base:"U",letters:"U\u24CA\uFF35\xD9\xDA\xDB\u0168\u1E78\u016A\u1E7A\u016C\xDC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244"},{base:"V",letters:"V\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245"},{base:"VY",letters:"\uA760"},{base:"W",letters:"W\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72"},{base:"X",letters:"X\u24CD\uFF38\u1E8A\u1E8C"},{base:"Y",letters:"Y\u24CE\uFF39\u1EF2\xDD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE"},{base:"Z",letters:"Z\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762"},{base:"a",letters:"a\u24D0\uFF41\u1E9A\xE0\xE1\xE2\u1EA7\u1EA5\u1EAB\u1EA9\xE3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\xE4\u01DF\u1EA3\xE5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250"},{base:"aa",letters:"\uA733"},{base:"ae",letters:"\xE6\u01FD\u01E3"},{base:"ao",letters:"\uA735"},{base:"au",letters:"\uA737"},{base:"av",letters:"\uA739\uA73B"},{base:"ay",letters:"\uA73D"},{base:"b",letters:"b\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253"},{base:"c",letters:"c\u24D2\uFF43\u0107\u0109\u010B\u010D\xE7\u1E09\u0188\u023C\uA73F\u2184"},{base:"d",letters:"d\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A"},{base:"dz",letters:"\u01F3\u01C6"},{base:"e",letters:"e\u24D4\uFF45\xE8\xE9\xEA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\xEB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD"},{base:"f",letters:"f\u24D5\uFF46\u1E1F\u0192\uA77C"},{base:"g",letters:"g\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F"},{base:"h",letters:"h\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265"},{base:"hv",letters:"\u0195"},{base:"i",letters:"i\u24D8\uFF49\xEC\xED\xEE\u0129\u012B\u012D\xEF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131"},{base:"j",letters:"j\u24D9\uFF4A\u0135\u01F0\u0249"},{base:"k",letters:"k\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3"},{base:"l",letters:"l\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747"},{base:"lj",letters:"\u01C9"},{base:"m",letters:"m\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F"},{base:"n",letters:"n\u24DD\uFF4E\u01F9\u0144\xF1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5"},{base:"nj",letters:"\u01CC"},{base:"o",letters:"o\u24DE\uFF4F\xF2\xF3\xF4\u1ED3\u1ED1\u1ED7\u1ED5\xF5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\xF6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\xF8\u01FF\u0254\uA74B\uA74D\u0275"},{base:"oi",letters:"\u01A3"},{base:"ou",letters:"\u0223"},{base:"oo",letters:"\uA74F"},{base:"p",letters:"p\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755"},{base:"q",letters:"q\u24E0\uFF51\u024B\uA757\uA759"},{base:"r",letters:"r\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783"},{base:"s",letters:"s\u24E2\uFF53\xDF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B"},{base:"t",letters:"t\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787"},{base:"tz",letters:"\uA729"},{base:"u",letters:"u\u24E4\uFF55\xF9\xFA\xFB\u0169\u1E79\u016B\u1E7B\u016D\xFC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289"},{base:"v",letters:"v\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C"},{base:"vy",letters:"\uA761"},{base:"w",letters:"w\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73"},{base:"x",letters:"x\u24E7\uFF58\u1E8B\u1E8D"},{base:"y",letters:"y\u24E8\uFF59\u1EF3\xFD\u0177\u1EF9\u0233\u1E8F\xFF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF"},{base:"z",letters:"z\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763"}],KL=new RegExp("["+pm.map(function(e){return e.letters}).join("")+"]","g"),f_={};for(Ec=0;Ec-1}},aM=["innerRef"];function nM(e){var t=e.innerRef,a=Wt(e,aM),n=gI(a,"onExited","in","enter","exit","appear");return re("input",W({ref:t},n,{css:Gr({label:"dummyInput",background:0,border:0,caretColor:"transparent",fontSize:"inherit",gridArea:"1 / 1 / 2 / 3",outline:0,padding:0,width:1,color:"transparent",left:-100,opacity:0,position:"relative",transform:"scale(.01)"},"","")}))}var iM=function(t){t.preventDefault(),t.stopPropagation()};function rM(e){var t=e.isEnabled,a=e.onBottomArrive,n=e.onBottomLeave,i=e.onTopArrive,r=e.onTopLeave,o=ot(!1),s=ot(!1),l=ot(0),u=ot(null),c=Fe(function(h,v){if(u.current!==null){var x=u.current,E=x.scrollTop,g=x.scrollHeight,w=x.clientHeight,C=u.current,y=v>0,S=g-w-E,A=!1;S>v&&o.current&&(n&&n(h),o.current=!1),y&&s.current&&(r&&r(h),s.current=!1),y&&v>S?(a&&!o.current&&a(h),C.scrollTop=g,A=!0,o.current=!0):!y&&-v>E&&(i&&!s.current&&i(h),C.scrollTop=0,A=!0,s.current=!0),A&&iM(h)}},[a,n,i,r]),f=Fe(function(h){c(h,h.deltaY)},[c]),p=Fe(function(h){l.current=h.changedTouches[0].clientY},[]),b=Fe(function(h){var v=l.current-h.changedTouches[0].clientY;c(h,v)},[c]),d=Fe(function(h){if(h){var v=vI?{passive:!1}:!1;h.addEventListener("wheel",f,v),h.addEventListener("touchstart",p,v),h.addEventListener("touchmove",b,v)}},[b,p,f]),m=Fe(function(h){h&&(h.removeEventListener("wheel",f,!1),h.removeEventListener("touchstart",p,!1),h.removeEventListener("touchmove",b,!1))},[b,p,f]);return ha(function(){if(t){var h=u.current;return d(h),function(){m(h)}}},[t,d,m]),function(h){u.current=h}}var i_=["boxSizing","height","overflow","paddingRight","position"],r_={boxSizing:"border-box",overflow:"hidden",position:"relative",height:"100%"};function o_(e){e.preventDefault()}function s_(e){e.stopPropagation()}function l_(){var e=this.scrollTop,t=this.scrollHeight,a=e+this.offsetHeight;e===0?this.scrollTop=1:a===t&&(this.scrollTop=e-1)}function c_(){return"ontouchstart"in window||navigator.maxTouchPoints}var u_=!!(typeof window!="undefined"&&window.document&&window.document.createElement),Ur=0,Ai={capture:!1,passive:!1};function oM(e){var t=e.isEnabled,a=e.accountForScrollbars,n=a===void 0?!0:a,i=ot({}),r=ot(null),o=Fe(function(l){if(u_){var u=document.body,c=u&&u.style;if(n&&i_.forEach(function(d){var m=c&&c[d];i.current[d]=m}),n&&Ur<1){var f=parseInt(i.current.paddingRight,10)||0,p=document.body?document.body.clientWidth:0,b=window.innerWidth-p+f||0;Object.keys(r_).forEach(function(d){var m=r_[d];c&&(c[d]=m)}),c&&(c.paddingRight="".concat(b,"px"))}u&&c_()&&(u.addEventListener("touchmove",o_,Ai),l&&(l.addEventListener("touchstart",l_,Ai),l.addEventListener("touchmove",s_,Ai))),Ur+=1}},[n]),s=Fe(function(l){if(u_){var u=document.body,c=u&&u.style;Ur=Math.max(Ur-1,0),n&&Ur<1&&i_.forEach(function(f){var p=i.current[f];c&&(c[f]=p)}),u&&c_()&&(u.removeEventListener("touchmove",o_,Ai),l&&(l.removeEventListener("touchstart",l_,Ai),l.removeEventListener("touchmove",s_,Ai)))}},[n]);return ha(function(){if(t){var l=r.current;return o(l),function(){s(l)}}},[t,o,s]),function(l){r.current=l}}var sM=function(){return document.activeElement&&document.activeElement.blur()},lM={name:"1kfdb0e",styles:"position:fixed;left:0;bottom:0;right:0;top:0"};function cM(e){var t=e.children,a=e.lockEnabled,n=e.captureEnabled,i=n===void 0?!0:n,r=e.onBottomArrive,o=e.onBottomLeave,s=e.onTopArrive,l=e.onTopLeave,u=rM({isEnabled:i,onBottomArrive:r,onBottomLeave:o,onTopArrive:s,onTopLeave:l}),c=oM({isEnabled:a}),f=function(b){u(b),c(b)};return re(rt,null,a&&re("div",{onClick:sM,css:lM}),t(f))}var uM={name:"1a0ro4n-requiredInput",styles:"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%"},pM=function(t){var a=t.name,n=t.onFocus;return re("input",{required:!0,name:a,tabIndex:-1,"aria-hidden":"true",onFocus:n,css:uM,value:"",onChange:function(){}})},dM=pM,fM=function(t){return t.label},mM=function(t){return t.label},hM=function(t){return t.value},vM=function(t){return!!t.isDisabled},bM={clearIndicator:LI,container:FI,control:GI,dropdownIndicator:jI,group:HI,groupHeading:WI,indicatorsContainer:OI,indicatorSeparator:MI,input:VI,loadingIndicator:DI,loadingMessage:II,menu:yI,menuList:SI,menuPortal:kI,multiValue:JI,multiValueLabel:ZI,multiValueRemove:qI,noOptionsMessage:AI,option:$I,placeholder:YI,singleValue:KI,valueContainer:PI};var gM={primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},xM=4,h_=4,yM=38,wM=h_*2,EM={baseUnit:h_,controlHeight:yM,menuGutter:wM},um={borderRadius:xM,colors:gM,spacing:EM},SM={"aria-live":"polite",backspaceRemovesValue:!0,blurInputOnSelect:lm(),captureMenuScroll:!lm(),classNames:{},closeMenuOnSelect:!0,closeMenuOnScroll:!1,components:{},controlShouldRenderValue:!0,escapeClearsValue:!1,filterOption:tM(),formatGroupLabel:fM,getOptionLabel:mM,getOptionValue:hM,isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:vM,loadingMessage:function(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!mI(),noOptionsMessage:function(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function(t){var a=t.count;return"".concat(a," result").concat(a!==1?"s":""," available")},styles:{},tabIndex:0,tabSelectsValue:!0,unstyled:!1};function p_(e,t,a,n){var i=x_(e,t,a),r=y_(e,t,a),o=g_(e,t),s=Ac(e,t);return{type:"option",data:t,isDisabled:i,isSelected:r,label:o,value:s,index:n}}function v_(e,t){return e.options.map(function(a,n){if("options"in a){var i=a.options.map(function(o,s){return p_(e,o,t,s)}).filter(function(o){return d_(e,o)});return i.length>0?{type:"group",data:a,options:i,index:n}:void 0}var r=p_(e,a,t,n);return d_(e,r)?r:void 0}).filter(bI)}function b_(e){return e.reduce(function(t,a){return a.type==="group"?t.push.apply(t,ql(a.options.map(function(n){return n.data}))):t.push(a.data),t},[])}function CM(e,t){return b_(v_(e,t))}function d_(e,t){var a=e.inputValue,n=a===void 0?"":a,i=t.data,r=t.isSelected,o=t.label,s=t.value;return(!E_(e)||!r)&&w_(e,{label:o,value:s,data:i},n)}function AM(e,t){var a=e.focusedValue,n=e.selectValue,i=n.indexOf(a);if(i>-1){var r=t.indexOf(a);if(r>-1)return a;if(i-1?a:t[0]}var g_=function(t,a){return t.getOptionLabel(a)},Ac=function(t,a){return t.getOptionValue(a)};function x_(e,t,a){return typeof e.isOptionDisabled=="function"?e.isOptionDisabled(t,a):!1}function y_(e,t,a){if(a.indexOf(t)>-1)return!0;if(typeof e.isOptionSelected=="function")return e.isOptionSelected(t,a);var n=Ac(e,t);return a.some(function(i){return Ac(e,i)===n})}function w_(e,t,a){return e.filterOption?e.filterOption(t,a):!0}var E_=function(t){var a=t.hideSelectedOptions,n=t.isMulti;return a===void 0?n:a},_M=1,dm=function(e){Tf(a,e);var t=Of(a);function a(n){var i;if(If(this,a),i=t.call(this,n),i.state={ariaSelection:null,focusedOption:null,focusedValue:null,inputIsHidden:!1,isFocused:!1,selectValue:[],clearFocusValueOnUpdate:!1,prevWasFocused:!1,inputIsHiddenAfterUpdate:void 0,prevProps:void 0},i.blockOptionHover=!1,i.isComposing=!1,i.commonProps=void 0,i.initialTouchX=0,i.initialTouchY=0,i.instancePrefix="",i.openAfterFocus=!1,i.scrollToFocusedOptionOnUpdate=!1,i.userIsDragging=void 0,i.controlRef=null,i.getControlRef=function(s){i.controlRef=s},i.focusedOptionRef=null,i.getFocusedOptionRef=function(s){i.focusedOptionRef=s},i.menuListRef=null,i.getMenuListRef=function(s){i.menuListRef=s},i.inputRef=null,i.getInputRef=function(s){i.inputRef=s},i.focus=i.focusInput,i.blur=i.blurInput,i.onChange=function(s,l){var u=i.props,c=u.onChange,f=u.name;l.name=f,i.ariaOnChange(s,l),c(s,l)},i.setValue=function(s,l,u){var c=i.props,f=c.closeMenuOnSelect,p=c.isMulti,b=c.inputValue;i.onInputChange("",{action:"set-value",prevInputValue:b}),f&&(i.setState({inputIsHiddenAfterUpdate:!p}),i.onMenuClose()),i.setState({clearFocusValueOnUpdate:!0}),i.onChange(s,{action:l,option:u})},i.selectOption=function(s){var l=i.props,u=l.blurInputOnSelect,c=l.isMulti,f=l.name,p=i.state.selectValue,b=c&&i.isOptionSelected(s,p),d=i.isOptionDisabled(s,p);if(b){var m=i.getOptionValue(s);i.setValue(p.filter(function(h){return i.getOptionValue(h)!==m}),"deselect-option",s)}else if(!d)c?i.setValue([].concat(ql(p),[s]),"select-option",s):i.setValue(s,"select-option");else{i.ariaOnChange(s,{action:"select-option",option:s,name:f});return}u&&i.blurInput()},i.removeValue=function(s){var l=i.props.isMulti,u=i.state.selectValue,c=i.getOptionValue(s),f=u.filter(function(b){return i.getOptionValue(b)!==c}),p=Vr(l,f,f[0]||null);i.onChange(p,{action:"remove-value",removedValue:s}),i.focusInput()},i.clearValue=function(){var s=i.state.selectValue;i.onChange(Vr(i.props.isMulti,[],null),{action:"clear",removedValues:s})},i.popValue=function(){var s=i.props.isMulti,l=i.state.selectValue,u=l[l.length-1],c=l.slice(0,l.length-1),f=Vr(s,c,c[0]||null);i.onChange(f,{action:"pop-value",removedValue:u})},i.getValue=function(){return i.state.selectValue},i.cx=function(){for(var s=arguments.length,l=new Array(s),u=0;up||f>p}},i.onTouchEnd=function(s){i.userIsDragging||(i.controlRef&&!i.controlRef.contains(s.target)&&i.menuListRef&&!i.menuListRef.contains(s.target)&&i.blurInput(),i.initialTouchX=0,i.initialTouchY=0)},i.onControlTouchEnd=function(s){i.userIsDragging||i.onControlMouseDown(s)},i.onClearIndicatorTouchEnd=function(s){i.userIsDragging||i.onClearIndicatorMouseDown(s)},i.onDropdownIndicatorTouchEnd=function(s){i.userIsDragging||i.onDropdownIndicatorMouseDown(s)},i.handleInputChange=function(s){var l=i.props.inputValue,u=s.currentTarget.value;i.setState({inputIsHiddenAfterUpdate:!1}),i.onInputChange(u,{action:"input-change",prevInputValue:l}),i.props.menuIsOpen||i.onMenuOpen()},i.onInputFocus=function(s){i.props.onFocus&&i.props.onFocus(s),i.setState({inputIsHiddenAfterUpdate:!1,isFocused:!0}),(i.openAfterFocus||i.props.openMenuOnFocus)&&i.openMenu("first"),i.openAfterFocus=!1},i.onInputBlur=function(s){var l=i.props.inputValue;if(i.menuListRef&&i.menuListRef.contains(document.activeElement)){i.inputRef.focus();return}i.props.onBlur&&i.props.onBlur(s),i.onInputChange("",{action:"input-blur",prevInputValue:l}),i.onMenuClose(),i.setState({focusedValue:null,isFocused:!1})},i.onOptionHover=function(s){i.blockOptionHover||i.state.focusedOption===s||i.setState({focusedOption:s})},i.shouldHideSelectedOptions=function(){return E_(i.props)},i.onValueInputFocus=function(s){s.preventDefault(),s.stopPropagation(),i.focus()},i.onKeyDown=function(s){var l=i.props,u=l.isMulti,c=l.backspaceRemovesValue,f=l.escapeClearsValue,p=l.inputValue,b=l.isClearable,d=l.isDisabled,m=l.menuIsOpen,h=l.onKeyDown,v=l.tabSelectsValue,x=l.openMenuOnFocus,E=i.state,g=E.focusedOption,w=E.focusedValue,C=E.selectValue;if(!d&&!(typeof h=="function"&&(h(s),s.defaultPrevented))){switch(i.blockOptionHover=!0,s.key){case"ArrowLeft":if(!u||p)return;i.focusValue("previous");break;case"ArrowRight":if(!u||p)return;i.focusValue("next");break;case"Delete":case"Backspace":if(p)return;if(w)i.removeValue(w);else{if(!c)return;u?i.popValue():b&&i.clearValue()}break;case"Tab":if(i.isComposing||s.shiftKey||!m||!v||!g||x&&i.isOptionSelected(g,C))return;i.selectOption(g);break;case"Enter":if(s.keyCode===229)break;if(m){if(!g||i.isComposing)return;i.selectOption(g);break}return;case"Escape":m?(i.setState({inputIsHiddenAfterUpdate:!1}),i.onInputChange("",{action:"menu-close",prevInputValue:p}),i.onMenuClose()):b&&f&&i.clearValue();break;case" ":if(p)return;if(!m){i.openMenu("first");break}if(!g)return;i.selectOption(g);break;case"ArrowUp":m?i.focusOption("up"):i.openMenu("last");break;case"ArrowDown":m?i.focusOption("down"):i.openMenu("first");break;case"PageUp":if(!m)return;i.focusOption("pageup");break;case"PageDown":if(!m)return;i.focusOption("pagedown");break;case"Home":if(!m)return;i.focusOption("first");break;case"End":if(!m)return;i.focusOption("last");break;default:return}s.preventDefault()}},i.instancePrefix="react-select-"+(i.props.instanceId||++_M),i.state.selectValue=om(n.value),n.menuIsOpen&&i.state.selectValue.length){var r=i.buildFocusableOptions(),o=r.indexOf(i.state.selectValue[0]);i.state.focusedOption=r[o]}return i}return _f(a,[{key:"componentDidMount",value:function(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput(),this.props.menuIsOpen&&this.state.focusedOption&&this.menuListRef&&this.focusedOptionRef&&sm(this.menuListRef,this.focusedOptionRef)}},{key:"componentDidUpdate",value:function(i){var r=this.props,o=r.isDisabled,s=r.menuIsOpen,l=this.state.isFocused;(l&&!o&&i.isDisabled||l&&s&&!i.menuIsOpen)&&this.focusInput(),l&&o&&!i.isDisabled?this.setState({isFocused:!1},this.onMenuClose):!l&&!o&&i.isDisabled&&this.inputRef===document.activeElement&&this.setState({isFocused:!0}),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&(sm(this.menuListRef,this.focusedOptionRef),this.scrollToFocusedOptionOnUpdate=!1)}},{key:"componentWillUnmount",value:function(){this.stopListeningComposition(),this.stopListeningToTouch(),document.removeEventListener("scroll",this.onScroll,!0)}},{key:"onMenuOpen",value:function(){this.props.onMenuOpen()}},{key:"onMenuClose",value:function(){this.onInputChange("",{action:"menu-close",prevInputValue:this.props.inputValue}),this.props.onMenuClose()}},{key:"onInputChange",value:function(i,r){this.props.onInputChange(i,r)}},{key:"focusInput",value:function(){this.inputRef&&this.inputRef.focus()}},{key:"blurInput",value:function(){this.inputRef&&this.inputRef.blur()}},{key:"openMenu",value:function(i){var r=this,o=this.state,s=o.selectValue,l=o.isFocused,u=this.buildFocusableOptions(),c=i==="first"?0:u.length-1;if(!this.props.isMulti){var f=u.indexOf(s[0]);f>-1&&(c=f)}this.scrollToFocusedOptionOnUpdate=!(l&&this.menuListRef),this.setState({inputIsHiddenAfterUpdate:!1,focusedValue:null,focusedOption:u[c]},function(){return r.onMenuOpen()})}},{key:"focusValue",value:function(i){var r=this.state,o=r.selectValue,s=r.focusedValue;if(this.props.isMulti){this.setState({focusedOption:null});var l=o.indexOf(s);s||(l=-1);var u=o.length-1,c=-1;if(o.length){switch(i){case"previous":l===0?c=0:l===-1?c=u:c=l-1;break;case"next":l>-1&&l0&&arguments[0]!==void 0?arguments[0]:"first",r=this.props.pageSize,o=this.state.focusedOption,s=this.getFocusableOptions();if(s.length){var l=0,u=s.indexOf(o);o||(u=-1),i==="up"?l=u>0?u-1:s.length-1:i==="down"?l=(u+1)%s.length:i==="pageup"?(l=u-r,l<0&&(l=0)):i==="pagedown"?(l=u+r,l>s.length-1&&(l=s.length-1)):i==="last"&&(l=s.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:s[l],focusedValue:null})}}},{key:"getTheme",value:function(){return this.props.theme?typeof this.props.theme=="function"?this.props.theme(um):ae(ae({},um),this.props.theme):um}},{key:"getCommonProps",value:function(){var i=this.clearValue,r=this.cx,o=this.getStyles,s=this.getClassNames,l=this.getValue,u=this.selectOption,c=this.setValue,f=this.props,p=f.isMulti,b=f.isRtl,d=f.options,m=this.hasValue();return{clearValue:i,cx:r,getStyles:o,getClassNames:s,getValue:l,hasValue:m,isMulti:p,isRtl:b,options:d,selectOption:u,selectProps:f,setValue:c,theme:this.getTheme()}}},{key:"hasValue",value:function(){var i=this.state.selectValue;return i.length>0}},{key:"hasOptions",value:function(){return!!this.getFocusableOptions().length}},{key:"isClearable",value:function(){var i=this.props,r=i.isClearable,o=i.isMulti;return r===void 0?o:r}},{key:"isOptionDisabled",value:function(i,r){return x_(this.props,i,r)}},{key:"isOptionSelected",value:function(i,r){return y_(this.props,i,r)}},{key:"filterOption",value:function(i,r){return w_(this.props,i,r)}},{key:"formatOptionLabel",value:function(i,r){if(typeof this.props.formatOptionLabel=="function"){var o=this.props.inputValue,s=this.state.selectValue;return this.props.formatOptionLabel(i,{context:r,inputValue:o,selectValue:s})}else return this.getOptionLabel(i)}},{key:"formatGroupLabel",value:function(i){return this.props.formatGroupLabel(i)}},{key:"startListeningComposition",value:function(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))}},{key:"stopListeningComposition",value:function(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))}},{key:"startListeningToTouch",value:function(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"stopListeningToTouch",value:function(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))}},{key:"renderInput",value:function(){var i=this.props,r=i.isDisabled,o=i.isSearchable,s=i.inputId,l=i.inputValue,u=i.tabIndex,c=i.form,f=i.menuIsOpen,p=i.required,b=this.getComponents(),d=b.Input,m=this.state,h=m.inputIsHidden,v=m.ariaSelection,x=this.commonProps,E=s||this.getElementId("input"),g=ae(ae(ae({"aria-autocomplete":"list","aria-expanded":f,"aria-haspopup":!0,"aria-errormessage":this.props["aria-errormessage"],"aria-invalid":this.props["aria-invalid"],"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],"aria-required":p,role:"combobox"},f&&{"aria-controls":this.getElementId("listbox"),"aria-owns":this.getElementId("listbox")}),!o&&{"aria-readonly":!0}),this.hasValue()?(v==null?void 0:v.action)==="initial-input-focus"&&{"aria-describedby":this.getElementId("live-region")}:{"aria-describedby":this.getElementId("placeholder")});return o?se(d,W({},x,{autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",id:E,innerRef:this.getInputRef,isDisabled:r,isHidden:h,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,spellCheck:"false",tabIndex:u,form:c,type:"text",value:l},g)):se(nM,W({id:E,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:Hr,onFocus:this.onInputFocus,disabled:r,tabIndex:u,inputMode:"none",form:c,value:""},g))}},{key:"renderPlaceholderOrValue",value:function(){var i=this,r=this.getComponents(),o=r.MultiValue,s=r.MultiValueContainer,l=r.MultiValueLabel,u=r.MultiValueRemove,c=r.SingleValue,f=r.Placeholder,p=this.commonProps,b=this.props,d=b.controlShouldRenderValue,m=b.isDisabled,h=b.isMulti,v=b.inputValue,x=b.placeholder,E=this.state,g=E.selectValue,w=E.focusedValue,C=E.isFocused;if(!this.hasValue()||!d)return v?null:se(f,W({},p,{key:"placeholder",isDisabled:m,isFocused:C,innerProps:{id:this.getElementId("placeholder")}}),x);if(h)return g.map(function(S,A){var _=S===w,P="".concat(i.getOptionLabel(S),"-").concat(i.getOptionValue(S));return se(o,W({},p,{components:{Container:s,Label:l,Remove:u},isFocused:_,isDisabled:m,key:P,index:A,removeProps:{onClick:function(){return i.removeValue(S)},onTouchEnd:function(){return i.removeValue(S)},onMouseDown:function(B){B.preventDefault()}},data:S}),i.formatOptionLabel(S,"value"))});if(v)return null;var y=g[0];return se(c,W({},p,{data:y,isDisabled:m}),this.formatOptionLabel(y,"value"))}},{key:"renderClearIndicator",value:function(){var i=this.getComponents(),r=i.ClearIndicator,o=this.commonProps,s=this.props,l=s.isDisabled,u=s.isLoading,c=this.state.isFocused;if(!this.isClearable()||!r||l||!this.hasValue()||u)return null;var f={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"};return se(r,W({},o,{innerProps:f,isFocused:c}))}},{key:"renderLoadingIndicator",value:function(){var i=this.getComponents(),r=i.LoadingIndicator,o=this.commonProps,s=this.props,l=s.isDisabled,u=s.isLoading,c=this.state.isFocused;if(!r||!u)return null;var f={"aria-hidden":"true"};return se(r,W({},o,{innerProps:f,isDisabled:l,isFocused:c}))}},{key:"renderIndicatorSeparator",value:function(){var i=this.getComponents(),r=i.DropdownIndicator,o=i.IndicatorSeparator;if(!r||!o)return null;var s=this.commonProps,l=this.props.isDisabled,u=this.state.isFocused;return se(o,W({},s,{isDisabled:l,isFocused:u}))}},{key:"renderDropdownIndicator",value:function(){var i=this.getComponents(),r=i.DropdownIndicator;if(!r)return null;var o=this.commonProps,s=this.props.isDisabled,l=this.state.isFocused,u={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"};return se(r,W({},o,{innerProps:u,isDisabled:s,isFocused:l}))}},{key:"renderMenu",value:function(){var i=this,r=this.getComponents(),o=r.Group,s=r.GroupHeading,l=r.Menu,u=r.MenuList,c=r.MenuPortal,f=r.LoadingMessage,p=r.NoOptionsMessage,b=r.Option,d=this.commonProps,m=this.state.focusedOption,h=this.props,v=h.captureMenuScroll,x=h.inputValue,E=h.isLoading,g=h.loadingMessage,w=h.minMenuHeight,C=h.maxMenuHeight,y=h.menuIsOpen,S=h.menuPlacement,A=h.menuPosition,_=h.menuPortalTarget,P=h.menuShouldBlockScroll,F=h.menuShouldScrollIntoView,B=h.noOptionsMessage,j=h.onMenuScrollToTop,L=h.onMenuScrollToBottom;if(!y)return null;var k=function(Z,pe){var fe=Z.type,ee=Z.data,oe=Z.isDisabled,U=Z.isSelected,X=Z.label,$=Z.value,he=m===ee,qe=oe?void 0:function(){return i.onOptionHover(ee)},ze=oe?void 0:function(){return i.selectOption(ee)},ht="".concat(i.getElementId("option"),"-").concat(pe),R={id:ht,onClick:ze,onMouseMove:qe,onMouseOver:qe,tabIndex:-1};return se(b,W({},d,{innerProps:R,data:ee,isDisabled:oe,isSelected:U,key:ht,label:X,type:fe,value:$,isFocused:he,innerRef:he?i.getFocusedOptionRef:void 0}),i.formatOptionLabel(Z.data,"menu"))},T;if(this.hasOptions())T=this.getCategorizedOptions().map(function(q){if(q.type==="group"){var Z=q.data,pe=q.options,fe=q.index,ee="".concat(i.getElementId("group"),"-").concat(fe),oe="".concat(ee,"-heading");return se(o,W({},d,{key:ee,data:Z,options:pe,Heading:s,headingProps:{id:oe,data:q.data},label:i.formatGroupLabel(q.data)}),q.options.map(function(U){return k(U,"".concat(fe,"-").concat(U.index))}))}else if(q.type==="option")return k(q,"".concat(q.index))});else if(E){var N=g({inputValue:x});if(N===null)return null;T=se(f,d,N)}else{var M=B({inputValue:x});if(M===null)return null;T=se(p,d,M)}var D={minMenuHeight:w,maxMenuHeight:C,menuPlacement:S,menuPosition:A,menuShouldScrollIntoView:F},V=se(EI,W({},d,D),function(q){var Z=q.ref,pe=q.placerProps,fe=pe.placement,ee=pe.maxHeight;return se(l,W({},d,D,{innerRef:Z,innerProps:{onMouseDown:i.onMenuMouseDown,onMouseMove:i.onMenuMouseMove,id:i.getElementId("listbox")},isLoading:E,placement:fe}),se(cM,{captureEnabled:v,onTopArrive:j,onBottomArrive:L,lockEnabled:P},function(oe){return se(u,W({},d,{innerRef:function(X){i.getMenuListRef(X),oe(X)},isLoading:E,maxHeight:ee,focusedOption:m}),T)}))});return _||A==="fixed"?se(c,W({},d,{appendTo:_,controlElement:this.controlRef,menuPlacement:S,menuPosition:A}),V):V}},{key:"renderFormField",value:function(){var i=this,r=this.props,o=r.delimiter,s=r.isDisabled,l=r.isMulti,u=r.name,c=r.required,f=this.state.selectValue;if(c&&!this.hasValue()&&!s)return se(dM,{name:u,onFocus:this.onValueInputFocus});if(!(!u||s))if(l)if(o){var p=f.map(function(m){return i.getOptionValue(m)}).join(o);return se("input",{name:u,type:"hidden",value:p})}else{var b=f.length>0?f.map(function(m,h){return se("input",{key:"i-".concat(h),name:u,type:"hidden",value:i.getOptionValue(m)})}):se("input",{name:u,type:"hidden",value:""});return se("div",null,b)}else{var d=f[0]?this.getOptionValue(f[0]):"";return se("input",{name:u,type:"hidden",value:d})}}},{key:"renderLiveRegion",value:function(){var i=this.commonProps,r=this.state,o=r.ariaSelection,s=r.focusedOption,l=r.focusedValue,u=r.isFocused,c=r.selectValue,f=this.getFocusableOptions();return se(YL,W({},i,{id:this.getElementId("live-region"),ariaSelection:o,focusedOption:s,focusedValue:l,isFocused:u,selectValue:c,focusableOptions:f}))}},{key:"render",value:function(){var i=this.getComponents(),r=i.Control,o=i.IndicatorsContainer,s=i.SelectContainer,l=i.ValueContainer,u=this.props,c=u.className,f=u.id,p=u.isDisabled,b=u.menuIsOpen,d=this.state.isFocused,m=this.commonProps=this.getCommonProps();return se(s,W({},m,{className:c,innerProps:{id:f,onKeyDown:this.onKeyDown},isDisabled:p,isFocused:d}),this.renderLiveRegion(),se(r,W({},m,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:p,isFocused:d,menuIsOpen:b}),se(l,W({},m,{isDisabled:p}),this.renderPlaceholderOrValue(),this.renderInput()),se(o,W({},m,{isDisabled:p}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())}}],[{key:"getDerivedStateFromProps",value:function(i,r){var o=r.prevProps,s=r.clearFocusValueOnUpdate,l=r.inputIsHiddenAfterUpdate,u=r.ariaSelection,c=r.isFocused,f=r.prevWasFocused,p=i.options,b=i.value,d=i.menuIsOpen,m=i.inputValue,h=i.isMulti,v=om(b),x={};if(o&&(b!==o.value||p!==o.options||d!==o.menuIsOpen||m!==o.inputValue)){var E=d?CM(i,v):[],g=s?AM(r,v):null,w=IM(r,E);x={selectValue:v,focusedOption:w,focusedValue:g,clearFocusValueOnUpdate:!1}}var C=l!=null&&i!==o?{inputIsHidden:l,inputIsHiddenAfterUpdate:void 0}:{},y=u,S=c&&f;return c&&!S&&(y={value:Vr(h,v,v[0]||null),options:v,action:"initial-input-focus"},S=!f),(u==null?void 0:u.action)==="initial-input-focus"&&(y=null),ae(ae(ae({},x),C),{},{prevProps:i,ariaSelection:y,prevWasFocused:S})}}]),a}(Ct);dm.defaultProps=SM;var TM=["defaultInputValue","defaultMenuIsOpen","defaultValue","inputValue","menuIsOpen","onChange","onInputChange","onMenuClose","onMenuOpen","value"];function S_(e){var t=e.defaultInputValue,a=t===void 0?"":t,n=e.defaultMenuIsOpen,i=n===void 0?!1:n,r=e.defaultValue,o=r===void 0?null:r,s=e.inputValue,l=e.menuIsOpen,u=e.onChange,c=e.onInputChange,f=e.onMenuClose,p=e.onMenuOpen,b=e.value,d=Wt(e,TM),m=Re(s!==void 0?s:a),h=Le(m,2),v=h[0],x=h[1],E=Re(l!==void 0?l:i),g=Le(E,2),w=g[0],C=g[1],y=Re(b!==void 0?b:o),S=Le(y,2),A=S[0],_=S[1],P=Fe(function(N,M){typeof u=="function"&&u(N,M),_(N)},[u]),F=Fe(function(N,M){var D;typeof c=="function"&&(D=c(N,M)),x(D!==void 0?D:N)},[c]),B=Fe(function(){typeof p=="function"&&p(),C(!0)},[p]),j=Fe(function(){typeof f=="function"&&f(),C(!1)},[f]),L=s!==void 0?s:v,k=l!==void 0?l:w,T=b!==void 0?b:A;return ae(ae({},d),{},{inputValue:L,menuIsOpen:k,onChange:P,onInputChange:F,onMenuClose:j,onMenuOpen:B,value:T})}var kM=["defaultOptions","cacheOptions","loadOptions","options","isLoading","onInputChange","filterOption"];function C_(e){var t=e.defaultOptions,a=t===void 0?!1:t,n=e.cacheOptions,i=n===void 0?!1:n,r=e.loadOptions;e.options;var o=e.isLoading,s=o===void 0?!1:o,l=e.onInputChange,u=e.filterOption,c=u===void 0?null:u,f=Wt(e,kM),p=f.inputValue,b=ot(void 0),d=ot(!1),m=Re(Array.isArray(a)?a:void 0),h=Le(m,2),v=h[0],x=h[1],E=Re(typeof p!="undefined"?p:""),g=Le(E,2),w=g[0],C=g[1],y=Re(a===!0),S=Le(y,2),A=S[0],_=S[1],P=Re(void 0),F=Le(P,2),B=F[0],j=F[1],L=Re([]),k=Le(L,2),T=k[0],N=k[1],M=Re(!1),D=Le(M,2),V=D[0],q=D[1],Z=Re({}),pe=Le(Z,2),fe=pe[0],ee=pe[1],oe=Re(void 0),U=Le(oe,2),X=U[0],$=U[1],he=Re(void 0),qe=Le(he,2),ze=qe[0],ht=qe[1];i!==ze&&(ee({}),ht(i)),a!==X&&(x(Array.isArray(a)?a:void 0),$(a)),ha(function(){return d.current=!0,function(){d.current=!1}},[]);var R=Fe(function(H,ne){if(!r)return ne();var K=r(H,ne);K&&typeof K.then=="function"&&K.then(ne,function(){return ne()})},[r]);ha(function(){a===!0&&R(w,function(H){d.current&&(x(H||[]),_(!!b.current))})},[]);var z=Fe(function(H,ne){var K=dI(H,ne,l);if(!K){b.current=void 0,C(""),j(""),N([]),_(!1),q(!1);return}if(i&&fe[K])C(K),j(K),N(fe[K]),_(!1),q(!1);else{var Ae=b.current={};C(K),_(!0),q(!B),R(K,function(ue){d&&Ae===b.current&&(b.current=void 0,_(!1),j(K),N(ue||[]),q(!1),ee(ue?ae(ae({},fe),{},jt({},K,ue)):fe))})}},[i,R,B,fe,l]),J=V?[]:w&&B?T:v||[];return ae(ae({},f),{},{options:J,isLoading:A||s,onInputChange:z,filterOption:c})}var FM=Nn(function(e,t){var a=C_(e),n=S_(a);return se(dm,W({ref:t},n))}),Jr=FM;function Aa(e){return Array.isArray?Array.isArray(e):O_(e)==="[object Array]"}var PM=1/0;function OM(e){if(typeof e=="string")return e;let t=e+"";return t=="0"&&1/e==-PM?"-0":t}function RM(e){return e==null?"":OM(e)}function da(e){return typeof e=="string"}function F_(e){return typeof e=="number"}function BM(e){return e===!0||e===!1||NM(e)&&O_(e)=="[object Boolean]"}function P_(e){return typeof e=="object"}function NM(e){return P_(e)&&e!==null}function Bt(e){return e!=null}function fm(e){return!e.trim().length}function O_(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var jM="Incorrect 'index' type",LM=e=>`Invalid value for key ${e}`,MM=e=>`Pattern length exceeds max of ${e}.`,DM=e=>`Missing ${e} property in key`,zM=e=>`Property 'weight' in key '${e}' must be a positive integer`,A_=Object.prototype.hasOwnProperty,mm=class{constructor(t){this._keys=[],this._keyMap={};let a=0;t.forEach(n=>{let i=R_(n);a+=i.weight,this._keys.push(i),this._keyMap[i.id]=i,a+=i.weight}),this._keys.forEach(n=>{n.weight/=a})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function R_(e){let t=null,a=null,n=null,i=1,r=null;if(da(e)||Aa(e))n=e,t=I_(e),a=hm(e);else{if(!A_.call(e,"name"))throw new Error(DM("name"));let o=e.name;if(n=o,A_.call(e,"weight")&&(i=e.weight,i<=0))throw new Error(zM(o));t=I_(o),a=hm(o),r=e.getFn}return{path:t,id:a,weight:i,src:n,getFn:r}}function I_(e){return Aa(e)?e:e.split(".")}function hm(e){return Aa(e)?e.join("."):e}function GM(e,t){let a=[],n=!1,i=(r,o,s)=>{if(Bt(r))if(!o[s])a.push(r);else{let l=o[s],u=r[l];if(!Bt(u))return;if(s===o.length-1&&(da(u)||F_(u)||BM(u)))a.push(RM(u));else if(Aa(u)){n=!0;for(let c=0,f=u.length;ce.score===t.score?e.idx{this._keysMap[a.id]=n})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,da(this.docs[0])?this.docs.forEach((t,a)=>{this._addString(t,a)}):this.docs.forEach((t,a)=>{this._addObject(t,a)}),this.norm.clear())}add(t){let a=this.size();da(t)?this._addString(t,a):this._addObject(t,a)}removeAt(t){this.records.splice(t,1);for(let a=t,n=this.size();a{let o=i.getFn?i.getFn(t):this.getFn(t,i.path);if(Bt(o)){if(Aa(o)){let s=[],l=[{nestedArrIndex:-1,value:o}];for(;l.length;){let{nestedArrIndex:u,value:c}=l.pop();if(Bt(c))if(da(c)&&!fm(c)){let f={v:c,i:u,n:this.norm.get(c)};s.push(f)}else Aa(c)&&c.forEach((f,p)=>{l.push({nestedArrIndex:p,value:f})})}n.$[r]=s}else if(da(o)&&!fm(o)){let s={v:o,n:this.norm.get(o)};n.$[r]=s}}}),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}};function B_(e,t,{getFn:a=le.getFn,fieldNormWeight:n=le.fieldNormWeight}={}){let i=new Zr({getFn:a,fieldNormWeight:n});return i.setKeys(e.map(R_)),i.setSources(t),i.create(),i}function qM(e,{getFn:t=le.getFn,fieldNormWeight:a=le.fieldNormWeight}={}){let{keys:n,records:i}=e,r=new Zr({getFn:t,fieldNormWeight:a});return r.setKeys(n),r.setIndexRecords(i),r}function Ic(e,{errors:t=0,currentLocation:a=0,expectedLocation:n=0,distance:i=le.distance,ignoreLocation:r=le.ignoreLocation}={}){let o=t/e.length;if(r)return o;let s=Math.abs(n-a);return i?o+s/i:s?1:o}function XM(e=[],t=le.minMatchCharLength){let a=[],n=-1,i=-1,r=0;for(let o=e.length;r=t&&a.push([n,i]),n=-1)}return e[r-1]&&r-n>=t&&a.push([n,r-1]),a}var wn=32;function $M(e,t,a,{location:n=le.location,distance:i=le.distance,threshold:r=le.threshold,findAllMatches:o=le.findAllMatches,minMatchCharLength:s=le.minMatchCharLength,includeMatches:l=le.includeMatches,ignoreLocation:u=le.ignoreLocation}={}){if(t.length>wn)throw new Error(MM(wn));let c=t.length,f=e.length,p=Math.max(0,Math.min(n,f)),b=r,d=p,m=s>1||l,h=m?Array(f):[],v;for(;(v=e.indexOf(t,d))>-1;){let y=Ic(t,{currentLocation:v,expectedLocation:p,distance:i,ignoreLocation:u});if(b=Math.min(y,b),d=v+c,m){let S=0;for(;S=_;j-=1){let L=j-1,k=a[e.charAt(L)];if(m&&(h[L]=+!!k),F[j]=(F[j+1]<<1|1)&k,y&&(F[j]|=(x[j+1]|x[j])<<1|1|x[j+1]),F[j]&w&&(E=Ic(t,{errors:y,currentLocation:L,expectedLocation:p,distance:i,ignoreLocation:u}),E<=b)){if(b=E,d=L,d<=p)break;_=Math.max(1,2*p-d)}}if(Ic(t,{errors:y+1,currentLocation:p,expectedLocation:p,distance:i,ignoreLocation:u})>b)break;x=F}let C={isMatch:d>=0,score:Math.max(.001,E)};if(m){let y=XM(h,s);y.length?l&&(C.indices=y):C.isMatch=!1}return C}function YM(e){let t={};for(let a=0,n=e.length;a{this.chunks.push({pattern:p,alphabet:YM(p),startIndex:b})},f=this.pattern.length;if(f>wn){let p=0,b=f%wn,d=f-b;for(;p{let{isMatch:v,score:x,indices:E}=$M(t,d,m,{location:i+h,distance:r,threshold:o,findAllMatches:s,minMatchCharLength:l,includeMatches:n,ignoreLocation:u});v&&(p=!0),f+=x,v&&E&&(c=[...c,...E])});let b={isMatch:p,score:p?f/this.chunks.length:1};return p&&n&&(b.indices=c),b}},fa=class{constructor(t){this.pattern=t}static isMultiMatch(t){return __(t,this.multiRegex)}static isSingleMatch(t){return __(t,this.singleRegex)}search(){}};function __(e,t){let a=e.match(t);return a?a[1]:null}var vm=class extends fa{constructor(t){super(t)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(t){let a=t===this.pattern;return{isMatch:a,score:a?0:1,indices:[0,this.pattern.length-1]}}},bm=class extends fa{constructor(t){super(t)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(t){let n=t.indexOf(this.pattern)===-1;return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}},gm=class extends fa{constructor(t){super(t)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(t){let a=t.startsWith(this.pattern);return{isMatch:a,score:a?0:1,indices:[0,this.pattern.length-1]}}},xm=class extends fa{constructor(t){super(t)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(t){let a=!t.startsWith(this.pattern);return{isMatch:a,score:a?0:1,indices:[0,t.length-1]}}},ym=class extends fa{constructor(t){super(t)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(t){let a=t.endsWith(this.pattern);return{isMatch:a,score:a?0:1,indices:[t.length-this.pattern.length,t.length-1]}}},wm=class extends fa{constructor(t){super(t)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(t){let a=!t.endsWith(this.pattern);return{isMatch:a,score:a?0:1,indices:[0,t.length-1]}}},Tc=class extends fa{constructor(t,{location:a=le.location,threshold:n=le.threshold,distance:i=le.distance,includeMatches:r=le.includeMatches,findAllMatches:o=le.findAllMatches,minMatchCharLength:s=le.minMatchCharLength,isCaseSensitive:l=le.isCaseSensitive,ignoreLocation:u=le.ignoreLocation}={}){super(t),this._bitapSearch=new _c(t,{location:a,threshold:n,distance:i,includeMatches:r,findAllMatches:o,minMatchCharLength:s,isCaseSensitive:l,ignoreLocation:u})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(t){return this._bitapSearch.searchIn(t)}},kc=class extends fa{constructor(t){super(t)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(t){let a=0,n,i=[],r=this.pattern.length;for(;(n=t.indexOf(this.pattern,a))>-1;)a=n+r,i.push([n,a-1]);let o=!!i.length;return{isMatch:o,score:o?0:1,indices:i}}},Em=[vm,kc,gm,xm,wm,ym,bm,Tc],T_=Em.length,KM=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,QM="|";function eD(e,t={}){return e.split(QM).map(a=>{let n=a.trim().split(KM).filter(r=>r&&!!r.trim()),i=[];for(let r=0,o=n.length;r!!(e[Fc.AND]||e[Fc.OR]),nD=e=>!!e[Im.PATH],iD=e=>!Aa(e)&&P_(e)&&!_m(e),k_=e=>({[Fc.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function N_(e,t,{auto:a=!0}={}){let n=i=>{let r=Object.keys(i),o=nD(i);if(!o&&r.length>1&&!_m(i))return n(k_(i));if(iD(i)){let l=o?i[Im.PATH]:r[0],u=o?i[Im.PATTERN]:i[l];if(!da(u))throw new Error(LM(l));let c={keyId:hm(l),pattern:u};return a&&(c.searcher=Am(u,t)),c}let s={children:[],operator:r[0]};return r.forEach(l=>{let u=i[l];Aa(u)&&u.forEach(c=>{s.children.push(n(c))})}),s};return _m(e)||(e=k_(e)),n(e)}function rD(e,{ignoreFieldNorm:t=le.ignoreFieldNorm}){e.forEach(a=>{let n=1;a.matches.forEach(({key:i,norm:r,score:o})=>{let s=i?i.weight:null;n*=Math.pow(o===0&&s?Number.EPSILON:o,(s||1)*(t?1:r))}),a.score=n})}function oD(e,t){let a=e.matches;t.matches=[],Bt(a)&&a.forEach(n=>{if(!Bt(n.indices)||!n.indices.length)return;let{indices:i,value:r}=n,o={indices:i,value:r};n.key&&(o.key=n.key.src),n.idx>-1&&(o.refIndex=n.idx),t.matches.push(o)})}function sD(e,t){t.score=e.score}function lD(e,t,{includeMatches:a=le.includeMatches,includeScore:n=le.includeScore}={}){let i=[];return a&&i.push(oD),n&&i.push(sD),e.map(r=>{let{idx:o}=r,s={item:t[o],refIndex:o};return i.length&&i.forEach(l=>{l(r,s)}),s})}var qt=class{constructor(t,a={},n){this.options={...le,...a},this.options.useExtendedSearch,this._keyStore=new mm(this.options.keys),this.setCollection(t,n)}setCollection(t,a){if(this._docs=t,a&&!(a instanceof Zr))throw new Error(jM);this._myIndex=a||B_(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(t){Bt(t)&&(this._docs.push(t),this._myIndex.add(t))}remove(t=()=>!1){let a=[];for(let n=0,i=this._docs.length;n-1&&(l=l.slice(0,a)),lD(l,this._docs,{includeMatches:n,includeScore:i})}_searchStringList(t){let a=Am(t,this.options),{records:n}=this._myIndex,i=[];return n.forEach(({v:r,i:o,n:s})=>{if(!Bt(r))return;let{isMatch:l,score:u,indices:c}=a.searchIn(r);l&&i.push({item:r,idx:o,matches:[{score:u,value:r,norm:s,indices:c}]})}),i}_searchLogical(t){let a=N_(t,this.options),n=(s,l,u)=>{if(!s.children){let{keyId:f,searcher:p}=s,b=this._findMatches({key:this._keyStore.get(f),value:this._myIndex.getValueForItemAtKeyId(l,f),searcher:p});return b&&b.length?[{idx:u,item:l,matches:b}]:[]}let c=[];for(let f=0,p=s.children.length;f{if(Bt(s)){let u=n(a,s,l);u.length&&(r[l]||(r[l]={idx:l,item:s,matches:[]},o.push(r[l])),u.forEach(({matches:c})=>{r[l].matches.push(...c)}))}}),o}_searchObjectList(t){let a=Am(t,this.options),{keys:n,records:i}=this._myIndex,r=[];return i.forEach(({$:o,i:s})=>{if(!Bt(o))return;let l=[];n.forEach((u,c)=>{l.push(...this._findMatches({key:u,value:o[c],searcher:a}))}),l.length&&r.push({idx:s,item:o,matches:l})}),r}_findMatches({key:t,value:a,searcher:n}){if(!Bt(a))return[];let i=[];if(Aa(a))a.forEach(({v:r,i:o,n:s})=>{if(!Bt(r))return;let{isMatch:l,score:u,indices:c}=n.searchIn(r);l&&i.push({score:u,key:t,value:r,idx:o,norm:s,indices:c})});else{let{v:r,n:o}=a,{isMatch:s,score:l,indices:u}=n.searchIn(r);s&&i.push({score:l,key:t,value:r,norm:o,indices:u})}return i}};qt.version="6.6.2";qt.createIndex=B_;qt.parseIndex=qM;qt.config=le;qt.parseQuery=N_;aD(Sm);var qr=[{value:"academy-of-management-review",label:"Academy of Management Review"},{value:"accident-analysis-and-prevention",label:"Accident Analysis and Prevention"},{value:"aci-materials-journal",label:"ACI Materials Journal"},{value:"acm-sig-proceedings-long-author-list",label:'ACM SIG Proceedings ("et al." for 15+ authors)'},{value:"acm-sig-proceedings",label:'ACM SIG Proceedings ("et al." for 3+ authors)'},{value:"acm-sigchi-proceedings-extended-abstract-format",label:"ACM SIGCHI Proceedings - Extended Abstract Format"},{value:"acm-sigchi-proceedings",label:"ACM SIGCHI Proceedings (2016)"},{value:"acm-siggraph",label:"ACM SIGGRAPH"},{value:"acme-an-international-journal-for-critical-geographies",label:"ACME: An International Journal for Critical Geographies"},{value:"acta-amazonica",label:"Acta Amazonica"},{value:"acta-anaesthesiologica-scandinavica",label:"Acta Anaesthesiologica Scandinavica"},{value:"acta-anaesthesiologica-taiwanica",label:"Acta Anaesthesiologica Taiwanica"},{value:"acta-botanica-croatica",label:"Acta Botanica Croatica"},{value:"acta-chiropterologica",label:"Acta Chiropterologica"},{value:"acta-chirurgiae-orthopaedicae-et-traumatologiae-cechoslovaca",label:"Acta chirurgiae orthopaedicae et traumatologiae \u010Cechoslovaca"},{value:"acta-hydrotechnica",label:"Acta hydrotechnica"},{value:"acta-ichthyologica-et-piscatoria",label:"Acta Ichthyologica et Piscatoria"},{value:"acta-medica-peruana",label:"Acta M\xE9dica Peruana"},{value:"acta-naturae",label:"Acta Naturae"},{value:"acta-neurobiologiae-experimentalis",label:"Acta Neurobiologiae Experimentalis"},{value:"acta-neurochirurgica",label:"Acta Neurochirurgica"},{value:"acta-ophthalmologica",label:"Acta Ophthalmologica"},{value:"acta-ornithologica",label:"Acta Ornithologica"},{value:"acta-orthopaedica-belgica",label:"Acta Orthop\xE6dica Belgica"},{value:"acta-orthopaedica",label:"Acta Orthopaedica"},{value:"acta-paediatrica",label:"Acta Paediatrica"},{value:"acta-palaeontologica-polonica",label:"Acta Palaeontologica Polonica"},{value:"acta-pharmaceutica-sinica-b",label:"Acta Pharmaceutica Sinica B"},{value:"acta-pharmaceutica",label:"Acta Pharmaceutica"},{value:"acta-philosophica",label:"Acta Philosophica"},{value:"acta-physica-sinica",label:"Acta Physica Sinica (\u7269\u7406\u5B66\u62A5)"},{value:"acta-physiologica",label:"Acta Physiologica"},{value:"acta-polytechnica",label:"Acta Polytechnica"},{value:"acta-radiologica",label:"Acta Radiologica"},{value:"acta-scientiae-veterinariae",label:"Acta Scientiae Veterinariae"},{value:"acta-societatis-botanicorum-poloniae",label:"Acta Societatis Botanicorum Poloniae"},{value:"acta-universitatis-agriculturae-et-silviculturae-mendelianae-brunensis",label:"Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis"},{value:"acta-universitatis-agriculturae-sueciae",label:"Acta Universitatis Agriculturae Sueciae (Swedish University of Agricultural Sciences)"},{value:"acta-zoologica-academiae-scientiarum-hungaricae",label:"Acta Zoologica Academiae Scientiarum Hungaricae"},{value:"administrative-science-quarterly",label:"Administrative Science Quarterly"},{value:"advanced-engineering-materials",label:"Advanced Engineering Materials"},{value:"advanced-functional-materials",label:"Advanced Functional Materials"},{value:"advanced-healthcare-materials",label:"Advanced Healthcare Materials"},{value:"advanced-materials",label:"Advanced Materials"},{value:"advanced-optical-materials",label:"Advanced Optical Materials"},{value:"advanced-pharmaceutical-bulletin",label:"Advanced Pharmaceutical Bulletin"},{value:"advances-in-alzheimers-disease",label:"Advances in Alzheimer's Disease"},{value:"advances-in-complex-systems",label:"Advances in Complex Systems"},{value:"aerosol-and-air-quality-research",label:"Aerosol and Air Quality Research"},{value:"aerosol-science-and-technology",label:"Aerosol Science and Technology"},{value:"aerospace-medicine-and-human-performance",label:"Aerospace Medicine and Human Performance"},{value:"african-journal-of-marine-science",label:"African Journal of Marine Science"},{value:"african-online-scientific-information-systems-harvard",label:"African Online Scientific Information Systems - Harvard"},{value:"african-online-scientific-information-systems-vancouver",label:"African Online Scientific Information Systems - Vancouver"},{value:"african-zoology",label:"African Zoology"},{value:"afro-asia",label:"Afro-\xC1sia (Portugu\xEAs - Brasil)"},{value:"age-and-ageing",label:"Age and Ageing"},{value:"ageing-and-society",label:"Ageing & Society"},{value:"aging-and-disease",label:"Aging and Disease"},{value:"aging-cell",label:"Aging Cell"},{value:"aging",label:"Aging"},{value:"agora",label:"Agora"},{value:"agriculturae-conspectus-scientificus",label:"Agriculturae Conspectus Scientificus"},{value:"aib-studi",label:"AIB studi (Italiano)"},{value:"aids",label:"AIDS"},{value:"aims-press",label:"AIMS Press"},{value:"aix-marseille-universite-departement-d-etudes-asiatiques",label:"Aix-Marseille Universit\xE9 - D\xE9partement d'\xE9tudes asiatiques (Fran\xE7ais)"},{value:"al-jamiah-journal-of-islamic-studies",label:"Al-Jami'ah - Journal of Islamic Studies"},{value:"alcohol-and-alcoholism",label:"Alcohol and Alcoholism"},{value:"alcoholism-clinical-and-experimental-research",label:"Alcoholism: Clinical and Experimental Research"},{value:"alkoholizmus-a-drogove-zavislosti",label:"Alkoholizmus a drogov\xE9 z\xE1vislosti"},{value:"allergology-international",label:"Allergology International"},{value:"allergy",label:"Allergy"},{value:"alternatif-politika",label:"Alternatif Politika"},{value:"alternatives-to-animal-experimentation",label:"Alternatives to Animal Experimentation"},{value:"ambio",label:"AMBIO"},{value:"ameghiniana",label:"Ameghiniana"},{value:"american-anthropological-association",label:"American Anthropological Association"},{value:"american-association-for-cancer-research",label:"American Association for Cancer Research"},{value:"american-association-of-petroleum-geologists",label:"American Association of Petroleum Geologists"},{value:"american-chemical-society",label:"American Chemical Society"},{value:"american-fisheries-society",label:"American Fisheries Society"},{value:"american-geophysical-union",label:"American Geophysical Union"},{value:"american-heart-association",label:"American Heart Association"},{value:"american-institute-of-aeronautics-and-astronautics",label:"American Institute of Aeronautics and Astronautics"},{value:"american-institute-of-physics",label:"American Institute of Physics"},{value:"american-journal-of-agricultural-economics",label:"American Journal of Agricultural Economics"},{value:"american-journal-of-archaeology",label:"American Journal of Archaeology"},{value:"american-journal-of-botany",label:"American Journal of Botany"},{value:"american-journal-of-climate-change",label:"American Journal of Climate Change"},{value:"american-journal-of-clinical-pathology",label:"American Journal of Clinical Pathology"},{value:"american-journal-of-enology-and-viticulture",label:"American Journal of Enology and Viticulture"},{value:"american-journal-of-epidemiology",label:"American Journal of Epidemiology"},{value:"american-journal-of-health-behavior",label:"American Journal of Health Behavior"},{value:"american-journal-of-hypertension",label:"American Journal of Hypertension"},{value:"american-journal-of-medical-genetics",label:"American Journal of Medical Genetics"},{value:"american-journal-of-neuroradiology",label:"American Journal of Neuroradiology"},{value:"american-journal-of-orthodontics-and-dentofacial-orthopedics",label:"American Journal of Orthodontics & Dentofacial Orthopedics"},{value:"american-journal-of-plant-sciences",label:"American Journal of Plant Sciences"},{value:"american-journal-of-political-science",label:"American Journal of Political Science"},{value:"american-journal-of-respiratory-and-critical-care-medicine",label:"American Journal of Respiratory and Critical Care Medicine"},{value:"american-journal-of-science",label:"American Journal of Science"},{value:"american-journal-of-sociology",label:"American Journal of Sociology"},{value:"american-journal-of-sonography",label:"American Journal of Sonography"},{value:"american-journal-of-surgical-pathology",label:"American Journal of Surgical Pathology"},{value:"american-journal-of-translational-research",label:"American Journal of Translational Research"},{value:"american-marketing-association",label:"American Marketing Association"},{value:"american-medical-association-10th-edition",label:"American Medical Association 10th edition"},{value:"american-medical-association-alphabetical",label:"American Medical Association 11th edition (sorted alphabetically)"},{value:"american-medical-association-brackets",label:"American Medical Association 11th edition (brackets)"},{value:"american-medical-association-no-et-al",label:'American Medical Association 11th edition (no "et al.")'},{value:"american-medical-association-no-url",label:"American Medical Association 11th edition (no URL)"},{value:"american-medical-association",label:"American Medical Association 11th edition"},{value:"american-meteorological-society",label:"American Meteorological Society"},{value:"american-mineralogist",label:"American Mineralogist"},{value:"american-nuclear-society",label:"American Nuclear Society"},{value:"american-physical-society-et-al",label:"American Physical Society - et al. (if more than 3 authors)"},{value:"american-physics-society-without-titles",label:"American Physical Society (without titles)"},{value:"american-physics-society",label:"American Physical Society"},{value:"american-physiological-society",label:"American Physiological Society"},{value:"american-phytopathological-society",label:"American Phytopathological Society"},{value:"american-political-science-association",label:"American Political Science Association"},{value:"american-school-of-classical-studies-at-athens",label:"American School of Classical Studies at Athens"},{value:"american-society-for-horticultural-science",label:"American Society for Horticultural Science"},{value:"american-society-for-microbiology",label:"American Society for Microbiology"},{value:"american-society-for-pharmacology-and-experimental-therapeutics",label:"American Society for Pharmacology and Experimental Therapeutics"},{value:"american-society-of-agricultural-and-biological-engineers",label:"American Society of Agricultural and Biological Engineers"},{value:"american-society-of-civil-engineers",label:"American Society of Civil Engineers"},{value:"american-society-of-mechanical-engineers",label:"American Society of Mechanical Engineers"},{value:"american-sociological-association",label:"American Sociological Association 6th edition"},{value:"american-statistical-association",label:"American Statistical Association"},{value:"american-veterinary-medical-association",label:"American Veterinary Medical Association"},{value:"amerindia",label:"Amerindia"},{value:"amphibia-reptilia",label:"Amphibia-Reptilia"},{value:"amsterdam-university-press-academic",label:"Amsterdam University Press - Academic"},{value:"anabases",label:"Anabases"},{value:"anaesthesia",label:"Anaesthesia"},{value:"analytical-sciences",label:"Analytical Sciences"},{value:"anatomical-sciences-education",label:"Anatomical Sciences Education"},{value:"ancilla-iuris",label:"Ancilla Iuris"},{value:"andean-geology",label:"Andean Geology"},{value:"anesthesia-and-analgesia",label:"Anesthesia and Analgesia"},{value:"anesthesiology",label:"Anesthesiology"},{value:"angewandte-chemie",label:"Angewandte Chemie International Edition"},{value:"angiologia",label:"Angiologia (Espa\xF1ol)"},{value:"anglia",label:"Anglia"},{value:"animal-conservation",label:"Animal Conservation"},{value:"animal-migration",label:"Animal Migration"},{value:"animal-welfare",label:"Animal Welfare"},{value:"animal",label:"animal"},{value:"annalen-des-naturhistorischen-museums-in-wien",label:"Annalen des Naturhistorischen Museums in Wien"},{value:"annales-de-demographie-historique",label:"Annales de d\xE9mographie historique"},{value:"annales",label:"Annales. Histoire, Sciences sociales (Fran\xE7ais)"},{value:"annals-of-applied-biology",label:"Annals of Applied Biology"},{value:"annals-of-behavioral-medicine",label:"Annals of Behavioral Medicine"},{value:"annals-of-biomedical-engineering",label:"Annals of Biomedical Engineering"},{value:"annals-of-botany",label:"Annals of Botany"},{value:"annals-of-eye-science",label:"Annals of Eye Science"},{value:"annals-of-joint",label:"Annals of Joint"},{value:"annals-of-laboratory-medicine",label:"Annals of Laboratory Medicine"},{value:"annals-of-neurology",label:"Annals of Neurology"},{value:"annals-of-oncology",label:"Annals of Oncology"},{value:"annals-of-public-and-cooperative-economics",label:"Annals of Public and Cooperative Economics"},{value:"annals-of-surgery",label:"Annals of Surgery"},{value:"annals-of-the-association-of-american-geographers",label:"Annals of the Association of American Geographers"},{value:"annals-of-the-new-york-academy-of-sciences",label:"Annals of the New York Academy of Sciences"},{value:"annals-of-work-exposures-and-health",label:"Annals of Work Exposures and Health"},{value:"annual-review-of-astronomy-and-astrophysics",label:"Annual Review of Astronomy and Astrophysics"},{value:"annual-review-of-linguistics",label:"Annual Review of Linguistics"},{value:"annual-review-of-medicine",label:"Annual Review of Medicine"},{value:"annual-review-of-nuclear-and-particle-science",label:"Annual Review of Nuclear and Particle Science"},{value:"annual-reviews-alphabetical",label:"Annual Reviews (sorted alphabetically)"},{value:"annual-reviews-author-date",label:"Annual Reviews (author-date)"},{value:"annual-reviews-without-titles",label:"Annual Reviews (sorted by order of appearance, without titles)"},{value:"annual-reviews",label:"Annual Reviews (sorted by order of appearance)"},{value:"antarctic-science",label:"Antarctic Science"},{value:"anthropologie-et-societes",label:"Anthropologie et Soci\xE9t\xE9s (Fran\xE7ais)"},{value:"anti-trafficking-review",label:"Anti-Trafficking Review"},{value:"anticancer-research",label:"Anticancer Research"},{value:"antipode",label:"Antipode"},{value:"antiquites-africaines",label:"Antiquit\xE9s africaines"},{value:"antiquity",label:"Antiquity"},{value:"apa-5th-edition",label:"American Psychological Association 5th edition"},{value:"apa-6th-edition-no-ampersand",label:"American Psychological Association 6th edition (no ampersand)"},{value:"apa-6th-edition",label:"American Psychological Association 6th edition"},{value:"apa-annotated-bibliography",label:"American Psychological Association 7th edition (annotated bibliography)"},{value:"apa-cv",label:"American Psychological Association 7th edition (curriculum vitae, sorted by descending date)"},{value:"apa-fr-provost",label:"American Psychological Association 6th edition (Provost) (Fran\xE7ais - Canada)"},{value:"apa-no-ampersand",label:"American Psychological Association 7th edition (no ampersand)"},{value:"apa-no-doi-no-issue",label:"American Psychological Association 6th edition (no DOIs, no issue numbers)"},{value:"apa-no-initials",label:"American Psychological Association 7th edition (no initials)"},{value:"apa-numeric-superscript-brackets",label:"American Psychological Association 7th edition (numeric, brackets)"},{value:"apa-numeric-superscript",label:"American Psychological Association 7th edition (numeric, superscript)"},{value:"apa-old-doi-prefix",label:'American Psychological Association 6th edition ("doi:" DOI prefix)'},{value:"apa-single-spaced",label:"American Psychological Association 7th edition (single-spaced bibliography)"},{value:"apa-tr",label:"American Psychological Association 6th edition (T\xFCrk\xE7e)"},{value:"apa-with-abstract",label:"American Psychological Association 7th edition (with abstract)"},{value:"apa",label:"American Psychological Association 7th edition"},{value:"aporia-the-nursing-journal",label:"Aporia: The Nursing Journal"},{value:"applied-clay-science",label:"Applied Clay Science"},{value:"applied-spectroscopy-reviews",label:"Applied Spectroscopy Reviews"},{value:"applied-spectroscopy",label:"Applied Spectroscopy"},{value:"aquatic-conservation",label:"Aquatic Conservation: Marine and Freshwater Ecosystems"},{value:"aquatic-invasions",label:"Aquatic Invasions"},{value:"aquatic-living-resources",label:"Aquatic Living Resources"},{value:"aquitania",label:"Aquitania (Fran\xE7ais)"},{value:"arachne",label:"Arachne"},{value:"arachnology",label:"Arachnology"},{value:"arbok-hins-islenzka-fornleifafelags",label:"\xC1rb\xF3k Hins \xEDslenzka fornleifaf\xE9lags (\xCDslenska)"},{value:"archaeologia-austriaca",label:"Archaeologia Austriaca"},{value:"archaeometry",label:"Archaeometry"},{value:"archaeonautica",label:"Archaeonautica"},{value:"archeologia-classica",label:"Archeologia Classica (Italiano)"},{value:"archeologicke-rozhledy",label:"Archeologick\xE9 rozhledy"},{value:"archeologie-medievale",label:"Arch\xE9ologie m\xE9di\xE9vale (Fran\xE7ais)"},{value:"archeologies-et-sciences-de-lantiquite",label:"Arch\xE9ologies et Sciences de l'Antiquit\xE9 (Fran\xE7ais)"},{value:"archeosciences",label:"ArcheoSciences (Fran\xE7ais)"},{value:"archiv-fur-die-civilistische-praxis",label:"Archiv f\xFCr die civilistische Praxis (Deutsch)"},{value:"archiv-fur-geschichte-der-philosophie",label:"Archiv f\xFCr Geschichte der Philosophie"},{value:"archives-of-hand-and-microsurgery",label:"Archives of Hand and Microsurgery"},{value:"archives-of-physical-medicine-and-rehabilitation",label:"Archives of Physical Medicine and Rehabilitation"},{value:"archivos-de-bronconeumologia",label:"Archivos de Bronconeumolog\xEDa"},{value:"archivos-de-la-sociedad-espanola-de-oftalmologia",label:"Archivos de la Sociedad Espa\xF1ola de Oftalmolog\xEDa (Espa\xF1ol)"},{value:"archivum-latinitatis-medii-aevi",label:"Archivum Latinitatis Medii Aevi (Fran\xE7ais)"},{value:"arctic-antarctic-and-alpine-research",label:"Arctic, Antarctic, and Alpine Research"},{value:"arctic",label:"Arctic"},{value:"arhiv-za-higijenu-rada-i-toksikologiju",label:"Arhiv za higijenu rada i toksikologiju (Archives of Industrial Hygiene and Toxicology)"},{value:"art-history",label:"Art History"},{value:"art-libraries-society-of-north-america-arlisna-reviews",label:"Art Libraries Society of North America: ARLIS/NA Reviews"},{value:"artery-research",label:"Artery Research"},{value:"arthritis-and-rheumatism",label:"Arthritis & Rheumatism"},{value:"arthropod-systematics-and-phylogeny",label:"Arthropod Systematics & Phylogeny"},{value:"arts-university-bournemouth",label:"Arts University Bournemouth"},{value:"arzneimitteltherapie",label:"Arzneimitteltherapie"},{value:"asa-cssa-sssa",label:"American Society of Agronomy, Crop Science Society of America, Soil Science Society of America"},{value:"asaio-journal",label:"ASAIO Journal (American Society for Artificial Internal Organs)"},{value:"asia-and-the-pacific-policy-studies",label:"Asia & the Pacific Policy Studies"},{value:"asia-pacific-journal-of-human-resources",label:"Asia Pacific Journal of Human Resources"},{value:"asian-journal-of-neurosurgery",label:"Asian Journal of Neurosurgery"},{value:"asian-myrmecology",label:"Asian Myrmecology"},{value:"asian-studies-review",label:"Asian Studies Review"},{value:"associacao-brasileira-de-normas-tecnicas-eceme",label:"Escola de Comando e Estado-Maior do Ex\xE9rcito - ABNT (Portugu\xEAs - Brasil)"},{value:"associacao-brasileira-de-normas-tecnicas-instituto-meira-mattos",label:"Escola de Comando e Estado-Maior do Ex\xE9rcito - Instituto Meira Mattos - ABNT (Portugu\xEAs - Brasil)"},{value:"associacao-brasileira-de-normas-tecnicas-ipea",label:"Instituto de Pesquisa Econ\xF4mica Aplicada - ABNT (Portugu\xEAs - Brasil)"},{value:"associacao-brasileira-de-normas-tecnicas-note",label:"Associa\xE7\xE3o Brasileira de Normas T\xE9cnicas (note, Portugu\xEAs - Brasil)"},{value:"associacao-brasileira-de-normas-tecnicas-ufmg-face-full",label:"Universidade Federal de Minas Gerais - Faculdade de Ci\xEAncias Econ\xF4micas - ABNT (autoria completa) (Portugu\xEAs - Brasil)"},{value:"associacao-brasileira-de-normas-tecnicas-ufmg-face-initials",label:"Universidade Federal de Minas Gerais - Faculdade de Ci\xEAncias Econ\xF4micas - ABNT (autoria abreviada) (Portugu\xEAs - Brasil)"},{value:"associacao-brasileira-de-normas-tecnicas-ufpr",label:"Universidade Federal do Paran\xE1 - ABNT (Portugu\xEAs - Brasil)"},{value:"associacao-brasileira-de-normas-tecnicas-ufrgs-initials",label:"Universidade Federal do Rio Grande do Sul - ABNT (autoria abreviada) (Portugu\xEAs - Brasil)"},{value:"associacao-brasileira-de-normas-tecnicas-ufrgs-note-initials-with-ibid",label:"Universidade Federal do Rio Grande do Sul - ABNT (autoria abreviada, nota, com Ibid.) (Portugu\xEAs - Brasil)"},{value:"associacao-brasileira-de-normas-tecnicas-ufrgs",label:"Universidade Federal do Rio Grande do Sul - ABNT (autoria completa) (Portugu\xEAs - Brasil)"},{value:"associacao-brasileira-de-normas-tecnicas-ufs",label:"Universidade Federal de Sergipe - ABNT (Portugu\xEAs - Brasil)"},{value:"associacao-brasileira-de-normas-tecnicas-unirio-eipp",label:"Universidade Federal do Estado do Rio de Janeiro - Educa\xE7\xE3o Infantil e Pol\xEDticas P\xFAblicas - ABNT (Portugu\xEAs - Brasil)"},{value:"associacao-brasileira-de-normas-tecnicas-usp-fmvz",label:"Universidade de S\xE3o Paulo - Faculdade de Medicina Veterin\xE1ria e Zootecnia - ABNT (Portugu\xEAs - Brasil)"},{value:"associacao-brasileira-de-normas-tecnicas",label:"Associa\xE7\xE3o Brasileira de Normas T\xE9cnicas (Portugu\xEAs - Brasil)"},{value:"associacao-nacional-de-pesquisa-e-ensino-em-transportes",label:"ANPET - Congresso de Pesquisa e Ensino em Transportes (Portugu\xEAs - Brasil)"},{value:"association-de-science-regionale-de-langue-francaise",label:"Association de Science R\xE9gionale de Langue Fran\xE7aise (Fran\xE7ais)"},{value:"association-for-computational-linguistics",label:"Association for Computational Linguistics - Conference Proceedings"},{value:"association-for-computing-machinery",label:"Association for Computing Machinery"},{value:"atlande",label:"Atlande (author-date, Fran\xE7ais)"},{value:"atlas-of-genetics-and-cytogenetics-in-oncology-and-haematology",label:"Atlas of Genetics and Cytogenetics in Oncology and Haematology"},{value:"ausonius-editions",label:"Ausonius \xC9ditions (Fran\xE7ais)"},{value:"austral-ecology",label:"Austral Ecology"},{value:"austral-entomology",label:"Austral Entomology"},{value:"australian-archaeology",label:"Australian Archaeology"},{value:"australian-critical-care",label:"Australian Critical Care"},{value:"australian-dental-journal",label:"Australian Dental Journal"},{value:"australian-guide-to-legal-citation-3rd-edition",label:"Australian Guide to Legal Citation 3rd edition"},{value:"australian-guide-to-legal-citation",label:"Australian Guide to Legal Citation 4th edition"},{value:"australian-historical-studies",label:"Australian Historical Studies"},{value:"australian-journal-of-earth-sciences",label:"Australian Journal of Earth Sciences"},{value:"australian-journal-of-grape-and-wine-research",label:"Australian Journal of Grape and Wine Research"},{value:"australian-road-research-board",label:"Australian Road Research Board"},{value:"australian-veterinary-journal",label:"Australian Veterinary Journal"},{value:"austrian-journal-of-development-studies",label:"Austrian Journal of Development Studies (Journal f\xFCr Entwicklungspolitik)"},{value:"austrian-legal",label:"Austrian Legal (Deutsch - \xD6sterreich)"},{value:"avian-conservation-and-ecology",label:"Avian Conservation and Ecology"},{value:"avian-diseases",label:"Avian Diseases"},{value:"avian-pathology",label:"Avian Pathology"},{value:"ayer",label:"Ayer (Espa\xF1ol)"},{value:"azr-abkurzungs-und-zitierregeln-der-osterreichischen-rechtssprache-und-europarechtlicher-rechtsquellen",label:"AZR - Abk\xFCrzungs- und Zitierregeln der \xF6sterreichischen Rechtssprache und europarechtlicher Rechtsquellen (Deutsch - \xD6sterreich)"},{value:"babes-bolyai-university-faculty-of-orthodox-theology",label:"Babes-Bolyai University - Faculty of Orthodox Theology (no ibid., Rom\xE2n\u0103)"},{value:"babesch-annual-papers-on-mediterranean-archaeology",label:"BABESCH - Annual Papers on Mediterranean Archaeology"},{value:"baghdad-science-journal",label:"Baghdad Science Journal"},{value:"baishideng-publishing-group",label:"Baishideng Publishing Group"},{value:"bakhtiniana-journal-of-discourse-studies",label:"Bakhtiniana: Journal of Discourse Studies"},{value:"begell-house-apa",label:"Begell House - APA"},{value:"begell-house-chicago-author-date",label:"Begell House - Chicago Manual of Style"},{value:"behaviour",label:"Behaviour"},{value:"beilstein-journal-of-organic-chemistry",label:"Beilstein Journal of Organic Chemistry"},{value:"beltz-padagogik",label:"Beltz - P\xE4dagogik (Deutsch)"},{value:"berghahn-books-author-date-en-gb",label:"Berghahn Books (author-date, English - UK)"},{value:"berlin-school-of-economics-and-law-international-marketing-management",label:"Berlin School of Economics and Law - International Marketing Management"},{value:"bern-university-of-applied-sciences-school-of-agricultural-forest-and-food-sciences-hafl",label:"Bern University of Applied Sciences - School of Agricultural, Forest and Food Sciences HAFL (author-date)"},{value:"betriebswirtschaftliche-forschung-und-praxis",label:"Betriebswirtschaftliche Forschung und Praxis (Deutsch)"},{value:"biblio-3w",label:"Biblio 3W (Espa\xF1ol)"},{value:"bibliothecae-it",label:"Bibliothecae.it (Italiano)"},{value:"bibliotheque-d-archeologie-mediterraneenne-et-africaine-biama",label:"Biblioth\xE8que d'arch\xE9ologie m\xE9diterran\xE9enne et africaine (BiAMA) (Fran\xE7ais)"},{value:"bibliotheque-universitaire-de-medecine-vancouver",label:"Biblioth\xE8que universitaire de m\xE9decine - Vancouver (Fran\xE7ais)"},{value:"bibtex",label:"BibTeX generic citation style"},{value:"biens-symboliques-symbolic-goods",label:"Biens symboliques / Symbolic Goods"},{value:"bioarchaeology-international",label:"Bioarchaeology International"},{value:"bioarchaeology-of-the-near-east",label:"Bioarchaeology of the Near East"},{value:"biochemical-journal",label:"Biochemical Journal"},{value:"biochemical-society-transactions",label:"Biochemical Society Transactions"},{value:"biochemistry-and-molecular-biology-education",label:"Biochemistry and Molecular Biology Education"},{value:"biochemistry",label:"Biochemistry"},{value:"biochimica-et-biophysica-acta",label:"Biochimica et Biophysica Acta"},{value:"bioelectromagnetics",label:"Bioelectromagnetics"},{value:"bioinformatics",label:"Bioinformatics"},{value:"biologia",label:"Biologia"},{value:"biological-and-pharmaceutical-bulletin",label:"Biological and Pharmaceutical Bulletin"},{value:"biological-journal-of-the-linnean-society",label:"Biological Journal of the Linnean Society"},{value:"biological-psychiatry",label:"Biological Psychiatry"},{value:"biological-reviews",label:"Biological Reviews"},{value:"biology-of-reproduction",label:"Biology of Reproduction"},{value:"biomarkers",label:"Biomarkers"},{value:"biomed-central",label:"BioMed Central"},{value:"biomed-research-international",label:"BioMed Research International"},{value:"biometrics",label:"Biometrics"},{value:"biophysical-journal",label:"Biophysical Journal"},{value:"biophysics-and-physicobiology",label:"Biophysics and Physicobiology"},{value:"biopolymers",label:"Biopolymers"},{value:"bioresources",label:"BioResources"},{value:"bioscience",label:"BioScience"},{value:"biosocieties",label:"BioSocieties"},{value:"biostatistics",label:"Biostatistics"},{value:"biota-neotropica",label:"Biota Neotropica"},{value:"biotechniques",label:"BioTechniques"},{value:"biotechnology-and-bioengineering",label:"Biotechnology and Bioengineering"},{value:"biotropica",label:"Biotropica"},{value:"bitonline",label:"b.i.t.online (note, Deutsch)"},{value:"biuletyn-polskiego-towarzystwa-jezykoznawczego",label:"Biuletyn Polskiego Towarzystwa J\u0119zykoznawczego (Polski)"},{value:"blood",label:"Blood"},{value:"bloomsbury-academic",label:"Bloomsbury Academic"},{value:"bluebook-inline",label:"Bluebook Inline"},{value:"bluebook-law-review",label:"Bluebook Law Review"},{value:"bluebook2",label:"Bluebook Law Review (2)"},{value:"bmj",label:"BMJ"},{value:"body-and-society",label:"Body & Society"},{value:"boletin-de-la-sociedad-geologica-mexicana",label:"Bolet\xEDn de la Sociedad Geol\xF3gica Mexicana (Espa\xF1ol - Mexico)"},{value:"boletin-de-pediatria",label:"Bolet\xEDn de Pediatr\xEDa (Espa\xF1ol)"},{value:"bollettino-d-archeologia-online",label:"Bollettino d'archeologia online (Italiano)"},{value:"boreal-environment-research",label:"Boreal Environment Research"},{value:"bourgogne-franche-comte-nature",label:"Bourgogne-Franche-Comt\xE9 Nature (Fran\xE7ais)"},{value:"brachytherapy",label:"Brachytherapy"},{value:"brain-behavior-and-evolution",label:"Brain, Behavior and Evolution"},{value:"brazilian-journal-of-experimental-design-data-analysis-and-inferential-statistics",label:"Brazilian Journal of Experimental Design, Data Analysis and Inferential Statistics"},{value:"brazilian-journal-of-infectious-diseases",label:"Brazilian Journal of Infectious Diseases"},{value:"brazilian-journal-of-psychiatry",label:"Brazilian Journal of Psychiatry"},{value:"brazilian-journal-of-veterinary-research-and-animal-science",label:"Brazilian Journal of Veterinary Research and Animal Science"},{value:"brazilian-oral-research",label:"Brazilian Oral Research"},{value:"brewingscience",label:"BrewingScience"},{value:"briefings-in-bioinformatics",label:"Briefings in Bioinformatics"},{value:"british-journal-of-anaesthesia",label:"British Journal of Anaesthesia"},{value:"british-journal-of-cancer",label:"British Journal of Cancer"},{value:"british-journal-of-dermatology",label:"British Journal of Dermatology"},{value:"british-journal-of-haematology",label:"British Journal of Haematology"},{value:"british-journal-of-industrial-relations",label:"British Journal of Industrial Relations"},{value:"british-journal-of-pharmacology",label:"British Journal of Pharmacology"},{value:"british-journal-of-political-science",label:"British Journal of Political Science"},{value:"british-journal-of-surgery",label:"British Journal of Surgery"},{value:"budownictwo-i-architektura-pl",label:"Budownictwo i Architektura"},{value:"building-structure",label:"Building Structure (\u4E2D\u6587)"},{value:"buletin-agrohorti",label:"Buletin Agrohorti"},{value:"bulletin-de-correspondance-hellenique",label:"Bulletin de correspondance hell\xE9nique"},{value:"bulletin-de-la-societe-entomologique-de-france",label:"Bulletin de la Soci\xE9t\xE9 Entomologique de France"},{value:"bulletin-de-la-societe-prehistorique-francaise",label:"Bulletin de la Soci\xE9t\xE9 pr\xE9historique fran\xE7aise (Fran\xE7ais)"},{value:"bulletin-du-centre-detudes-medievales-dauxerre",label:"Bulletin du Centre d\u2019\xE9tudes m\xE9di\xE9vales d\u2019Auxerre (Fran\xE7ais)"},{value:"bulletin-of-geosciences",label:"Bulletin of Geosciences"},{value:"bulletin-of-marine-science",label:"Bulletin of Marine Science"},{value:"bulletin-of-the-american-schools-of-oriental-research",label:"Bulletin of the American Schools of Oriental Research"},{value:"bulletin-of-the-seismological-society-of-america",label:"Bulletin of the Seismological Society of America"},{value:"bursa-uludag-universitesi-egitim-bilimleri-enstitusu",label:"Bursa Uluda\u011F \xDCniversitesi - E\u011Fitim Bilimleri Enstit\xFCs\xFC"},{value:"bursa-uludag-universitesi-fen-bilimleri-enstitusu",label:"Bursa Uludag \xDCniversitesi Fen Bilimleri Enstit\xFCs\xFC"},{value:"bursa-uludag-universitesi-saglik-bilimleri-enstitusu",label:"Bursa Uluda\u011F \xDCniversitesi - Sa\u011Fl\u0131k Bilimleri Enstit\xFCs\xFC"},{value:"bursa-uludag-universitesi-sosyal-bilimler-enstitusu-metinici-atif",label:"Bursa Uluda\u011F \xDCniversitesi - Sosyal Bilimler Enstit\xFCs\xFC (metinici atif)"},{value:"bursa-uludag-universitesi-sosyal-bilimler-enstitusu",label:"Bursa Uluda\u011F \xDCniversitesi - Sosyal Bilimler Enstit\xFCs\xFC"},{value:"business-ethics-a-european-review",label:"Business Ethics: A European Review"},{value:"byzantina-symmeikta",label:"BYZANTINA SYMMEIKTA"},{value:"byzantine-and-modern-greek-studies",label:"Byzantine and Modern Greek Studies"},{value:"cahiers-d-ethnomusicologie",label:"Cahiers d'ethnomusicologie (Fran\xE7ais)"},{value:"cahiers-du-centre-gustave-glotz",label:"Cahiers du Centre Gustave-Glotz (Fran\xE7ais)"},{value:"california-agriculture",label:"California Agriculture"},{value:"cambridge-journal-of-economics",label:"Cambridge Journal of Economics"},{value:"cambridge-university-press-author-date",label:"Cambridge University Press (author-date)"},{value:"cambridge-university-press-law-note",label:"Cambridge University Press - Law (note)"},{value:"cambridge-university-press-note",label:"Cambridge University Press (note)"},{value:"cambridge-university-press-numeric",label:"Cambridge University Press (numeric)"},{value:"campus-adventiste-du-saleve-faculte-adventiste-de-theologie",label:"Campus adventiste du Sal\xE8ve - Facult\xE9 adventiste de th\xE9ologie (Fran\xE7ais)"},{value:"canadian-biosystems-engineering",label:"Canadian Biosystems Engineering"},{value:"canadian-geotechnical-journal",label:"Canadian Geotechnical Journal"},{value:"canadian-journal-of-chemistry",label:"Canadian Journal of Chemistry"},{value:"canadian-journal-of-dietetic-practice-and-research",label:"Canadian Journal of Dietetic Practice and Research"},{value:"canadian-journal-of-earth-sciences",label:"Canadian Journal of Earth Sciences"},{value:"canadian-journal-of-economics",label:"Canadian Journal of Economics"},{value:"canadian-journal-of-fisheries-and-aquatic-sciences",label:"Canadian Journal of Fisheries and Aquatic Sciences"},{value:"canadian-journal-of-physics",label:"Canadian Journal of Physics"},{value:"canadian-journal-of-public-health",label:"Canadian Journal of Public Health"},{value:"canadian-journal-of-soil-science",label:"Canadian Journal of Soil Science"},{value:"canadian-public-policy",label:"Canadian Public Policy"},{value:"cancer-biomarkers",label:"Cancer Biomarkers"},{value:"cancer-drug-resistance",label:"Cancer Drug Resistance"},{value:"cancer-translational-medicine",label:"Cancer Translational Medicine"},{value:"carcinogenesis",label:"Carcinogenesis"},{value:"cardiff-university-harvard",label:"Cardiff University - Harvard"},{value:"cardiff-university-vancouver",label:"Cardiff University - Vancouver"},{value:"cardiocore",label:"Cardiocore (Espa\xF1ol)"},{value:"cath-lab-digest",label:"Cath Lab Digest"},{value:"catholic-biblical-association",label:"Catholic Biblical Association (full note)"},{value:"cell-numeric-superscript",label:"Cell journals (numeric, superscript)"},{value:"cell-numeric",label:"Cell journals (numeric)"},{value:"cell-research",label:"Cell Research"},{value:"cell-structure-and-function",label:"Cell Structure and Function"},{value:"cell-transplantation",label:"Cell Transplantation"},{value:"cell",label:"Cell"},{value:"cellular-and-molecular-bioengineering",label:"Cellular and Molecular Bioengineering"},{value:"cellular-and-molecular-gastroenterology-and-hepatology",label:"Cellular and Molecular Gastroenterology and Hepatology"},{value:"centaurus",label:"Centaurus"},{value:"centre-de-recherche-sur-les-civilisations-de-l-asie-orientale-auteur-date",label:"Centre de recherche sur les civilisations de l\u2019Asie orientale (Fran\xE7ais - Auteur, Date)"},{value:"centre-de-recherche-sur-les-civilisations-de-l-asie-orientale",label:"Centre de recherche sur les civilisations de l'Asie orientale (Fran\xE7ais - note)"},{value:"cerebral-cortex",label:"Cerebral Cortex"},{value:"ceska-zemedelska-univerzita-v-praze-fakulta-agrobiologie-potravinovych-a-prirodnich-zdroju",label:"\u010Cesk\xE1 zem\u011Bd\u011Blsk\xE1 univerzita v Praze - Fakulta agrobiologie, potravinov\xFDch a p\u0159\xEDrodn\xEDch zdroj\u016F"},{value:"changer-d-epoque",label:"Changer d'\xE9poque (Fran\xE7ais)"},{value:"chemical-and-pharmaceutical-bulletin",label:"Chemical and Pharmaceutical Bulletin"},{value:"chemical-biology-and-drug-design",label:"Chemical Biology & Drug Design"},{value:"chemical-engineering-progress",label:"Chemical Engineering Progress"},{value:"chemical-senses",label:"Chemical Senses"},{value:"chemie-ingenieur-technik",label:"Chemie Ingenieur Technik"},{value:"chemistry-education-research-and-practice",label:"Chemistry Education Research and Practice"},{value:"chest",label:"Chest"},{value:"chicago-annotated-bibliography",label:"Chicago Manual of Style 17th edition (note, annotated bibliography)"},{value:"chicago-author-date-16th-edition",label:"Chicago Manual of Style 16th edition (author-date)"},{value:"chicago-author-date-basque",label:"Chicago Manual of Style 16th edition (author-date, Euskara)"},{value:"chicago-author-date-de",label:"Chicago Manual of Style 16th edition (author-date, Deutsch)"},{value:"chicago-author-date-fr",label:"Chicago Manual of Style 17th edition (author-date, Fran\xE7ais)"},{value:"chicago-author-date",label:"Chicago Manual of Style 17th edition (author-date)"},{value:"chicago-figures",label:"Chicago Manual of Style 16th edition (figures and illustrations)"},{value:"chicago-fullnote-bibliography-16th-edition",label:"Chicago Manual of Style 16th edition (full note)"},{value:"chicago-fullnote-bibliography-fr",label:"Chicago Manual of Style 17th edition (full note, Fran\xE7ais)"},{value:"chicago-fullnote-bibliography-short-title-subsequent",label:"Chicago Manual of Style 17th edition (full note, short title subsequent)"},{value:"chicago-fullnote-bibliography-with-ibid",label:"Chicago Manual of Style 17th edition (full note, with Ibid.)"},{value:"chicago-fullnote-bibliography",label:"Chicago Manual of Style 17th edition (full note)"},{value:"chicago-library-list",label:"Chicago Manual of Style 17th edition (library list)"},{value:"chicago-note-bibliography-16th-edition",label:"Chicago Manual of Style 16th edition (note)"},{value:"chicago-note-bibliography-with-ibid",label:"Chicago Manual of Style 17th edition (note, with Ibid.)"},{value:"chicago-note-bibliography",label:"Chicago Manual of Style 17th edition (note)"},{value:"chimia",label:"CHIMIA"},{value:"china-information",label:"China Information"},{value:"china-national-standard-gb-t-7714-2015-author-date",label:"China National Standard GB/T 7714-2015 (author-date, \u4E2D\u6587)"},{value:"china-national-standard-gb-t-7714-2015-note",label:"China National Standard GB/T 7714-2015 (note, \u4E2D\u6587)"},{value:"china-national-standard-gb-t-7714-2015-numeric",label:"China National Standard GB/T 7714-2015 (numeric, \u4E2D\u6587)"},{value:"chinese-gb7714-1987-numeric",label:"China National Standard GB/T 7714-1987 (numeric, \u4E2D\u6587)"},{value:"chinese-gb7714-2005-author-date",label:"China National Standard GB/T 7714-2005 (author-date, \u4E2D\u6587)"},{value:"chinese-gb7714-2005-numeric",label:"China National Standard GB/T 7714-2005 (numeric, \u4E2D\u6587)"},{value:"chinese-journal-of-aeronautics",label:"Chinese Journal of Aeronautics"},{value:"chinese-medical-journal",label:"Chinese Medical Journal"},{value:"chroniques-des-activites-archeologiques-de-l-ecole-francaise-de-rome",label:"Chroniques des activit\xE9s arch\xE9ologiques de l'Ecole fran\xE7aise de Rome"},{value:"chungara-revista-de-antropologia-chilena",label:"Chungara Revista de Antropolog\xEDa Chilena (Espa\xF1ol - Chile)"},{value:"circulation-journal",label:"Circulation Journal"},{value:"circulation",label:"Circulation"},{value:"cirugia-cardiovascular",label:"Cirugia Cardiovascular (Espa\xF1ol)"},{value:"citation-compass-apa-note",label:"Citation Compass (Kildekompasset) - APA (note)"},{value:"citizen-science-theory-and-practice",label:"Citizen Science: Theory and Practice"},{value:"civilta-italiana",label:"Civilt\xE0 Italiana (Italiano)"},{value:"civitas-revista-de-ciencias-sociais",label:"Civitas: Revista de Ci\xEAncias Sociais"},{value:"cladistics",label:"Cladistics"},{value:"clara-architecture-recherche",label:"CLARA Architecture/Recherche (Fran\xE7ais)"},{value:"clay-minerals",label:"Clay Minerals"},{value:"clays-and-clay-minerals",label:"Clays and Clay Minerals"},{value:"climate-change-economics",label:"Climate Change Economics"},{value:"clinica-e-investigacion-en-arteriosclerosis",label:"Cl\xEDnica e Investigaci\xF3n en Arteriosclerosis (Espa\xF1ol)"},{value:"clinical-anatomy",label:"Clinical Anatomy"},{value:"clinical-dysmorphology",label:"Clinical Dysmorphology"},{value:"clinical-gastroenterology-and-hepatology",label:"Clinical Gastroenterology and Hepatology"},{value:"clinical-hemorheology-and-microcirculation",label:"Clinical Hemorheology and Microcirculation"},{value:"clinical-infectious-diseases",label:"Clinical Infectious Diseases"},{value:"clinical-journal-of-sport-medicine",label:"Clinical Journal of Sport Medicine"},{value:"clinical-journal-of-the-american-society-of-nephrology",label:"Clinical Journal of the American Society of Nephrology"},{value:"clinical-management-issues",label:"Clinical Management Issues"},{value:"clinical-nuclear-medicine",label:"Clinical Nuclear Medicine"},{value:"clinical-oral-implants-research",label:"Clinical Oral Implants Research"},{value:"clinical-orthopaedics-and-related-research",label:"Clinical Orthopaedics and Related Research"},{value:"clinical-otolaryngology",label:"Clinical Otolaryngology"},{value:"clinical-pharmacology-and-therapeutics",label:"Clinical Pharmacology & Therapeutics"},{value:"clinical-physiology-and-functional-imaging",label:"Clinical Physiology and Functional Imaging"},{value:"clinical-radiology",label:"Clinical Radiology"},{value:"clinical-spine-surgery",label:"Clinical Spine Surgery"},{value:"clio-medica",label:"Clio Medica"},{value:"cns-and-neurological-disorders-drug-targets",label:"CNS & Neurological Disorders - Drug Targets"},{value:"cns-spectrums",label:"CNS Spectrums"},{value:"cold-spring-harbor-laboratory-press",label:"Cold Spring Harbor Laboratory Press"},{value:"collection-de-l-ecole-francaise-de-rome-full-note",label:"Collection de l'Ecole fran\xE7aise de Rome (full note, Fran\xE7ais)"},{value:"collection-de-l-ecole-francaise-de-rome-note",label:"Collection de l'Ecole fran\xE7aise de Rome (note, Fran\xE7ais)"},{value:"collection-du-centre-jean-berard",label:"Collection du Centre Jean-B\xE9rard (Fran\xE7ais)"},{value:"collections-electroniques-de-l-inha-author-date",label:"Collections \xE9lectroniques de l'INHA (author-date, Fran\xE7ais)"},{value:"collections-electroniques-de-l-inha-full-note",label:"Collections \xE9lectroniques de l'INHA (full note, Fran\xE7ais)"},{value:"college-montmorency",label:"Coll\xE8ge Montmorency (note, Fran\xE7ais - Canada)"},{value:"college-of-naturopathic-medicine",label:"College of Naturopathic Medicine"},{value:"colombian-journal-of-anesthesiology",label:"Colombian Journal of Anesthesiology"},{value:"colorado-state-university-school-of-biomedical-engineering",label:"Colorado State University - School of Biomedical Engineering"},{value:"comision-economica-para-america-latina-y-el-caribe",label:"Comisi\xF3n Econ\xF3mica para Am\xE9rica Latina y el Caribe (Espa\xF1ol)"},{value:"common-market-law-review",label:"Common Market Law Review"},{value:"communication-et-langages",label:"Communication et Langages"},{value:"comparativ",label:"Comparativ"},{value:"comparative-politics",label:"Comparative Politics"},{value:"comparative-population-studies",label:"Comparative Population Studies"},{value:"computer-und-recht",label:"Computer und Recht (Deutsch)"},{value:"conservation-and-society",label:"Conservation & Society"},{value:"conservation-biology",label:"Conservation Biology"},{value:"conservation-letters",label:"Conservation Letters"},{value:"conservation-physiology",label:"Conservation Physiology"},{value:"contemporary-accounting-research",label:"Contemporary Accounting Research"},{value:"continuity-and-change",label:"Continuity and Change"},{value:"contributions-to-the-archaeology-of-egypt-nubia-and-the-levant",label:"Contributions to the Archaeology of Egypt, Nubia and the Levant"},{value:"copeia",label:"Copeia"},{value:"copernicus-publications",label:"Copernicus Publications"},{value:"coral-reefs",label:"Coral Reefs"},{value:"cornea",label:"Cornea"},{value:"corrosion",label:"Corrosion"},{value:"council-of-science-editors-alphabetical",label:"Council of Science Editors, Citation-Name (numeric, sorted alphabetically)"},{value:"council-of-science-editors-author-date",label:"Council of Science Editors, Name-Year (author-date)"},{value:"council-of-science-editors-brackets",label:"Council of Science Editors, Citation-Sequence (numeric, brackets)"},{value:"council-of-science-editors",label:"Council of Science Editors, Citation-Sequence (numeric)"},{value:"cranfield-university-numeric",label:"Cranfield University (numeric)"},{value:"creativity-and-innovation-management",label:"Creativity and Innovation Management"},{value:"critical-care-medicine",label:"Critical Care Medicine"},{value:"critical-reviews-in-plant-sciences",label:"Critical Reviews in Plant Sciences"},{value:"critical-reviews-in-solid-state-and-materials-sciences",label:"Critical Reviews in Solid State and Materials Sciences"},{value:"crop-breeding-and-applied-biotechnology",label:"Crop Breeding and Applied Biotechnology"},{value:"crustaceana",label:"Crustaceana"},{value:"cuadernos-de-filologia-clasica",label:"Cuadernos de Filolog\xEDa Cl\xE1sica. Estudios Griegos e Indoeuropeos (autor-a\xF1o, Espa\xF1ol)"},{value:"cultivos-tropicales",label:"Cultivos Tropicales (Espa\xF1ol)"},{value:"cultural-geographies",label:"cultural geographies"},{value:"cultural-studies-of-science-education",label:"Cultural Studies of Science Education"},{value:"culture-medicine-and-psychiatry",label:"Culture, Medicine, and Psychiatry"},{value:"cureus",label:"Cureus"},{value:"current-alzheimer-research",label:"Current Alzheimer Research"},{value:"current-gene-therapy",label:"Current Gene Therapy"},{value:"current-neurology-aktualnosci-neurologiczne",label:"Current Neurology - Aktualno\u015Bci Neurologiczne"},{value:"current-opinion-in-endocrinology-diabetes-and-obesity",label:"Current Opinion in Endocrinology, Diabetes and Obesity"},{value:"current-opinion",label:"Current Opinion journals"},{value:"current-pharmaceutical-design",label:"Current Pharmaceutical Design"},{value:"current-proteomics",label:"Current Proteomics"},{value:"current-protocols",label:"Current Protocols journals"},{value:"current-science",label:"Current Science"},{value:"current-topics-in-medicinal-chemistry",label:"Current Topics in Medicinal Chemistry"},{value:"currents-in-biblical-research",label:"Currents in Biblical Research"},{value:"cybium",label:"Cybium"},{value:"cytometry",label:"Cytometry"},{value:"data-science-journal",label:"Data Science Journal"},{value:"database",label:"Database"},{value:"de-buck",label:"De Buck (Nederlands)"},{value:"de-montfort-university-harvard",label:"De Montfort University - Harvard"},{value:"decision-sciences",label:"Decision Sciences"},{value:"demographic-research",label:"Demographic Research"},{value:"der-moderne-staat",label:"der moderne staat (Deutsch)"},{value:"dermatology-online-journal",label:"Dermatology Online Journal"},{value:"deutsche-gesellschaft-fur-psychologie",label:"Deutsche Gesellschaft f\xFCr Psychologie 5. Auflage (Deutsch)"},{value:"deutsche-sprache",label:"Deutsche Sprache (Deutsch)"},{value:"deutsches-archaologisches-institut",label:"Deutsches Arch\xE4ologisches Institut"},{value:"deutsches-arzteblatt",label:"Deutsches \xC4rzteblatt"},{value:"developing-world-bioethics",label:"Developing World Bioethics"},{value:"development-and-change",label:"Development and Change"},{value:"development-policy-review",label:"Development Policy Review"},{value:"developmental-medicine-and-child-neurology",label:"Developmental Medicine & Child Neurology"},{value:"developmental-neurobiology",label:"Developmental Neurobiology"},{value:"diabetologia",label:"Diabetologia"},{value:"diagnostico-prenatal",label:"Diagn\xF3stico Prenatal (Espa\xF1ol)"},{value:"dialisis-y-trasplante",label:"Dialisis y Trasplante (Espa\xF1ol)"},{value:"diatom-research",label:"Diatom Research"},{value:"die-bachelorarbeit-samac-et-al-in-text",label:"Die Bachelorarbeit (Samac et al.) (in-text, Deutsch)"},{value:"die-bachelorarbeit-samac-et-al-note",label:"Die Bachelorarbeit (Samac et al.) (note, Deutsch)"},{value:"digital-humanities-im-deutschsprachigen-raum",label:"Digital Humanities im deutschsprachigen Raum (Deutsch)"},{value:"digital-scholarship-in-the-humanities",label:"Digital Scholarship in the Humanities"},{value:"din-1505-2-alphanumeric",label:"DIN 1505-2 (alphanumeric, Deutsch) - standard superseded by ISO-690"},{value:"din-1505-2-numeric-alphabetical",label:"DIN 1505-2 (numeric, sorted alphabetically, Deutsch) - standard superseded by ISO-690"},{value:"din-1505-2-numeric",label:"DIN 1505-2 (numeric, Deutsch) - standard superseded by ISO-690"},{value:"din-1505-2",label:"DIN 1505-2 (author-date, Deutsch) - standard superseded by ISO-690"},{value:"diplo",label:"Diplo"},{value:"disability-and-rehabilitation",label:"Disability and Rehabilitation"},{value:"discovery-medicine",label:"Discovery Medicine"},{value:"dna-research",label:"DNA Research"},{value:"documents-d-archeologie-francaise",label:"Documents d'arch\xE9ologie fran\xE7aise (Fran\xE7ais)"},{value:"donau-universitat-krems-department-fur-e-governance-in-wirthschaft-und-verwaltung",label:"Donau-Universit\xE4t Krems - Department f\xFCr E-Governance in Wirtschaft und Verwaltung (Deutsch - \xD6sterreich)"},{value:"drug-development-research",label:"Drug Development Research"},{value:"drug-testing-and-analysis",label:"Drug Testing and Analysis"},{value:"drugs-of-today",label:"Drugs of Today"},{value:"durban-university-of-technology-harvard",label:"Durban University of Technology - Harvard"},{value:"e3s-web-of-conferences",label:"E3S Web of Conferences"},{value:"ear-and-hearing",label:"Ear and Hearing"},{value:"early-christianity",label:"Early Christianity"},{value:"early-medieval-europe",label:"Early Medieval Europe"},{value:"early-music-history",label:"Early Music History"},{value:"earth-surface-processes-and-landforms",label:"Earth Surface Processes and Landforms"},{value:"earthquake-engineering-and-structural-dynamics",label:"Earthquake Engineering & Structural Dynamics"},{value:"earthquake-spectra",label:"Earthquake Spectra"},{value:"ecclesial-practices",label:"Ecclesial Practices"},{value:"ecole-de-technologie-superieure-apa",label:"\xC9cole de technologie sup\xE9rieure - APA (Fran\xE7ais - Canada)"},{value:"ecole-pratique-des-hautes-etudes-sciences-historiques-et-philologiques",label:"\xC9cole Pratique des Hautes \xC9tudes - Sciences historiques et philologiques (Fran\xE7ais)"},{value:"ecological-entomology",label:"Ecological Entomology"},{value:"ecological-restoration",label:"Ecological Restoration"},{value:"ecology-and-society",label:"Ecology and Society"},{value:"ecology-letters",label:"Ecology Letters"},{value:"ecology-of-freshwater-fish",label:"Ecology of Freshwater Fish"},{value:"ecology",label:"Ecology"},{value:"econometrica",label:"Econometrica"},{value:"economia-y-politica",label:"Econom\xEDa y Pol\xEDtica (Espa\xF1ol - Chile)"},{value:"economic-commission-for-latin-america-and-the-caribbean",label:"Economic Commission for Latin America and the Caribbean"},{value:"economic-geology",label:"Economic Geology"},{value:"economie-et-statistique",label:"\xC9conomie et Statistique (Fran\xE7ais)"},{value:"ecoscience",label:"\xC9coscience"},{value:"ecosistemas",label:"Ecosistemas (Espa\xF1ol)"},{value:"ecosystems",label:"Ecosystems"},{value:"edward-elgar-business-and-social-sciences",label:"Edward Elgar Publishing - Business and Social Sciences"},{value:"effective-altruism-wiki",label:"Effective Altruism Wiki"},{value:"egretta",label:"Egretta (Deutsch - \xD6sterreich)"},{value:"einaudi",label:"Einaudi (Italiano)"},{value:"eksploatacja-i-niezawodnosc",label:"Eksploatacja i Niezawodnosc - Maintenance and Reliability"},{value:"el-profesional-de-la-informacion",label:"Profesional de la informaci\xF3n (Espa\xF1ol)"},{value:"electrophoresis",label:"Electrophoresis"},{value:"elementa",label:"Elementa"},{value:"elife",label:"eLife"},{value:"elsevier-harvard-without-titles",label:"Elsevier - Harvard (without titles)"},{value:"elsevier-harvard",label:"Elsevier - Harvard (with titles)"},{value:"elsevier-harvard2",label:"Elsevier - Harvard 2"},{value:"elsevier-vancouver-author-date",label:"Elsevier - Vancouver (author-date)"},{value:"elsevier-vancouver",label:"Elsevier - Vancouver"},{value:"elsevier-with-titles-alphabetical",label:"Elsevier (numeric, with titles, sorted alphabetically)"},{value:"elsevier-with-titles",label:"Elsevier (numeric, with titles)"},{value:"elsevier-without-titles",label:"Elsevier (numeric, without titles)"},{value:"embnet-journal",label:"EMBnet.journal"},{value:"embo-press",label:"EMBO Press"},{value:"emerald-harvard",label:"Emerald - Harvard"},{value:"emu-austral-ornithology",label:"Emu - Austral Ornithology"},{value:"endocrine-connections",label:"Endocrine Connections"},{value:"endocrine-press",label:"Endocrine Press"},{value:"endoscopia",label:"Endoscopia (Espa\xF1ol)"},{value:"eneuro",label:"eNeuro"},{value:"enfermeria-clinica",label:"Enfermer\xEDa Cl\xEDnica (Espa\xF1ol)"},{value:"enfermeria-intensiva",label:"Enfermer\xEDa Intensiva (Espa\xF1ol)"},{value:"engineered-regeneration",label:"Engineered Regeneration"},{value:"engineering-in-life-sciences",label:"Engineering in Life Sciences"},{value:"engineering-technology-and-applied-science-research",label:"Engineering, Technology & Applied Science Research"},{value:"ens-de-lyon-centre-d-ingenierie-documentaire",label:"ENS de Lyon - Centre d'ing\xE9nierie documentaire (Fran\xE7ais)"},{value:"entecho",label:"ENTECHO (\u010Ce\u0161tina)"},{value:"entomologia-experimentalis-et-applicata",label:"Entomologia Experimentalis et Applicata"},{value:"entomological-society-of-america",label:"Entomological Society of America"},{value:"environment-and-planning",label:"Environment and Planning"},{value:"environment-and-urbanization",label:"Environment and Urbanization"},{value:"environmental-and-engineering-geoscience",label:"Environmental & Engineering Geoscience"},{value:"environmental-chemistry",label:"Environmental Chemistry"},{value:"environmental-conservation",label:"Environmental Conservation"},{value:"environmental-health-perspectives",label:"Environmental Health Perspectives"},{value:"environmental-microbiology",label:"Environmental Microbiology"},{value:"environmental-values",label:"Environmental Values"},{value:"environnement-risques-et-sante",label:"Environnement, Risques & Sant\xE9"},{value:"ephemerides-theologicae-lovanienses",label:"Ephemerides Theologicae Lovanienses"},{value:"epidemiologie-et-sante-animale",label:"\xC9pid\xE9miologie et Sant\xE9 Animale"},{value:"epidemiology-and-infection",label:"Epidemiology & Infection"},{value:"epilepsia",label:"Epilepsia"},{value:"equine-veterinary-education",label:"Equine Veterinary Education"},{value:"equine-veterinary-journal",label:"Equine Veterinary Journal"},{value:"ergo",label:"Ergo"},{value:"ergoscience",label:"ergoscience"},{value:"errata",label:"Errata: Publica\xE7\xE3o sobre processos editoriais (Portugu\xEAs - Brasil)"},{value:"escuela-nacional-de-antropologia-e-historia-author-date",label:"Escuela Nacional de Antropolog\xEDa e Historia (autor-fecha, Espa\xF1ol - M\xE9xico)"},{value:"escuela-nacional-de-antropologia-e-historia-full-note",label:"Escuela Nacional de Antropolog\xEDa e Historia (nota completa, Espa\xF1ol - M\xE9xico)"},{value:"escuela-nacional-de-antropologia-e-historia-short-note",label:"Escuela Nacional de Antropolog\xEDa e Historia (nota corta, Espa\xF1ol - M\xE9xico)"},{value:"estuaries-and-coasts",label:"Estuaries and Coasts"},{value:"estudios-de-cultura-maya",label:"Estudios de Cultura Maya (Espa\xF1ol - M\xE9xico)"},{value:"estudios-de-fonetica-experimental",label:"Estudios de Fon\xE9tica Experimental"},{value:"estudios-hispanicos",label:"Estudios Hisp\xE1nicos (Espa\xF1ol)"},{value:"ethics-book-reviews",label:"Ethics (for book reviews)"},{value:"ethnobiology-and-conservation",label:"Ethnobiology and Conservation"},{value:"ethnobiology-letters",label:"Ethnobiology Letters"},{value:"ethnographiques-org",label:"ethnographiques.org (Fran\xE7ais)"},{value:"ethnologie-francaise",label:"Ethnologie fran\xE7aise (Fran\xE7ais)"},{value:"ethnomusicology",label:"Ethnomusicology"},{value:"etri-journal",label:"ETRI Journal"},{value:"ets-ecole-de-technologie-superieure",label:"\xC9TS - \xC9cole de technologie sup\xE9rieure (Fran\xE7ais - Canada)"},{value:"eurasian-journal-of-medical-investigation",label:"Eurasian Journal of Medical Investigation"},{value:"eurasian-journal-of-medicine-and-oncology",label:"Eurasian Journal of Medicine and Oncology"},{value:"eurointervention",label:"EuroIntervention"},{value:"europace",label:"Europace"},{value:"european-cells-and-materials",label:"European Cells & Materials"},{value:"european-journal-for-philosophy-of-religion",label:"European Journal for Philosophy of Religion"},{value:"european-journal-of-anaesthesiology",label:"European Journal of Anaesthesiology"},{value:"european-journal-of-clinical-microbiology-and-infectious-diseases",label:"European Journal of Clinical Microbiology & Infectious Diseases"},{value:"european-journal-of-emergency-medicine",label:"European Journal of Emergency Medicine"},{value:"european-journal-of-endocrinology",label:"European Journal of Endocrinology"},{value:"european-journal-of-entomology",label:"European Journal of Entomology"},{value:"european-journal-of-human-genetics",label:"European Journal of Human Genetics"},{value:"european-journal-of-immunology",label:"European Journal of Immunology"},{value:"european-journal-of-information-systems",label:"European Journal of Information Systems"},{value:"european-journal-of-international-law",label:"European Journal of International Law"},{value:"european-journal-of-microbiology-and-immunology",label:"European Journal of Microbiology & Immunology"},{value:"european-journal-of-neuroscience",label:"European Journal of Neuroscience"},{value:"european-journal-of-ophthalmology",label:"European Journal of Ophthalmology"},{value:"european-journal-of-paediatric-neurology",label:"European Journal of Paediatric Neurology"},{value:"european-journal-of-pain",label:"European Journal of Pain"},{value:"european-journal-of-political-research",label:"European Journal of Political Research"},{value:"european-journal-of-public-health",label:"European Journal of Public Health"},{value:"european-journal-of-soil-science",label:"European Journal of Soil Science"},{value:"european-journal-of-taxonomy",label:"European Journal of Taxonomy"},{value:"european-journal-of-theology",label:"European Journal of Theology"},{value:"european-journal-of-ultrasound",label:"European Journal of Ultrasound (Ultraschall in der Medizin)"},{value:"european-journal-of-vascular-and-endovascular-surgery",label:"European Journal of Vascular and Endovascular Surgery"},{value:"european-respiratory-journal",label:"European Respiratory Journal"},{value:"european-retail-research",label:"European Retail Research"},{value:"european-review-of-agricultural-economics",label:"European Review of Agricultural Economics"},{value:"european-society-of-cardiology",label:"European Society of Cardiology"},{value:"european-union-interinstitutional-style-guide-author-date",label:"European Union - Interinstitutional Style Guide (author-date)"},{value:"european-union-interinstitutional-style-guide",label:"European Union - Interinstitutional Style Guide (note)"},{value:"eva-berlin-konferenz",label:"EVA Berlin Konferenz (Deutsch)"},{value:"evidence-based-complementary-and-alternative-medicine",label:"Evidence-Based Complementary and Alternative Medicine"},{value:"evolution-and-development",label:"Evolution & Development"},{value:"evolution-letters",label:"Evolution Letters"},{value:"evolution",label:"Evolution"},{value:"evolutionary-anthropology",label:"Evolutionary Anthropology"},{value:"evolutionary-ecology-research",label:"Evolutionary Ecology Research"},{value:"excli-journal",label:"EXCLI Journal"},{value:"exercer",label:"exercer (Fran\xE7ais)"},{value:"experimental-biology-and-medicine",label:"Experimental Biology and Medicine"},{value:"experimental-biomedical-research",label:"Experimental Biomedical Research"},{value:"experimental-dermatology",label:"Experimental Dermatology"},{value:"expert-reviews-in-molecular-medicine",label:"Expert Reviews in Molecular Medicine"},{value:"express-polymer-letters",label:"eXPRESS Polymer Letters"},{value:"extracellular-vesicles-and-circulating-nucleic-acids",label:"Extracellular Vesicles and Circulating Nucleic Acids"},{value:"eye",label:"Eye"},{value:"fachhochschule-kiel-fachbereich-medien",label:"Fachhochschule Kiel - Fachbereich Medien (Deutsch)"},{value:"fachhochschule-sudwestfalen",label:"Fachhochschule S\xFCdwestfalen (Deutsch)"},{value:"fachhochschule-vorarlberg-author-date",label:"Fachhochschule Vorarlberg (author-date)"},{value:"fachhochschule-vorarlberg-note",label:"Fachhochschule Vorarlberg (note)"},{value:"facial-plastic-surgery-clinics-of-north-america",label:"Facial Plastic Surgery Clinics of North America"},{value:"facolta-teologica-dell-italia-settentrionale-milano",label:"Facolt\xE0 Teologica dell'Italia Settentrionale - Milano (titoli di riviste non abbreviati, Italiano)"},{value:"family-business-review",label:"Family Business Review"},{value:"farmeconomia",label:"Farmeconomia. Health Economics and Therapeutic Pathways"},{value:"fatigue-and-fracture-of-engineering-materials-and-structures",label:"Fatigue & Fracture of Engineering Materials & Structures"},{value:"feminist-economics",label:"Feminist Economics"},{value:"feminist-theory",label:"Feminist Theory"},{value:"ferdinand-porsche-fern-fachhochschule",label:"Ferdinand Porsche Fernfachhochschule (Deutsch - \xD6sterreich)"},{value:"fertility-and-sterility",label:"Fertility and Sterility"},{value:"finance-and-society",label:"Finance and Society"},{value:"finanzarchiv",label:"FinanzArchiv - Public Finance Analysis"},{value:"fine-focus",label:"Fine Focus"},{value:"first-break",label:"First Break"},{value:"first-monday",label:"First Monday"},{value:"fishery-bulletin",label:"Fishery Bulletin"},{value:"flavour-and-fragrance-journal",label:"Flavour and Fragrance Journal"},{value:"florida-entomologist",label:"Florida Entomologist"},{value:"focaal-journal-of-global-and-historical-anthropology",label:"Focaal\u2014Journal of Global and Historical Anthropology"},{value:"foerster-geisteswissenschaft",label:"Sascha Foerster - Geisteswissenschaft (Deutsch)"},{value:"fold-and-r",label:"FOLD&R (Fasti On Line Documents & Research)"},{value:"folia-biologica",label:"Folia Biologica"},{value:"folia-morphologia",label:"Folia Morphologia"},{value:"food-and-agriculture-organization-of-the-united-nations",label:"Food and Agriculture Organization of the United Nations"},{value:"forensic-anthropology",label:"Forensic Anthropology"},{value:"forensic-science-review",label:"Forensic Science Review"},{value:"forest-science",label:"Forest Science"},{value:"forschungsjournal-soziale-bewegungen-fjsb",label:"Forschungsjournal Soziale Bewegungen FJSB(German)"},{value:"forum-qualitative-social-research",label:"Forum: Qualitative Social Research (English)"},{value:"forum-qualitative-sozialforschung",label:"Forum: Qualitative Sozialforschung (Deutsch)"},{value:"frattura-ed-integrita-strutturale-fracture-and-structural-integrity",label:"Frattura ed Integrit\xE0 Strutturale - Fracture and Structural Integrity"},{value:"free-radical-research",label:"Free Radical Research"},{value:"freie-hochschule-stuttgart",label:"Freie Hochschule Stuttgart (Deutsch)"},{value:"freie-universitat-berlin-geographische-wissenschaften",label:"Freie Universit\xE4t Berlin - Geographische Wissenschaften (Deutsch)"},{value:"french-politics",label:"French Politics"},{value:"french1",label:"France (tous les auteurs, num\xE9rotation, Fran\xE7ais)"},{value:"french2",label:"France (auteurs et al., num\xE9rotation, Fran\xE7ais)"},{value:"french3",label:"France (tous les auteurs, auteur-date, Fran\xE7ais)"},{value:"french4",label:"France (auteurs et al., auteur-date, Fran\xE7ais)"},{value:"freshwater-biology",label:"Freshwater Biology"},{value:"freshwater-crayfish",label:"Freshwater Crayfish"},{value:"freshwater-science",label:"Freshwater Science"},{value:"friedrich-schiller-universitat-jena-medizinische-fakultat",label:"Friedrich-Schiller-Universit\xE4t Jena - Medizinische Fakult\xE4t (Deutsch)"},{value:"frontiers-in-bioscience",label:"Frontiers in Bioscience"},{value:"frontiers-in-ecology-and-the-environment",label:"Frontiers in Ecology and the Environment"},{value:"frontiers-in-optics",label:"Frontiers in Optics"},{value:"frontiers-in-physics",label:"Frontiers in Physics"},{value:"frontiers-medical-journals",label:"Frontiers medical journals"},{value:"frontiers-of-biogeography",label:"Frontiers of Biogeography"},{value:"frontiers",label:"Frontiers journals"},{value:"fundamental-and-applied-limnology",label:"Fundamental and Applied Limnology"},{value:"future-medicine",label:"Future Medicine journals"},{value:"future-science-group",label:"Future Science Group"},{value:"g-giappichelli-editore",label:"G. Giappichelli Editore (Italiano)"},{value:"g3",label:"G3: Genes, Genomes, Genetics"},{value:"gaceta-sanitaria",label:"Gaceta Sanitaria"},{value:"gaia",label:"GAIA"},{value:"galatasaray-universitesi-sosyal-bilimler-enstitusu",label:"Galatasaray \xDCniversitesi Sosyal Bilimler Enstit\xFCs\xFC"},{value:"gallia-prehistoire",label:"Gallia Pr\xE9histoire (Fran\xE7ais)"},{value:"gallia",label:"Gallia (Fran\xE7ais)"},{value:"gastroenterology",label:"Gastroenterology"},{value:"gastrointestinal-endoscopy-clinics-of-north-america",label:"Gastrointestinal Endoscopy Clinics of North America"},{value:"gastrointestinal-intervention",label:"Gastrointestinal Intervention"},{value:"gazeta-medica",label:"Gazeta M\xE9dica"},{value:"geistes-und-kulturwissenschaften-heilmann",label:"Geistes- und Kulturwissenschaften (Heilmann) (Deutsch)"},{value:"generic-style-rules-for-linguistics",label:"Generic Style Rules for Linguistics"},{value:"genes-brain-and-behavior",label:"Genes, Brain and Behavior"},{value:"genes-to-cells",label:"Genes to Cells"},{value:"geneses",label:"Gen\xE8ses: Sciences sociales et histoire (Fran\xE7ais)"},{value:"genetics-and-molecular-biology",label:"Genetics and Molecular Biology"},{value:"genetics",label:"Genetics"},{value:"genome-biology-and-evolution",label:"Genome Biology and Evolution"},{value:"genomics-and-informatics",label:"Genomics & Informatics"},{value:"geoarchaeology",label:"Geoarchaeology"},{value:"geobiology",label:"Geobiology"},{value:"geochemical-perspectives-letters",label:"Geochemical Perspectives Letters"},{value:"geochimica-et-cosmochimica-acta",label:"Geochimica et Cosmochimica Acta"},{value:"geochronometria",label:"Geochronometria"},{value:"geografia-fisica-e-dinamica-quaternaria",label:"Geografia Fisica e Dinamica Quaternaria"},{value:"geografie-sbornik-cgs",label:"Geografie Sborn\xEDk \u010CGS"},{value:"geographie-et-cultures",label:"G\xE9ographie et cultures (Fran\xE7ais)"},{value:"geographische-zeitschrift",label:"Geographische Zeitschrift"},{value:"geological-magazine",label:"Geological Magazine"},{value:"geophysical-journal-international",label:"Geophysical Journal International"},{value:"geophysics",label:"Geophysics"},{value:"geopolitics",label:"Geopolitics"},{value:"georg-august-universitat-gottingen-institut-fur-ethnologie-und-ethnologische-sammlung",label:"Georg-August-Universit\xE4t G\xF6ttingen - Institut f\xFCr Ethnologie und Ethnologische Sammlung (Deutsch)"},{value:"geriatrics-and-gerontology-international",label:"Geriatrics & Gerontology International"},{value:"geriatrie-et-psychologie-neuropsychiatrie-du-vieillissement",label:"G\xE9riatrie et Psychologie Neuropsychiatrie du Vieillissement"},{value:"german-council-of-economic-experts",label:"German Council of Economic Experts"},{value:"german-journal-of-agricultural-economics",label:"German Journal of Agricultural Economics"},{value:"german-yearbook-of-international-law",label:"German Yearbook of International Law"},{value:"geschichte-und-gesellschaft",label:"Geschichte und Gesellschaft"},{value:"gesellschaft-fur-popularmusikforschung",label:"Gesellschaft fur Popularmusikforschung (Deutsch)"},{value:"gewerblicher-rechtsschutz-und-urheberrecht",label:"Gewerblicher Rechtsschutz und Urheberrecht (Deutsch)"},{value:"gigascience",label:"GigaScience"},{value:"global-ecology-and-biogeography",label:"Global Ecology and Biogeography"},{value:"glossa",label:"Glossa"},{value:"gost-r-7-0-5-2008-numeric-alphabetical",label:"Russian GOST R 7.0.5-2008 (numeric, sorted alphabetically, \u0420\u0443\u0301\u0441\u0441\u043A\u0438\u0439)"},{value:"gost-r-7-0-5-2008-numeric",label:"Russian GOST R 7.0.5-2008 (numeric)"},{value:"gost-r-7-0-5-2008",label:"Russian GOST R 7.0.5-2008 (\u0420\u0443\u0301\u0441\u0441\u043A\u0438\u0439)"},{value:"government-and-opposition",label:"Government and Opposition"},{value:"grasas-y-aceites",label:"Grasas y Aceites"},{value:"griffith-college-harvard",label:"Griffith College - Harvard"},{value:"groundwater",label:"Groundwater"},{value:"groupe-danthropologie-et-darcheologie-funeraire",label:"Groupe d'anthropologie et d'arch\xE9ologie fun\xE9raire (Fran\xE7ais)"},{value:"guide-des-citations-references-et-abreviations-juridiques",label:"Guide des citations, r\xE9f\xE9rences et abr\xE9viations juridiques 6e \xE9dition (Fran\xE7ais)"},{value:"guide-pour-la-redaction-et-la-presentation-des-theses-a-lusage-des-doctorants",label:"Guide pour la r\xE9daction et la pr\xE9sentation des th\xE8ses \xE0 l'usage des doctorants (Fran\xE7ais)"},{value:"haaga-helia-university-of-applied-sciences-harvard",label:"Haaga-Helia ammattikorkeakoulu - Harvard"},{value:"haematologica",label:"Haematologica"},{value:"haemophilia",label:"Haemophilia"},{value:"hainan-medical-university-journal-publisher",label:"Hainan Medical University Journal Publisher"},{value:"hamburg-school-of-food-science",label:"Hamburg School of Food Science (diploma, Deutsch)"},{value:"hand",label:"HAND"},{value:"handbook-of-clinical-neurology",label:"Handbook of Clinical Neurology"},{value:"harvard-anglia-ruskin-university",label:"Anglia Ruskin University - Harvard"},{value:"harvard-bournemouth-university",label:"Bournemouth University - Harvard"},{value:"harvard-cape-peninsula-university-of-technology",label:"Cape Peninsula University of Technology - Harvard"},{value:"harvard-cardiff-university-old",label:"Cardiff University - (old) Harvard"},{value:"harvard-cite-them-right-10th-edition",label:"Cite Them Right 10th edition - Harvard"},{value:"harvard-cite-them-right-no-et-al",label:'Cite Them Right 11th edition - Harvard (no "et al.")'},{value:"harvard-cite-them-right",label:"Cite Them Right 11th edition - Harvard"},{value:"harvard-coventry-university",label:"Coventry University - Harvard"},{value:"harvard-cranfield-university",label:"Cranfield University - Harvard"},{value:"harvard-deakin-university",label:"Deakin University - Harvard"},{value:"harvard-dundalk-institute-of-technology",label:"Dundalk Institute of Technology - Harvard"},{value:"harvard-durham-university-business-school",label:"Durham University Business School - Harvard"},{value:"harvard-edge-hill-university",label:"Edge Hill University - Harvard"},{value:"harvard-european-archaeology",label:"European Archaeology - Harvard"},{value:"harvard-fachhochschule-salzburg",label:"Fachhochschule Salzburg - Harvard"},{value:"harvard-falmouth-university",label:"Falmouth University - Harvard"},{value:"harvard-gesellschaft-fur-bildung-und-forschung-in-europa",label:"Gesellschaft f\xFCr Bildung und Forschung in Europa - Harvard (Deutsch)"},{value:"harvard-imperial-college-london",label:"Imperial College London - Harvard"},{value:"harvard-institut-fur-praxisforschung-de",label:"Institut f\xFCr Praxisforschung - Harvard (Bahr & Frackmann) (Deutsch)"},{value:"harvard-kings-college-london",label:"King's College London - Harvard"},{value:"harvard-leeds-beckett-university",label:"Leeds Beckett University - Harvard"},{value:"harvard-leeds-metropolitan-university",label:"Leeds Metropolitan University - Harvard"},{value:"harvard-limerick",label:"University of Limerick (Cite it Right) - Harvard"},{value:"harvard-london-south-bank-university",label:"London South Bank University - Harvard"},{value:"harvard-manchester-business-school",label:"Manchester Business School - Harvard"},{value:"harvard-manchester-metropolitan-university",label:"Manchester Metropolitan University - Harvard"},{value:"harvard-melbourne-polytechnic",label:"Melbourne Polytechnic - Harvard"},{value:"harvard-newcastle-university",label:"Newcastle University - Harvard"},{value:"harvard-north-west-university",label:"North-West University - Harvard"},{value:"harvard-oxford-brookes-university-faculty-of-health-and-life-sciences",label:"Oxford Brookes University - Faculty of Health and Life Sciences - Harvard"},{value:"harvard-pontificia-universidad-catolica-del-ecuador",label:"Pontificia Universidad Cat\xF3lica del Ecuador (Espa\xF1ol) - Harvard"},{value:"harvard-robert-gordon-university",label:"Robert Gordon University - Harvard"},{value:"harvard-staffordshire-university",label:"Staffordshire University - Harvard"},{value:"harvard-stellenbosch-university",label:"Stellenbosch University - Harvard"},{value:"harvard-swinburne-university-of-technology",label:"Swinburne University of Technology - Harvard"},{value:"harvard-the-university-of-melbourne",label:"The University of Melbourne - Harvard"},{value:"harvard-the-university-of-northampton",label:"The University of Northampton - Harvard"},{value:"harvard-the-university-of-sheffield-school-of-east-asian-studies",label:"The University of Sheffield - School of East Asian Studies - Harvard"},{value:"harvard-the-university-of-sheffield-town-and-regional-planning",label:"The University of Sheffield - Town and Regional Planning - Harvard"},{value:"harvard-theologisches-seminar-adelshofen",label:"Theologisches Seminar Adelshofen - Harvard (Deutsch)"},{value:"harvard-universiti-teknologi-malaysia",label:"Universiti Teknologi Malaysia - Harvard"},{value:"harvard-universiti-tunku-abdul-rahman",label:"Universiti Tunku Abdul Rahman - Harvard"},{value:"harvard-university-for-the-creative-arts",label:"University for the Creative Arts - Harvard"},{value:"harvard-university-of-abertay-dundee",label:"University of Abertay Dundee - Harvard"},{value:"harvard-university-of-bath",label:"University of Bath - Harvard"},{value:"harvard-university-of-birmingham",label:"University of Birmingham - Harvard"},{value:"harvard-university-of-brighton-school-of-environment-and-technology",label:"University of Brighton School of Environment & Technology - Harvard"},{value:"harvard-university-of-cape-town",label:"University of Cape Town - Harvard"},{value:"harvard-university-of-exeter-geography",label:"University of Exeter - Geography - Harvard"},{value:"harvard-university-of-greenwich",label:"University of Greenwich - Harvard"},{value:"harvard-university-of-kent",label:"University of Kent - Harvard"},{value:"harvard-university-of-leeds",label:"University of Leeds - Harvard"},{value:"harvard-university-of-technology-sydney",label:"University of Technology Sydney - Harvard"},{value:"harvard-university-of-the-west-of-england",label:"University of the West of England (Bristol) - Harvard"},{value:"harvard-university-of-the-west-of-scotland",label:"University of the West of Scotland - Harvard"},{value:"harvard-university-of-westminster",label:"University of Westminster - Harvard"},{value:"harvard-university-of-wolverhampton",label:"University of Wolverhampton - Harvard"},{value:"harvard-university-of-worcester",label:"University of Worcester - Harvard"},{value:"harvard-york-st-john-university",label:"York St John University - Harvard (pre September 2019 entry)"},{value:"haute-ecole-de-gestion-de-geneve-iso-690",label:"Haute \xE9cole de gestion de Gen\xE8ve - ISO 690"},{value:"haute-ecole-pedagogique-fribourg",label:"Haute Ecole p\xE9dagogique Fribourg (Fran\xE7ais)"},{value:"hawaii-international-conference-on-system-sciences-proceedings",label:"Hawaii International Conference on System Sciences Proceedings"},{value:"health-and-human-rights-journal",label:"Health and Human Rights Journal"},{value:"health-and-social-care-in-the-community",label:"Health & Social Care in the Community"},{value:"health-economics-policy-and-law",label:"Health Economics, Policy and Law"},{value:"health-economics",label:"Health Economics"},{value:"health-education-england-harvard",label:"Health Education England - Harvard"},{value:"health-education-research",label:"Health Education Research"},{value:"health-policy-and-planning",label:"Health Policy and Planning"},{value:"health-reform-observer-observatoire-des-reformes-de-sante",label:"Health Reform Observer - Observatoire des R\xE9formes de Sant\xE9"},{value:"health-sports-and-rehabilitation-medicine",label:"Health, Sports & Rehabilitation Medicine"},{value:"heart-failure-clinics",label:"Heart Failure Clinics"},{value:"heart-rhythm",label:"Heart Rhythm"},{value:"heidelberg-university-faculty-of-medicine",label:"Heidelberg University - Faculty of Medicine (Universit\xE4t Heidelberg - Medizinische Fakult\xE4t Heidelberg)"},{value:"heiliger-dienst",label:"Heiliger Dienst (Deutsch)"},{value:"helvetica-chimica-acta",label:"Helvetica Chimica Acta"},{value:"hematology-oncology-clinics-of-north-america",label:"Hematology/Oncology Clinics of North America"},{value:"hemijska-industrija",label:"Hemijska industrija"},{value:"henoch",label:"Henoch"},{value:"hepatology",label:"Hepatology"},{value:"heredity",label:"Heredity"},{value:"herpetologica",label:"Herpetologica"},{value:"hiob-ludolf-centre-for-ethiopian-studies-long-names",label:"Hiob Ludolf Centre for Ethiopian Studies (long names)"},{value:"hiob-ludolf-centre-for-ethiopian-studies-with-url-doi",label:"Hiob Ludolf Centre for Ethiopian Studies (with URL/DOI)"},{value:"hiob-ludolf-centre-for-ethiopian-studies",label:"Hiob Ludolf Centre for Ethiopian Studies"},{value:"hipertension-y-riesgo-vascular",label:"Hipertensi\xF3n y Riesgo Vascular (Espa\xF1ol)"},{value:"histoire-at-politique",label:"Histoire@Politique. Politique, culture, soci\xE9t\xE9 (Fran\xE7ais)"},{value:"histoire-et-mesure",label:"Histoire & Mesure (Fran\xE7ais)"},{value:"histopathology",label:"Histopathology"},{value:"historia-scribere",label:"historia-scribere (Deutsch)"},{value:"historical-materialism",label:"Historical Materialism"},{value:"historical-social-research",label:"Historical Social Research"},{value:"historio-plus",label:"historioPLUS (Deutsch - \xD6sterreich)"},{value:"history-and-theory",label:"History and Theory"},{value:"history-australia",label:"History Australia"},{value:"history-of-the-human-sciences",label:"History of the Human Sciences"},{value:"hochschule-bonn-rhein-sieg",label:"Hochschule Bonn-Rhein-Sieg (Harvard, Deutsch)"},{value:"hochschule-fur-soziale-arbeit-fhnw",label:"Hochschule f\xFCr Soziale Arbeit FHNW (Deutsch - Schweiz)"},{value:"hochschule-fur-wirtschaft-und-recht-berlin",label:"Hochschule f\xFCr Wirtschaft und Recht Berlin (Deutsch)"},{value:"hochschule-hannover-soziale-arbeit",label:"Hochschule Hannover - Soziale Arbeit (Deutsch)"},{value:"hochschule-munchen-fakultat-fur-angewandte-sozialwissenschaften",label:"Hochschule M\xFCnchen - Fakult\xE4t f\xFCr Angewandte Sozialwissenschaften (Deutsch)"},{value:"hochschule-osnabruck-fakultat-agrarwissenschaften-und-landschaftsarchitektur",label:"Hochschule Osnabr\xFCck - Fakult\xE4t Agrarwissenschaften und Landschaftsarchitektur (Deutsch)"},{value:"hochschule-pforzheim-fakultat-fur-wirtschaft-und-recht",label:"Hochschule Pforzheim - Fakult\xE4t f\xFCr Wirtschaft und Recht (Deutsch)"},{value:"hong-kong-journal-of-radiology",label:"Hong Kong Journal of Radiology"},{value:"hospital-a-domicilio",label:"Hospital a Domicilio"},{value:"housing-studies",label:"Housing Studies"},{value:"hpb",label:"HPB"},{value:"human-brain-mapping",label:"Human Brain Mapping"},{value:"human-ecology",label:"Human Ecology"},{value:"human-molecular-genetics",label:"Human Molecular Genetics"},{value:"human-mutation",label:"Human Mutation"},{value:"human-reproduction-update",label:"Human Reproduction Update"},{value:"human-reproduction",label:"Human Reproduction"},{value:"human-resource-management-journal",label:"Human Resource Management Journal"},{value:"human-rights-law-review",label:"Human Rights Law Review"},{value:"human-wildlife-interactions",label:"Human-Wildlife Interactions"},{value:"humanistica-lovaniensia-journal-of-neo-latin-studies",label:"Humanistica Lovaniensia. Journal of Neo-Latin Studies"},{value:"humboldt-state-university-environmental-resources-engineering",label:"Humboldt State University - Environmental Resources Engineering"},{value:"hydrobiologia",label:"Hydrobiologia"},{value:"hydrological-processes",label:"Hydrological Processes"},{value:"hydrological-sciences-journal",label:"Hydrological Sciences Journal"},{value:"hypertension-research",label:"Hypertension Research"},{value:"hypotheses-in-the-life-sciences",label:"Hypotheses in the Life Sciences"},{value:"hystrix-the-italian-journal-of-mammalogy",label:"Hystrix, the Italian Journal of Mammalogy"},{value:"iawa-journal",label:"IAWA Journal"},{value:"ib-tauris-note",label:"I.B. Tauris (note)"},{value:"ibis",label:"Ibis"},{value:"ices-journal-of-marine-science",label:"ICES Journal of Marine Science"},{value:"idojaras-quarterly-journal-of-the-hungarian-meteorological-service",label:"Id\u0151j\xE1r\xE1s - Quarterly Journal of the Hungarian Meteorological Service"},{value:"ie-comunicaciones",label:"IE Comunicaciones"},{value:"ieee-transactions-on-medical-imaging",label:"IEEE Transactions on Medical Imaging"},{value:"ieee-with-url",label:"IEEE (with URL)"},{value:"ieee",label:"IEEE"},{value:"iforest",label:"iForest"},{value:"igaku-toshokan",label:"Igaku Toshokan (\u65E5\u672C\u8A9E)"},{value:"iica-catie",label:"IICA-CATIE (Espa\xF1ol)"},{value:"ilahiyat-studies",label:"Ilahiyat Studies (full note)"},{value:"im-gesprach",label:"Im Gespr\xE4ch - Hefte der Martin Buber-Gesellschaft (Deutsch)"},{value:"incontext-studies-in-translation-and-interculturalism",label:"INContext: Studies in Translation and Interculturalism"},{value:"indian-dermatology-online-journal",label:"Indian Dermatology Online Journal"},{value:"indian-journal-of-medical-research",label:"Indian Journal of Medical Research"},{value:"indian-journal-of-orthopaedics",label:"Indian Journal of Orthopaedics"},{value:"indian-journal-of-physics",label:"Indian Journal of Physics"},{value:"indian-journal-of-traditional-knowledge",label:"Indian Journal of Traditional Knowledge"},{value:"indiana",label:"INDIANA"},{value:"indoor-air",label:"Indoor Air"},{value:"industrial-relations",label:"Industrial Relations"},{value:"infectio",label:"Infectio (Espa\xF1ol)"},{value:"infectious-disease-clinics-of-north-america",label:"Infectious Disease Clinics of North America"},{value:"inflammatory-bowel-diseases",label:"Inflammatory Bowel Diseases"},{value:"influenza-and-other-respiratory-viruses",label:"Influenza and Other Respiratory Viruses"},{value:"infoclio-de-kurzbelege",label:"infoclio.ch (Kurzbelege, Deutsch - Schweiz)"},{value:"infoclio-de",label:"infoclio.ch (Deutsch - Schweiz)"},{value:"infoclio-fr-nocaps",label:"infoclio.ch (sans majuscules, Fran\xE7ais)"},{value:"infoclio-fr-smallcaps",label:"infoclio.ch (petites majuscules, Fran\xE7ais)"},{value:"infomin",label:"Infomin"},{value:"informal-logic",label:"Informal Logic"},{value:"ingenieria-agricola",label:"Ingenier\xEDa Agr\xEDcola (Espa\xF1ol)"},{value:"innovations-therapeutiques-en-oncologie",label:"Innovations & Th\xE9rapeutiques en Oncologie"},{value:"instap-academic-press",label:"INSTAP Academic Press"},{value:"institut-francais-darcheologie-orientale-arab-studies",label:"Institut fran\xE7ais d'arch\xE9ologie orientale - Arab Studies (English)"},{value:"institut-francais-darcheologie-orientale-en",label:"Institut fran\xE7ais d'arch\xE9ologie orientale - Egyptology (English)"},{value:"institut-francais-darcheologie-orientale-etudes-arabes",label:"Institut fran\xE7ais d'arch\xE9ologie orientale - \xE9tudes arabes (Fran\xE7ais)"},{value:"institut-francais-darcheologie-orientale",label:"Institut fran\xE7ais d'arch\xE9ologie orientale - arch\xE9ologie et \xE9gyptologie (Fran\xE7ais)"},{value:"institut-national-de-la-recherche-scientifique-sciences-sociales",label:"Institut national de la recherche scientifique - Sciences sociales (author-date, Fran\xE7ais)"},{value:"institut-national-de-recherches-archeologiques-preventives",label:"Institut national de recherches arch\xE9ologiques pr\xE9ventives (Fran\xE7ais)"},{value:"institut-national-de-sante-publique-du-quebec-napp",label:"Institut national de sant\xE9 publique du Qu\xE9bec - NAPP (Fran\xE7ais - Canada)"},{value:"institut-national-de-sante-publique-du-quebec-topo",label:"Institut national de sant\xE9 publique du Qu\xE9bec - TOPO (Fran\xE7ais - Canada)"},{value:"institut-pertanian-bogor",label:"Institut Pertanian Bogor: Pedoman Penulisan Karya Ilmiah Edisi ke-3 (Bahasa Indonesia)"},{value:"institut-teknologi-bandung-sekolah-pascasarjana",label:"Institut Teknologi Bandung - Sekolah Pascasarjana"},{value:"institute-for-operations-research-and-the-management-sciences",label:"Institute for Operations Research and the Management Sciences"},{value:"institute-of-mathematical-statistics",label:"Institute of Mathematical Statistics journals"},{value:"institute-of-mathematics-and-its-applications",label:"Institute of Mathematics and its Applications"},{value:"institute-of-physics-harvard",label:"Institute of Physics - Harvard"},{value:"institute-of-physics-numeric",label:"Institute of Physics (numeric)"},{value:"instituto-brasileiro-de-informacao-em-ciencia-e-tecnologia-abnt-initials",label:"Instituto Brasileiro de Informa\xE7\xE3o em Ci\xEAncia e Tecnologia - ABNT (autoria abreviada)"},{value:"instituto-brasileiro-de-informacao-em-ciencia-e-tecnologia-abnt",label:"Instituto Brasileiro de Informa\xE7\xE3o em Ci\xEAncia e Tecnologia - ABNT (autoria completa)"},{value:"instituto-de-investigaciones-sobre-la-universidad-y-la-educacion-moderno",label:"Instituto de Investigaciones sobre la Universidad y la Educaci\xF3n - Moderno (autor-fecha, Espa\xF1ol)"},{value:"instituto-de-pesquisas-energeticas-e-nucleares",label:"Instituto de Pesquisas Energ\xE9ticas e Nucleares (Portugu\xEAs - Brasil)"},{value:"instituto-de-pesquisas-tecnologicas",label:"Instituto de Pesquisas Tecnol\xF3gicas (Portugu\xEAs - Brasil)"},{value:"instituto-superior-de-teologia-de-las-islas-canarias",label:"Instituto Superior de Teolog\xEDa de las Islas Canarias (Espa\xF1ol)"},{value:"integrated-science-publishing-journals",label:"Integrated Science Publishing journals"},{value:"integrative-and-comparative-biology",label:"Integrative & Comparative Biology"},{value:"inter-research-science-center",label:"Inter-Research Science Center"},{value:"inter-ro",label:"INTER: Romanian Review for Theological and Religious Studies"},{value:"interaction-design-and-architectures",label:"Interaction Design & Architecture(s)"},{value:"interactive-cardiovascular-and-thoracic-surgery",label:"Interactive CardioVascular and Thoracic Surgery"},{value:"interdisziplinare-anthropologie",label:"Interdisziplin\xE4re Anthropologie (Deutsch)"},{value:"interdisziplinare-zeitschrift-fur-technologie-und-lernen",label:"Interdisziplin\xE4re Zeitschrift f\xFCr Technologie und Lernen (Deutsch)"},{value:"interkulturelle-germanistik-gottingen",label:"Interkulturelle Germanistik G\xF6ttingen (Deutsch)"},{value:"international-atomic-energy-agency",label:"International Atomic Energy Agency"},{value:"international-biodeterioration-and-biodegradation",label:"International Biodeterioration & Biodegradation"},{value:"international-brazilian-journal-of-urology",label:"International Brazilian Journal Of Urology"},{value:"international-conference-on-information-systems-development",label:"International Conference on Information Systems Development"},{value:"international-development-policy",label:"International Development Policy"},{value:"international-energy-agency-organisation-for-economic-co-operation-and-development",label:"International Energy Agency - Organisation for Economic Co-operation and Development"},{value:"international-islamic-university-malaysia-ahmad-ibrahim-kulliyyah-of-laws",label:"International Islamic University Malaysia - Ahmad Ibrahim Kulliyyah of Laws"},{value:"international-journal-for-numerical-methods-in-biomedical-engineering",label:"International Journal for Numerical Methods in Biomedical Engineering"},{value:"international-journal-of-audiology",label:"International Journal of Audiology"},{value:"international-journal-of-automotive-technology",label:"International Journal of Automotive Technology"},{value:"international-journal-of-cancer",label:"International Journal of Cancer"},{value:"international-journal-of-circuit-theory-and-applications",label:"International Journal of Circuit Theory and Applications"},{value:"international-journal-of-climatology",label:"International Journal of Climatology"},{value:"international-journal-of-clinical-research",label:"International Journal of Clinical Research"},{value:"international-journal-of-cosmetic-science",label:"International Journal of Cosmetic Science"},{value:"international-journal-of-electrochemical-science",label:"International Journal of Electrochemical Science"},{value:"international-journal-of-electronic-commerce",label:"International Journal of Electronic Commerce"},{value:"international-journal-of-epidemiology",label:"International Journal of Epidemiology"},{value:"international-journal-of-exercise-science",label:"International Journal of Exercise Science"},{value:"international-journal-of-food-science-and-technology",label:"International Journal of Food Science & Technology"},{value:"international-journal-of-geriatric-psychiatry",label:"International Journal of Geriatric Psychiatry"},{value:"international-journal-of-humanoid-robotics",label:"International Journal of Humanoid Robotics"},{value:"international-journal-of-language-and-communication-disorders",label:"International Journal of Language & Communication Disorders"},{value:"international-journal-of-learner-corpus-research",label:"International Journal of Learner Corpus Research"},{value:"international-journal-of-lexicography",label:"International Journal of Lexicography"},{value:"international-journal-of-management-reviews",label:"International Journal of Management Reviews"},{value:"international-journal-of-nuclear-security",label:"International Journal of Nuclear Security"},{value:"international-journal-of-obstetric-anesthesia",label:"International Journal of Obstetric Anesthesia"},{value:"international-journal-of-occupational-medicine-and-environmental-health",label:"International Journal of Occupational Medicine and Environmental Health"},{value:"international-journal-of-oral-and-maxillofacial-surgery",label:"International Journal of Oral and Maxillofacial Surgery"},{value:"international-journal-of-osteoarchaeology",label:"International Journal of Osteoarchaeology"},{value:"international-journal-of-plant-sciences",label:"International Journal of Plant Sciences"},{value:"international-journal-of-polymer-analysis-and-characterization",label:"International Journal of Polymer Analysis and Characterization"},{value:"international-journal-of-polymeric-materials-and-polymeric-biomaterials",label:"International Journal of Polymeric Materials and Polymeric Biomaterials"},{value:"international-journal-of-population-data-science",label:"International Journal of Population Data Science"},{value:"international-journal-of-quantum-chemistry",label:"International Journal of Quantum Chemistry"},{value:"international-journal-of-radiation-oncology-biology-physics",label:"International Journal of Radiation Oncology, Biology, Physics"},{value:"international-journal-of-research-in-exercise-physiology",label:"International Journal of Research in Exercise Physiology"},{value:"international-journal-of-simulation-modelling",label:"International Journal of Simulation Modelling"},{value:"international-journal-of-spatial-data-infrastructures-research",label:"International Journal of Spatial Data Infrastructures Research"},{value:"international-journal-of-sports-medicine",label:"International Journal of Sport Medicine"},{value:"international-journal-of-urban-and-regional-research",label:"International Journal of Urban and Regional Research"},{value:"international-journal-of-wildland-fire",label:"International Journal of Wildland Fire"},{value:"international-microbiology",label:"International Microbiology"},{value:"international-organization",label:"International Organization"},{value:"international-pig-veterinary-society-congress-proceedings",label:"International Pig Veterinary Society Congress Proceedings"},{value:"international-review-of-the-red-cross",label:"International Review of the Red Cross"},{value:"international-security",label:"International Security"},{value:"international-studies-association",label:"International Studies Association"},{value:"international-union-of-crystallography",label:"International Union of Crystallography journals"},{value:"international-union-of-forest-research-organizations-headquarters",label:"International Union of Forest Research Organizations - Headquarters"},{value:"inventaire-general-du-patrimoine-culturel-iso-690-full-note-with-ibid",label:"Inventaire g\xE9n\xE9ral du patrimoine culturel - ISO-690 (full note, with Ibid., Fran\xE7ais)"},{value:"inventaire-general-du-patrimoine-culturel-iso-690-full-note",label:"Inventaire g\xE9n\xE9ral du patrimoine culturel - ISO-690 (full note, Fran\xE7ais)"},{value:"inventaire-general-du-patrimoine-culturel-iso-690-note",label:"Inventaire g\xE9n\xE9ral du patrimoine culturel - ISO-690 (note, Fran\xE7ais)"},{value:"invertebrate-biology",label:"Invertebrate Biology"},{value:"investigative-radiology",label:"Investigative Radiology"},{value:"invisu",label:"InVisu"},{value:"ios-press-books",label:"IOS Press (books)"},{value:"ipag-business-school-apa",label:"IPAG Business School - APA"},{value:"iran-manual-of-style",label:"Iran Manual of Style - \u0634\u06CC\u0648\u0647\u200C\u0646\u0627\u0645\u0647 \u0627\u06CC\u0631\u0627\u0646 (\u0641\u0627\u0631\u0633\u06CC)"},{value:"iranian-journal-of-basic-medical-sciences",label:"Iranian Journal of Basic Medical Sciences"},{value:"iranian-journal-of-pharmaceutical-research",label:"Iranian Journal of Pharmaceutical Research"},{value:"irish-historical-studies",label:"Irish Historical Studies"},{value:"isabella-stewart-gardner-museum",label:"Isabella Stewart Gardner Museum"},{value:"isnad-dipnotlu",label:"\u0130SNAD At\u0131f Sistemi 2. Edisyon (dipnotlu)"},{value:"isnad-metinici",label:"\u0130SNAD At\u0131f Sistemi 2. Edisyon (metini\xE7i)"},{value:"isnad",label:"\u0130SNAD At\u0131f Sistemi 1. Edisyon (dipnotlu)"},{value:"iso690-author-date-cs",label:"ISO-690 (author-date, \u010Ce\u0161tina)"},{value:"iso690-author-date-de",label:"ISO-690 (author-date, Deutsch)"},{value:"iso690-author-date-en",label:"ISO-690 (author-date, English)"},{value:"iso690-author-date-es",label:"ISO-690 (author-date, Espa\xF1ol)"},{value:"iso690-author-date-fr-no-abstract",label:"ISO-690 (author-date, no abstract, Fran\xE7ais)"},{value:"iso690-author-date-fr",label:"ISO-690 (author-date, Fran\xE7ais)"},{value:"iso690-author-date-pt-br",label:"ISO-690 (author-date, Portugu\xEAs - Brasil)"},{value:"iso690-author-date-sk",label:"ISO-690 (author-date, Sloven\u010Dina)"},{value:"iso690-full-note-cs",label:"ISO-690 (full note, \u010Ce\u0161tina)"},{value:"iso690-full-note-sk",label:"ISO-690 (full note, Sloven\u010Dina)"},{value:"iso690-full-note-with-ibid-ro",label:"ISO-690 (full note, with Ibid., Rom\xE2n\u0103)"},{value:"iso690-note-cs",label:"ISO-690 (note, without bibliography, \u010Ce\u0161tina)"},{value:"iso690-note-fr",label:"ISO-690 (note, no abstract, Fran\xE7ais)"},{value:"iso690-numeric-brackets-cs",label:"ISO-690 (numeric, brackets, \u010Ce\u0161tina)"},{value:"iso690-numeric-cs",label:"ISO-690 (numeric, parentheses, \u010Ce\u0161tina)"},{value:"iso690-numeric-en",label:"ISO-690 (numeric, English)"},{value:"iso690-numeric-fr",label:"ISO-690 (numeric, Fran\xE7ais)"},{value:"iso690-numeric-lt",label:"ISO-690 (numeric, Lietuvi\u0173 kalba)"},{value:"iso690-numeric-sk",label:"ISO-690 (numeric, Sloven\u010Dina)"},{value:"israel-medical-association-journal",label:"Israel Medical Association Journal"},{value:"istanbul-medical-journal",label:"\u0130stanbul Medical Journal"},{value:"istanbul-universitesi-sosyal-bilimler-enstitusu",label:"\u0130stanbul \xDCniversitesi Sosyal Bilimler Enstit\xFCs\xFC (T\xFCrk\xE7e)"},{value:"italian-journal-of-agronomy",label:"Italian Journal of Agronomy"},{value:"italus-hortus",label:"Italus Hortus"},{value:"ithaque",label:"Ithaque (Fran\xE7ais - Canada)"},{value:"iubmb-life",label:"IUBMB Life"},{value:"ius-ecclesiae",label:"Ius Ecclesiae"},{value:"izmir-katip-celebi-universitesi-sosyal-bilimler-enstitusu",label:"\u0130zmir Katip \xC7elebi \xDCniversitesi - Sosyal Bilimler Enstit\xFCs\xFC (T\xFCrk\xE7e)"},{value:"jacc-cardiovascular-imaging",label:"JACC: Cardiovascular Imaging"},{value:"jacc-cardiovascular-interventions",label:"JACC: Cardiovascular Interventions"},{value:"jahrbuch-der-osterreichischen-byzantinischen-gesellschaft",label:"Jahrbuch der \xD6sterreichischen Byzantinischen Gesellschaft"},{value:"jahrbuch-fur-evangelikale-theologie",label:"Jahrbuch f\xFCr evangelikale Theologie (Deutsch)"},{value:"japanese-journal-of-applied-physics",label:"Japanese Journal of Applied Physics"},{value:"javnost-the-public",label:"Javnost - The Public"},{value:"jci-insight",label:"JCI Insight"},{value:"jcom-journal-of-science-communication",label:"JCOM: Journal of Science Communication"},{value:"john-benjamins-publishing-company-iconicity-in-language-and-literature",label:"John Benjamins Publishing Company - Iconicity in Language and Literature"},{value:"john-benjamins-publishing-company-linguistik-aktuell-linguistics-today",label:"John Benjamins Publishing Company - Linguistik Aktuell/Linguistics Today"},{value:"johnson-matthey-technology-review",label:"Johnson Matthey Technology Review"},{value:"journal-and-proceedings-of-the-royal-society-of-new-south-wales",label:"Journal and Proceedings of the Royal Society of New South Wales"},{value:"journal-de-la-societe-des-americanistes",label:"Journal de la Soci\xE9t\xE9 des am\xE9ricanistes"},{value:"journal-de-la-societe-des-oceanistes",label:"Journal de la Soci\xE9t\xE9 des Oc\xE9anistes"},{value:"journal-for-the-history-of-astronomy",label:"Journal for the History of Astronomy"},{value:"journal-for-the-study-of-the-new-testament",label:"Journal for the Study of the New Testament"},{value:"journal-for-veterinary-medicine-biotechnology-and-biosafety",label:"Journal for Veterinary Medicine, Biotechnology and Biosafety"},{value:"journal-fur-kulturpflanzen-journal-of-cultivated-plants",label:"Journal f\xFCr Kulturpflanzen - Journal of Cultivated Plants"},{value:"journal-fur-kunstgeschichte",label:"Journal f\xFCr Kunstgeschichte"},{value:"journal-of-accounting-research",label:"Journal of Accounting Research"},{value:"journal-of-acoustics",label:"Journal of Acoustics"},{value:"journal-of-adolescent-health",label:"Journal of Adolescent Health"},{value:"journal-of-advertising-research",label:"Journal of Advertising Research"},{value:"journal-of-agricultural-and-applied-economics",label:"Journal of Agricultural and Applied Economics"},{value:"journal-of-agricultural-and-resource-economics",label:"Journal of Agricultural and Resource Economics"},{value:"journal-of-alzheimers-disease",label:"Journal of Alzheimer's Disease"},{value:"journal-of-analytical-toxicology",label:"Journal of Analytical Toxicology"},{value:"journal-of-animal-physiology-and-animal-nutrition",label:"Journal of Animal Physiology and Animal Nutrition"},{value:"journal-of-animal-science",label:"Journal of Animal Science"},{value:"journal-of-antimicrobial-chemotherapy",label:"Journal of Antimicrobial Chemotherapy"},{value:"journal-of-aoac-international",label:"Journal of AOAC International"},{value:"journal-of-applied-animal-science",label:"Journal of Applied Animal Science"},{value:"journal-of-applied-clinical-medical-physics",label:"Journal of Applied Clinical Medical Physics"},{value:"journal-of-applied-entomology",label:"Journal of Applied Entomology"},{value:"journal-of-applied-pharmaceutical-research",label:"Journal of Applied Pharmaceutical Research"},{value:"journal-of-applied-philosophy",label:"Journal of Applied Philosophy"},{value:"journal-of-applied-polymer-science",label:"Journal of Applied Polymer Science"},{value:"journal-of-archaeological-research",label:"Journal of Archaeological Research"},{value:"journal-of-atrial-fibrillation",label:"Journal of Atrial Fibrillation"},{value:"journal-of-australian-strength-and-conditioning",label:"Journal of Australian Strength & Conditioning"},{value:"journal-of-avian-biology",label:"Journal of Avian Biology"},{value:"journal-of-basic-microbiology",label:"Journal of Basic Microbiology"},{value:"journal-of-biological-chemistry",label:"The Journal of Biological Chemistry"},{value:"journal-of-biological-regulators-and-homeostatic-agents",label:"Journal of Biological Regulators & Homeostatic Agents"},{value:"journal-of-biomedical-materials-research-part-a",label:"Journal of Biomedical Materials Research Part A"},{value:"journal-of-biosciences",label:"Journal of Biosciences"},{value:"journal-of-bone-and-mineral-research",label:"Journal of Bone and Mineral Research"},{value:"journal-of-brachial-plexus-and-peripheral-nerve-injury",label:"Journal of Brachial Plexus and Peripheral Nerve Injury"},{value:"journal-of-breast-cancer",label:"Journal of Breast Cancer"},{value:"journal-of-burn-care-and-research",label:"Journal of Burn Care & Research"},{value:"journal-of-business-logistics",label:"Journal of Business Logistics"},{value:"journal-of-cachexia-sarcopenia-and-muscle",label:"Journal of Cachexia, Sarcopenia and Muscle"},{value:"journal-of-cardiothoracic-and-vascular-anesthesia",label:"Journal of Cardiothoracic and Vascular Anesthesia"},{value:"journal-of-cellular-and-molecular-medicine",label:"Journal of Cellular and Molecular Medicine"},{value:"journal-of-cellular-biochemistry",label:"Journal of Cellular Biochemistry"},{value:"journal-of-chemistry-and-chemical-engineering",label:"Journal of Chemistry and Chemical Engineering"},{value:"journal-of-chemometrics",label:"Journal of Chemometrics"},{value:"journal-of-clinical-and-translational-science",label:"Journal of Clinical and Translational Science"},{value:"journal-of-clinical-neurology",label:"Journal of Clinical Neurology"},{value:"journal-of-clinical-neurophysiology",label:"Journal of Clinical Neurophysiology"},{value:"journal-of-clinical-oncology",label:"Journal of Clinical Oncology"},{value:"journal-of-clinical-rheumatology",label:"Journal of Clinical Rheumatology"},{value:"journal-of-clinical-sleep-medicine",label:"Journal of Clinical Sleep Medicine"},{value:"journal-of-combinatorics",label:"Journal of Combinatorics"},{value:"journal-of-common-market-studies",label:"Journal of Common Market Studies"},{value:"journal-of-comparative-pathology",label:"Journal of Comparative Pathology"},{value:"journal-of-computational-chemistry",label:"Journal of Computational Chemistry"},{value:"journal-of-computer-applications-in-archaeology",label:"Journal of Computer Applications in Archaeology"},{value:"journal-of-computer-assisted-tomography",label:"Journal of Computer Assisted Tomography"},{value:"journal-of-computer-information-systems",label:"Journal of Computer Information Systems"},{value:"journal-of-consumer-research",label:"Journal of Consumer Research"},{value:"journal-of-contemporary-medicine",label:"Journal of Contemporary Medicine"},{value:"journal-of-contemporary-water-research-and-education",label:"Journal of Contemporary Water Research and Education"},{value:"journal-of-crohns-and-colitis-supplements",label:"Journal of Crohn's and Colitis Supplements"},{value:"journal-of-crohns-and-colitis",label:"Journal of Crohn's and Colitis"},{value:"journal-of-dairy-science",label:"Journal of Dairy Science"},{value:"journal-of-dental-research",label:"Journal of Dental Research"},{value:"journal-of-early-christian-studies",label:"Journal of Early Christian Studies"},{value:"journal-of-economic-impact",label:"Journal of Economic Impact"},{value:"journal-of-egyptian-history",label:"Journal of Egyptian History"},{value:"journal-of-elections-public-opinion-and-parties",label:"Journal of Elections, Public Opinion & Parties"},{value:"journal-of-endodontics",label:"Journal of Endodontics"},{value:"journal-of-environmental-science-and-health-part-b",label:"Journal of Environmental Science and Health, Part B"},{value:"journal-of-ethnobiology",label:"Journal of Ethnobiology"},{value:"journal-of-european-public-policy",label:"Journal of European Public Policy"},{value:"journal-of-evolution-and-health",label:"Journal of Evolution and Health"},{value:"journal-of-evolutionary-biology",label:"Journal of Evolutionary Biology"},{value:"journal-of-experimental-botany",label:"Journal of Experimental Botany"},{value:"journal-of-field-ornithology",label:"Journal of Field Ornithology"},{value:"journal-of-finance",label:"Journal of Finance"},{value:"journal-of-financial-and-quantitative-analysis",label:"Journal of Financial and Quantitative Analysis"},{value:"journal-of-fish-biology",label:"Journal of Fish Biology"},{value:"journal-of-food-protection",label:"Journal of Food Protection"},{value:"journal-of-foraminiferal-research",label:"Journal of Foraminiferal Research"},{value:"journal-of-forensic-sciences",label:"Journal of Forensic Sciences"},{value:"journal-of-frailty-and-aging",label:"Journal of Frailty & Aging"},{value:"journal-of-geriatric-psychiatry-and-neurology",label:"Journal of Geriatric Psychiatry and Neurology"},{value:"journal-of-glaciology",label:"Journal of Glaciology"},{value:"journal-of-global-health",label:"Journal of Global Health"},{value:"journal-of-health-care-for-the-poor-and-underserved",label:"Journal of Health Care for the Poor and Underserved"},{value:"journal-of-hearing-science",label:"Journal of Hearing Science"},{value:"journal-of-historical-linguistics",label:"Journal of Historical Linguistics"},{value:"journal-of-human-evolution",label:"Journal of Human Evolution"},{value:"journal-of-human-rights",label:"Journal of Human Rights"},{value:"journal-of-hypertension",label:"Journal of Hypertension"},{value:"journal-of-industrial-and-engineering-chemistry",label:"Journal of Industrial and Engineering Chemistry"},{value:"journal-of-industrial-ecology",label:"Journal of Industrial Ecology"},{value:"journal-of-infection",label:"Journal of Infection"},{value:"journal-of-infectious-diseases",label:"Journal of Infectious Diseases"},{value:"journal-of-information-technology",label:"Journal of Information Technology"},{value:"journal-of-institutional-and-theoretical-economics",label:"Journal of Institutional and Theoretical Economics"},{value:"journal-of-instrumentation",label:"Journal of Instrumentation"},{value:"journal-of-integrated-omics",label:"Journal of Integrated OMICS"},{value:"journal-of-interactive-marketing",label:"Journal of Interactive Marketing"},{value:"journal-of-intercultural-studies",label:"Journal of Intercultural Studies"},{value:"journal-of-internal-medicine",label:"Journal of Internal Medicine"},{value:"journal-of-international-business-studies",label:"Journal of International Business Studies"},{value:"journal-of-international-economic-law",label:"Journal of International Economic Law"},{value:"journal-of-international-peacekeeping",label:"Journal of International Peacekeeping"},{value:"journal-of-international-relations-and-development",label:"Journal of International Relations and Development"},{value:"journal-of-investigative-dermatology",label:"Journal of Investigative Dermatology"},{value:"journal-of-jewish-studies",label:"Journal of Jewish Studies"},{value:"journal-of-korean-neurosurgical-society",label:"Journal of Korean Neurosurgical Society"},{value:"journal-of-leukocyte-biology",label:"Journal of Leukocyte Biology"},{value:"journal-of-limnology",label:"Journal of Limnology"},{value:"journal-of-linguistics",label:"Journal of Linguistics"},{value:"journal-of-lipid-research",label:"Journal of Lipid Research"},{value:"journal-of-magnetic-resonance-imaging",label:"Journal Of Magnetic Resonance Imaging"},{value:"journal-of-mammalogy",label:"Journal of Mammalogy"},{value:"journal-of-management-information-systems",label:"Journal of Management Information Systems"},{value:"journal-of-management-studies",label:"Journal of Management Studies"},{value:"journal-of-management",label:"Journal of Management"},{value:"journal-of-materials-research",label:"Journal of Materials Research"},{value:"journal-of-mechanical-science-and-technology",label:"Journal of Mechanical Science and Technology"},{value:"journal-of-medical-genetics",label:"Journal of Medical Genetics"},{value:"journal-of-medical-internet-research",label:"Journal of Medical Internet Research"},{value:"journal-of-microbiology-and-biotechnology",label:"Journal of Microbiology and Biotechnology"},{value:"journal-of-microbiology",label:"Journal of Microbiology"},{value:"journal-of-minimally-invasive-gynecology",label:"Journal of Minimally Invasive Gynecology"},{value:"journal-of-molecular-cell-biology",label:"Journal of Molecular Cell Biology"},{value:"journal-of-molecular-endocrinology",label:"Journal of Molecular Endocrinology"},{value:"journal-of-molecular-recognition",label:"Journal of Molecular Recognition"},{value:"journal-of-molecular-signaling",label:"Journal of Molecular Signaling"},{value:"journal-of-move-and-therapeutic-science",label:"Journal of Move and Therapeutic Science"},{value:"journal-of-musculoskeletal-research",label:"Journal of Musculoskeletal Research"},{value:"journal-of-music-technology-and-education",label:"Journal of Music Technology and Education"},{value:"journal-of-nanoscience-and-nanotechnology",label:"Journal of Nanoscience and Nanotechnology"},{value:"journal-of-natural-history",label:"Journal of Natural History"},{value:"journal-of-neolithic-archaeology",label:"Journal of Neolithic Archaeology"},{value:"journal-of-neurochemistry",label:"Journal of Neurochemistry"},{value:"journal-of-neuroendocrinology",label:"Journal of Neuroendocrinology"},{value:"journal-of-neurological-disorders",label:"Journal of Neurological Disorders"},{value:"journal-of-neurophysiology",label:"Journal of Neurophysiology"},{value:"journal-of-neuroscience-and-neuroengineering",label:"Journal of Neuroscience and Neuroengineering"},{value:"journal-of-new-zealand-grasslands",label:"Journal of New Zealand Grasslands"},{value:"journal-of-nutrition",label:"Journal of Nutrition"},{value:"journal-of-oil-palm-research",label:"Journal of Oil Palm Research"},{value:"journal-of-open-research-software",label:"Journal of Open Research Software"},{value:"journal-of-oral-and-maxillofacial-surgery",label:"Journal of Oral and Maxillofacial Surgery"},{value:"journal-of-orthopaedic-research",label:"Journal of Orthopaedic Research"},{value:"journal-of-orthopaedic-trauma",label:"Journal of Orthopaedic Trauma"},{value:"journal-of-orthopaedics-trauma-and-rehabilitation",label:"Journal of Orthopaedics, Trauma and Rehabilitation"},{value:"journal-of-paleontology",label:"Journal of Paleontology"},{value:"journal-of-peace-research",label:"Journal of Peace Research"},{value:"journal-of-pediatric-gastroenterology-and-nutrition",label:"Journal of Pediatric Gastroenterology and Nutrition"},{value:"journal-of-peptide-science",label:"Journal of Peptide Science"},{value:"journal-of-perinatal-medicine",label:"Journal of Perinatal Medicine"},{value:"journal-of-periodontal-research",label:"Journal of Periodontal Research"},{value:"journal-of-petrology",label:"Journal of Petrology"},{value:"journal-of-pharmacy-and-pharmacology",label:"Journal of Pharmacy and Pharmacology"},{value:"journal-of-phycology",label:"Journal of Phycology"},{value:"journal-of-physical-therapy-science",label:"Journal of Physical Therapy Science"},{value:"journal-of-plankton-research",label:"Journal of Plankton Research"},{value:"journal-of-plant-ecology",label:"Journal of Plant Ecology"},{value:"journal-of-plant-nutrition-and-soil-science",label:"Journal of Plant Nutrition and Soil Science"},{value:"journal-of-plant-protection-research",label:"Journal of Plant Protection Research"},{value:"journal-of-political-ideologies",label:"Journal of Political Ideologies"},{value:"journal-of-political-philosophy",label:"Journal of Political Philosophy"},{value:"journal-of-pollination-ecology",label:"Journal of Pollination Ecology"},{value:"journal-of-polymer-science-part-a-polymer-chemistry",label:"Journal of Polymer Science Part A: Polymer Chemistry"},{value:"journal-of-porphyrins-and-phthalocyanines",label:"Journal of Porphyrins and Phthalocyanines"},{value:"journal-of-product-innovation-management",label:"Journal of Product Innovation Management"},{value:"journal-of-psychiatric-and-mental-health-nursing",label:"Journal of Psychiatric and Mental Health Nursing"},{value:"journal-of-psychiatry-and-neuroscience",label:"Journal of Psychiatry & Neuroscience"},{value:"journal-of-raman-spectroscopy",label:"Journal of Raman Spectroscopy"},{value:"journal-of-reconstructive-microsurgery",label:"Journal of Reconstructive Microsurgery"},{value:"journal-of-refugee-studies",label:"Journal of Refugee Studies"},{value:"journal-of-retailing",label:"Journal of Retailing"},{value:"journal-of-rheumatology",label:"Journal of Rheumatology"},{value:"journal-of-roman-archaeology-a",label:"Journal of Roman Archaeology (A)"},{value:"journal-of-roman-archaeology-b",label:"Journal of Roman Archaeology (B)"},{value:"journal-of-science-and-medicine-in-sport",label:"Journal of Science and Medicine in Sport"},{value:"journal-of-separation-science",label:"Journal of Separation Science"},{value:"journal-of-shoulder-and-elbow-surgery",label:"Journal of Shoulder and Elbow Surgery"},{value:"journal-of-simulation",label:"Journal of Simulation"},{value:"journal-of-sleep-research",label:"Journal of Sleep Research"},{value:"journal-of-small-animal-practice",label:"Journal of Small Animal Practice"},{value:"journal-of-small-business-management",label:"Journal of Small Business Management"},{value:"journal-of-social-archaeology",label:"Journal of Social Archaeology"},{value:"journal-of-social-philosophy",label:"Journal of Social Philosophy"},{value:"journal-of-soil-and-water-conservation",label:"Journal of Soil and Water Conservation"},{value:"journal-of-soil-science-and-plant-nutrition",label:"Journal of Soil Science and Plant Nutrition"},{value:"journal-of-sport-and-health-science",label:"Journal of Sport and Health Science"},{value:"journal-of-sports-science-and-medicine",label:"Journal of Sports Science & Medicine"},{value:"journal-of-strength-and-conditioning-research",label:"Journal of Strength and Conditioning Research"},{value:"journal-of-stroke",label:"Journal of Stroke"},{value:"journal-of-structural-geology",label:"Journal of Structural Geology"},{value:"journal-of-studies-on-alcohol-and-drugs",label:"Journal of Studies on Alcohol and Drugs"},{value:"journal-of-surgery-and-medicine",label:"Journal of Surgery and Medicine"},{value:"journal-of-surgical-oncology",label:"Journal of Surgical Oncology"},{value:"journal-of-systematic-palaeontology",label:"Journal of Systematic Palaeontology"},{value:"journal-of-the-air-and-waste-management-association",label:"Journal of the Air & Waste Management Association"},{value:"journal-of-the-american-academy-of-audiology",label:"Journal of the American Academy of Audiology"},{value:"journal-of-the-american-academy-of-orthopaedic-surgeons",label:"Journal of the American Academy of Orthopaedic Surgeons"},{value:"journal-of-the-american-animal-hospital-association",label:"Journal of the American Animal Hospital Association"},{value:"journal-of-the-american-association-of-laboratory-animal-science",label:"Journal of the American Association of Laboratory Animal Science"},{value:"journal-of-the-american-ceramic-society",label:"Journal of the American Ceramic Society"},{value:"journal-of-the-american-college-of-cardiology",label:"Journal of the American College of Cardiology"},{value:"journal-of-the-american-college-of-surgeons",label:"Journal of the American College of Surgeons"},{value:"journal-of-the-american-heart-association",label:"Journal of the American Heart Association"},{value:"journal-of-the-american-society-of-brewing-chemists",label:"Journal of the American Society of Brewing Chemists"},{value:"journal-of-the-american-society-of-nephrology",label:"Journal of the American Society of Nephrology"},{value:"journal-of-the-american-water-resources-association",label:"Journal of the American Water Resources Association"},{value:"journal-of-the-association-for-information-systems",label:"Journal of the Association for Information Systems"},{value:"journal-of-the-association-of-environmental-and-resource-economists",label:"Journal of the Association of Environmental and Resource Economists"},{value:"journal-of-the-botanical-research-institute-of-texas",label:"Journal of the Botanical Research Institute of Texas"},{value:"journal-of-the-brazilian-chemical-society",label:"Journal of the Brazilian Chemical Society"},{value:"journal-of-the-electrochemical-society",label:"Journal of The Electrochemical Society"},{value:"journal-of-the-european-academy-of-dermatology-and-venereology",label:"Journal of the European Academy of Dermatology and Venereology"},{value:"journal-of-the-history-of-collections",label:"Journal of the History of Collections"},{value:"journal-of-the-indian-law-institute",label:"Journal of the Indian Law Institute"},{value:"journal-of-the-korean-society-of-civil-engineers",label:"Journal of the Korean Society of Civil Engineers"},{value:"journal-of-the-marine-biological-association-of-the-united-kingdom",label:"Journal of the Marine Biological Association of the United Kingdom"},{value:"journal-of-the-royal-anthropological-institute",label:"Journal of the Royal Anthropological Institute"},{value:"journal-of-the-royal-society-of-western-australia",label:"Journal of the Royal Society of Western Australia"},{value:"journal-of-the-royal-statistical-society",label:"Journal of the Royal Statistical Society"},{value:"journal-of-the-science-of-food-and-agriculture",label:"Journal of the Science of Food and Agriculture"},{value:"journal-of-the-serbian-chemical-society",label:"Journal of the Serbian Chemical Society"},{value:"journal-of-the-warburg-and-courtauld-institutes",label:"Journal of the Warburg and Courtauld Institutes"},{value:"journal-of-thermal-spray-technology",label:"Journal of Thermal Spray Technology"},{value:"journal-of-threatened-taxa",label:"Journal of Threatened Taxa"},{value:"journal-of-thrombosis-and-haemostasis",label:"Journal of Thrombosis and Haemostasis"},{value:"journal-of-tropical-ecology",label:"Journal of Tropical Ecology"},{value:"journal-of-tropical-life-science",label:"Journal of Tropical Life Science"},{value:"journal-of-universal-computer-science",label:"Journal of Universal Computer Science"},{value:"journal-of-urban-and-environmental-engineering",label:"Journal of Urban and Environmental Engineering"},{value:"journal-of-urban-technology",label:"Journal of Urban Technology"},{value:"journal-of-value-inquiry",label:"The Journal of Value Inquiry"},{value:"journal-of-vegetation-science",label:"Journal of Vegetation Science"},{value:"journal-of-vertebrate-biology",label:"Journal of Vertebrate Biology"},{value:"journal-of-vertebrate-paleontology",label:"Journal of Vertebrate Paleontology"},{value:"journal-of-vestibular-research",label:"Journal of Vestibular Research"},{value:"journal-of-veterinary-diagnostic-investigation",label:"Journal of Veterinary Diagnostic Investigation"},{value:"journal-of-visualized-experiments",label:"Journal of Visualized Experiments"},{value:"journal-of-water-sanitation-and-hygiene-for-development",label:"Journal of Water Sanitation and Hygiene for Development"},{value:"journal-of-wildlife-diseases",label:"Journal of Wildlife Diseases"},{value:"journal-of-zoo-and-wildlife-medicine",label:"Journal of Zoo and Wildlife Medicine"},{value:"journal-of-zoo-biology",label:"Journal of Zoo Biology"},{value:"journal-of-zoology",label:"Journal of Zoology"},{value:"journal-on-efficiency-and-responsibility-in-education-and-science",label:"Journal on Efficiency and Responsibility in Education and Science"},{value:"journalistica",label:"Journalistica (Dansk)"},{value:"jurisprudence",label:"Jurisprudence (\u010Ce\u0161tina)"},{value:"juristische-schulung",label:"Juristische Schulung (Deutsch)"},{value:"juristische-zitierweise-offentliches-recht",label:"Juristische Zitierweise - \xD6ffentliches Recht (Deutsch)"},{value:"juristische-zitierweise-schweizer",label:"Juristische Zitierweise Schweizer (Ryser B\xFCschi et al.) (Deutsch - Schweiz)"},{value:"juristische-zitierweise",label:"Juristische Zitierweise (St\xFCber) (Deutsch)"},{value:"jurnal-ilmu-dan-teknologi-hasil-ternak",label:"Jurnal Ilmu dan Teknologi Hasil Ternak"},{value:"jurnal-pangan-dan-agroindustri",label:"Jurnal Pangan dan Agroindustri (Bahasa Indonesia)"},{value:"jurnal-sains-farmasi-dan-klinis",label:"Jurnal Sains Farmasi & Klinis"},{value:"jyvaskylan-yliopisto-kemian-laitos",label:"Jyv\xE4skyl\xE4n yliopisto - Kemian laitos (Suomi)"},{value:"karabuk-university-graduate-school-of-natural-and-applied-sciences",label:"Karabuk University - Graduate School of Natural and Applied Sciences"},{value:"karger-journals-author-date",label:"Karger journals (author-date)"},{value:"karger-journals",label:"Karger journals"},{value:"karlstad-universitet-harvard",label:"Karlstad Universitet - Harvard (Svenska)"},{value:"karstenia",label:"Karstenia"},{value:"keel-ja-kirjandus",label:"Keel ja Kirjandus (Eesti keel)"},{value:"kidney-research-and-clinical-practice",label:"Kidney Research and Clinical Practice"},{value:"kindheit-und-entwicklung",label:"Kindheit und Entwicklung"},{value:"kit-karlsruher-institut-fur-technologie-germanistik-ndl-neuere-deutsche-literaturwissenschaft",label:"KIT Karlsruher Institut f\xFCr Technologie Germanistik NDL Neuere Deutsche Literaturwissenschaft (German)"},{value:"klinische-padiatrie",label:"Klinische P\xE4diatrie"},{value:"knee-surgery-and-related-research",label:"Knee Surgery & Related Research"},{value:"knee-surgery-sports-traumatology-arthroscopy",label:"Knee Surgery, Sports Traumatology, Arthroscopy"},{value:"knowledge-and-management-of-aquatic-ecosystems",label:"Knowledge & Management of Aquatic Ecosystems"},{value:"kolner-zeitschrift-fur-soziologie-und-sozialpsychologie",label:"K\xF6lner Zeitschrift f\xFCr Soziologie und Sozialpsychologie (Deutsch)"},{value:"kommunikation-und-recht",label:"Kommunikation und Recht (Deutsch)"},{value:"kona-powder-and-particle-journal",label:"KONA Powder and Particle Journal"},{value:"korean-journal-of-anesthesiology",label:"Korean Journal of Anesthesiology"},{value:"korean-journal-of-radiology",label:"Korean Journal of Radiology"},{value:"kritische-ausgabe",label:"Kritische Ausgabe (Deutsch)"},{value:"ksce-journal-of-civil-engineering",label:"KSCE Journal of Civil Engineering"},{value:"kth-royal-institute-of-technology-school-of-computer-science-and-communication-sv",label:"KTH Royal Institute of Technology - School of Computer Science and Communication (Svenska)"},{value:"kth-royal-institute-of-technology-school-of-computer-science-and-communication",label:"KTH Royal Institute of Technology - School of Computer Science and Communication"},{value:"kunstakademie-munster",label:"Kunstakademie M\xFCnster (Deutsch)"},{value:"l-homme",label:"L'homme \u2013 Revue fran\xE7aise d'anthropologie"},{value:"la-revue-des-sciences-de-gestion",label:"La Revue des Sciences de Gestion (Fran\xE7ais)"},{value:"la-trobe-university-apa",label:"La Trobe University - APA 6th edition"},{value:"la-trobe-university-harvard",label:"La Trobe University - Harvard"},{value:"laboratory-animal-science-professional",label:"Laboratory Animal Science Professional"},{value:"lancaster-university-harvard",label:"Lancaster University - Harvard"},{value:"land-degradation-and-development",label:"Land Degradation & Development"},{value:"landes-bioscience-journals",label:"Landes Bioscience Journals"},{value:"language-in-society",label:"Language in Society"},{value:"language",label:"Language"},{value:"lannee-sociologique",label:"L\u2019Ann\xE9e sociologique (Fran\xE7ais)"},{value:"laser-and-photonics-reviews",label:"Laser & Photonics Reviews"},{value:"latin-american-perspectives",label:"Latin American Perspectives"},{value:"latin-american-research-review",label:"Latin American Research Review"},{value:"lauterbornia",label:"Lauterbornia - Internationale Zeitschrift f\xFCr Faunistik und Floristik des S\xFC\xDFwassers (Deutsch)"},{value:"law-and-society-review",label:"Law & Society Review"},{value:"law-citation-manual",label:"Law Citation Manual (\u4E2D\u6CD5\u5B66\u6CE8\u5F15\u624B\u518C, \u4E2D\u6587)"},{value:"law-technology-and-humans",label:"Law, Technology and Humans"},{value:"lcgc",label:"LCGC"},{value:"le-mouvement-social",label:"Le Mouvement Social (Fran\xE7ais)"},{value:"le-tapuscrit-author-date",label:"Le tapuscrit (\xC9cole des hautes \xE9tudes en sciences sociales) (author-date, Fran\xE7ais)"},{value:"le-tapuscrit-note",label:"Le tapuscrit (\xC9cole des hautes \xE9tudes en sciences sociales) (note, Fran\xE7ais)"},{value:"leiden-journal-of-international-law",label:"Leiden Journal of International Law"},{value:"leidraad-voor-juridische-auteurs",label:"Leidraad voor juridische auteurs 2019 (Nederlands)"},{value:"leonardo",label:"Leonardo"},{value:"les-cahiers-du-journalisme",label:"Les Cahiers du journalisme (Fran\xE7ais)"},{value:"les-journees-de-la-recherche-avicole",label:"Les Journ\xE9es de la Recherche Avicole (Fran\xE7ais)"},{value:"les-journees-de-la-recherche-porcine",label:"Les Journ\xE9es de la Recherche Porcine (Fran\xE7ais)"},{value:"les-nouvelles-de-l-archeologie",label:"Les nouvelles de l'arch\xE9ologie (Fran\xE7ais)"},{value:"lethaia",label:"Lethaia"},{value:"letters-in-applied-microbiology",label:"Letters in Applied Microbiology"},{value:"lettres-et-sciences-humaines-fr",label:"Lettres et Sciences Humaines (biblio et notes, Fran\xE7ais)"},{value:"leviathan",label:"Leviathan (Deutsch)"},{value:"lien-social-et-politiques",label:"Lien social et Politiques (Fran\xE7ais)"},{value:"limnetica",label:"Limnetica"},{value:"limnology-and-oceanography",label:"Limnology and Oceanography"},{value:"liver-international",label:"Liver International"},{value:"liverpool-john-moores-university-harvard",label:"Liverpool John Moores University - Harvard"},{value:"lluelles-no-ibid",label:"Guide des r\xE9f\xE9rences pour la r\xE9daction juridique 7e \xE9dition (Notes compl\xE8tes) (Guide Lluelles, no Ibid., Fran\xE7ais - Canada)"},{value:"lluelles",label:"Guide des r\xE9f\xE9rences pour la r\xE9daction juridique 7e \xE9dition (Guide Lluelles, Fran\xE7ais - Canada)"},{value:"london-metropolitan-university-harvard",label:"London Metropolitan University - Harvard"},{value:"london-review-of-international-law",label:"London Review of International Law"},{value:"london-south-bank-university-numeric",label:"London South Bank University (numeric)"},{value:"lund-university-school-of-economics-and-management",label:"Lund University School of Economics and Management"},{value:"macromolecular-reaction-engineering",label:"Macromolecular Reaction Engineering"},{value:"magnetic-resonance-in-medical-sciences",label:"Magnetic Resonance in Medical Sciences"},{value:"magnetic-resonance-in-medicine",label:"Magnetic Resonance in Medicine"},{value:"magnetic-resonance-materials-in-physics-biology-and-medicine",label:"Magnetic Resonance Materials in Physics, Biology and Medicine"},{value:"maison-de-l-orient-et-de-la-mediterranee-en",label:"Maison de l'Orient et de la M\xE9diterran\xE9e (English)"},{value:"maison-de-l-orient-et-de-la-mediterranee",label:"Maison de l'Orient et de la M\xE9diterran\xE9e (Fran\xE7ais)"},{value:"malaysian-orthopaedic-journal",label:"Malaysian Orthopaedic Journal"},{value:"mammal-review",label:"Mammal Review"},{value:"mammalia",label:"Mammalia"},{value:"mammalogy-notes",label:"Mammalogy Notes"},{value:"management-et-avenir",label:"Management & Avenir (Fran\xE7ais)"},{value:"management-international",label:"Management international"},{value:"management-of-biological-invasions",label:"Management of Biological Invasions"},{value:"manchester-university-press-author-date",label:"Manchester University Press monographs (author-date)"},{value:"manchester-university-press",label:"Manchester University Press monographs (note)"},{value:"marine-biology",label:"Marine Biology"},{value:"marine-mammal-science",label:"Marine Mammal Science"},{value:"marine-ornithology",label:"Marine Ornithology"},{value:"marine-turtle-newsletter",label:"Marine Turtle Newsletter"},{value:"marmara-universitesi-turkiyat-arastirmalari-enstitusu",label:"Marmara \xDCniversitesi - T\xFCrkiyat Ara\u015Ft\u0131rmalar\u0131 Enstit\xFCs\xFC (T\xFCrk\xE7e)"},{value:"mary-ann-liebert-harvard",label:"Mary Ann Liebert - Harvard"},{value:"mary-ann-liebert-vancouver",label:"Mary Ann Liebert - Vancouver"},{value:"masarykova-univerzita-pravnicka-fakulta",label:"Masarykova univerzita - Pr\xE1vnick\xE1 fakulta"},{value:"mastozoologia-neotropical",label:"Mastozoologia Neotropical"},{value:"materials-express",label:"Materials Express"},{value:"mathematical-geosciences",label:"Mathematical Geosciences"},{value:"mathematics-and-computers-in-simulation",label:"Mathematics and Computers in Simulation"},{value:"mcdonald-institute-monographs",label:"McDonald Institute Monographs"},{value:"mcgill-en",label:"Canadian Guide to Uniform Legal Citation 9th edition (McGill Guide)"},{value:"mcgill-fr",label:"Manuel canadien de la r\xE9f\xE9rence juridique 9e \xE9dition (Guide McGill, Fran\xE7ais - Canada)"},{value:"medecine-intensive-reanimation",label:"M\xE9decine Intensive R\xE9animation"},{value:"medecine-sciences",label:"m\xE9decine/sciences"},{value:"media-culture-and-society",label:"Media, Culture & Society"},{value:"mediaeval-studies",label:"Mediaeval Studies"},{value:"medical-dosimetry",label:"Medical Dosimetry"},{value:"medical-history",label:"Medical History"},{value:"medicina-clinica",label:"Medicina Cl\xEDnica (Espa\xF1ol)"},{value:"medicina-delle-dipendenze-italian-journal-of-the-addictions",label:"Medicina delle Dipendenze - Italian Journal of the Addictions (Italiano)"},{value:"medicinal-research-reviews",label:"Medicinal Research Reviews"},{value:"medicine-and-science-in-sports-and-exercise",label:"Medicine & Science in Sports & Exercise"},{value:"medicine-publishing",label:"Medicine Publishing"},{value:"medicinski-razgledi",label:"Medicinski razgledi"},{value:"medicinskiy-akademicheskiy-zhurnal",label:"Medicinskiy Akademicheskiy Zhurnal"},{value:"mediterranean-journal-of-chemistry",label:"Mediterranean Journal of Chemistry"},{value:"mediterranean-journal-of-infection-microbes-and-antimicrobials",label:"Mediterranean Journal of Infection, Microbes and Antimicrobials"},{value:"mediterranean-politics",label:"Mediterranean Politics"},{value:"melbourne-school-of-theology",label:"Melbourne School of Theology"},{value:"memorias-do-instituto-oswaldo-cruz",label:"Mem\xF3rias do Instituto Oswaldo Cruz"},{value:"mercator-institut-fur-sprachforderung-und-deutsch-als-zweitsprache",label:"Mercator-Institut f\xFCr Sprachf\xF6rderung und Deutsch als Zweitsprache (Deutsch)"},{value:"mercatus-center",label:"Mercatus Center"},{value:"metallurgical-and-materials-transactions-a",label:"Metallurgical and Materials Transactions A"},{value:"metallurgical-and-materials-transactions",label:"Metallurgical and Materials Transactions"},{value:"meteoritics-and-planetary-science",label:"Meteoritics & Planetary Science"},{value:"meteorological-applications",label:"Meteorological Applications"},{value:"method-and-theory-in-the-study-of-religion",label:"Method & Theory in the Study of Religion"},{value:"methods-of-information-in-medicine",label:"Methods of Information in Medicine"},{value:"metropol-verlag",label:"Metropol Verlag (Deutsch)"},{value:"metropolia-university-of-applied-sciences-harvard",label:"Metropolia Ammattikorkeakoulu - Harvard (Suomi)"},{value:"metropolitiques",label:"M\xE9tropolitiques (Fran\xE7ais)"},{value:"microbial-cell",label:"Microbial Cell"},{value:"microbiology-society",label:"Microbiology Society"},{value:"microcirculation",label:"Microcirculation"},{value:"microscopy-and-microanalysis",label:"Microscopy and Microanalysis"},{value:"middle-east-critique",label:"Middle East Critique"},{value:"midwestern-baptist-theological-seminary",label:"Midwestern Baptist Theological Seminary"},{value:"mimbar-hukum",label:"Mimbar Hukum"},{value:"mimesis-edizioni",label:"Mimesis Edizioni (Italiano)"},{value:"mind-and-language",label:"Mind & Language"},{value:"mineralogical-magazine",label:"Mineralogical Magazine"},{value:"mis-quarterly",label:"MIS Quarterly"},{value:"modern-chinese-literature-and-culture",label:"Modern Chinese Literature and Culture"},{value:"modern-humanities-research-association-author-date",label:"Modern Humanities Research Association 3rd edition (author-date)"},{value:"modern-humanities-research-association",label:"Modern Humanities Research Association 3rd edition (note with bibliography)"},{value:"modern-language-association-6th-edition-note",label:"Modern Language Association 6th edition (note)"},{value:"modern-language-association-7th-edition-underline",label:"Modern Language Association 7th edition (underline)"},{value:"modern-language-association-7th-edition-with-url",label:"Modern Language Association 7th edition (with URL)"},{value:"modern-language-association-7th-edition",label:"Modern Language Association 7th edition"},{value:"modern-language-association-8th-edition",label:"Modern Language Association 8th edition"},{value:"modern-language-association",label:"Modern Language Association 9th edition"},{value:"modern-pathology",label:"Modern Pathology"},{value:"modern-phytomorphology",label:"Modern Phytomorphology"},{value:"mohr-siebeck-recht",label:"Mohr Siebeck - Recht (Deutsch - \xD6sterreich)"},{value:"molecular-and-cellular-proteomics",label:"Molecular & Cellular Proteomics"},{value:"molecular-biology-and-evolution",label:"Molecular Biology and Evolution"},{value:"molecular-biology-of-the-cell",label:"Molecular Biology of the Cell"},{value:"molecular-biology",label:"Molecular Biology"},{value:"molecular-metabolism",label:"Molecular Metabolism"},{value:"molecular-microbiology",label:"Molecular Microbiology"},{value:"molecular-nutrition-and-food-research",label:"Molecular Nutrition & Food Research"},{value:"molecular-oncology",label:"Molecular Oncology"},{value:"molecular-plant-microbe-interactions",label:"Molecular Plant-Microbe Interactions"},{value:"molecular-plant-pathology",label:"Molecular Plant Pathology"},{value:"molecular-plant",label:"Molecular Plant"},{value:"molecular-psychiatry-letters",label:"Molecular Psychiatry (letters to the editor)"},{value:"molecular-psychiatry",label:"Molecular Psychiatry"},{value:"monash-university-csiro",label:"Monash University - CSIRO"},{value:"monash-university-harvard",label:"Monash University - Harvard"},{value:"mondes-en-developpement",label:"Mondes en d\xE9veloppement (Fran\xE7ais)"},{value:"monographs-of-the-palaeontographical-society",label:"Monographs of the Palaeontographical Society"},{value:"moore-theological-college",label:"Moore Theological College"},{value:"moorlands-college",label:"Moorlands College"},{value:"mrs-bulletin",label:"MRS Bulletin"},{value:"multidisciplinary-digital-publishing-institute",label:"Multidisciplinary Digital Publishing Institute"},{value:"multilingual-matters",label:"Multilingual Matters"},{value:"multimed",label:"Multimed (Espa\xF1ol)"},{value:"multiple-sclerosis-journal",label:"Multiple Sclerosis Journal"},{value:"muscle-and-nerve",label:"Muscle & Nerve"},{value:"museum-national-dhistoire-naturelle",label:"Mus\xE9um national d'Histoire naturelle"},{value:"music-theory-spectrum",label:"Music Theory Spectrum"},{value:"mutagenesis",label:"Mutagenesis"},{value:"mycobiology",label:"Mycobiology"},{value:"mycologia",label:"Mycologia"},{value:"myrmecological-news",label:"Myrmecological News"},{value:"nano-biomedicine-and-engineering",label:"Nano Biomedicine and Engineering"},{value:"natbib-plainnat-author-date",label:"natbib - plainnat (author-date)"},{value:"national-archives-of-australia",label:"National Archives of Australia"},{value:"national-institute-of-health-research",label:"National Institute of Health Research"},{value:"national-institute-of-organisation-dynamics-australia-harvard",label:"National Institute of Organisation Dynamics Australia - Harvard"},{value:"national-institute-of-technology-karnataka",label:"National Institute of Technology Karnataka"},{value:"national-institute-of-technology-tiruchirappalli",label:"National Institute of Technology, Tiruchirappalli"},{value:"national-library-of-medicine-grant-proposals",label:"National Library of Medicine (grant proposals with PMCID/PMID)"},{value:"national-marine-fisheries-service-national-environmental-policy-act",label:"National Marine Fisheries Service - National Environmental Policy Act"},{value:"national-natural-science-foundation-of-china",label:"National Natural Science Foundation of China (\u4E2D\u6587)"},{value:"national-science-foundation-grant-proposals",label:"National Science Foundation (grant proposals)"},{value:"national-university-of-singapore-department-of-geography-harvard",label:"National University of Singapore - Department of Geography - Harvard"},{value:"nations-and-nationalism",label:"Nations and Nationalism"},{value:"natur-und-landschaft",label:"Natur und Landschaft (Deutsch)"},{value:"natura-croatica",label:"Natura Croatica"},{value:"nature-neuroscience-brief-communications",label:"Nature Neuroscience (brief communications)"},{value:"nature-no-et-al",label:'Nature (no "et al.")'},{value:"nature-no-superscript",label:"Nature (no superscript)"},{value:"nature-publishing-group-vancouver",label:"Nature Publishing Group - Vancouver"},{value:"nature",label:"Nature"},{value:"natures-sciences-societes",label:"Natures Sciences Soci\xE9t\xE9s"},{value:"nauplius",label:"Nauplius"},{value:"navigation",label:"Navigation"},{value:"nccr-mediality",label:"NCCR Mediality. Medienwandel - Medienwechsel - Medienwissen (Deutsch)"},{value:"necmettin-erbakan-universitesi-fen-ve-muhendislik-bilimleri-dergisi",label:"Necmettin Erbakan \xDCniversitesi Fen ve M\xFChendislik Bilimleri Dergisi (T\xFCrk\xE7e)"},{value:"nehet",label:"NeHeT (Fran\xE7ais)"},{value:"nejm-catalyst-innovations-in-care-delivery",label:"NEJM Catalyst Innovations in Care Delivery"},{value:"nephrology-dialysis-transplantation",label:"Nephrology Dialysis Transplantation"},{value:"netherlands-journal-of-geosciences-geologie-en-mijnbouw",label:"Netherlands Journal of Geosciences - Geologie en Mijnbouw"},{value:"neue-juristische-wochenschrift",label:"Neue Juristische Wochenschrift (Deutsch)"},{value:"neue-kriminalpolitik",label:"Neue Kriminalpolitik (Deutsch)"},{value:"neural-plasticity",label:"Neural Plasticity"},{value:"neuroendocrinology-letters",label:"Neuroendocrinology Letters"},{value:"neuroimaging-clinics-of-north-america",label:"Neuroimaging Clinics of North America"},{value:"neurologia-argentina",label:"Neurolog\xEDa Argentina (Espa\xF1ol)"},{value:"neurologia",label:"Neurolog\xEDa (Espa\xF1ol)"},{value:"neurology-india",label:"Neurology India"},{value:"neurology",label:"Neurology"},{value:"neuropsychopharmacology",label:"Neuropsychopharmacology"},{value:"neurorehabilitation-and-neural-repair",label:"Neurorehabilitation and Neural Repair"},{value:"neuroreport",label:"NeuroReport"},{value:"neurospine",label:"Neurospine"},{value:"neurosurgery-clinics-of-north-america",label:"Neurosurgery Clinics of North America"},{value:"new-harts-rules-the-oxford-style-guide",label:"New Hart's Rules: The Oxford Style Guide"},{value:"new-phytologist",label:"New Phytologist"},{value:"new-solutions",label:"New Solutions"},{value:"new-testament-studies",label:"New Testament Studies"},{value:"new-zealand-dental-journal",label:"New Zealand Dental Journal"},{value:"new-zealand-journal-of-forestry-science",label:"New Zealand Journal of Forestry Science"},{value:"new-zealand-journal-of-history",label:"New Zealand Journal of History"},{value:"new-zealand-plant-protection",label:"New Zealand Plant Protection"},{value:"new-zealand-veterinary-journal",label:"New Zealand Veterinary Journal"},{value:"nist-technical-publication-journal-of-research-of-nist",label:"NIST Technical Publications - Journal of Research of NIST"},{value:"nordic-pulp-and-paper-research-journal",label:"Nordic Pulp & Paper Research Journal"},{value:"norma-portuguesa-405",label:"Norma Portuguesa 405 (Portugu\xEAs)"},{value:"norois",label:"Norois (Fran\xE7ais)"},{value:"norsk-apa-manual-note",label:"Norsk APA-manual - APA 7th edition (note)"},{value:"norsk-apa-manual",label:"Norsk APA-manual - APA 7th edition (author-date)"},{value:"norsk-henvisningsstandard-for-rettsvitenskapelige-tekster",label:"Norsk henvisningsstandard for rettsvitenskapelige tekster (Norsk - Bokm\xE5l)"},{value:"northeastern-naturalist",label:"Northeastern Naturalist"},{value:"nottingham-trent-university-library-harvard",label:"Nottingham Trent University Library - Harvard"},{value:"nouvelles-perspectives-en-sciences-sociales",label:"Nouvelles perspectives en sciences sociales (Fran\xE7ais - Canada)"},{value:"novasinergia",label:"Novasinergia"},{value:"nowa-audiofonologia",label:"Nowa Audiofonologia (Polski)"},{value:"nuclear-receptor-signaling",label:"Nuclear Receptor Signaling"},{value:"nucleic-acids-research-web-server-issue",label:"Nucleic Acids Research - Web Server Issue"},{value:"nucleic-acids-research",label:"Nucleic Acids Research"},{value:"nutrition-research-reviews",label:"Nutrition Research Reviews"},{value:"obafemi-awolowo-university-faculty-of-technology",label:"Obafemi Awolowo University - Faculty of Technology"},{value:"obesity",label:"Obesity"},{value:"obstetrics-and-gynecology-science",label:"Obstetrics & Gynecology Science"},{value:"occupational-medicine",label:"Occupational Medicine"},{value:"ocean-and-coastal-research",label:"Ocean and Coastal Research"},{value:"oceanography",label:"Oceanography"},{value:"oecologia-australis",label:"Oecologia Australis"},{value:"offa",label:"Offa - Berichte und Mitteilungen zur Urgeschichte, Fr\xFChgeschichte und Mittelalterarch\xE4ologie"},{value:"oikos",label:"Oikos"},{value:"oil-shale",label:"Oil Shale"},{value:"oncoimmunology",label:"OncoImmunology"},{value:"oncotarget",label:"Oncotarget"},{value:"open-gender-journal",label:"Open Gender Journal"},{value:"open-window",label:"Open Window - Harvard"},{value:"operative-dentistry",label:"Operative Dentistry"},{value:"ophthalmic-genetics",label:"Ophthalmic Genetics"},{value:"ophthalmology-retina",label:"Ophthalmology Retina"},{value:"ophthalmology",label:"Ophthalmology"},{value:"optics-express",label:"Optics Express"},{value:"optics-letters",label:"Optics Letters"},{value:"opto-electronic-advances",label:"Opto-Electronic Advances"},{value:"optometry-and-vision-science",label:"Optometry & Vision Science"},{value:"opuscula",label:"Opuscula"},{value:"oral-diseases",label:"Oral Diseases"},{value:"organic-geochemistry",label:"Organic Geochemistry"},{value:"organised-sound",label:"Organised Sound"},{value:"organization-studies",label:"Organization Studies"},{value:"organization",label:"Organization"},{value:"organon",label:"Organon"},{value:"ornitologia-neotropical",label:"Ornitolog\xEDa Neotropical"},{value:"orthopedic-clinics-of-north-america",label:"Orthopedic Clinics of North America"},{value:"oryx",label:"Oryx"},{value:"oscola-no-ibid",label:"OSCOLA (Oxford University Standard for Citation of Legal Authorities) (no Ibid.)"},{value:"oscola",label:"OSCOLA (Oxford University Standard for Citation of Legal Authorities)"},{value:"osterreichische-zeitschrift-fur-politikwissenschaft",label:"\xD6sterreichische Zeitschrift f\xFCr Politikwissenschaft (Deutsch - \xD6sterreich)"},{value:"otto-von-guricke-universitat-magdeburg-medizinische-fakultat-numeric",label:"Otto-von-Guericke-Universit\xE4t Magdeburg - Medizinische Fakult\xE4t (numeric)"},{value:"owbarth-verlag",label:"O.W. Barth Verlag (Deutsch)"},{value:"oxford-art-journal",label:"Oxford Art Journal"},{value:"oxford-centre-for-mission-studies-harvard",label:"Oxford Centre for Mission Studies - Harvard"},{value:"oxford-studies-in-ancient-philosophy",label:"Oxford Studies in Ancient Philosophy"},{value:"oxford-studies-on-the-roman-economy",label:"Oxford Studies on the Roman Economy"},{value:"oxford-the-university-of-new-south-wales",label:"The University of New South Wales - Oxford"},{value:"oxford-university-press-humsoc",label:"Oxford University Press HUMSOC"},{value:"oxford-university-press-note",label:"Oxford University Press (note)"},{value:"oxford-university-press-scimed-author-date",label:"Oxford University Press SciMed (author-date)"},{value:"oxford-university-press-scimed-numeric",label:"Oxford University Press SciMed (numeric)"},{value:"oxidation-of-metals",label:"Oxidation of Metals"},{value:"pacific-conservation-biology",label:"Pacific Conservation Biology"},{value:"pacific-science",label:"Pacific Science"},{value:"padagogische-hochschule-bern-institut-vorschulstufe-und-primarstufe",label:"P\xE4dagogische Hochschule Bern - Institut Vorschulstufe und Primarstufe"},{value:"padagogische-hochschule-fachhochschule-nordwestschweiz",label:"P\xE4dagogische Hochschule Fachhochschule Nordwestschweiz (Deutsch - Schweiz)"},{value:"padagogische-hochschule-heidelberg",label:"P\xE4dagogische Hochschule Heidelberg (Deutsch)"},{value:"padagogische-hochschule-vorarlberg",label:"P\xE4dagogische Hochschule Vorarlberg (Deutsch)"},{value:"paediatric-and-perinatal-epidemiology",label:"Paediatric and Perinatal Epidemiology"},{value:"pain-medicine",label:"Pain Medicine"},{value:"pain",label:"PAIN"},{value:"pakistan-journal-of-agricultural-sciences",label:"Pakistan Journal of Agricultural Sciences"},{value:"pakistani-veterinary-journal",label:"Pakistan Veterinary Journal"},{value:"palaeodiversity",label:"Palaeodiversity"},{value:"palaeontographica-abteilung-b-palaeobotany-palaeophytology",label:"Palaeontographica Abteilung B: Palaeobotany - Palaeophytology"},{value:"palaeontologia-electronica",label:"Palaeontologia Electronica"},{value:"palaeontology",label:"Palaeontology"},{value:"palaeovertebrata",label:"Palaeovertebrata"},{value:"palaios",label:"Palaios"},{value:"paleobiology",label:"Paleobiology"},{value:"parasite",label:"Parasite"},{value:"parasitology",label:"Parasitology"},{value:"past-and-present",label:"Past & Present"},{value:"pediatric-allergy-and-immunology",label:"Pediatric Allergy and Immunology"},{value:"pediatric-anesthesia",label:"Pediatric Anesthesia"},{value:"pediatric-blood-and-cancer",label:"Pediatric Blood & Cancer"},{value:"pediatric-infectious-disease-journal",label:"Pediatric Infectious Disease Journal"},{value:"pediatric-physical-therapy",label:"Pediatric Physical Therapy"},{value:"pediatric-practice-and-research",label:"Pediatric Practice and Research"},{value:"pediatric-pulmonology",label:"Pediatric Pulmonology"},{value:"pediatric-research",label:"Pediatric Research"},{value:"pediatric-urology-case-reports",label:"Pediatric Urology Case Reports"},{value:"pedosphere",label:"Pedosphere"},{value:"peerj",label:"PeerJ"},{value:"pensoft-journals",label:"Pensoft Journals"},{value:"periodicum-biologorum",label:"Periodicum Biologorum"},{value:"periodontology-2000",label:"Periodontology 2000"},{value:"permafrost-and-periglacial-processes",label:"Permafrost and Periglacial Processes"},{value:"perspectives-on-sexual-and-reproductive-health",label:"Perspectives on Sexual and Reproductive Health"},{value:"pesquisa-agropecuaria-brasileira",label:"Pesquisa Agropecu\xE1ria Brasileira (Portugu\xEAs - Brasil)"},{value:"pest-management-science",label:"Pest Management Science"},{value:"petit-chicago-author-date",label:"Petit Chicago (author-date, Fran\xE7ais - Canada)"},{value:"pharmacoepidemiology-and-drug-safety",label:"Pharmacoepidemiology and Drug Safety"},{value:"philippika",label:"Philippika (Deutsch)"},{value:"philipps-universitat-marburg-note",label:"Philipps-Universit\xE4t Marburg - Erziehungswissenschaften (note, Deutsch)"},{value:"philosophia-scientiae",label:"Philosophia Scienti\xE6"},{value:"philosophiques",label:"Philosophiques (Fran\xE7ais)"},{value:"philosophy-and-public-affairs",label:"Philosophy & Public Affairs"},{value:"photochemistry-and-photobiology",label:"Photochemistry and Photobiology"},{value:"photosynthetica",label:"Photosynthetica"},{value:"phycological-research",label:"Phycological Research"},{value:"phyllomedusa",label:"Phyllomedusa"},{value:"physiologia-plantarum",label:"Physiologia Plantarum"},{value:"physiological-and-biochemical-zoology",label:"Physiological and Biochemical Zoology"},{value:"physiotherapy-theory-and-practice",label:"Physiotherapy Theory and Practice"},{value:"phytopathologia-mediterranea",label:"Phytopathologia Mediterranea"},{value:"phytotaxa",label:"Phytotaxa"},{value:"pisa-university-press",label:"Pisa University Press"},{value:"planning-practice-and-research",label:"Planning Practice & Research"},{value:"plant-and-cell-physiology",label:"Plant & Cell Physiology"},{value:"plant-biology",label:"Plant Biology"},{value:"plant-biotechnology-journal",label:"Plant Biotechnology Journal"},{value:"plant-cell-and-environment",label:"Plant, Cell & Environment"},{value:"plant-genetic-resources-characterization-and-utilization",label:"Plant Genetic Resources - Characterization and Utilization"},{value:"plant-pathology",label:"Plant Pathology"},{value:"plant-physiology",label:"Plant Physiology"},{value:"plant-species-biology",label:"Plant Species Biology"},{value:"plos",label:"Public Library of Science"},{value:"pnas",label:"Proceedings of the National Academy of Sciences of the United States of America"},{value:"podzemna-voda",label:"Podzemn\xE1 voda (Sloven\u010Dina)"},{value:"polar-research",label:"Polar Research"},{value:"polish-legal",label:"Polish Legal (Polski)"},{value:"politeknik-negeri-manado-jurnal-p3m",label:"Politeknik Negeri Manado - Jurnal Pusat Penelitian dan Pengabdian Kepada Masyarakat (Bahasa Indonesia)"},{value:"political-studies",label:"Political Studies"},{value:"politische-vierteljahresschrift",label:"Politische Vierteljahresschrift (Deutsch)"},{value:"politix",label:"Politix (Fran\xE7ais)"},{value:"polymer-reviews",label:"Polymer Reviews"},{value:"pontifical-athenaeum-regina-apostolorum",label:"Pontifical Athenaeum Regina Apostolorum"},{value:"pontifical-biblical-institute",label:"Pontifical Biblical Institute"},{value:"pontifical-gregorian-university",label:"Pontifical Gregorian University (Italiano)"},{value:"population-space-and-place",label:"Population, Space and Place"},{value:"population",label:"Population (Fran\xE7ais)"},{value:"postepy-higieny-i-medycyny-doswiadczalnej",label:"Post\u0119py Higieny i Medycyny Do\u015Bwiadczalnej (Polski)"},{value:"poultry-science",label:"Poultry Science"},{value:"pour-reussir-note",label:"Pour r\xE9ussir (note, Fran\xE7ais - Canada)"},{value:"pravnik",label:"Pr\xE1vn\xEDk (\u010Ce\u0161tina)"},{value:"praxis",label:"Praxis (Deutsch - Schweiz)"},{value:"prehistoires-mediterraneennes",label:"Pr\xE9histoires m\xE9diterran\xE9ennes"},{value:"prehospital-emergency-care",label:"Prehospital Emergency Care"},{value:"preslia",label:"Preslia - The Journal of the Czech Botanical Society"},{value:"presses-universitaires-de-paris-nanterre",label:"Presses universitaires de Paris Nanterre (note, Fran\xE7ais)"},{value:"presses-universitaires-de-rennes-archeologie-et-culture",label:"Presses Universitaires de Rennes - Arch\xE9ologie et Culture (Fran\xE7ais)"},{value:"presses-universitaires-de-rennes",label:"Presses Universitaires de Rennes (Fran\xE7ais)"},{value:"presses-universitaires-de-strasbourg-note",label:"Presses universitaires de Strasbourg (note, Fran\xE7ais)"},{value:"primary-care-clinics-in-office-practice",label:"Primary Care: Clinics in Office Practice"},{value:"proceedings-of-the-joint-international-grassland-and-international-rangeland-congress-2021",label:"Proceedings of the Joint International Grassland & International Rangeland Congress 2021"},{value:"proceedings-of-the-royal-society-b",label:"Proceedings of the Royal Society B"},{value:"processing-and-application-of-ceramics",label:"Processing and Application of Ceramics"},{value:"production-and-operations-management",label:"Production and Operations Management"},{value:"proinflow",label:"ProInflow (note, \u010Ce\u0161tina)"},{value:"protein-engineering-design-and-selection",label:"Protein Engineering Design and Selection"},{value:"protein-science",label:"Protein Science"},{value:"proteomics",label:"PROTEOMICS"},{value:"psychiatric-clinics-of-north-america",label:"Psychiatric Clinics of North America"},{value:"psychiatric-services",label:"Psychiatric Services"},{value:"psychiatry-and-clinical-neurosciences",label:"Psychiatry and Clinical Neurosciences"},{value:"psychological-medicine",label:"Psychological Medicine"},{value:"psychosomatic-medicine",label:"Psychosomatic Medicine"},{value:"psychosomatics",label:"Psychosomatics"},{value:"public-health-nutrition",label:"Public Health Nutrition"},{value:"pure-and-applied-geophysics",label:"Pure and Applied Geophysics"},{value:"qeios",label:"Qeios"},{value:"quaderni-degli-avogadro-colloquia",label:"Quaderni degli Avogadro Colloquia"},{value:"quaderni-materialisti",label:"Quaderni Materialisti (Italiano)"},{value:"quaderni",label:"Quaderni (Italiano)"},{value:"quaternaire",label:"Quaternaire (Fran\xE7ais)"},{value:"quaternary-international",label:"Quaternary International"},{value:"queen-margaret-university-harvard",label:"Queen Margaret University - Harvard"},{value:"r-and-d-management",label:"R&D Management"},{value:"radiation-protection-dosimetry",label:"Radiation Protection Dosimetry"},{value:"radiochimica-acta",label:"Radiochimica Acta"},{value:"radiographics",label:"RadioGraphics"},{value:"radiography",label:"Radiography"},{value:"radiologic-clinics-of-north-america",label:"Radiologic Clinics of North America"},{value:"radiology",label:"Radiology"},{value:"radiopaedia",label:"Radiopaedia.org"},{value:"raffles-bulletin-of-zoology",label:"Raffles Bulletin of Zoology"},{value:"rassegna-degli-archivi-di-stato",label:"Rassegna degli Archivi di Stato (citazioni estese, italiano)"},{value:"recent-patents-on-drug-delivery-and-formulation",label:"Recent Patents on Drug Delivery & Formulation"},{value:"recherches-en-sciences-de-gestion",label:"Recherches en Sciences de Gestion (Fran\xE7ais)"},{value:"refugee-survey-quarterly",label:"Refugee Survey Quarterly"},{value:"register-studies",label:"Register Studies"},{value:"religion-in-the-roman-empire",label:"Religion in the Roman Empire"},{value:"renewable-agriculture-and-food-systems",label:"Renewable Agriculture and Food Systems"},{value:"reports-of-practical-oncology-and-radiotherapy",label:"Reports of Practical Oncology and Radiotherapy"},{value:"representation",label:"Representation"},{value:"reproduction-fertility-and-development",label:"Reproduction, Fertility and Development"},{value:"reproduction",label:"Reproduction"},{value:"research-and-education-promotion-association",label:"Research and Education Promotion Association"},{value:"research-in-plant-disease",label:"Research in Plant Disease"},{value:"research-institute-for-nature-and-forest",label:"Research Institute for Nature and Forest (Instituut voor Natuur- en Bosonderzoek)"},{value:"research-on-biomedical-engineering",label:"Research on Biomedical Engineering"},{value:"respiratory-care-journal",label:"Respiratory Care Journal"},{value:"restoration-ecology",label:"Restoration Ecology"},{value:"rever-revista-de-estudos-da-religiao",label:"REVER - Revista de Estudos da Religi\xE3o"},{value:"review-of-international-studies",label:"Review of International Studies"},{value:"review-of-political-economy",label:"Review of Political Economy"},{value:"reviews-of-modern-physics-with-titles",label:"Reviews of Modern Physics (with titles)"},{value:"revista-argentina-de-antropologia-biologica",label:"Revista Argentina de Antropologia Biologica (Espa\xF1ol)"},{value:"revista-biblica",label:"Revista B\xEDblica (Espa\xF1ol)"},{value:"revista-brasileira-de-ciencia-do-solo",label:"Revista Brasileira de Ci\xEAncia do Solo"},{value:"revista-chilena-de-derecho-y-tecnologia",label:"Revista Chilena de Derecho y Tecnolog\xEDa (Espa\xF1ol - Chile)"},{value:"revista-ciencias-tecnicas-agropecuarias",label:"Revista Ciencias T\xE9cnicas Agropecuarias (Espa\xF1ol)"},{value:"revista-cubana-de-meteorologia",label:"Revista Cubana de Meteorologia"},{value:"revista-da-sociedade-brasileira-de-medicina-tropical",label:"Revista da Sociedade Brasileira de Medicina Tropical"},{value:"revista-de-biologia-marina-y-oceanografia",label:"Revista de Biolog\xEDa Marina y Oceanograf\xEDa"},{value:"revista-de-biologia-tropical",label:"Revista de Biolog\xEDa Tropical (International Journal of Tropical Biology and Conservation)"},{value:"revista-de-filologia-espanola",label:"Revista de Filolog\xEDa Espa\xF1ola (Espa\xF1ol)"},{value:"revista-do-instituto-de-medicina-tropical-de-sao-paulo",label:"Revista do Instituto de Medicina Tropical de S\xE3o Paulo"},{value:"revista-espanola-de-nutricion-humana-y-dietetica",label:"Revista Espanola de Nutricion Humana y Dietetica (Espa\xF1ol)"},{value:"revista-fave-seccion-ciencias-agrarias",label:"Revista FAVE - Secci\xF3n Ciencias Agrarias (Espa\xF1ol)"},{value:"revista-ladinia",label:"Revista Ladinia"},{value:"revista-latinoamericana-de-metalurgia-y-materiales",label:"Revista Latinoamericana de Metalurgia y Materiales"},{value:"revista-latinoamericana-de-recursos-naturales",label:"Revista Latinoamericana de Recursos Naturales"},{value:"revista-materia",label:"Revista Mat\xE9ria"},{value:"revista-noesis",label:"Revista N\xF3esis"},{value:"revista-peruana-de-medicina-experimental-y-salud-publica",label:"Revista Peruana de Medicina Experimental y Salud P\xFAblica (Espa\xF1ol)"},{value:"revista-portuguesa-de-arqueologia",label:"Revista Portuguesa de Arqueologia"},{value:"revista-virtual-de-quimica",label:"Revista Virtual de Qu\xEDmica (Portugu\xEAs - Brasil)"},{value:"revue-archeologique-de-lest",label:"Revue arch\xE9ologique de l\u2019Est (Fran\xE7ais)"},{value:"revue-archeologique-de-narbonnaise",label:"Revue arch\xE9ologique de Narbonnaise (French)"},{value:"revue-archeologique-du-centre-de-la-france",label:"Revue arch\xE9ologique du Centre de la France (Fran\xE7ais)"},{value:"revue-archeologique",label:"Revue Arch\xE9ologique (Fran\xE7ais)"},{value:"revue-d-elevage-et-de-medecine-veterinaire-des-pays-tropicaux",label:"Revue d'\xE9levage et de m\xE9decine v\xE9t\xE9rinaire des pays tropicaux (Fran\xE7ais)"},{value:"revue-de-medecine-veterinaire",label:"Revue de M\xE9decine V\xE9t\xE9rinaire (Fran\xE7ais)"},{value:"revue-de-qumran",label:"Revue de Qumr\xE2n"},{value:"revue-des-etudes-byzantines",label:"Revue des \xC9tudes Byzantines"},{value:"revue-des-nouvelles-technologies-de-l-information",label:"Revue des Nouvelles Technologies de l'Information (Fran\xE7ais)"},{value:"revue-dhistoire-des-sciences-humaines",label:"Revue d'histoire des sciences humaines (Fran\xE7ais)"},{value:"revue-dhistoire-moderne-et-contemporaine",label:"Revue d'histoire moderne et contemporaine (Fran\xE7ais)"},{value:"revue-europeenne-des-migrations-internationales",label:"Revue Europe\u0301enne des Migrations Internationales"},{value:"revue-forestiere-francaise",label:"Revue foresti\xE8re fran\xE7aise (Fran\xE7ais)"},{value:"revue-francaise-d-administration-publique",label:"Revue fran\xE7aise d'administration publique (Fran\xE7ais)"},{value:"revue-francaise-de-gestion",label:"Revue fran\xE7aise de gestion (Fran\xE7ais)"},{value:"revue-francaise-de-sociologie",label:"Revue fran\xE7aise de sociologie (Fran\xE7ais)"},{value:"rhinology",label:"Rhinology"},{value:"rhodora",label:"Rhodora"},{value:"risk-analysis",label:"Risk Analysis"},{value:"ritid",label:"Riti\xF0: t\xEDmarit Hugv\xEDsindastofnunar (\xCDslenska)"},{value:"rivista-italiana-di-paleontologia-e-stratigrafia",label:"Rivista Italiana di Paleontologia e Stratigrafia"},{value:"rmit-university-harvard",label:"RMIT University - Harvard"},{value:"rofo",label:"R\xF6Fo: Fortschritte auf dem Gebiet der R\xF6ntgenstrahlen und bildgebenden Verfahren"},{value:"romanian-humanities",label:"Romanian Humanities (Rom\xE2n\u0103)"},{value:"rose-school",label:"ROSE School"},{value:"rossiiskii-fiziologicheskii-zhurnal-imeni-i-m-sechenova",label:"\u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u0438\u0439 \u0444\u0438\u0437\u0438\u043E\u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0436\u0443\u0440\u043D\u0430\u043B \u0438\u043C. \u0418.\u041C. \u0421\u0435\u0447\u0435\u043D\u043E\u0432\u0430 (\u0420\u0443\u0301\u0441\u0441\u043A\u0438\u0439)"},{value:"royal-college-of-nursing-harvard",label:"Royal College of Nursing - Harvard"},{value:"royal-society-of-chemistry-with-titles",label:"Royal Society of Chemistry (with titles)"},{value:"royal-society-of-chemistry",label:"Royal Society of Chemistry"},{value:"rtf-scan",label:"RTF Scan"},{value:"ruhr-universitat-bochum-lehrstuhl-fur-industrial-sales-and-service-engineering",label:"Ruhr-Universit\xE4t Bochum - Lehrstuhl f\xFCr Industrial Sales and Service Engineering"},{value:"ruhr-universitat-bochum-medizinische-fakultat-numeric",label:"Ruhr-Universit\xE4t Bochum - Medizinische Fakult\xE4t (numerisch, Deutsch)"},{value:"sage-harvard",label:"SAGE - Harvard"},{value:"sage-vancouver-brackets",label:"SAGE - Vancouver (brackets)"},{value:"sage-vancouver",label:"SAGE - Vancouver"},{value:"saglik-bilimleri-universitesi",label:"Sa\u011Fl\u0131k Bilimleri \xDCniversitesi"},{value:"saint-paul-university-faculty-of-canon-law",label:"Saint Paul University - Faculty of Canon Law"},{value:"san-francisco-estuary-and-watershed-science",label:"San Francisco Estuary & Watershed Science"},{value:"sanamed",label:"Sanamed"},{value:"scandinavian-journal-of-infectious-diseases",label:"Scandinavian Journal of Infectious Diseases"},{value:"scandinavian-journal-of-information-systems",label:"Scandinavian Journal of Information Systems"},{value:"scandinavian-journal-of-medicine-and-science-in-sports",label:"Scandinavian Journal of Medicine & Science in Sports"},{value:"scandinavian-journal-of-rheumatology",label:"Scandinavian Journal of Rheumatology"},{value:"scandinavian-journal-of-work-environment-and-health",label:"Scandinavian Journal of Work, Environment & Health"},{value:"scandinavian-political-studies",label:"Scandinavian Political Studies"},{value:"science-and-technology-for-the-built-environment",label:"Science and Technology for the Built Environment"},{value:"science-china-chemistry",label:"Science China Chemistry"},{value:"science-china-earth-sciences",label:"SCIENCE CHINA Earth Sciences"},{value:"science-china-life-sciences",label:"SCIENCE CHINA Life Sciences"},{value:"science-china-materials",label:"SCIENCE CHINA Materials"},{value:"science-translational-medicine",label:"Science Translational Medicine"},{value:"science-without-titles",label:"Science (without titles)"},{value:"science",label:"Science"},{value:"scienceasia",label:"ScienceAsia"},{value:"sciences-po-ecole-doctorale-author-date",label:"Sciences Po - Ecole doctorale (author-date, Fran\xE7ais)"},{value:"sciences-po-ecole-doctorale-note-french",label:"Sciences Po - \xC9cole doctorale (note, Fran\xE7ais)"},{value:"scientia-agriculturae-bohemica",label:"Scientia Agriculturae Bohemica"},{value:"scientia-iranica",label:"Scientia Iranica"},{value:"scientific-review-engineering-and-environmental-sciences",label:"Scientific Review Engineering and Environmental Sciences (Przegl\u0105d Naukowy In\u017Cynieria i Kszta\u0142towanie \u015Arodowiska)"},{value:"scrinium",label:"Scrinium"},{value:"sedimentology",label:"Sedimentology"},{value:"seed-science-and-technology",label:"Seed Science and Technology"},{value:"seed-science-research",label:"Seed Science Research"},{value:"seismological-research-letters",label:"Seismological Research Letters"},{value:"sekolah-tinggi-meteorologi-klimatologi-dan-geofisika",label:"Sekolah Tinggi Meteorologi Klimatologi dan Geofisika (Bahasa Indonesia)"},{value:"seminaire-saint-sulpice-ecole-theologie",label:"S\xE9minaire Saint-Sulpice - Ecole Th\xE9ologie (Fran\xE7ais)"},{value:"seminars-in-pediatric-neurology",label:"Seminars in Pediatric Neurology"},{value:"serbian-archives-of-medicine",label:"Vancouver - Serbian Archives of Medicine"},{value:"serdica-journal-of-computing",label:"Serdica Journal of Computing"},{value:"service-medical-de-l-assurance-maladie",label:"Service M\xE9dical de l'Assurance Maladie (Fran\xE7ais)"},{value:"sexual-development",label:"Sexual Development"},{value:"sexual-health",label:"Sexual Health"},{value:"sheffield-hallam-university-history",label:"Sheffield Hallam University - History"},{value:"shock",label:"Shock"},{value:"sinergie-italian-journal-of-management",label:"Sinergie Italian Journal of Management"},{value:"sist02",label:"SIST02 (\u65E5\u672C\u8A9E)"},{value:"skene-journal-of-theatre-and-drama-studies",label:"Sken\xE8. Journal of Theatre and Drama Studies"},{value:"small",label:"Small"},{value:"smithsonian-institution-scholarly-press-author-date",label:"Smithsonian Institution Scholarly Press (author-date)"},{value:"smithsonian-institution-scholarly-press-botany",label:"Smithsonian Institution Scholarly Press - Botany (author-date)"},{value:"smithsonian-institution-scholarly-press-note",label:"Smithsonian Institution Scholarly Press (note)"},{value:"smyrna-tip-dergisi",label:"Smyrna T\u0131p Dergisi (T\xFCrk\xE7e)"},{value:"social-anthropology",label:"Social Anthropology/Anthropologie Sociale"},{value:"social-cognitive-and-affective-neuroscience",label:"Social Cognitive and Affective Neuroscience"},{value:"sociedade-brasileira-de-computacao",label:"Sociedade Brasileira de Computa\xE7\xE3o"},{value:"societe-archeologique-de-bordeaux",label:"Soci\xE9t\xE9 Arch\xE9ologique de Bordeaux (Fran\xE7ais)"},{value:"societe-francaise-detude-de-la-ceramique-antique-en-gaule",label:"Soci\xE9t\xE9 Fran\xE7aise d\u2019\xC9tude de la C\xE9ramique Antique en Gaule (Fran\xE7ais)"},{value:"societe-nationale-des-groupements-techniques-veterinaires",label:"Soci\xE9t\xE9 Nationale des Groupements Techniques V\xE9t\xE9rinaires (Fran\xE7ais)"},{value:"societes-contemporaines",label:"Soci\xE9t\xE9s Contemporaines"},{value:"society-for-american-archaeology",label:"Society for American Archaeology"},{value:"society-for-historical-archaeology",label:"Society for Historical Archaeology"},{value:"society-for-laboratory-automation-and-screening",label:"Society for Laboratory Automation and Screening"},{value:"society-of-automotive-engineers-technical-papers-numeric",label:"Society of Automotive Engineers Technical Papers (numeric)"},{value:"society-of-biblical-literature-1st-edition-fullnote-bibliography",label:"Society of Biblical Literature 1st edition (full note)"},{value:"society-of-biblical-literature-author-date",label:"Society of Biblical Literature 2nd edition (author-date)"},{value:"society-of-biblical-literature-fullnote-bibliography",label:"Society of Biblical Literature 2nd edition (full note)"},{value:"socio-economic-review",label:"Socio-Economic Review"},{value:"sociology-of-health-and-illness",label:"Sociology of Health & Illness"},{value:"sodertorns-hogskola-harvard-ibid",label:"S\xF6dert\xF6rns h\xF6gskola - Harvard (with Ibid.)"},{value:"sodertorns-hogskola-harvard",label:"S\xF6dert\xF6rns h\xF6gskola - Harvard"},{value:"sodertorns-hogskola-oxford",label:"S\xF6dert\xF6rns h\xF6gskola - Oxford"},{value:"soil-biology-and-biochemistry",label:"Soil Biology and Biochemistry"},{value:"soil-science-and-plant-nutrition",label:"Soil Science and Plant Nutrition"},{value:"solent-university-harvard",label:"Solent University - Harvard"},{value:"solutions",label:"Solutions"},{value:"sorbonne-student-law-review",label:"Sorbonne Student Law Review - Revue juridique des \xE9tudiants de la Sorbonne"},{value:"south-african-actuarial-journal",label:"South African Actuarial Journal"},{value:"south-african-journal-of-animal-science",label:"South African Journal of Animal Science"},{value:"south-african-journal-of-enology-and-viticulture",label:"South African Journal of Enology and Viticulture"},{value:"south-african-journal-of-geology",label:"South African Journal of Geology"},{value:"south-african-medical-journal",label:"South African Medical Journal"},{value:"south-african-theological-seminary",label:"South African Theological Seminary"},{value:"southeastern-geographer",label:"Southeastern Geographer"},{value:"southern-african-journal-of-critical-care",label:"Southern African Journal of Critical Care"},{value:"soziale-welt",label:"Soziale Welt (Deutsch)"},{value:"sozialpadagogisches-institut-berlin-walter-may",label:"Sozialp\xE4dagogisches Institut Berlin - Walter May (Deutsch)"},{value:"sozialwissenschaften-heilmann",label:"Sozialwissenschaften (Heilmann) (Deutsch)"},{value:"soziologie",label:"Soziologie (Deutsch)"},{value:"soziologiemagazin",label:"Soziologiemagazin (Deutsch)"},{value:"spandidos-publications",label:"Spandidos Publications"},{value:"spanish-legal",label:"Spanish Legal (Espa\xF1ol)"},{value:"spectroscopy-letters",label:"Spectroscopy Letters"},{value:"speculum",label:"Speculum"},{value:"spie-bios",label:"SPIE BiOS"},{value:"spie-journals",label:"SPIE journals"},{value:"spie-proceedings",label:"SPIE Conference Proceedings"},{value:"spine",label:"Spine"},{value:"spip-cite",label:"SPIP - Cite plugin"},{value:"sports-health",label:"Sports Health"},{value:"springer-basic-author-date-no-et-al-with-issue",label:'Springer - Basic (author-date, no "et al.", with issue numbers)'},{value:"springer-basic-author-date-no-et-al",label:'Springer - Basic (author-date, no "et al.")'},{value:"springer-basic-author-date",label:"Springer - Basic (author-date)"},{value:"springer-basic-brackets-no-et-al-alphabetical",label:'Springer - Basic (numeric, brackets, no "et al.", alphabetical)'},{value:"springer-basic-brackets-no-et-al",label:'Springer - Basic (numeric, brackets, no "et al.")'},{value:"springer-basic-brackets",label:"Springer - Basic (numeric, brackets)"},{value:"springer-basic-note",label:"Springer - Basic (note)"},{value:"springer-fachzeitschriften-medizin-psychologie",label:"Springer - Fachzeitschriften Medizin Psychologie (Deutsch)"},{value:"springer-humanities-author-date",label:"Springer - Humanities (author-date)"},{value:"springer-humanities-brackets",label:"Springer - Humanities (numeric, brackets)"},{value:"springer-imis-series-migrationsgesellschaften",label:"Springer - IMIS Series Migrationsgesellschaften"},{value:"springer-lecture-notes-in-computer-science-alphabetical",label:"Springer - Lecture Notes in Computer Science (sorted alphabetically)"},{value:"springer-lecture-notes-in-computer-science",label:"Springer - Lecture Notes in Computer Science"},{value:"springer-mathphys-author-date",label:"Springer - MathPhys (author-date)"},{value:"springer-mathphys-brackets",label:"Springer - MathPhys (numeric, brackets)"},{value:"springer-physics-author-date",label:"Springer - Physics (author-date)"},{value:"springer-physics-brackets",label:"Springer - Physics (numeric, brackets)"},{value:"springer-socpsych-author-date",label:"Springer - SocPsych (author-date)"},{value:"springer-socpsych-brackets",label:"Springer - SocPsych (numeric, brackets)"},{value:"springer-vancouver-author-date",label:"Springer - Vancouver (author-date)"},{value:"springer-vancouver-brackets",label:"Springer - Vancouver (brackets)"},{value:"springer-vancouver",label:"Springer - Vancouver"},{value:"springer-vs-author-date",label:"Springer VS (author-date, Deutsch)"},{value:"springerprotocols",label:"SpringerProtocols"},{value:"st-patricks-college",label:"St Patrick's College"},{value:"statistika-statistics-and-economy-journal",label:"Statistika: Statistics and Economy Journal"},{value:"stavebni-obzor",label:"Stavebn\xED obzor (\u010Ce\u0161tina)"},{value:"steel-research-international",label:"Steel Research International"},{value:"steinbeis-hochschule-school-of-management-and-innovation",label:"Steinbeis-Hochschule - School of Management & Innovation (Deutsch)"},{value:"stellenbosch-law-review",label:"Stellenbosch Law Review"},{value:"stem-cells",label:"Stem Cells"},{value:"strategic-design-research-journal",label:"Strategic Design Research Journal"},{value:"strategic-entrepreneurship-journal",label:"Strategic Entrepreneurship Journal"},{value:"strategic-management-journal",label:"Strategic Management Journal"},{value:"stroke",label:"Stroke"},{value:"structural-control-and-health-monitoring",label:"Structural Control and Health Monitoring"},{value:"studi-e-materiali-di-storia-delle-religioni",label:"Studi e materiali di storia delle religioni (Italiano)"},{value:"studi-slavistici-rivista-dellassociazione-italiana-degli-slavisti",label:"Studi Slavistici Rivista dell\u2019Associazione Italiana degli Slavisti"},{value:"studia-bas",label:"Studia BAS (Polski)"},{value:"studies-in-the-history-of-gardens-and-designed-landscapes",label:"Studies in the History of Gardens & Designed Landscapes"},{value:"studii-teologice",label:"Studii Teologice"},{value:"stuttgart-media-university",label:"Hochschule der Medien Stuttgart (Deutsch)"},{value:"style-manual-australian-government-note",label:"Style Manual - Australian Government (note)"},{value:"style-manual-australian-government",label:"Style Manual - Australian Government (author-date)"},{value:"style-manual-for-authors-editors-and-printers-6th-edition-snooks-co",label:"Style manual for authors, editors and printers 6th edition (Snooks & Co.) (author-date)"},{value:"suburban-zeitschrift-fur-kritische-stadtforschung",label:"sub\\urban - Zeitschrift f\xFCr kritische Stadtforschung (Deutsch)"},{value:"sunway-college-johor-bahru",label:"Sunway College Johor Bahru - Harvard"},{value:"surgical-clinics-of-north-america",label:"Surgical Clinics of North America"},{value:"surgical-neurology-international",label:"Surgical Neurology International"},{value:"surgical-pathology-clinics",label:"Surgical Pathology Clinics"},{value:"svensk-exegetisk-arsbok",label:"Svensk exegetisk \xE5rsbok (full note)"},{value:"swedish-legal",label:"Swedish Legal (Svenska)"},{value:"swiss-political-science-review",label:"Swiss Political Science Review"},{value:"sylwan",label:"Sylwan (Polski)"},{value:"synthesis",label:"Synthesis"},{value:"system-dynamics-review",label:"System Dynamics Review"},{value:"systematic-and-applied-microbiology",label:"Systematic and Applied Microbiology"},{value:"systematic-biology",label:"Systematic Biology"},{value:"szociologiai-szemle",label:"Szociol\xF3giai Szemle (Magyar)"},{value:"tabula",label:"T\xE1bula (Espa\xF1ol)"},{value:"tagungsberichte-der-historischen-kommission-fur-ost-und-westpreussische-landesforschung",label:"Tagungsberichte der Historischen Kommission f\xFCr ost- und westpreu\xDFische Landesforschung (Deutsch)"},{value:"tatup-zeitschrift-fur-technikfolgenabschatzung-in-theorie-und-praxis",label:"TATuP - Zeitschrift f\xFCr Technikfolgenabsch\xE4tzung in Theorie und Praxis"},{value:"taxon",label:"Taxon"},{value:"taylor-and-francis-acs",label:"Taylor & Francis - American Chemical Society"},{value:"taylor-and-francis-chicago-author-date",label:"Taylor & Francis - Chicago Manual of Style (author-date)"},{value:"taylor-and-francis-chicago-f",label:"Taylor & Francis - Chicago F"},{value:"taylor-and-francis-council-of-science-editors-author-date",label:"Taylor & Francis - Council of Science Editors (author-date)"},{value:"taylor-and-francis-council-of-science-editors-numeric",label:"Taylor & Francis - Council of Science Editors (numeric)"},{value:"taylor-and-francis-harvard-x",label:"Taylor & Francis - Harvard X"},{value:"taylor-and-francis-national-library-of-medicine",label:"Taylor & Francis - National Library of Medicine"},{value:"taylor-and-francis-numeric-q",label:"Taylor & Francis - Numeric Q"},{value:"taylor-and-francis-vancouver-national-library-of-medicine",label:"Taylor & Francis - Vancouver/National Library of Medicine"},{value:"techniques-et-culture",label:"Techniques&Culture (Fran\xE7ais)"},{value:"technische-universitat-dortmund-ag-virtual-machining",label:"Technische Universit\xE4t Dortmund - AG Virtual Machining (Deutsch)"},{value:"technische-universitat-dresden-betriebswirtschaftslehre-logistik-author-date",label:"Technische Universit\xE4t Dresden - Betriebswirtschaftslehre/Logistik (author-date)"},{value:"technische-universitat-dresden-betriebswirtschaftslehre-marketing",label:"Technische Universit\xE4t Dresden - Betriebswirtschaftslehre/Marketing (author-date)"},{value:"technische-universitat-dresden-betriebswirtschaftslehre-rechnungswesen-controlling",label:"Technische Universit\xE4t Dresden - Betriebswirtschaftslehre/Rechnungswesen/Controlling (Deutsch)"},{value:"technische-universitat-dresden-erziehungswissenschaften-author-date",label:"Technische Universit\xE4t Dresden - Erziehungswissenschaften (author-date)"},{value:"technische-universitat-dresden-finanzwirtschaft-und-finanzdienstleistungen-author-date-with-short-titles",label:"Technische Universit\xE4t Dresden - Finanzwirtschaft und Finanzdienstleistungen (author-date, with short titles)"},{value:"technische-universitat-dresden-finanzwirtschaft-und-finanzdienstleistungen-author-date",label:"Technische Universit\xE4t Dresden - Finanzwirtschaft und Finanzdienstleistungen (author-date)"},{value:"technische-universitat-dresden-finanzwirtschaft-und-finanzdienstleistungen-note",label:"Technische Universit\xE4t Dresden - Finanzwirtschaft und Finanzdienstleistungen (note)"},{value:"technische-universitat-dresden-forstwissenschaft",label:"Technische Universit\xE4t Dresden - Forstwissenschaft (author-date, Deutsch)"},{value:"technische-universitat-dresden-historische-musikwissenschaft-note",label:"Technische Universit\xE4t Dresden - Historische Musikwissenschaft (note, Deutsch)"},{value:"technische-universitat-dresden-kunstgeschichte-note",label:"Technische Universit\xE4t Dresden - Kunstgeschichte (note, Deutsch)"},{value:"technische-universitat-dresden-linguistik",label:"Technische Universit\xE4t Dresden - Linguistik (Deutsch)"},{value:"technische-universitat-dresden-medienwissenschaft-und-neuere-deutsche-literatur-note",label:"Technische Universit\xE4t Dresden - Medienwissenschaft und Neuere Deutsche Literatur (note, Deutsch)"},{value:"technische-universitat-dresden-medizin",label:"Technische Universit\xE4t Dresden - Medizin"},{value:"technische-universitat-dresden-wirtschaftswissenschaften",label:"Technische Universit\xE4t Dresden - Wirtschaftswissenschaften (Deutsch)"},{value:"technische-universitat-munchen-controlling",label:"Technische Universit\xE4t M\xFCnchen - Controlling (Deutsch)"},{value:"technische-universitat-munchen-unternehmensfuhrung",label:"Technische Universit\xE4t M\xFCnchen - Unternehmensf\xFChrung (Deutsch)"},{value:"technische-universitat-wien",label:"Technische Universit\xE4t Wien (dissertation) (Deutsch)"},{value:"teologia-catalunya",label:"Teologia Catalunya"},{value:"termedia-neuropsychiatria-i-neuropsychologia-neuropsychiatry-and-neuropsychology",label:"Termedia Neuropsychiatria i Neuropsychologia/Neuropsychiatry and Neuropsychology"},{value:"terra-nova",label:"Terra Nova"},{value:"tetrahedron-letters",label:"Tetrahedron Letters"},{value:"textual-cultures",label:"Textual Cultures"},{value:"textual-practice",label:"Textual Practice"},{value:"tgm-wien-diplom",label:"TGM Wien Diplomarbeit (Deutsch)"},{value:"tgm-wien-diplomarbeit-onorm",label:"TGM Wien Diplomarbeit \xD6NORM (Deutsch - \xD6sterreich)"},{value:"the-accounting-review",label:"The Accounting Review"},{value:"the-american-journal-of-bioethics",label:"The American Journal of Bioethics"},{value:"the-american-journal-of-cardiology",label:"The American Journal of Cardiology"},{value:"the-american-journal-of-dermatopathology",label:"The American Journal of Dermatopathology"},{value:"the-american-journal-of-gastroenterology",label:"The American Journal of Gastroenterology"},{value:"the-american-journal-of-geriatric-psychiatry",label:"The American Journal of Geriatric Psychiatry"},{value:"the-american-journal-of-human-genetics",label:"The American Journal of Human Genetics"},{value:"the-american-journal-of-pathology",label:"The American Journal of Pathology"},{value:"the-american-journal-of-psychiatry",label:"The American Journal of Psychiatry"},{value:"the-american-journal-of-tropical-medicine-and-hygiene",label:"The American Journal of Tropical Medicine and Hygiene"},{value:"the-american-midland-naturalist",label:"The American Midland Naturalist"},{value:"the-american-naturalist",label:"The American Naturalist"},{value:"the-angle-orthodontist",label:"The Angle Orthodontist"},{value:"the-astrophysical-journal",label:"The Astrophysical Journal"},{value:"the-auk",label:"The Auk"},{value:"the-australian-journal-of-agricultural-and-resource-economics",label:"The Australian Journal of Agricultural and Resource Economics"},{value:"the-biological-bulletin",label:"The Biological Bulletin"},{value:"the-bone-and-joint-journal",label:"The Bone & Joint Journal"},{value:"the-botanical-review",label:"The Botanical Review"},{value:"the-bovine-practitioner",label:"The Bovine Practitioner"},{value:"the-british-journal-for-the-philosophy-of-science",label:"The British Journal for the Philosophy of Science"},{value:"the-british-journal-of-cardiology",label:"The British Journal of Cardiology"},{value:"the-british-journal-of-criminology",label:"The British Journal of Criminology"},{value:"the-british-journal-of-psychiatry",label:"The British Journal of Psychiatry"},{value:"the-british-journal-of-sociology",label:"The British Journal of Sociology"},{value:"the-canadian-geographer",label:"The Canadian Geographer (Le G\xE9ographe canadien)"},{value:"the-canadian-journal-of-chemical-engineering",label:"The Canadian Journal of Chemical Engineering"},{value:"the-canadian-journal-of-psychiatry",label:"The Canadian Journal of Psychiatry"},{value:"the-cancer-journal",label:"The Cancer Journal"},{value:"the-chemical-society-of-japan",label:"The Chemical Society of Japan"},{value:"the-chinese-journal-of-international-politics",label:"The Chinese Journal of International Politics"},{value:"the-company-of-biologists",label:"The Company of Biologists"},{value:"the-design-journal",label:"The Design Journal"},{value:"the-economic-history-review",label:"The Economic History Review"},{value:"the-european-research-journal",label:"The European Research Journal"},{value:"the-faseb-journal",label:"The FASEB Journal"},{value:"the-febs-journal",label:"The FEBS Journal"},{value:"the-geological-society-of-america",label:"The Geological Society of America"},{value:"the-geological-society-of-london",label:"The Geological Society of London"},{value:"the-hastings-center-report",label:"The Hastings Center Report"},{value:"the-historical-journal",label:"The Historical Journal"},{value:"the-holocene",label:"The Holocene"},{value:"the-horticulture-journal",label:"The Horticulture Journal"},{value:"the-institute-of-electronics-information-and-communication-engineers",label:"The Institute of Electronics, Information and Communication Engineers (\u96FB\u5B50\u60C5\u5831\u901A\u4FE1\u5B66\u4F1A)"},{value:"the-institution-of-engineering-and-technology",label:"The Institution of Engineering and Technology"},{value:"the-international-journal-of-developmental-biology",label:"The International Journal of Developmental Biology"},{value:"the-international-journal-of-psychoanalysis",label:"The International Journal of Psychoanalysis"},{value:"the-international-journal-of-tuberculosis-and-lung-disease",label:"The International Journal of Tuberculosis and Lung Disease"},{value:"the-isme-journal",label:"The ISME Journal"},{value:"the-journal-of-adhesive-dentistry",label:"The Journal of Adhesive Dentistry"},{value:"the-journal-of-agricultural-science",label:"The Journal of Agricultural Science"},{value:"the-journal-of-clinical-ethics",label:"The Journal of Clinical Ethics"},{value:"the-journal-of-clinical-investigation",label:"The Journal of Clinical Investigation"},{value:"the-journal-of-comparative-law",label:"The Journal of Comparative Law"},{value:"the-journal-of-comparative-neurology",label:"The Journal of Comparative Neurology"},{value:"the-journal-of-egyptian-archaeology",label:"The Journal of Egyptian Archaeology"},{value:"the-journal-of-eukaryotic-microbiology",label:"The Journal of Eukaryotic Microbiology"},{value:"the-journal-of-foot-and-ankle-surgery",label:"The Journal of Foot & Ankle Surgery"},{value:"the-journal-of-hand-surgery-asian-pacific-volume",label:"The Journal of Hand Surgery Asian-Pacific Volume"},{value:"the-journal-of-hand-surgery-european-volume",label:"The Journal of Hand Surgery (European Volume)"},{value:"the-journal-of-hellenic-studies",label:"The Journal of Hellenic Studies"},{value:"the-journal-of-immunology",label:"The Journal of Immunology"},{value:"the-journal-of-infection-in-developing-countries",label:"The Journal of Infection in Developing Countries"},{value:"the-journal-of-juristic-papyrology",label:"The Journal of Juristic Papyrology"},{value:"the-journal-of-laryngology-and-otology",label:"The Journal of Laryngology & Otology"},{value:"the-journal-of-modern-history",label:"The Journal of Modern History"},{value:"the-journal-of-molecular-diagnostics",label:"The Journal of Molecular Diagnostics"},{value:"the-journal-of-nervous-and-mental-disease",label:"The Journal of Nervous and Mental Disease"},{value:"the-journal-of-neuropsychiatry-and-clinical-neurosciences",label:"The Journal of Neuropsychiatry and Clinical Neurosciences"},{value:"the-journal-of-neuroscience",label:"The Journal of Neuroscience"},{value:"the-journal-of-nuclear-medicine",label:"The Journal of Nuclear Medicine"},{value:"the-journal-of-nutrition-health-and-aging",label:"The Journal of Nutrition, Health & Aging"},{value:"the-journal-of-pain",label:"The Journal of Pain"},{value:"the-journal-of-parasitology",label:"The Journal of Parasitology"},{value:"the-journal-of-pathology",label:"The Journal of Pathology"},{value:"the-journal-of-peasant-studies",label:"The Journal of Peasant Studies"},{value:"the-journal-of-physiology",label:"The Journal of Physiology"},{value:"the-journal-of-pure-and-applied-chemistry-research",label:"The Journal of Pure and Applied Chemistry Research"},{value:"the-journal-of-roman-studies",label:"The Journal of Roman Studies"},{value:"the-journal-of-the-acoustical-society-of-america-numeric",label:"The Journal of the Acoustical Society of America (numeric)"},{value:"the-journal-of-the-acoustical-society-of-america",label:"The Journal of the Acoustical Society of America (author-date)"},{value:"the-journal-of-the-torrey-botanical-society",label:"The Journal of the Torrey Botanical Society"},{value:"the-journal-of-transport-history",label:"The Journal of Transport History"},{value:"the-journal-of-trauma-and-acute-care-surgery",label:"The Journal of Trauma and Acute Care Surgery"},{value:"the-journal-of-urology",label:"The Journal of Urology"},{value:"the-journal-of-veterinary-medical-science",label:"The Journal of Veterinary Medical Science"},{value:"the-journal-of-wildlife-management",label:"The Journal of Wildlife Management"},{value:"the-journals-of-gerontology-series-a",label:"The Journals of Gerontology, Series A: Biological Sciences and Medical Sciences"},{value:"the-korean-journal-of-gastroenterology",label:"The Korean Journal of Gastroenterology"},{value:"the-korean-journal-of-internal-medicine",label:"The Korean Journal of Internal Medicine"},{value:"the-korean-journal-of-mycology",label:"The Korean Journal of Mycology"},{value:"the-lancet",label:"The Lancet"},{value:"the-lichenologist",label:"The Lichenologist"},{value:"the-national-medical-journal-of-india",label:"The National Medical Journal of India"},{value:"the-neuroscientist",label:"The Neuroscientist"},{value:"the-new-england-journal-of-medicine",label:"The New England Journal of Medicine"},{value:"the-oncologist",label:"The Oncologist"},{value:"the-open-university-a251",label:"The Open University - A251 - Arts Course"},{value:"the-open-university-harvard",label:"The Open University - Harvard"},{value:"the-open-university-m801",label:"The Open University - M801 - Research Project and Dissertation"},{value:"the-open-university-numeric-superscript",label:"The Open University (numeric, superscript)"},{value:"the-open-university-numeric",label:"The Open University (numeric)"},{value:"the-open-university-s390",label:"The Open University - S390"},{value:"the-optical-society",label:"The Optical Society"},{value:"the-pan-african-medical-journal",label:"The Pan African Medical Journal"},{value:"the-plant-cell",label:"The Plant Cell"},{value:"the-plant-genome",label:"The Plant Genome"},{value:"the-plant-journal",label:"The Plant Journal"},{value:"the-quarterly-journal-of-economics",label:"The Quarterly Journal of Economics"},{value:"the-review-of-financial-studies",label:"The Review of Financial Studies"},{value:"the-rockefeller-university-press",label:"The Rockefeller University Press"},{value:"the-saudi-journal-for-dental-research",label:"The Saudi Journal for Dental Research"},{value:"the-scandinavian-journal-of-clinical-and-laboratory-investigation",label:"The Scandinavian Journal of Clinical & Laboratory Investigation"},{value:"the-university-of-tokyo-law-review",label:"\u6771\u4EAC\u5927\u5B66\u6CD5\u79D1\u5927\u5B66\u9662\u30ED\u30FC\u30EC\u30D3\u30E5\u30FC (The University of Tokyo Law Review) (\u65E5\u672C\u8A9E)"},{value:"the-university-of-western-australia-harvard",label:"The University of Western Australia - Harvard"},{value:"the-university-of-winchester-harvard",label:"The University of Winchester - Harvard"},{value:"the-world-journal-of-biological-psychiatry",label:"The World Journal of Biological Psychiatry"},{value:"theologie-und-philosophie",label:"Theologie und Philosophie (Deutsch)"},{value:"theory-culture-and-society",label:"Theory, Culture & Society"},{value:"theranostics",label:"Theranostics"},{value:"thieme-german",label:"Thieme-German (Deutsch)"},{value:"thomson-reuters-legal-tax-and-accounting-australia",label:"Thomson Reuters - Legal, Tax & Accounting Australia"},{value:"thrombosis-and-haemostasis",label:"Thrombosis and Haemostasis"},{value:"tijdschrift-voor-economische-en-sociale-geografie",label:"Tijdschrift voor economische en sociale geografie"},{value:"tijdschrift-voor-geneeskunde",label:"Tijdschrift voor Geneeskunde en Gezondheidszorg (Nederlands)"},{value:"topoi-orient-occident-auteur-date",label:"Topoi Orient-Occident (auteur-date, Fran\xE7ais)"},{value:"topoi-orient-occident-classique",label:"Topoi Orient-Occident (classique, Fran\xE7ais)"},{value:"toxicological-sciences",label:"Toxicological Sciences"},{value:"trabajos-de-prehistoria",label:"Trabajos de Prehistoria (Espa\xF1ol)"},{value:"traces",label:"Trac\xE9s: Revue de Sciences Humaines (Fran\xE7ais)"},{value:"traffic-injury-prevention",label:"Traffic Injury Prevention"},{value:"traffic",label:"Traffic"},{value:"transactions-of-the-american-philological-association",label:"Transactions of the American Philological Association"},{value:"transactions-of-the-materials-research-society-of-japan",label:"Transactions of the Materials Research Society of Japan"},{value:"transboundary-and-emerging-diseases",label:"Transboundary and Emerging Diseases"},{value:"transnational-environmental-law",label:"Transnational Environmental Law"},{value:"transplantation",label:"Transplantation"},{value:"transport",label:"Transport"},{value:"transportation-research-record",label:"Transportation Research Record: Journal of the Transportation Research Board"},{value:"transposition",label:"Transposition. Musique et sciences sociales"},{value:"transversalites",label:"Transversalit\xE9s (Fran\xE7ais)"},{value:"tree-physiology",label:"Tree Physiology"},{value:"trends-in-glycoscience-and-glycotechnology",label:"Trends in Glycoscience and Glycotechnology"},{value:"trends-journals",label:"Trends journals"},{value:"triangle",label:"Triangle (Fran\xE7ais)"},{value:"trinity-college-dublin-zoology-botany-environmental-sciences-harvard",label:"Trinity College Dublin - Zoology Botany Environmental Sciences - Harvard"},{value:"tropical-animal-health-and-production",label:"Tropical Animal Health and Production"},{value:"tsaqafah",label:"Tsaqafah"},{value:"turabian-author-date",label:"Turabian 9th edition (author-date)"},{value:"turabian-fullnote-bibliography-no-ibid",label:"Turabian 8th edition (full note, no ibid)"},{value:"turabian-fullnote-bibliography",label:"Turabian 8th edition (full note)"},{value:"turkiye-bilimsel-ve-teknolojik-arastirma-kurumu",label:"T\xDCB\u0130TAK (T\xFCrkiye Bilimsel ve Teknolojik Ara\u015Ft\u0131rma Kurumu) (T\xFCrk\xE7e)"},{value:"twentieth-century-music",label:"Twentieth-Century Music"},{value:"tyndale-bulletin",label:"Tyndale Bulletin"},{value:"u-schylku-starozytnosci",label:"U Schy\u0142ku Staro\u017Cytno\u015Bci (Polski)"},{value:"ucl-institute-of-education-harvard",label:"UCL Institute of Education - Harvard"},{value:"ucl-university-college-apa",label:"UCL University College - APA (Dansk)"},{value:"ucl-university-college-harvard",label:"UCL University College - Harvard (Dansk)"},{value:"ucl-university-college-vancouver",label:"UCL University College - Vancouver (English)"},{value:"uclouvain-centre-charles-de-visscher-pour-le-droit-international-et-europeen",label:"UCLouvain - Centre Charles De Visscher pour le droit international et europ\xE9en (French)"},{value:"ugeskrift-for-laeger",label:"Ugeskrift for L\xE6ger (Dansk)"},{value:"ultrasound-in-medicine-and-biology",label:"Ultrasound in Medicine and Biology"},{value:"ulua-revista-de-historia-sociedad-y-cultura",label:"Ul\xFAa. Revista de Historia, Sociedad y Cultura"},{value:"uludag-universitesi-sosyal-bilimler-enstitusu-author-date",label:"Uluda\u011F \xDCniversitesi - Sosyal Bilimler Enstit\xFCs\xFC (author-date, T\xFCrk\xE7e)"},{value:"uludag-universitesi-sosyal-bilimler-enstitusu-full-note-with-ibid",label:"Uluda\u011F \xDCniversitesi - Sosyal Bilimler Enstit\xFCs\xFC (full note, with Ibid., T\xFCrk\xE7e)"},{value:"uludag-universitesi-sosyal-bilimler-enstitusu-full-note",label:"Uluda\u011F \xDCniversitesi - Sosyal Bilimler Enstit\xFCs\xFC (full note, T\xFCrk\xE7e)"},{value:"uludag-universitesi-sosyal-bilimler-enstitusu-ilahiyat-fakultesi-full-note-with-ibid",label:"Uluda\u011F \xDCniversitesi - Sosyal Bilimler Enstit\xFCs\xFC - \u0130lahiyat Fak\xFCltesi (full note, with Ibid., T\xFCrk\xE7e)"},{value:"uludag-universitesi-sosyal-bilimler-enstitusu-ilahiyat-fakultesi-full-note",label:"Uluda\u011F \xDCniversitesi - Sosyal Bilimler Enstit\xFCs\xFC - \u0130lahiyat Fak\xFCltesi (full note, T\xFCrk\xE7e)"},{value:"unesco-international-institute-for-educational-planning",label:"UNESCO International Institute for Educational Planning"},{value:"unified-style-sheet-for-linguistics-de-gruyter-literature",label:"Unified Stylesheet for Linguistics (de Gruyter Literature)"},{value:"unified-style-sheet-for-linguistics",label:"Unified style sheet for linguistics"},{value:"united-nations-conference-on-trade-and-development",label:"United Nations Conference on Trade and Development"},{value:"united-nations-development-programme-icca-legal-review",label:"United Nations Development Programme ICCA Legal Review"},{value:"united-nations-framework-convention-on-climate-change",label:"United Nations Framework Convention on Climate Change"},{value:"united-states-international-trade-commission",label:"United States International Trade Commission"},{value:"universidad-autonoma-cidudad-juarez-estilo-latino-humanistico",label:"Universidad Aut\xF3noma de Ciudad Ju\xE1rez - Estilo Latino Human\xEDstico"},{value:"universidad-de-leon-harvard",label:"Universidad de Le\xF3n (Espa\xF1a) - Harvard"},{value:"universidad-evangelica-del-paraguay",label:"Universidad Evang\xE9lica del Paraguay (Espa\xF1ol)"},{value:"universidade-de-sao-paulo-escola-de-comunicacoes-e-artes-abnt",label:"Universidade de S\xE3o Paulo - Escola de Comunica\xE7\xF5es e Artes - ABNT (Portugu\xEAs - Brasil)"},{value:"universidade-de-sao-paulo-instituto-de-matematica-e-estatistica",label:"Universidade de S\xE3o Paulo - Instituto de Matem\xE1tica e Estat\xEDstica"},{value:"universidade-do-estado-do-rio-de-janeiro-abnt",label:"Universidade do Estado do Rio de Janeiro - ABNT (Portugu\xEAs - Brasil)"},{value:"universidade-do-porto-faculdade-de-engenharia-chicago-pt",label:"Universidade do Porto - Faculdade de Engenharia - Chicago Manual of Style 17th (author-date) (Portugu\xEAs - Portugal)"},{value:"universidade-do-porto-faculdade-de-engenharia-chicago",label:"Universidade do Porto - Faculdade de Engenharia - Chicago Manual of Style 17th (author-date)"},{value:"universidade-do-porto-faculdade-de-psicologia-e-de-ciencias-da-educacao",label:"Universidade do Porto - Faculdade de Psicologia e de Ci\xEAncias da Educa\xE7\xE3o - APA"},{value:"universidade-estadual-de-alagoas-abnt",label:"Universidade Estadual de Alagoas - ABNT (Portugu\xEAs - Brasil)"},{value:"universidade-estadual-do-oeste-do-parana-programa-institucional-de-bolsas-de-iniciacao-cientifica",label:"Universidade Estadual do Oeste do Paran\xE1 - Programa Institucional de Bolsas de Inicia\xE7\xE3o Cient\xEDfica (Portugu\xEAs - Brasil)"},{value:"universidade-estadual-paulista-campus-de-dracena-abnt",label:"Universidade Estadual Paulista - Campus de Dracena - ABNT (autoria abreviada) (Portugu\xEAs - Brasil)"},{value:"universidade-estadual-paulista-faculdade-de-engenharia-de-guaratingueta-abnt",label:"Universidade Estadual Paulista - Faculdade de Engenharia de Guaratingueta - ABNT (Portugu\xEAs - Brasil)"},{value:"universidade-federal-de-juiz-de-fora",label:"Universidade Federal de Juiz de Fora (Portugu\xEAs - Brasil)"},{value:"universidade-federal-de-pernambuco-abnt",label:"Universidade Federal de Pernambuco - ABNT (Portugu\xEAs - Brasil)"},{value:"universidade-federal-de-sergipe-departamento-de-engenharia-de-producao-abnt",label:"Universidade Federal de Sergipe - Departamento de Engenharia de Produ\xE7\xE3o - ABNT (Portugu\xEAs - Brasil)"},{value:"universidade-federal-do-espirito-santo-abnt-initials",label:"Universidade Federal do Esp\xEDrito Santo - ABNT (autoria abreviada) (Portugu\xEAs - Brasil)"},{value:"universidade-federal-do-espirito-santo-abnt",label:"Universidade Federal do Esp\xEDrito Santo - ABNT (autoria completa) (Portugu\xEAs - Brasil)"},{value:"universidade-federal-do-rio-de-janeiro-instituto-alberto-luiz-coimbra-de-pos-graduacao-e-pesquisa-de-engenharia-abnt",label:"Universidade Federal do Rio de Janeiro - Instituto Alberto Luiz Coimbra de P\xF3s-Gradua\xE7\xE3o e Pesquisa de Engenharia - ABNT (Portugu\xEAs - Brasil)"},{value:"universita-cattolica-del-sacro-cuore",label:"Universit\xE0 Cattolica del Sacro Cuore (note, Italiano)"},{value:"universita-di-bologna-lettere",label:"University of Bologna - Liberal Arts College (Universit\xE0 di Bologna - Facolt\xE0 di Lettere e Filosofia) (Italiano)"},{value:"universita-pontificia-salesiana-it",label:"Universit\xE0 Pontificia Salesiana (Italiano)"},{value:"universita-pontificia-salesiana",label:"Universit\xE0 Pontificia Salesiana"},{value:"universitas-gadjah-mada-departemen-sejarah",label:"Universitas Gadjah Mada - Departemen Sejarah (Bahasa Indonesia)"},{value:"universitas-negeri-semarang-fakultas-matematika-dan-ilmu-pengetahuan-alam",label:"Universitas Negeri Semarang - Fakultas Matematika dan Ilmu Pengetahuan Alam (Bahasa Indonesia)"},{value:"universitas-negeri-yogyakarta-program-pascasarjana",label:"Universitas Negeri Yogyakarta - Program Pascasarjana (Bahasa Indonesia)"},{value:"universitat-basel-deutsche-sprachwissenschaft",label:"Universit\xE4t Basel - Deutsche Sprachwissenschaft"},{value:"universitat-basel-iberoromanistik",label:"Universit\xE4t Basel - Iberoromanistik (Espa\xF1ol)"},{value:"universitat-bern-institut-fur-musikwissenschaft-note",label:"Universit\xE4t Bern - Institut f\xFCr Musikwissenschaft (note, Deutsch)"},{value:"universitat-bern-institut-fur-sozialanthropologie",label:"Universit\xE4t Bern - Institut f\xFCr Sozialanthropologie (Deutsch - Schweiz)"},{value:"universitat-bremen-institut-fur-politikwissenschaft",label:"Universit\xE4t Bremen - Institut f\xFCr Politikwissenschaft (Deutsch)"},{value:"universitat-bremen-lehrstuhl-fur-innovatives-markenmanagement",label:"Universit\xE4t Bremen - Lehrstuhl f\xFCr innovatives Markenmanagement (Deutsch)"},{value:"universitat-freiburg-geschichte",label:"Albert-Ludwigs-Universit\xE4t Freiburg - Geschichte (Deutsch)"},{value:"universitat-heidelberg-historisches-seminar",label:"Universit\xE4t Heidelberg - Historisches Seminar (Deutsch)"},{value:"universitat-heidelberg-medizinische-fakultat-mannheim-numeric",label:"Universit\xE4t Heidelberg - Medizinische Fakult\xE4t Mannheim (numerisch, Deutsch)"},{value:"universitat-mainz-geographisches-institut",label:"Universit\xE4t Mainz - Geographisches Institut (Deutsch)"},{value:"universitat-mannheim-germanistische-linguistik",label:"Universit\xE4t Mannheim - Germanistische Linguistik (Deutsch)"},{value:"universitat-stuttgart-planung-und-partizipation",label:"Universit\xE4t Stuttgart - Planung und Partizipation (Deutsch)"},{value:"universitat-wien-institut-fur-geschichte",label:"Universit\xE4t Wien - Institut f\xFCr Geschichte"},{value:"universitat-zu-koln-seminar-fur-abwl-und-finanzierungslehre",label:"Universit\xE4t zu K\xF6ln - Seminar f\xFCr ABWL und Finanzierungslehre (Deutsch)"},{value:"universitatsmedizin-gottingen",label:"Universit\xE4tsmedizin G\xF6ttingen (Deutsch)"},{value:"universite-catholique-de-louvain-histoire",label:"Universit\xE9 Catholique de Louvain - Histoire (Fran\xE7ais)"},{value:"universite-cheikh-anta-diop-faculte-de-medecine-de-pharmacie-et-dodontologie",label:"Universit\xE9 Cheikh Anta Diop - Facult\xE9 de M\xE9decine de Pharmacie et d'Odontologie (Fran\xE7ais)"},{value:"universite-de-bordeaux-ecole-doctorale-de-droit",label:"Universit\xE9 de Bordeaux - \xC9cole doctorale de droit (Fran\xE7ais)"},{value:"universite-de-geneve-departement-de-langue-et-de-litterature-francaises-modernes",label:"Universit\xE9 de Gen\xE8ve - D\xE9partement de langue et de litt\xE9rature fran\xE7aises modernes (Fran\xE7ais)"},{value:"universite-de-lausanne-histoire",label:"Universit\xE9 de Lausanne - Histoire (Fran\xE7ais)"},{value:"universite-de-liege-droit-par-categorie",label:"Universit\xE9 de Li\xE8ge - Droit (classement par cat\xE9gorie, Fran\xE7ais)"},{value:"universite-de-liege-droit",label:"Universit\xE9 de Li\xE8ge - Droit (Fran\xE7ais)"},{value:"universite-de-liege-histoire",label:"Universit\xE9 de Li\xE8ge - Histoire (Fran\xE7ais)"},{value:"universite-de-montreal-apa",label:"Universit\xE9 de Montr\xE9al - APA (Fran\xE7ais - Canada)"},{value:"universite-de-montreal-faculte-de-musique",label:"Universit\xE9 de Montr\xE9al - Facult\xE9 de musique (Fran\xE7ais - Canada)"},{value:"universite-de-picardie-jules-verne-ufr-de-medecine",label:"Universit\xE9 de Picardie Jules Verne (Amiens) - Th\xE8se de UFR de M\xE9decine"},{value:"universite-de-sherbrooke-departement-de-geomatique",label:"Universit\xE9 de Sherbrooke - D\xE9partement de g\xE9omatique (Fran\xE7ais - Canada)"},{value:"universite-de-sherbrooke-faculte-d-education",label:"Universit\xE9 de Sherbrooke - Facult\xE9 d'\xE9ducation (Fran\xE7ais - Canada)"},{value:"universite-de-sherbrooke-histoire",label:"Universit\xE9 de Sherbrooke - Histoire (Fran\xE7ais - Canada)"},{value:"universite-du-quebec-a-montreal-departement-dhistoire",label:"Universit\xE9 du Qu\xE9bec \xE0 Montr\xE9al - D\xE9partement d\u2019histoire (Fran\xE7ais - Canada)"},{value:"universite-du-quebec-a-montreal-etudes-litteraires-et-semiologie",label:"Universit\xE9 du Qu\xE9bec \xE0 Montr\xE9al - \xC9tudes litt\xE9raires et s\xE9miologie (Fran\xE7ais - Canada)"},{value:"universite-du-quebec-a-montreal",label:"Universit\xE9 du Qu\xE9bec \xE0 Montr\xE9al - APA (Fran\xE7ais - Canada)"},{value:"universite-laval-departement-des-sciences-historiques",label:"Universit\xE9 Laval - D\xE9partement des sciences historiques (Fran\xE7ais - Canada)"},{value:"universite-laval-departement-dinformation-et-de-communication",label:"Universit\xE9 Laval - D\xE9partement d'information et de communication (Fran\xE7ais - Canada)"},{value:"universite-laval-faculte-de-theologie-et-de-sciences-religieuses",label:"Universit\xE9 Laval - Facult\xE9 de th\xE9ologie et de sciences religieuses (Fran\xE7ais - Canada)"},{value:"universite-libre-de-bruxelles-histoire",label:"Universit\xE9 libre de Bruxelles - Histoire (Fran\xE7ais)"},{value:"universite-nangui-abrogoua-sciences-de-la-nature-apa",label:"Universit\xE9 Nangui Abrogoua - Sciences de la Nature - APA (Fran\xE7ais)"},{value:"universiteit-utrecht-onderzoeksgids-geschiedenis",label:"Universiteit Utrecht - Onderzoeksgids Geschiedenis (Nederlands)"},{value:"universitetet-i-oslo-rettsvitenskap",label:"Universitetet i Oslo - Rettsvitenskap (Norsk - Bokm\xE5l)"},{value:"universiti-kebangsaan-malaysia",label:"Universiti Kebangsaan Malaysia (Malay)"},{value:"university-college-dublin-school-of-history-and-archives",label:"University College Dublin - School of History & Archives"},{value:"university-college-lillebaelt-apa",label:"University College Lilleb\xE6lt - APA (Dansk)"},{value:"university-for-the-creative-arts-figures",label:"University for the Creative Arts (figures and illustrations)"},{value:"university-of-aberdeen-school-of-education-harvard",label:"University of Aberdeen - School of Education - Harvard"},{value:"university-of-aleppo-faculty-of-medicine",label:"University of Aleppo - Faculty of Medicine"},{value:"university-of-auckland-history",label:"University of Auckland - History"},{value:"university-of-bradford-harvard",label:"University of Bradford - Harvard"},{value:"university-of-cambridge-faculty-of-history",label:"University of Cambridge - Faculty of History"},{value:"university-of-gothenburg-apa-7th-edition-swedish-legislations",label:"University of Gothenburg - APA 7th edition (Swedish legislations)"},{value:"university-of-gothenburg-apa-swedish-legislations",label:"University of Gothenburg - APA 6th edition (Swedish legislations)"},{value:"university-of-helsinki-faculty-of-theology",label:"Helsingin yliopisto - Teologinen tiedekunta (Suomi)"},{value:"university-of-lincoln-harvard",label:"University of Lincoln - Harvard"},{value:"university-of-new-england-australia-note",label:"University of New England, Australia (note)"},{value:"university-of-roehampton-harvard",label:"University of Roehampton - Harvard"},{value:"university-of-south-africa-harvard",label:"University of South Africa - Harvard"},{value:"university-of-south-australia-2017-harvard",label:"University of South Australia 2017 - Harvard"},{value:"university-of-south-australia-harvard-2011",label:"University of South Australia 2011 - Harvard"},{value:"university-of-south-australia-harvard-2013",label:"University of South Australia 2013 - Harvard"},{value:"university-of-south-wales-harvard",label:"University of South Wales - Harvard"},{value:"university-of-tasmania-simplified-author-date",label:"University of Tasmania - Simplified Author-date"},{value:"university-of-york-apa",label:"University of York - APA 6th edition"},{value:"university-of-york-chicago",label:"University of York - Chicago Manual of Style 16th edition"},{value:"university-of-york-harvard-archaeology",label:"University of York - Harvard - Archaeology"},{value:"university-of-york-harvard-environment",label:"University of York - Harvard - Environment"},{value:"university-of-york-harvard",label:"University of York - Harvard"},{value:"university-of-york-ieee",label:"University of York - IEEE"},{value:"university-of-york-mhra",label:"University of York - Modern Humanities Research Association 3rd edition"},{value:"university-of-york-mla",label:"University of York - Modern Language Association 8th edition"},{value:"university-of-york-oscola",label:"University of York - OSCOLA"},{value:"university-of-york-vancouver",label:"University of York - Vancouver"},{value:"university-of-zabol-fa",label:"University of Zabol (\u0641\u0627\u0631\u0633\u06CC)"},{value:"university-of-zabol",label:"University of Zabol (English)"},{value:"univerza-na-primorskem-fakulteta-za-vede-o-zdravju-apa",label:"Univerza na Primorskem - Fakulteta za vede o zdravju - APA (Sloven\u0161\u010Dina)"},{value:"uniwersytet-im-adama-mickiewicza-w-poznaniu-wydzial-anglistyki",label:"Uniwersytet im. Adama Mickiewicza w Poznaniu - Wydzia\u0142 Anglistyki (English)"},{value:"uniwersytet-kardynala-stefana-wyszynskiego-w-warszawie-autor-rok",label:"Uniwersytet Kardyna\u0142a Stefana Wyszy\u0144skiego w Warszawie (autor-rok, Polski)"},{value:"uniwersytet-kardynala-stefana-wyszynskiego-w-warszawie-przypis",label:"Uniwersytet Kardyna\u0142a Stefana Wyszy\u0144skiego w Warszawie (przypis, Polski)"},{value:"uppsala-universitet-historia",label:"Uppsala universitet - Historia"},{value:"uppsala-universitet-institutionen-for-biologisk-grundutbildning",label:"Uppsala universitet, Institutionen f\xF6r biologisk grundutbildning"},{value:"urad-rs-za-makroekonomske-analize-in-razvoj",label:"Urad RS za makroekonomske analize in razvoj (Sloven\u0161\u010Dina)"},{value:"urban-geography",label:"Urban Geography"},{value:"urban-habitats",label:"Urban Habitats"},{value:"urban-studies",label:"Urban Studies"},{value:"urbani-izziv-en",label:"Urbani izziv (Urban Challenge) (English)"},{value:"urbani-izziv",label:"Urbani izziv (Urban Challenge) (Sloven\u0161\u010Dina)"},{value:"urological-science",label:"Urological Science"},{value:"us-geological-survey",label:"U.S. Geological Survey"},{value:"usda-forest-service-pacific-northwest-research-station",label:"USDA Forest Service - Pacific Northwest Research Station"},{value:"user-modeling-and-user-adapted-interaction",label:"User Modeling and User-Adapted Interaction"},{value:"uspekhi-gerontologii",label:"\u0423\u0441\u043F\u0435\u0445\u0438 \u0433\u0435\u0440\u043E\u043D\u0442\u043E\u043B\u043E\u0433\u0438\u0438 (\u0420\u0443\u0301\u0441\u0441\u043A\u0438\u0439)"},{value:"utah-geological-survey",label:"Utah Geological Survey"},{value:"vancouver-author-date",label:"Vancouver (author-date)"},{value:"vancouver-brackets-no-et-al",label:'Vancouver (brackets, no "et al.")'},{value:"vancouver-brackets-only-year-no-issue",label:"Vancouver (brackets, only year in date, no issue numbers)"},{value:"vancouver-brackets",label:"Vancouver (brackets)"},{value:"vancouver-fr-ca",label:"Vancouver (Fran\xE7ais - Canada)"},{value:"vancouver-imperial-college-london",label:"Imperial College London - Vancouver"},{value:"vancouver-superscript-brackets-only-year",label:"Vancouver (superscript, brackets, only year in date)"},{value:"vancouver-superscript-only-year",label:"Vancouver (superscript, only year in date, no issue numbers)"},{value:"vancouver-superscript",label:"Vancouver (superscript)"},{value:"vancouver",label:"Vancouver"},{value:"veterinaria-italiana",label:"Veterinaria Italiana"},{value:"veterinary-medicine-austria",label:"Veterinary Medicine Austria (Wiener Tier\xE4rztliche Monatsschrift)"},{value:"veterinary-microbiology",label:"Veterinary Microbiology"},{value:"veterinary-pathology",label:"Veterinary Pathology"},{value:"veterinary-radiology-and-ultrasound",label:"Veterinary Radiology & Ultrasound"},{value:"veterinary-record",label:"Veterinary Record"},{value:"victoria-university-harvard",label:"Victoria University - Harvard"},{value:"vienna-legal",label:"Vienna Legal"},{value:"vietnam-ministry-of-education-and-training-en",label:"Vietnam Ministry of Education and Training (English)"},{value:"vietnam-ministry-of-education-and-training-vi",label:"Vietnam Ministry of Education and Training (Ti\u1EBFng Vi\u1EC7t)"},{value:"vigiliae-christianae",label:"Vigiliae Christianae"},{value:"vilnius-gediminas-technical-university",label:"Vilnius Gediminas Technical University (Lietuvi\u0173 kalba)"},{value:"vingtieme-siecle",label:"Vingti\xE8me Si\xE8cle. Revue d'histoire (Fran\xE7ais)"},{value:"vita-latina-auteurs-anciens",label:"Vita Latina (auteurs anciens, Fran\xE7ais)"},{value:"vita-latina",label:"Vita Latina (Fran\xE7ais)"},{value:"vodohospodarske-technicko-ekonomicke-informace-en",label:"Vodohospod\xE1\u0159sk\xE9 technicko-ekonomick\xE9 informace (English)"},{value:"vodohospodarske-technicko-ekonomicke-informace",label:"Vodohospod\xE1\u0159sk\xE9 technicko-ekonomick\xE9 informace (\u010Ce\u0161tina)"},{value:"wader-study",label:"Wader Study"},{value:"water-alternatives",label:"Water Alternatives"},{value:"water-environment-research",label:"Water Environment Research"},{value:"water-sa",label:"Water SA"},{value:"water-science-and-technology",label:"Water Science & Technology"},{value:"waterbirds",label:"Waterbirds"},{value:"weed-research",label:"Weed Research"},{value:"weed-science-society-of-america",label:"Weed Science Society of America"},{value:"west-european-politics",label:"West European Politics"},{value:"western-journal-of-emergency-medicine",label:"Western Journal of Emergency Medicine"},{value:"westfalische-wilhelms-universitat-munster-medizinische-fakultat",label:"Westf\xE4lische Wilhelms-Universit\xE4t M\xFCnster - Medizinische Fakult\xE4t (Deutsch)"},{value:"wetlands",label:"Wetlands"},{value:"wheaton-college-phd-in-biblical-and-theological-studies",label:"Wheaton College - Ph.D. in Biblical and Theological Studies"},{value:"who-europe-harvard",label:"WHO Regional Office for Europe - Harvard"},{value:"who-europe-numeric",label:"WHO Regional Office for Europe (numeric)"},{value:"wiesbaden-business-school",label:"Wiesbaden Business School"},{value:"wikipedia-templates",label:"Wikipedia Templates"},{value:"wiley-vch-books",label:"Wiley-VCH books"},{value:"wireless-communications-and-mobile-computing",label:"Wireless Communications and Mobile Computing"},{value:"wirtschaftsuniversitat-wien-abteilung-fur-bildungswissenschaft",label:"Wirtschaftsuniversit\xE4t Wien - Abteilung f\xFCr Bildungswissenschaft (Deutsch - \xD6sterreich)"},{value:"wirtschaftsuniversitat-wien-author-date",label:"Wirtschaftsuniversit\xE4t Wien (author-date)"},{value:"wirtschaftsuniversitat-wien-handel-und-marketing",label:"Wirtschaftsuniversit\xE4t Wien - Handel und Marketing (Deutsch - \xD6sterreich)"},{value:"wirtschaftsuniversitat-wien-health-care-management",label:"Wirtschaftsuniversit\xE4t Wien - Health Care Management"},{value:"wirtschaftsuniversitat-wien-institut-fur-bwl-des-aussenhandels",label:"Wirtschaftsuniversit\xE4t Wien - Institut f\xFCr BWL des Au\xDFenhandels (Deutsch - \xD6sterreich)"},{value:"wirtschaftsuniversitat-wien-institut-fur-transportwirtschaft-und-logistik",label:"Wirtschaftsuniversit\xE4t Wien - Institut f\xFCr Transportwirtschaft und Logistik (Deutsch - \xD6sterreich)"},{value:"wirtschaftsuniversitat-wien-unternehmensrechnung-und-controlling",label:"Wirtschaftsuniversit\xE4t Wien - Unternehmensrechnung und Controlling"},{value:"wirtschaftsuniversitat-wien-wirtschaftspadagogik",label:"Wirtschaftsuniversit\xE4t Wien - Wirtschaftsp\xE4dagogik (Deutsch - \xD6sterreich)"},{value:"wissenschaftlicher-industrielogistik-dialog",label:"Wissenschaftlicher Industrielogistik-Dialog (Deutsch - \xD6sterreich)"},{value:"wolters-kluwerbrede-schrijfwijzer-author-date",label:"Wolters Kluwerbrede Schrijfwijzer (author-date, Nederlands)"},{value:"world-applied-sciences-journal",label:"World Applied Sciences Journal"},{value:"world-congress-on-engineering-asset-management",label:"World Congress on Engineering Asset Management 2010"},{value:"world-mycotoxin-journal",label:"World Mycotoxin Journal"},{value:"world-organisation-for-animal-health-scientific-and-technical-review",label:"World Organisation for Animal Health - Scientific and Technical Review"},{value:"world-politcs",label:"World Politics"},{value:"worlds-poultry-science-journal",label:"World's Poultry Science Journal"},{value:"worlds-veterinary-journal",label:"World's Veterinary Journal"},{value:"xenotransplantation",label:"Xenotransplantation"},{value:"yeast",label:"Yeast"},{value:"yozgat-bozok-universitesi-fen-bilimleri-enstitusu",label:"Yozgat Bozok \xDCniversitesi - Fen Bilimleri Enstit\xFCs\xFC (T\xFCrk\xE7e)"},{value:"zastosowania-komputerow-w-elektrotechnice",label:"Zastosowania Komputer\xF3w w Elektrotechnice"},{value:"zdfm-zeitschrift-fur-diversitatsforschung-und-management",label:"ZDfm \u2013 Zeitschrift f\xFCr Diversit\xE4tsforschung und -management (Deutsch - \xD6sterreich)"},{value:"zdravniski-vestnik",label:"Zdravni\u0161ki Vestnik (Slovenian Medical Journal)"},{value:"zeitgeschichte",label:"Zeitgeschichte (Deutsch)"},{value:"zeithistorische-forschungen",label:"Zeithistorische Forschungen/Studies in Contemporary History"},{value:"zeitschrift-fur-allgemeinmedizin",label:"Zeitschrift f\xFCr Allgemeinmedizin"},{value:"zeitschrift-fur-antikes-christentum",label:"Zeitschrift f\xFCr Antikes Christentum (Journal of Ancient Christianity) (English)"},{value:"zeitschrift-fur-deutsche-philologie",label:"Zeitschrift f\xFCr deutsche Philologie (Deutsch)"},{value:"zeitschrift-fur-die-geschichte-des-oberrheins",label:"Zeitschrift f\xFCr die Geschichte des Oberrheins (Deutsch)"},{value:"zeitschrift-fur-digitale-geisteswissenschaften",label:"Zeitschrift f\xFCr digitale Geisteswissenschaften (Deutsch)"},{value:"zeitschrift-fur-fantastikforschung",label:"Zeitschrift f\xFCr Fantastikforschung (Deutsch)"},{value:"zeitschrift-fur-geschichtsdidaktik",label:"Zeitschrift f\xFCr Geschichtsdidaktik (Deutsch)"},{value:"zeitschrift-fur-internationale-beziehungen",label:"Zeitschrift f\xFCr Internationale Beziehungen (Deutsch)"},{value:"zeitschrift-fur-kunstgeschichte",label:"Zeitschrift f\xFCr Kunstgeschichte"},{value:"zeitschrift-fur-medien-und-kulturforschung",label:"Zeitschrift f\xFCr Medien- und Kulturforschung (Deutsch)"},{value:"zeitschrift-fur-medienwissenschaft",label:"Zeitschrift f\xFCr Medienwissenschaft (Deutsch)"},{value:"zeitschrift-fur-ostmitteleuropa-forschung",label:"Zeitschrift f\xFCr Ostmitteleuropa-Forschung (Deutsch)"},{value:"zeitschrift-fur-padagogik",label:"Zeitschrift f\xFCr P\xE4dagogik (Deutsch)"},{value:"zeitschrift-fur-papyrologie-und-epigraphik",label:"Zeitschrift f\xFCr Papyrologie und Epigraphik"},{value:"zeitschrift-fur-parlamentsfragen",label:"Zeitschrift f\xFCr Parlamentsfragen (Deutsch)"},{value:"zeitschrift-fur-politik",label:"Zeitschrift f\xFCr Politik (German)"},{value:"zeitschrift-fur-qualitative-forschung",label:"Zeitschrift f\xFCr Qualitative Forschung (Deutsch)"},{value:"zeitschrift-fur-religionswissenschaft-author-date",label:"Zeitschrift f\xFCr Religionswissenschaft (author-date)"},{value:"zeitschrift-fur-religionswissenschaft-note",label:"Zeitschrift f\xFCr Religionswissenschaft (note)"},{value:"zeitschrift-fur-soziologie",label:"Zeitschrift f\xFCr Soziologie (Deutsch)"},{value:"zeitschrift-fur-theologie-und-kirche",label:"Zeitschrift f\xFCr Theologie und Kirche (Deutsch)"},{value:"zeitschrift-fur-theologie-und-philosophie",label:"Zeitschrift f\xFCr Theologie und Philosophie"},{value:"zeitschrift-fur-zahnarztliche-implantologie",label:"Zeitschrift f\xFCr Zahn\xE4rztliche Implantologie (Deutsch)"},{value:"zeszyty-prawnicze-bas",label:"Zeszyty Prawnicze BAS (Polski)"},{value:"zilsel",label:"Zilsel (Fran\xE7ais)"},{value:"zitierguide-leitfaden-zum-fachgerechten-zitieren-in-rechtswissenschaftlichen-arbeiten",label:"ZitierGuide: Leitfaden zum fachgerechten Zitieren in rechtswissenschaftlichen Arbeiten (Roger M\xFCller) (Deutsch - Schweiz)"},{value:"zoological-journal-of-the-linnean-society",label:"Zoological Journal of the Linnean Society"},{value:"zootaxa",label:"Zootaxa"},{value:"zwitscher-maschine",label:"Zwitscher-Maschine"},{value:"jm-azr-erstzitat-kurz-mit-verzeichnissen",label:"JM AZR (Erstzitat kurz mit Verzeichnissen)"},{value:"jm-azr",label:"JM AZR"},{value:"jm-chicago-fullnote-bibliography-nagoya",label:"JM Chicago Manual of Style 16th edition (full note) [Nagoya]"},{value:"jm-chicago-fullnote-bibliography-polyglot",label:"JM Chicago Manual of Style 16th edition (full note, polyglot)"},{value:"jm-chicago-fullnote-bibliography",label:"JM Chicago Manual of Style 16th edition (full note)"},{value:"jm-chinese-gb7714-2005-numeric",label:"JM Chinese Std GB/T 7714-2005 (numeric, Chinese)"},{value:"jm-diritto-pubblico-comparato-ed-europeo",label:"JM Diritto pubblico comparato ed europeo"},{value:"harvard-australian-national-university",label:"JM Harvard - Australian National University"},{value:"jm-ibfd-with-page-label",label:"JM IBFD Standard Citations and References (with page label)"},{value:"jm-ibfd",label:"JM IBFD Standard Citations and References"},{value:"jm-indigobook-law-review",label:"JM Indigo Book Law Review"},{value:"jm-indigobook",label:"JM Indigo Book"},{value:"japan-sociological-society",label:"\u65E5\u672C\u793E\u4F1A\u5B66\u4F1A (author-date, Japanese)"},{value:"jm-leg-cit-literaturverzeichnis",label:"JM leg cit mit Literaturverzeichnis"},{value:"jm-leg-cit-ohne-verzeichnisse",label:"JM leg cit ohne Verzeichnisse"},{value:"jm-leg-cit-rechtsquellenverzeichnis-literaturverzeichnis",label:"JM leg cit mit Rechtsquellenverzeichnis und Literaturverzeichnis"},{value:"jm-mgcill-v9",label:"JM - Canadian Guide to Uniform Legal Citation (9th edition) / Manuel canadien de la r\xE9f\xE9rence juridique (9\u1D49 \xE9dition)"},{value:"jm-new-zealand-law",label:"JM New Zealand Law Style"},{value:"jm-oscola",label:"JM OSCOLA - Oxford Standard for Citation of Legal Authorities"},{value:"jm-taylor-and-francis-chicago-author-date",label:"JM Taylor & Francis - Chicago Manual of Style (author-date)"},{value:"jm-turabian-fullnote-bibliography-eu-multi",label:"JM Turabian 8th edition (full note, EU multilingual)"},{value:"jm-turabian-fullnote-bibliography-nl-multi",label:"JM Turabian 8th edition (full note, Dutch multilingual)"},{value:"jm-vis-moot-1",label:"JM Vis Moot variant 1"},{value:"jm-wirtschaftsuniversitat-wien-steuerrecht",label:"JM Wirtschaftsuniversit\xE4t Wien \u2013 Steuerrecht"},{value:"juris-eu.int",label:"Verwijzingen en Afkortingen (Belgium)"}],j_=new qt(qr,{keys:["label"],minMatchCharLength:3});var Xr={input:e=>({...e,color:"var(--text-normal)"}),singleValue:e=>({...e,color:"var(--text-normal)"}),menu:e=>({...e,backgroundColor:"var(--background-modifier-form-field)",color:"var(--text-normal)"}),option:(e,{isFocused:t,isSelected:a})=>({...e,backgroundColor:t?"var(--interactive-accent)":a?"var(--background-modifier-hover)":void 0,color:t?"var(--text-on-accent)":"var(--text-normal)"}),control:(e,t)=>({...e,backgroundColor:"var(--background-modifier-form-field)",color:"var(--text-normal)",borderColor:t.isFocused?"var(--interactive-accent)":"var(--background-modifier-border)",boxShadow:t.isFocused?"0 0 0 1px var(--interactive-accent)":"none",":hover":{borderColor:t.isFocused?"var(--interactive-accent)":"var(--background-modifier-border)"}})};function cD(e){return j_.search(e).map(t=>t.item)}var L_=0;function Pc(e,t){e===""?t([]):(clearTimeout(L_),L_=activeWindow.setTimeout(()=>{t([{value:e,label:e},...cD(e)])},150))}function Oc(){return I.createElement("span",null,"Type to search CSL styles")}function D_(){return I.createElement("span",null,"Type to search")}function z_(){let e=app.vault.getMarkdownFiles();return new qt(e,{keys:["basename"],minMatchCharLength:2})}var M_=0,G_=e=>(t,a)=>{t===""?a([]):(clearTimeout(M_),M_=activeWindow.setTimeout(()=>{a(e.search(t).map(n=>({value:n.item.path,label:n.item.path})))},150))};function H_({format:e,index:t,updateFormat:a,removeFormat:n}){let i=I.useMemo(()=>{if(!e.cslStyle)return;let p=qr.find(b=>b.value===e.cslStyle);return p||{label:e.cslStyle,value:e.cslStyle}},[e.cslStyle]),r=I.useCallback(p=>{a(t,{...e,name:p.target.value})},[a,t,e]),o=I.useCallback(p=>{let b=p.target.value,d={...e,format:b};b==="latex"?d.command="cite":b==="biblatex"?d.command="autocite":d.command&&delete d.command,d.format!=="template"&&d.template&&delete d.template,d.format!=="pandoc"&&d.brackets&&delete d.brackets,a(t,d)},[a,t,e]),s=I.useCallback(p=>{a(t,{...e,template:p.target.value})},[a,t,e]),l=I.useCallback(p=>{a(t,{...e,cslStyle:p==null?void 0:p.value})},[a,t,e]),u=I.useCallback(p=>{a(t,{...e,command:p.target.value})},[a,t,e]),c=I.useCallback(()=>{a(t,{...e,brackets:!e.brackets})},[a,t,e]),f=I.useCallback(()=>{n(t)},[n,t]);return I.createElement("div",{className:"zt-format"},I.createElement("div",{className:"zt-format__form"},I.createElement("div",{className:"zt-format__label"},"Name"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement("input",{onChange:r,type:"text",value:e.name}),I.createElement("div",{className:"zt-format__delete"},I.createElement("button",{className:"zt-format__delete-btn",onClick:f},I.createElement(ca,{name:"trash"}))))),I.createElement("div",{className:"zt-format__form"},I.createElement("div",{className:"zt-format__label"},"Output Format"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement("select",{className:"dropdown",defaultValue:e.format,onChange:o},I.createElement("option",{value:"latex"},"LaTeX"),I.createElement("option",{value:"biblatex"},"BibLaTeX"),I.createElement("option",{value:"pandoc"},"Pandoc"),I.createElement("option",{value:"formatted-citation"},"Formatted Citation"),I.createElement("option",{value:"formatted-bibliography"},"Formatted Bibliography"),I.createElement("option",{value:"template"},"Template")))),e.format==="template"&&I.createElement("div",{className:"zt-format__form"},I.createElement("div",{className:"zt-format__label"},"Template"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement("textarea",{rows:4,onChange:s,value:e.template})),I.createElement("div",{className:"zt-format__input-note"},"Citation templates have access to a subset of the Zotero item's data. The item's first attachement is available under the"," ",I.createElement("pre",null,"attachment")," key. Annotations are not provided. Open the data explorer from the command pallet to see available template data. Templates are written using"," ",I.createElement("a",{href:"https://mozilla.github.io/nunjucks/templating.html#variables",target:"_blank",rel:"noreferrer"},"Nunjucks"),"."," ",I.createElement("a",{href:"https://github.com/mgmeyers/obsidian-zotero-integration/blob/main/docs/Templating.md",target:"_blank",rel:"noreferrer"},"See the templating documentation here"),".")),["formatted-citation","formatted-bibliography","template"].contains(e.format)&&I.createElement("div",{className:"zt-format__form"},I.createElement("div",{className:"zt-format__label"},e.format==="template"?"Bibliography Style":"Citation Style"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement(Jr,{noOptionsMessage:Oc,placeholder:"Search...",cacheOptions:!0,defaultValue:i,className:"zt-multiselect",loadOptions:Pc,isClearable:!0,onChange:l,styles:Xr})),I.createElement("div",{className:"zt-format__input-note"},"Note, the chosen style must be installed in Zotero. See"," ",I.createElement("a",{target:"_blank",href:"https://www.zotero.org/support/styles",rel:"noreferrer"},"Zotero: Citation Styles"))),["latex","biblatex"].contains(e.format)&&I.createElement("div",{className:"zt-format__form"},I.createElement("div",{className:"zt-format__label"},"Citation Command"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement("input",{type:"text",value:e.command,onChange:u}))),e.format==="pandoc"&&I.createElement("div",{className:"zt-format__form"},I.createElement("div",{className:"zt-format__label"},"Include Brackets"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement("div",{onClick:c,className:`checkbox-container${e.brackets?" is-enabled":""}`}))))}function W_({format:e,index:t,updateFormat:a,removeFormat:n}){let i=I.useMemo(()=>{let f=z_();return G_(f)},[]),r=I.useMemo(()=>{if(!e.templatePath)return;let f=app.vault.getMarkdownFiles().find(p=>p.path===e.templatePath);return f?{value:f.path,label:f.path}:void 0},[e.templatePath]),o=I.useMemo(()=>{if(!e.cslStyle)return;let f=qr.find(p=>p.value===e.cslStyle);return f||{label:e.cslStyle,value:e.cslStyle}},[e.cslStyle]),s=I.useCallback(f=>{let p=f.target.dataset.key;a(t,{...e,[p]:f.target.value})},[a,t,e]),l=I.useCallback(f=>{a(t,{...e,cslStyle:f==null?void 0:f.value})},[a,t,e]),u=I.useCallback(f=>{a(t,{...e,templatePath:f==null?void 0:f.value})},[a,t,e]),c=I.useCallback(()=>{n(t)},[n,t]);return I.createElement("div",{className:"zt-format"},I.createElement("div",{className:"zt-format__form"},I.createElement("div",{className:"zt-format__label"},"Name"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement("input",{onChange:s,type:"text","data-key":"name",value:e.name}),I.createElement("div",{className:"zt-format__delete"},I.createElement("button",{className:"zt-format__delete-btn",onClick:c},I.createElement(ca,{name:"trash"}))))),I.createElement("div",{className:"zt-format__form"},I.createElement("div",{className:"zt-format__label"},"Output Path"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement("input",{onChange:s,type:"text","data-key":"outputPathTemplate",value:e.outputPathTemplate})),I.createElement("div",{className:"zt-format__input-note"},"The file path of the exported markdown. Supports templating, eg"," ",I.createElement("pre",null,"My Folder/","{{citekey}}",".md"),". Templates have access to data from the Zotero item and its first attachment.")),I.createElement("div",{className:"zt-format__form"},I.createElement("div",{className:"zt-format__label"},"Image Output Path"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement("input",{onChange:s,type:"text","data-key":"imageOutputPathTemplate",value:e.imageOutputPathTemplate})),I.createElement("div",{className:"zt-format__input-note"},"The folder in which images should be saved. Supports templating, eg"," ",I.createElement("pre",null,"Assets/","{{citekey}}","/"),". Templates have access to data from the Zotero item and its first attachment.")),I.createElement("div",{className:"zt-format__form"},I.createElement("div",{className:"zt-format__label"},"Image Base Name"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement("input",{onChange:s,type:"text","data-key":"imageBaseNameTemplate",value:e.imageBaseNameTemplate})),I.createElement("div",{className:"zt-format__input-note"},"The base file name of exported images. Eg. ",I.createElement("pre",null,"image")," will result in ",I.createElement("pre",null,"image-1-x123-y456.jpg")," where ",I.createElement("pre",null,"1")," is the page number and ",I.createElement("pre",null,"x123")," and ",I.createElement("pre",null,"y456")," are the x and y coordinates of rectangle annotation on the page. Supports templating. Templates have access to data from the Zotero item and its first attachment.")),I.createElement("div",{className:"zt-format__form"},I.createElement("div",{className:"zt-format__label"},"Template File"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement(Jr,{noOptionsMessage:D_,placeholder:"Search...",cacheOptions:!0,defaultValue:r,className:"zt-multiselect",loadOptions:i,isClearable:!0,onChange:u,styles:Xr})),I.createElement("div",{className:"zt-format__input-note"},"Open the data explorer from the command pallet to see available template data. Templates are written using"," ",I.createElement("a",{href:"https://mozilla.github.io/nunjucks/templating.html#variables",target:"_blank",rel:"noreferrer"},"Nunjucks"),"."," ",I.createElement("a",{href:"https://github.com/mgmeyers/obsidian-zotero-integration/blob/main/docs/Templating.md",target:"_blank",rel:"noreferrer"},"See the templating documentation here"),".")),e.headerTemplatePath&&I.createElement("div",{className:"zt-format__form is-deprecated"},I.createElement("div",{className:"zt-format__label"},"Header Template File (deprecated)"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement("input",{type:"text",disabled:!0,value:e.headerTemplatePath}),I.createElement("button",{className:"mod-warning",onClick:()=>{a(t,{...e,headerTemplatePath:void 0})}},"Remove Template")),I.createElement("div",{className:"zt-format__input-note"},"Deprecated: Separate template files are no longer needed."," ",I.createElement("a",{href:"https://github.com/mgmeyers/obsidian-zotero-integration/blob/main/docs/Templating.md",target:"_blank",rel:"noreferrer"},"See the templating documentation here"),".")),e.annotationTemplatePath&&I.createElement("div",{className:"zt-format__form is-deprecated"},I.createElement("div",{className:"zt-format__label"},"Annotation Template File (deprecated)"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement("input",{type:"text",disabled:!0,value:e.annotationTemplatePath}),I.createElement("button",{className:"mod-warning",onClick:()=>{a(t,{...e,annotationTemplatePath:void 0})}},"Remove Template")),I.createElement("div",{className:"zt-format__input-note"},"Deprecated: Separate template files are no longer needed."," ",I.createElement("a",{href:"https://github.com/mgmeyers/obsidian-zotero-integration/blob/main/docs/Templating.md",target:"_blank",rel:"noreferrer"},"See the templating documentation here"),".")),e.footerTemplatePath&&I.createElement("div",{className:"zt-format__form is-deprecated"},I.createElement("div",{className:"zt-format__label"},"Footer Template File (deprecated)"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement("input",{type:"text",disabled:!0,value:e.footerTemplatePath}),I.createElement("button",{className:"mod-warning",onClick:()=>{a(t,{...e,footerTemplatePath:void 0})}},"Remove Template")),I.createElement("div",{className:"zt-format__input-note"},"Deprecated: Separate template files are no longer needed."," ",I.createElement("a",{href:"https://github.com/mgmeyers/obsidian-zotero-integration/blob/main/docs/Templating.md",target:"_blank",rel:"noreferrer"},"See the templating documentation here"),".")),I.createElement("div",{className:"zt-format__form"},I.createElement("div",{className:"zt-format__label"},"Bilbiography Style"),I.createElement("div",{className:"zt-format__input-wrapper"},I.createElement(Jr,{noOptionsMessage:Oc,placeholder:"Search...",cacheOptions:!0,defaultValue:o,className:"zt-multiselect",loadOptions:Pc,isClearable:!0,onChange:l,styles:Xr})),I.createElement("div",{className:"zt-format__input-note"},"Note, the chosen style must be installed in Zotero. See"," ",I.createElement("a",{target:"_blank",href:"https://www.zotero.org/support/styles",rel:"noreferrer"},"Zotero: Citation Styles"))))}function uD({settings:e,addCiteFormat:t,updateCiteFormat:a,removeCiteFormat:n,addExportFormat:i,updateExportFormat:r,removeExportFormat:o,updateSetting:s}){let[l,u]=I.useState(e.citeFormats),[c,f]=I.useState(e.exportFormats),[p,b]=I.useState(!!e.openNoteAfterImport),[d,m]=I.useState(e.pdfExportImageOCR),[h,v]=I.useState(!!e.shouldConcat),x=I.useCallback((0,Ja.debounce)((F,B)=>{u(a(F,B))},200,!0),[a]),E=I.useCallback(()=>{u(t({name:`Format #${l.length+1}`,format:"formatted-citation"}))},[t,l]),g=I.useCallback(F=>{u(n(F))},[n]),w=I.useCallback((0,Ja.debounce)((F,B)=>{f(r(F,B))},200,!0),[r]),C=I.useCallback(()=>{f(i({name:`Import #${c.length+1}`,outputPathTemplate:"{{citekey}}.md",imageOutputPathTemplate:"{{citekey}}/",imageBaseNameTemplate:"image"}))},[i,l]),y=I.useCallback(F=>{f(o(F))},[o]),S=I.useRef(null),A=I.useRef(null),[_,P]=I.useState(e.database==="Custom");return I.createElement("div",null,I.createElement(He,{name:"General Settings",isHeading:!0}),I.createElement(qA,{settings:e,updateSetting:s}),I.createElement(He,{name:"Database",description:"Supports Zotero and Juris-M. Alternatively a custom port number can be specified."},I.createElement("select",{className:"dropdown",defaultValue:e.database,onChange:F=>{let B=F.target.value;s("database",B),P(B==="Custom")}},I.createElement("option",{value:"Zotero"},"Zotero"),I.createElement("option",{value:"Juris-M"},"Juris-M"),I.createElement("option",{value:"Custom"},"Custom"))),_?I.createElement(He,{name:"Port number",description:"If a custom port number has been set in Zotero, enter it here."},I.createElement("input",{onChange:F=>s("port",F.target.value),type:"number",placeholder:"Example: 23119",defaultValue:e.port})):null,I.createElement(He,{name:"Note Import Location",description:"Notes imported from Zotero will be added to this folder in your vault"},I.createElement("input",{onChange:F=>s("noteImportFolder",F.target.value),type:"text",spellCheck:!1,placeholder:"Example: folder 1/folder 2",defaultValue:e.noteImportFolder})),I.createElement(He,{name:"Open the created or updated note(s) after import",description:"The created or updated markdown files resulting from the import will be automatically opened."},I.createElement("div",{onClick:()=>{b(F=>(s("openNoteAfterImport",!F),!F))},className:`checkbox-container${p?" is-enabled":""}`})),I.createElement(He,{name:"Which notes to open after import",description:"Open either the first note imported, the last note imported, or all notes in new tabs."},I.createElement("select",{className:"dropdown",defaultValue:e.whichNotesToOpenAfterImport,disabled:!e.openNoteAfterImport,onChange:F=>s("whichNotesToOpenAfterImport",F.target.value)},I.createElement("option",{value:"first-imported-note"},"First imported note"),I.createElement("option",{value:"last-imported-note"},"Last imported note"),I.createElement("option",{value:"all-imported-notes"},"All imported notes"))),I.createElement(He,{name:"Enable Annotation Concatenation",description:"Annotations extracted from PDFs that begin with '+' will be appended to the previous annotation. Note: Annotation ordering is not always consistent and you may not always acheive the desire concatenation result"},I.createElement("div",{onClick:()=>{v(F=>(s("shouldConcat",!F),!F))},className:`checkbox-container${h?" is-enabled":""}`})),I.createElement(He,{name:"Citation Formats",isHeading:!0}),I.createElement(He,null,I.createElement("button",{onClick:E,className:"mod-cta"},"Add Citation Format")),l.map((F,B)=>I.createElement(H_,{key:B,format:F,index:B,updateFormat:x,removeFormat:g})),I.createElement(He,{name:"Import Formats",isHeading:!0}),I.createElement(He,null,I.createElement("button",{onClick:C,className:"mod-cta"},"Add Import Format")),c.map((F,B)=>I.createElement(W_,{key:c.length-B,format:F,index:B,updateFormat:w,removeFormat:y})),I.createElement(He,{name:"Import Image Settings",description:"Rectangle annotations will be extracted from PDFs as images.",isHeading:!0}),I.createElement(He,{name:"Image Format"},I.createElement("select",{className:"dropdown",defaultValue:e.pdfExportImageFormat,onChange:F=>s("pdfExportImageFormat",F.target.value)},I.createElement("option",{value:"jpg"},"jpg"),I.createElement("option",{value:"png"},"png"))),I.createElement(He,{name:"Image Quality (jpg only)"},I.createElement("input",{min:"0",max:"100",onChange:F=>s("pdfExportImageQuality",Number(F.target.value)),type:"number",defaultValue:e.pdfExportImageQuality.toString()})),I.createElement(He,{name:"Image DPI"},I.createElement("input",{min:"0",onChange:F=>s("pdfExportImageDPI",Number(F.target.value)),type:"number",defaultValue:e.pdfExportImageDPI.toString()})),I.createElement(He,{name:"Image OCR",description:I.createElement("div",null,"Attempt to extract text from images created by rectangle annotations. This requires that"," ",I.createElement("a",{href:"https://tesseract-ocr.github.io/tessdoc/",target:"_blank",rel:"noreferrer"},"tesseract")," ","be installed on your system. Tesseract can be installed from",I.createElement("a",{href:"https://brew.sh/",target:"_blank",rel:"noreferrer"},"homebrew on mac"),", various linux package managers, and from"," ",I.createElement("a",{href:"https://github.com/UB-Mannheim/tesseract/wiki",target:"_blank",rel:"noreferrer"},"here on windows"),".")},I.createElement("div",{onClick:()=>m(F=>(s("pdfExportImageOCR",!F),!F)),className:`checkbox-container${d?" is-enabled":""}`})),I.createElement(He,{name:"Tesseract path",description:I.createElement("div",null,"Required: An absolute path to the tesseract executable. This can be found on mac and linux with the terminal command"," ",I.createElement("pre",null,"which tesseract"))},I.createElement("input",{ref:S,onChange:F=>s("pdfExportImageTesseractPath",F.target.value),type:"text",defaultValue:e.pdfExportImageTesseractPath}),I.createElement("div",{className:"clickable-icon setting-editor-extra-setting-button","aria-label":"Attempt to find tesseract automatically",onClick:async()=>{try{let F=await(0,V_.default)("tesseract");F?(S.current.value=F,s("pdfExportImageTesseractPath",F)):new Ja.Notice("Unable to find tesseract on your system. If it is installed, please manually enter a path.")}catch(F){new Ja.Notice("Unable to find tesseract on your system. If it is installed, please manually enter a path."),console.error(F)}}},I.createElement(ca,{name:"magnifying-glass"}))),I.createElement(He,{name:"Image OCR Language",description:I.createElement("div",null,"Optional: defaults to english. Multiple languages can be specified like so: ",I.createElement("pre",null,"eng+deu"),". Each language must be installed on your system."," ",I.createElement("a",{href:"https://github.com/tesseract-ocr/tessdata",target:"_blank",rel:"noreferrer"},"Languages can be downloaded here"),". (See"," ",I.createElement("a",{href:"https://tesseract-ocr.github.io/tessdoc/Data-Files-in-different-versions.html",target:"_blank",rel:"noreferrer"},"here for a description of the language codes"),")")},I.createElement("input",{onChange:F=>s("pdfExportImageOCRLang",F.target.value),type:"text",defaultValue:e.pdfExportImageOCRLang})),I.createElement(He,{name:"Tesseract data directory",description:"Optional: supply an absolute path to the directory where tesseract's language files reside. This folder should include *.traineddata files for your selected languages."},I.createElement("input",{ref:A,onChange:F=>s("pdfExportImageTessDataDir",F.target.value),type:"text",defaultValue:e.pdfExportImageTessDataDir}),I.createElement("div",{className:"clickable-icon setting-editor-extra-setting-button","aria-label":"Select the tesseract data directory",onClick:()=>{let F=require("electron").remote.dialog.showOpenDialogSync({properties:["openDirectory"]});F&&F.length&&(A.current.value=F[0],s("pdfExportImageTessDataDir",F[0]))}},I.createElement(ca,{name:"lucide-folder-open"}))))}var Rc=class extends Ja.PluginSettingTab{constructor(a,n){super(a,n);this.addCiteFormat=a=>(this.plugin.addFormatCommand(a),this.plugin.settings.citeFormats.unshift(a),this.debouncedSave(),this.plugin.settings.citeFormats.slice());this.updateCiteFormat=(a,n)=>(this.plugin.removeFormatCommand(this.plugin.settings.citeFormats[a]),this.plugin.addFormatCommand(n),this.plugin.settings.citeFormats[a]=n,this.debouncedSave(),this.plugin.settings.citeFormats.slice());this.removeCiteFormat=a=>(this.plugin.removeFormatCommand(this.plugin.settings.citeFormats[a]),this.plugin.settings.citeFormats.splice(a,1),this.debouncedSave(),this.plugin.settings.citeFormats.slice());this.addExportFormat=a=>(this.plugin.addExportCommand(a),this.plugin.settings.exportFormats.unshift(a),this.debouncedSave(),this.plugin.settings.exportFormats.slice());this.updateExportFormat=(a,n)=>(this.plugin.removeExportCommand(this.plugin.settings.exportFormats[a]),this.plugin.addExportCommand(n),this.plugin.settings.exportFormats[a]=n,this.debouncedSave(),this.plugin.settings.exportFormats.slice());this.removeExportFormat=a=>(this.plugin.removeExportCommand(this.plugin.settings.exportFormats[a]),this.plugin.settings.exportFormats.splice(a,1),this.debouncedSave(),this.plugin.settings.exportFormats.slice());this.updateSetting=(a,n)=>{this.plugin.settings[a]=n,this.debouncedSave()};this.plugin=n}display(){I.render(I.createElement(uD,{settings:this.plugin.settings,addCiteFormat:this.addCiteFormat,updateCiteFormat:this.updateCiteFormat,removeCiteFormat:this.removeCiteFormat,addExportFormat:this.addExportFormat,updateExportFormat:this.updateExportFormat,removeExportFormat:this.removeExportFormat,updateSetting:this.updateSetting}),this.containerEl)}debouncedSave(){clearTimeout(this.dbTimer),this.dbTimer=activeWindow.setTimeout(()=>{this.plugin.saveSettings()},150)}hide(){super.hide(),I.unmountComponentAtNode(this.containerEl)}};var U_="obsidian-zotero-desktop-connector:",J_="zdc-",Z_="zdc-exp-",pD={database:"Zotero",noteImportFolder:"",pdfExportImageDPI:120,pdfExportImageFormat:"jpg",pdfExportImageQuality:90,citeFormats:[],exportFormats:[],citeSuggestTemplate:"[[{{citekey}}]]",openNoteAfterImport:!1,whichNotesToOpenAfterImport:"first-imported-note"};async function dD(){if(process.platform!=="win32")try{let e=await dv();process.env.PATH=e||["./node_modules/.bin","/.nodebrew/current/bin","/usr/local/bin",process.env.PATH].join(":")}catch(e){console.error(e)}}var Bc=class extends En.Plugin{async onload(){await this.loadSettings(),this.emitter=new En.Events,this.updatePDFUtility(),this.addSettingTab(new Rc(this.app,this)),this.registerView(Un,a=>new Os(this,a)),this.settings.citeFormats.forEach(a=>{this.addFormatCommand(a)}),this.settings.exportFormats.forEach(a=>{this.addExportCommand(a)}),this.addCommand({id:"zdc-insert-notes",name:"Insert notes into current document",editorCallback:a=>{var i;let n={database:this.settings.database,port:this.settings.port};xp(n,(i=this.app.workspace.getActiveFile())==null?void 0:i.parent.path).then(r=>{r&&Wx(a,r)})}}),this.addCommand({id:"zdc-import-notes",name:"Import notes",callback:()=>{let a={database:this.settings.database,port:this.settings.port};xp(a,this.settings.noteImportFolder).then(n=>n?Vx(this.settings.noteImportFolder,n):[]).then(n=>this.openNotes(n))}}),this.addCommand({id:"show-zotero-debug-view",name:"Data explorer",callback:()=>{this.activateDataExplorer()}}),this.registerEvent(this.app.vault.on("modify",a=>{a instanceof En.TFile&&this.emitter.trigger("fileUpdated",a)})),app.workspace.trigger("parse-style-settings"),dD()}onunload(){this.settings.citeFormats.forEach(a=>{this.removeFormatCommand(a)}),this.settings.exportFormats.forEach(a=>{this.removeExportCommand(a)}),this.app.workspace.detachLeavesOfType(Un)}addFormatCommand(a){this.addCommand({id:`${J_}${a.name}`,name:a.name,editorCallback:n=>{let i={database:this.settings.database,port:this.settings.port};a.format==="template"&&a.template.trim()?Yx({database:i,format:a}).then(r=>{typeof r=="string"&&n.replaceSelection(r)}):Mx(a,i).then(r=>{typeof r=="string"&&n.replaceSelection(r)})}})}removeFormatCommand(a){this.app.commands.removeCommand(`${U_}${J_}${a.name}`)}addExportCommand(a){this.addCommand({id:`${Z_}${a.name}`,name:a.name,callback:async()=>{let n={database:this.settings.database,port:this.settings.port};this.openNotes(await Ep({settings:this.settings,database:n,exportFormat:a}))}})}removeExportCommand(a){this.app.commands.removeCommand(`${U_}${Z_}${a.name}`)}async runImport(a,n,i=1){let r=this.settings.exportFormats.find(s=>s.name===a);if(!r)throw new Error(`Error: Import format "${a}" not found`);let o={database:this.settings.database,port:this.settings.port};n.startsWith("@")&&(n=n.substring(1)),await Ep({settings:this.settings,database:o,exportFormat:r},[{key:n,library:i}])}async openNotes(a){let n=[];if(this.settings.openNoteAfterImport)switch(this.settings.whichNotesToOpenAfterImport){case"first-imported-note":{n.push(a[0]);break}case"last-imported-note":{n.push(a[a.length-1]);break}case"all-imported-notes":{n.push(...a);break}}await new Promise(r=>setTimeout(r,1e3));let i=this.app.workspace.getLeavesOfType("markdown");for(let r of n){let o=this.app.vault.getAbstractFileByPath(r),s=i.find(l=>l.view.file===o);s?app.workspace.revealLeaf(s):o instanceof En.TFile&&await this.app.workspace.getLeaf(!0).openFile(o)}}async loadSettings(){let a=await this.loadData();this.settings={...pD,...a}}async saveSettings(){this.emitter.trigger("settingsUpdated"),await this.saveData(this.settings)}deactivateDataExplorer(){this.app.workspace.detachLeavesOfType(Un)}async activateDataExplorer(){this.deactivateDataExplorer(),await this.app.workspace.createLeafBySplit(this.app.workspace.activeLeaf,"vertical").setViewState({type:Un})}async updatePDFUtility(){let{exeOverridePath:a,_exeInternalVersion:n,exeVersion:i}=this.settings;if(!(a||!i)&&(i!==Va||!n||n!==Cf)){let r=new nt(app,"Updating Obsidian Zotero Integration PDF Utility...");r.open();try{await Af()&&(this.settings.exeVersion=Va,this.settings._exeInternalVersion=Cf,this.saveSettings())}catch(o){}r.close()}}}; +/*! Bundled license information: + +nunjucks/browser/nunjucks.js: + (*! Browser bundle of nunjucks 3.2.4 *) + +safe-buffer/index.js: + (*! safe-buffer. MIT License. Feross Aboukhadijeh *) + +content-disposition/index.js: + (*! + * content-disposition + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + *) + +object-assign/index.js: + (* + object-assign + (c) Sindre Sorhus + @license MIT + *) + +is-natural-number/index.js: + (*! + * is-natural-number.js | MIT (c) Shinnosuke Watanabe + * https://github.com/shinnn/is-natural-number.js + *) + +strip-dirs/index.js: + (*! + * strip-dirs | MIT (c) Shinnosuke Watanabe + * https://github.com/shinnn/node-strip-dirs + *) + +has-symbol-support-x/index.js: + (** + * @file Tests if ES6 Symbol is supported. + * @version 1.4.2 + * @author Xotic750 + * @copyright Xotic750 + * @license {@link MIT} + * @module has-symbol-support-x + *) + +has-to-string-tag-x/index.js: + (** + * @file Tests if ES6 @@toStringTag is supported. + * @see {@link http://www.ecma-international.org/ecma-262/6.0/#sec-@@tostringtag|26.3.1 @@toStringTag} + * @version 1.4.1 + * @author Xotic750 + * @copyright Xotic750 + * @license {@link MIT} + * @module has-to-string-tag-x + *) + +mime-db/index.js: + (*! + * mime-db + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015-2022 Douglas Christopher Wilson + * MIT Licensed + *) + +react-is/cjs/react-is.production.min.js: + (** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) +*/ diff --git a/.obsidian/plugins/obsidian-zotero-desktop-connector/manifest.json b/.obsidian/plugins/obsidian-zotero-desktop-connector/manifest.json new file mode 100644 index 00000000..c513dbc8 --- /dev/null +++ b/.obsidian/plugins/obsidian-zotero-desktop-connector/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-zotero-desktop-connector", + "name": "Zotero Integration", + "version": "3.1.7", + "minAppVersion": "1.1.1", + "description": "Insert and import citations, bibliographies, notes, and PDF annotations from Zotero.", + "author": "mgmeyers", + "authorUrl": "https://github.com/mgmeyers/obsidian-zotero-integration", + "isDesktopOnly": true +} diff --git a/.obsidian/plugins/obsidian-zotero-desktop-connector/styles.css b/.obsidian/plugins/obsidian-zotero-desktop-connector/styles.css new file mode 100644 index 00000000..3327a35c --- /dev/null +++ b/.obsidian/plugins/obsidian-zotero-desktop-connector/styles.css @@ -0,0 +1,238 @@ +.zt-format { + border: 1px solid var(--background-modifier-border); + padding: 1rem; + background-color: var(--background-primary); + border-radius: 10px; + margin-bottom: 10px; +} + +.zt-format__form { + display: flex; + flex-direction: column; + align-items: stretch; + margin-bottom: 1rem; + max-width: 600px; +} + +.zt-format__form:last-child { + margin-bottom: 0; +} + +.zt-format__label { + font-size: 0.9em; + font-weight: 600; + margin-bottom: 5px; +} + +.is-deprecated .zt-format__label { + color: var(--text-error); +} + +.zt-format__input-wrapper { + display: flex; + align-items: center; +} + +.zt-format__input-wrapper textarea { + resize: vertical; +} + +.zt-format__input-wrapper > *:not(.checkbox-container) { + width: 100% !important; +} + +.is-deprecated .zt-format__input-wrapper button { + width: auto !important; + flex-grow: 0; + flex-shrink: 0; + margin-left: 5px; +} + +.zt-format__delete-btn { + display: flex; + align-items: center; + justify-content: center; + line-height: 1; + padding: 7px 9px; + margin-left: 10px; + flex-shrink: 0; + flex-grow: 0; +} + +.zt-json-viewer { + font-size: 13px; +} + +.zt-json-viewer .react-json-view { + padding: 1em; + border-radius: 10px; + margin-top: 1em; + overflow: auto; + font-family: var(--font-monospace) !important; +} + +.zt-json-viewer__btns { + display: flex; + align-items: center; + justify-content: flex-start; +} + +.zt-json-viewer__btns label { + display: block; + font-weight: bold; + padding-top: 1em; +} + +.zt-json-viewer__btns select { + font-size: 1em; +} + +.zt-json-viewer__btns button { + font-size: 1em; + margin-right: 5px; +} + +.zt-json-viewer__preview, +.zt-json-viewer__data { + border: 1px solid var(--background-modifier-border); + border-radius: 10px; + padding: 1em; + margin-top: 1em; +} + +.zt-json-viewer__preview.error { + background-color: #ff000011; + font-family: var(--font-monospace); +} + +.zt-json-viewer__preview pre { + overflow: auto; + white-space: pre-wrap; + margin: 0; +} + +.zt-json-viewer__preview pre, +.zt-json-viewer__preview code { + font-family: inherit; +} + +.zt-json-viewer__preview:not(.error) pre { + font-family: var(--font-text, --font-default, --default-font); + max-height: 70vh; + min-height: 400px; +} + +.zt-multiselect { + width: 300px; + text-align: left; +} + +.zt-multiselect input { + outline: none !important; + box-shadow: none !important; +} + +.zt-format__input-note { + font-style: italic; + font-size: 0.9em; + padding-top: 10px; + margin-bottom: 10px; +} + +.zt-setting-item pre, +.zt-format__input-note pre { + display: inline-block; + margin: 0; + padding: 0 6px; + background-color: var(--background-secondary-alt); + border-radius: 4px; +} + +.zt-asset-success { + text-align: left; + display: flex; +} + +.zt-asset-success__icon { + color: var(--interactive-success); + font-size: 24px; + margin-right: 5px; +} + +.zt-asset-success__icon svg { + width: 1em !important; + height: 1em !important; +} + +.zt-asset-success__message { + font-size: 0.9em; +} + +.zt-suggest-title { + font-size: var(--font-ui-small); + color: var(--text-muted); + display: block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + padding-top: var(--size-4-1); +} + +.zt-suggest-loading-wrapper { + display: flex; + position: relative; + align-items: center; + justify-content: center; + padding: var(--size-4-2) 0; +} + +.zt-suggest-loading, +.zt-suggest-loading:before, +.zt-suggest-loading:after { + border-radius: 999px; + width: 1em; + height: 1em; + animation-fill-mode: both; + animation: bblFadInOut 1.6s infinite ease-in-out; +} + +.zt-suggest-loading { + display: block; + color: var(--text-muted); + font-size: 7px; + position: relative; + animation-delay: -0.16s; + top: -1em; +} +.zt-suggest-loading:before, +.zt-suggest-loading:after { + content: ''; + position: absolute; +} +.zt-suggest-loading:before { + left: -2em; + animation-delay: -0.32s; +} +.zt-suggest-loading:after { + left: 2em; +} + +.zt-color-chip { + display: inline-block; + width: 1em; + height: 1em; + border: 1px solid var(--background-modifier-border); + border-radius: var(--radius-s); + margin-right: var(--size-4-1); +} + +@keyframes bblFadInOut { + 0%, + 80%, + 100% { + box-shadow: 0 1em 0 -1.3em; + } + 40% { + box-shadow: 0 1em 0 0; + } +} diff --git a/.obsidian/plugins/rss-reader/data.json b/.obsidian/plugins/rss-reader/data.json index 869a17bf..a74278d7 100644 --- a/.obsidian/plugins/rss-reader/data.json +++ b/.obsidian/plugins/rss-reader/data.json @@ -68,7 +68,7 @@ { "title": "The Story Continues: Announcing Version 14 of Wolfram Language and Mathematica", "description": "\"\"Version 14.0 of Wolfram Language and Mathematica is available immediately both on the desktop and in the cloud. See also more detailed information on Version 13.1, Version 13.2 and Version 13.3. Building Something Greater and Greater… for 35 Years and Counting Today we celebrate a new waypoint on our journey of nearly four decades with […]", - "content": "\"\"

    Version 14.0 of Wolfram Language and Mathematica is available immediately both on the desktop and in the cloud. See also more detailed information on Version 13.1, Version 13.2 and Version 13.3.

    \n

    Building Something Greater and Greater… for 35 Years and Counting

    \n

    Today we celebrate a new waypoint on our journey of nearly four decades with the release of Version 14.0 of Wolfram Language and Mathematica. Over the two years since we released Version 13.0 we’ve been steadily delivering the fruits of our research and development in .1 releases every six months. Today we’re aggregating these—and more—into Version 14.0.

    \n

    It’s been more than 35 years now since we released Version 1.0. And all those years we’ve been continuing to build a taller and taller tower of capabilities, progressively expanding the scope of our vision and the breadth of our computational coverage of the world:

    \n

    Number of built-in fuctions

    \n

    Version 1.0 had 554 built-in functions; in Version 14.0 there are 6602. And behind each of those functions is a story. Sometimes it’s a story of creating a superalgorithm that encapsulates decades of algorithmic development. Sometimes it’s a story of painstakingly curating data that’s never been assembled before. Sometimes it’s a story of drilling down to the essence of something to invent new approaches and new functions that can capture it.

    \n

    And from all these pieces we’ve been steadily building the coherent whole that is today’s Wolfram Language. In the arc of intellectual history it defines a broad, new, computational paradigm for formalizing the world. And at a practical level it provides a superpower for implementing computational thinking—and enabling “computational X” for all fields X.

    \n

    To us it’s profoundly satisfying to see what has been done over the past three decades with everything we’ve built so far. So many discoveries, so many inventions, so much achieved, so much learned. And seeing this helps drive forward our efforts to tackle still more, and to continue to push every boundary we can with our R&D, and to deliver the results in new versions of our system.

    \n

    Our R&D portfolio is broad. From projects that get completed within months of their conception, to projects that rely on years (and sometimes even decades) of systematic development. And key to everything we do is leveraging what we have already done—often taking what in earlier years was a pinnacle of technical achievement, and now using it as a routine building block to reach a level that could barely even be imagined before. And beyond practical technology, we’re also continually going further and further in leveraging what’s now the vast conceptual framework that we’ve been building all these years—and progressively encapsulating it in the design of the Wolfram Language.

    \n

    We’ve worked hard all these years not only to create ideas and technology, but also to craft a practical and sustainable ecosystem in which we can systematically do this now and into the long-term future. And we continue to innovate in these areas, broadening the delivery of what we’ve built in new and different ways, and through new and different channels. And in the past five years we’ve also been able to open up our core design process to the world—regularly livestreaming what we’re doing in a uniquely open way.

    \n

    And indeed over the past several years the seeds of essentially everything we’re delivering today in Version 14.0 has been openly shared with the world, and represents an achievement not only for our internal teams but also for the many people who have participated in and commented on our livestreams.

    \n

    Part of what Version 14.0 is about is continuing to expand the domain of our computational language, and our computational formalization of the world. But Version 14.0 is also about streamlining and polishing the functionality we’ve already defined. Throughout the system there are things we’ve made more efficient, more robust and more convenient. And, yes, in complex software, bugs of many kinds are a theoretical and practical inevitability. And in Version 14.0 we’ve fixed nearly 10,000 bugs, the majority found by our increasingly sophisticated internal software testing methods.

    \n

    Now We Need to Tell the World

    \n

    Even after all the work we’ve put into the Wolfram Language over the past several decades, there’s still yet another challenge: how to let people know just what the Wolfram Language can do. Back when we released Version 1.0 I was able to write a book of manageable size that could pretty much explain the whole system. But for Version 14.0—with all the functionality it contains—one would need a book with perhaps 200,000 pages.

    \n

    And at this point nobody (even me!) immediately knows everything the Wolfram Language does. Of course one of our great achievements has been to maintain across all that functionality a tightly coherent and consistent design that results in there ultimately being only a small set of fundamental principles to learn. But at the vast scale of the Wolfram Language as it exists today, knowing what’s possible—and what can now be formulated in computational terms—is inevitably very challenging. And all too often when I show people what’s possible, I’ll get the response “I had no idea the Wolfram Language could do that!”

    \n

    So in the past few years we’ve put increasing emphasis into building large-scale mechanisms to explain the Wolfram Language to people. It begins at a very fine-grained level, with “just-in-time information” provided, for example, through suggestions made when you type. Then for each function (or other construct in the language) there are pages that explain the function, with extensive examples. And now, increasingly, we’re adding “just-in-time learning material” that leverages the concreteness of the functions to provide self-contained explanations of the broader context of what they do.

    \n

    By the way, in modern times we need to explain the Wolfram Language not just to humans, but also to AIs—and our very extensive documentation and examples have proved extremely valuable in training LLMs to use the Wolfram Language. And for AIs we’re providing a variety of tools—like immediate computable access to documentation, and computable error handling. And with our Chat Notebook technology there’s also a new “on ramp” for creating Wolfram Language code from linguistic (or visual, etc.) input.

    \n

    But what about the bigger picture of the Wolfram Language? For both people and AIs it’s important to be able to explain things at a higher level, and we’ve been doing more and more in this direction. For more than 30 years we’ve had “guide pages” that summarize specific functionality in particular areas. Now we’re adding “core area pages” that give a broader picture of large areas of functionality—each one in effect covering what might otherwise be a whole product on its own, if it wasn’t just an integrated part of the Wolfram Language:

    \n

    Core area pages

    \n

    But we’re going even much further, building whole courses and books that provide modern hands-on Wolfram-Language-enabled introductions to a broad range of areas. We’ve now covered the material of many standard college courses (and quite a lot besides), in a new and very effective “computational” way, that allows immediate, practical engagement with concepts:

    \n

    Wolfram U courses

    \n

    All these courses involve not only lectures and notebooks but also auto-graded exercises, as well as official certifications. And we have a regular calendar of everyone-gets-together-at-the-same-time instructor-led peer Study Groups about these courses. And, yes, our Wolfram U operation is now emerging as a significant educational entity, with many thousands of students at any given time.

    \n

    In addition to whole courses, we have “miniseries” of lectures about specific topics:

    \n

    Miniseries video lectures

    \n

    And we also have courses—and books—about the Wolfram Language itself, like my Elementary Introduction to the Wolfram Language, which came out in a third edition this year (and has an associated course, online version, etc.):

    \n

    Elementary Introduction to the Wolfram Language

    \n

    In a somewhat different direction, we’ve expanded our Wolfram Summer School to add a Wolfram Winter School, and we’ve greatly expanded our our Wolfram High School
    \nSummer Research Program
    , adding year-round programs, middle-school programs, etc.—including the new “Computational Adventures” weekly activity program.

    \n

    And then there’s livestreaming. We’ve been doing weekly “R&D livestreams” with our development team (and sometimes also external guests). And I myself have also been doing a lot of livestreaming (232 hours of it in 2023 alone)—some of it design reviews of Wolfram Language functionality, and some of it answering questions, technical and other.

    \n

    The list of ways we’re getting the word out about the Wolfram Language goes on. There’s Wolfram Community, that’s full of interesting contributions, and has ever-increasing readership. There are sites like Wolfram Challenges. There are our Wolfram Technology Conferences. And lots more.

    \n

    We’ve put immense effort into building the whole Wolfram technology stack over the past four decades. And even as we continue to aggressively build it, we’re putting more and more effort into telling the world about just what’s in it, and helping people (and AIs) to make the most effective use of it. But in a sense, everything we’re doing is just a seed for what the wider community of Wolfram Language users are doing, and can do. Spreading the power of the Wolfram Language to more and more people and areas.

    \n

    The LLMs Have Landed

    \n

    The machine learning superfunctions Classify and Predict first appeared in Wolfram Language in 2014 (Version 10). By the next year there were starting to be functions like ImageIdentify and LanguageIdentify, and within a couple of years we’d introduced our whole neural net framework and Neural Net Repository. Included in that were a variety of neural nets for language modeling, that allowed us to build out functions like SpeechRecognize and an experimental version of FindTextualAnswer. But—like everyone else—we were taken by surprise at the end of 2022 by ChatGPT and its remarkable capabilities.

    \n

    Very quickly we realized that a major new use case—and market—had arrived for Wolfram|Alpha and Wolfram Language. For now it was not only humans who’d need the tools we’d built; it was also AIs. By March 2023 we’d worked with OpenAI to use our Wolfram Cloud technology to deliver a plugin to ChatGPT that allows it to call Wolfram|Alpha and Wolfram Language. LLMs like ChatGPT provide remarkable new capabilities in reproducing human language, basic human thinking and general commonsense knowledge. But—like unaided humans—they’re not set up to deal with detailed computation or precise knowledge. For that, like humans, they have to use formalism and tools. And the remarkable thing is that the formalism and tools we’ve built in Wolfram Language (and Wolfram|Alpha) are basically a broad, perfect fit for what they need.

    \n

    We created the Wolfram Language to provide a bridge from what humans think about to what computation can express and implement. And now that’s what the AIs can use as well. The Wolfram Language provides a medium not only for humans to “think computationally” but also for AIs to do so. And we’ve been steadily doing the engineering to let AIs call on Wolfram Language as easily as possible.

    \n

    But in addition to LLMs using Wolfram Language, there’s also now the possibility of Wolfram Language using LLMs. And already in June 2023 (Version 13.3) we released a major collection of LLM-based capabilities in Wolfram Language. One category is LLM functions, that effectively use LLMs as “internal algorithms” for operations in Wolfram Language:

    \n
    \n
    \n

    \n

    In typical Wolfram Language fashion, we have a symbolic representation for LLMs: LLMConfiguration[] represents an LLM with its various parameters, promptings, etc. And in the past few months we’ve been steadily adding connections to the full range of popular LLMs, making Wolfram Language a unique hub not only for LLM usage, but also for studying the performance—and science—of LLMs.

    \n

    You can define your own LLM functions in Wolfram Language. But there’s also the Wolfram Prompt Repository that plays a similar role for LLM functions as the Wolfram Function Repository does for ordinary Wolfram Language functions. There’s a public Prompt Repository that so far has several hundred curated prompts. But it’s also possible for anyone to post their prompts in the Wolfram Cloud and make them publicly (or privately) accessible. The prompts can define personas (“talk like a [stereotypical] pirate”). They can define AI-oriented functions (“write it with emoji”). And they can define modifiers that affect the form of output (“haiku style”).

    \n

    Wolfram Prompt Repository

    \n

    In addition to calling LLMs “programmatically” within Wolfram Language, there’s the new concept (first introduced in Version 13.3) of “Chat Notebooks”. Chat Notebooks represent a new kind of user interface, that combines the graphical, computational and document features of traditional Wolfram Notebooks with the new linguistic interface capabilities brought to us by LLMs.

    \n

    The basic idea of a Chat Notebook—as introduced in Version 13.3, and now extended in Version 14.0—is that you can have “chat cells” (requested by typing ) whose content gets sent not to the Wolfram kernel, but instead to an LLM:

    \n

    Write a haiku about a crocodile on the moon

    \n

    You can use “function prompts”—say from the Wolfram Prompt Repository—directly in a Chat Notebook:

    \n

    A cat ate my lunch

    \n

    And as of Version 14.0 you can also knit Wolfram Language computations directly into your “conversation” with the LLM:

    \n

    Make a haiku from RandomWord

    \n

    (You type \\ to insert Wolfram Language, very much like the way you can use <**> to insert Wolfram Language into external evaluation cells.)

    \n

    One thing about Chat Notebooks is that—as their name suggests—they really are centered around “chatting”, and around having a sequential interaction with an LLM. In an ordinary notebook, it doesn’t matter where in the notebook each Wolfram Language evaluation is requested; all that’s relevant is the order in which the Wolfram kernel does the evaluations. But in a Chat Notebook the “LLM evaluations” are always part of a “chat” that’s explicitly laid out in the notebook.

    \n

    A key part of Chat Notebooks is the concept of a chat block: type ~ and you get a separator in the notebook that “starts a new chat”:

    \n

    My name is Stephen

    \n

    Chat Notebooks—with all their typical Wolfram Notebook editing, structuring, automation, etc. capabilities—are very powerful just as “LLM interfaces”. But there’s another dimension as well, enabled by LLMs being able to call Wolfram Language as a tool.

    \n

    At one level, Chat Notebooks provide an “on ramp” for using Wolfram Language. Wolfram|Alpha—and even more so, Wolfram|Alpha Notebook Edition—let you ask questions in natural language, then have the questions translated into Wolfram Language, and answers computed. But in Chat Notebooks you can go beyond asking specific questions. Instead, through the LLM, you can just “start chatting” about what you want to do, then have Wolfram Language code generated, and executed:

    \n

    How do you make a rosette with 5 lobes?

    \n

    The workflow is typically as follows. First, you have to conceptualize in computational terms what you want. (And, yes, that step requires computational thinking—which is a very important skill that too few people have so far learned.) Then you tell the LLM what you want, and it’ll try to write Wolfram Language code to achieve it. It’ll typically run the code for you (but you can also always do it yourself)—and you can see whether you got what you wanted. But what’s crucial is that Wolfram Language is intended to be read not only by computers but also by humans. And particularly since LLMs actually usually seem to manage to write pretty good Wolfram Language code, you can expect to read what they wrote, and see if it’s what you wanted. If it is, you can take that code, and use it as a “solid building block” for whatever larger system you might be trying to set up. Otherwise, you can either fix it yourself, or try chatting with the LLM to get it to do it.

    \n

    One of the things we see in the example above is the LLM—within the Chat Notebook—making a “tool call”, here to a Wolfram Language evaluator. In the Wolfram Language there’s now a whole mechanism for defining tools for LLMs—with each tool being represented by an LLMTool symbolic object. In Version 14.0 there’s an experimental version of the new Wolfram LLM Tool Repository with some predefined tools:

    \n

    Wolfram LLM Tool Repository

    \n

    In a default Chat Notebook, the LLM has access to some default tools, which include not only the Wolfram Language evaluator, but also things like Wolfram documentation search and Wolfram|Alpha query. And it’s common to see the LLM go back and forth trying to write “code that works”, and for example sometimes having to “resort” (much like humans do) to reading the documentation.

    \n

    Something that’s new in Version 14.0 is experimental access to multimodal LLMs that can take images as well as text as input. And when this capability is enabled, it allows the LLM to “look at pictures from the code it generated”, see if they’re what was asked for, and potentially correct itself:

    \n

    Create graphics with a randomly colored disc

    \n

    The deep integration of images into Wolfram Language—and Wolfram Notebooks—yields all sorts of possibilities for multimodal LLMs. Here we’re giving a plot as an image and asking the LLM how to reproduce it:

    \n

    Create a similar plot

    \n

    Another direction for multimodal LLMs is to take data (in the hundreds of formats accepted by Wolfram Language) and use the LLM to guide its visualization and analysis in the Wolfram Language. Here’s an example that starts from a file data.csv in the current directory on your computer:

    \n

    Look at the file data.csv

    \n

    One thing that’s very nice about using Wolfram Language directly is that everything you do (well, unless you use RandomInteger, etc.) is completely reproducible; do the same computation twice and you’ll get the same result. That’s not true with LLMs (at least right now). And so when one uses LLMs it feels like something more ephemeral and fleeting than using Wolfram Language. One has to grab any good results one gets—because one might never be able to reproduce them. Yes, it’s very helpful that one can store everything in a Chat Notebook, even if one can’t rerun it and get the same results. But the more “permanent” use of LLM results tends to be “offline”. Use an LLM “up front” to figure something out, then just use the result it gave.

    \n

    One unexpected application of LLMs for us has been in suggesting names of functions. With the LLM’s “experience” of what people talk about, it’s in a good position to suggest functions that people might find useful. And, yes, when it writes code it has a habit of hallucinating such functions. But in Version 14.0 we’ve actually added one function—DigitSum—that was suggested to us by LLMs. And in a similar vein, we can expect LLMs to be useful in making connections to external databases, functions, etc. The LLM “reads the documentation”, and tries to write Wolfram Language “glue” code—which then can be reviewed, checked, etc., and if it’s right, can be used henceforth.

    \n

    Then there’s data curation, which is a field that—through Wolfram|Alpha and many of our other efforts—we’ve become extremely expert at over the past couple of decades. How much can LLMs help with that? They certainly don’t “solve the whole problem”, but integrating them with the tools we already have has allowed us over the past year to speed up some of our data curation pipelines by factors of two or more.

    \n

    If we look at the whole stack of technology and content that’s in the modern Wolfram Language, the overwhelming majority of it isn’t helped by LLMs, and isn’t likely to be. But there are many—sometimes unexpected—corners where LLMs can dramatically improve heuristics or otherwise solve problems. And in Version 14.0 there are starting to be a wide variety of “LLM inside” functions.

    \n

    An example is TextSummarize, which is a function we’ve considered adding for many versions—but now, thanks to LLMs, can finally implement to a useful level:

    \n
    \n
    \n

    \n

    The main LLMs that we’re using right now are based on external services. But we’re building capabilities to allow us to run LLMs in local Wolfram Language installations as soon as that’s technically feasible. And one capability that’s actually part of our mainline machine learning effort is NetExternalObject—a way of representing symbolically an externally defined neural net that can be run inside Wolfram Language. NetExternalObject allows you, for example, to take any network in ONNX form and effectively treat it as a component in a Wolfram Language neural net. Here’s a network for image depth estimation—that we’re here importing from an external repository (though in this case there’s actually a similar network already in the Wolfram Neural Net Repository):

    \n
    \n
    \n

    \n

    Now we can apply this imported network to an image that’s been encoded with our built-in image encoder—then we’re taking the result and visualizing it:

    \n
    \n
    \n

    \n

    It’s often very convenient to be able to run networks locally, but it can sometimes take quite high-end hardware to do so. For example, there’s now a function in the Wolfram Function Repository that does image synthesis entirely locally—but to run it, you do need a GPU with at least 8 GB of VRAM:

    \n
    \n
    \n

    \n

    By the way, based on LLM principles (and ideas like transformers) there’ve been other related advances in machine learning that have been strengthening a whole range of Wolfram Language areas—with one example being image segmentation, where ImageSegmentationComponents now provides robust “content-sensitive” segmentation:

    \n
    \n
    \n

    \n

    Still Going Strong on Calculus

    \n

    When Mathematica 1.0 was released in 1988, it was a “wow” that, yes, now one could routinely do integrals symbolically by computer. And it wasn’t long before we got to the point—first with indefinite integrals, and later with definite integrals—where what’s now the Wolfram Language could do integrals better than any human. So did that mean we were “finished” with calculus? Well, no. First there were differential equations, and partial differential equations. And it took a decade to get symbolic ODEs to a beyond-human level. And with symbolic PDEs it took until just a few years ago. Somewhere along the way we built out discrete calculus, asymptotic expansions and integral transforms. And we also implemented lots of specific features needed for applications like statistics, probability, signal processing and control theory. But even now there are still frontiers.

    \n

    And in Version 14 there are significant advances around calculus. One category concerns the structure of answers. Yes, one can have a formula that correctly represents the solution to a differential equation. But is it in the best, simplest or most useful form? Well, in Version 14 we’ve worked hard to make sure it is—often dramatically reducing the size of expressions that get generated.

    \n

    Another advance has to do with expanding the range of “pre-packaged” calculus operations. We’ve been able to do derivatives ever since Version 1.0. But in Version 14 we’ve added implicit differentiation. And, yes, one can give a basic definition for this easily enough using ordinary differentiation and equation solving. But by adding an explicit ImplicitD we’re packaging all that up—and handling the tricky corner cases—so that it becomes routine to use implicit differentiation wherever you want:

    \n
    \n
    \n

    \n

    Another category of pre-packaged calculus operations new in Version 14 are ones for vector-based integration. These were always possible to do in a “do-it-yourself” mode. But in Version 14 they are now streamlined built-in functions—that, by the way, also cover corner cases, etc. And what made them possible is actually a development in another area: our decade-long project to add geometric computation to Wolfram Language—which gave us a natural way to describe geometric constructs such as curves and surfaces:

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Related functionality new in Version 14 is ContourIntegrate:

    \n
    \n
    \n

    \n

    Functions like ContourIntegrate just “get the answer”. But if one’s learning or exploring calculus it’s often also useful to be able to do things in a more step-by-step way. In Version 14 you can start with an inactive integral

    \n
    \n
    \n

    \n

    and explicitly do operations like changing variables:

    \n
    \n
    \n

    \n

    Sometimes actual answers get expressed in inactive form, particularly as infinite sums:

    \n
    \n
    \n

    \n

    And now in Version 14 the function TruncateSum lets you take such a sum and generate a truncated “approximation”:

    \n
    \n
    \n

    \n

    Functions like D and Integrate—as well as LineIntegrate and SurfaceIntegrate—are, in a sense, “classic calculus”, taught and used for more than three centuries. But in Version 14 we also support what we can think of as “emerging” calculus operations, like fractional differentiation:

    \n
    \n
    \n

    \n

    Core Language

    \n

    What are the primitives from which we can best build our conception of computation? That’s at some level the question I’ve been asking for more than four decades, and what’s determined the functions and structures at the core of the Wolfram Language.

    \n

    And as the years go by, and we see more and more of what’s possible, we recognize and invent new primitives that will be useful. And, yes, the world—and the ways people interact with computers—change too, opening up new possibilities and bringing new understanding of things. Oh, and this year there are LLMs which can “get the intellectual sense of the world” and suggest new functions that can fit into the framework we’ve created with the Wolfram Language. (And, by the way, there’ve also been lots of great suggestions made by the audiences of our design review livestreams.)

    \n

    One new construct added in Version 13.1—and that I personally have found very useful—is Threaded. When a function is listable—as Plus is—the top levels of lists get combined:

    \n
    \n
    \n

    \n

    But sometimes you want one list to be “threaded into” the other at the lowest level, not the highest. And now there’s a way to specify that, using Threaded:

    \n
    \n
    \n

    \n

    In a sense, Threaded is part of a new wave of symbolic constructs that have “ambient effects” on lists. One very simple example (introduced in 2015) is Nothing:

    \n
    \n
    \n

    \n

    Another, introduced in 2020, is Splice:

    \n
    \n
    \n

    \n

    An old chestnut of Wolfram Language design concerns the way infinite evaluation loops are handled. And in Version 13.2 we introduced the symbolic construct TerminatedEvaluation to provide better definition of how out-of-control evaluations have been terminated:

    \n
    \n
    \n

    \n

    In a curious connection, in the computational representation of physics in our recent Physics Project, the direct analog of nonterminating evaluations are what make possible the seemingly unending universe in which we live.

    \n

    But what is actually going on “inside an evaluation”, terminating or not? I’ve always wanted a good representation of this. And in fact back in Version 2.0 we introduced Trace for this purpose:

    \n
    \n
    \n

    \n

    But just how much detail of what the evaluator does should one show? Back in Version 2.0 we introduced the option TraceOriginal that traces every path followed by the evaluator:

    \n
    \n
    \n

    \n

    But often this is way too much. And in Version 14.0 we’ve introduced the new setting TraceOriginalAutomatic, which doesn’t include in its output evaluations that don’t do anything:

    \n
    \n
    \n

    \n

    This may seem pedantic, but when one has an expression of any substantial size, it’s a crucial piece of pruning. So, for example, here’s a graphical representation of a simple arithmetic evaluation, with TraceOriginalTrue:

    \n
    \n
    \n

    \n

    And here’s the corresponding “pruned” version, with TraceOriginalAutomatic:

    \n
    \n
    \n

    \n

    (And, yes, the structures of these graphs are closely related to things like the causal graphs we construct in our Physics Project.)

    \n

    In the effort to add computational primitives to the Wolfram Language, two new entrants in Version 14.0 are Comap and ComapApply. The function Map takes a function f and “maps it” over a list:

    \n
    \n
    \n

    \n

    Comap does the “mathematically co-” version of this, taking a list of functions and “comapping” them onto a single argument:

    \n
    \n
    \n

    \n

    Why is this useful? As an example, one might want to apply three different statistical functions to a single list. And now it’s easy to do that, using Comap:

    \n
    \n
    \n

    \n

    By the way, as with Map, there’s also an operator form for Comap:

    \n
    \n
    \n

    \n

    Comap works well when the functions it’s dealing with take just one argument. If one has functions that take multiple arguments, ComapApply is what one typically wants:

    \n
    \n
    \n

    \n

    Talking of “co-like” functions, a new function added in Version 13.2 is PositionSmallest. Min gives the smallest element in a list; PositionSmallest instead says where the smallest elements are:

    \n
    \n
    \n

    \n

    One of the important objectives in the Wolfram Language is to have as much as possible “just work”. When we released Version 1.0 strings could be assumed just to contain ordinary ASCII characters, or perhaps to have an external character encoding defined. And, yes, it could be messy not to know “within the string itself” what characters were supposed to be there. And by the time of Version 3.0 in 1996 we’d become contributors to, and early adopters of, Unicode, which provided a standard encoding for “16-bits’-worth” of characters. And for many years this served us well. But in time—and particularly with the growth of emoji—16 bits wasn’t enough to encode all the characters people wanted to use. So a few years ago we began rolling out support for 32-bit Unicode, and in Version 13.1 we integrated it into notebooks—in effect making strings something much richer than before:

    \n
    \n
    \n

    \n

    And, yes, you can use Unicode everywhere now:

    \n
    \n
    \n

    \n

    Video as a Fundamental Object

    \n

    Back when Version 1.0 was released, a megabyte was a lot of memory. But 35 years later we routinely deal with gigabytes. And one of the things that makes practical is computation with video. We first introduced Video experimentally in Version 12.1 in 2020. And over the past three years we’ve been systematically broadening and strengthening our ability to deal with video in Wolfram Language. Probably the single most important advance is that things around video now—as much as possible—“just work”, without “creaking” under the strain of handling such large amounts of data.

    \n

    We can directly capture video into notebooks, and we can robustly play video anywhere within a notebook. We’ve also added options for where to store the video so that it’s conveniently accessible to you and anyone else you want to give access to it.

    \n

    There’s lots of complexity in the encoding of video—and we now robustly and transparently support more than 500 codecs. We also do lots of convenient things automatically, like rotating portrait-mode videos—and being able to apply image processing operations like ImageCrop across whole videos. In every version, we’ve been further optimizing the speed of some video operation or another.

    \n

    But a particularly big focus has been on video generators: programmatic ways to produce videos and animations. One basic example is AnimationVideo, which produces the same kind of output as Animate, but as a Video object that can either be displayed directly in a notebook, or exported in MP4 or some other format:

    \n

    AnimationVideo

    \n

    AnimationVideo is based on computing each frame in a video by evaluating an expression. Another class of video generators take an existing visual construct, and simply “tour” it. TourVideo “tours” images, graphics and geo graphics; Tour3DVideo (new in Version 14.0) tours 3D geometry:

    \n
    \n
    \n

    \n

    A very powerful capability in Wolfram Language is being able to apply arbitrary functions to videos. One example of how this can be done is VideoFrameMap, which maps a function across frames of a video, and which was made efficient in Version 13.2:

    \n
    \n
    \n

    \n

    And although Wolfram Language isn’t intended as an interactive video editing system, we’ve made sure that it’s possible to do streamlined programmatic video editing in the language, and for example in Version 14.0 we’ve added things like transition effects in VideoJoin and timed overlays in OverlayVideo.

    \n

    So Much Got Faster, Stronger, Sleeker

    \n

    With every new version of Wolfram Language we add new capabilities to extend yet further the domain of the language. But we also put a lot of effort into something less immediately visible: making existing capabilities faster, stronger and sleeker.

    \n

    And in Version 14 two areas where we can see some examples of all these are dates and quantities. We introduced the notion of symbolic dates (DateObject, etc.) nearly a decade ago. And over the years since then we’ve built many things on this structure. And in the process of doing this it’s become clear that there are certain flows and paths that are particularly common and convenient. At the beginning what mattered most was just to make sure that the relevant functionality existed. But over time we’ve been able to see what should be streamlined and optimized, and we’ve steadily been doing that.

    \n

    In addition, as we’ve worked towards new and different applications, we’ve seen “corners” that need to be filled in. So, for example, astronomy is an area we’ve significantly developed in Version 14, and supporting astronomy has required adding several new “high-precision” time capabilities, such as the TimeSystem option, as well as new astronomy-oriented calendar systems. Another example concerns date arithmetic. What should happen if you want to add a month to January 30? Where should you land? Different kinds of business applications and contracts make different assumptions—and so we added a Method option to functions like DatePlus to handle this. Meanwhile, having realized that date arithmetic is involved in the “inner loop” of certain computations, we optimized it—achieving a more than 100x speedup in Version 14.0.

    \n

    Wolfram|Alpha has been able to deal with units ever since it was first launched in 2009—now more than 10,000 of them. And in 2012 we introduced Quantity to represent quantities with units in the Wolfram Language. And over the past decade we’ve been steadily smoothing out a whole series of complicated gotchas and issues with units. For example, what does 100°C + 20°C mean? Well, the 20°C isn’t really the same kind of thing as the 100°C. And now in Wolfram Language we have a systematic way to handle this, by distinguishing temperature and temperature difference units—so that we now write 100°C + .

    \n

    At first our priority with Quantity was to get it working as broadly as possible, and to integrate it as widely as possible into computations, visualizations, etc. across the system. But as its capabilities have expanded, so have its uses, repeatedly driving the need to optimize its operation for particular common cases. And indeed between Version 13 and Version 14 we’ve dramatically sped up many things related to Quantity, often by factors of 1000 or more.

    \n

    Talking of speedups, another example—made possible by new algorithms operating on multithreaded CPUs—concerns polynomials. We’ve worked with polynomials in Wolfram Language since Version 1, but in Version 13.2 there was a dramatic speedup of up to 1000x on operations like polynomial factoring.

    \n

    In addition, a new algorithm in Version 14.0 dramatically speeds up numerical solutions to polynomial and transcendental equations—and, together with the new MaxRoots options, allows us, for example, to pick off a few roots from a degree-one-million polynomial

    \n
    \n
    \n

    \n

    or to find roots of a transcendental equation that we could not even attempt before without pre-specifying bounds on their values:

    \n
    \n
    \n

    \n

    Another “old” piece of functionality with recent enhancement concerns mathematical functions. Ever since Version 1.0 we’ve set up mathematical functions so that they can be computed to arbitrary precision:

    \n
    \n
    \n

    \n

    But in recent versions we’ve wanted to be “more precise about precision”, and to be able to rigorously compute just what range of outputs are possible given the range of values provided as input:

    \n
    \n
    \n

    \n

    But every function for which we do this effectively requires a new theorem, and we’ve been steadily increasing the number of functions covered—now more than 130—so that this “just works” when you need to use it in a computation.

    \n

    The Tree Story Continues

    \n

    Trees are useful. We first introduced them as basic objects in the Wolfram Language only in Version 12.3. But now that they’re there, we’re discovering more and more places they can be used. And to support that, we’ve been adding more and more capabilities to them.

    \n

    One area that’s advanced significantly since Version 13 is the rendering of trees. We tightened up the general graphic design, but, more importantly, we introduced many new options for how rendering should be done.

    \n

    For example, here’s a random tree where we’ve specified that for all nodes only 3 children should be explicitly displayed: the others are elided away:

    \n
    \n
    \n

    \n

    Here we’re adding several options to define the rendering of the tree:

    \n
    \n
    \n

    \n

    By default, the branches in trees are labeled with integers, just like parts in an expression. But in Version 13.1 we added support for named branches defined by associations:

    \n
    \n
    \n

    \n

    Our original conception of trees was very centered around having elements one would explicitly address, and that could have “payloads” attached. But what became clear is that there were applications where all that mattered was the structure of the tree, not anything about its elements. So we added UnlabeledTree to create “pure trees”:

    \n
    \n
    \n

    \n

    Trees are useful because many kinds of structures are basically trees. And since Version 13 we’ve added capabilities for converting trees to and from various kinds of structures. For example, here’s a simple Dataset object:

    \n
    \n
    \n

    \n

    You can use ExpressionTree to convert this to a tree:

    \n
    \n
    \n

    \n

    And TreeExpression to convert it back:

    \n
    \n
    \n

    \n

    We’ve also added capabilities for converting to and from JSON and XML, as well as for representing file directory structures as trees:

    \n
    \n
    \n

    \n

    Finite Fields

    \n

    In Version 1.0 we had integers, rational numbers and real numbers. In Version 3.0 we added algebraic numbers (represented implicitly by Root)—and a dozen years later we added algebraic number fields and transcendental roots. For Version 14 we’ve now added another (long-awaited) “number-related” construct: finite fields.

    \n

    Here’s our symbolic representation of the field of integers modulo 7:

    \n
    \n
    \n

    \n

    And now here’s a specific element of that field

    \n
    \n
    \n

    \n

    which we can immediately compute with:

    \n
    \n
    \n

    \n

    But what’s really important about what we’ve done with finite fields is that we’ve fully integrated them into other functions in the system. So, for example, we can factor a polynomial whose coefficients are in a finite field:

    \n
    \n
    \n

    \n

    We can also do things like find solutions to equations over finite fields. So here, for example, is a point on a Fermat curve over the finite field GF(173):

    \n
    \n
    \n

    \n

    And here is a power of a matrix with elements over the same finite field:

    \n
    \n
    \n

    \n

    Going Off Planet: The Astro Story

    \n

    A major new capability added since Version 13 is astro computation. It begins with being able to compute to high precision the positions of things like planets. Even knowing what one means by “position” is complicated, though—with lots of different coordinate systems to deal with. By default AstroPosition gives the position in the sky at the current time from your Here location:

    \n
    \n
    \n

    \n

    But one can instead ask about a different coordinate system, like global galactic coordinates:

    \n
    \n
    \n

    \n

    And now here’s a plot of the distance between Saturn and Jupiter over a 50-year period:

    \n
    \n
    \n

    \n

    In direct analogy to GeoGraphics, we’ve added AstroGraphics, here showing a patch of sky around the current position of Saturn:

    \n
    \n
    \n

    \n

    And this now shows the sequence of positions for Saturn over the course of a couple of years—yes, including retrograde motion:

    \n
    \n
    \n

    \n

    There are many styling options for AstroGraphics. Here we’re adding a background of the “galactic sky”:

    \n
    \n
    \n

    \n

    And here we’re including renderings for constellations (and, yes, we had an artist draw them):

    \n
    \n
    \n

    \n

    Something specifically new in Version 14.0 has to do with extended handling of solar eclipses. We always try to deliver new functionality as fast as we can. But in this case there was a very specific deadline: the total solar eclipse visible from the US on April 8, 2024. We’ve had the ability to do global computations about solar eclipses for some time (actually since soon before the 2017 eclipse). But now we can also do detailed local computations right in the Wolfram Language.

    \n

    So, for example, here’s a somewhat detailed overall map of the April 8, 2024 eclipse:

    \n
    \n
    \n

    \n

    Now here’s a plot of the magnitude of the eclipse over a few hours, complete with a little “rampart” associated with the period of totality:

    \n
    \n
    \n

    \n

    And here’s a map of the region of totality every minute just after the moment of maximum eclipse:

    \n
    \n
    \n

    \n

    Millions of Species Become Computable

    \n

    We first introduced computable data on biological organisms back when Wolfram|Alpha was released in 2009. But in Version 14—following several years of work—we’ve dramatically broadened and deepened the computable data we have about biological organisms.

    \n

    So for example here’s how we can figure out what species have cheetahs as predators:

    \n
    \n
    \n

    \n

    And here are pictures of these:

    \n
    \n
    \n

    \n

    Here’s a map of countries where cheetahs have been seen (in the wild):

    \n
    \n
    \n

    \n

    We now have data—curated from a great many sources—on more than a million species of animals, as well as most of the plants, fungi, bacteria, viruses and archaea that have been described. And for animals, for example, we have nearly 200 properties that are extensively filled in. Some are taxonomic properties:

    \n
    \n
    \n

    \n

    Some are physical properties:

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Some are genetic properties:

    \n
    \n
    \n

    \n

    Some are ecological properties (yes, the cheetah is not the apex predator):

    \n
    \n
    \n

    \n

    It’s useful to be able to get properties of individual species, but the real power of our curated computable data shows up when one does larger-scale analyses. Like here’s a plot of the lengths of genomes for organisms with the longest ones across our collection of organisms:

    \n
    \n
    \n

    \n

    Or here’s a histogram of the genome lengths for organisms in the human gut microbiome:

    \n
    \n
    \n

    \n

    And here’s a scatterplot of the lifespans of birds against their weights:

    \n
    \n
    \n

    \n

    Following the idea that cheetahs aren’t apex predators, this is a graph of what’s “above” them in the food chain:

    \n
    \n
    \n

    \n

    Chemical Computation

    \n

    We began the process of introducing chemical computation into the Wolfram Language in Version 12.0, and by Version 13 we had good coverage of atoms, molecules, bonds and functional groups. Now in Version 14 we’ve added coverage of chemical formulas, amounts of chemicals—and chemical reactions.

    \n

    Here’s a chemical formula, that basically just gives a “count of atoms”:

    \n
    \n
    \n

    \n

    Now here are specific molecules with that formula:

    \n
    \n
    \n

    \n

    Let’s pick one of these molecules:

    \n
    \n
    \n

    \n

    Now in Version 14 we have a way to represent a certain quantity of molecules of a given type—here 1 gram of methylcyclopentane:

    \n
    \n
    \n

    \n

    ChemicalConvert can convert to a different specification of quantity, here moles:

    \n
    \n
    \n

    \n

    And here a count of molecules:

    \n
    \n
    \n

    \n

    But now the bigger story is that in Version 14 we can represent not just individual types of molecules, and quantities of molecules, but also chemical reactions. Here we give a “sloppy” unbalanced representation of a reaction, and ReactionBalance gives us the balanced version:

    \n
    \n
    \n

    \n

    And now we can extract the formulas for the reactants:

    \n
    \n
    \n

    \n

    We can also give a chemical reaction in terms of molecules:

    \n
    \n
    \n

    \n

    But with our symbolic representation of molecules and reactions, there’s now a big thing we can do: represent classes of reactions as “pattern reactions”, and work with them using the same kinds of concepts as we use in working with patterns for general expressions. So, for example, here’s a symbolic representation of the hydrohalogenation reaction:

    \n
    \n
    \n

    \n

    Now we can apply this pattern reaction to particular molecules:

    \n
    \n
    \n

    \n

    Here’s a more elaborate example, in this case entered using a SMARTS string:

    \n
    \n
    \n

    \n

    Here we’re applying the reaction just once:

    \n
    \n
    \n

    \n

    And now we’re doing it repeatedly

    \n
    \n
    \n

    \n

    in this case generating longer and longer molecules (which in this case happen to be polypeptides):

    \n
    \n
    \n

    The Knowledgebase Is Always Growing

    \n

    Every minute of every day, new data is being added to the Wolfram Knowledgebase. Much of it is coming automatically from real-time feeds. But we also have a very large-scale ongoing curation effort with humans in the loop. We’ve built sophisticated (Wolfram Language) automation for our data curation pipeline over the years—and this year we’ve been able to increase efficiency in some areas by using LLM technology. But it’s hard to do curation right, and our long-term experience is that to do so ultimately requires human experts being in the loop, which we have.

    \n

    So what’s new since Version 13.0? 291,842 new notable current and historical people; 264,467 music works; 118,538 music albums; 104,024 named stars; and so on. Sometimes the addition of an entity is driven by the new availability of reliable data; often it’s driven by the need to use that entity in some other piece of functionality (e.g. stars to render in AstroGraphics). But more than just adding entities there’s the issue of filling in values of properties of existing entities. And here again we’re always making progress, sometimes integrating newly available large-scale secondary data sources, and sometimes doing direct curation ourselves from primary sources.

    \n

    A recent example where we needed to do direct curation was in data on alcoholic beverages. We have very extensive data on hundreds of thousands of types of foods and drinks. But none of our large-scale sources included data on alcoholic beverages. So that’s an area where we need to go to primary sources (in this case typically the original producers of products) and curate everything for ourselves.

    \n

    So, for example, we can now ask for something like the distribution of flavors of different varieties of vodka (actually, personally, not being a consumer of such things, I had no idea vodka even had flavors…):

    \n
    \n
    \n

    \n

    But beyond filling out entities and properties of existing types, we’ve also steadily been adding new entity types. One recent example is geological formations, 13,706 of them:

    \n
    \n
    \n

    \n

    So now, for example, we can specify where T. rex have been found

    \n
    \n
    \n

    \n

    and we can show those regions on a map:

    \n
    \n
    \n

    \n

    Industrial-Strength Multidomain PDEs

    \n

    PDEs are hard. It’s hard to solve them. And it’s hard to even specify what exactly you want to solve. But we’ve been on a multi-decade mission to “consumerize” PDEs and make them easier to work with. Many things go into this. You need to be able to easily specify elaborate geometries. You need to be able to easily define mathematically complicated boundary conditions. You need to have a streamlined way to set up the complicated equations that come out of underlying physics. Then you have to—as automatically as possible—do the sophisticated numerical analysis to efficiently solve the equations. But that’s not all. You also often need to visualize your solution, compute other things from it, or run optimizations of parameters over it.

    \n

    It’s a deep use of what we’ve built with Wolfram Language—touching many parts of the system. And the result is something unique: a truly streamlined and integrated way to handle PDEs. One’s not dealing with some (usually very expensive) “just for PDEs” package; what we now have is a “consumerized” way to handle PDEs whenever they’re needed—for engineering, science, or whatever. And, yes, being able to connect machine learning, or image computation, or curated data, or data science, or real-time sensor feeds, or parallel computing, or, for that matter, Wolfram Notebooks, to PDEs just makes them so much more valuable.

    \n

    We’ve had “basic, raw NDSolve” since 1991. But what’s taken decades to build is all the structure around that to let one conveniently set up—and efficiently solve—real-world PDEs, and connect them into everything else. It’s taken developing a whole tower of underlying algorithmic capabilities such as our more-flexible-and-integrated-than-ever-before industrial-strength computational geometry and finite element methods. But beyond that it’s taken creating a language for specifying real-world PDEs. And here the symbolic nature of the Wolfram Language—and our whole design framework—has made possible something very unique, that has allowed us to dramatically simplify and consumerize the use of PDEs.

    \n

    It’s all about providing symbolic “construction kits” for PDEs and their boundary conditions. We started this about five years ago, progressively covering more and more application areas. In Version 14 we’ve particularly focused on solid mechanics, fluid mechanics, electromagnetics and (one-particle) quantum mechanics.

    \n

    Here’s an example from solid mechanics. First, we define the variables we’re dealing with (displacement and underlying coordinates):

    \n
    \n
    \n

    \n

    Next, we specify the parameters we want to use to describe the solid material we’re going to work with:

    \n
    \n
    \n

    \n

    Now we can actually set up our PDE—using symbolic PDE specifications like SolidMechanicsPDEComponent—here for the deformation of a solid object pulled on one side:

    \n
    \n
    \n

    \n

    And, yes, “underneath”, these simple symbolic specifications turn into a complicated “raw” PDE:

    \n
    \n
    \n

    \n

    Now we are ready to actually solve our PDE in a particular region, i.e. for an object with a particular shape:

    \n
    \n
    \n

    \n

    And now we can visualize the result, which shows how our object stretches when it’s pulled on:

    \n
    \n
    \n

    \n

    The way we’ve set things up, the material for our object is an idealization of something like rubber. But in the Wolfram Language we now have ways to specify all sorts of detailed properties of materials. So, for example, we can add reinforcement as a unit vector in a particular direction (say in practice with fibers) to our material:

    \n
    \n
    \n

    \n

    Then we can rerun what we did before

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    but now we get a slightly different result:

    \n
    \n
    \n

    \n

    Another major PDE domain that’s new in Version 14.0 is fluid flow. Let’s do a 2D example. Our variables are 2D velocity and pressure:

    \n
    \n
    \n

    \n

    Now we can set up our fluid system in a particular region, with no-slip conditions on all walls except at the top where we assume fluid is flowing from left to right. The only parameter needed is the Reynolds number. And instead of just solving our PDEs for a single Reynolds number, let’s create a parametric solver that can take any specified Reynolds number:

    \n
    \n
    \n

    \n

    Now here’s the result for Reynolds number 100:

    \n
    \n
    \n

    \n

    But with the way we’ve set things up, we can as well generate a whole video as a function of Reynolds number (and, yes, the Parallelize speeds things up by generating different frames in parallel):

    \n
    \n

    \n
    \n

    \n

    Much of our work in PDEs involves catering to the complexities of real-world engineering situations. But in Version 14.0 we’re also adding features to support “pure physics”, and in particular to support quantum mechanics done with the Schrödinger equation. So here, for example, is the 2D 1-particle Schrödinger equation (with ):

    \n
    \n
    \n

    \n

    Here’s the region we’re going to be solving over—showing explicit discretization:

    \n
    \n
    \n

    \n

    Now we can solve the equation, adding in some boundary conditions:

    \n
    \n
    \n

    \n

    And now we get to visualize a Gaussian wave packet scattering around a barrier:

    \n
    \n
    \n

    \n

    Streamlining Systems Engineering Computation

    \n

    Systems engineering is a big field, but it’s one where the structure and capabilities of the Wolfram Language provide unique advantages—that over the past decade have allowed us to build out rather complete industrial-strength support for modeling, analysis and control design for a wide range of types of systems. It’s all an integrated part of the Wolfram Language, accessible through the computational and interface structure of the language. But it’s also integrated with our separate Wolfram System Modeler product, that provides a GUI-based workflow for system modeling and exploration.

    \n

    Shared with System Modeler are large collections of domain-specific modeling libraries. And, for example, since Version 13, we’ve added libraries in areas such as battery engineering, hydraulic engineering and aircraft engineering—as well as educational libraries for mechanical engineering, thermal engineering, digital electronics, and biology. (We’ve also added libraries for areas such as business and public policy simulation.)

    \n

    Domain-specific modeling libraries

    \n

    A typical workflow for systems engineering begins with the setting up of a model. The model can be built from scratch, or assembled from components in model libraries—either visually in Wolfram System Modeler, or programmatically in the Wolfram Language. For example, here’s a model of an electric motor that’s turning a load through a flexible shaft:

    \n
    \n
    \n

    \n

    Once one’s got a model, one can then simulate it. Here’s an example where we’ve set one parameter of our model (the moment of inertia of the load), and we’re computing the values of two others as a function of time:

    \n
    \n
    \n

    \n

    A new capability in Version 14.0 is being able to see the effect of uncertainty in parameters (or initial values, etc.) on the behavior of a system. So here, as an example, we’re saying the value of the parameter is not definite, but is instead distributed according to a normal distribution—then we’re seeing the distribution of output results:

    \n
    \n
    \n

    \n

    The motor with flexible shaft that we’re looking at can be thought of as a “multidomain system”, combining electrical and mechanical components. But the Wolfram Language (and Wolfram System Modeler) can also handle “mixed systems”, combining analog and digital (i.e. continuous and discrete) components. Here’s a fairly sophisticated example from the world of control systems: a helicopter model connected in a closed loop to a digital control system:

    \n

    Helicopter model

    \n

    This whole model system can be represented symbolically just by:

    \n
    \n
    \n

    \n

    And now we compute the input-output response of the model:

    \n
    \n
    \n

    \n

    Here’s specifically the output response:

    \n
    \n
    \n

    \n

    But now we can “drill in” and see specific subsystem responses, here of the zero-order hold device (labeled ZOH above)—complete with its little digital steps:

    \n
    \n
    \n

    \n

    But what if we want to design the control systems ourselves? Well, in Version 14 we can now apply all our Wolfram Language control systems design functionality to arbitrary system models. Here’s an example of a simple model, in this case in chemical engineering (a continuously stirred tank):

    \n
    \n
    \n

    \n

    Now we can take this model and design an LQG controller for it—then assemble a whole closed-loop system for it:

    \n
    \n
    \n

    \n

    Now we can simulate the closed-loop system—and see that the controller succeeds in bringing the final value to 0:

    \n
    \n
    \n

    \n

    Graphics: More Beautiful & Alive

    \n

    Graphics have always been an important part of the story of the Wolfram Language, and for more than three decades we’ve been progressively enhancing and updating their appearance and functionality—sometimes with help from advances in hardware (e.g. GPU) capabilities.

    \n

    Since Version 13 we’ve added a variety of “decorative” (or “annotative”) effects in 2D graphics. One example (useful for putting captions on things) is Haloing:

    \n
    \n
    \n

    \n

    Another example is DropShadowing:

    \n
    \n
    \n

    \n

    All of these are specified symbolically, and can be used throughout the system (e.g. in hover effects, etc). And, yes, there are many detailed parameters you can set:

    \n
    \n
    \n

    \n

    A significant new capability in Version 14.0 is convenient texture mapping. We’ve had low-level polygon-by-polygon textures for a decade and a half. But now in Version 14.0 we’ve made it straightforward to map textures onto whole surfaces. Here’s an example wrapping a texture onto a sphere:

    \n
    \n
    \n

    \n

    And here’s wrapping the same texture onto a more complicated surface:

    \n
    \n
    \n

    \n

    A significant subtlety is that there are many ways to map what amount to “texture coordinate patches” onto surfaces. The documentation illustrates new, named cases:

    \n

    Texture coordinate patches

    \n

    And now here’s what happens with stereographic projection onto a sphere:

    \n
    \n
    \n

    \n

    Here’s an example of “surface texture” for the planet Venus

    \n
    \n
    \n

    \n

    and here it’s been mapped onto a sphere, which can be rotated:

    \n
    \n
    \n

    \n

    Here’s a “flowerified” bunny:

    \n
    \n
    \n

    \n

    Things like texture mapping help make graphics visually compelling. Since Version 13 we’ve also added a variety of “live visualization” capabilities that automatically “bring visualizations to life”. For example, any plot now by default has a “coordinate mouseover”:

    \n
    \n
    \n

    \n

    As usual, there’s lots of ways to control such “highlighting” effects:

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Euclid Redux: The Advance of Synthetic Geometry

    \n

    One might say it’s been two thousand years in the making. But four years ago (Version 12) we began to introduce a computable version of Euclid-style synthetic geometry.

    \n

    The idea is to specify geometric scenes symbolically by giving a collection of (potentially implicit) constraints:

    \n
    \n
    \n

    \n

    We can then generate a random instance of geometry consistent with the constraints—and in Version 14 we’ve considerably enhanced our ability to make sure that geometry will be “typical” and non-degenerate:

    \n
    \n
    \n

    \n

    But now a new feature of Version 14 is that we can find values of geometric quantities that are determined by the constraints:

    \n
    \n
    \n

    \n

    Here’s a slightly more complicated case:

    \n
    \n
    \n

    \n

    And here we’re now solving for the areas of two triangles in the figure:

    \n
    \n
    \n

    \n

    We’ve always been able to give explicit styles for particular elements of a scene:

    \n
    \n
    \n

    \n

    Now one of the new features in Version 14 is being able to give general “geometric styling rules”, here just assigning random colors to each element:

    \n
    \n
    \n

    \n

    The Ever-Smoother User Interface

    \n

    Our goal with Wolfram Language is to make it as easy as possible to express oneself computationally. And a big part of achieving that is the coherent design of the language itself. But there’s another part as well, which is being able to actually enter Wolfram Language input one wants—say in a notebook—as easily as possible. And with every new version we make enhancements to this.

    \n

    One area that’s been in continuous development is interactive syntax highlighting. We first added syntax highlighting nearly two decades ago—and over time we’ve progressively made it more and more sophisticated, responding both as you type, and as code gets executed. Some highlighting has always had obvious meaning. But particularly highlighting that is dynamic and based on cursor position has sometimes been harder to interpret. And in Version 14—leveraging the brighter color palettes that have become the norm in recent years—we’ve tuned our dynamic highlighting so it’s easier to quickly tell “where you are” within the structure of an expression:

    \n

    Dynamic highlighting

    \n

    On the subject of “knowing what one has”, another enhancement—added in Version 13.2—is differentiated frame coloring for different kinds of visual objects in notebooks. Is that thing one has a graphic? Or an image? Or a graph? Now one can tell from the color of frame when one selects it:

    \n

    Differentiated frame coloring

    \n

    An important aspect of the Wolfram Language is that the names of built-in functions are spelled out enough that it’s easy to tell what they do. But often the names are therefore necessarily quite long, and so it’s important to be able to autocomplete them when one’s typing. In 13.3 we added the notion of “fuzzy autocompletion” that not only “completes to the end” a name one’s typing, but also can fill in intermediate letters, change capitalization, etc. Thus, for example, just typing lll brings up an autocompletion menu that begins with ListLogLogPlot:

    \n

    \n

    A major user interface update that first appeared in Version 13.1—and has been enhanced in subsequent versions—is a default toolbar for every notebook:

    \n

    Default toolbar

    \n

    The toolbar provides immediate access to evaluation controls, cell formatting and various kinds of input (like inline cells, , hyperlinks, drawing canvas, etc.)—as well as to things like Menu options cloud publishing, Menu options documentation search and Menu options “chat” (i.e. LLM) settings.

    \n

    Much of the time, it’s useful to have the toolbar displayed in any notebook you’re working with. But on the left-hand side there’s a little tiny that lets you minimize the toolbar:

    \n

    Minimize toolbar

    \n

    In 14.0 there’s a Preferences setting that makes the toolbar come up minimized in any new notebook you create—and this in effect gives you the best of both worlds: you have immediate access to the toolbar, but your notebooks don’t have anything “extra” that might distract from their content.

    \n

    Another thing that’s advanced since Version 13 is the handling of “summary” forms of output in notebooks. A basic example is what happens if you generate a very large result. By default only a summary of the result is actually displayed. But now there’s a bar at the bottom that gives various options for how to handle the actual output:

    \n
    \n
    \n

    \n

    By default, the output is only stored in your current kernel session. But by pressing the Iconize button you get an iconized form that will appear directly in your notebook (or one that can be copied anywhere) and that “has the whole output inside”. There’s also a Store full expression in notebook button, which will “invisibly” store the output expression “behind” the summary display.

    \n

    If the expression is stored in the notebook, then it’ll be persistent across kernel sessions. Otherwise, well, you won’t be able to get to it in a different kernel session; the only thing you’ll have is the summary display:

    \n

    Summary display

    \n

    It’s a similar story for large “computational objects”. Like here’s a Nearest function with a million data points:

    \n
    \n
    \n

    \n

    By default, the data is just something that exists in your current kernel session. But now there’s a menu that lets you save the data in various persistent locations:

    \n

    Save data menu

    \n

    And There’s the Cloud Too

    \n

    There are many ways to run the Wolfram Language. Even in Version 1.0 we had the notion of remote kernels: the notebook front end running on one machine (in those days essentially always a Mac, or a NeXT), and the kernel running on a different machine (in those days sometimes even connected by phone lines). But a decade ago came a major step forward: the Wolfram Cloud.

    \n

    There are really two distinct ways in which the cloud is used. The first is in delivering a notebook experience similar to our longtime desktop experience, but running purely in a browser. And the second is in delivering APIs and other programmatically accessed capabilities—notably, even at the beginning, a decade ago, through things like APIFunction.

    \n

    The Wolfram Cloud has been the target of intense development now for nearly 15 years. Alongside it have also come Wolfram Application Server and Wolfram Web Engine, which provide more streamlined support specifically for APIs (without things like user management, etc., but with things like clustering).

    \n

    All of these—but particularly the Wolfram Cloud—have become core technology capabilities for us, supporting many of our other activities. So, for example, the Wolfram Function Repository and Wolfram Paclet Repository are both based on the Wolfram Cloud (and in fact this is true of our whole resource system). And when we came to build the Wolfram plugin for ChatGPT earlier this year, using the Wolfram Cloud allowed us to have the plugin deployed within a matter of days.

    \n

    Since Version 13 there have been quite a few very different applications of the Wolfram Cloud. One is for the function ARPublish, which takes 3D geometry and puts it in the Wolfram Cloud with appropriate metadata to allow phones to get augmented-reality versions from a QR code of a cloud URL:

    \n
    \n
    \n

    \n

    Augmented reality triptych

    \n

    On the Cloud Notebook side, there’s been a steady increase in usage, notably of embedded Cloud Notebooks, which have for example become common on Wolfram Community, and are used all over the Wolfram Demonstrations Project. Our goal all along has been to make Cloud Notebooks be as easy to use as simple webpages, but to have the depth of capabilities that we’ve developed in notebooks over the past 35 years. We achieved this some years ago for fairly small notebooks, but in the past couple of years we’ve been going progressively further in handling even multi-hundred-megabyte notebooks. It’s a complicated story of caching, refreshing—and dodging the vicissitudes of web browsers. But at this point the vast majority of notebooks can be seamlessly deployed to the cloud, and will display as immediately as simple webpages.

    \n

    The Great Integration Story for External Code

    \n

    It’s been possible to call external code from Wolfram Language ever since Version 1.0. But in Version 14 there are important advances in the extent and ease with which external code can be integrated. The overall goal is to be able to use all the power and coherence of the Wolfram Language even when some part of a computation is done in external code. And in Version 14 we’ve done a lot to streamline and automate the process by which external code can be integrated into the language.

    \n

    Once something is integrated into the Wolfram Language it just becomes, for example, a function that can be used just like any other Wolfram Language function. But what’s underneath is necessarily quite different for different kinds of external code. There’s one setup for interpreted languages like Python. There’s another for C-like compiled languages and dynamic libraries. (And then there are others for external processes, APIs, and what amount to “importable code specifications”, say for neural networks.)

    \n

    Let’s start with Python. We’ve had ExternalEvaluate for evaluating Python code since 2018. But when you actually come to use Python there are all these dependencies and libraries to deal with. And, yes, that’s one of the places where the incredible advantages of the Wolfram Language and its coherent design are painfully evident. But in Version 14.0 we now have a way to encapsulate all that Python complexity, so that we can deliver Python functionality within Wolfram Language, hiding all the messiness of Python dependencies, and even the versioning of Python itself.

    \n

    As an example, let’s say we want to make a Wolfram Language function Emojize that uses the Python function emojize within the emoji Python library. Here’s how we can do that:

    \n
    \n
    \n

    \n

    And now you can just call Emojize in the Wolfram Language and—under the hood—it’ll run Python code:

    \n
    \n
    \n

    \n

    The way this works is that the first time you call Emojize, a Python environment with all the right features is created, then is cached for subsequent uses. And what’s important is that the Wolfram Language specification of Emojize is completely system independent (or as system independent as it can be, given vicissitudes of Python implementations). So that means that you can, for example, deploy Emojize in the Wolfram Function Repository just like you would deploy something written purely in Wolfram Language.

    \n

    There’s very different engineering involved in calling C-compatible functions in dynamic libraries. But in Version 13.3 we also made this very streamlined using the function ForeignFunctionLoad. There’s all sorts of complexity associated with converting to and from native C data types, managing memory for data structures, etc. But we’ve now got very clean ways to do this in Wolfram Language.

    \n

    As an example, here’s how one sets up a “foreign function” call to a function RAND_bytes in the OpenSSL library:

    \n
    \n
    \n

    \n

    Inside this, we’re using Wolfram Language compiler technology to specify the native C types that will be used in the foreign function. But now we can package this all up into a Wolfram Language function:

    \n
    \n
    \n

    \n

    And we can call this function just like any other Wolfram Language function:

    \n
    \n
    \n

    \n

    Internally, all sorts of complicated things are going on. For example, we’re allocating a raw memory buffer that’s then getting fed to our C function. But when we do that memory allocation we’re creating a symbolic structure that defines it as a “managed object”:

    \n
    \n
    \n

    \n

    And now when this object is no longer being used, the memory associated with it will be automatically freed.

    \n

    And, yes, with both Python and C there’s quite a bit of complexity underneath. But the good news is that in Version 14 we’ve basically been able to automate handling it. And the result is that what gets exposed is pure, simple Wolfram Language.

    \n

    But there’s another big piece to this. Within particular Python or C libraries there are often elaborate definitions of data structures that are specific to that library. And so to use these libraries one has to dive into all the—potentially idiosyncratic—complexities of those definitions. But in the Wolfram Language we have consistent symbolic representations for things, whether they’re images, or dates or types of chemicals. When you first hook up an external library you have to map its data structures to these. But once that’s done, anyone can use what’s been built, and seamlessly integrate with other things they’re doing, perhaps even calling other external code. In effect what’s happening is that one’s leveraging the whole design framework of the Wolfram Language, and applying that even when one’s using underlying implementations that aren’t based on the Wolfram Language.

    \n

    For Serious Developers

    \n

    A single line (or less) of Wolfram Language code can do a lot. But one of the remarkable things about the language is that it’s fundamentally scalable: good both for very short programs and very long programs. And since Version 13 there’ve been several advances in handling very long programs. One of them concerns “code editing”.

    \n

    Standard Wolfram Notebooks work very well for exploratory, expository and many other forms of work. And it’s certainly possible to write large amounts of code in standard notebooks (and, for example, I personally do it). But when one’s doing “software-engineering-style work” it’s both more convenient and more familiar to use what amounts to a pure code editor, largely separate from code execution and exposition. And this is why we have the “package editor”, accessible from File > New > Package/Script. You’re still operating in the notebook environment, with all its sophisticated capabilities. But things have been “skinned” to provide a much more textual “code experience”—both in terms of editing, and in terms of what actually gets saved in .wl files.

    \n

    Here’s typical example of the package editor in action (in this case applied to our GitLink package):

    \n

    Package editor

    \n

    Several things are immediately evident. First, it’s very line oriented. Lines (of code) are numbered, and don’t break except at explicit newlines. There are headings just like in ordinary notebooks, but when the file is saved, they’re stored as comments with a certain stylized structure:

    \n

    Lines of code

    \n

    It’s still perfectly possible to run code in the package editor, but the output won’t get saved in the .wl file:

    \n

    Unsaved output

    \n

    One thing that’s changed since Version 13 is that the toolbar is much enhanced. And for example there’s now “smart search” that is aware of code structure:

    \n

    Smart search

    \n

    You can also ask to go to a line number—and you’ll immediately see whatever lines of code are nearby:

    \n

    Nearby lines of code

    \n

    In addition to code editing, another set of features new since Version 13 of importance to serious developers concern automated testing. The main advance is the introduction of a fully symbolic testing framework, in which individual tests are represented as symbolic objects

    \n
    \n
    \n

    \n

    and can be manipulated in symbolic form, then run using functions like TestEvaluate and TestReport:

    \n
    \n
    \n

    \n

    In Version 14.0 there’s another new testing function—IntermediateTest—that lets you insert what amount to checkpoints inside larger tests:

    \n
    \n
    \n

    \n

    Evaluating this test, we see that the intermediate tests were also run:

    \n
    \n
    \n

    \n

    Wolfram Function Repository: 2900 Functions & Counting

    \n

    The Wolfram Function Repository has been a big success. We introduced it in 2019 as a way to make specific, individual contributed functions available in the Wolfram Language. And now there are more than 2900 such functions in the Repository.

    \n

    The nearly 7000 functions that constitute the Wolfram Language as it is today have been painstakingly developed over the past three and a half decades, always mindful of creating a coherent whole with consistent design principles. And now in a sense the success of the Function Repository is one of the dividends of all that effort. Because it’s the coherence and consistency of the underlying language and its design principles that make it feasible to just add one function at a time, and have it really work. You want to add a function to do some very specific operation that combines images and graphs. Well, there’s a consistent representation of both images and graphs in the Wolfram Language, which you can leverage. And by following the principles of the Wolfram Language—like for the naming of functions—you can create a function that’ll be easy for Wolfram Language users to understand and use.

    \n

    Using the Wolfram Function Repository is a remarkably seamless process. If you know the function’s name, you can just call it using ResourceFunction; the function will be loaded if it’s needed, and then it’ll just run:

    \n
    \n
    \n

    \n

    If there’s an update available for the function, it’ll give you a message, but run the old version anyway. The message has a button that lets you load in the update; then you can rerun your input and use the new version. (If you’re writing code where you want to “burn in” a particular version of a function, you can just use the ResourceVersion option of ResourceFunction.)

    \n

    If you want your code to look more elegant, just evaluate the ResourceFunction object

    \n
    \n
    \n

    \n

    and use the formatted version:

    \n
    \n
    \n

    \n

    And, by the way, pressing the + then gives you more information about the function:

    \n

    Function information

    \n

    An important feature of functions in the Function Repository is that they all have documentation pages—that are organized pretty much like the pages for built-in functions:

    \n

    SolarEclipseIcon function page

    \n

    But how does one create a Function Repository entry? Just go to File > New > Repository Item > Function Repository Item and you’ll get a Definition Notebook:

    \n

    Definition notebook

    \n

    We’ve optimized this to be as easy to fill in as possible, minimizing boilerplate and automatically checking for correctness and consistency whenever possible. And the result is that it’s perfectly realistic to create a simple Function Repository item in under an hour—with the main time spent being in the writing of good expository examples.

    \n

    When you press Submit to Repository your function gets sent to the Wolfram Function Repository review team, whose mandate is to ensure that functions in the repository do what they say they do, work in a way that is consistent with general Wolfram Language design principles, have good names, and are adequately documented. Except for very specialized functions, the goal is to finish reviews within a week (and sometimes considerably sooner)—and to publish functions as soon as they are ready.

    \n

    There’s a digest of new (and updated) functions in the Function Repository that gets sent out every Friday—and makes for interesting reading (you can subscribe here):

    \n

    Wolfram Function Repository email

    \n

    The Wolfram Function Repository is a curated public resource that can be accessed from any Wolfram Language system (and, by the way, the source code for every function is available—just press the Source Notebook button). But there’s another important use case for the infrastructure of the Function Repository: privately deployed “resource functions”.

    \n

    It all works through the Wolfram Cloud. You use the exact same Definition Notebook, but now instead of submitting to the public Wolfram Function Repository, you just deploy your function to the Wolfram Cloud. You can make it private so that only you, or some specific group, can access it. Or you can make it public, so anyone who knows its URL can immediately access and use it in their Wolfram Language system.

    \n

    This turns out to be a tremendously useful mechanism, both for group projects, and for creating published material. In a sense it’s a very lightweight but robust way to distribute code—packaged into functions that can immediately be used. (By the way, to find the functions you’ve published from your Wolfram Cloud account, just go to the DeployedResources folder in the cloud file browser.)

    \n

    (For organizations that want to manage their own function repository, it’s worth mentioning that the whole Wolfram Function Repository mechanism—including the infrastructure for doing reviews, etc.—is also available in a private form through the Wolfram Enterprise Private Cloud.)

    \n

    So what’s in the public Wolfram Function Repository? There are a lot of “specialty functions” intended for specific “niche” purposes—but very useful if they’re what you want:

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    There are functions that add various kinds of visualizations:

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Some functions set up user interfaces:

    \n
    \n
    \n

    \n

    Some functions link to external services:

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Some functions provide simple utilities:

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    There are also functions that are being explored for potential inclusion in the core system:

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    There are also lots of “leading-edge” functions, added as part of research or exploratory development. And for example in pieces I write (including this one), I make a point of having all pictures and other output be backed by “click-to-copy” code that reproduces them—and this code quite often contains functions either from the public Wolfram Function Repository or from (publicly accessible) private deployments.

    \n

    The Paclet Repository Arrives

    \n

    Paclets are a technology we’ve used for more than a decade and a half to distribute updated functionality to Wolfram Language systems in the field. In Version 13 we began the process of providing tools for anyone to create paclets. And since Version 13 we’ve introduced the Wolfram Language Paclet Repository as a centralized repository for paclets:

    \n

    Wolfram Paclet Repository

    \n

    What is a paclet? It’s a collection of Wolfram Language functionality—including function definitions, documentation, external libraries, stylesheets, palettes and more—that can be distributed as a unit, and immediately deployed in any Wolfram Language system.

    \n

    The Paclet Repository is a centralized place where anyone can publish paclets for public distribution. So how does this relate to the Wolfram Function Repository? They are interestingly complementary—with different optimization and different setups. The Function Repository is more lightweight, the Paclet Repository more flexible. The Function Repository is for making available individual new functions, that independently fit into the whole existing structure of the Wolfram Language. The Paclet Repository is for making available larger-scale pieces of functionality, that can define a whole framework and environment of their own.

    \n

    The Function Repository is also fully curated, with every function being reviewed by our team before it is posted. The Paclet Repository is an immediate-deployment system, without pre-publication review. In the Function Repository every function is specified just by its name—and our review team is responsible for ensuring that names are well chosen and have no conflicts. In the Paclet Repository, every contributor gets their own namespace, and all their functions and other material live inside that namespace. So, for example, I contributed the function RandomHypergraph to the Function Repository, which can be accessed just as ResourceFunction[\"RandomHypergraph\"]. But if I had put this function in a paclet in the Paclet Repository, it would have to be accessed as something like PacletSymbol[\"StephenWolfram/Hypergraphs\", \"RandomHypergraph\"].

    \n

    PacletSymbol, by the way, is a convenient way of “deep accessing” individual functions inside a paclet. PacletSymbol temporarily installs (and loads) a paclet so that you can access a particular symbol in it. But more often one wants to permanently install a paclet (using PacletInstall), then explicitly load its contents (using Needs) whenever one wants to have its symbols available. (All the various ancillary elements, like documentation, stylesheets, etc. in a paclet get set up when it is installed.)

    \n

    What does a paclet look like in the Paclet Repository? Every paclet has a home page that typically includes an overall summary, a guide to the functions in the paclet, and some overall examples of the paclet:

    \n

    ProteinVisualization page

    \n

    Individual functions typically have their own documentation pages:

    \n

    AmidePlanePlot page

    \n

    Just like in the main Wolfram Language documentation, there can be a whole hierarchy of guide pages, and there can be things like tutorials.

    \n

    Notice that in examples in paclet documentation, one often sees constructs like . These represent symbols in the paclet, presented in forms like PacletSymbol[\"WolframChemistry/ProteinVisualization\", \"AmidePlanePlot\"] that allow these symbols to be accessed in a “standalone” way. If you directly evaluate such a form, by the way, it’ll force (temporary) installation of the paclet, then return the actual, raw symbol that appears in the paclet:

    \n
    \n
    \n

    \n

    So how does one create a paclet suitable for submission to the Paclet Repository? You can do it purely programmatically, or you can start from File > New > Repository Item > Paclet Repository Item, which launches what amounts to a whole paclet creation IDE. The first step is to specify where you want to assemble your paclet. You give some basic information

    \n

    Submit paclet information

    \n

    then a Paclet Resource Definition Notebook is created, from which you can give function definitions, set up documentation pages, specify what you want your paclet’s home page to be like, etc.:

    \n

    Paclet Resource Definition Notebook

    \n

    There are lots of sophisticated tools that let you create full-featured paclets with the same kind of breadth and depth of capabilities that you find in the Wolfram Language itself. For example, Documentation Tools lets you construct full-featured documentation pages (function pages, guide pages, tutorials, …):

    \n

    Documentation Tools

    \n

    Once you’ve assembled a paclet, you can check it, build it, deploy it privately—or submit it to the Paclet Repository. And once you submit it, it will automatically get set up on the Paclet Repository servers, and within just a few minutes the pages you’ve created describing your paclet will show up on the Paclet Repository website.

    \n

    So what’s in the Paclet Repository so far? There’s a lot of good and very serious stuff, contributed both by teams at our company and by members of the broader Wolfram Language community. In fact, many of the 134 paclets now in the Paclet Repository have enough in them that there’s a whole piece like this that one could write about them.

    \n

    One category of things you’ll find in the Paclet Repository are snapshots of our ongoing internal development projects—many of which will eventually become built-in parts of the Wolfram Language. A good example of this is our LLM and Chat Notebook functionality, whose rapid development and deployment over the past year was made possible by the use of the Paclet Repository. Another example, representing ongoing work from our chemistry team (AKA WolframChemistry in the Paclet Repository) is the ChemistryFunctions paclet, which contains functions like:

    \n
    \n
    \n

    \n

    And, yes, this is interactive:

    \n
    \n
    \n

    \n

    Or, also from WolframChemistry:

    \n
    \n
    \n

    \n

    Another “development snapshot” is DiffTools—a paclet for making and viewing diffs between strings, cells, notebooks, etc.:

    \n
    \n
    \n

    \n

    A major paclet is QuantumFramework—which provides the functionality for our Wolfram Quantum Framework

    \n

    Wolfram Quantum Framework

    \n

    and delivers broad support for quantum computing (with at least a few connections to multiway systems and our Physics Project):

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Talking of our Physics Project, there are over 200 functions supporting it that are in the Wolfram Function Repository. But there are also paclets, like WolframInstitute/Hypergraph:

    \n
    \n
    \n

    \n

    An example of an externally contributed package is Automata—with more than 250 functions for doing computations related to finite automata:

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Another contributed paclet is FunctionalParsers, which goes from a symbolic parser specification to an actual parser, here being used in a reverse mode to generate random “sentences”:

    \n
    \n
    \n

    \n

    Phi4Tools is a more specialized paclet, for working with Feynman diagrams in field theory:

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    And, as another example, here’s MaXrd, for crystallography and x-ray scattering:

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    As just one more example, there’s the Organizer paclet—a utility paclet for making and manipulating organizer notebooks. But unlike the other paclets we’ve seen here, it doesn’t expose any Wolfram Language functions; instead, when you install it, it puts a palette in your Palettes list:

    \n
    \n
    \n

    \n

    Organizer

    \n

    Coming Attractions

    \n

    As of today, Version 14 is finished, and out in the world. So what’s next? We have lots of projects underway—some already with years of development behind them. Some extend and strengthen what’s already in the Wolfram Language; some take it in new directions.

    \n

    One major focus is broadening and streamlining the deployment of the language: unifying the way it’s delivered and installed on computers, packaging it so it can be efficiently integrated into other standalone applications, etc.

    \n

    Another major focus is expanding the handling of very large amounts of data by the Wolfram Language—and seamlessly integrating out-of-core and lazy processing.

    \n

    Then of course there’s algorithmic development. Some is “classical”, directly building on the towers of functionality we’ve developed over the decades. Some is more “AI based”. We’ve been creating heuristic algorithms and meta-algorithms ever since Version 1.0—increasingly using methods from machine learning. How far will neural net methods go? We don’t know yet. We’re routinely using them in things like algorithm selection. But to what extent can they help in the heart of algorithms?

    \n

    I’m reminded of something we did back in 1987 in developing Version 1.0. There was a long tradition in numerical analysis of painstakingly deriving series approximations for particular cases of mathematical functions. But we wanted to be able to compute hundreds of different functions to arbitrary precision for any complex values of their arguments. So how did we do it? We generalized from series to rational approximations—and then, in a very “machine-learning-esque” way—we spent months of CPU time systematically optimizing these approximations. Well, we’ve been trying to do the same kind of thing again—though now over more ambitious domains—and now using not rational functions but large neural nets as our basis.

    \n

    We’ve also been exploring using neural nets to “control” precise algorithms, in effect making heuristic choices which either guide or can be validated by the precise algorithms. So far, none of what we’ve produced has outperformed our existing methods, but it seems plausible that fairly soon it will.

    \n

    We’re doing a lot with various aspects of metaprogramming. There’s the project of
    \ngetting LLMs to help in the construction of Wolfram Language code—and in giving comments on it, and in analyzing what went wrong if the code didn’t do what one expected. Then there’s code annotation—where LLMs may help in doing things like predicting the most likely type for something. And there’s code compilation. We’ve been working for many years on a full-scale compiler for the Wolfram Language, and in every version what we have becomes progressively more capable. We’ve been doing some level of automatic compilation in particular cases (particularly ones involving numerical computation) for more than 30 years. And eventually full-scale automatic compilation will be possible for everything. But as of now some of the biggest payoffs from our compiler technology have been for our internal development, where we can now get optimal down-to-the-metal performance simply by compiled (albeit carefully written) Wolfram Language code.

    \n

    One of the big lessons of the surprising success of LLMs is that there’s potentially more structure in meaningful human language than we thought. I’ve long been interested in creating what I’ve called a “symbolic discourse language” that gives a computational representation of everyday discourse. The LLMs haven’t explicitly done that. But they encourage the idea that it should be possible, and they also provide practical help in doing it. And whether the goal is to be able to represent narrative text, or contracts, or textual specifications, it’s a matter of extending the computational language we’ve built to encompass more kinds of concepts and structures.

    \n

    There are typically several kinds of drivers for our continued development efforts. Sometimes it’s a question of continuing to build a tower of capabilities in some known direction (like, for example, solving PDEs). Sometimes the tower we’ve built suddenly lets us see new possibilities. Sometimes when we actually use what we’ve built we realize there’s an obvious way to polish or extend it—or to “double down” on something that we can now see is valuable. And then there are cases where things happening in the technology world suddenly open up new possibilities—like LLMs have recently done, and perhaps XR will eventually do. And finally there are cases where new science-related insights suggest new directions.

    \n

    I had assumed that our Physics Project would at best have practical applications only centuries hence. But in fact it’s become clear that the correspondence it’s defined between physics and computation gives us quite immediate new ways to think about aspects of practical computation. And indeed we’re now actively exploring how to use this to define a new level of parallel and distributed computation in the Wolfram Language, as well as to represent symbolically not only the results of computations but also the ongoing process of computation.

    \n

    One might think that after nearly four decades of intense development there wouldn’t be anything left to do in developing the Wolfram Language. But in fact at every level we reach, there’s ever more that becomes possible, and ever more that can we see might be possible. And indeed this moment is a particularly fertile one, with an unprecedentedly broad waterfront of possibilities. Version 14 is an important and satisfying waypoint. But there are wonderful things ahead—as we continue our long-term mission to make the computational paradigm achieve its potential, and to build our computational language to help that happen.

    \n

    \n

    \n\n

    \n", + "content": "\"\"

    Version 14.0 of Wolfram Language and Mathematica is available immediately both on the desktop and in the cloud. See also more detailed information on Version 13.1, Version 13.2 and Version 13.3.

    \n

    Building Something Greater and Greater… for 35 Years and Counting

    \n

    Today we celebrate a new waypoint on our journey of nearly four decades with the release of Version 14.0 of Wolfram Language and Mathematica. Over the two years since we released Version 13.0 we’ve been steadily delivering the fruits of our research and development in .1 releases every six months. Today we’re aggregating these—and more—into Version 14.0.

    \n

    It’s been more than 35 years now since we released Version 1.0. And all those years we’ve been continuing to build a taller and taller tower of capabilities, progressively expanding the scope of our vision and the breadth of our computational coverage of the world:

    \n

    Number of built-in fuctions

    \n

    Version 1.0 had 554 built-in functions; in Version 14.0 there are 6602. And behind each of those functions is a story. Sometimes it’s a story of creating a superalgorithm that encapsulates decades of algorithmic development. Sometimes it’s a story of painstakingly curating data that’s never been assembled before. Sometimes it’s a story of drilling down to the essence of something to invent new approaches and new functions that can capture it.

    \n

    And from all these pieces we’ve been steadily building the coherent whole that is today’s Wolfram Language. In the arc of intellectual history it defines a broad, new, computational paradigm for formalizing the world. And at a practical level it provides a superpower for implementing computational thinking—and enabling “computational X” for all fields X.

    \n

    To us it’s profoundly satisfying to see what has been done over the past three decades with everything we’ve built so far. So many discoveries, so many inventions, so much achieved, so much learned. And seeing this helps drive forward our efforts to tackle still more, and to continue to push every boundary we can with our R&D, and to deliver the results in new versions of our system.

    \n

    Our R&D portfolio is broad. From projects that get completed within months of their conception, to projects that rely on years (and sometimes even decades) of systematic development. And key to everything we do is leveraging what we have already done—often taking what in earlier years was a pinnacle of technical achievement, and now using it as a routine building block to reach a level that could barely even be imagined before. And beyond practical technology, we’re also continually going further and further in leveraging what’s now the vast conceptual framework that we’ve been building all these years—and progressively encapsulating it in the design of the Wolfram Language.

    \n

    We’ve worked hard all these years not only to create ideas and technology, but also to craft a practical and sustainable ecosystem in which we can systematically do this now and into the long-term future. And we continue to innovate in these areas, broadening the delivery of what we’ve built in new and different ways, and through new and different channels. And in the past five years we’ve also been able to open up our core design process to the world—regularly livestreaming what we’re doing in a uniquely open way.

    \n

    And indeed over the past several years the seeds of essentially everything we’re delivering today in Version 14.0 has been openly shared with the world, and represents an achievement not only for our internal teams but also for the many people who have participated in and commented on our livestreams.

    \n

    Part of what Version 14.0 is about is continuing to expand the domain of our computational language, and our computational formalization of the world. But Version 14.0 is also about streamlining and polishing the functionality we’ve already defined. Throughout the system there are things we’ve made more efficient, more robust and more convenient. And, yes, in complex software, bugs of many kinds are a theoretical and practical inevitability. And in Version 14.0 we’ve fixed nearly 10,000 bugs, the majority found by our increasingly sophisticated internal software testing methods.

    \n

    Now We Need to Tell the World

    \n

    Even after all the work we’ve put into the Wolfram Language over the past several decades, there’s still yet another challenge: how to let people know just what the Wolfram Language can do. Back when we released Version 1.0 I was able to write a book of manageable size that could pretty much explain the whole system. But for Version 14.0—with all the functionality it contains—one would need a book with perhaps 200,000 pages.

    \n

    And at this point nobody (even me!) immediately knows everything the Wolfram Language does. Of course one of our great achievements has been to maintain across all that functionality a tightly coherent and consistent design that results in there ultimately being only a small set of fundamental principles to learn. But at the vast scale of the Wolfram Language as it exists today, knowing what’s possible—and what can now be formulated in computational terms—is inevitably very challenging. And all too often when I show people what’s possible, I’ll get the response “I had no idea the Wolfram Language could do that!”

    \n

    So in the past few years we’ve put increasing emphasis into building large-scale mechanisms to explain the Wolfram Language to people. It begins at a very fine-grained level, with “just-in-time information” provided, for example, through suggestions made when you type. Then for each function (or other construct in the language) there are pages that explain the function, with extensive examples. And now, increasingly, we’re adding “just-in-time learning material” that leverages the concreteness of the functions to provide self-contained explanations of the broader context of what they do.

    \n

    By the way, in modern times we need to explain the Wolfram Language not just to humans, but also to AIs—and our very extensive documentation and examples have proved extremely valuable in training LLMs to use the Wolfram Language. And for AIs we’re providing a variety of tools—like immediate computable access to documentation, and computable error handling. And with our Chat Notebook technology there’s also a new “on ramp” for creating Wolfram Language code from linguistic (or visual, etc.) input.

    \n

    But what about the bigger picture of the Wolfram Language? For both people and AIs it’s important to be able to explain things at a higher level, and we’ve been doing more and more in this direction. For more than 30 years we’ve had “guide pages” that summarize specific functionality in particular areas. Now we’re adding “core area pages” that give a broader picture of large areas of functionality—each one in effect covering what might otherwise be a whole product on its own, if it wasn’t just an integrated part of the Wolfram Language:

    \n

    Core area pages

    \n

    But we’re going even much further, building whole courses and books that provide modern hands-on Wolfram-Language-enabled introductions to a broad range of areas. We’ve now covered the material of many standard college courses (and quite a lot besides), in a new and very effective “computational” way, that allows immediate, practical engagement with concepts:

    \n

    Wolfram U courses

    \n

    All these courses involve not only lectures and notebooks but also auto-graded exercises, as well as official certifications. And we have a regular calendar of everyone-gets-together-at-the-same-time instructor-led peer Study Groups about these courses. And, yes, our Wolfram U operation is now emerging as a significant educational entity, with many thousands of students at any given time.

    \n

    In addition to whole courses, we have “miniseries” of lectures about specific topics:

    \n

    Miniseries video lectures

    \n

    And we also have courses—and books—about the Wolfram Language itself, like my Elementary Introduction to the Wolfram Language, which came out in a third edition this year (and has an associated course, online version, etc.):

    \n

    Elementary Introduction to the Wolfram Language

    \n

    In a somewhat different direction, we’ve expanded our Wolfram Summer School to add a Wolfram Winter School, and we’ve greatly expanded our Wolfram High School Summer Research Program, adding year-round programs, middle-school programs, etc.—including the new “Computational Adventures” weekly activity program.

    \n

    And then there’s livestreaming. We’ve been doing weekly “R&D livestreams” with our development team (and sometimes also external guests). And I myself have also been doing a lot of livestreaming (232 hours of it in 2023 alone)—some of it design reviews of Wolfram Language functionality, and some of it answering questions, technical and other.

    \n

    The list of ways we’re getting the word out about the Wolfram Language goes on. There’s Wolfram Community, that’s full of interesting contributions, and has ever-increasing readership. There are sites like Wolfram Challenges. There are our Wolfram Technology Conferences. And lots more.

    \n

    We’ve put immense effort into building the whole Wolfram technology stack over the past four decades. And even as we continue to aggressively build it, we’re putting more and more effort into telling the world about just what’s in it, and helping people (and AIs) to make the most effective use of it. But in a sense, everything we’re doing is just a seed for what the wider community of Wolfram Language users are doing, and can do. Spreading the power of the Wolfram Language to more and more people and areas.

    \n

    The LLMs Have Landed

    \n

    The machine learning superfunctions Classify and Predict first appeared in Wolfram Language in 2014 (Version 10). By the next year there were starting to be functions like ImageIdentify and LanguageIdentify, and within a couple of years we’d introduced our whole neural net framework and Neural Net Repository. Included in that were a variety of neural nets for language modeling, that allowed us to build out functions like SpeechRecognize and an experimental version of FindTextualAnswer. But—like everyone else—we were taken by surprise at the end of 2022 by ChatGPT and its remarkable capabilities.

    \n

    Very quickly we realized that a major new use case—and market—had arrived for Wolfram|Alpha and Wolfram Language. For now it was not only humans who’d need the tools we’d built; it was also AIs. By March 2023 we’d worked with OpenAI to use our Wolfram Cloud technology to deliver a plugin to ChatGPT that allows it to call Wolfram|Alpha and Wolfram Language. LLMs like ChatGPT provide remarkable new capabilities in reproducing human language, basic human thinking and general commonsense knowledge. But—like unaided humans—they’re not set up to deal with detailed computation or precise knowledge. For that, like humans, they have to use formalism and tools. And the remarkable thing is that the formalism and tools we’ve built in Wolfram Language (and Wolfram|Alpha) are basically a broad, perfect fit for what they need.

    \n

    We created the Wolfram Language to provide a bridge from what humans think about to what computation can express and implement. And now that’s what the AIs can use as well. The Wolfram Language provides a medium not only for humans to “think computationally” but also for AIs to do so. And we’ve been steadily doing the engineering to let AIs call on Wolfram Language as easily as possible.

    \n

    But in addition to LLMs using Wolfram Language, there’s also now the possibility of Wolfram Language using LLMs. And already in June 2023 (Version 13.3) we released a major collection of LLM-based capabilities in Wolfram Language. One category is LLM functions, that effectively use LLMs as “internal algorithms” for operations in Wolfram Language:

    \n
    \n
    \n

    \n

    In typical Wolfram Language fashion, we have a symbolic representation for LLMs: LLMConfiguration[] represents an LLM with its various parameters, promptings, etc. And in the past few months we’ve been steadily adding connections to the full range of popular LLMs, making Wolfram Language a unique hub not only for LLM usage, but also for studying the performance—and science—of LLMs.

    \n

    You can define your own LLM functions in Wolfram Language. But there’s also the Wolfram Prompt Repository that plays a similar role for LLM functions as the Wolfram Function Repository does for ordinary Wolfram Language functions. There’s a public Prompt Repository that so far has several hundred curated prompts. But it’s also possible for anyone to post their prompts in the Wolfram Cloud and make them publicly (or privately) accessible. The prompts can define personas (“talk like a [stereotypical] pirate”). They can define AI-oriented functions (“write it with emoji”). And they can define modifiers that affect the form of output (“haiku style”).

    \n

    Wolfram Prompt Repository

    \n

    In addition to calling LLMs “programmatically” within Wolfram Language, there’s the new concept (first introduced in Version 13.3) of “Chat Notebooks”. Chat Notebooks represent a new kind of user interface, that combines the graphical, computational and document features of traditional Wolfram Notebooks with the new linguistic interface capabilities brought to us by LLMs.

    \n

    The basic idea of a Chat Notebook—as introduced in Version 13.3, and now extended in Version 14.0—is that you can have “chat cells” (requested by typing ) whose content gets sent not to the Wolfram kernel, but instead to an LLM:

    \n

    Write a haiku about a crocodile on the moon

    \n

    You can use “function prompts”—say from the Wolfram Prompt Repository—directly in a Chat Notebook:

    \n

    A cat ate my lunch

    \n

    And as of Version 14.0 you can also knit Wolfram Language computations directly into your “conversation” with the LLM:

    \n

    Make a haiku from RandomWord

    \n

    (You type \\ to insert Wolfram Language, very much like the way you can use <**> to insert Wolfram Language into external evaluation cells.)

    \n

    One thing about Chat Notebooks is that—as their name suggests—they really are centered around “chatting”, and around having a sequential interaction with an LLM. In an ordinary notebook, it doesn’t matter where in the notebook each Wolfram Language evaluation is requested; all that’s relevant is the order in which the Wolfram kernel does the evaluations. But in a Chat Notebook the “LLM evaluations” are always part of a “chat” that’s explicitly laid out in the notebook.

    \n

    A key part of Chat Notebooks is the concept of a chat block: type ~ and you get a separator in the notebook that “starts a new chat”:

    \n

    My name is Stephen

    \n

    Chat Notebooks—with all their typical Wolfram Notebook editing, structuring, automation, etc. capabilities—are very powerful just as “LLM interfaces”. But there’s another dimension as well, enabled by LLMs being able to call Wolfram Language as a tool.

    \n

    At one level, Chat Notebooks provide an “on ramp” for using Wolfram Language. Wolfram|Alpha—and even more so, Wolfram|Alpha Notebook Edition—let you ask questions in natural language, then have the questions translated into Wolfram Language, and answers computed. But in Chat Notebooks you can go beyond asking specific questions. Instead, through the LLM, you can just “start chatting” about what you want to do, then have Wolfram Language code generated, and executed:

    \n

    How do you make a rosette with 5 lobes?

    \n

    The workflow is typically as follows. First, you have to conceptualize in computational terms what you want. (And, yes, that step requires computational thinking—which is a very important skill that too few people have so far learned.) Then you tell the LLM what you want, and it’ll try to write Wolfram Language code to achieve it. It’ll typically run the code for you (but you can also always do it yourself)—and you can see whether you got what you wanted. But what’s crucial is that Wolfram Language is intended to be read not only by computers but also by humans. And particularly since LLMs actually usually seem to manage to write pretty good Wolfram Language code, you can expect to read what they wrote, and see if it’s what you wanted. If it is, you can take that code, and use it as a “solid building block” for whatever larger system you might be trying to set up. Otherwise, you can either fix it yourself, or try chatting with the LLM to get it to do it.

    \n

    One of the things we see in the example above is the LLM—within the Chat Notebook—making a “tool call”, here to a Wolfram Language evaluator. In the Wolfram Language there’s now a whole mechanism for defining tools for LLMs—with each tool being represented by an LLMTool symbolic object. In Version 14.0 there’s an experimental version of the new Wolfram LLM Tool Repository with some predefined tools:

    \n

    Wolfram LLM Tool Repository

    \n

    In a default Chat Notebook, the LLM has access to some default tools, which include not only the Wolfram Language evaluator, but also things like Wolfram documentation search and Wolfram|Alpha query. And it’s common to see the LLM go back and forth trying to write “code that works”, and for example sometimes having to “resort” (much like humans do) to reading the documentation.

    \n

    Something that’s new in Version 14.0 is experimental access to multimodal LLMs that can take images as well as text as input. And when this capability is enabled, it allows the LLM to “look at pictures from the code it generated”, see if they’re what was asked for, and potentially correct itself:

    \n

    Create graphics with a randomly colored disc

    \n

    The deep integration of images into Wolfram Language—and Wolfram Notebooks—yields all sorts of possibilities for multimodal LLMs. Here we’re giving a plot as an image and asking the LLM how to reproduce it:

    \n

    Create a similar plot

    \n

    Another direction for multimodal LLMs is to take data (in the hundreds of formats accepted by Wolfram Language) and use the LLM to guide its visualization and analysis in the Wolfram Language. Here’s an example that starts from a file data.csv in the current directory on your computer:

    \n

    Look at the file data.csv

    \n

    One thing that’s very nice about using Wolfram Language directly is that everything you do (well, unless you use RandomInteger, etc.) is completely reproducible; do the same computation twice and you’ll get the same result. That’s not true with LLMs (at least right now). And so when one uses LLMs it feels like something more ephemeral and fleeting than using Wolfram Language. One has to grab any good results one gets—because one might never be able to reproduce them. Yes, it’s very helpful that one can store everything in a Chat Notebook, even if one can’t rerun it and get the same results. But the more “permanent” use of LLM results tends to be “offline”. Use an LLM “up front” to figure something out, then just use the result it gave.

    \n

    One unexpected application of LLMs for us has been in suggesting names of functions. With the LLM’s “experience” of what people talk about, it’s in a good position to suggest functions that people might find useful. And, yes, when it writes code it has a habit of hallucinating such functions. But in Version 14.0 we’ve actually added one function—DigitSum—that was suggested to us by LLMs. And in a similar vein, we can expect LLMs to be useful in making connections to external databases, functions, etc. The LLM “reads the documentation”, and tries to write Wolfram Language “glue” code—which then can be reviewed, checked, etc., and if it’s right, can be used henceforth.

    \n

    Then there’s data curation, which is a field that—through Wolfram|Alpha and many of our other efforts—we’ve become extremely expert at over the past couple of decades. How much can LLMs help with that? They certainly don’t “solve the whole problem”, but integrating them with the tools we already have has allowed us over the past year to speed up some of our data curation pipelines by factors of two or more.

    \n

    If we look at the whole stack of technology and content that’s in the modern Wolfram Language, the overwhelming majority of it isn’t helped by LLMs, and isn’t likely to be. But there are many—sometimes unexpected—corners where LLMs can dramatically improve heuristics or otherwise solve problems. And in Version 14.0 there are starting to be a wide variety of “LLM inside” functions.

    \n

    An example is TextSummarize, which is a function we’ve considered adding for many versions—but now, thanks to LLMs, can finally implement to a useful level:

    \n
    \n
    \n

    \n

    The main LLMs that we’re using right now are based on external services. But we’re building capabilities to allow us to run LLMs in local Wolfram Language installations as soon as that’s technically feasible. And one capability that’s actually part of our mainline machine learning effort is NetExternalObject—a way of representing symbolically an externally defined neural net that can be run inside Wolfram Language. NetExternalObject allows you, for example, to take any network in ONNX form and effectively treat it as a component in a Wolfram Language neural net. Here’s a network for image depth estimation—that we’re here importing from an external repository (though in this case there’s actually a similar network already in the Wolfram Neural Net Repository):

    \n
    \n
    \n

    \n

    Now we can apply this imported network to an image that’s been encoded with our built-in image encoder—then we’re taking the result and visualizing it:

    \n
    \n
    \n

    \n

    It’s often very convenient to be able to run networks locally, but it can sometimes take quite high-end hardware to do so. For example, there’s now a function in the Wolfram Function Repository that does image synthesis entirely locally—but to run it, you do need a GPU with at least 8 GB of VRAM:

    \n
    \n
    \n

    \n

    By the way, based on LLM principles (and ideas like transformers) there’ve been other related advances in machine learning that have been strengthening a whole range of Wolfram Language areas—with one example being image segmentation, where ImageSegmentationComponents now provides robust “content-sensitive” segmentation:

    \n
    \n
    \n

    \n

    Still Going Strong on Calculus

    \n

    When Mathematica 1.0 was released in 1988, it was a “wow” that, yes, now one could routinely do integrals symbolically by computer. And it wasn’t long before we got to the point—first with indefinite integrals, and later with definite integrals—where what’s now the Wolfram Language could do integrals better than any human. So did that mean we were “finished” with calculus? Well, no. First there were differential equations, and partial differential equations. And it took a decade to get symbolic ODEs to a beyond-human level. And with symbolic PDEs it took until just a few years ago. Somewhere along the way we built out discrete calculus, asymptotic expansions and integral transforms. And we also implemented lots of specific features needed for applications like statistics, probability, signal processing and control theory. But even now there are still frontiers.

    \n

    And in Version 14 there are significant advances around calculus. One category concerns the structure of answers. Yes, one can have a formula that correctly represents the solution to a differential equation. But is it in the best, simplest or most useful form? Well, in Version 14 we’ve worked hard to make sure it is—often dramatically reducing the size of expressions that get generated.

    \n

    Another advance has to do with expanding the range of “pre-packaged” calculus operations. We’ve been able to do derivatives ever since Version 1.0. But in Version 14 we’ve added implicit differentiation. And, yes, one can give a basic definition for this easily enough using ordinary differentiation and equation solving. But by adding an explicit ImplicitD we’re packaging all that up—and handling the tricky corner cases—so that it becomes routine to use implicit differentiation wherever you want:

    \n
    \n
    \n

    \n

    Another category of pre-packaged calculus operations new in Version 14 are ones for vector-based integration. These were always possible to do in a “do-it-yourself” mode. But in Version 14 they are now streamlined built-in functions—that, by the way, also cover corner cases, etc. And what made them possible is actually a development in another area: our decade-long project to add geometric computation to Wolfram Language—which gave us a natural way to describe geometric constructs such as curves and surfaces:

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Related functionality new in Version 14 is ContourIntegrate:

    \n
    \n
    \n

    \n

    Functions like ContourIntegrate just “get the answer”. But if one’s learning or exploring calculus it’s often also useful to be able to do things in a more step-by-step way. In Version 14 you can start with an inactive integral

    \n
    \n
    \n

    \n

    and explicitly do operations like changing variables:

    \n
    \n
    \n

    \n

    Sometimes actual answers get expressed in inactive form, particularly as infinite sums:

    \n
    \n
    \n

    \n

    And now in Version 14 the function TruncateSum lets you take such a sum and generate a truncated “approximation”:

    \n
    \n
    \n

    \n

    Functions like D and Integrate—as well as LineIntegrate and SurfaceIntegrate—are, in a sense, “classic calculus”, taught and used for more than three centuries. But in Version 14 we also support what we can think of as “emerging” calculus operations, like fractional differentiation:

    \n
    \n
    \n

    \n

    Core Language

    \n

    What are the primitives from which we can best build our conception of computation? That’s at some level the question I’ve been asking for more than four decades, and what’s determined the functions and structures at the core of the Wolfram Language.

    \n

    And as the years go by, and we see more and more of what’s possible, we recognize and invent new primitives that will be useful. And, yes, the world—and the ways people interact with computers—change too, opening up new possibilities and bringing new understanding of things. Oh, and this year there are LLMs which can “get the intellectual sense of the world” and suggest new functions that can fit into the framework we’ve created with the Wolfram Language. (And, by the way, there’ve also been lots of great suggestions made by the audiences of our design review livestreams.)

    \n

    One new construct added in Version 13.1—and that I personally have found very useful—is Threaded. When a function is listable—as Plus is—the top levels of lists get combined:

    \n
    \n
    \n

    \n

    But sometimes you want one list to be “threaded into” the other at the lowest level, not the highest. And now there’s a way to specify that, using Threaded:

    \n
    \n
    \n

    \n

    In a sense, Threaded is part of a new wave of symbolic constructs that have “ambient effects” on lists. One very simple example (introduced in 2015) is Nothing:

    \n
    \n
    \n

    \n

    Another, introduced in 2020, is Splice:

    \n
    \n
    \n

    \n

    An old chestnut of Wolfram Language design concerns the way infinite evaluation loops are handled. And in Version 13.2 we introduced the symbolic construct TerminatedEvaluation to provide better definition of how out-of-control evaluations have been terminated:

    \n
    \n
    \n

    \n

    In a curious connection, in the computational representation of physics in our recent Physics Project, the direct analog of nonterminating evaluations are what make possible the seemingly unending universe in which we live.

    \n

    But what is actually going on “inside an evaluation”, terminating or not? I’ve always wanted a good representation of this. And in fact back in Version 2.0 we introduced Trace for this purpose:

    \n
    \n
    \n

    \n

    But just how much detail of what the evaluator does should one show? Back in Version 2.0 we introduced the option TraceOriginal that traces every path followed by the evaluator:

    \n
    \n
    \n

    \n

    But often this is way too much. And in Version 14.0 we’ve introduced the new setting TraceOriginalAutomatic, which doesn’t include in its output evaluations that don’t do anything:

    \n
    \n
    \n

    \n

    This may seem pedantic, but when one has an expression of any substantial size, it’s a crucial piece of pruning. So, for example, here’s a graphical representation of a simple arithmetic evaluation, with TraceOriginalTrue:

    \n
    \n
    \n

    \n

    And here’s the corresponding “pruned” version, with TraceOriginalAutomatic:

    \n
    \n
    \n

    \n

    (And, yes, the structures of these graphs are closely related to things like the causal graphs we construct in our Physics Project.)

    \n

    In the effort to add computational primitives to the Wolfram Language, two new entrants in Version 14.0 are Comap and ComapApply. The function Map takes a function f and “maps it” over a list:

    \n
    \n
    \n

    \n

    Comap does the “mathematically co-” version of this, taking a list of functions and “comapping” them onto a single argument:

    \n
    \n
    \n

    \n

    Why is this useful? As an example, one might want to apply three different statistical functions to a single list. And now it’s easy to do that, using Comap:

    \n
    \n
    \n

    \n

    By the way, as with Map, there’s also an operator form for Comap:

    \n
    \n
    \n

    \n

    Comap works well when the functions it’s dealing with take just one argument. If one has functions that take multiple arguments, ComapApply is what one typically wants:

    \n
    \n
    \n

    \n

    Talking of “co-like” functions, a new function added in Version 13.2 is PositionSmallest. Min gives the smallest element in a list; PositionSmallest instead says where the smallest elements are:

    \n
    \n
    \n

    \n

    One of the important objectives in the Wolfram Language is to have as much as possible “just work”. When we released Version 1.0 strings could be assumed just to contain ordinary ASCII characters, or perhaps to have an external character encoding defined. And, yes, it could be messy not to know “within the string itself” what characters were supposed to be there. And by the time of Version 3.0 in 1996 we’d become contributors to, and early adopters of, Unicode, which provided a standard encoding for “16-bits’-worth” of characters. And for many years this served us well. But in time—and particularly with the growth of emoji—16 bits wasn’t enough to encode all the characters people wanted to use. So a few years ago we began rolling out support for 32-bit Unicode, and in Version 13.1 we integrated it into notebooks—in effect making strings something much richer than before:

    \n
    \n
    \n

    \n

    And, yes, you can use Unicode everywhere now:

    \n
    \n
    \n

    \n

    Video as a Fundamental Object

    \n

    Back when Version 1.0 was released, a megabyte was a lot of memory. But 35 years later we routinely deal with gigabytes. And one of the things that makes practical is computation with video. We first introduced Video experimentally in Version 12.1 in 2020. And over the past three years we’ve been systematically broadening and strengthening our ability to deal with video in Wolfram Language. Probably the single most important advance is that things around video now—as much as possible—“just work”, without “creaking” under the strain of handling such large amounts of data.

    \n

    We can directly capture video into notebooks, and we can robustly play video anywhere within a notebook. We’ve also added options for where to store the video so that it’s conveniently accessible to you and anyone else you want to give access to it.

    \n

    There’s lots of complexity in the encoding of video—and we now robustly and transparently support more than 500 codecs. We also do lots of convenient things automatically, like rotating portrait-mode videos—and being able to apply image processing operations like ImageCrop across whole videos. In every version, we’ve been further optimizing the speed of some video operation or another.

    \n

    But a particularly big focus has been on video generators: programmatic ways to produce videos and animations. One basic example is AnimationVideo, which produces the same kind of output as Animate, but as a Video object that can either be displayed directly in a notebook, or exported in MP4 or some other format:

    \n

    AnimationVideo

    \n

    AnimationVideo is based on computing each frame in a video by evaluating an expression. Another class of video generators take an existing visual construct, and simply “tour” it. TourVideo “tours” images, graphics and geo graphics; Tour3DVideo (new in Version 14.0) tours 3D geometry:

    \n
    \n
    \n

    \n

    A very powerful capability in Wolfram Language is being able to apply arbitrary functions to videos. One example of how this can be done is VideoFrameMap, which maps a function across frames of a video, and which was made efficient in Version 13.2:

    \n
    \n
    \n

    \n

    And although Wolfram Language isn’t intended as an interactive video editing system, we’ve made sure that it’s possible to do streamlined programmatic video editing in the language, and for example in Version 14.0 we’ve added things like transition effects in VideoJoin and timed overlays in OverlayVideo.

    \n

    So Much Got Faster, Stronger, Sleeker

    \n

    With every new version of Wolfram Language we add new capabilities to extend yet further the domain of the language. But we also put a lot of effort into something less immediately visible: making existing capabilities faster, stronger and sleeker.

    \n

    And in Version 14 two areas where we can see some examples of all these are dates and quantities. We introduced the notion of symbolic dates (DateObject, etc.) nearly a decade ago. And over the years since then we’ve built many things on this structure. And in the process of doing this it’s become clear that there are certain flows and paths that are particularly common and convenient. At the beginning what mattered most was just to make sure that the relevant functionality existed. But over time we’ve been able to see what should be streamlined and optimized, and we’ve steadily been doing that.

    \n

    In addition, as we’ve worked towards new and different applications, we’ve seen “corners” that need to be filled in. So, for example, astronomy is an area we’ve significantly developed in Version 14, and supporting astronomy has required adding several new “high-precision” time capabilities, such as the TimeSystem option, as well as new astronomy-oriented calendar systems. Another example concerns date arithmetic. What should happen if you want to add a month to January 30? Where should you land? Different kinds of business applications and contracts make different assumptions—and so we added a Method option to functions like DatePlus to handle this. Meanwhile, having realized that date arithmetic is involved in the “inner loop” of certain computations, we optimized it—achieving a more than 100x speedup in Version 14.0.

    \n

    Wolfram|Alpha has been able to deal with units ever since it was first launched in 2009—now more than 10,000 of them. And in 2012 we introduced Quantity to represent quantities with units in the Wolfram Language. And over the past decade we’ve been steadily smoothing out a whole series of complicated gotchas and issues with units. For example, what does 100°C + 20°C mean? Well, the 20°C isn’t really the same kind of thing as the 100°C. And now in Wolfram Language we have a systematic way to handle this, by distinguishing temperature and temperature difference units—so that we now write 100°C + .

    \n

    At first our priority with Quantity was to get it working as broadly as possible, and to integrate it as widely as possible into computations, visualizations, etc. across the system. But as its capabilities have expanded, so have its uses, repeatedly driving the need to optimize its operation for particular common cases. And indeed between Version 13 and Version 14 we’ve dramatically sped up many things related to Quantity, often by factors of 1000 or more.

    \n

    Talking of speedups, another example—made possible by new algorithms operating on multithreaded CPUs—concerns polynomials. We’ve worked with polynomials in Wolfram Language since Version 1, but in Version 13.2 there was a dramatic speedup of up to 1000x on operations like polynomial factoring.

    \n

    In addition, a new algorithm in Version 14.0 dramatically speeds up numerical solutions to polynomial and transcendental equations—and, together with the new MaxRoots options, allows us, for example, to pick off a few roots from a degree-one-million polynomial

    \n
    \n
    \n

    \n

    or to find roots of a transcendental equation that we could not even attempt before without pre-specifying bounds on their values:

    \n
    \n
    \n

    \n

    Another “old” piece of functionality with recent enhancement concerns mathematical functions. Ever since Version 1.0 we’ve set up mathematical functions so that they can be computed to arbitrary precision:

    \n
    \n
    \n

    \n

    But in recent versions we’ve wanted to be “more precise about precision”, and to be able to rigorously compute just what range of outputs are possible given the range of values provided as input:

    \n
    \n
    \n

    \n

    But every function for which we do this effectively requires a new theorem, and we’ve been steadily increasing the number of functions covered—now more than 130—so that this “just works” when you need to use it in a computation.

    \n

    The Tree Story Continues

    \n

    Trees are useful. We first introduced them as basic objects in the Wolfram Language only in Version 12.3. But now that they’re there, we’re discovering more and more places they can be used. And to support that, we’ve been adding more and more capabilities to them.

    \n

    One area that’s advanced significantly since Version 13 is the rendering of trees. We tightened up the general graphic design, but, more importantly, we introduced many new options for how rendering should be done.

    \n

    For example, here’s a random tree where we’ve specified that for all nodes only 3 children should be explicitly displayed: the others are elided away:

    \n
    \n
    \n

    \n

    Here we’re adding several options to define the rendering of the tree:

    \n
    \n
    \n

    \n

    By default, the branches in trees are labeled with integers, just like parts in an expression. But in Version 13.1 we added support for named branches defined by associations:

    \n
    \n
    \n

    \n

    Our original conception of trees was very centered around having elements one would explicitly address, and that could have “payloads” attached. But what became clear is that there were applications where all that mattered was the structure of the tree, not anything about its elements. So we added UnlabeledTree to create “pure trees”:

    \n
    \n
    \n

    \n

    Trees are useful because many kinds of structures are basically trees. And since Version 13 we’ve added capabilities for converting trees to and from various kinds of structures. For example, here’s a simple Dataset object:

    \n
    \n
    \n

    \n

    You can use ExpressionTree to convert this to a tree:

    \n
    \n
    \n

    \n

    And TreeExpression to convert it back:

    \n
    \n
    \n

    \n

    We’ve also added capabilities for converting to and from JSON and XML, as well as for representing file directory structures as trees:

    \n
    \n
    \n

    \n

    Finite Fields

    \n

    In Version 1.0 we had integers, rational numbers and real numbers. In Version 3.0 we added algebraic numbers (represented implicitly by Root)—and a dozen years later we added algebraic number fields and transcendental roots. For Version 14 we’ve now added another (long-awaited) “number-related” construct: finite fields.

    \n

    Here’s our symbolic representation of the field of integers modulo 7:

    \n
    \n
    \n

    \n

    And now here’s a specific element of that field

    \n
    \n
    \n

    \n

    which we can immediately compute with:

    \n
    \n
    \n

    \n

    But what’s really important about what we’ve done with finite fields is that we’ve fully integrated them into other functions in the system. So, for example, we can factor a polynomial whose coefficients are in a finite field:

    \n
    \n
    \n

    \n

    We can also do things like find solutions to equations over finite fields. So here, for example, is a point on a Fermat curve over the finite field GF(173):

    \n
    \n
    \n

    \n

    And here is a power of a matrix with elements over the same finite field:

    \n
    \n
    \n

    \n

    Going Off Planet: The Astro Story

    \n

    A major new capability added since Version 13 is astro computation. It begins with being able to compute to high precision the positions of things like planets. Even knowing what one means by “position” is complicated, though—with lots of different coordinate systems to deal with. By default AstroPosition gives the position in the sky at the current time from your Here location:

    \n
    \n
    \n

    \n

    But one can instead ask about a different coordinate system, like global galactic coordinates:

    \n
    \n
    \n

    \n

    And now here’s a plot of the distance between Saturn and Jupiter over a 50-year period:

    \n
    \n
    \n

    \n

    In direct analogy to GeoGraphics, we’ve added AstroGraphics, here showing a patch of sky around the current position of Saturn:

    \n
    \n
    \n

    \n

    And this now shows the sequence of positions for Saturn over the course of a couple of years—yes, including retrograde motion:

    \n
    \n
    \n

    \n

    There are many styling options for AstroGraphics. Here we’re adding a background of the “galactic sky”:

    \n
    \n
    \n

    \n

    And here we’re including renderings for constellations (and, yes, we had an artist draw them):

    \n
    \n
    \n

    \n

    Something specifically new in Version 14.0 has to do with extended handling of solar eclipses. We always try to deliver new functionality as fast as we can. But in this case there was a very specific deadline: the total solar eclipse visible from the US on April 8, 2024. We’ve had the ability to do global computations about solar eclipses for some time (actually since soon before the 2017 eclipse). But now we can also do detailed local computations right in the Wolfram Language.

    \n

    So, for example, here’s a somewhat detailed overall map of the April 8, 2024, eclipse:

    \n
    \n
    \n

    \n

    Now here’s a plot of the magnitude of the eclipse over a few hours, complete with a little “rampart” associated with the period of totality:

    \n
    \n
    \n

    \n

    And here’s a map of the region of totality every minute just after the moment of maximum eclipse:

    \n
    \n
    \n

    \n

    Millions of Species Become Computable

    \n

    We first introduced computable data on biological organisms back when Wolfram|Alpha was released in 2009. But in Version 14—following several years of work—we’ve dramatically broadened and deepened the computable data we have about biological organisms.

    \n

    So for example here’s how we can figure out what species have cheetahs as predators:

    \n
    \n
    \n

    \n

    And here are pictures of these:

    \n
    \n
    \n

    \n

    Here’s a map of countries where cheetahs have been seen (in the wild):

    \n
    \n
    \n

    \n

    We now have data—curated from a great many sources—on more than a million species of animals, as well as most of the plants, fungi, bacteria, viruses and archaea that have been described. And for animals, for example, we have nearly 200 properties that are extensively filled in. Some are taxonomic properties:

    \n
    \n
    \n

    \n

    Some are physical properties:

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Some are genetic properties:

    \n
    \n
    \n

    \n

    Some are ecological properties (yes, the cheetah is not the apex predator):

    \n
    \n
    \n

    \n

    It’s useful to be able to get properties of individual species, but the real power of our curated computable data shows up when one does larger-scale analyses. Like here’s a plot of the lengths of genomes for organisms with the longest ones across our collection of organisms:

    \n
    \n
    \n

    \n

    Or here’s a histogram of the genome lengths for organisms in the human gut microbiome:

    \n
    \n
    \n

    \n

    And here’s a scatterplot of the lifespans of birds against their weights:

    \n
    \n
    \n

    \n

    Following the idea that cheetahs aren’t apex predators, this is a graph of what’s “above” them in the food chain:

    \n
    \n
    \n

    \n

    Chemical Computation

    \n

    We began the process of introducing chemical computation into the Wolfram Language in Version 12.0, and by Version 13 we had good coverage of atoms, molecules, bonds and functional groups. Now in Version 14 we’ve added coverage of chemical formulas, amounts of chemicals—and chemical reactions.

    \n

    Here’s a chemical formula, that basically just gives a “count of atoms”:

    \n
    \n
    \n

    \n

    Now here are specific molecules with that formula:

    \n
    \n
    \n

    \n

    Let’s pick one of these molecules:

    \n
    \n
    \n

    \n

    Now in Version 14 we have a way to represent a certain quantity of molecules of a given type—here 1 gram of methylcyclopentane:

    \n
    \n
    \n

    \n

    ChemicalConvert can convert to a different specification of quantity, here moles:

    \n
    \n
    \n

    \n

    And here a count of molecules:

    \n
    \n
    \n

    \n

    But now the bigger story is that in Version 14 we can represent not just individual types of molecules, and quantities of molecules, but also chemical reactions. Here we give a “sloppy” unbalanced representation of a reaction, and ReactionBalance gives us the balanced version:

    \n
    \n
    \n

    \n

    And now we can extract the formulas for the reactants:

    \n
    \n
    \n

    \n

    We can also give a chemical reaction in terms of molecules:

    \n
    \n
    \n

    \n

    But with our symbolic representation of molecules and reactions, there’s now a big thing we can do: represent classes of reactions as “pattern reactions”, and work with them using the same kinds of concepts as we use in working with patterns for general expressions. So, for example, here’s a symbolic representation of the hydrohalogenation reaction:

    \n
    \n
    \n

    \n

    Now we can apply this pattern reaction to particular molecules:

    \n
    \n
    \n

    \n

    Here’s a more elaborate example, in this case entered using a SMARTS string:

    \n
    \n
    \n

    \n

    Here we’re applying the reaction just once:

    \n
    \n
    \n

    \n

    And now we’re doing it repeatedly

    \n
    \n
    \n

    \n

    in this case generating longer and longer molecules (which in this case happen to be polypeptides):

    \n
    \n
    \n

    The Knowledgebase Is Always Growing

    \n

    Every minute of every day, new data is being added to the Wolfram Knowledgebase. Much of it is coming automatically from real-time feeds. But we also have a very large-scale ongoing curation effort with humans in the loop. We’ve built sophisticated (Wolfram Language) automation for our data curation pipeline over the years—and this year we’ve been able to increase efficiency in some areas by using LLM technology. But it’s hard to do curation right, and our long-term experience is that to do so ultimately requires human experts being in the loop, which we have.

    \n

    So what’s new since Version 13.0? 291,842 new notable current and historical people; 264,467 music works; 118,538 music albums; 104,024 named stars; and so on. Sometimes the addition of an entity is driven by the new availability of reliable data; often it’s driven by the need to use that entity in some other piece of functionality (e.g. stars to render in AstroGraphics). But more than just adding entities there’s the issue of filling in values of properties of existing entities. And here again we’re always making progress, sometimes integrating newly available large-scale secondary data sources, and sometimes doing direct curation ourselves from primary sources.

    \n

    A recent example where we needed to do direct curation was in data on alcoholic beverages. We have very extensive data on hundreds of thousands of types of foods and drinks. But none of our large-scale sources included data on alcoholic beverages. So that’s an area where we need to go to primary sources (in this case typically the original producers of products) and curate everything for ourselves.

    \n

    So, for example, we can now ask for something like the distribution of flavors of different varieties of vodka (actually, personally, not being a consumer of such things, I had no idea vodka even had flavors…):

    \n
    \n
    \n

    \n

    But beyond filling out entities and properties of existing types, we’ve also steadily been adding new entity types. One recent example is geological formations, 13,706 of them:

    \n
    \n
    \n

    \n

    So now, for example, we can specify where T. rex have been found

    \n
    \n
    \n

    \n

    and we can show those regions on a map:

    \n
    \n
    \n

    \n

    Industrial-Strength Multidomain PDEs

    \n

    PDEs are hard. It’s hard to solve them. And it’s hard to even specify what exactly you want to solve. But we’ve been on a multi-decade mission to “consumerize” PDEs and make them easier to work with. Many things go into this. You need to be able to easily specify elaborate geometries. You need to be able to easily define mathematically complicated boundary conditions. You need to have a streamlined way to set up the complicated equations that come out of underlying physics. Then you have to—as automatically as possible—do the sophisticated numerical analysis to efficiently solve the equations. But that’s not all. You also often need to visualize your solution, compute other things from it, or run optimizations of parameters over it.

    \n

    It’s a deep use of what we’ve built with Wolfram Language—touching many parts of the system. And the result is something unique: a truly streamlined and integrated way to handle PDEs. One’s not dealing with some (usually very expensive) “just for PDEs” package; what we now have is a “consumerized” way to handle PDEs whenever they’re needed—for engineering, science, or whatever. And, yes, being able to connect machine learning, or image computation, or curated data, or data science, or real-time sensor feeds, or parallel computing, or, for that matter, Wolfram Notebooks, to PDEs just makes them so much more valuable.

    \n

    We’ve had “basic, raw NDSolve” since 1991. But what’s taken decades to build is all the structure around that to let one conveniently set up—and efficiently solve—real-world PDEs, and connect them into everything else. It’s taken developing a whole tower of underlying algorithmic capabilities such as our more-flexible-and-integrated-than-ever-before industrial-strength computational geometry and finite element methods. But beyond that it’s taken creating a language for specifying real-world PDEs. And here the symbolic nature of the Wolfram Language—and our whole design framework—has made possible something very unique, that has allowed us to dramatically simplify and consumerize the use of PDEs.

    \n

    It’s all about providing symbolic “construction kits” for PDEs and their boundary conditions. We started this about five years ago, progressively covering more and more application areas. In Version 14 we’ve particularly focused on solid mechanics, fluid mechanics, electromagnetics and (one-particle) quantum mechanics.

    \n

    Here’s an example from solid mechanics. First, we define the variables we’re dealing with (displacement and underlying coordinates):

    \n
    \n
    \n

    \n

    Next, we specify the parameters we want to use to describe the solid material we’re going to work with:

    \n
    \n
    \n

    \n

    Now we can actually set up our PDE—using symbolic PDE specifications like SolidMechanicsPDEComponent—here for the deformation of a solid object pulled on one side:

    \n
    \n
    \n

    \n

    And, yes, “underneath”, these simple symbolic specifications turn into a complicated “raw” PDE:

    \n
    \n
    \n

    \n

    Now we are ready to actually solve our PDE in a particular region, i.e. for an object with a particular shape:

    \n
    \n
    \n

    \n

    And now we can visualize the result, which shows how our object stretches when it’s pulled on:

    \n
    \n
    \n

    \n

    The way we’ve set things up, the material for our object is an idealization of something like rubber. But in the Wolfram Language we now have ways to specify all sorts of detailed properties of materials. So, for example, we can add reinforcement as a unit vector in a particular direction (say in practice with fibers) to our material:

    \n
    \n
    \n

    \n

    Then we can rerun what we did before

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    but now we get a slightly different result:

    \n
    \n
    \n

    \n

    Another major PDE domain that’s new in Version 14.0 is fluid flow. Let’s do a 2D example. Our variables are 2D velocity and pressure:

    \n
    \n
    \n

    \n

    Now we can set up our fluid system in a particular region, with no-slip conditions on all walls except at the top where we assume fluid is flowing from left to right. The only parameter needed is the Reynolds number. And instead of just solving our PDEs for a single Reynolds number, let’s create a parametric solver that can take any specified Reynolds number:

    \n
    \n
    \n

    \n

    Now here’s the result for Reynolds number 100:

    \n
    \n
    \n

    \n

    But with the way we’ve set things up, we can as well generate a whole video as a function of Reynolds number (and, yes, the Parallelize speeds things up by generating different frames in parallel):

    \n
    \n

    \n
    \n

    \n

    Much of our work in PDEs involves catering to the complexities of real-world engineering situations. But in Version 14.0 we’re also adding features to support “pure physics”, and in particular to support quantum mechanics done with the Schrödinger equation. So here, for example, is the 2D 1-particle Schrödinger equation (with ):

    \n
    \n
    \n

    \n

    Here’s the region we’re going to be solving over—showing explicit discretization:

    \n
    \n
    \n

    \n

    Now we can solve the equation, adding in some boundary conditions:

    \n
    \n
    \n

    \n

    And now we get to visualize a Gaussian wave packet scattering around a barrier:

    \n
    \n
    \n

    \n

    Streamlining Systems Engineering Computation

    \n

    Systems engineering is a big field, but it’s one where the structure and capabilities of the Wolfram Language provide unique advantages—that over the past decade have allowed us to build out rather complete industrial-strength support for modeling, analysis and control design for a wide range of types of systems. It’s all an integrated part of the Wolfram Language, accessible through the computational and interface structure of the language. But it’s also integrated with our separate Wolfram System Modeler product, that provides a GUI-based workflow for system modeling and exploration.

    \n

    Shared with System Modeler are large collections of domain-specific modeling libraries. And, for example, since Version 13, we’ve added libraries in areas such as battery engineering, hydraulic engineering and aircraft engineering—as well as educational libraries for mechanical engineering, thermal engineering, digital electronics, and biology. (We’ve also added libraries for areas such as business and public policy simulation.)

    \n

    Domain-specific modeling libraries

    \n

    A typical workflow for systems engineering begins with the setting up of a model. The model can be built from scratch, or assembled from components in model libraries—either visually in Wolfram System Modeler, or programmatically in the Wolfram Language. For example, here’s a model of an electric motor that’s turning a load through a flexible shaft:

    \n
    \n
    \n

    \n

    Once one’s got a model, one can then simulate it. Here’s an example where we’ve set one parameter of our model (the moment of inertia of the load), and we’re computing the values of two others as a function of time:

    \n
    \n
    \n

    \n

    A new capability in Version 14.0 is being able to see the effect of uncertainty in parameters (or initial values, etc.) on the behavior of a system. So here, as an example, we’re saying the value of the parameter is not definite, but is instead distributed according to a normal distribution—then we’re seeing the distribution of output results:

    \n
    \n
    \n

    \n

    The motor with flexible shaft that we’re looking at can be thought of as a “multidomain system”, combining electrical and mechanical components. But the Wolfram Language (and Wolfram System Modeler) can also handle “mixed systems”, combining analog and digital (i.e. continuous and discrete) components. Here’s a fairly sophisticated example from the world of control systems: a helicopter model connected in a closed loop to a digital control system:

    \n

    Helicopter model

    \n

    This whole model system can be represented symbolically just by:

    \n
    \n
    \n

    \n

    And now we compute the input-output response of the model:

    \n
    \n
    \n

    \n

    Here’s specifically the output response:

    \n
    \n
    \n

    \n

    But now we can “drill in” and see specific subsystem responses, here of the zero-order hold device (labeled ZOH above)—complete with its little digital steps:

    \n
    \n
    \n

    \n

    But what if we want to design the control systems ourselves? Well, in Version 14 we can now apply all our Wolfram Language control systems design functionality to arbitrary system models. Here’s an example of a simple model, in this case in chemical engineering (a continuously stirred tank):

    \n
    \n
    \n

    \n

    Now we can take this model and design an LQG controller for it—then assemble a whole closed-loop system for it:

    \n
    \n
    \n

    \n

    Now we can simulate the closed-loop system—and see that the controller succeeds in bringing the final value to 0:

    \n
    \n
    \n

    \n

    Graphics: More Beautiful & Alive

    \n

    Graphics have always been an important part of the story of the Wolfram Language, and for more than three decades we’ve been progressively enhancing and updating their appearance and functionality—sometimes with help from advances in hardware (e.g. GPU) capabilities.

    \n

    Since Version 13 we’ve added a variety of “decorative” (or “annotative”) effects in 2D graphics. One example (useful for putting captions on things) is Haloing:

    \n
    \n
    \n

    \n

    Another example is DropShadowing:

    \n
    \n
    \n

    \n

    All of these are specified symbolically, and can be used throughout the system (e.g. in hover effects, etc). And, yes, there are many detailed parameters you can set:

    \n
    \n
    \n

    \n

    A significant new capability in Version 14.0 is convenient texture mapping. We’ve had low-level polygon-by-polygon textures for a decade and a half. But now in Version 14.0 we’ve made it straightforward to map textures onto whole surfaces. Here’s an example wrapping a texture onto a sphere:

    \n
    \n
    \n

    \n

    And here’s wrapping the same texture onto a more complicated surface:

    \n
    \n
    \n

    \n

    A significant subtlety is that there are many ways to map what amount to “texture coordinate patches” onto surfaces. The documentation illustrates new, named cases:

    \n

    Texture coordinate patches

    \n

    And now here’s what happens with stereographic projection onto a sphere:

    \n
    \n
    \n

    \n

    Here’s an example of “surface texture” for the planet Venus

    \n
    \n
    \n

    \n

    and here it’s been mapped onto a sphere, which can be rotated:

    \n
    \n
    \n

    \n

    Here’s a “flowerified” bunny:

    \n
    \n
    \n

    \n

    Things like texture mapping help make graphics visually compelling. Since Version 13 we’ve also added a variety of “live visualization” capabilities that automatically “bring visualizations to life”. For example, any plot now by default has a “coordinate mouseover”:

    \n
    \n
    \n

    \n

    As usual, there’s lots of ways to control such “highlighting” effects:

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Euclid Redux: The Advance of Synthetic Geometry

    \n

    One might say it’s been two thousand years in the making. But four years ago (Version 12) we began to introduce a computable version of Euclid-style synthetic geometry.

    \n

    The idea is to specify geometric scenes symbolically by giving a collection of (potentially implicit) constraints:

    \n
    \n
    \n

    \n

    We can then generate a random instance of geometry consistent with the constraints—and in Version 14 we’ve considerably enhanced our ability to make sure that geometry will be “typical” and non-degenerate:

    \n
    \n
    \n

    \n

    But now a new feature of Version 14 is that we can find values of geometric quantities that are determined by the constraints:

    \n
    \n
    \n

    \n

    Here’s a slightly more complicated case:

    \n
    \n
    \n

    \n

    And here we’re now solving for the areas of two triangles in the figure:

    \n
    \n
    \n

    \n

    We’ve always been able to give explicit styles for particular elements of a scene:

    \n
    \n
    \n

    \n

    Now one of the new features in Version 14 is being able to give general “geometric styling rules”, here just assigning random colors to each element:

    \n
    \n
    \n

    \n

    The Ever-Smoother User Interface

    \n

    Our goal with Wolfram Language is to make it as easy as possible to express oneself computationally. And a big part of achieving that is the coherent design of the language itself. But there’s another part as well, which is being able to actually enter Wolfram Language input one wants—say in a notebook—as easily as possible. And with every new version we make enhancements to this.

    \n

    One area that’s been in continuous development is interactive syntax highlighting. We first added syntax highlighting nearly two decades ago—and over time we’ve progressively made it more and more sophisticated, responding both as you type, and as code gets executed. Some highlighting has always had obvious meaning. But particularly highlighting that is dynamic and based on cursor position has sometimes been harder to interpret. And in Version 14—leveraging the brighter color palettes that have become the norm in recent years—we’ve tuned our dynamic highlighting so it’s easier to quickly tell “where you are” within the structure of an expression:

    \n

    Dynamic highlighting

    \n

    On the subject of “knowing what one has”, another enhancement—added in Version 13.2—is differentiated frame coloring for different kinds of visual objects in notebooks. Is that thing one has a graphic? Or an image? Or a graph? Now one can tell from the color of frame when one selects it:

    \n

    Differentiated frame coloring

    \n

    An important aspect of the Wolfram Language is that the names of built-in functions are spelled out enough that it’s easy to tell what they do. But often the names are therefore necessarily quite long, and so it’s important to be able to autocomplete them when one’s typing. In 13.3 we added the notion of “fuzzy autocompletion” that not only “completes to the end” a name one’s typing, but also can fill in intermediate letters, change capitalization, etc. Thus, for example, just typing lll brings up an autocompletion menu that begins with ListLogLogPlot:

    \n

    Autocompletion menu

    \n

    A major user interface update that first appeared in Version 13.1—and has been enhanced in subsequent versions—is a default toolbar for every notebook:

    \n

    Default toolbar

    \n

    The toolbar provides immediate access to evaluation controls, cell formatting and various kinds of input (like inline cells, , hyperlinks, drawing canvas, etc.)—as well as to things like Menu options cloud publishing, Menu options documentation search and Menu options “chat” (i.e. LLM) settings.

    \n

    Much of the time, it’s useful to have the toolbar displayed in any notebook you’re working with. But on the left-hand side there’s a little tiny that lets you minimize the toolbar:

    \n

    Minimize toolbar

    \n

    In 14.0 there’s a Preferences setting that makes the toolbar come up minimized in any new notebook you create—and this in effect gives you the best of both worlds: you have immediate access to the toolbar, but your notebooks don’t have anything “extra” that might distract from their content.

    \n

    Another thing that’s advanced since Version 13 is the handling of “summary” forms of output in notebooks. A basic example is what happens if you generate a very large result. By default only a summary of the result is actually displayed. But now there’s a bar at the bottom that gives various options for how to handle the actual output:

    \n
    \n
    \n

    \n

    By default, the output is only stored in your current kernel session. But by pressing the Iconize button you get an iconized form that will appear directly in your notebook (or one that can be copied anywhere) and that “has the whole output inside”. There’s also a Store full expression in notebook button, which will “invisibly” store the output expression “behind” the summary display.

    \n

    If the expression is stored in the notebook, then it’ll be persistent across kernel sessions. Otherwise, well, you won’t be able to get to it in a different kernel session; the only thing you’ll have is the summary display:

    \n

    Summary display

    \n

    It’s a similar story for large “computational objects”. Like here’s a Nearest function with a million data points:

    \n
    \n
    \n

    \n

    By default, the data is just something that exists in your current kernel session. But now there’s a menu that lets you save the data in various persistent locations:

    \n

    Save data menu

    \n

    And There’s the Cloud Too

    \n

    There are many ways to run the Wolfram Language. Even in Version 1.0 we had the notion of remote kernels: the notebook front end running on one machine (in those days essentially always a Mac, or a NeXT), and the kernel running on a different machine (in those days sometimes even connected by phone lines). But a decade ago came a major step forward: the Wolfram Cloud.

    \n

    There are really two distinct ways in which the cloud is used. The first is in delivering a notebook experience similar to our longtime desktop experience, but running purely in a browser. And the second is in delivering APIs and other programmatically accessed capabilities—notably, even at the beginning, a decade ago, through things like APIFunction.

    \n

    The Wolfram Cloud has been the target of intense development now for nearly 15 years. Alongside it have also come Wolfram Application Server and Wolfram Web Engine, which provide more streamlined support specifically for APIs (without things like user management, etc., but with things like clustering).

    \n

    All of these—but particularly the Wolfram Cloud—have become core technology capabilities for us, supporting many of our other activities. So, for example, the Wolfram Function Repository and Wolfram Paclet Repository are both based on the Wolfram Cloud (and in fact this is true of our whole resource system). And when we came to build the Wolfram plugin for ChatGPT earlier this year, using the Wolfram Cloud allowed us to have the plugin deployed within a matter of days.

    \n

    Since Version 13 there have been quite a few very different applications of the Wolfram Cloud. One is for the function ARPublish, which takes 3D geometry and puts it in the Wolfram Cloud with appropriate metadata to allow phones to get augmented-reality versions from a QR code of a cloud URL:

    \n
    \n
    \n

    \n

    Augmented-reality triptych

    \n

    On the Cloud Notebook side, there’s been a steady increase in usage, notably of embedded Cloud Notebooks, which have for example become common on Wolfram Community, and are used all over the Wolfram Demonstrations Project. Our goal all along has been to make Cloud Notebooks be as easy to use as simple webpages, but to have the depth of capabilities that we’ve developed in notebooks over the past 35 years. We achieved this some years ago for fairly small notebooks, but in the past couple of years we’ve been going progressively further in handling even multi-hundred-megabyte notebooks. It’s a complicated story of caching, refreshing—and dodging the vicissitudes of web browsers. But at this point the vast majority of notebooks can be seamlessly deployed to the cloud, and will display as immediately as simple webpages.

    \n

    The Great Integration Story for External Code

    \n

    It’s been possible to call external code from Wolfram Language ever since Version 1.0. But in Version 14 there are important advances in the extent and ease with which external code can be integrated. The overall goal is to be able to use all the power and coherence of the Wolfram Language even when some part of a computation is done in external code. And in Version 14 we’ve done a lot to streamline and automate the process by which external code can be integrated into the language.

    \n

    Once something is integrated into the Wolfram Language it just becomes, for example, a function that can be used just like any other Wolfram Language function. But what’s underneath is necessarily quite different for different kinds of external code. There’s one setup for interpreted languages like Python. There’s another for C-like compiled languages and dynamic libraries. (And then there are others for external processes, APIs, and what amount to “importable code specifications”, say for neural networks.)

    \n

    Let’s start with Python. We’ve had ExternalEvaluate for evaluating Python code since 2018. But when you actually come to use Python there are all these dependencies and libraries to deal with. And, yes, that’s one of the places where the incredible advantages of the Wolfram Language and its coherent design are painfully evident. But in Version 14.0 we now have a way to encapsulate all that Python complexity, so that we can deliver Python functionality within Wolfram Language, hiding all the messiness of Python dependencies, and even the versioning of Python itself.

    \n

    As an example, let’s say we want to make a Wolfram Language function Emojize that uses the Python function emojize within the emoji Python library. Here’s how we can do that:

    \n
    \n
    \n

    \n

    And now you can just call Emojize in the Wolfram Language and—under the hood—it’ll run Python code:

    \n
    \n
    \n

    \n

    The way this works is that the first time you call Emojize, a Python environment with all the right features is created, then is cached for subsequent uses. And what’s important is that the Wolfram Language specification of Emojize is completely system independent (or as system independent as it can be, given vicissitudes of Python implementations). So that means that you can, for example, deploy Emojize in the Wolfram Function Repository just like you would deploy something written purely in Wolfram Language.

    \n

    There’s very different engineering involved in calling C-compatible functions in dynamic libraries. But in Version 13.3 we also made this very streamlined using the function ForeignFunctionLoad. There’s all sorts of complexity associated with converting to and from native C data types, managing memory for data structures, etc. But we’ve now got very clean ways to do this in Wolfram Language.

    \n

    As an example, here’s how one sets up a “foreign function” call to a function RAND_bytes in the OpenSSL library:

    \n
    \n
    \n

    \n

    Inside this, we’re using Wolfram Language compiler technology to specify the native C types that will be used in the foreign function. But now we can package this all up into a Wolfram Language function:

    \n
    \n
    \n

    \n

    And we can call this function just like any other Wolfram Language function:

    \n
    \n
    \n

    \n

    Internally, all sorts of complicated things are going on. For example, we’re allocating a raw memory buffer that’s then getting fed to our C function. But when we do that memory allocation we’re creating a symbolic structure that defines it as a “managed object”:

    \n
    \n
    \n

    \n

    And now when this object is no longer being used, the memory associated with it will be automatically freed.

    \n

    And, yes, with both Python and C there’s quite a bit of complexity underneath. But the good news is that in Version 14 we’ve basically been able to automate handling it. And the result is that what gets exposed is pure, simple Wolfram Language.

    \n

    But there’s another big piece to this. Within particular Python or C libraries there are often elaborate definitions of data structures that are specific to that library. And so to use these libraries one has to dive into all the—potentially idiosyncratic—complexities of those definitions. But in the Wolfram Language we have consistent symbolic representations for things, whether they’re images, or dates or types of chemicals. When you first hook up an external library you have to map its data structures to these. But once that’s done, anyone can use what’s been built, and seamlessly integrate with other things they’re doing, perhaps even calling other external code. In effect what’s happening is that one’s leveraging the whole design framework of the Wolfram Language, and applying that even when one’s using underlying implementations that aren’t based on the Wolfram Language.

    \n

    For Serious Developers

    \n

    A single line (or less) of Wolfram Language code can do a lot. But one of the remarkable things about the language is that it’s fundamentally scalable: good both for very short programs and very long programs. And since Version 13 there’ve been several advances in handling very long programs. One of them concerns “code editing”.

    \n

    Standard Wolfram Notebooks work very well for exploratory, expository and many other forms of work. And it’s certainly possible to write large amounts of code in standard notebooks (and, for example, I personally do it). But when one’s doing “software-engineering-style work” it’s both more convenient and more familiar to use what amounts to a pure code editor, largely separate from code execution and exposition. And this is why we have the “package editor”, accessible from File > New > Package/Script. You’re still operating in the notebook environment, with all its sophisticated capabilities. But things have been “skinned” to provide a much more textual “code experience”—both in terms of editing, and in terms of what actually gets saved in .wl files.

    \n

    Here’s typical example of the package editor in action (in this case applied to our GitLink package):

    \n

    Package editor

    \n

    Several things are immediately evident. First, it’s very line oriented. Lines (of code) are numbered, and don’t break except at explicit newlines. There are headings just like in ordinary notebooks, but when the file is saved, they’re stored as comments with a certain stylized structure:

    \n

    Lines of code

    \n

    It’s still perfectly possible to run code in the package editor, but the output won’t get saved in the .wl file:

    \n

    Unsaved output

    \n

    One thing that’s changed since Version 13 is that the toolbar is much enhanced. And for example there’s now “smart search” that is aware of code structure:

    \n

    Smart search

    \n

    You can also ask to go to a line number—and you’ll immediately see whatever lines of code are nearby:

    \n

    Nearby lines of code

    \n

    In addition to code editing, another set of features new since Version 13 of importance to serious developers concern automated testing. The main advance is the introduction of a fully symbolic testing framework, in which individual tests are represented as symbolic objects

    \n
    \n
    \n

    \n

    and can be manipulated in symbolic form, then run using functions like TestEvaluate and TestReport:

    \n
    \n
    \n

    \n

    In Version 14.0 there’s another new testing function—IntermediateTest—that lets you insert what amount to checkpoints inside larger tests:

    \n
    \n
    \n

    \n

    Evaluating this test, we see that the intermediate tests were also run:

    \n
    \n
    \n

    \n

    Wolfram Function Repository: 2900 Functions & Counting

    \n

    The Wolfram Function Repository has been a big success. We introduced it in 2019 as a way to make specific, individual contributed functions available in the Wolfram Language. And now there are more than 2900 such functions in the Repository.

    \n

    The nearly 7000 functions that constitute the Wolfram Language as it is today have been painstakingly developed over the past three and a half decades, always mindful of creating a coherent whole with consistent design principles. And now in a sense the success of the Function Repository is one of the dividends of all that effort. Because it’s the coherence and consistency of the underlying language and its design principles that make it feasible to just add one function at a time, and have it really work. You want to add a function to do some very specific operation that combines images and graphs. Well, there’s a consistent representation of both images and graphs in the Wolfram Language, which you can leverage. And by following the principles of the Wolfram Language—like for the naming of functions—you can create a function that’ll be easy for Wolfram Language users to understand and use.

    \n

    Using the Wolfram Function Repository is a remarkably seamless process. If you know the function’s name, you can just call it using ResourceFunction; the function will be loaded if it’s needed, and then it’ll just run:

    \n
    \n
    \n

    \n

    If there’s an update available for the function, it’ll give you a message, but run the old version anyway. The message has a button that lets you load in the update; then you can rerun your input and use the new version. (If you’re writing code where you want to “burn in” a particular version of a function, you can just use the ResourceVersion option of ResourceFunction.)

    \n

    If you want your code to look more elegant, just evaluate the ResourceFunction object

    \n
    \n
    \n

    \n

    and use the formatted version:

    \n
    \n
    \n

    \n

    And, by the way, pressing the + then gives you more information about the function:

    \n

    Function information

    \n

    An important feature of functions in the Function Repository is that they all have documentation pages—that are organized pretty much like the pages for built-in functions:

    \n

    SolarEclipseIcon function page

    \n

    But how does one create a Function Repository entry? Just go to File > New > Repository Item > Function Repository Item and you’ll get a Definition Notebook:

    \n

    Definition notebook

    \n

    We’ve optimized this to be as easy to fill in as possible, minimizing boilerplate and automatically checking for correctness and consistency whenever possible. And the result is that it’s perfectly realistic to create a simple Function Repository item in under an hour—with the main time spent being in the writing of good expository examples.

    \n

    When you press Submit to Repository your function gets sent to the Wolfram Function Repository review team, whose mandate is to ensure that functions in the repository do what they say they do, work in a way that is consistent with general Wolfram Language design principles, have good names, and are adequately documented. Except for very specialized functions, the goal is to finish reviews within a week (and sometimes considerably sooner)—and to publish functions as soon as they are ready.

    \n

    There’s a digest of new (and updated) functions in the Function Repository that gets sent out every Friday—and makes for interesting reading (you can subscribe here):

    \n

    Wolfram Function Repository email

    \n

    The Wolfram Function Repository is a curated public resource that can be accessed from any Wolfram Language system (and, by the way, the source code for every function is available—just press the Source Notebook button). But there’s another important use case for the infrastructure of the Function Repository: privately deployed “resource functions”.

    \n

    It all works through the Wolfram Cloud. You use the exact same Definition Notebook, but now instead of submitting to the public Wolfram Function Repository, you just deploy your function to the Wolfram Cloud. You can make it private so that only you, or some specific group, can access it. Or you can make it public, so anyone who knows its URL can immediately access and use it in their Wolfram Language system.

    \n

    This turns out to be a tremendously useful mechanism, both for group projects, and for creating published material. In a sense it’s a very lightweight but robust way to distribute code—packaged into functions that can immediately be used. (By the way, to find the functions you’ve published from your Wolfram Cloud account, just go to the DeployedResources folder in the cloud file browser.)

    \n

    (For organizations that want to manage their own function repository, it’s worth mentioning that the whole Wolfram Function Repository mechanism—including the infrastructure for doing reviews, etc.—is also available in a private form through the Wolfram Enterprise Private Cloud.)

    \n

    So what’s in the public Wolfram Function Repository? There are a lot of “specialty functions” intended for specific “niche” purposes—but very useful if they’re what you want:

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    There are functions that add various kinds of visualizations:

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Some functions set up user interfaces:

    \n
    \n
    \n

    \n

    Some functions link to external services:

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Some functions provide simple utilities:

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    There are also functions that are being explored for potential inclusion in the core system:

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    There are also lots of “leading-edge” functions, added as part of research or exploratory development. And for example in pieces I write (including this one), I make a point of having all pictures and other output be backed by “click-to-copy” code that reproduces them—and this code quite often contains functions either from the public Wolfram Function Repository or from (publicly accessible) private deployments.

    \n

    The Paclet Repository Arrives

    \n

    Paclets are a technology we’ve used for more than a decade and a half to distribute updated functionality to Wolfram Language systems in the field. In Version 13 we began the process of providing tools for anyone to create paclets. And since Version 13 we’ve introduced the Wolfram Language Paclet Repository as a centralized repository for paclets:

    \n

    Wolfram Paclet Repository

    \n

    What is a paclet? It’s a collection of Wolfram Language functionality—including function definitions, documentation, external libraries, stylesheets, palettes and more—that can be distributed as a unit, and immediately deployed in any Wolfram Language system.

    \n

    The Paclet Repository is a centralized place where anyone can publish paclets for public distribution. So how does this relate to the Wolfram Function Repository? They are interestingly complementary—with different optimization and different setups. The Function Repository is more lightweight, the Paclet Repository more flexible. The Function Repository is for making available individual new functions, that independently fit into the whole existing structure of the Wolfram Language. The Paclet Repository is for making available larger-scale pieces of functionality, that can define a whole framework and environment of their own.

    \n

    The Function Repository is also fully curated, with every function being reviewed by our team before it is posted. The Paclet Repository is an immediate-deployment system, without pre-publication review. In the Function Repository every function is specified just by its name—and our review team is responsible for ensuring that names are well chosen and have no conflicts. In the Paclet Repository, every contributor gets their own namespace, and all their functions and other material live inside that namespace. So, for example, I contributed the function RandomHypergraph to the Function Repository, which can be accessed just as ResourceFunction[\"RandomHypergraph\"]. But if I had put this function in a paclet in the Paclet Repository, it would have to be accessed as something like PacletSymbol[\"StephenWolfram/Hypergraphs\", \"RandomHypergraph\"].

    \n

    PacletSymbol, by the way, is a convenient way of “deep accessing” individual functions inside a paclet. PacletSymbol temporarily installs (and loads) a paclet so that you can access a particular symbol in it. But more often one wants to permanently install a paclet (using PacletInstall), then explicitly load its contents (using Needs) whenever one wants to have its symbols available. (All the various ancillary elements, like documentation, stylesheets, etc. in a paclet get set up when it is installed.)

    \n

    What does a paclet look like in the Paclet Repository? Every paclet has a home page that typically includes an overall summary, a guide to the functions in the paclet, and some overall examples of the paclet:

    \n

    ProteinVisualization page

    \n

    Individual functions typically have their own documentation pages:

    \n

    AmidePlanePlot page

    \n

    Just like in the main Wolfram Language documentation, there can be a whole hierarchy of guide pages, and there can be things like tutorials.

    \n

    Notice that in examples in paclet documentation, one often sees constructs like . These represent symbols in the paclet, presented in forms like PacletSymbol[\"WolframChemistry/ProteinVisualization\", \"AmidePlanePlot\"] that allow these symbols to be accessed in a “standalone” way. If you directly evaluate such a form, by the way, it’ll force (temporary) installation of the paclet, then return the actual, raw symbol that appears in the paclet:

    \n
    \n
    \n

    \n

    So how does one create a paclet suitable for submission to the Paclet Repository? You can do it purely programmatically, or you can start from File > New > Repository Item > Paclet Repository Item, which launches what amounts to a whole paclet creation IDE. The first step is to specify where you want to assemble your paclet. You give some basic information

    \n

    Submit paclet information

    \n

    then a Paclet Resource Definition Notebook is created, from which you can give function definitions, set up documentation pages, specify what you want your paclet’s home page to be like, etc.:

    \n

    Paclet Resource Definition Notebook

    \n

    There are lots of sophisticated tools that let you create full-featured paclets with the same kind of breadth and depth of capabilities that you find in the Wolfram Language itself. For example, Documentation Tools lets you construct full-featured documentation pages (function pages, guide pages, tutorials, …):

    \n

    Documentation Tools

    \n

    Once you’ve assembled a paclet, you can check it, build it, deploy it privately—or submit it to the Paclet Repository. And once you submit it, it will automatically get set up on the Paclet Repository servers, and within just a few minutes the pages you’ve created describing your paclet will show up on the Paclet Repository website.

    \n

    So what’s in the Paclet Repository so far? There’s a lot of good and very serious stuff, contributed both by teams at our company and by members of the broader Wolfram Language community. In fact, many of the 134 paclets now in the Paclet Repository have enough in them that there’s a whole piece like this that one could write about them.

    \n

    One category of things you’ll find in the Paclet Repository are snapshots of our ongoing internal development projects—many of which will eventually become built-in parts of the Wolfram Language. A good example of this is our LLM and Chat Notebook functionality, whose rapid development and deployment over the past year was made possible by the use of the Paclet Repository. Another example, representing ongoing work from our chemistry team (AKA WolframChemistry in the Paclet Repository) is the ChemistryFunctions paclet, which contains functions like:

    \n
    \n
    \n

    \n

    And, yes, this is interactive:

    \n
    \n
    \n

    \n

    Or, also from WolframChemistry:

    \n
    \n
    \n

    \n

    Another “development snapshot” is DiffTools—a paclet for making and viewing diffs between strings, cells, notebooks, etc.:

    \n
    \n
    \n

    \n

    A major paclet is QuantumFramework—which provides the functionality for our Wolfram Quantum Framework

    \n

    Wolfram Quantum Framework

    \n

    and delivers broad support for quantum computing (with at least a few connections to multiway systems and our Physics Project):

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Talking of our Physics Project, there are over 200 functions supporting it that are in the Wolfram Function Repository. But there are also paclets, like WolframInstitute/Hypergraph:

    \n
    \n
    \n

    \n

    An example of an externally contributed package is Automata—with more than 250 functions for doing computations related to finite automata:

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Another contributed paclet is FunctionalParsers, which goes from a symbolic parser specification to an actual parser, here being used in a reverse mode to generate random “sentences”:

    \n
    \n
    \n

    \n

    Phi4Tools is a more specialized paclet, for working with Feynman diagrams in field theory:

    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    And, as another example, here’s MaXrd, for crystallography and x-ray scattering:

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    As just one more example, there’s the Organizer paclet—a utility paclet for making and manipulating organizer notebooks. But unlike the other paclets we’ve seen here, it doesn’t expose any Wolfram Language functions; instead, when you install it, it puts a palette in your Palettes list:

    \n
    \n
    \n

    \n

    Organizer

    \n

    Coming Attractions

    \n

    As of today, Version 14 is finished, and out in the world. So what’s next? We have lots of projects underway—some already with years of development behind them. Some extend and strengthen what’s already in the Wolfram Language; some take it in new directions.

    \n

    One major focus is broadening and streamlining the deployment of the language: unifying the way it’s delivered and installed on computers, packaging it so it can be efficiently integrated into other standalone applications, etc.

    \n

    Another major focus is expanding the handling of very large amounts of data by the Wolfram Language—and seamlessly integrating out-of-core and lazy processing.

    \n

    Then of course there’s algorithmic development. Some is “classical”, directly building on the towers of functionality we’ve developed over the decades. Some is more “AI based”. We’ve been creating heuristic algorithms and meta-algorithms ever since Version 1.0—increasingly using methods from machine learning. How far will neural net methods go? We don’t know yet. We’re routinely using them in things like algorithm selection. But to what extent can they help in the heart of algorithms?

    \n

    I’m reminded of something we did back in 1987 in developing Version 1.0. There was a long tradition in numerical analysis of painstakingly deriving series approximations for particular cases of mathematical functions. But we wanted to be able to compute hundreds of different functions to arbitrary precision for any complex values of their arguments. So how did we do it? We generalized from series to rational approximations—and then, in a very “machine-learning-esque” way—we spent months of CPU time systematically optimizing these approximations. Well, we’ve been trying to do the same kind of thing again—though now over more ambitious domains—and now using not rational functions but large neural nets as our basis.

    \n

    We’ve also been exploring using neural nets to “control” precise algorithms, in effect making heuristic choices which either guide or can be validated by the precise algorithms. So far, none of what we’ve produced has outperformed our existing methods, but it seems plausible that fairly soon it will.

    \n

    We’re doing a lot with various aspects of metaprogramming. There’s the project of
    \ngetting LLMs to help in the construction of Wolfram Language code—and in giving comments on it, and in analyzing what went wrong if the code didn’t do what one expected. Then there’s code annotation—where LLMs may help in doing things like predicting the most likely type for something. And there’s code compilation. We’ve been working for many years on a full-scale compiler for the Wolfram Language, and in every version what we have becomes progressively more capable. We’ve been doing some level of automatic compilation in particular cases (particularly ones involving numerical computation) for more than 30 years. And eventually full-scale automatic compilation will be possible for everything. But as of now some of the biggest payoffs from our compiler technology have been for our internal development, where we can now get optimal down-to-the-metal performance simply by compiled (albeit carefully written) Wolfram Language code.

    \n

    One of the big lessons of the surprising success of LLMs is that there’s potentially more structure in meaningful human language than we thought. I’ve long been interested in creating what I’ve called a “symbolic discourse language” that gives a computational representation of everyday discourse. The LLMs haven’t explicitly done that. But they encourage the idea that it should be possible, and they also provide practical help in doing it. And whether the goal is to be able to represent narrative text, or contracts, or textual specifications, it’s a matter of extending the computational language we’ve built to encompass more kinds of concepts and structures.

    \n

    There are typically several kinds of drivers for our continued development efforts. Sometimes it’s a question of continuing to build a tower of capabilities in some known direction (like, for example, solving PDEs). Sometimes the tower we’ve built suddenly lets us see new possibilities. Sometimes when we actually use what we’ve built we realize there’s an obvious way to polish or extend it—or to “double down” on something that we can now see is valuable. And then there are cases where things happening in the technology world suddenly open up new possibilities—like LLMs have recently done, and perhaps XR will eventually do. And finally there are cases where new science-related insights suggest new directions.

    \n

    I had assumed that our Physics Project would at best have practical applications only centuries hence. But in fact it’s become clear that the correspondence it’s defined between physics and computation gives us quite immediate new ways to think about aspects of practical computation. And indeed we’re now actively exploring how to use this to define a new level of parallel and distributed computation in the Wolfram Language, as well as to represent symbolically not only the results of computations but also the ongoing process of computation.

    \n

    One might think that after nearly four decades of intense development there wouldn’t be anything left to do in developing the Wolfram Language. But in fact at every level we reach, there’s ever more that becomes possible, and ever more that can we see might be possible. And indeed this moment is a particularly fertile one, with an unprecedentedly broad waterfront of possibilities. Version 14 is an important and satisfying waypoint. But there are wonderful things ahead—as we continue our long-term mission to make the computational paradigm achieve its potential, and to build our computational language to help that happen.

    \n

    \n

    \n\n

    \n", "category": "Big Picture", "link": "https://writings.stephenwolfram.com/2024/01/the-story-continues-announcing-version-14-of-wolfram-language-and-mathematica/", "creator": "Stephen Wolfram", @@ -330,25 +330,91 @@ "highlights": [] }, { - "title": "Instant Plugins for ChatGPT: Introducing the Wolfram ChatGPT Plugin Kit", - "description": "\"\"This is part of an ongoing series about our LLM-related technology:ChatGPT Gets Its “Wolfram Superpowers”!Instant Plugins for ChatGPT: Introducing the Wolfram ChatGPT Plugin KitThe New World of LLM Functions: Integrating LLM Technology into the Wolfram LanguagePrompts for Work & Play: Launching the Wolfram Prompt RepositoryIntroducing Chat Notebooks: Integrating LLMs into the Notebook Paradigm", - "content": "\"\"\n

    This is part of an ongoing series about our LLM-related technology:ChatGPT Gets Its “Wolfram Superpowers”!Instant Plugins for ChatGPT: Introducing the Wolfram ChatGPT Plugin KitThe New World of LLM Functions: Integrating LLM Technology into the Wolfram LanguagePrompts for Work & Play: Launching the Wolfram Prompt RepositoryIntroducing Chat Notebooks: Integrating LLMs into the Notebook Paradigm

    \n

    \"Instant

    \n

    Build a New Plugin in under a Minute…

    \n

    A few weeks ago, in collaboration with OpenAI, we released the Wolfram plugin for ChatGPT, which lets ChatGPT use Wolfram Language and Wolfram|Alpha as tools, automatically called from within ChatGPT. One can think of this as adding broad “computational superpowers” to ChatGPT, giving access to all the general computational capabilities and computational knowledge in Wolfram Language and Wolfram|Alpha.

    \n

    But what if you want to make your own special plugin, that does specific computations, or has access to data or services that are for example available only on your own computer or computer system? Well, today we’re releasing a first version of a kit for doing that. And building on our whole Wolfram Language tech stack, we’ve managed to make the whole process extremely easy—to the point where it’s now realistic to deploy at least a basic custom ChatGPT plugin in under a minute.

    \n

    There’s some (very straightforward) one-time setup you need—authenticating with OpenAI, and installing the Plugin Kit. But then you’re off and running, and ready to create your first plugin.

    \n
    \n

    To run the examples here for yourself you’ll need:

    \n\n
    \n

    Here’s a very simple example. Let’s say you make up the idea of a “strength” for a word, defining it to be the sum of the “letter numbers” (“a” is 1, “b” is 2, etc.). In Wolfram Language you can compute this as:

    \n
    \n
    \n

    \n

    And for over a decade it’s been standard that you can instantly deploy such a computation as a web API in the Wolfram Cloud—immediately accessible through a web browser, external program, etc.:

    \n
    \n
    \n

    \n

    But today there’s a new form of deployment: as a plugin for ChatGPT. First, you say you need the Plugin Kit:

    \n
    \n
    \n

    \n

    Then you can immediately deploy your plugin. All it takes is:

    \n
    \n
    \n

    \n

    The final step is that you have to tell ChatGPT about your plugin. Within the web interface (as it’s currently configured), select Plugins > Plugin store > Develop your own plugin and insert the URL from the ChatGPTPluginDeployment (which you get by pressing the click-to-copy button ) into the dialog you get:

    \n

    ChatGPT plugin dialog

    \n

    Now everything’s ready. And you can start talking to ChatGPT about “word strengths”, and it’ll call your plugin (which by default is called “WolframCustom”) to compute them:

    \n
    \n
    \n

    \n

    Looking “inside the box” shows the communication ChatGPT had with the plugin:

    \n
    \n
    \n

    \n

    Without the plugin it won’t know what “letter strength” is. But with the plugin, it’ll be able to do all kinds of (rather remarkable) things with it—like this:

    \n
    \n
    \n

    \n

    The embellishment about properties of gnus is charming, but if one opens the boxes one can see how it got its answer—it just started trying different animals (“lion”, “zebra”, “gnu”):

    \n
    \n
    \n

    \n

    Software engineers will immediately notice that the plugin we’ve set up is running against localhost, i.e. it’s executing on your own computer. As we’ll discuss, this is often an incredibly useful thing to be able to do. But you can also use the Plugin Kit to create plugins that execute purely in the Wolfram Cloud (so that, for example, you don’t have to have a Wolfram Engine available on your computer).

    \n

    All you do is use ChatGPTPluginCloudDeploy—then you get a URL in the Wolfram Cloud that you can tell ChatGPT as the location of your plugin:

    \n
    \n
    \n

    \n

    And in fact you can do the whole setup directly in your web browser, without any local Wolfram installation. You just open a notebook in the Wolfram Cloud, and deploy your plugin from there:

    \n

    Wolfram Cloud notebook

    \n

    Let’s do some other examples. For our next example, let’s invent the concept of a “geo influence disk” and then deploy a plugin that renders such a thing (we’ll talk later about some details of what’s being done here):

    \n
    \n
    \n

    \n

    Now we can install this new plugin—and then start asking ChatGPT about “geo influence disks”:

    \n
    \n
    \n

    \n

    ChatGPT successfully calls the plugin, and brings back an image. Somewhat amusingly, it guesses (correctly, as it happens) what a “geo influence disk” is supposed to be. And remember, it can’t see the picture or read the code, so its guess has to be based only on the name of the API function and the question one asks. Of course, it has to effectively understand at least a bit in order to work out how to call the API function—and that x is supposed to be a location, and radius a distance.

    \n

    As another example, let’s make a plugin that sends the user (i.e. the person who deploys the plugin) a text message:

    \n
    \n
    \n

    \n

    Now just say “send me a message”

    \n
    \n
    \n

    \n

    and a text message will arrive—in this case with a little embellishment from ChatGPT:

    \n

    Rhinoceros alert

    \n

    Here’s a plugin that also sends an “alert picture” of an animal that’s mentioned:

    \n
    \n
    \n

    \n

    And, yes, there’s a lot of technology that needs to work to get this to happen:

    \n
    \n
    \n

    \n

    Gnu alert

    \n

    As another example, let’s make a plugin that retrieves personal data of mine—here heart rate data that I’ve been accumulating for several years in a Wolfram databin:

    \n
    \n
    \n

    \n

    Now we can use ChatGPT to ask questions about this data:

    \n
    \n
    \n

    \n

    And with the main Wolfram plugin also installed, we can immediately do actual computations on this data, all through ChatGPT’s “linguistic user interface”:

    \n
    \n
    \n

    \n

    This example uses the Wolfram Data Drop system. But one can do very much the same kind of thing with something like an SQL database. And if one has a plugin set up to access a private database there are truly remarkable things that can be done through ChatGPT with the Wolfram plugin.

    \n

    Plugins That Control Your Own Computer

    \n

    When you use ChatGPT through its standard web interface, ChatGPT is running “in the cloud”—on OpenAI’s servers. But with plugins you can “reach back”—through your web browser—to make things happen on your own, local computer. We’ll talk later about how this works “under the hood”, but suffice it to say now that when you deploy a plugin using ChatGPTPluginDeploy (as opposed to ChatGPTPluginCloudDeploy) the actual Wolfram Language code in the plugin will be run on your local computer. So that means it can get access to local resources on your computer, like your camera, speakers, files, etc.

    \n

    For example, here I’m setting up a plugin to take a picture with my computer’s camera (using the Wolfram Language CurrentImage[ ])—and then blend the picture with whatever color I specify (we’ll talk about the use of CloudExport later):

    \n
    \n
    \n

    \n

    Installing the plugin, I then say to ChatGPT “Just picture me in green!”, and, right then and there, ChatGPT will call the plugin, which gets my computer to take a picture of me—and then blends it with green (complete with my “I wonder if this is going to work” look):

    \n
    \n
    \n

    \n

    OK let’s try a slightly more sophisticated example. Here we’re going to make a plugin to get ChatGPT to put up a notebook on my computer, and start writing content into it. To achieve this, we’re going to define several API endpoints (and we’ll name the whole plugin \"NotebookOperations\"):

    \n
    \n
    \n

    \n

    First, let’s tell ChatGPT to create a new notebook

    \n
    \n
    \n

    \n

    and up pops a new notebook on my screen:

    \n

    My cat notebook

    \n

    If we look at the symbol nb in the Wolfram Language session from which we deployed the plugin, we’ll find out that it was set by the API:

    \n
    \n
    \n

    \n

    Now let’s use some of our other API endpoints to add content to the notebook:

    \n
    \n
    \n

    \n

    Here’s what we get:

    \n

    Cat pictures

    \n

    The text was made up by ChatGPT; the pictures came from doing a web image search. (We could also have used the new ImageSynthesize[ ] function in the Wolfram Language to make de novo cats.)

    \n

    And as a final “bow”, let’s ask ChatGPT to show us an image of the notebook captured from our computer screen with CurrentNotebookImage:

    \n
    \n
    \n

    \n

    We could also add another endpoint to publish the notebook to the cloud using CloudPublish, and maybe to send the URL in an email.

    \n

    We could think of the previous example as accumulating results in a notebook. But we can also just accumulate results in the value of a Wolfram Language symbol. Here we initialize the symbol result to be an empty list. Then we define an API that appends to this list, but we give a prompt that says to only do this appending when we have a single-word result:

    \n
    \n
    \n

    \n

    Let’s set up an “exercise” for ChatGPT:

    \n
    \n
    \n

    \n

    At this point, result is still empty:

    \n
    \n
    \n

    \n

    Now let’s ask our first question:

    \n
    \n
    \n

    \n

    ChatGPT doesn’t happen to directly show us the answer. But it calls our API and appends it to result:

    \n
    \n
    \n

    \n

    Let’s ask another question:

    \n
    \n
    \n

    \n

    Now result contains both answers:

    \n
    \n
    \n

    \n

    And if we put Dynamic[result] in our notebook, we’d see this dynamically change whenever ChatGPT calls the API.

    \n

    In the last example, we modified the value of a symbol from within ChatGPT. And if we felt brave, we could just let ChatGPT evaluate arbitrary code on our computer, for example using an API that calls ToExpression. But, yes, giving ChatGPT the ability to execute arbitrary code of its own making does seem to open us up to a certain “Skynet risk” (and makes us wonder all the more about “AI constitutions” and the like).

    \n

    But much more safely than executing arbitrary code, we can imagine letting ChatGPT effectively “root around” in our filesystem. Let’s set up the following plugin:

    \n
    \n
    \n

    \n

    First we set a directory that we want to operate in:

    \n
    \n
    \n

    \n

    Now let’s ask ChatGPT about the files there:

    \n
    \n
    \n

    \n

    With the Wolfram plugin we can get it to make a pie chart of those file types:

    \n
    \n
    \n

    \n

    Now we ask it to do something very “LLM-ey”, and to summarize the contents of each file (in the API we used Import to import plaintext versions of files):

    \n
    \n
    \n

    \n

    There are all sorts of things one can do. Here’s a plugin to compute ping times from your computer:

    \n
    \n
    \n

    \n
    \n
    \n

    \n

    Or, as another example, you can set up a plugin that will create scheduled tasks to provide email (or text, etc.) reminders at specified times:

    \n
    \n
    \n

    \n

    ChatGPT dutifully queues up the tasks:

    \n
    \n
    \n

    \n

    Then every 10 seconds or so, into my mailbox pops a (perhaps questionable) animal joke:

    \n

    Animal jokes

    \n

    As a final example, let’s consider the local-to-my-computer task of audibly playing a tune. First we’ll need a plugin that can decode notes and play them (the \"ChatGPTPluginDeploy\" is there to tell ChatGPT the plugin did its job—because ChatGPT has no way to know that by itself):

    \n
    \n
    \n

    \n

    Here we give ChatGPT the notes we want—and, yes, this immediately plays the tune on my computer:

    \n

    \n
    \n \n

    \n

    And now—as homage to a famous fictional AI—let’s try to play another tune:

    \n

    \n
    \n \n

    \n

    And, yes, ChatGPT has come up with some notes, and packaged them up for the plugin; then the plugin played them:

    \n

    \n
    \n \n

    \n

    And this works too:

    \n

    \n
    \n \n

    \n

    But… wait a minute! What’s that tune? It seems ChatGPT can’t yet quite make the same (dubious) claim HAL does:

    \n

    “No [HAL] 9000 computer has ever made a mistake or distorted information. We are all, by any practical definition of the words, foolproof and incapable of error.”

    \n

    How It All Works

    \n

    We’ve now seen lots of examples of using the ChatGPT Plugin Kit. But how do they work? What’s under the hood? When you run ChatGPTPluginDeploy you’re basically setting up a Wolfram Language function that can be called from inside ChatGPT when ChatGPT decides it’s needed. And to make this work smoothly turns out to be something that uses a remarkable spectrum of unique capabilities of Wolfram Language—dovetailed with certain “cleverness” in ChatGPT.

    \n

    From a software engineering point of view, a ChatGPT plugin is fundamentally one or more web APIs—together with a “manifest” that tells ChatGPT how to call these APIs. So how does one set up a web API in Wolfram Language? Well, a decade ago we invented a way to make it extremely easy.

    \n

    Like everything in Wolfram Language, a web API is represented by a symbolic expression, in this case of the form APIFunction[…]. What’s inside the APIFunction? There are two pieces. A piece of Wolfram Language code that implements the function one wants, together with a specification for how the strings that will actually be passed to the APIFunction (say from a web API) should be interpreted before feeding them to the Wolfram Language code.

    \n

    Here’s a little piece of Wolfram Language code, in this case for negating a color, then making it lighter:

    \n
    \n
    \n

    \n

    If we wanted to, we could refactor this as a “pure function” applied to two arguments:

    \n
    \n
    \n

    \n

    On its own the pure function is just a symbolic expression that evaluates to itself:

    \n
    \n
    \n

    \n

    If we want to, we can name the arguments of the pure function, then supply them in an association () with their names as keys:

    \n
    \n
    \n

    \n

    But let’s say we want to call our function from a web API. The parameters in the web API are always strings. So how can we convert from a string (like \"lime green\") to a symbolic expression that Wolfram Language can understand? Well, we have to use the natural language understanding capabilities of Wolfram Language.

    \n

    Here’s an example, where we’re saying we want to interpret a string as a color:

    \n
    \n
    \n

    \n

    What really is that color swatch? Like everything else in Wolfram Language, it’s just a symbolic expression:

    \n
    \n
    \n

    \n

    OK, now we’re ready to package this all up into an APIFunction. The first argument says the API we’re representing has two parameters, and describes how we want to interpret these. The second argument gives the actual Wolfram Language function that the API computes. On its own, the APIFunction is just a symbolic expression that evaluates to itself:

    \n
    \n
    \n

    \n

    But if we supply values for the parameters (here using an association) it’ll evaluate:

    \n
    \n
    \n

    \n

    So far all this is just happening inside our Wolfram Language session. But to get an actual web API we just have to “cloud deploy” our APIFunction:

    \n
    \n
    \n

    \n

    Now we can call this web API, say from a web browser:

    \n

    Web API

    \n

    And, yes, that’s the symbolic expression result. If we’d wanted something visual, we could tell the APIFunction to give its results, say as a PNG:

    \n
    \n
    \n

    \n

    And now it’ll show up as an image in a web browser:

    \n

    Purple box in web browser

    \n

    (Note that CloudDeploy deploys a web API that by default has permissions set so that only I can run it. If you use CloudPublish instead, anyone will be able to run it.)

    \n

    OK, so how do we set up our web API so it can be called as a ChatGPT plugin? One immediate issue is that at the simplest level ChatGPT just deals with text, so we’ve somehow got to convert our result to text. So let’s do a little Wolfram Language programming to achieve that. Here’s a list of values and names of common colors from the Wolfram Knowledgebase:

    \n
    \n
    \n

    \n

    Of course, we know about many other collections of named colors too, but let’s not worry about that here:

    \n
    \n
    \n

    \n

    Now we can use Nearest to find which common color is nearest to the color we’ve got:

    \n
    \n
    \n

    \n

    Now let’s put this into an APIFunction (we’ve “iconized” the list of colors here; we could also have defined a separate function for finding nearest colors, which would automatically be brought along by CloudDeploy):

    \n
    \n
    \n

    \n

    Now we’re ready to use ChatGPTPluginDeploy. The way ChatGPT plugins work, we’ve got to give a name to the “endpoint” corresponding to our API. And this name—along with the names we used for the parameters in our API—will be used by ChatGPT to figure out when and how to call our plugin. But in this example, we just want to use some kind of unique name for the endpoint, so we’ll be able to refer to it in our chat without ChatGPT confusing it with something else. So let’s call it ColorMangle. So now let’s do the deployment:

    \n
    \n
    \n

    \n

    Everything we’ve said so far about APIFunction and how it’s called works the same in ChatGPTPluginDeploy and ChatGPTPluginCloudDeploy. But what we’ll say next is different. Because ChatGPTPluginDeploy sets up the API function to execute on your local computer, while ChatGPTPluginCloudDeploy sets it up to run in the Wolfram Cloud (or it could be a Wolfram Enterprise Private Cloud, etc.).

    \n

    There are advantages and disadvantages to both local and cloud deployment. Running locally allows you to get access to local features of your computer, like camera, filesystem, etc. Running in the cloud allows you to let other people also run your plugin (though, currently, unless you register your plugin with OpenAI, only a limited number of people will be able to install your plugin at any one time).

    \n

    But, OK, let’s talk about local plugin deployment. ChatGPTPluginDeploy effectively sets up a minimal web server on your computer (implemented with 10 lines of Wolfram Language code), running on a port that ChatGPTPluginDeploy chooses, and calling the Wolfram Engine with your API function whenever it receives a request to the API’s URL.

    \n

    Here’s the operating system socket that ChatGPTPluginDeploy is using (and, yes, the Wolfram Language represents sockets—like everything else—as symbolic expressions):

    \n
    \n
    \n

    \n

    OK, but how does ChatGPT know about your API? First, you have to tell it the port you’re using, which you do through the ChatGPT UI (Plugins > Plugin store > Develop your own plugin). You can find the port by clicking the icon in the ChatGPTPluginDeployment object, or programmatically with:

    \n
    \n
    \n

    \n

    You enter this URL, then tell ChatGPT to “Find manifest file”:

    \n

    Find manifest file

    \n

    Let’s look at what it found:

    \n

    \n

    It’s a “manifest” that tells it about the plugin you’re installing. We didn’t specify much, so most things here are just defaults. But an important piece of the manifest is the part that gives the URL for API spec: http://localhost:59353/.well-known/openapi.json

    \n

    And going there we find this “OpenAPI spec”:

    \n

    Validated OpenAPI spec

    \n

    Finally, click Install localhost plugin, and the plugin will show up in the list of installed plugins in your ChatGPT session:

    \n
    \n
    \n

    \n

    And when ChatGPT starts with the plugin installed, it includes an extra piece in its “system prompt”, that lets it “learn” how to call the plugin:

    \n

    System prompt

    \n

    So now we’re ready to use the plugin:

    \n
    \n
    \n

    \n

    And, yes, it works. But there’s a bit of magic here. Somehow ChatGPT had to “take apart” what we’d asked, realize that the API endpoint called ColorMangle was relevant, then figure out that its color parameter should be “lime green”, and its level should be “0.5”. Opening the box, we can see what it did:

    \n
    \n
    \n

    \n

    And now we can start using “color mangling” in other places—though ChatGPT hastens to tell us that “color mangling” is a “fictional operation”, perhaps lest it’s accused of disrespecting a country’s flag colors:

    \n
    \n
    \n

    \n

    In the case we’re dealing with here, ChatGPT manages to correctly “wire up” fragments of text to appropriate parameters in our API. And it does that (rather remarkably) just from the scrap of information it gleans from the names we used for the parameters (and the name we gave the endpoint).

    \n

    But sometimes we have to tell it a bit more, and we can do that by specifying a prompt for the plugin inside ChatGPTPluginDeploy:

    \n
    \n
    \n

    \n

    Now we don’t have to just talk about colors:

    \n
    \n
    \n

    \n

    At first, it didn’t successfully “untangle” the “colors of Iceland”, but then it corrected itself, and got the answers. (And, yes, we might have been able to avoid this by writing a better prompt.)

    \n

    And actually, there are multiple levels of prompts you can give. You can include a fairly long prompt for the whole plugin. Then you can give shorter prompts for each individual API endpoint. And finally, you can give prompts to help ChatGPT interpret individual parameters in the API, for example by replacing \"color\" \"Color\" with something like:

    \n
    \n
    \n

    \n

    When you set up a plugin, it can contain many endpoints, that do different things. And—in addition to sharing prompts—one reason this is particularly convenient is that (at least right now, for security reasons) any given subdomain can have only one associated plugin. So if one wants to have a range of functionality, this has to be implemented by having different endpoints.

    \n

    For ChatGPTPluginCloudDeploy the one-plugin-per-subdomain limit currently means that any given user can only deploy one cloud plugin at a time. But for local plugins the rules are a bit different, and ChatGPTPluginDeploy can deploy multiple plugins by just having them run on different ports—and indeed by default ChatGPTPluginDeploy just picks a random unused port every time you call it.

    \n

    But how does a local plugin really work? And how does it “reach back” to your computer? The magic is basically happening in the ChatGPT web front end. The way all plugins work is that when the plugin is going to be called, the token-at-a-time generation process of the LLM stops, and the next action of the “outer loop” is to call the plugin—then add whatever result it gives to the string that will be fed to the LLM at the next step. Well, in the case of a local plugin, the outer loop uses JavaScript in the ChatGPT front end to send a request locally on your computer to the localhost port you specified. (By the way, once ChatGPTPluginDeploy opens a port, it’ll stay open until you explicitly call Close on its socket object.)

    \n

    When one’s using local plugins, they’re running their Wolfram Language code right in the Wolfram Language session from which the plugin was deployed. And this means, for example, that (as we saw in some cases above) values that get set in one plugin call are still there when another call is made.

    \n

    In the cloud it doesn’t immediately work this way, because each API call is effectively independent. But it’s straightforward to save state in cloud objects (say using CloudPut, or with CloudExpression, etc.) so that one can have “persistent memory” across many API calls.

    \n

    The LLM inside ChatGPT is (currently) set up to deal only with text. So what happens with images? Well, plugins can put them into the Wolfram Cloud, then pass their URLs to ChatGPT. And ChatGPT is set up to be able to render directly certain special kinds of things—like images.

    \n

    So—as we saw above—to “output” an image (or several) from a plugin, we can use CloudExport to put each image in a cloud object, say in PNG format. And then ChatGPT, perhaps with some prompting, can show the image inline in its output.

    \n

    There’s some slightly tricky “plumbing” in deploying Wolfram Language plugins in ChatGPT, most of which is handled automatically in ChatGPTPluginDeploy and ChatGPTPluginCloudDeploy. But by building on the fundamental symbolic structure of the Wolfram Language (and its integrated deployment capabilities) it’s remarkably straightforward to create elaborate custom Wolfram Language plugins for ChatGPT, and to contribute to the emerging ecosystem around LLMs and Wolfram Language.

    \n", - "category": "Artificial Intelligence", - "link": "https://writings.stephenwolfram.com/2023/04/instant-plugins-for-chatgpt-introducing-the-wolfram-chatgpt-plugin-kit/", - "creator": "Stephen Wolfram", - "pubDate": "Thu, 27 Apr 2023 20:40:34 +0000", - "enclosure": "https://content.wolfram.com/sites/43/2023/04/hal9000.wav", - "enclosureType": "audio/wav", - "image": "https://content.wolfram.com/sites/43/2023/04/hal9000.wav", + "title": "US Survey Foot", + "description": "\"Subway", + "content": "\"Subway", + "category": "", + "link": "https://xkcd.com/2888/", + "creator": "", + "pubDate": "Wed, 31 Jan 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", "id": "", "language": "en", "folder": "", - "feed": "wolfram", + "feed": "xkcd", "read": false, "favorite": false, "created": false, "tags": [], - "hash": "89dc200fa2e975a5bf556c649003dd88", + "hash": "5bfde739e65d83af37b6dfc4d1be503a", + "highlights": [] + }, + { + "title": "Minnesota", + "description": "\"In", + "content": "\"In", + "category": "", + "link": "https://xkcd.com/2887/", + "creator": "", + "pubDate": "Mon, 29 Jan 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "8914bd0de5efc0050c067768f945eedb", + "highlights": [] + }, + { + "title": "Fast Radio Bursts", + "description": "\"Dr.", + "content": "\"Dr.", + "category": "", + "link": "https://xkcd.com/2886/", + "creator": "", + "pubDate": "Fri, 26 Jan 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "a1bb648e153357e24f27473afeaa2904", + "highlights": [] + }, + { + "title": "Spelling", + "description": "\"Any", + "content": "\"Any", + "category": "", + "link": "https://xkcd.com/2885/", + "creator": "", + "pubDate": "Wed, 24 Jan 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "b49b8946b555d935a1744e1e35019e94", "highlights": [] }, { @@ -540,6 +606,336 @@ "image": null, "description": "xkcd.com: A webcomic of romance and math humor.", "items": [ + { + "title": "Research Account", + "description": "\"Focus", + "content": "\"Focus", + "category": "", + "link": "https://xkcd.com/2894/", + "creator": "", + "pubDate": "Wed, 14 Feb 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "6cd0df057927346502b1afe5bd416c2e", + "highlights": [] + }, + { + "title": "Sphere Tastiness", + "description": "\"Baseballs", + "content": "\"Baseballs", + "category": "", + "link": "https://xkcd.com/2893/", + "creator": "", + "pubDate": "Mon, 12 Feb 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "8485fc9edeb7ed36f0fad43c3577b8cd", + "highlights": [] + }, + { + "title": "Banana Prices", + "description": "\"It's", + "content": "\"It's", + "category": "", + "link": "https://xkcd.com/2892/", + "creator": "", + "pubDate": "Fri, 09 Feb 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "5a7ac9b37983bba2edeec57ffb1fc72c", + "highlights": [] + }, + { + "title": "Log Cabin", + "description": "\"I'm", + "content": "\"I'm", + "category": "", + "link": "https://xkcd.com/2891/", + "creator": "", + "pubDate": "Wed, 07 Feb 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "fe3770509bfd4a79429c2eb65047c6f4", + "highlights": [] + }, + { + "title": "Relationship Advice", + "description": "\"Good", + "content": "\"Good", + "category": "", + "link": "https://xkcd.com/2890/", + "creator": "", + "pubDate": "Mon, 05 Feb 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "c23dd21db2e0f944863837c1088c25cb", + "highlights": [] + }, + { + "title": "Greenhouse Effect", + "description": "\"Once", + "content": "\"Once", + "category": "", + "link": "https://xkcd.com/2889/", + "creator": "", + "pubDate": "Fri, 02 Feb 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "ba6481e8455e0a70f93c50990f71d6a2", + "highlights": [] + }, + { + "title": "OSTE – Le scanner de vulns qui combine Nikto, ZAP, Nuclei, SkipFish, et Wapiti", + "description": "OSTE est un scanner de sécurité open-source qui simplifie les tests dynamiques des applications, combinant plusieurs scanners DAST tels que Nikto Scanner, OWASP ZAP, Nuclei, SkipFish et Wapiti. Il se concentre sur les vulnérabilités d'injection Web et offre une interface conviviale. OSTE fonctionne sur plusieurs plateformes, principalement Kali Linux.", + "content": "

    \"\"

    \n

    Si vous vous intéressez un peu à la sécurité informatique, je vous présente aujourd’hui OSTE qui est ce qu’on pourrait appeler un Metascanner.

    \n\n\n\n
    \r\n

    Alors qu’est-ce qu’un Metascanner ?

    \n\n\n\n

    Eh bien il s’agit d’un scanner de vulnérabilité web qui combine différents outils tels que Nikto, zap de l’OWASP, Nucléi, SkipFish ou encore Wapiti.

    \n\n\n\n

    L’intérêt de cet outil c’est qu’il offre une interface graphique très user friendly qui permet de consulter les rapports de scan, mais également de les lancer. Injections SQL, XSS, XML, HTML ou encore des injections liées à des commandes spécifiques au système d’exploitation visé. Chacun des scanners DAST (Dynamic Application Security Testing) intégrés fournit des listes de vulnérabilités pour vous aider à identifier et corriger les problèmes potentiels.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Pour l’installer, vous aurez besoin de tous les outils que je viens de vous citer, mais si vous utilisez Kali Linux vous n’aurez pas de soucis puisque tout ça est déjà présent dans la distrib. Sinon il faudra les installer manuellement.

    \n\n\n\n
    \r\n

    Ensuite il ne vous restera plus qu’à cloner le dépôt sur votre machine et à lancer la commande

    \n\n\n\n
    python3 metascan.py
    \n\n\n\n

    Vous pourrez alors lancer des scans, charger les résultats, les exporter, les consulter directement depuis l’interface graphique.

    \n\n\n\n

    Vous l’aurez compris, OSTE est un outil fantastique pour simplifier l’évaluation de la cyber sécurité. N’oubliez pas quand même que c’est destiné à usages éducatifs ou dans le cadre de mission d’audits pour lesquelles vous avez été mandaté.

    \n\n\n\n

    Si vous voulez en savoir plus, cliquez ici.

    \n", + "category": "Sécurité", + "link": "https://korben.info/scanner-oste-tests-securite-dynamiques-applications-web.html", + "creator": "Korben", + "pubDate": "Sun, 28 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "b1c8d0b3098030bb9417cfa55fdeab34", + "highlights": [] + }, + { + "title": "Fast Radio Bursts", + "description": "\"Dr.", + "content": "\"Dr.", + "category": "", + "link": "https://xkcd.com/2886/", + "creator": "", + "pubDate": "Fri, 26 Jan 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "a1bb648e153357e24f27473afeaa2904", + "highlights": [] + }, + { + "title": "Spelling", + "description": "\"Any", + "content": "\"Any", + "category": "", + "link": "https://xkcd.com/2885/", + "creator": "", + "pubDate": "Wed, 24 Jan 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "b49b8946b555d935a1744e1e35019e94", + "highlights": [] + }, + { + "title": "Log Alignment", + "description": "\"A", + "content": "\"A", + "category": "", + "link": "https://xkcd.com/2884/", + "creator": "", + "pubDate": "Mon, 22 Jan 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "7c9d64fa83f8dd23aff0c3665d4dc45b", + "highlights": [] + }, + { + "title": "Astronaut Guests", + "description": "\"They", + "content": "\"They", + "category": "", + "link": "https://xkcd.com/2883/", + "creator": "", + "pubDate": "Fri, 19 Jan 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "89c29cdb66875c94389b32192aaa1b8a", + "highlights": [] + }, + { + "title": "Net Rotations", + "description": "\"For", + "content": "\"For", + "category": "", + "link": "https://xkcd.com/2882/", + "creator": "", + "pubDate": "Wed, 17 Jan 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "de7a58fbe886625191bb9891b106de3a", + "highlights": [] + }, + { + "title": "Bug Thread", + "description": "\"After", + "content": "\"After", + "category": "", + "link": "https://xkcd.com/2881/", + "creator": "", + "pubDate": "Mon, 15 Jan 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "31465c1cdb150e82ace09e15b9117d70", + "highlights": [] + }, + { + "title": "Sheet Bend", + "description": "\"A", + "content": "\"A", + "category": "", + "link": "https://xkcd.com/2880/", + "creator": "", + "pubDate": "Fri, 12 Jan 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "223f73d12f261e2676b0fbfde18a38c1", + "highlights": [] + }, + { + "title": "Like This One", + "description": "\"A", + "content": "\"A", + "category": "", + "link": "https://xkcd.com/2879/", + "creator": "", + "pubDate": "Wed, 10 Jan 2024 05:00:00 -0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "en", + "folder": "", + "feed": "xkcd", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "427057f67587d6fcaba520293ac0d0c4", + "highlights": [] + }, { "title": "Supernova", "description": "\"They're", @@ -3479,6 +3875,820 @@ "image": "\n\t", "description": "Upgrade your mind", "items": [ + { + "title": "LiteLLM – Pour discuter avec toutes les API LLM en utilisant la syntaxe OpenAI", + "description": "LiteLLM est une bibliothèque Python qui simplifie l'interaction avec diverses API de modèles de langage (LLM) en utilisant le format de l'API OpenAI. Elle permet l'utilisation de fonctions telles que la génération de texte et la traduction. L'installation se fait via `pip install litellm`, et son utilisation nécessite de définir des variables d'environnement et de créer un objet LiteLLM. LiteLLM supporte également un proxy pour rediriger les requêtes vers le modèle souhaité et offre des fonctionnalités supplémentaires comme le streaming, la gestion des exceptions, et le suivi des coûts. Plus d'informations sont disponibles sur la page GitHub de LiteLLM.", + "content": "

    \"\"

    \n

    Si vous codez en Python autour d’API de LLM comme celle d’OpenAI, d’Anthropic ou encore de Huggingface…etc., je vous présente LiteLLM qui risque de vous faire gagner pas mal de temps.

    \n\n\n\n
    \r\n

    Il s’agit d’une lib Python capable d’interagir avec tout un tas d’API en utilisant le format de celle d’OpenAI. Elle fournit une interface simple et uniformisée pour appeler ces modèles , ce qui va vous faciliter leur utilisation pour des choses comme de la génération de texte, de la traduction ou encore du chat…

    \n\n\n\n

    Pour l’installer, rien de plus simple :

    \n\n\n\n
    pip install litellm
    \n\n\n\n

    Ensuite, y’a plus qu’à créer un objet LiteLLM dans votre code, en lui fournissant l’ID et le nom du modèle à utiliser. Par exemple pour vous connecter à OpenAI, le code sera le suivant :

    \n\n\n\n
    from litellm import completion\nimport os\n\n## set ENV variables\nos.environ[\"OPENAI_API_KEY\"] = \"your-api-key\"\n\nresponse = completion(\n  model=\"gpt-3.5-turbo\", \n  messages=[{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}]\n)
    \n\n\n\n

    Pour Claude 2, ça sera ça :

    \n\n\n\n
    from litellm import completion\nimport os\n\n## set ENV variables\nos.environ[\"ANTHROPIC_API_KEY\"] = \"your-api-key\"\n\nresponse = completion(\n  model=\"claude-2\", \n  messages=[{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}]\n)
    \n\n\n\n
    \r\n

    Pour utiliser Ollama, ça donnerait également ça :

    \n\n\n\n
    from litellm import completion\n\nresponse = completion(\n            model=\"ollama/llama2\", \n            messages = [{ \"content\": \"Hello, how are you?\",\"role\": \"user\"}], \n            api_base=\"http://localhost:11434\"\n)
    \n\n\n\n

    Donc pas grand-chose qui change.

    \n\n\n\n

    Vous l’aurez donc compris, LiteLLM permet de pondre un seul et unique code, mais pour discuter avec tous les fournisseurs d’IA du moment (et les logiciels libres existants)

    \n\n\n
    \n
    \"\"
    \n\n\n

    Y’a la possibilité d’avoir du stream sur les réponses (c’est à dire, le texte qui s’affiche au fur et à mesure), de la gestion des exceptions, du log, sans oublier du calcul de coût et l’usage que vous pouvez avoir de ces API afin de ne pas éclater votre compte en banque.

    \n\n\n\n

    LiteLLM intègre également un proxy OpenAI pour rediriger vos requêtes vers le modèle de votre choix. Pour l’installer :

    \n\n\n\n
    pip install 'litellm[proxy]'
    \n\n\n\n

    Lancez ensuite le proxy avec le modèle de votre choix :

    \n\n\n\n
    litellm --model huggingface/bigcode/starcoder
    \n\n\n\n
    \r\n

    Et lui passer vos requêtes dans le code python directement :

    \n\n\n\n
    import openai # openai v1.0.0+\nclient = openai.OpenAI(api_key=\"anything\",base_url=\"http://0.0.0.0:8000\") # set proxy to base_url\n# request sent to model set on litellm proxy, `litellm --model`\nresponse = client.chat.completions.create(model=\"gpt-3.5-turbo\", messages = [\n    {\n        \"role\": \"user\",\n        \"content\": \"this is a test request, write a short poem\"\n    }\n])\n\nprint(response)
    \n\n\n\n

    Si LiteLLM vous intéresse, vous trouverez toutes les infos sur la page Github ainsi que les endpoints ici.

    \n", + "category": "Développement", + "link": "https://korben.info/utiliser-litellm-pour-interagir-avec-api-llm-syntaxe-openai.html", + "creator": "Korben", + "pubDate": "Wed, 14 Feb 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "3cf0c76da3f58794631c12dfc89ec6e1", + "highlights": [] + }, + { + "title": "Born of Bread : jeu de pain, jeu de vilain", + "description": "Nous avons du pain sur la planche ! Encore une fois il s’agit de sauver le monde bien sûr, mais jamais, ô grand jamais, nous n’avions comme protagoniste une miche de pain. Ça, c’est original ! Préparez-vous à vivre une jolie aventure avec Tipain et ses co-pains. 😉 Dans la … Suite", + "content": "

    \"\"

    \n

    Nous avons du pain sur la planche ! Encore une fois il s’agit de sauver le monde bien sûr, mais jamais, ô grand jamais, nous n’avions comme protagoniste une miche de pain. Ça, c’est original ! Préparez-vous à vivre une jolie aventure avec Tipain et ses co-pains. 😉

    \n\n\n\n
    \n\n
    \n\n\n\n
    \r\n

    Dans la lignée des Paper Mario, dont il est directement inspiré, Born of Bread est un mélange de RPG (on recrute une équipe qu’on équipe, qu’on fait évoluer, on a des combats en tour par tour avec des QTE pour optimiser les effets…) et d’exploration/aventure avec des dialogues bien rigolos. Si vous aimez les jeux de mots et le pain, vous allez être servi !

    \n\n\n\n

    Sur le plan artistique, c’est vraiment cool : graphismes léchés, un mélange 2D/3D de toute beauté (même si ça n’a aucun sens d’avoir des personnages plats, contrairement à Paper Mario), de belles animations, de chouettes musiques, des cinématiques bien foutues, on est vite immergé dans cet univers absurde.

    \n\n\n\n
    \"\"
    \n\n\n\n

    Pour les connaisseurs, le gameplay ne propose rien de nouveau (hormis quelques délires à base de « spectateurs » lors de nos bastons) mais c’est une recette (miam) efficace et éprouvée, ça fonctionne vraiment très bien. En dehors de quelques énigmes un peu bizarres, les dialogues et affrontements s’enchaînent de manière fluide, le scénario est bien rythmé, c’est top !

    \n\n\n\n

    J’ai été embêté par quelques bugs et plantages, il faut espérer que les développeurs sortent un patch pour que ce soit parfait. 🤞 L’autre truc « un peu » gênant, c’est que finalement, le jeu reste en-dessous de ses modèles. Pour être honnête, si vous avez une Switch, j’aurais tendance à vous conseiller de choper Super Mario RPG ou d’attendre le remake de Paper Mario : La Porte Millénaire.

    \n\n\n\n
    \"\"
    \n\n\n\n
    \r\n

    Mais si vous n’avez pas de console Nintendo, alors Born of Bread est un très bon paliatif, une aventure qui se mange sans faim ! C’est complètement décalé, fun, frais, d’une durée de vie maîtrisée (environ 15h), une belle découverte ! Je lui donne 🥖🥖🥖🥖🥖🥖🥖/10

    \n\n\n\n

    Acheter sur Steam, Epic Games, Nintendo Switch, Xbox, Playstation

    \n\n\n\n
    \"\"
    \n", + "category": "Infos", + "link": "https://korben.info/test-born-of-bread-avis.html", + "creator": "Remouk", + "pubDate": "Tue, 13 Feb 2024 20:01:46 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "6fd135f4f5cb85d4d415c40fa1c284c6", + "highlights": [] + }, + { + "title": "Hack – La police conçue pour le code source", + "description": "Récemment présentée, la police de caractères \"Luciole\" améliore la lisibilité pour les malvoyants. Découvrez aussi \"Hack\", une police open source créée pour les développeurs, offrant de la clarté pour coder la nuit, supportant toutes langues et glyphes, y compris le cyrillique et le grec. Avec son design et ses caractéristiques typographiques, elle rend la lecture de code plus confortable. Disponible au téléchargement et à l'essai en ligne.", + "content": "

    \"\"

    \n

    Y’a pas si longtemps, je vous ai présenté la police de caractères Luciole qui permet de donner beaucoup de lisibilités aux personnes mal voyantes.

    \n\n\n\n
    \r\n

    Et bien dans le même esprit, je vous fais découvrir aujourd’hui Hack. Cette police de caractère libre au nom dénué d’originalité a été conçue pour soulager les petits neuneuils des développeurs qui aiment coder jusqu’au bout de la nuit. Hack intègre des versions gras, italique, regular…etc. avec un support de toutes les langues et tous les glyphes possibles y compris le cyrillique, le grec…etc.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Son design améliore la lisibilité du code, avec du contraste, une bonne hauteur des lettres, un zéro rempli pour ne pas le confondre avec le 0 majuscule, un bon espacement…etc. Tout est dans la subtilité, ça se touche beaucoup la nouille typographique, mais vous devriez quand même l’essayer, car ça ne peut être que plus confortable que ce bon vieil Arial que vous collez partout.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Vous pouvez la télécharger ici et même la tester dans le playground ici selon votre langage de dev préféré et le style de votre IDE (mode sombre, clair…etc.)

    \n", + "category": "Développeurs", + "link": "https://korben.info/police-de-caractere-hack-optimisee-pour-le-code-source.html", + "creator": "Korben", + "pubDate": "Tue, 13 Feb 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "074fbb2dfc5f9bb7a7eafed2a08c9083", + "highlights": [] + }, + { + "title": "PiPHero – Le Picture in Picture sous macOS", + "description": "La fonctionnalité Picture In Picture (PiP), utilisée pour afficher une vidéo dans un coin de l'écran tout en faisant autre chose, est désormais disponible sur Mac avec PiPHero, un logiciel gratuit qui s'intègre dans la barre de menu et permet de choisir et redimensionner des fenêtres à afficher en PiP.", + "content": "

    \"\"

    \n

    Bon, si vous regardez des vidéos Youtube ou Netflix, notamment sur votre smartphone, vous connaissez sans doute la PiP (Picture In Picture) qui consiste à afficher une petite fenêtre vidéo dans un coin de l’écran pendant que vous faites autre chose sur l’appareil.

    \n\n\n\n
    \r\n

    Et bien nouvelle, vous allez pouvoir faire pareil sur votre Mac grâce à PiPHero, un freeware qui une fois installé, se loge dans la barre de menu, et permet de sélectionner une fenêtre ou un écran à placer dans un coin.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Vous pouvez également choisir sa taille et en mettre plusieurs.

    \n\n\n\n

    Bref, super pratique pour surveiller une page web ou mater une vidéo, sans avoir à garder la fenêtre focus.

    \n\n\n
    \n
    \"\"
    ", + "category": "MacOS", + "link": "https://korben.info/macos-piphero-picture-in-picture-guide.html", + "creator": "Korben", + "pubDate": "Mon, 12 Feb 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "006de1f6a5f6de3f959ab2f7c9c5e5a9", + "highlights": [] + }, + { + "title": "Turbo Art – Jouez avec SDXL Turbo pour de la génération d’image créative et en temps réel", + "description": "Turbo Art est un site de démonstration permettant de créer des images photo-réalistes à partir de textes via le modèle SDXL-Turbo. Il offre la possibilité de personnaliser des photos en temps réel et comprend une fonctionnalité 'Enhance' pour améliorer les images générées.", + "content": "

    \"\"

    \n

    Turbo Art est un site proof of concept qui va vous permettre de jouer avec un modèle de génération d’image nommé SDXL-Turbo.

    \n\n\n\n
    \r\n

    Pour rappel, c’est un modèle text2image, rapide et avancé, capable de générer des images photo-réalistes à partir d’une simple consigne textuelle en une seule évaluation de réseau neuronal. Sa performance exceptionnelle en termes de vitesse et de qualité d’image le rend particulièrement utile pour des tâches qui nécessitent une génération d’image rapide et précise à partir d’un texte. Mais le mieux c’est encore de le tester au travers de Turbo Art.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Sur Turbo Art que vous pouvez également auto-héberger, vous allez pouvoir importer une photo et la retravailler en temps réel à l’aide d’un prompt, mais également de quelques outils pour redessiner par-dessus. J’ai ajouté un petit chapeau bleu à ce toutou en indiquant que je voulais en faire un ourson de dessin animé type Pixar.

    \n\n\n\n

    Et même chose pour mon chat, mais avec un bonnet de Noël.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Rigolo non ? Et surtout ça permet d’apprivoiser en douceur ce genre de techno. Turbo Art offre également une fonctionnalité Enhance qui vous permettra d’améliorer l’image en testant d’autres générations et bien sûr de télécharger le rendu final pour vous en faire un avatar ou une illustration quelconque.

    \n\n\n\n
    \r\n

    À tester ici.

    \n", + "category": "Infos", + "link": "https://korben.info/jouez-avec-sdxl-turbo-generation-image-creative-temps-reel.html", + "creator": "Korben", + "pubDate": "Sun, 11 Feb 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "fcd5efc4bb2ca03b7b297f3dfb101a4c", + "highlights": [] + }, + { + "title": "Canvas Confetti – Mettez de la joie sur votre site web avec cette lib d’explosion de confettis", + "description": "Canvas Confetti est une librairie pour animer des confettis, emojis ou neige sur des sites web. Elle est simple à installer via npm et à intégrer en JavaScript. On peut personnaliser l'animation avec différentes options comme le nombre de particules, la dispersion, la vitesse et les couleurs. Des fonctions supplémentaires permettent de créer des confettis avec des formes SVG ou du texte, et une méthode reset pour effacer les animations. Des exemples sont disponibles sur la page de démo du créateur.", + "content": "

    \"\"

    \n

    Si vous codez vous-même votre site web et que vous avez envie d’ajouter un peu de fiesta, de bonne humeur et de célébration à celui-ci, j’ai la lib qu’il vous faut.

    \n\n\n\n
    \r\n

    Cela s’appelle Canvas Confetti et ça permet d’ajouter en animation de confetti, d’émoji ou de neige à vos pages web.

    \n\n\n\n
    \"\"
    \n\n\n\n

    Pour l’installer, rien de plus simple:

    \n\n\n\n
    npm install canvas-confetti
    \n\n\n\n

    Importez ensuite la bibliothèque Canvas Confetti dans votre fichier JavaScript où vous souhaitez utiliser l’animation du confetti comme ceci :

    \n\n\n\n
    import confetti from 'canvas-confetti';
    \n\n\n\n

    Pour lancer l’animation du confetti, appelez la fonction confetti() sans paramètres ou avec des options personnalisées. Voici un exemple de lancement de l’animation par défaut :

    \n\n\n\n
    confetti();
    \n\n\n\n
    \r\n

    Et voici un exemple de lancement de l’animation avec des options personnalisées :

    \n\n\n\n
    confetti({\n  particleCount: 150, // Nombre de confetti à lancer\n  spread: 180, // Angle maximal de dispersion des confettis\n  startVelocity: 30, // Vitesse initiale des confettis\n  origin: {\n    x: Math.random(), // Position initiale aléatoire des confettis sur l'axe horizontal\n    y: Math.random() - 0.2 // Position initiale légèrement plus élevée sur l'axe vertical\n  },\n  colors: ['#ff0000', '#00ff00', '#0000ff'], // Couleurs des confettis\n  shapes: ['square', 'circle', 'star'], // Formes des confettis\n  scalar: 2 // Taille des confettis\n});
    \n\n\n\n

    Pour réinitialiser l’animation du confetti et effacer tous les confettis en cours d’animation, utilisez la méthode confetti.reset() :

    \n\n\n\n
    confetti.reset();
    \n\n\n\n

    Si vous souhaitez limiter l’espace sur votre page où les confettis apparaissent, vous pouvez utiliser un canvas personnalisé. Pour cela, créez un élément <canvas> dans votre HTML et appelez la fonction confetti.create() en lui passant l’élément <canvas> et des options globales facultatives :

    \n\n\n\n
    const canvas = document.createElement('canvas');\ndocument.body.appendChild(canvas);\n\nconst myConfetti = confetti.create(canvas, { // Options globales facultatives\n  resize: true, // Permet de redimensionner le canvas en fonction de la fenêtre\n  useWorker: true // Utilise un web worker pour le rendu du confetti\n});\n\nmyConfetti({ // Options personnalisées\n  particleCount: 100,\n  spread: 160\n  // Autres options personnalisées\n});
    \n\n\n\n

    Enfin, si vous souhaitez créer des confettis personnalisés à partir d’une forme SVG ou d’un texte, utilisez les méthodes confetti.shapeFromPath et confetti.shapeFromText :

    \n\n\n\n
    const pathShape = confetti.shapeFromPath({ path: 'M0 10 L5 0 L10 10z' }); // Forme SVG\n\nconst textShape = confetti.shapeFromText({ text: '🐈', scalar: 2 }); // Texte personnalisé\n\nconfetti({\n  shapes: [pathShape, textShape],\n  scalar: 2\n});
    \n\n\n\n

    Le mieux reste d’aller faire un tour sur la page de démo qui comporte également des exemples d’intégration.

    \n", + "category": "Infos", + "link": "https://korben.info/ajoutez-canvas-confetti-pour-une-touche-festive-sur-votre-site-web.html", + "creator": "Korben", + "pubDate": "Sat, 10 Feb 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "504760233997de94424652f92cc629fa", + "highlights": [] + }, + { + "title": "Un tutoriel pour mettre en place Syncthing", + "description": "Je présente Syncthing, outil de synchronisation P2P chiffrée pour tous OS, dans une vidéo tutoriel exclusive pour mes soutiens Patreon.", + "content": "

    \"\"

    \n

    Si vous me suivez depuis longtemps, vous connaissez forcément Syncthing puisque j’en ai déjà parlé un bon paquet de fois. Mais ça faisait longtemps et dans le cadre de mon Patreon Privé Premium++ Rotomoulage Sélectif qui permet à l’élite de la crème de la nation d’avoir des contenus originaux merveilleux de moi-même sur des canaux exclusivement exclusifs, j’ai réalisé une vidéo tutoriel sur le sujet.

    \n\n\n\n
    \r\n

    Synchting, c’est le Dropbox du pauvre libriste et ça permet très facilement de mettre en place sur toutes vos machines Linux, Windows, macOS et plus, de la synchronisation chiffrée dans les deux sens ou en sens unique, de vos fichiers. Ça repose sur du protocole P2P, donc c’est super rapide, ça passe partout, même à travers vos firewalls et c’est vraiment un game changer pour ceux qui aiment avoir leurs documents sous la main, peu importe l’appareil qu’ils utilisent ou l’endroit où ils se trouvent.

    \n\n\n\n

    Voilà, j’espère que ça vous plaira. N’oubliez pas de nous rejoindre sur Patreon, et le cas échéant, de vous abonner à ma chaine YouTube.

    \n\n\n\n
    \n\n
    \n", + "category": "Administration Systeme Réseau", + "link": "https://korben.info/mise-en-place-syncthing-tutoriel-guide-complet.html", + "creator": "Korben", + "pubDate": "Fri, 09 Feb 2024 13:32:05 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "cd78dbd4b55aab5d340ae51f1899e0b3", + "highlights": [] + }, + { + "title": "Exolegend #2 – Plongez au coeur de la robotique avec le hackathon d’Exotec", + "description": "L'Exolegend #2, hackathon de programmation robotique initié par Exotec, aura lieu du 16 au 18 février à Lille. Il proposera aux participants des défis de programmation de robots dans diverses épreuves, avec des prix pour les gagnants. Exotec, connu pour son robot Skypod utilisé en logistique, cherche à promouvoir son expertise et recruter des talents. L'événement, complet pour 2024, est ouvert au public pour la finale.", + "content": "

    \"\"

    \n

    — Article en partenariat avec Exotec —

    \n\n\n\n

    Il y a 10 jours, j’ai eu l’immense plaisir d’assister à l’annonce d’Exolegend #2 pour faire un petit reportage et découvrir cet événement unique en son genre. Exolegend, initié par Exotec, est un hackathon de programmation robotique qui se tiendra du 16 au 18 février à Lille, au BTWIN Village.

    \n\n\n\n

    Vous vous en doutez, ce n’est pas un simple événement, mais une expérience immersive où les participants vont devoir relever le défi de programmer des robots qui devront évoluer dans un labyrinthe et combattre leurs pairs.

    \n\n\n\n

    Pour la petite histoire, Exotec est une société qui conçoit des systèmes automatisés pour les usines et les entrepôts. Ils développent notamment le Skypod, un robot qui permet aux entreprises d’automatiser toute la gestion logistique dans leurs entrepôts.

    \n\n\n\n

    Ce robot, déjà adopté par Décathlon, Carrefour, Geodis…etc, est capable de transporter jusqu’à 30kg de marchandises en vue de préparer des commandes, atteignant des vitesses allant jusqu’à 4 mètres par seconde et accédant à n’importe quelle produit référencé en moins de 2 minutes. Il est également très agile et capable de se déplacer en trois dimensions (oui, il grimpe jusqu’à 12 mètres de haut) sans nécessiter la mise en place d’infrastructure complexe.

    \n\n\n\n
    \n\n
    \n\n\n\n

    L’objectif d’Exolegend est de faire connaitre leur savoir faire mais également recruter les ingénieurs les plus talentueux. Le programme de cette édition 2024 est plutôt captivant, vous allez voir. Les participants à ce hackathon n’ont pas besoin d’être déjà experts en robotique et auront à leur disposition un simulateur ainsi que des robots prêts à l’emploi. Et leur défi sera de programmer ces robots en C++ pour relever différentes missions dans les thématiques suivantes :

    \n\n\n\n
      \n
    1. Conquête de territoire : Les participants devront utiliser 2 robots pour recouvrir le maximum de cases de l’arène avec de la peinture jaune ou bleue.
    2. \n\n\n\n
    3. Navigation et stratégie : Dans celle-ci, il s’agit de guider les robots à travers l’arène, en évitant les obstacles et en déployant des tactiques efficaces pour dominer au maximum l’espace.
    4. \n\n\n\n
    5. Défense et attaque : Les équipes devront protéger leurs propres robots tout en attaquant les adversaires, notamment en faisant exploser le ballon accroché sur les robots.
    6. \n\n\n\n
    7. Temps limité et terrain rétrécissant : Les matchs durent 120 secondes, et le labyrinthe rétrécit régulièrement. Le but est de gagner en couvrant le plus grand territoire et en éliminant le plus grand nombre d’ennemis.
    8. \n
    \n\n\n\n

    L’événement rassemblera 50 équipes, guidées par 60 experts d’Exotec, prêtes à concourir dans une arène simulée et quatre arènes réelles. Les meilleurs participants se verront récompensés par des prix attractifs, notamment du coaching et des drones de la marque DJI.

    \n\n\n\n

    Ce hackathon est ouvert à tous, que l’on s’inscrive seul ou en équipe, et il ne requiert pas de frais d’inscription. Les inscriptions sont closes cette année avec plus de 150 participants mais le public est le bienvenu au Btwin Village de Lille le dimanche 18 février de 9h à 16h pour assister aux finales et découvrir le pilotage de robots.

    \n\n\n\n

    Vous trouverez toutes les informations sur Exolegend ici.

    \n\n\n
    \n
    \"\"/
    ", + "category": "Infos", + "link": "https://korben.info/plongez-au-coeur-robotique-hackathon-exotec-exolegend-2.html", + "creator": "Korben", + "pubDate": "Fri, 09 Feb 2024 09:30:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "9b10a51c42858185b23639887d742a38", + "highlights": [] + }, + { + "title": "Tailspin – Pour y voir plus clair dans vos logs", + "description": "Si vous gérez un serveur, Tailspin peut vivifier l'affichage des logs sans configuration, en soulignant des éléments clés comme les IP ou les dates. Il est compatible avec diverses commandes Unix et personnalisable via regex. L'installation est simple, avec des commandes adaptées à différentes distributions.", + "content": "

    \"\"

    \n

    Si vous avez votre propre serveur, que ce soit pour du pro ou pour de l’auto-hébergement, vous avez forcément dû un jour de votre vie, jeter un oeil dans les fichiers de logs de celui-ci.

    \n\n\n\n
    \r\n

    C’est pratique des logs, ça permet de savoir ce qui se passe et pourquoi ça ne fonctionne pas toujours comme on l’espère. Sauf que voilà, en SSH, via le terminal, le rendu des logs n’est pas souvent fou-fou.

    \n\n\n\n

    Heureusement, il y a des outils comme Tailspin, qui mettent un peu de vie dans tout ça, pour vous éviter en tant que sysadmin un burnout et un retour immédiat dans le cantal pour élever des myocastors et en faire du pâté.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Tailspin est capable d’afficher n’importe quel format de log sans aucune config particulière, pour faire ressortir les informations importantes telles que les nombres, les dates, les adresses IP, les UUIDs, les URLS et bien d’autres choses. Il peut s’intégrer très facilement avec d’autres commandes puisqu’il fonctionne comme la commande less pour faire des recherches ou du filtrage dans les logs.

    \n\n\n\n

    Bien sûr, si vous voulez rajouter des mises en avant, vous pouvez configurer l’outil pour qu’il puisse appliquer le style de votre choix au pattern regex de votre choix.

    \n\n\n\n
    \r\n

    Pour l’installer, rien de plus simple. Il vous suffit de lancer l’une des commandes suivantes selon votre distrib :

    \n\n\n\n
    # Homebrew\nbrew install tailspin\n\n# Cargo\ncargo install tailspin\n\n# Archlinux\npacman -S tailspin\n\n# Nix\nnix-shell -p tailspin\n\n# NetBSD\npkgin install tailspin\n\n# FreeBSD\npkg install tailspin
    \n\n\n\n

    De quoi y voir plus clair dans votre travail quotidien.

    \n", + "category": "Administration Systeme Réseau", + "link": "https://korben.info/analyse-logs-avec-tailspin-comprendre-donnees.html", + "creator": "Korben", + "pubDate": "Fri, 09 Feb 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "e3679a60af70a7b9a643a71430db2798", + "highlights": [] + }, + { + "title": "Surfshark VPN et Amazon Prime Vidéo", + "description": "Cet article, en partenariat avec Surfshark VPN, explique les avantages d'utiliser un VPN avec Amazon Prime Video pour accéder à du contenu géo-restreint, protéger ses données personnelles et éviter la publicité. Surfshark offre un réseau de serveurs performant, plusieurs fonctionnalités de sécurité et la possibilité de connecter plusieurs appareils. La nouveauté 2024 est l'intégration de la création d'identités alternatives dans tous les abonnements.", + "content": "

    \"Surfshark

    \n

    — Article en partenariat avec Surfshark VPN

    \n\n\n\n

    Il y a déjà quelques années de cela je vous ai présenté comment le combo Surfshark VPN et Netflix fonctionnaient et quelles étaient les possibilités entre les 2 services. Depuis un autre service a pas mal pris d’ampleur dans le même genre, c’est Amazon Prime Video. Je sais que certains d’entre vous l’utilisent et c’est donc l’occasion d’en profiter pour vous faire un petit rappel sur le sujet.

    \n\n\n
    \n
    \"Surfshark
    \n\n\n

    Comme pour son concurrent vous savez sans doute qu’Amazon Prime Video ne propose pas le même contenu selon le pays dans lequel vous résidez. Du coup si vous partez à l’étranger (travail, vacances …), vous n’êtes pas certain de pouvoir y visionner votre série préférée. C’est quand même moins fun d’être les doigts de pieds en éventail sur une plage sans pouvoir matter vos épisodes favoris parce qu’ils ne sont pas dispo en version française sur place. Je n’imagine même pas le sentiment de loose qui pourrait me prendre si je me rendais compte que les épisodes de Stargate en VF ne sont dispo qu’en anglais. De quoi ruiner mes futures vacances sur une île paradisiaque au fond de mon jardin.

    \n\n\n\n

    Mais surtout le VPN est une solution pour éviter qu’Amazon ne puisse pomper toutes vos données personnelles lorsque vous streamez leurs vidéos. En chiffrant vos données (via algorithme AES-256) , Surfshark va les rendre inutilisables par la plateforme ainsi que pour tous les autres sites web que vous visitez. Elle ne recevra plus d’infos sur l’endroit d’ou vous vous connectez vraiment, n’aura plus accès aux cookies de votre navigateur, etc. Et ne pourra plus vous bombarder de publicités (le VPN agit aussi comme un bloqueur pub).

    \n\n\n
    \n
    \"\"/
    \n\n\n

    D’autant plus que l’année dernière Prime Video a annoncé que l’arrivée de la publicité sur son service se ferait courant 2024 (a priori vers le milieu de l’année dans l’hexagone). « À petite dose » selon leurs dires, mais on sait comment ça se finira. Probablement blindé de spots pour la malbouffe et avec un abonnement supplémentaire de quelques euros pour une expérience propre. Surfshark VPN coutera le même prix, avec en plus les bénéfices sur le respect de votre vie privée. Le calcul est vite fait et ce sera toujours quelques euros d’économies (en plus de celles que vous pouvez faire sur vos billets, hôtels, etc.)

    \n\n\n\n

    Et avec son gros parc de serveurs (+ de 3200, répartit dans plus de 100 pays) qui est en train de passer intégralement de 1 à 10 Gb/s, Surfshark est taillé pour du streaming stable et presque sans ralentissements notables. Si vous avez l’esprit d’aventure, vous pouvez aussi le coupler avec les protocoles Wireguard, OpenVPN ou IPsec/IKEv2.

    \n\n\n\n

    Adresse IP fixe ou rotative, bouton kill switch, MultiHop dynamique, mode camouflage, DNS privé, split tunneling, GPS-Spoofing pour Android … Toutes ces fonctionnalités, que j’ai présentées dans mes précédents articles, sont toujours à votre disposition. De même que l’assurance que vos données ne sont pas enregistrées par Surfshark (ce qui a été vérifié par plusieurs audits ces derniers mois : Deloitte, Mobile App Security Assessment …).

    \n\n\n
    \n
    \"Alternative
    \n\n\n

    Au rayon des petites nouveautés de ce début 2024, sachez que Surfshark vient d’intégrer son outil de création d’identités alternatives dans tous ses packs. Donc même le plus petit abonnement vous offre cette fonctionnalité auparavant réservée à l’offre Surfshark One. Un petit bonus en plus !

    \n\n\n\n

    Voilà, vous savez maintenant quel est l’intérêt d’utiliser un VPN avec Amazon Prime Video. Mais cela fonctionne avec n’importe lequel de vos services de streaming préféré, de Disney+ à Hulu en passant par Netflix et Apple TV.

    \n\n\n\n

    D’ailleurs si vous pensez enfin sécuriser un peu mieux votre surf sur le web, n’oubliez pas que le service permet de connecter autant d’appareils que vous le voulez (desktop, mobile, console, routeur, Amazon Fire Stick, etc.) et de les utiliser en simultané. Le prix englobe donc vos machines, mais aussi celles de votre famille & co. Quel que soit l’OS utilisé par chacune d’entre elles. Pour moins de 3€/mois !

    \n\n\n\n

    Découvrir l’offre de Surfshark VPN

    \n", + "category": "VPN", + "link": "https://korben.info/surfshark-vpn-access-amazon-prime-video-anywhere.html", + "creator": "Korben", + "pubDate": "Thu, 08 Feb 2024 08:49:11 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "7f4132625843e8ee36dd1141fdb4fd14", + "highlights": [] + }, + { + "title": "Spotube – Le client Spotify open source sans pub et sans compte payant", + "description": "Spotube est un client musical gratuit utilisant le catalogue Spotify, sans pub ni collecte de données, qui fonctionne sur tous OS. Il permet de parcourir et télécharger des playlists Spotify, afficher les paroles et est en amélioration continue malgré quelques bugs. Disponible pour divers systèmes d'exploitation.", + "content": "

    \"\"

    \n

    Je sais, il existe beaucoup d’alternatives gratuites à Spotify ou Deezer qui font la même chose, mais sans lâcher un kopeck. Je vous avais parlé de Nuclear il y a quelques semaines d’ailleurs, qui était très cool.

    \n\n\n\n
    \r\n

    Et bien aujourd’hui, je vous cause de Spotube qui n’est pas basé sur Electron (!!), utilise l’API de Spotify pour son catalogue de titres et de playlists et qui va récupérer les sons sur YouTube. Un fonctionnement assez classique pour ce genre d’outil, mais surtout un client sans pub, sans collecte de données et bien sûr compatible tous OS.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Avec Spotube, vous pourrez parcourir vos propres playlists Spotify, les morceaux que vous aimez, les genres musicaux, les artistes…etc mais également télécharger localement les morceaux ou encore afficher les paroles des chansons de manière synchronisée avec le son pour vos soirées Karaoké.

    \n\n\n
    \n
    \"\"
    \n\n
    \n
    \"\"
    \n\n\n

    Le projet est sous licence libre et en constante amélioration. Il y a encore des petits bugs parfois, mais c’est parfaitement utilisable pour dandiner vos petits popotins sur les derniers tubes.

    \n\n\n\n

    Dispo sous Windows, macOS, Android, Linux ici.

    \n", + "category": "Musique", + "link": "https://korben.info/spotube-open-source-spotify-client-no-ads-free-account.html", + "creator": "Korben", + "pubDate": "Thu, 08 Feb 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "120b1dcf31adb0762563dd490b75696b", + "highlights": [] + }, + { + "title": "43 secondes pour récupérer la clé Bitlocker d’un PC à l’aide d’un Raspberry Pi Pico", + "description": "Depuis des années, les utilisateurs de Windows peuvent sécuriser leurs données avec Bitlocker grâce à la puce TPM. Le chercheur StackSmashing a trouvé comment extraire la clé de chiffrement de cette puce avec un Raspberry Pi Pico bon marché. Cette technique a été démontrée sur des Lenovo Thinkpad, mais elle pourrait s'adapter à d'autres ordinateurs. Les nouveaux processeurs intégrant le TPM rendent cependant l'attaque plus difficile.", + "content": "

    \"\"

    \n

    Depuis maintenant plusieurs années, les utilisateurs de Windows ont la possibilité de sécuriser leurs données avec Bitlocker, l’outil de chiffrement de Microsoft. C’est hyper simple à mettre en place et les constructeurs l’ont adopté depuis longtemps en intégrant à leurs ordinateurs la fameuse puce TPM (Trusted Platform Module).

    \n\n\n\n
    \r\n

    Ce qui permet à Bitlocker d’y stocker toutes les informations critiques relatives à la configuration de l’ordinateur, mais surtout la Master Key, c’est-à-dire la clé qui permet de déchiffrer tout le contenu.

    \n\n\n\n

    C’est là qu’entre en scène le chercheur en sécurité StackSmashing qui a mis au point un moyen d’extraire physiquement cette clé à l’air d’un Raspberry Pi Pico à moins de 10 balles, d’un peu de soft, et d’un petit PCB maison. Grâce aux pins de son PCB, il peut alors se brancher directement au bus LPC de la puce TPM qui se trouve au dos de la carte mère, ce qui permet d’intercepter les messages transmis (donc la master key) entre la puce TPM et le CPU de l’ordinateur.

    \n\n\n\n

    Comme vous pouvez le voir sur la vidéo, son bricolage est spécifique à certains modèles de laptop Lenovo (Thinkpad), mais ça peut-être facilement adapté (ou alors en soudant des fils) à tout type d’ordinateur comme il le montre à la fin, avec la Surface Pro (et un petit trou dans sa carlingue)

    \n\n\n\n
    \n\n
    \n\n\n\n

    Toutefois, n’allez pas croire que votre ordinateur est forcément sensible à cette attaque surtout s’il est récent puisqu’à présent, les fabricants de processeurs comme Intel ou AMD ont directement intégré le TPM au CPU, donc c’est plus la même partie de plaisir.

    \n\n\n\n
    \r\n

    Source

    \n", + "category": "Sécurité", + "link": "https://korben.info/recuperation-cle-bitlocker-pc-raspberry-pi-pico-43-secondes.html", + "creator": "Korben", + "pubDate": "Wed, 07 Feb 2024 13:49:21 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "c248c215ded264cfdc51f7c740f4d366", + "highlights": [] + }, + { + "title": "Comment bien choisir vos piles ?", + "description": "Geeks et amateurs de tech accumulent souvent des piles de divers formats. Or, il est difficile de choisir les meilleures piles en raison de l'éventail de marques et de prix. Joffrey de \"Le Bricolage c'est Cool\" a testé 18 types de piles et révélé que les marques les plus réputées ne sont pas toujours les plus rentables. Son étude est disponible en vidéo.", + "content": "

    \"\"

    \n

    En tant que geek et amateur de matériel technologique, vous devez surement avoir chez vous un bon petit stock de piles de tous formats pour mettre dans les télécommandes, modules IoT et autres jouets pour les gosses.

    \n\n\n\n
    \r\n

    Sauf que bien choisir ses piles, ce n’est pas facile. Il y a tellement de marques à des prix différents avec des promesses de capacité différente qu’il est impossible pour le consommateur de connaitre le meilleur rapport qualité prix.

    \n\n\n\n

    Mais c’était sans compter sur Joffrey, de la chaine « Le Bricolage c’est Cool » qui a mis au point un protocole de test et réalisé une étude sur 45 références de piles du marché, des piles Amazon, en passant par les piles Action ou E. Leclerc.

    \n\n\n\n

    Et vous allez voir, le résultat est surprenant et ce n’est pas forcement les marques les plus cotées qui sont les plus rentables à acheter en termes de coût par quantité d’énergie délivrée.

    \n\n\n\n
    \n\n
    \n\n\n\n

    A regarder !!

    \n", + "category": "DIY", + "link": "https://korben.info/comment-choisir-piles-adaptees-besoins.html", + "creator": "Korben", + "pubDate": "Wed, 07 Feb 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "4282576b113968a741134bcf13b610c7", + "highlights": [] + }, + { + "title": "Lode Runner – Le retour du jeu mythique !", + "description": "Lancée en 1983, la série de jeux Lode Runner, célèbre sur des plateformes comme l'Apple II et le Commodore 64, offre un gameplay simple mais addictif avec des niveaux faits de briques, d'échelles, et de barres pour collecter de l'or et éviter les ennemis. Aujourd'hui, elle est accessible via un portage HTML5 jouable dans les navigateurs, proposant différents modes de jeu, dont un éditeur de niveau, et le code source est disponible pour adaptation.", + "content": "

    \"\"

    \n

    Débutée en 1983, la série de Lode Runner vous a probablement marqué si vous êtes un ancien qui a notamment tâté du jeu d’arcade ou de l’Apple II, du Commodore 64, ou encore de l’Amstrad. Même les plus jeunes ont pu tester sur la console virtuelle de la Wii.

    \n\n\n
    \n
    \"\"
    \n\n\n
    \r\n

    L’intérêt de ce jeu repose sur son gameplay qui consiste à traverser des niveaux composés de briques qu’on peut casser, d’échelles à grimper et de barres suspendues pour esquiver les ennemis, les tuer et récupérer les lingots d’or.

    \n\n\n\n
    \n\n
    \n\n\n\n

    C’est simple, mais efficace et surtout terriblement addictif puisque vous devez planifier soigneusement vos mouvements et utiliser l’environnement à votre avantage pour éviter d’être capturé.

    \n\n\n\n

    Le truc merveilleux si vous voulez retrouver les sensations de ce jeu, c’est de plonger vers ce portage HTML5 réalisé avec CreateJS. Comme ça vous pouvez jouer directement dans votre navigateur !

    \n\n\n\n

    Le jeu propose 3 modes de jeu (challenge, entrainement et éditeur de niveau) et un mode démo qui rejoue les niveaux passés. Et Lode Runner est jouable dans 5 versions : la classique, la pro, la « revenge », la « fan book » et bien sûr la Championship.

    \n\n\n\n
    \r\n

    Bien sûr le code source est dispo donc vous pouvez le porter sur la machine de votre choix si vous avez envie.

    \n", + "category": "jeu-video", + "link": "https://korben.info/lode-runner-retour-jeu-mythique.html", + "creator": "Korben", + "pubDate": "Tue, 06 Feb 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "2c62f32c9cea4526bfc6ae76c3febec2", + "highlights": [] + }, + { + "title": "OSS Insight – Explorez et comparez les dépôts GitHub en un clin d’oeil", + "description": "OSS Insight est un outil d'analyse des dépôts GitHub offrant des informations complètes et des tendances sur l'open source. Il permet de comparer deux dépôts, obtenir des données avancées, suivre les tendances techniques mensuelles et historiques, et offre un aperçu des classements. Ainsi, OSS Insight aide à prendre des décisions éclairées pour les projets open source.", + "content": "

    \"\"

    \n

    Vous le savez, je suis un grand amateur et un grand défenseur des logiciels libres et Open Source. Et je n’ai pas peur de le dire, GitHub est l’un de mes sites préférés.

    \n\n\n\n
    \r\n

    On y trouve des pépites comme des scripts incroyables, des outils géniaux et j’adore ça ! Mais ce n’est pas forcément toujours simple de suivre tout ce qui se passe dans cet univers.

    \n\n\n\n

    Enfin, ça, c’était avant parce qu’il existe un site génial qui s’appelle OSS Insight et qui offre des informations très détaillées et des tendances sur le monde de l’open source en analysant plus de 5 milliards de lignes d’événements GitHub.

    \n\n\n\n

    Il fournit une nouvelle façon d’explorer les données GitHub en posant simplement des questions en langage naturel, ce qui est extrêmement pratique quand on veut comparer les choses.

    \n\n\n\n
    \n\n
    \n\n\n\n

    Par exemple, OSS Insight vous permet de comparer deux dépôts à partir des mêmes indicateurs, tels que les étoiles, les forks, les issues, les commits, les pull requests, le nombre de contributeurs, les langages de programmation utilisés ou encore les lignes de code modifiées.

    \n\n\n\n
    \r\n

    Imaginez que vous travaillez sur un projet et que vous souhaitez comparer deux bibliothèques open source pour déterminer laquelle est la plus populaire et la mieux maintenue. Et bien il suffit de lui demander.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Mais ça ne s’arrête pas à ça. Voici quelques exemples de questions que les gens posent à l’outil :

    \n\n\n
    \n
    \"\"
    \n\n\n

    En plus de cela, OSS Insight offre des informations sur les tendances techniques mensuelles avec des listes de dépôts à découvrir.

    \n\n\n\n

    Comme ça, vous pouvez suivre de près certains types d’outils populaires, comme les bases de données, les frameworks JavaScript ou encore les outils liés aux LLM. Vous pouvez également obtenir des analyses sur la productivité des développeurs et les statistiques des dépôts.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Pour tester le OSS Insight, il vous suffit de vous rendre sur leur site web et de plonger dans cet océan de données.

    \n", + "category": "Libre", + "link": "https://korben.info/oss-insight-analyse-tendances-github-open-source.html", + "creator": "Korben", + "pubDate": "Mon, 29 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "4d0a945c1b35421b7f6b953c9530df10", + "highlights": [] + }, + { + "title": "Un ordinateur 16-bits dans Excel", + "description": "Le youtubeur Inkbox a créé un ordinateur 16-bits dans Excel sans aide externe, utilisant une architecture avec 23 mnémoniques et 26 opcodes. Le CPU inclut diverses unités et une RAM de 128KB, avec un affichage 128x128 en 16 couleurs. Le projet \"excelCPU\" est disponible sur GitHub et permet la programmation dans Excel-ASM16.", + "content": "

    \"\"

    \n

    Voici un projet vraiment original mené par le youtubeur Inkbox qui a tout simplement conçu un ordinateur entièrement dans Microsoft Excel. Le tout sans recourir à des scripts Visual Basic, des plugins, ou toute autre aide-externe.

    \n\n\n\n
    \r\n

    Ce système 16-bits, fonctionnant sur une simple feuille de calcul, repose sur une architecture composée d’instruction personnalisée, comprenant 23 mnémoniques d’instruction et 26 opcodes.

    \n\n\n\n

    C’est super ingénieux !

    \n\n\n\n
    \n\n
    \n\n\n\n

    Le design principal du CPU se divise en plusieurs unités : une unité de récupération, une unité de contrôle, une unité logique arithmétique, un fichier registre, une unité PC, plusieurs multiplexeurs, une unité de contrôle de la mémoire, une table de RAM de 128KB, et un affichage de 128×128 en 16 couleurs.

    \n\n\n\n

    Ce projet, disponible sur GitHub sous le nom « excelCPU« , inclut plusieurs fichiers principaux comme le CPU lui-même, une ROM, un ensemble d’instructions détaillées, un compilateur pour Excel-ASM16, et un dossier de programmes d’exemple.

    \n\n\n\n
    \r\n

    Cette conception est non seulement un tour de force en matière de programmation, mais elle ouvre également de nouvelles perspectives sur les capacités d’Excel en tant qu’outil de développement. Pour vous dire à quel point c’est balèse, le CPU fonctionne à partir d’un simple signal d’horloge et peut être contrôlé en mode automatique ou manuel, avec diverses options pour réinitialiser la RAM, lire la ROM, et exécuter des programmes. Et bien sûr, les utilisateurs de cet « ordinateur » peuvent également écrire des programmes dans le langage Excel-ASM16 et les compiler sur la feuille de calcul ROM.xlsx.

    \n\n\n\n

    Bref, on n’arrête pas la bidouille de l’extrême !

    \n", + "category": "Infos", + "link": "https://korben.info/creer-un-ordinateur-16-bits-dans-excel.html", + "creator": "Korben", + "pubDate": "Sun, 28 Jan 2024 16:04:19 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "58eed1d8d7f1d13dca1daa7933ec7aac", + "highlights": [] + }, + { + "title": "OSTE – Le scanner de vulns qui combine Nikto, ZAP, Nuclei, SkipFish, et Wapiti", + "description": "OSTE est un scanner de sécurité open-source qui simplifie les tests dynamiques des applications, combinant plusieurs scanners DAST tels que Nikto Scanner, OWASP ZAP, Nuclei, SkipFish et Wapiti. Il se concentre sur les vulnérabilités d'injection Web et offre une interface conviviale. OSTE fonctionne sur plusieurs plateformes, principalement Kali Linux.", + "content": "

    \"\"

    \n

    Si vous vous intéressez un peu à la sécurité informatique, je vous présente aujourd’hui OSTE qui est ce qu’on pourrait appeler un Metascanner.

    \n\n\n\n
    \r\n

    Alors qu’est-ce qu’un Metascanner ?

    \n\n\n\n

    Eh bien il s’agit d’un scanner de vulnérabilité web qui combine différents outils tels que Nikto, zap de l’OWASP, Nucléi, SkipFish ou encore Wapiti.

    \n\n\n\n

    L’intérêt de cet outil c’est qu’il offre une interface graphique très user friendly qui permet de consulter les rapports de scan, mais également de les lancer. Injections SQL, XSS, XML, HTML ou encore des injections liées à des commandes spécifiques au système d’exploitation visé. Chacun des scanners DAST (Dynamic Application Security Testing) intégrés fournit des listes de vulnérabilités pour vous aider à identifier et corriger les problèmes potentiels.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Pour l’installer, vous aurez besoin de tous les outils que je viens de vous citer, mais si vous utilisez Kali Linux vous n’aurez pas de soucis puisque tout ça est déjà présent dans la distrib. Sinon il faudra les installer manuellement.

    \n\n\n\n
    \r\n

    Ensuite il ne vous restera plus qu’à cloner le dépôt sur votre machine et à lancer la commande

    \n\n\n\n
    python3 metascan.py
    \n\n\n\n

    Vous pourrez alors lancer des scans, charger les résultats, les exporter, les consulter directement depuis l’interface graphique.

    \n\n\n\n

    Vous l’aurez compris, OSTE est un outil fantastique pour simplifier l’évaluation de la cyber sécurité. N’oubliez pas quand même que c’est destiné à usages éducatifs ou dans le cadre de mission d’audits pour lesquelles vous avez été mandaté.

    \n\n\n\n

    Si vous voulez en savoir plus, cliquez ici.

    \n", + "category": "Sécurité", + "link": "https://korben.info/scanner-oste-tests-securite-dynamiques-applications-web.html", + "creator": "Korben", + "pubDate": "Sun, 28 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "b1c8d0b3098030bb9417cfa55fdeab34", + "highlights": [] + }, + { + "title": "Dusage – Mieux visualiser l’espace disque utilisé", + "description": "Pour vérifier l'espace disque, l'outil en ligne de commande Dusage est présenté comme une alternative plus claire à la commande \"df\". Il fournit des graphiques colorés de l'utilisation des disques et des inodes. Pour l'installer, utilisez \"cargo install dusage\". Il est utile notamment sur Raspberry Pi et pour ceux qui trouvent \"df\" compliqué. Un outil similaire, \"musage\", existe pour la mémoire vive.", + "content": "

    \"\"

    \n

    Comment faites-vous pour savoir s’il reste de la place sur votre disque dur ?

    \n\n\n\n
    \r\n

    Les vrais vont me répondre qu’ils utilisent la commande « df » pour en savoir plus, mais faut se l’avouer, cette commande peut être un peu déroutante pour les noobs et pas très attrayante visuellement.

    \n\n\n\n

    C’est pourquoi aujourd’hui je vous présente l’outil Dusage ! Un outil en ligne de commande conçu pour vous offrir une représentation beaucoup plus claire de l’espace disque utilisé sur votre système.

    \n\n\n\n

    Pour l’installer, il vous suffit d’ouvrir un terminal et d’utiliser la commande suivante :

    \n\n\n\n
    cargo install dusage
    \n\n\n\n

    Ensuite, y’a plus qu’à lancer la commande dusage pour obtenir la liste des systèmes de fichiers avec leur taille totale, l’espace disque utilisé, l’espace disque disponible, le pourcentage d’occupation, le point de montage, ainsi qu’un graphique qui représente l’utilisation des disques et des inodes, avec des couleurs différentes en fonction des points de montage pour faciliter la lecture.

    \n\n\n
    \n
    \"\"
    \n\n\n
    \r\n

    Pour rappel, les inodes sont des structures de données qui contiennent des informations sur les fichiers et les répertoires d’un système de fichiers. L’utilisation des inodes peut être un indicateur utile pour déterminer s’il y a trop de petits fichiers sur votre disque, ce qui peut causer des problèmes de performance.

    \n\n\n\n

    Si vous l’utilisez sur le Raspberry Pi, vous verrez également que le système de fichiers « log2ram » est affiché en dernier pour faciliter le repérage.

    \n\n\n\n

    Bref, si vous détestez df, parce que vous n’y comprenez rien, dusage sera là pour vous faciliter la vie. D’ailleurs, si vous l’appréciez, il y a également un autre projet qui s’appelle musage, qui est à la commande « free », ce que dusage est à la commande df. Pour rappel, « free » permet de voir l’espace disponible en mémoire vive.

    \n\n\n\n

    Amusez-vous bien !

    \n", + "category": "Linux", + "link": "https://korben.info/dusage-analyse-espace-disque-optimisation.html", + "creator": "Korben", + "pubDate": "Sat, 27 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": true, + "created": false, + "tags": [], + "hash": "f9f936254a8e1ae33df6a949b71131e8", + "highlights": [] + }, + { + "title": "ShellGPT – Boostez votre utilisation du terminal grâce", + "description": "Shell GPT est un assistant personnel basé sur l'IA pour générer des commandes shell, du code et de la documentation. Il s'installe facilement via pip et nécessite la clé API OpenAI dans le .zshrc ou .bashrc. Avec différentes commandes, il peut exécuter des requêtes, lancer des commandes directes avec du code, initier des sessions de chat pour des interactions longues, et même intégrer des fonctions au shell. Il dispose aussi d'un mode REPL interactif et permet la personnalisation avec des rôles spécifiques.", + "content": "

    \"\"

    \n

    Je me lasse pas de tous ces petits softs qui utilisent de l’IA et qui simplifient quand même grandement la vie. Hier on a vu un plugin VS Code pour coder plus rapidement. Et aujourd’hui, je vous propose Shell GPT, un assistant personnel qui utilise ChatGPT pour vous aider à générer des commandes shell, des bouts de code et même de la documentation.

    \n\n\n\n
    \r\n

    Pour l’installer, c’est easy :

    \n\n\n\n
    pip install shell-gpt
    \n\n\n\n

    Il faudra quand même faire un export OPENAI_API_KEYcomme d’habitude dans votre .zshrc ou .bashrc pour lui indiquer votre clé API OpenAI. Et redémarrez votre terminal pour que les modifications prennent effet.

    \n\n\n\n
    export OPENAI_API_KEY=\"votre_clé_API_OpenAI\"
    \n\n\n\n

    Une fois installé, ça fait plein de trucs cool. Vous pouvez simplement exécuter la commande sgpt suivie de votre requête pour lui demander tout ce que vous voulez. Par exemple, pour rechercher les couleurs d’un arc-en-ciel, vous pouvez exécuter la commande suivante :

    \n\n\n\n
    sgpt \"quelles sont les couleurs d'un arc-en-ciel ?\"\n
    \n\n\n
    \n
    \"\"
    \n\n\n

    Mais vous pouvez surtout lui demander des commandes que vous ne sauriez pas construire. Par exemple :

    \n\n\n\n
    sgpt \"VOTRE DEMANDE\"
    \n\n\n
    \n
    \"\"
    \n\n\n
    \r\n

    Ou pour avoir une réponse plus directe avec uniquement du code, il suffit d’ajouter le paramètre –code :

    \n\n\n\n
    sgpt --code \"VOTRE DEMANDE\"
    \n\n\n
    \n
    \"\"
    \n\n\n

    Pour ceux qui veulent, vous pouvez même lancer votre demande en mode shell pour pouvoir l’exécuter de suite :

    \n\n\n\n
    sgpt --shell \"VOTRE DEMANDE\"
    \n\n\n\n

    Et pour aller encore plus loin, vous pouvez aussi le lancer en mode « chat ». S’engagera alors une discussion sur le long cours, avec possibilité de créer des fichiers, de les modifier, de lancer des commandes, etc… Remplacez NOM_SESSION par le titre à donner à votre chat, pour pouvoir ensuite y retourner en gardant le contexte.

    \n\n\n\n
    sgpt --chat NOM_SESSION \"VOTRE DEMANDE\"
    \n\n\n
    \n
    \"\"
    \n\n
    \n
    \"\"
    \n\n\n

    ShellGPT offre aussi d’autres fonctionnalités avancées, notamment le REPL mode qui permet d’interagir avec ShellGPT dans un mode interactif pour générer du code et exécuter des commandes (en appuyant sur la touche « e »

    \n\n\n\n
    sgpt --shell --repl NOM_SESSION
    \n\n\n
    \n
    \"\"
    \n\n\n

    Et vous pouvez aussi créer des rôles personnalisés pour personnaliser le comportement de ShellGPT dans des scénarios spécifiques, selon vos envies. Je vous invite à vous plonger dans la doc pour exploiter tout ça. Ça fait beaucoup de choses mais c’est super pratique et ça vous aidera à automatiser pas mal de choses.

    \n\n\n\n

    Enfin, et je terminerai avec ça, il est possible d’installer une intégration dans votre shell.

    \n\n\n\n
    sgpt --install-integration
    \n\n\n\n
    \r\n

    En gros, ça va ajouter quelques lignes dans votre .bashrc ou .zshrc pour simplement en appuyant sur

    \n\n\n\n
    CTRL + l
    \n\n\n\n

    transformer ce que vous avez écrit dedans en commande exécutable.

    \n\n\n\n
    \n\n\n\n

    Voilà, j’ai à peu pres fait le tour de cet outil merveilleux !

    \n\n\n\n

    L’IA c’est cool mais quand c’est bien intégré dans nos outils du quotidien, c’est encore meilleur !

    \n\n\n\n

    ShellGPT est à découvrir ici.

    \n", + "category": "Intelligence artificielle", + "link": "https://korben.info/boostez-utilisation-terminal-avec-shellgpt.html", + "creator": "Korben", + "pubDate": "Fri, 26 Jan 2024 08:00:00 +0000", + "enclosure": "https://korben.info/app/uploads/2023/12/243206128-bead0dab-0dd9-436d-88b7-6abfb2c556c1-2.mp4", + "enclosureType": "video/mp4", + "image": "https://korben.info/app/uploads/2023/12/243206128-bead0dab-0dd9-436d-88b7-6abfb2c556c1-2.mp4", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "343d48ad0a9aa6e95408ebab82651ff1", + "highlights": [] + }, + { + "title": "Continue – L’extension Visual Studio Code qui code à votre place", + "description": "Cursor est l'éditeur de code préféré de l'auteur car il intègre l'IA et est basé sur Visual Studio, utile même pour les novices en développement. Il est payant, mais on peut utiliser une clé OpenAI ou un plugin open source \"Continue\" pour un paiement à la consommation dans Visual Studio Code ou JetBrains. Continue permet d'interagir avec l'IA pour comprendre, compléter ou corriger le code en langage naturel, de créer des fichiers, des tests unitaires et de chercher des solutions sur StackOverflow. Il est compatible avec GPT-4 et GPT-3.5-turbo et peut être utilisé avec d'autres LLM via LM Studio ou Ollama. Pour l'activer, on utilise CMD + M ou ALT + M.", + "content": "

    \"\"

    \n

    Cursor est à ce jour l’éditeur de Code que je préfère, car il est basé sur Visual Studio et totalement boosté à l’IA. Cela me permet pour moi qui suis une quiche en dev, de mener à bien mes projets de conquête du monde.

    \n\n\n\n
    \r\n

    Toutefois, c’est payant. Et si vous ne voulez pas lâcher un peu de thunasse, et que vous voulez payer uniquement ce que vous consommez, c’est possible dans Cursor avec une clé OpenAI, mais également en installant ce plugin open source baptisé « Continue » directement dans un bon vieux Visual Studio Code d’origine ou un JetBrains.

    \n\n\n\n

    Concrètement, ce truc vous permet en surlignant un bout de code, de discuter avec l’IA pour mieux le comprendre, le compléter ou le corriger. Vous pouvez même apporter des modifs directement à votre code simplement en demandant ce que vous voulez en langage naturel du genre :

    \n\n\n\n
    /edit réécrire ceci pour retourner une liste aplatie à partir d'une matrice 3x3\n/edit refactoriser cela en une mise en page flex angulaire sur une seule ligne\n/edit définir ici un type pour une liste de listes de dictionnaires
    \n\n\n
    \n
    \"\"
    \n\n\n

    Continue permet aussi de générer des fichiers from scratch, c’est-à-dire de zéro ou de générer des tests unitaires, des commandes Shell ou des recherches sur StackOverflow pour en extraire uniquement le nécessaire.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Continue est compatible avec GPT-4 et GPT-3.5-turbo via l’API OpenAI. Et si vous voulez esquiver OpenAI, vous pouvez toujours la connecter sur un autre LLM en utilisant par exemple LM Studio ou Ollama.

    \n\n\n\n
    \r\n

    Une fois installé, pour l’activer, il suffit de faire un CMD + M (ou ALT + M).

    \n\n\n\n

    Amusez-vous bien et codez-moi des trucs de ouf !

    \n", + "category": "Développement", + "link": "https://korben.info/visual-studio-code-extension-continue-coding-automation.html", + "creator": "Korben", + "pubDate": "Thu, 25 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "00f475aa875781976317bc74408a3cbe", + "highlights": [] + }, + { + "title": "Palworld – Comment héberger votre jeu préféré sans dépenser un centime", + "description": "Palworld, un jeu mêlant des éléments de Pokemon et Fortnite, fait fureur parmi les enfants. Il permet d'exploiter des créatures appelées \"pals\". Pour ceux intéressés, il est possible d'héberger son propre serveur Palworld avec Docker et SteamCMD, en suivant une documentation et un guide d'optimisation disponibles en ligne, pour une intégration simplifiée.", + "content": "

    \"\"

    \n

    Cela n’aura échappé à aucun gamer du monde entier : Palworld est là !

    \n\n\n\n
    \r\n

    Alors, vous le savez, je préfère travailler plutôt que jouer donc je n’ai pas encore eu l’occasion de tester, mais mes enfants sont déjà à fond dessus. Bon, comme vous pouvez le voir, y’a clairement plagiat inspiration de Pokemon, Zelda BOTW, Fortnite et j’en passe.

    \n\n\n\n
    \n\n
    \n\n\n\n

    D’ailleurs, si vous voulez former vos enfants à devenir des petites raclures de bidet parfaitement adapté à la société dans laquelle nous sommes, à savoir de futurs manageurs toxiques, exploiteurs de la nature ou encore criminels, y’a tout ce qu’il faut dans ce jeu puisque l’idée c’est clairement d’exploiter ces animaux (les pals) de toutes les façons possibles comme vous pouvez le voir dans la description Steam.

    \n\n\n
    \n
    \"\"
    \n\n
    \n
    \"\"
    \n\n
    \n
    \"\"
    \n\n
    \n
    \"\"
    \n\n\n

    Alors bien sûr, si je vous parle de Palworld, ce n’est pas pour exciter les défenseurs des animaux et les végans auxquels je m’associe évidemment.

    \n\n\n\n

    Mais c’est plutôt pour vous dire que si vous souhaitez héberger votre propre serveur dédié Palworld sans vous galérer directement avec Steam, il y a une super intégration Docker disponible ici sur Github. Cela utilise toujours Steam, mais de manière « invisible » l’aide de SteamCMD.

    \n\n\n\n
    \r\n

    Ensuite, le mieux c’est d’utiliser Docker Compose avec cette config :

    \n\n\n\n
    version: '3.9'\nservices:\n  palworld-dedicated-server:\n    build: .\n    container_name: palworld-dedicated-server\n    image: jammsen/palworld-dedicated-server:latest\n    restart: always\n    network_mode: bridge\n    ports:\n      - target: 8211 # gamerserver port inside of the container\n        published: 8211 # gamerserver port on your host\n        protocol: udp\n        mode: host\n      - target: 25575 # rcon port inside of the container\n        published: 25575 # rcon port on your host\n        protocol: tcp\n        mode: host\n    environment:\n      - ALWAYS_UPDATE_ON_START=true\n      - MAX_PLAYERS=32\n      - MULTITHREAD_ENABLED=true\n      - COMMUNITY_SERVER=true\n      - RCON_ENABLED=true\n      - RCON_PORT=25575\n      - PUBLIC_IP=10.0.0.5\n      - PUBLIC_PORT=8211\n      - SERVER_NAME=jammsen-docker-generated-###RANDOM###\n      - SERVER_DESCRIPTION=Palworld-Dedicated-Server running in Docker by jammsen\n      - SERVER_PASSWORD=serverPasswordHere\n      - ADMIN_PASSWORD=adminPasswordHere\n    volumes:\n      - ./game:/palworld
    \n\n\n\n

    Créez ensuite des sous-répertoires du jeu sur votre node Docker dans le répertoire de serveur de jeu (exemple: /srv/palworld) et donnez-lui des permissions complètes avec la commande suivante :

    \n\n\n\n
    chmod 777 game
    \n\n\n\n

    Ou faites tout simplement. :

    \n\n\n\n
    chown -R 1000:1000 game/
    \n\n\n\n

    Pensez à bien configurer le port-forwarding ou le NAT pour les ports affichés dans le fichier Docker Compose puis démarrez le serveur avec la commande :

    \n\n\n\n
    docker-compose up -d
    \n\n\n\n

    Après la première exécution, arrêtez le serveur, configurez-le en éditant le fichier suivant puis relancez-le quand vous avez terminé :

    \n\n\n\n
    game/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
    \n\n\n\n

    Voici les variables dispo au niveau de la conf docker :

    \n\n\n
    \n
    \"\"
    \n\n\n
    \r\n

    Vous pouvez également générer un fichier de config très facilement avec des outils comme celui-ci.

    \n\n\n
    \n
    \"\"
    \n\n\n

    En allant sur le Github ou sur le hub Docker, vous aurez toutes les infos avec encore plus de détails.

    \n\n\n\n

    Et bien sûr, toute la documentation pour les administrateurs de serveurs Palworld est disponible ici. Vous y trouverez même un guide d’optimisation.

    \n\n\n\n

    Au boulot maintenant !

    \n", + "category": "Jeu vidéo", + "link": "https://korben.info/palworld-hebergement-gratuit-jeu-guide.html", + "creator": "Korben", + "pubDate": "Wed, 24 Jan 2024 14:29:37 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "fab86c64fbb6a1f69aba9da768e60ca7", + "highlights": [] + }, + { + "title": "ShortGPT – Pour automatiser la création de vidéos pour TikTok et Instagram", + "description": "Les plateformes comme TikTok et Instagram regorgent de vidéos avec des \"facts\" qui captivent. ShortGPT, un outil open source, permet de créer ces vidéos en plusieurs langues, en compilant des faits aléatoires ou choisis et des contenus Reddit. Il nécessite des clés API et offre une installation locale ou via Google Colab sans installations.", + "content": "

    \"\"

    \n

    Si vous trainez sur TikTok (pour les jeunes d’esprit) ou encore Instagram (pour les boomers d’esprit), vous êtes sans doute déjà tombé sur des vidéos avec des « facts », c’est à dire des faits historiques, scientifiques ou encore des trucs tirés tout droit de Reddit, qui vous ont captivé avec une petite musique de merde et un gameplay de jeu vidéo quelconque en fond.

    \n\n\n\n
    \r\n

    Ce genre de format est calibré pour endormir ce qui vous reste de matière grise fondue et vous faire rester sur la vidéo. Là où ça devient drôle, c’est que vous allez pouvoir générer ce genre de format vidéo grâce à ShortGPT. Cet outil open source (décliné également en site payant) supporte de nombreuses langues et peu aller chercher automatiquement des « faits » random ou sur le sujet de votre choix, ainsi que des sujets sur Reddit et compiler tout ça dans une vidéo avec une voix OFF.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Vous pouvez lui demander autant de shorts que vous voulez. Il vous faudra juste une clé API OpenAI, Pexels (pour les images) et pour avoir une voix de qualité, vous pouvez aussi ajouter votre clé ElevenLabs (mais pas obligatoire puisque c’est payant).

    \n\n\n\n

    Voici techniquement comment c’est gaulé :

    \n\n\n
    \n
    \"\"
    \n\n\n

    Vous avez deux choix pour installer ShortGPT. Si vous êtes du genre à aimer avoir tout sur votre ordinateur, vous pouvez installer les pré-requis localement en suivant la doc du Github. Cependant, si vous êtes comme moi et que vous préférez ne pas vous embêter avec des installations interminables, vous pouvez utiliser Google Colab. C’est gratuit et sans installation.

    \n\n\n\n
    \n\n
    \n\n\n\n
    \r\n

    Evidemment, y’a assez de contenu merdique sur Internet pour pas en rajouter, mais ça peut-être une bonne base de départ, de reprendre ce code, pour le modifier et en faire un outil de génération de vidéos un peu plus sympa et mieux adapté à votre public.

    \n\n\n\n

    A découvrir ici.

    \n", + "category": "Vidéo", + "link": "https://korben.info/automatiser-creation-videos-tiktok-instagram-shortgpt.html", + "creator": "Korben", + "pubDate": "Wed, 24 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "a6714a431f4de2810ffac37f79acd614", + "highlights": [] + }, + { + "title": "Radion – Pour découvrir vos prochains jeux vidéos", + "description": "Radion est une application gratuite pour iOS/Android, décrite comme une encyclopédie pour les gamers, permettant de suivre l'actualité des jeux vidéo, de gérer sa collection, de suivre ses progrès et de recevoir des recommandations personnalisées. Elle offre également une plateforme sociale pour le partage d'expériences entre joueurs.", + "content": "

    \"\"

    \n

    Dimitri, lecteur de Korben.info depuis pas mal d’années, m’a contacté le mois dernier, pour me parler de Radion, son application iOS / Android gratuite qui permet de suivre l’actualité jeux vidéos, les sorties notamment et de tout savoir sur tous les jeux qui existent, de lire leurs critiques, la durée de jeu estimé, de voir des tas d’images du jeu et j’en passe. Cette application, véritable encyclopédie pour les gamers, regorge d’informations et de fonctionnalités qui va transformer la manière dont vous suivez vos jeux et futurs jeux préférés.

    \n\n\n
    \n
    \"\"
    \n\n\n
    \r\n

    Mais Radion n’est pas juste une vitrine pour les jeux. Elle permet de marquer les jeux que vous possédez et de suivre votre avancement dans ces derniers. Parfait pour garder une trace de vos exploits 🙂

    \n\n\n
    \n
    \"\"
    \n\n\n

    Et surtout, en fonction de ce que vous aimez, des consoles que vous possédez et des jeux que vous attendez, l’IA de Radion peut vous recommander les prochains titres qui seront à coup sûr des hits pour vous dans votre petit cœur.

    \n\n\n\n

    Bref, vous l’aurez compris, Radion est aux jeux vidéos, ce que Trakt.tv est aux séries, pour ceux qui connaissent. Radion est à la fois un journal de bord pour vos aventures ludiques et une plateforme pour découvrir de nouveaux horizons dans le monde des jeux.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Radion sert aussi de plateforme sociale. Le partage de fiches de jeux entre amis n’est pas seulement un moyen de recommandation, c’est un outil pour tisser des liens, pour créer des discussions. En partageant vos expériences de jeu, vos découvertes, et même vos critiques, Radion devient un espace d’échange et de partage pour la communauté des gamers.

    \n\n\n\n
    \r\n

    On verra ensuite comment ça évolue. Perso, je trouve que des conseils pour passer les niveaux, en mode ETAJV à l’ancienne, ce serait bien cool à rajouter. Tout ce que je peux vous dire c’est que le dev travaille sur l’import / synchronisation des jeux avec Steam / Xbox / PlayStation directement dans l’application. Hâte de voir ce que ça va donner.

    \n\n\n\n

    A découvrir ici pour iOS et Android.

    \n", + "category": "Infos", + "link": "https://korben.info/decouverte-jeux-videos-avec-radion.html", + "creator": "Korben", + "pubDate": "Tue, 23 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "131250b6aae198228cd33bba92b98f3d", + "highlights": [] + }, + { + "title": "Surfshark VPN pour les expatriés et les nomades", + "description": "— Article en partenariat avec Surfshark VPN — Parmi les nombreux aspects intéressants d’un VPN, on va souvent citer le fait de pouvoir éviter la censure, ou d’accéder à des services dans un pays qui ne les autorisent pas. Sans aller jusque là, c’est un outil qui sera aussi assez utile … Suite", + "content": "

    \"Surfshark

    \n

    — Article en partenariat avec Surfshark VPN

    \n\n\n\n

    Parmi les nombreux aspects intéressants d’un VPN, on va souvent citer le fait de pouvoir éviter la censure, ou d’accéder à des services dans un pays qui ne les autorisent pas. Sans aller jusque là, c’est un outil qui sera aussi assez utile dans certains cas plus classiques. Comme c’est le cas des expatriés qui vont habiter un autre pays.

    \n\n\n\n

    Et ici je ne parle pas forcément d’aller dans un pays comme Chine & Co, mais simplement d’aller vivre ailleurs. Dans votre lieu d’origine, vous aviez vos petites habitudes, par exemple pour vous connecter à votre banque ou d’autres services ayant des informations sensibles vous concernant (impôts, mutuelle …). Or, une fois expatrié vous allez peut-être commencer par devoir vous connecter à des wifi-publics, des réseaux moins sécurisés, etc. Surfshark VPN va vous aider à sécuriser vos données (via chiffrement AES-256 et IKEv2/IPse) afin que vos connexions, votre nouveau fournisseur d’accès & co ne puissent pas voir à quoi vous vous connecter et ce que vous faites.

    \n\n\n\n

    Un souci récurrent que beaucoup risquent de rencontrer c’est que l’accès à votre compte bancaire à vos données de santé ou divers sites gouvernementaux soit plus difficilement accessible depuis une adresse IP étrangère (voire totalement impossible). En choisissant un serveur situé dans le pays d’origine, le VPN vous aide à éliminer cet obstacle. Et cela peut s’avérer sacrément pratique lorsque vous êtes dans votre nouveau pays et qu’il vous faut demander des documents administratifs à distance.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Il y a donc tout intérêt à opter pour une solution qui possède des serveurs dans un maximum d’endroits du monde. Et qui soient rapides. C’est le cas pour Surfshark puisque ce sont plus de 3200 serveurs, situés dans plus de 100 pays, et dont la plupart ont maintenant des vitesses de 10 Gb/s.

    \n\n\n\n

    Autre aspect positif d’un VPN que j’ai déjà abordé : les gains sur les prix des billets d’avion ou de train. Parce qu’en dehors de ceux qui veulent totalement couper les ponts avec leur vie passée, les expats ont souvent le mal du pays au bout d’un moment. Et pouvoir gratter quelques réductions en comparant les prix depuis plusieurs localisations, c’est toujours ça de gagné.

    \n\n\n
    \n
    \"Surfshark
    \n\n\n

    Quant à vos films et séries hexagonales préférées vous n’aurez pas besoin de les « binger » avant le départ. Vous garderez l’accès à votre cher Netflix France (ou autres services similaires) depuis votre nouvel emplacement. Vous vous expatriez en famille ? Aucun souci non plus puisque Surfshark VPN vous permet toujours de connecter un nombre d’appareils illimités (et en simultané) sur un seul compte. Smartphones, laptop, ordinateur, smartTV et même votre console, ils seront tous couverts. Parmi ses autres fonctionnalités utiles :

    \n\n\n\n
      \n
    • bouton kill switch
    • \n\n\n\n
    • split tunneling
    • \n\n\n\n
    • MultiHop dynamique
    • \n\n\n\n
    • protéger contre le leak DNS
    • \n\n\n\n
    • GPS-Spoofing pour Android
    • \n\n\n\n
    • changement d’IP automatique ou IP dédiée
    • \n\n\n\n
    • \n
    \n\n\n\n

    Bref pour continuer votre vie numérique avec le moins de perturbations possible, le VPN est une solution qui devrait vous aider. Et vous pouvez en bénéficier pour moins de 2.5€/mois TTC (avec l’abonnement 2 ans). Plutôt honnête pour dormir sur vos 2 oreilles durant cette transition personnelle 😉 Et c’est satisfait ou remboursé durant 30 jours. Au niveau des paiements acceptés vous avez à peu près toutes les options : CB, PayPal, Apple/Amazon/Google Pay et même les cryptomonnaies (maintenant qu’elles se portent mieux, c’est un peu plus intéressant).

    \n\n\n\n

    Partez l’esprit tranquille avec Surfshark VPN !

    \n", + "category": "VPN", + "link": "https://korben.info/surfshark-vpn-expatries.html", + "creator": "Korben", + "pubDate": "Mon, 22 Jan 2024 08:19:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "bf8de152a9c2e7b0b8f662c7ad2a7648", + "highlights": [] + }, + { + "title": "WebDB – Vos bases de données enfin accessibles facilement", + "description": "Alexandre a développé un IDE open source pour les bases de données nommé WebDB, qui facilite l'administration et la gestion des données. Avec une interface intuitive, WebDB permet une découverte aisée des serveurs, une gestion des données simplifiée, et un éditeur de requêtes efficace avec autocomplétion. Il supporte les mises à jour par lots, l'édition de colonnes, les relations SQL, et intègre ChatGPT ainsi que des fonctionnalités d'import/export de données. WebDB est une solution complète, adaptée à tous les niveaux d'expérience.", + "content": "

    \"\"

    \n

    Alexandre, lecteur de Korben.info depuis une bonne dizaine d’années, m’a fait le plaisir de me contacter pour me montrer l’outil qu’il développe depuis maintenant un an. J’ai trouvé ça très cool alors je vais le partager avec vous. Il s’agit d’un IDE totalement open source dédié aux bases de données. Cet outil libre simplifie les interactions que nous avons avec nos bases de données, ce qui rend leur administration et la gestion des données plus intuitives et surtout beaucoup plus facile. Vous allez voir !

    \n\n\n\n
    \r\n

    Tout d’abord, WebDB simplifie la découverte de serveurs et la connexion à ces derniers, grâce à un système de scan intelligent. Il détecte les ports utilisés pour chaque base de données et permet d’ajouter des hôtes spécifiques à analyser. Cela élimine la corvée de récupérer des mots de passe, car WebDB teste automatiquement des identifiants populaires. Pensez quand même à les changer à un moment pour des questions de sécurité 🙂

    \n\n\n\n

    En explorant plus profondément WebDB, on découvre que l’exploration de données est beaucoup plus facile et agréable que dans n’importe quel PhpMyAdmin ou autre. En seulement trois clics, on peut comme ça parcourir, mettre à jour ou supprimer des données. Le filtrage des données SQL et NoSQL se fait directement depuis l’explorateur, avec un design optimisé pour les clés étrangères et les ObjectID relationnels. Et ce n’est pas tout : WebDB permet de mettre à jours vos données par lots en utilisant des fichiers JSON. Pratiquement quand vous avez de la quantité à mettre à jour.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Le cœur de l’IDE WebDB réside dans son éditeur de requêtes. Avec de l’autocomplétion pour SQL et les structures spécifiques au serveur, rédiger des requêtes se fait en un clin d’œil. Les requêtes CRUD (create, read, update, and delete) pré-construites sont sauvegardées automatiquement et peuvent être marquées comme favorites.

    \n\n\n
    \n
    \"\"
    \n\n\n

    La modification de colonnes SQL ou de champs NoSQL est également plus intuitive grâce à WebDB. Le logiciel propose tous les types possibles en fonction de la base de données et facilite la modification des colonnes avec des fonctions de casting intelligentes, applicables tant aux bases de données SQL qu’à NoSQL. Cette fonctionnalité permet une grande flexibilité et s’adapte à divers contextes linguistiques.

    \n\n\n
    \n
    \"\"
    \n\n\n
    \r\n

    Voilà… Sinon, WebDB gère également des éléments complexes comme les procédures SQL, les fonctions, et les types de données spécifiques. Il prend en charge les validateurs MongoDB et les contraintes SQL, offrant une compréhension complète de la base de données.

    \n\n\n\n

    La gestion des relations SQL dans WebDB est également totalement transparente grâce à une vue intuitive. L’outil déduit les relations pour aider à générer des données étrangères et à comprendre la structure de la base de données avec une facilité déconcertante. En plus, le versioning de base de données est une autre caractéristique clé de WebDB. Suivant les modifications et intégrant Git, il permet de revenir facilement à n’importe quelle version antérieure.

    \n\n\n\n

    L’intégration de ChatGPT dans WebDB apporte également un peu de « cerveau » à l’outil. ChatGPT offre des réponses précises en fonction de la structure de la base de données. Cette fusion entre intelligence artificielle et gestion de données ouvre de nouvelles perspectives pour les utilisateurs, surtout pour les débutants.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Le module ERD de WebDB permet également de visualiser la structure et les relations de la base de données de manière moderne et intuitive. L’exportation de ces diagrammes au format PNG ou SVG se fait en un clic, ce qui vous permettra d’illustrer vos préz ou sites web / documentation super facilement.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Enfin, l’importation et l’exportation de données avec WebDB sont simplifiées, que ce soit au format natif ou JSON, garantissant une compatibilité et des performances optimales.

    \n\n\n\n

    Vous l’aurez compris, Alexandre a bien bossé et WebDB se présente vraiment comme une solution complète et avant-gardiste pour la gestion des bases de données, accessible et efficace pour tous, que vous soyez total noob ou super expert en base de données.

    \n\n\n\n
    \r\n

    Je vous invite à tester ça. C’est auto-hébergeable, ça tourne dans Docker, et y’a même une démo en ligne.

    \n", + "category": "Administration Systeme Réseau", + "link": "https://korben.info/webdb-accessibilite-facile-bases-de-donnees.html", + "creator": "Korben", + "pubDate": "Mon, 22 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "e3a84eb17b921880db2d27f33469feb6", + "highlights": [] + }, + { + "title": "Niolesk – Pour créer ou éditer vos diagrammes directement au format texte", + "description": "Les diagrammes dans les documents ne sont pas dessinés mais codés avec des langages comme JSON. Gissehel a créé Niolesk, une interface web qui facilite l'édition et l'affichage de ces diagrammes en s'appuyant sur Kroki. Le site permet d'éditer, importer et partager facilement les résultats.", + "content": "

    \"\"

    \n

    J’sais pas si vous savez, mais ce genre de petits diagrammes qu’on voit parfois dans des documents de recherche, sur les réseaux sociaux ou encore sur les Readme de Github, ne sont pas vraiment « dessinés ».

    \n\n\n\n
    \r\n

    Ils sont codés, ou plutôt décrits avec un langage comme du JSON, du PlantUML, DBML, GraphViz, Pikchr et j’en passe. C’est pourquoi, pour vous faciliter la vie, Gissehel, lecteur de Korben.info, a mis au point ce site nommé Niolesk qui permet d’afficher, et d’éditer ce genre de diagramme.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Il s’agit d’une interface web qui vient se mettre par-dessus Kroki, un outil capable de ce genre de rendu. Sauf que là, avec Niolesk, vous pouvez éditer et importer directement les diagrammes. Ça apporte donc un peu plus de souplesse à Kroki et ses API.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Une fois que vous avez le résultat qui vous convient, vous pourrez alors récupérer le contenu sous la forme d’une URL (image, markdowns…etc.) et ensuite l’utiliser dans vos propres documents.

    \n\n\n\n

    Le mieux c’est encore d’aller l’essayer sur vos propres schémas (ou ceux que ChatGPT vous générera :))

    \n\n\n\n
    \r\n

    Merci Gissehel pour le partage et bravo d’avoir codé ce site !

    \n", + "category": "Service web", + "link": "https://korben.info/creer-editer-diagrammes-format-texte-niolesk.html", + "creator": "Korben", + "pubDate": "Sun, 21 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": true, + "created": false, + "tags": [], + "hash": "38cb2efcb4c743752ab6f2a087dd891c", + "highlights": [] + }, + { + "title": "ProcDump débarque sous Linux !", + "description": "ProcDump, un outil Sysinternals pour surveiller et déboguer les processus Linux, permet de créer des dumps lors de pics d'utilisation CPU, de fuites de mémoire ou d'exceptions. Simple d'utilisation, il suffit d'exécuter une commande avec le PID du processus. Il offre des options pour sauvegarder les dumps, créer des vidages multiples, surveiller l'utilisation du processeur et de la mémoire, avec des seuils personnalisables. ProcDump est désormais disponible pour les distributions Linux comme CentOS, Ubuntu, et Fedora.", + "content": "

    \"\"

    \n

    Les plus barbus d’entre vous qui utilisent encore Linux connaissent bien cet outil de Sysinternals baptisé Procdump. Pour rappel, ProcDump est un outil de surveillance de processus et de débogage conçu pour permettre aux administrateurs système et aux développeurs de capturer des images de processus (des dumps) lorsqu’un processus atteint un certain critère, comme une utilisation élevée du CPU, une fuite de mémoire, ou une exception non gérée. Cela peut être utile pour identifier la cause profonde des pannes.

    \n\n\n\n
    \r\n

    Et bien bonne nouvelle pour les Linuxiens, puisque Sysinternals a également sorti ProcDump pour Linux. Ca fait tout pareil que son grand frère sous Windows et c’est compatible avec des distraits comme CentOS, Ubuntu ou encore Fedora.

    \n\n\n\n

    Utilisation de base

    \n\n\n\n

    Alors, c’est simple comme bonjour. Vous voulez garder un œil sur un processus particulier ? Rien de plus facile avec ProcDump. Tapez cette commande magique :

    \n\n\n\n

    sudo procdump [PID du processus]

    \n\n\n\n
    \r\n

    Par exemple, pour espionner ce qui se passe dans le processus avec le PID 1234, lancez :

    \n\n\n\n

    sudo procdump 1234

    \n\n\n\n

    Et pouf ! Vous avez un joli vidage de mémoire à analyser. Mais attendez, il y a plus ! Vous voulez sauvegarder votre trésor ? Indiquez simplement un nom de fichier ou un répertoire :

    \n\n\n\n

    sudo procdump 1234 mondump.dmp

    \n\n\n\n

    Création de plusieurs vidages

    \n\n\n\n

    On passe à la vitesse supérieure ! Avec l’option -n, vous pouvez créer une série de vidages. Imaginez, vous pourriez avoir non pas un, mais TROIS vidages, en tapant :

    \n\n\n\n
    \r\n

    sudo procdump -n 3 1234

    \n\n\n\n

    Et si vous êtes du genre impatient, réglez l’intervalle entre chaque vidage avec -s :

    \n\n\n\n

    sudo procdump -n 3 -s 5 1234

    \n\n\n\n

    Trois vidages, toutes les 5 secondes. C’est pas génial, ça ?

    \n\n\n\n

    Surveillance de l’utilisation du processeur

    \n\n\n\n

    Et pour les mordus de performances, ProcDump peut aussi surveiller l’utilisation du processeur. Vous voulez un rapport dès que ça dépasse 65 % ? Facile :

    \n\n\n\n
    \r\n

    sudo procdump -c 65 1234

    \n\n\n\n

    Ou pourquoi pas définir une plage ? Entre 10 % et 65 % par exemple :

    \n\n\n\n

    sudo procdump -cl 10 -c 65 1234

    \n\n\n\n

    Surveillance de l’utilisation de la mémoire

    \n\n\n\n

    Enfin, pour les obsédés de la mémoire, il y a l’option -m. Vous serez alerté dès que le processus dépassera les 100 Mo :

    \n\n\n\n

    sudo procdump -m 100 1234

    \n\n\n\n
    \r\n

    Et pour les plus gourmands, spécifiez plusieurs seuils :

    \n\n\n\n

    sudo procdump -m 100,200,300 1234

    \n\n\n\n

    Allez, je ne vais pas vous faire l’article sur toutes les possibilités de cet outil de compét’, mais si vous êtes un Linuxien dans l’âme, c’est du caviar !

    \n\n\n\n

    Pour installer ProcDump sous Linux, je vous renvoie à la documentation ici. Les binaires et le reste des explications est ici.

    \n", + "category": "Linux", + "link": "https://korben.info/procdump-now-available-for-linux.html", + "creator": "Korben", + "pubDate": "Sat, 20 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "371afdffdee957a6b89475f62fa6ceea", + "highlights": [] + }, + { + "title": "PR-Agent – Pour automatiser l’analyse des Pull Requests et bien d’autres choses sur vos projets Github, Gitlab…etc", + "description": "PR-Agent de CodiumAI est un outil open-source aidant les développeurs à examiner efficacement les demandes d'extraction. Compatible avec GitHub, Gitlab et Bitbucket, il offre des fonctionnalités comme l'auto-description, l'auto-revue, la réponse aux questions et les suggestions de code. Facile à utiliser, il automatise le processus d'examen et encourage les contributions communautaires.", + "content": "

    \"\"

    \n

    Si vous contribuez à des projets open source sur Github, Gitlab ou encore Bitbucket et que vous devez vous palucher tous les jours des tonnes d’issues, de questions et des pull requests, voici un outil propulsé avec de l’IA qui devrait bien vous rendre service.

    \n\n\n\n
    \r\n

    Cet outil c’est PR-Agent et c’est développé par CodiumAI. Il s’agit d’un agent IA utilisant GPT-4 capable de vous soulager en générant des descriptions de pull request claires et concises de manière automatique, de faire de la revue automatique de code, ou tout simplement répondre aux questions que les gens posent et reposent sans cesse.

    \n\n\n\n

    PR-Agent est également capable, un peu à la manière d’un Github Copilot, de faire des suggestions pour améliorer le code qui se trouve sur votre dépôt, et bien sûr d’écrire les commits si besoin.

    \n\n\n\n

    Pour cela, une fois que PR-Agent est lancé, il suffit d’employer les commandes suivantes :

    \n\n\n
    \n
    \"\"
    \n\n\n
      \n
    • Description automatique (/describe) : Génère automatiquement une description du PR (Pull Request) – titre, type, résumé, description du code et étiquettes.
    • \n\n\n\n
    • Auto Review (/review) : Feedback ajustable sur le thème principal du PR, son type, les tests pertinents, les problèmes de sécurité, le score, et diverses suggestions pour le contenu du PR.
    • \n
    \n\n\n
    \n
    \"\"
    \n\n\n
      \n
    • Réponse aux questions (/ask …) : Réponse à des questions en texte libre sur le PR.
    • \n\n\n\n
    • Suggestions de code (/improve) : Suggestions de code committable pour améliorer le PR.
    • \n\n\n\n
    • Mise à jour du Changelog (/update_changelog) : Mise à jour automatique du fichier CHANGELOG.md avec les changements du PR.
    • \n\n\n\n
    • Trouver un problème similaire (/similar_issue) : Récupère et présente automatiquement les problèmes similaires.
    • \n\n\n\n
    • Ajouter de la documentation (/add_docs) : Ajoute automatiquement de la documentation aux fonctions/classes non documentées dans le PR.
    • \n\n\n\n
    • Générer des étiquettes personnalisées (/generate_labels) : Suggère automatiquement des étiquettes personnalisées basées sur les changements de code du PR.
    • \n
    \n\n\n\n

    Bref, gros, gros gain de temps. Si vous voulez le tester avant de le déployer sur vos dépôts, c’est possible sur le dépôt public de Codium AI en appelant l’agent comme ceci : @CodiumAI-Agent /COMMAND

    \n\n\n
    \n
    \"\"
    \n\n\n
    \r\n

    À vous de jouer maintenant !

    \n\n\n\n

    PR Agent est disponible ici et ça peut s’installer directement via Docker.

    \n", + "category": "Développement", + "link": "https://korben.info/outil-open-source-pr-agent-codiumai-ameliorer-examen-demandes-extraction.html", + "creator": "Korben", + "pubDate": "Fri, 19 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "49fa5d8c0b91775f2975539cf38ec5a7", + "highlights": [] + }, + { + "title": "Plane – Une bonne alternative à JIRA, Asana ou Linear pour mener vos projets à bien !", + "description": "Plane est un outil open source à autohéberger pour la gestion de projets, actuellement en développement. Il permet de suivre les tâches et sprints, d'intégrer des pièces jointes, et offre des fonctionnalités telles que des workflows personnalisés, des notifications multiplateformes, et une API. Compatible avec GitHub et Jira, il propose aussi de la documentation intégrée, des sprints planifiables, et un système de recherche rapide.", + "content": "

    \"\"

    \n

    Vous êtes vous déjà demandé pourquoi tous vos projets partaient en couille ?

    \n\n\n\n
    \r\n

    C’est probablement parce que vous n’avez pas encore trouvé le bon outil pour les planifier ! C’est pourquoi aujourd’hui, je tiens à vous présenter un projet open source à autohéberger qui s’appelle Plane !

    \n\n\n\n

    Oui, comme l’avion. Bien qu’encore en développement, cet outil, est déjà suffisamment cool pour vous donner envie de l’utiliser afin de suivre vos tâches, vos sprints et autres feuilles de route.

    \n\n\n
    \n
    \"\"
    \n\n\n

    L’interface est plutôt agréable et vous permettra d’afficher les projets, d’y ajouter des pièces jointes, de créer des workflows maison, mais également d’importer toutes les tâches directement depuis d’autres outils comme Github ou Jira. Et bien sûr recevoir des notifs dans Slack, Discord et vos propres outils puisqu’il y a même une API.

    \n\n\n\n

    Vous pouvez également utiliser des cycles pour planifier des sprints, diviser les projets en modules et créer des filtres personnalisés pour trier les informations comme bon vous semble. Plane offre également la possibilité de faire de la documentation directement au fur et à mesure du développement de votre projet et tout s’intègre parfaitement à Github pour conserver à la fois votre code et vos issues synchronisées avec Plane.

    \n\n\n\n
    \r\n

    Vous verrez, Plane est assez plaisant à prendre en main puisqu’il y a même Command K, un genre d’interface rapide à Spotlight pour chercher des tâches, créer de nouvelles actions….etc. sans oublier un petit bloc-notes propulsé à base de ChatGPT pour les grosses feignasses qui n’aiment pas écrire.

    \n\n\n\n

    Si ça vous branche, il n’y a plus qu’à découvrir Plane et kiffer la vie de projets ! Pour apprendre à l’installer avec Docker, c’est par ici.

    \n", + "category": "Service web", + "link": "https://korben.info/alternative-jira-asana-linear-gestion-projet-plane.html", + "creator": "Korben", + "pubDate": "Thu, 18 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": true, + "favorite": false, + "created": false, + "tags": [], + "hash": "8ab7298303005fa048c8cc744d39feac", + "highlights": [] + }, + { + "title": "SFTPGo – Le serveur SFTP ultime pour vos transferts de fichiers", + "description": "SFTPGo est un serveur SFTP complet et hautement configurable qui facilite le partage et le transfert de fichiers. Il prend en charge plusieurs backends de stockage et fonctionnalités avancées, avec une API REST et une interface WebAdmin UI. Le projet est open source, disponible sur différentes plateformes et s'appuie sur des dons et parrainages. SFTPGo est compatible avec plusieurs systèmes d'exploitation et solutions de stockage, offrant une expérience utilisateur simplifiée et sécurisée.", + "content": "

    \"\"

    \n

    Imaginez que vous deviez partager des fichiers avec vos collaborateurs, travailler sur des projets avec des personnes situées aux quatre coins du monde ou simplement sauvegarder vos photos de vacances, mais que vous ne savez pas par quoi commencer ?

    \n\n\n\n
    \r\n

    Et bien, ne cherchez plus, SFTPGo est là pour vous faciliter la vie.

    \n\n\n\n

    SFTPGo c’est un serveur SFTP open source, complet et hautement configurable qui supporte HTTP/S, FTP/S ou encore WebDAV. Il prend en charge plusieurs backends de stockage : du système de fichiers local avec ou sans chiffrement, du stockage d’objets S3, du Google Cloud Storage, de l’Azure Blob Storage, et bien sûr, SFTP.

    \n\n\n\n

    L’outil est gratuit, mais si vous voulez le soutenir ou profiter d’un support technique, il faudra porter la main à la bourse ^^. C’est donc plus Open Bourse qu’Open Source.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Parmi les fonctionnalités offertes, on trouve la possibilité de créer des dossiers virtuels privés ou partagés, des commandes personnalisables, des comptes virtuels stockés, de l’isolement chroot, des autorisations virtuelles par utilisateur et par répertoire, ainsi qu’une API REST, un gestionnaire d’événements, une interface d’administration…etc.

    \n\n\n\n
    \r\n

    SFTPGo facilite le paramétrage d’une authentification multifacteur personnalisable. Authentification partielle, par utilisateur et avec plusieurs méthodes, incluant l’authentification LDAP/Active Directory et des programmes externes. Il supporte l’administration des utilisateurs, le chiffrement des données, la modification dynamique des utilisateurs, les quotas, la limitation de bande passante et de débit.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Pour sécuriser vos données, SFTPGo propose une limitation du nombre de sessions simultanées avec ou sans filtrage par IP ou dossier. Terminaison automatique des connexions inactives, gestion de liste de blocage, filtrage Geo-IP et il est bien sûr compatible avec Git, SCP, rsync, FTP/S et WebDAV.

    \n\n\n\n

    Pour vous faciliter la vie, SFTPGo propre aussi des analyses de performance, des logs ultra-précis et un support Infrastructure as Code (IaC) via Terraform. Il est compatible avec Linux, macOS, Windows et FreeBSD et nécessite Go ainsi qu’un serveur SQL. Des binaires et une image Docker officielle sont également disponibles.

    \n\n\n\n

    SFTPGo est disponible sur plusieurs plateformes, y compris les dépôt Ubuntu, Void Linux, AWS Marketplace, Azure Marketplace et Elest.io. Il est également disponible pour Windows et macOS via des packages tels que winget, Chocolatey et Homebrew. Et il existe des portages pour FreeBSD et DragonFlyBSD.

    \n\n\n\n

    Voilà, si vous cherchez un serveur SFTP totalement configurable (y’a même un système de plugins) et supportant S3, Google Cloud, Azure et j’en passe, celui-ci est un must-have !

    \n", + "category": "Administration Systeme Réseau", + "link": "https://korben.info/sftpgo-solution-complete-partage-fichiers-securise.html", + "creator": "Korben", + "pubDate": "Wed, 17 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "c65ce2d02efcc29adb02e694a96822c5", + "highlights": [] + }, + { + "title": "DietPi – Une Debian ultra légère pour Raspberry Pi, Odroid, PINE64…etc optimisée et personnalisable", + "description": "DietPi est un OS léger basé sur Debian, optimisé pour minimiser la consommation de CPU et RAM, idéal pour les appareils tels que Raspberry Pi. Il permet une économie significative des ressources, offre des paramètres personnalisables, des mises à jour automatiques, et est compatible avec divers matériels, y compris des machines virtuelles. DietPi inclut un utilitaire de sauvegarde et convient pour divers projets, allant des serveurs NAS aux expériences IoT.", + "content": "

    \"\"

    \n

    Si vous aimez les ordinateurs un peu légers, type Raspberry Pi, Odroid et j’en passe, alors DietPi est fait pour vous. Il s’agit d’un système d’exploitation basé sur une Debian allégée dans le but de consommer le moins de CPU et de RAM possible.

    \n\n\n\n
    \r\n

    Voici un tableau qui compare DietPi avec Raspberry Pi OS Lite (64 bits). On peut y voir que niveau RAM, on économise 58%, sur le CPU c’est 39% en moyenne et en matière d’espace disque, c’est plus léger de 41%. Évidemment, cela se ressent sur la rapidité du boot, puisque c’est plus rapide à démarrer de 73%.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Avec DietPi, vous bénéficiez de paramètres personnalisables pour configurer votre système selon vos besoins, et vous pouvez facilement gérer les priorités de vos logiciels. De plus, le système prend en charge les mises à jour automatiques et l’automatisation de l’installation grâce à un dietpi.txt dans lequel vous pouvez spécifier votre config (genre les accès wifi, l’activation du serveur ssh…etc).

    \n\n\n\n

    DietPi est également livré avec un utilitaire de Backup ce qui vous permettra très facilement de sauvegarder et de restaurer votre installation.

    \n\n\n\n

    Comme je le disais, DietPi est compatible avec une variété d’ordinateurs, notamment les modèles Raspberry Pi, Odroid, PINE A64 et bien d’autres.

    \n\n\n
    \n
    \"\"
    \n\n\n
    \r\n

    Les machines virtuelles telles que Hyper-V, Virtualbox, Vmware, Parallels, UTM et Proxmox sont également prises en charge par DietPi, ce qui vous permet de l’utiliser lorsque les performances des micro-ordis sont insuffisantes. Ça peut même tourner sur un bon vieux PC x86/64.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Pour en savoir plus sur DietPi et comment l’utiliser, je vous invite à consulter le site officiel ici. Vous y trouverez des informations détaillées sur les différentes fonctionnalités offertes par DietPi, ainsi que des conseils pour bien démarrer avec ce système d’exploitation léger et optimisé.

    \n\n\n\n

    En résumé, DietPi est un choix fantastique pour ceux qui souhaitent tirer le meilleur parti de leur matériel, tout en minimisant la consommation de ressources. Qu’il s’agisse de créer un serveur NAS, d’expérimenter avec des projets IoT ou simplement de vous familiariser avec le monde des SBC (Single Board Computer), DietPi vous permettra de vous lancer rapidement et en toute simplicité.

    \n", + "category": "Raspberry", + "link": "https://korben.info/dietpi-debian-ultra-legere-optimisee-raspberry-pi-odroid-pine64.html", + "creator": "Korben", + "pubDate": "Tue, 16 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "a0ef013de3e5927da6c9401844252e54", + "highlights": [] + }, + { + "title": "Du transferts de fichiers simplifiés avec Aim !", + "description": "\"Aim\" est un outil en ligne de commande pour télécharger et uploader des fichiers avec support de reprise sur déconnexion ou échec. Installable via \"cargo install aim\", il est disponible pour Linux, macOS et Docker. Il gère les protocoles http, sftp, ftp, ssh et S3, et offre une mise à jour automatique avec \"aim --update\". Aim supporte divers formats de sortie, l'authentification sécurisée et un mode interactif pour naviguer dans les fichiers.", + "content": "

    \"\"

    \n

    Aim est un outil en ligne de commande qui vous permet de télécharger et d’uploader des fichiers tout en prenant en charge la reprise en cas de déconnexion ou d’échec du transfert.

    \n\n\n\n
    \r\n

    Pour l’installer, ouvrez un terminal et entrez la commande suivante :

    \n\n\n\n
    cargo install aim
    \n\n\n\n

    Des binaires pour Linux et macOS sont également disponibles ici. Sinon, y’a toujours Docker pour ceux qui aiment mettre le moindre truc en conteneur. Il peut également se mettre à jour lui-même grâce à cette commande :

    \n\n\n\n
    aim --update
    \n\n\n
    \n
    \"\"
    \n\n\n

    L’outil est capable de télécharger n’importe quoi du moment que c’est diffusé en http, sftp, ftp, ssh et S3. Pour le lancer, il suffit simplement de lui donner l’url du fichier à récupérer :

    \n\n\n\n
    aim https://domain.com/fichier.zip
    \n\n\n\n

    Et pour uploader vers un endpoint c’est :

    \n\n\n\n
    aim fichier.zip https://domain.com/destination
    \n\n\n
    \n
    \"\"
    \n\n\n
    \r\n

    Aim prend en charge plusieurs formats de sortie et vous permet de configurer des indicateurs personnalisés pour les barres de progression. Vous pouvez partager facilement des fichiers entre différentes machines et les télécharger à l’aide d’un simple navigateur.

    \n\n\n\n

    Vous pouvez par exemple partager un répertoire courant comme ceci :

    \n\n\n\n
    aim .
    \n\n\n\n

    Et à partir d’une seconde machine, accéder à ce partage :

    \n\n\n\n
    aim http://ADRESSEIP:8080
    \n\n\n\n

    Ou directement à un fichier précis :

    \n\n\n\n
    aim http://ADRESSEIP:8080/fichier.zip
    \n\n\n\n

    L’une des particularités d’Aim est sa capacité à utiliser différentes méthodes d’authentification, telles que les URL basiques, les fichiers .netrc, les clés SSH et les dossiers AWS. Cela rend l’accès aux fichiers plus sécurisé et fiable, en évitant les problèmes d’authentification courants.

    \n\n\n\n

    Aim propose également un mode interactif avec l’option -i pour naviguer dans les fichiers dispo au bout d’une URL.

    \n\n\n
    \n
    \"\"
    \n\n\n
    \r\n

    Voilà pour la petite présentation d’Aim. De quoi automatiser vos scripts de téléchargement ou d’upload très simplement.

    \n", + "category": "Linux", + "link": "https://korben.info/transfert-fichiers-facile-avec-aim.html", + "creator": "Korben", + "pubDate": "Mon, 15 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "ac22f30506e83cc057e9bd0fdeb864f5", + "highlights": [] + }, + { + "title": "Testez +400 distros Linux directement en ligne avec Distrosea", + "description": "Chaque année, de nombreuses distributions Linux émergent, rendant le choix difficile. DistroSea facilite ce processus en offrant plus de 400 distributions Linux à essayer en ligne, sans installation. Parmi elles, on retrouve des distributions populaires pour tous les profils, avec internet activé, permettant une expérience utilisateur authentique. Visitez DistroSea.com pour démarrer rapidement et gratuitement.", + "content": "

    \"\"

    \n

    Chaque année, certaines distribs Linux sortent du lot, attirant les curieux en quête d’innovation. Mais il y a un hic, c’est qu’il en existe tellement qu’il est difficile de toutes les essayer pour trouver celle qui vous convient le mieux.

    \n\n\n\n
    \r\n

    Heureusement, j’ai une excellente nouvelle pour vous : DistroSea est là pour résoudre ce problème !

    \n\n\n\n

    Pensez à toutes ces situations, où vous avez voulu essayer une distribution Linux différente, mais la flemme de télécharger l’ISO (d’ailleurs, quelle version prendre ?), et la flemme de préparer une machine ou une VM pour la faire tourner, même en version bootable.

    \n\n\n\n

    C’est fini ça, grâce à DistroSea qui simplifie grandement ce processus en proposant plus de 400 versions de distributions Linux à essayer directement en ligne, sans rien installer sur votre machine !

    \n\n\n
    \n
    \"\"
    \n\n\n

    Parmi les distributions populaires présentes sur la plateforme, on retrouve des classiques tels que Arch Linux, CentOS Stream, Debian, Fedora, Linux Mint, openSUSE, Ubuntu et Zorin OS. Et croyez-moi, il y en a pour tous les goûts et les besoins. Que vous soyez développeur, administrateur système, étudiant, passionné de rétro-gaming ou simplement à la recherche d’un système d’exploitation alternatif, vous trouverez forcément une distribution à votre image.

    \n\n\n
    \n
    \"\"
    \n\n\n
    \r\n

    L’un des grands avantages de DistroSea, c’est qu’Internet est actif sur les distribs. Cela signifie que vous pourrez parcourir le web, tester des applications en ligne et même installer des logiciels directement depuis le navigateur. De quoi vous offrir une expérience utilisateur très proche de celle que vous auriez sur une machine physique.

    \n\n\n\n

    Pour accéder à ce formidable outil, il vous suffit de vous rendre sur DistroSea.com et de vous inscrire gratuitement. Une fois connecté, vous pourrez sélectionner la distribution Linux de votre choix et la lancer directement dans votre navigateur. Aucune installation ni configuration n’est nécessaire, vous pouvez commencer à explorer et à tester les fonctionnalités de la distribution choisie en quelques secondes.

    \n\n\n\n

    Eclatez-vous bien les Linuxiens et n’oubliez pas de prendre une douche après tout ça 😉

    \n", + "category": "Linux", + "link": "https://korben.info/testez-plus-de-400-distributions-linux-en-ligne.html", + "creator": "Korben", + "pubDate": "Sun, 14 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "dba98b39b27d0a0c5d9c46a6de28492b", + "highlights": [] + }, + { + "title": "Arrêtez de dégouter les gens avec des selfies minables grâce à Microsoft Selfie", + "description": "Microsoft Selfie transforme vos photos en chefs-d'œuvre avec un clic grâce à la technologie de vision par ordinateur. Facile à utiliser et offrant des résultats impressionnants, cette application améliore vos portraits numériques sur iOS, Web et WeChat. Toutefois, la confidentialité et la gestion des données restent incertaines.", + "content": "

    \"\"

    \n

    Vous êtes moche, vous avez la peau grasse, des points noirs et vous vivez dans une cave mal éclairée ? Et bien j’ai enfin l’application qu’il vous faut pour réaliser vos rêves de fame !

    \n\n\n\n
    \r\n

    Cela s’appelle Microsoft Selfie et c’est un logiciel dispo sous iOS ou en version web qui vous permet de vous prendre en photo sous toutes les coutures, tel narcisse qui regarderait ses propres émissions sur C8, tout en ayant une qualité au top !

    \n\n\n\n

    Microsoft Selfie prend en compte votre âge, votre genre, le teint, l’éclairage et d’autres variables pour créer des portraits améliorés en quelques secondes. Comme ça, pas besoin de passer par la case retouche avec des filtres complexes. Vous pouvez enfin devenir influenceur de choc !

    \n\n\n
    \n
    \"\"
    \n\n\n

    Cependant, comme pour toute technologie, il y a quelques inconvénients. L’IA de Microsoft Selfie a parfois du mal avec les visages trop inclinés ou mal positionnés.

    \n\n\n\n

    Malheureusement, Microsoft n’a pas fourni de détails sur la confidentialité et la gestion des données. Il est donc recommandé de faire preuve de prudence et de ne pas utiliser l’application pour des photos sensibles ou privées. On n’essaye pas d’améliorer les photos de son zizi, donc.

    \n\n\n\n
    \r\n

    Bref, Microsoft Selfie est une excellente application pour prendre des selfies et améliorer les portraits numériques. Elle est facile à utiliser, même si vous êtes un(e) boomeur(se).

    \n\n\n\n

    Ça se télécharge ici : Microsoft Selfie.

    \n\n\n\n

    Vous ne serez pas déçu !

    \n", + "category": "iOS", + "link": "https://korben.info/microsoft-selfie-transformez-photos-en-chefs-doeuvre-numeriques.html", + "creator": "Korben", + "pubDate": "Sat, 13 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "fb0ea5e91f6e0afdb450bbfeaa611c86", + "highlights": [] + }, + { + "title": "5 certifications Kubernetes pour prouver vos compétences en 2024", + "description": "— Article en partenariat avec Ambient IT — Alors ce début d’année ? Vous avez déjà pris vos bonnes résolutions ? Parce que si ce n’est pas le cas, j’en ai une pour vous, et qui sera (peut-être) moins fatigante que le classique « se remettre au sport ». Ou mieux, prenez … Suite", + "content": "

    \"Kubernetes\"

    \n

    — Article en partenariat avec Ambient IT —

    \n\n\n\n

    Alors ce début d’année ? Vous avez déjà pris vos bonnes résolutions ? Parce que si ce n’est pas le cas, j’en ai une pour vous, et qui sera (peut-être) moins fatigante que le classique « se remettre au sport ». Ou mieux, prenez les 2 … oui je sais, je mets beaucoup de confiance en vous, mais j’ai décidé de commencer 2024 en voyant votre bon côté.

    \n\n\n\n

    Et cette résolution, c’est de vous décider à mettre toutes les chances de votre côté si vous cherchez un boulot dans le fabuleux monde du Devops ou que vous souhaitez évoluer dans votre position (demander une augmentation, etc.). En effet, les formations Kubernetes proposées par Ambient IT sont parmi les plus reconnues. Ça va booster votre niveau d’employabilité pour les recruteurs, ou vous permettre de mieux négocier votre salaire … ce n’est jamais inutile ! En plus, vous avez le choix du format entre présentiel et classe virtuelle, vous n’aurez même pas l’excuse du froid ! Autant rentabiliser votre temps à la maison cet hiver 😉

    \n\n\n
    \n
    \"\"/
    \n\n\n

    Ce ne sont pas moins de 5 certifications officielles issues de la Fondation Linux qui sont disponibles : KCNA, KCSA, CKAD, CKA et CKS. Je vous présente ça tout de suite :

    \n\n\n\n

    La formation KCNA (pour Kubernetes and Cloud Native Associate), c’est celle qui vous permettra de maitriser toutes les bases fondamentales de la techno, mais aussi l’écosystème du cloud natif. Vous allez apprendre les architectures, les conteneurs et leurs organisations, les APIs, l’observabilité et l’optimisation des applis cloud native, etc. Si vous commencez votre parcours, c’est par là que vous allez démarrer, car il n’y a besoin d’aucun prérequis. En plus elle est assez rapide à passer (1 journée). 

    \n\n\n\n

    La Kubernetes and Cloud Security Associate (KCSA) de son côté est plus costaude (2 journées) et vous demandera de bien maitriser les bases. Sur 2 jours vous en apprendrez beaucoup plus sur la sécurité de votre environnement Kubernetes et du cloud natif : sécurité des pods, des conteneurs, des clusters et de l’infrastructure, modèles d’attaque (attaque réseau, codes malveillants …), etc. Vous apprendrez aussi à utiliser des choses comme l’outil en ligne de commande KubeCTL, Kubelet ou le mécanisme de sécurité RBAC.

    \n\n\n\n

    Passons à la certification CKAD (sur 2 jours aussi) qui vous permet de devenir développeur d’application Kubernetes certifié. Comme son nom l’indique, elle vous donnera la possibilité de concevoir, configurer et lancer vos applis cloud natives. Mais aussi de les faire évoluer dans le temps. Ce sera donc l’occasion d’approfondir votre connaissance des pods, des services et mise en réseau ou encore du suivi (débug, observabilité, consommation de ressources …).

    \n\n\n\n

    Ensuite nous avons la CKA qui vous amènera à devenir administrateur Kubernetes certifié. Du stockage, au dépannage, en passant par la planification de pods et les charges de travail, vous serez à même de tout gérer. Vous apprendrez aussi à mettre en place et à gérer un cluster avec KubeADM et pas mal d’autres choses.

    \n\n\n\n

    Assez courte (1 jour), mais plutôt dense, la formation CKS (Certified Kubernetes Security Specialist) est, elle aussi, axée sécurité. De la mise en place à la protection d’un cluster, à la sécurisation du système, de la supply chain et des micro-services, en passant par la surveillance et la détection des attaques… vous deviendrez le spécialiste ultime de la sécu. Attention le niveau est relevé, il vous faut déjà posséder la certif CKA pour suivre cette certification et la formation Kubernetes avancée est un plus.

    \n\n\n
    \n
    \"\"
    \n\n\n

    Ces formations durent chacune 1 ou 2 journées, donc c’est assez rapide et vous pouvez les cumuler au fil des semaines/mois. Elles sont proposées à des prix assez variés (de 995€ à 2190€ HT), prix qui comprend l’examen de passage de la formation (valeur 250€ à 395€). Et comme toujours, le bon plan c’est que vous pouvez faire valoir votre crédit CPF (compte personnel de formation) et d’autres aides. Petit point à prendre en compte tout de même, si les formations sont en français, les examens se font, eux, en anglais.

    \n\n\n\n

    Pourquoi passer par Ambient IT pour ces certifications ? Déjà parce qu’ils sont partenaires officiels de la Linux Foundation ET Kubernetes Training Partner. Ensuite parce que les formateurs sont d’un très bon niveau, que vous pouvez suivre tout cela à distance et vous recevrez même des conseils pour être paré à vos examens. De quoi vous mettre dans les meilleures conditions possibles !

    \n\n\n\n

    Promo spéciale Korben

    \n\n\n\n

    Si vous me lisez régulièrement, vous savez que j’essaie toujours de vous dénicher de bons plans. Et c’est encore le cas aujourd’hui ! Sur 2024, si vous vous inscrivez à l’une des 5 formations certifiantes, lors de votre contact téléphonique avec Ambient IT, n’oubliez pas de mentionner que vous venez de la part de tonton Korben, vous aurez droit en cas d’échec au rattrapage (ce qui n’arrivera pas !). Si vous échouez à l’obtention de votre certification, votre rattrapage sera offert. C’est pas la classe ça ? Merci à Ambient IT de supporter notre communauté !

    \n\n\n\n

    Formez-vous aux certifications kubernetes !

    \n", + "category": "Développement", + "link": "https://korben.info/5-certifications-kubernetes.html", + "creator": "Korben", + "pubDate": "Fri, 12 Jan 2024 08:30:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "89f192a2c8fde356d19c69dcbefaacd8", + "highlights": [] + }, + { + "title": "Nearby Share – Le Airdrop officiel d’Android", + "description": "Nearby Share, développé par Google, facilite le partage de fichiers sur Android et Windows (64 bits, Windows 10+). Activez Bluetooth, localisation et Nearby Share, puis rapprochez les appareils pour partager facilement fichiers et vidéos sans câbles ni clés USB. La technologie est en constante évolution pour offrir une expérience utilisateur optimale.", + "content": "

    \"\"

    \n

    Afin d’offrir enfin une expérience de qualité à ses utilisateurs, en ce qui concerne le partage de fichiers, Google propose maintenant depuis quelque mois Nearby Share.

    \n\n\n\n
    \r\n

    Pour résumer en 3 mots : « Airdrop pour Android« 

    \n\n\n\n

    Cet outil est disponible sur les appareils Android et, également sur les ordinateurs Windows (64 bits, Windows 10 et supérieur). Pour l’utiliser sur Android, vérifiez simplement que votre version est à jour dans les paramètres de l’appareil. Et hop, vous êtes prêt à partager en toute simplicité !

    \n\n\n
    \n
    \"\"
    \n\n\n

    Avant de pouvoir transférer vos dick pics et autres documents d’importance, n’oubliez pas d’activer le Bluetooth et la géolocalisation. Une fois que c’est fait, y’a plus qu’à rapprocher vos appareils. Pas besoin d’être collés l’un à l’autre, mais tenez-vous à une distance raisonnable, disons 5 mètres max. Vous pourrez ainsi partager vos fichiers avec les appareils « découvrables » autour de vous.

    \n\n\n\n
    \n\n\n\n

    Pour en savoir plus sur Nearby Share, je vous invite à consulter le site officiel ici.

    \n\n\n\n
    \r\n

    Rien à dire de plus, le FUTUR EST EN MARCHE pour les possesseurs d’Android qui vont pouvoir enfin utiliser leur smartphone d’une manière respectable, sans avoir à souiller leur âme à chaque fois qu’ils veulent s’envoyer un fichier à eux-même. ^^

    \n", + "category": "Android", + "link": "https://korben.info/nearby-share-guide-android-windows-file-sharing.html", + "creator": "Korben", + "pubDate": "Fri, 12 Jan 2024 08:00:00 +0000", + "enclosure": "https://korben.info/app/uploads/2023/12/dd51f65710b22bbef891eeffdbd6a8172ddd332a06dae2ca11b2ede2c5c9bc6ddfb9d0a6bc9697ca5d295de24dc21899ddb9682baaa4c1633ec3a390277a2b5d.mp4", + "enclosureType": "video/mp4", + "image": "https://korben.info/app/uploads/2023/12/dd51f65710b22bbef891eeffdbd6a8172ddd332a06dae2ca11b2ede2c5c9bc6ddfb9d0a6bc9697ca5d295de24dc21899ddb9682baaa4c1633ec3a390277a2b5d.mp4", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "ebf0de34d2e96cceaca0d07d957e1efa", + "highlights": [] + }, + { + "title": "Lemmings revient sur Commodore Plus/4 – Nostalgie garantie !", + "description": "Lemmings, un jeu rétro inoubliable, est maintenant disponible pour Commodore Plus/4 grâce aux développeurs TCFS, Csabo et Unreal. La version Plus/4 est même meilleure que celle du C64 et comprend des conseils pour progresser. Pour jouer, téléchargez l'image disque, transférez-la sur une disquette compatible, insérez-la et suivez les instructions à l'écran. Cette version est une belle surprise pour les fans de rétro-gaming et montre le talent de la communauté pour adapter les jeux sur d'anciennes machines.", + "content": "

    \"\"

    \n

    Imaginez que vous soyez fan de rétro-gaming, et que vous ayez grandi avec les classiques de l’Amiga, de l’Atari ST et du PC. Parmi ces classiques se trouve un jeu qui a marqué toute une génération : Lemmings.

    \n\n\n\n
    \r\n

    Vous vous souvenez ?

    \n\n\n\n

    Ce petit jeu de réflexion et de stratégie où vous deviez guider ces adorables créatures stupides à travers divers obstacles pour les mener à la sortie ?

    \n\n\n\n

    Et bien, préparez-vous à sauter de joie, car ce jeu mythique est désormais disponible pour le Commodore Plus/4 !

    \n\n\n\n

    Grâce au travail acharné de TCFS, Csabo et Unreal, il est maintenant possible de jouer à cette version de Lemmings sur votre bon vieux Commodore Plus/4. Cette version du jeu est même meilleure que celle du C64, car elle utilise l’écran au complet.

    \n\n\n\n
    \n\n
    \n\n\n\n
    \r\n

    C’est une réalisation impressionnante qui a suscité des réactions extrêmement positives de la part des fans de rétro-gaming.

    \n\n\n\n

    Dans cette version de Lemmings pour Commodore Plus/4, vous retrouverez toutes les fonctionnalités qui ont fait le succès du jeu original. Les niveaux sont fidèles à ceux que vous avez connus et aimés, et les graphismes sont tout aussi mignons que dans les versions Amiga, Atari ST et PC. Les commandes de jeu sont également très intuitives et faciles à prendre en main, même pour les débutants.

    \n\n\n\n

    Les développeurs ont également inclus des astuces et des conseils pour vous aider à progresser dans le jeu. Ainsi, même si vous êtes un joueur occasionnel ou si vous n’avez jamais touché à un Commodore Plus/4 auparavant, vous pourrez profiter pleinement de cette expérience nostalgique.

    \n\n\n\n

    Alors, comment jouer à Lemmings sur votre Commodore Plus/4 ?

    \n\n\n\n
      \n
    1. Tout d’abord, rendez-vous sur le site Plus4World pour télécharger l’image disque du jeu.
    2. \n\n\n\n
    3. Ensuite, transférez l’image disque sur une disquette compatible avec votre Commodore Plus/4.
    4. \n\n\n\n
    5. Insérez la disquette dans votre Commodore Plus/4 et allumez la machine.
    6. \n
    \n\n\n\n

    Bien, ça peut se faire sur un émulateur voire carrément le tester sur cette version en ligne.

    \n\n\n\n

    Et voilà ! Vous pourrez maintenant profiter de cette incroyable version de Lemmings sur votre Commodore Plus/4 et revivre vos souvenirs d’enfance.

    \n", + "category": "Jeux vidéo", + "link": "https://korben.info/lemmings-retro-gaming-classique-commodore-plus4-version-optimisee.html", + "creator": "Korben", + "pubDate": "Thu, 11 Jan 2024 08:00:00 +0000", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "fr", + "folder": "", + "feed": "korben.info", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "04a633235ff0f2954434b839d5dafa74", + "highlights": [] + }, { "title": "WipeOut Phantom Edition – Un classique rétro grandement amélioré sur PC", "description": "WipeOut Phantom Edition est un portage amélioré pour PC du jeu original WipeOut de PlayStation, offrant des graphismes améliorés, une meilleure jouabilité, un support clavier et manette, de nouvelles musiques et effets sonores, des options supplémentaires et une configuration personnalisable. Cette version permet de revivre l'expérience rétro avec une touche moderne.", diff --git a/.obsidian/plugins/various-complements/data.json b/.obsidian/plugins/various-complements/data.json index e262beeb..1b138488 100644 --- a/.obsidian/plugins/various-complements/data.json +++ b/.obsidian/plugins/various-complements/data.json @@ -15,19 +15,49 @@ "disableSuggestionsDuringImeOn": false, "insertAfterCompletion": true, "firstCharactersDisableSuggestions": ":/^", - "useCommonPrefixCompletionOfSuggestion": false, "patternsToSuppressTrigger": [ "^~~~.*", "^```.*" ], + "phrasePatternsToSuppressTrigger": [], + "noAutoFocusUntilCycle": false, "showMatchStrategy": true, "showComplementAutomatically": true, "showIndexingStatus": true, "descriptionOnSuggestion": "Short", - "selectSuggestionKeys": "Tab", - "additionalCycleThroughSuggestionsKeys": "Ctrl/Cmd+N, Ctrl/Cmd+P", - "disableUpDownKeysForCycleThroughSuggestionsKeys": false, - "openSourceFileKey": "Alt+Enter", + "hotkeys": { + "select": [ + { + "modifiers": [], + "key": "Tab", + "hideHotkeyGuide": false + } + ], + "up": [ + { + "modifiers": [], + "key": "ArrowUp" + } + ], + "down": [ + { + "modifiers": [], + "key": "ArrowDown" + } + ], + "select 1st": [], + "select 2nd": [], + "select 3rd": [], + "select 4th": [], + "select 5th": [], + "select 6th": [], + "select 7th": [], + "select 8th": [], + "select 9th": [], + "open": [], + "completion": [], + "insert as text": [] + }, "propagateEsc": true, "enableCurrentFileComplement": false, "currentFileMinNumberOfCharacters": 0, @@ -59,11 +89,17 @@ "frontMatterComplementMatchStrategy": "inherit", "insertCommaAfterFrontMatterCompletion": false, "intelligentSuggestionPrioritization": { + "enabled": true, "historyFilePath": "", "maxDaysToKeepHistory": 30, "maxNumberOfHistoryToKeep": 0 }, "disableOnMobile": false, "showLogAboutPerformanceInConsole": false, - "selectionHistoryTree": {} + "selectionHistoryTree": {}, + "useCommonPrefixCompletionOfSuggestion": false, + "selectSuggestionKeys": "Tab", + "additionalCycleThroughSuggestionsKeys": "Ctrl/Cmd+N, Ctrl/Cmd+P", + "disableUpDownKeysForCycleThroughSuggestionsKeys": false, + "openSourceFileKey": "Alt+Enter" } \ No newline at end of file diff --git a/.obsidian/plugins/various-complements/histories.json b/.obsidian/plugins/various-complements/histories.json index a2f99004..3c13c0b5 100644 --- a/.obsidian/plugins/various-complements/histories.json +++ b/.obsidian/plugins/various-complements/histories.json @@ -1 +1 @@ -{"covariance":{"covariance":{"internalLink":{"count":1,"lastUpdated":1700613439277}}},"utilisateur":{"utilisateur":{"internalLink":{"count":1,"lastUpdated":1700663263833}}},"administration des bases de données":{"administration des bases de données":{"internalLink":{"count":2,"lastUpdated":1701677521978}}},"base de données":{"base de données":{"internalLink":{"count":1,"lastUpdated":1701677477332}}},"SQL":{"SQL":{"internalLink":{"count":1,"lastUpdated":1701677551143}}},"privilèges":{"privilèges":{"internalLink":{"count":1,"lastUpdated":1701677765849}}},"stage de L3":{"stage de L3":{"internalLink":{"count":1,"lastUpdated":1701940029308}}},"ensemble des matrices":{"ensemble des matrices":{"internalLink":{"count":1,"lastUpdated":1701940340870}}},"commande pour empêcher le système de se mettre en veille":{"commande pour empêcher le système de se mettre en veille":{"internalLink":{"count":2,"lastUpdated":1702504473701}}},"réunion de rentrée Blois":{"réunion de rentrée Blois":{"internalLink":{"count":1,"lastUpdated":1702504897638}}},"équation quadratique":{"équation quadratique":{"internalLink":{"count":1,"lastUpdated":1702504938007}}},"Cycle en spirale":{"Cycle en spirale":{"internalLink":{"count":1,"lastUpdated":1703109300187}}},"modèle en cascade":{"modèle en cascade":{"internalLink":{"count":1,"lastUpdated":1703109373343}}},"cycle en V":{"cycle en V":{"internalLink":{"count":1,"lastUpdated":1703109794051}}},"méthodologie agile":{"méthodologie agile":{"internalLink":{"count":1,"lastUpdated":1703110323383}}},"pdfjs annotation-annotate":{"pdfjs annotation-annotate":{"internalLink":{"count":1,"lastUpdated":1703248535224}}}} \ No newline at end of file +{"taxe":{"taxe":{"internalLink":{"count":1,"lastUpdated":1706567256399}}},"architecture de Von Neumann 2022-09-14 10.56.32.excalidraw":{"architecture de Von Neumann 2022-09-14 10.56.32.excalidraw":{"internalLink":{"count":1,"lastUpdated":1706780160993}}},"floydParadigmsProgramming1979":{"floydParadigmsProgramming1979":{"internalLink":{"count":1,"lastUpdated":1706901699416}}},"paradigmes de programmation":{"paradigmes de programmation":{"internalLink":{"count":1,"lastUpdated":1706947852489}}},"plan euclidien":{"plan euclidien":{"internalLink":{"count":1,"lastUpdated":1707904509767}}},"hystérésis":{"hystérésis":{"internalLink":{"count":1,"lastUpdated":1707922969397}}},"hystérésis magnétique":{"hystérésis magnétique":{"internalLink":{"count":2,"lastUpdated":1707955061623}}},"mémoire":{"mémoire":{"internalLink":{"count":1,"lastUpdated":1707950894287}}},"philosophie":{"philosophie":{"internalLink":{"count":1,"lastUpdated":1708300716101}}},"ensemble":{"ensemble":{"internalLink":{"count":1,"lastUpdated":1708302262513}}},"satisfaisable":{"satisfaisable":{"internalLink":{"count":1,"lastUpdated":1708302466732}}},"mémoire à tore de ferrite":{"mémoire à tore de ferrite":{"internalLink":{"count":1,"lastUpdated":1708334338799}}},"paradigme de programmation":{"paradigme de programmation":{"internalLink":{"count":1,"lastUpdated":1708417661947}}},"processus":{"processus":{"internalLink":{"count":1,"lastUpdated":1708418852841}}},"langage formel":{"langage formel":{"internalLink":{"count":1,"lastUpdated":1708518252949}}},"machine de turing":{"machine de turing":{"internalLink":{"count":1,"lastUpdated":1708518269968}}},"réciproque":{"réciproque":{"internalLink":{"count":1,"lastUpdated":1708819687918}}},"matrice hessienne":{"matrice hessienne":{"internalLink":{"count":2,"lastUpdated":1710324879177}}},"fonction de plusieurs variables":{"fonction de plusieurs variables":{"internalLink":{"count":1,"lastUpdated":1709121880741}}},"manim Ellipse":{"manim Ellipse":{"internalLink":{"count":1,"lastUpdated":1709296590359}}},"baptême":{"baptême":{"internalLink":{"count":5,"lastUpdated":1709864270370}}},"gradient":{"gradient":{"internalLink":{"count":1,"lastUpdated":1710325461961}}}} \ No newline at end of file diff --git a/.obsidian/plugins/vertical-tabs-view/main.js b/.obsidian/plugins/vertical-tabs-view/main.js new file mode 100644 index 00000000..661ed3bc --- /dev/null +++ b/.obsidian/plugins/vertical-tabs-view/main.js @@ -0,0 +1,16 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var Pt=Object.defineProperty;var ar=Object.getOwnPropertyDescriptor;var or=Object.getOwnPropertyNames;var rr=Object.prototype.hasOwnProperty;var lr=(t,e,a)=>e in t?Pt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a;var sr=(t,e)=>{for(var a in e)Pt(t,a,{get:e[a],enumerable:!0})},nr=(t,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of or(e))!rr.call(t,r)&&r!==a&&Pt(t,r,{get:()=>e[r],enumerable:!(o=ar(e,r))||o.enumerable});return t};var ur=t=>nr(Pt({},"__esModule",{value:!0}),t);var $=(t,e,a)=>(lr(t,typeof e!="symbol"?e+"":e,a),a);var Cl={};sr(Cl,{default:()=>da});module.exports=ur(Cl);var tr=require("obsidian");var dr=require("obsidian");var Ya="obsidian-vertical-tabs-view";var Bt=t=>{console.log(`[${Ya}]: ${t}`)};var Y=require("obsidian");var Za={left:"left",right:"right"},pa={TARGET:{directory:"directory",title:"title"},CONDITION:{startsWith:"starts with",endsWith:"ends with",includes:"includes",equals:"equals",regexp:"regexp"}},ma={matchConfig:{target:"title",condition:"startsWith",value:""},priority:1,icon:"file"};var Et=require("obsidian"),Ja=(t,e,a,o,r)=>new Et.Setting(t).setName(e).setDesc(a).addText(l=>l.setValue(o).onChange(r)),ze=(t,e,a,o,r)=>new Et.Setting(t).setName(e).setDesc(a).addToggle(l=>l.setValue(o).onChange(r)),Qa=(t,e,a,o,r,l)=>new Et.Setting(t).setName(e).setDesc(a).addDropdown(s=>{s.addOptions(o).setValue(r).onChange(l)});var eo={defaultPosition:"left",showDirectory:!0,showCloseIcon:!0,showPinnedIcon:!0,showPinIconIfNotPinned:!0,showTabIcon:!0,defaultTabIcon:"file",tabIconRules:[]},Ot=class extends Y.PluginSettingTab{constructor(a,o){super(a,o);this.plugin=o,this.settings=structuredClone(o.settings)}save(){this.plugin.saveSettings(this.settings)}display(){let{containerEl:a}=this;if(a.empty(),Qa(a,"Default position","Default position of vertical tabs view opened",Za,this.settings.defaultPosition,o=>{this.settings.defaultPosition=o,this.save()}),ze(a,"Show directory","",this.settings.showDirectory,o=>{this.settings.showDirectory=o,this.save()}),ze(a,"Show close icon","",this.settings.showCloseIcon,o=>{this.settings.showCloseIcon=o,this.save()}),ze(a,"Show pinned icon","",this.settings.showPinnedIcon,o=>{this.settings.showPinnedIcon=o,this.save()}),ze(a,"Show pin icon if not pinned","",this.settings.showPinIconIfNotPinned,o=>{this.settings.showPinIconIfNotPinned=o,this.save()}),ze(a,"Show tab icon","",this.settings.showTabIcon,o=>{this.settings.showTabIcon=o,this.save(),this.display()}),this.settings.showTabIcon){let{previewIconWrapper:o,previewIcon:r,previewIconText:l}=this.createPreviewIcon(this.settings.defaultTabIcon);Ja(a,"Default tab icon","If you clear this field, icon will be hidden by default.",this.settings.defaultTabIcon,i=>{this.settings.defaultTabIcon=i,this.save(),(0,Y.setIcon)(r,i),r.children.length===0?l.innerText="Not found.":l.innerText="Preview: "}).setDesc("See https://lucide.dev/icons for available icons.").controlEl.prepend(o),new Y.Setting(a).setName("Icon rules for override icon");let n=a.createEl("div");n.className="vertical-tabs-view-settings-tab-icon-rules",this.settings.tabIconRules.length===0&&this.settings.tabIconRules.push(structuredClone(ma)),this.settings.tabIconRules.forEach((i,d)=>{this.addTabIconRule(n,i,d)}),new Y.Setting(n).addButton(i=>{i.setButtonText("Add").onClick(async()=>{this.settings.tabIconRules.push(structuredClone(ma)),this.display()})}).setClass("vertical-tabs-view-settings-tab-icon-rules-add-btn")}}createPreviewIcon(a){let o=document.createElement("div");o.className="vertical-tabs-view-settings-tab-preview-icon-wrapper";let r=document.createElement("div");r.className="vertical-tabs-view-settings-tab-preview-icon-text",r.innerText="Preview: ";let l=document.createElement("div");return(0,Y.setIcon)(l,a),l.children.length===0?r.innerText="Icon not found":r.innerText="Preview: ",o.setChildrenInPlace([r,l]),{previewIconWrapper:o,previewIcon:l,previewIconText:r}}addTabIconRule(a,o,r){let l=a.createEl("div");l.className="vertical-tabs-view-settings-tab-icon-rule-wrapper";let s=l.createEl("div");s.className="vertical-tabs-view-settings-tab-icon-rule-match-config-wrapper",new Y.Setting(s).addDropdown(f=>{f.addOptions(pa.TARGET).setValue(o.matchConfig.target).onChange(async x=>{o.matchConfig.target=x,this.save()})}).setName("Match target"),new Y.Setting(s).addDropdown(f=>{f.addOptions(pa.CONDITION).setValue(o.matchConfig.condition).onChange(async x=>{o.matchConfig.condition=x,this.save()})}).setName("Match condition"),new Y.Setting(s).addText(f=>{f.setValue(o.matchConfig.value).onChange(x=>{o.matchConfig.value=x,this.save()})}).setName("Match value").setDesc("For regexp, write like: /foo/i"),new Y.Setting(s).addSlider(f=>{f.setLimits(1,100,1).setValue(o.priority).onChange(x=>{o.priority=x,this.save()}).setDynamicTooltip()}).setName("Priority").setDesc("If there are multiple configs with the same priority, the one defined first will be prioritized.");let{previewIconWrapper:n,previewIcon:u,previewIconText:i}=this.createPreviewIcon(o.icon);new Y.Setting(s).addText(f=>{f.setValue(o.icon).onChange(x=>{o.icon=x,this.save(),(0,Y.setIcon)(u,x),u.children.length===0?i.innerText="Icon not found":i.innerText="Preview: "})}).setName("Icon").setDesc("See https://lucide.dev/icons for available icons.").controlEl.prepend(n);let c=l.createEl("div");c.className="vertical-tabs-view-settings-tab-icon-rule-remove-btn-wrapper";let h=c.createEl("button");h.setText("Remove"),h.onclick=()=>{this.settings.tabIconRules.splice(r,1),this.save(),this.display()}}};var Qo=require("obsidian");var ha=async(t,e)=>{t.workspace.setActiveLeaf(e,{focus:!0})},to=async(t,e)=>{let a=t.workspace.getLeafById(e);if(a)return await ha(t,a),a};function ce(){}function Z(t,e){for(let a in e)t[a]=e[a];return t}function ga(t){return t()}function Mt(){return Object.create(null)}function te(t){t.forEach(ga)}function dt(t){return typeof t=="function"}function pe(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}function ao(t){return Object.keys(t).length===0}function Xe(t,e,a,o){if(t){let r=oo(t,e,a,o);return t[0](r)}}function oo(t,e,a,o){return t[1]&&o?Z(a.ctx.slice(),t[1](o(e))):a.ctx}function je(t,e,a,o){if(t[2]&&o){let r=t[2](o(a));if(e.dirty===void 0)return r;if(typeof r=="object"){let l=[],s=Math.max(e.dirty.length,r.length);for(let n=0;n32){let e=[],a=t.ctx.length/32;for(let o=0;o{this._listeners.delete(e),this._observer.unobserve(e)}}_getObserver(){var e;return(e=this._observer)!=null?e:this._observer=new ResizeObserver(a=>{var o;for(let r of a)Ze.entries.set(r.target,r),(o=this._listeners.get(r.target))==null||o(r)})}};Ze.entries="WeakMap"in La?new WeakMap:void 0;var Rt=!1;function ro(){Rt=!0}function lo(){Rt=!1}function pr(t,e,a,o){for(;t>1);a(r)<=o?t=r+1:e=r}return t}function mr(t){if(t.hydrate_init)return;t.hydrate_init=!0;let e=t.childNodes;if(t.nodeName==="HEAD"){let u=[];for(let i=0;i0&&e[a[r]].claim_order<=i?r+1:pr(1,r,h=>e[a[h]].claim_order,i))-1;o[u]=a[d]+1;let c=d+1;a[c]=u,r=Math.max(c,r)}let l=[],s=[],n=e.length-1;for(let u=a[r]+1;u!=0;u=o[u-1]){for(l.push(e[u-1]);n>=u;n--)s.push(e[n]);n--}for(;n>=0;n--)s.push(e[n]);l.reverse(),s.sort((u,i)=>u.claim_order-i.claim_order);for(let u=0,i=0;u=l[i].claim_order;)i++;let d=it.removeEventListener(e,a,o)}function U(t,e,a){a==null?t.removeAttribute(e):t.getAttribute(e)!==a&&t.setAttribute(e,a)}function mt(t,e){for(let a in e)U(t,a,e[a])}function ht(t){return Array.from(t.childNodes)}function gr(t){t.claim_info===void 0&&(t.claim_info={last_index:0,total_claimed:0})}function xr(t,e,a,o,r=!1){gr(t);let l=(()=>{for(let s=t.claim_info.last_index;s=0;s--){let n=t[s];if(e(n)){let u=a(n);return u===void 0?t.splice(s,1):t[s]=u,r?u===void 0&&t.claim_info.last_index--:t.claim_info.last_index=s,n}}return o()})();return l.claim_order=t.claim_info.total_claimed,t.claim_info.total_claimed+=1,l}function Lr(t,e,a,o){return xr(t,r=>r.nodeName===e,r=>{let l=[];for(let s=0;sr.removeAttribute(s))},()=>o(e))}function Ia(t,e,a){return Lr(t,e,a,Nt)}function Ca(t,e){e=""+e,t.data!==e&&(t.data=e)}function ba(t,e,a){t.classList.toggle(e,!!a)}function uo(t){let e={};return t.childNodes.forEach(a=>{e[a.slot||"default"]=!0}),e}var Fe;function we(t){Fe=t}function fo(){if(!Fe)throw new Error("Function called outside component initialization");return Fe}function Sa(t){fo().$$.on_mount.push(t)}var He=[];var qt=[],et=[],co=[],vr=Promise.resolve(),va=!1;function po(){va||(va=!0,vr.then(Vt))}function gt(t){et.push(t)}var wa=new Set,Qe=0;function Vt(){if(Qe!==0)return;let t=Fe;do{try{for(;Qet.indexOf(o)===-1?e.push(o):a.push(o)),a.forEach(o=>o()),et=e}var $t=new Set,Ne;function xt(){Ne={r:0,c:[],p:Ne}}function Lt(){Ne.r||te(Ne.c),Ne=Ne.p}function A(t,e){t&&t.i&&($t.delete(t),t.i(e))}function H(t,e,a,o){if(t&&t.o){if($t.has(t))return;$t.add(t),Ne.c.push(()=>{$t.delete(t),o&&(a&&t.d(1),o())}),t.o(e)}else o&&o()}function Ae(t){return(t==null?void 0:t.length)!==void 0?t:Array.from(t)}function qe(t,e){let a={},o={},r={$$scope:1},l=t.length;for(;l--;){let s=t[l],n=e[l];if(n){for(let u in s)u in n||(o[u]=1);for(let u in n)r[u]||(a[u]=n[u],r[u]=1);t[l]=n}else for(let u in s)r[u]=1}for(let s in o)s in a||(a[s]=void 0);return a}function Gt(t){return typeof t=="object"&&t!==null?t:{}}var yr=["allowfullscreen","allowpaymentrequest","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"],kr=new Set([...yr]);function Pe(t){t&&t.c()}function Wt(t,e){t&&t.l(e)}function ve(t,e,a){let{fragment:o,after_update:r}=t.$$;o&&o.m(e,a),gt(()=>{let l=t.$$.on_mount.map(ga).filter(dt);t.$$.on_destroy?t.$$.on_destroy.push(...l):te(l),t.$$.on_mount=[]}),r.forEach(gt)}function _e(t,e){let a=t.$$;a.fragment!==null&&(mo(a.after_update),te(a.on_destroy),a.fragment&&a.fragment.d(e),a.on_destroy=a.fragment=null,a.ctx=[])}function Tr(t,e){t.$$.dirty[0]===-1&&(He.push(t),po(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{let x=f.length?f[0]:h;return i.ctx&&r(i.ctx[c],i.ctx[c]=x)&&(!i.skip_bound&&i.bound[c]&&i.bound[c](x),d&&Tr(t,c)),h}):[],i.update(),d=!0,te(i.before_update),i.fragment=o?o(i.ctx):!1,e.target){if(e.hydrate){ro();let c=ht(e.target);i.fragment&&i.fragment.l(c),c.forEach(R)}else i.fragment&&i.fragment.c();e.intro&&A(t.$$.fragment),ve(t,e.target,e.anchor),lo(),Vt()}we(u)}var Fr;typeof HTMLElement=="function"&&(Fr=class extends HTMLElement{constructor(e,a,o){super();$(this,"$$ctor");$(this,"$$s");$(this,"$$c");$(this,"$$cn",!1);$(this,"$$d",{});$(this,"$$r",!1);$(this,"$$p_d",{});$(this,"$$l",{});$(this,"$$l_u",new Map);this.$$ctor=e,this.$$s=a,o&&this.attachShadow({mode:"open"})}addEventListener(e,a,o){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(a),this.$$c){let r=this.$$c.$on(e,a);this.$$l_u.set(a,r)}super.addEventListener(e,a,o)}removeEventListener(e,a,o){if(super.removeEventListener(e,a,o),this.$$c){let r=this.$$l_u.get(a);r&&(r(),this.$$l_u.delete(a))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let e=function(l){return()=>{let s;return{c:function(){s=z("slot"),l!=="default"&&U(s,"name",l)},m:function(i,d){ue(i,s,d)},d:function(i){i&&R(s)}}}};if(await Promise.resolve(),!this.$$cn)return;let a={},o=uo(this);for(let l of this.$$s)l in o&&(a[l]=[e(l)]);for(let l of this.attributes){let s=this.$$g_p(l.name);s in this.$$d||(this.$$d[s]=_a(s,l.value,this.$$p_d,"toProp"))}this.$$c=new this.$$ctor({target:this.shadowRoot||this,props:{...this.$$d,$$slots:a,$$scope:{ctx:[]}}});let r=()=>{this.$$r=!0;for(let l in this.$$p_d)if(this.$$d[l]=this.$$c.$$.ctx[this.$$c.$$.props[l]],this.$$p_d[l].reflect){let s=_a(l,this.$$d[l],this.$$p_d,"toAttribute");s==null?this.removeAttribute(this.$$p_d[l].attribute||l):this.setAttribute(this.$$p_d[l].attribute||l,s)}this.$$r=!1};this.$$c.$$.after_update.push(r),r();for(let l in this.$$l)for(let s of this.$$l[l]){let n=this.$$c.$on(l,s);this.$$l_u.set(s,n)}this.$$l={}}}attributeChangedCallback(e,a,o){var r;this.$$r||(e=this.$$g_p(e),this.$$d[e]=_a(e,o,this.$$p_d,"toProp"),(r=this.$$c)==null||r.$set({[e]:this.$$d[e]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{this.$$cn||(this.$$c.$destroy(),this.$$c=void 0)})}$$g_p(e){return Object.keys(this.$$p_d).find(a=>this.$$p_d[a].attribute===e||!this.$$p_d[a].attribute&&a.toLowerCase()===e)||e}});function _a(t,e,a,o){var l;let r=(l=a[t])==null?void 0:l.type;if(e=r==="Boolean"&&typeof e!="boolean"?e!=null:e,!o||!a[t])return e;if(o==="toAttribute")switch(r){case"Object":case"Array":return e==null?null:JSON.stringify(e);case"Boolean":return e?"":null;case"Number":return e==null?null:e;default:return e}else switch(r){case"Object":case"Array":return e&&JSON.parse(e);case"Boolean":return e;case"Number":return e!=null?+e:e;default:return e}}var me=class{constructor(){$(this,"$$");$(this,"$$set")}$destroy(){_e(this,1),this.$destroy=ce}$on(e,a){if(!dt(a))return ce;let o=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return o.push(a),()=>{let r=o.indexOf(a);r!==-1&&o.splice(r,1)}}$set(e){this.$$set&&!ao(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}};var ho="4";typeof window!="undefined"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(ho);function It(t,e,a,o){function r(l){return l instanceof a?l:new a(function(s){s(l)})}return new(a||(a=Promise))(function(l,s){function n(d){try{i(o.next(d))}catch(c){s(c)}}function u(d){try{i(o.throw(d))}catch(c){s(c)}}function i(d){d.done?l(d.value):r(d.value).then(n,u)}i((o=o.apply(t,e||[])).next())})}var ge=require("obsidian");function go(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),a.push.apply(a,o)}return a}function be(t){for(var e=1;e=0)&&(a[r]=t[r]);return a}function Br(t,e){if(t==null)return{};var a=Pr(t,e),o,r;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(t,o)&&(a[o]=t[o])}return a}var Er="1.15.0";function ye(t){if(typeof window!="undefined"&&window.navigator)return!!navigator.userAgent.match(t)}var De=ye(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Dt=ye(/Edge/i),xo=ye(/firefox/i),wt=ye(/safari/i)&&!ye(/chrome/i)&&!ye(/android/i),_o=ye(/iP(ad|od|hone)/i),yo=ye(/chrome/i)&&ye(/android/i),ko={capture:!1,passive:!1};function k(t,e,a){t.addEventListener(e,a,!De&&ko)}function _(t,e,a){t.removeEventListener(e,a,!De&&ko)}function ta(t,e){if(e){if(e[0]===">"&&(e=e.substring(1)),t)try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(a){return!1}return!1}}function Or(t){return t.host&&t!==document&&t.host.nodeType?t.host:t.parentNode}function Ie(t,e,a,o){if(t){a=a||document;do{if(e!=null&&(e[0]===">"?t.parentNode===a&&ta(t,e):ta(t,e))||o&&t===a)return t;if(t===a)break}while(t=Or(t))}return null}var Lo=/\s+/g;function ae(t,e,a){if(t&&e)if(t.classList)t.classList[a?"add":"remove"](e);else{var o=(" "+t.className+" ").replace(Lo," ").replace(" "+e+" "," ");t.className=(o+(a?" "+e:"")).replace(Lo," ")}}function b(t,e,a){var o=t&&t.style;if(o){if(a===void 0)return document.defaultView&&document.defaultView.getComputedStyle?a=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(a=t.currentStyle),e===void 0?a:a[e];!(e in o)&&e.indexOf("webkit")===-1&&(e="-webkit-"+e),o[e]=a+(typeof a=="string"?"":"px")}}function lt(t,e){var a="";if(typeof t=="string")a=t;else do{var o=b(t,"transform");o&&o!=="none"&&(a=o+" "+a)}while(!e&&(t=t.parentNode));var r=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return r&&new r(a)}function Do(t,e,a){if(t){var o=t.getElementsByTagName(e),r=0,l=o.length;if(a)for(;r=l:s=r<=l,!s)return o;if(o===Ce())break;o=Me(o,!1)}return!1}function st(t,e,a,o){for(var r=0,l=0,s=t.children;l2&&arguments[2]!==void 0?arguments[2]:{},r=o.evt,l=Br(o,$r);Tt.pluginEvent.bind(S)(e,a,be({dragEl:m,parentEl:O,ghostEl:w,rootEl:P,nextEl:Ge,lastDownEl:Zt,cloneEl:E,cloneHidden:Oe,dragStarted:Ct,putSortable:W,activeSortable:S.active,originalEvent:r,oldIndex:rt,oldDraggableIndex:_t,newIndex:oe,newDraggableIndex:Ee,hideGhostForTarget:Oo,unhideGhostForTarget:Mo,cloneNowHidden:function(){Oe=!0},cloneNowShown:function(){Oe=!1},dispatchSortableEvent:function(n){j({sortable:a,name:n,originalEvent:r})}},l))};function j(t){Vr(be({putSortable:W,cloneEl:E,targetEl:m,rootEl:P,oldIndex:rt,oldDraggableIndex:_t,newIndex:oe,newDraggableIndex:Ee},t))}var m,O,w,P,Ge,Zt,E,Oe,rt,oe,_t,Ee,zt,W,ot=!1,aa=!1,oa=[],Ve,he,Da,Ta,bo,So,Ct,at,yt,kt=!1,Xt=!1,Jt,X,Fa=[],Oa=!1,ra=[],sa=typeof document!="undefined",jt=_o,wo=Dt||De?"cssFloat":"float",Gr=sa&&!yo&&!_o&&"draggable"in document.createElement("div"),Po=function(){if(sa){if(De)return!1;var t=document.createElement("x");return t.style.cssText="pointer-events:auto",t.style.pointerEvents==="auto"}}(),Bo=function(e,a){var o=b(e),r=parseInt(o.width)-parseInt(o.paddingLeft)-parseInt(o.paddingRight)-parseInt(o.borderLeftWidth)-parseInt(o.borderRightWidth),l=st(e,0,a),s=st(e,1,a),n=l&&b(l),u=s&&b(s),i=n&&parseInt(n.marginLeft)+parseInt(n.marginRight)+q(l).width,d=u&&parseInt(u.marginLeft)+parseInt(u.marginRight)+q(s).width;if(o.display==="flex")return o.flexDirection==="column"||o.flexDirection==="column-reverse"?"vertical":"horizontal";if(o.display==="grid")return o.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(l&&n.float&&n.float!=="none"){var c=n.float==="left"?"left":"right";return s&&(u.clear==="both"||u.clear===c)?"vertical":"horizontal"}return l&&(n.display==="block"||n.display==="flex"||n.display==="table"||n.display==="grid"||i>=r&&o[wo]==="none"||s&&o[wo]==="none"&&i+d>r)?"vertical":"horizontal"},Wr=function(e,a,o){var r=o?e.left:e.top,l=o?e.right:e.bottom,s=o?e.width:e.height,n=o?a.left:a.top,u=o?a.right:a.bottom,i=o?a.width:a.height;return r===n||l===u||r+s/2===n+i/2},zr=function(e,a){var o;return oa.some(function(r){var l=r[re].options.emptyInsertThreshold;if(!(!l||Ha(r))){var s=q(r),n=e>=s.left-l&&e<=s.right+l,u=a>=s.top-l&&a<=s.bottom+l;if(n&&u)return o=r}}),o},Eo=function(e){function a(l,s){return function(n,u,i,d){var c=n.options.group.name&&u.options.group.name&&n.options.group.name===u.options.group.name;if(l==null&&(s||c))return!0;if(l==null||l===!1)return!1;if(s&&l==="clone")return l;if(typeof l=="function")return a(l(n,u,i,d),s)(n,u,i,d);var h=(s?n:u).options.group.name;return l===!0||typeof l=="string"&&l===h||l.join&&l.indexOf(h)>-1}}var o={},r=e.group;(!r||Yt(r)!="object")&&(r={name:r}),o.name=r.name,o.checkPull=a(r.pull,!0),o.checkPut=a(r.put),o.revertClone=r.revertClone,e.group=o},Oo=function(){!Po&&w&&b(w,"display","none")},Mo=function(){!Po&&w&&b(w,"display","")};sa&&!yo&&document.addEventListener("click",function(t){if(aa)return t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.stopImmediatePropagation&&t.stopImmediatePropagation(),aa=!1,!1},!0);var $e=function(e){if(m){e=e.touches?e.touches[0]:e;var a=zr(e.clientX,e.clientY);if(a){var o={};for(var r in e)e.hasOwnProperty(r)&&(o[r]=e[r]);o.target=o.rootEl=a,o.preventDefault=void 0,o.stopPropagation=void 0,a[re]._onDragOver(o)}}},Xr=function(e){m&&m.parentNode[re]._isOutsideThisEl(e.target)};function S(t,e){if(!(t&&t.nodeType&&t.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=ke({},e),t[re]=this;var a={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Bo(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(s,n){s.setData("Text",n.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:S.supportPointer!==!1&&"PointerEvent"in window&&!wt,emptyInsertThreshold:5};Tt.initializePlugins(this,t,a);for(var o in a)!(o in e)&&(e[o]=a[o]);Eo(e);for(var r in this)r.charAt(0)==="_"&&typeof this[r]=="function"&&(this[r]=this[r].bind(this));this.nativeDraggable=e.forceFallback?!1:Gr,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?k(t,"pointerdown",this._onTapStart):(k(t,"mousedown",this._onTapStart),k(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(k(t,"dragover",this),k(t,"dragenter",this)),oa.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),ke(this,Hr())}S.prototype={constructor:S,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(at=null)},_getDirection:function(e,a){return typeof this.options.direction=="function"?this.options.direction.call(this,e,a,m):this.options.direction},_onTapStart:function(e){if(e.cancelable){var a=this,o=this.el,r=this.options,l=r.preventOnFilter,s=e.type,n=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,u=(n||e).target,i=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||u,d=r.filter;if(tl(o),!m&&!(/mousedown|pointerdown/.test(s)&&e.button!==0||r.disabled)&&!i.isContentEditable&&!(!this.nativeDraggable&&wt&&u&&u.tagName.toUpperCase()==="SELECT")&&(u=Ie(u,r.draggable,o,!1),!(u&&u.animated)&&Zt!==u)){if(rt=ie(u),_t=ie(u,r.draggable),typeof d=="function"){if(d.call(this,e,u,this)){j({sortable:a,rootEl:i,name:"filter",targetEl:u,toEl:o,fromEl:o}),Q("filter",a,{evt:e}),l&&e.cancelable&&e.preventDefault();return}}else if(d&&(d=d.split(",").some(function(c){if(c=Ie(i,c.trim(),o,!1),c)return j({sortable:a,rootEl:c,name:"filter",targetEl:u,fromEl:o,toEl:o}),Q("filter",a,{evt:e}),!0}),d)){l&&e.cancelable&&e.preventDefault();return}r.handle&&!Ie(i,r.handle,o,!1)||this._prepareDragStart(e,n,u)}}},_prepareDragStart:function(e,a,o){var r=this,l=r.el,s=r.options,n=l.ownerDocument,u;if(o&&!m&&o.parentNode===l){var i=q(o);if(P=l,m=o,O=m.parentNode,Ge=m.nextSibling,Zt=o,zt=s.group,S.dragged=m,Ve={target:m,clientX:(a||e).clientX,clientY:(a||e).clientY},bo=Ve.clientX-i.left,So=Ve.clientY-i.top,this._lastX=(a||e).clientX,this._lastY=(a||e).clientY,m.style["will-change"]="all",u=function(){if(Q("delayEnded",r,{evt:e}),S.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!xo&&r.nativeDraggable&&(m.draggable=!0),r._triggerDragStart(e,a),j({sortable:r,name:"choose",originalEvent:e}),ae(m,s.chosenClass,!0)},s.ignore.split(",").forEach(function(d){Do(m,d.trim(),Aa)}),k(n,"dragover",$e),k(n,"mousemove",$e),k(n,"touchmove",$e),k(n,"mouseup",r._onDrop),k(n,"touchend",r._onDrop),k(n,"touchcancel",r._onDrop),xo&&this.nativeDraggable&&(this.options.touchStartThreshold=4,m.draggable=!0),Q("delayStart",this,{evt:e}),s.delay&&(!s.delayOnTouchOnly||a)&&(!this.nativeDraggable||!(Dt||De))){if(S.eventCanceled){this._onDrop();return}k(n,"mouseup",r._disableDelayedDrag),k(n,"touchend",r._disableDelayedDrag),k(n,"touchcancel",r._disableDelayedDrag),k(n,"mousemove",r._delayedDragTouchMoveHandler),k(n,"touchmove",r._delayedDragTouchMoveHandler),s.supportPointer&&k(n,"pointermove",r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(u,s.delay)}else u()}},_delayedDragTouchMoveHandler:function(e){var a=e.touches?e.touches[0]:e;Math.max(Math.abs(a.clientX-this._lastX),Math.abs(a.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){m&&Aa(m),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;_(e,"mouseup",this._disableDelayedDrag),_(e,"touchend",this._disableDelayedDrag),_(e,"touchcancel",this._disableDelayedDrag),_(e,"mousemove",this._delayedDragTouchMoveHandler),_(e,"touchmove",this._delayedDragTouchMoveHandler),_(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,a){a=a||e.pointerType=="touch"&&e,!this.nativeDraggable||a?this.options.supportPointer?k(document,"pointermove",this._onTouchMove):a?k(document,"touchmove",this._onTouchMove):k(document,"mousemove",this._onTouchMove):(k(m,"dragend",this),k(P,"dragstart",this._onDragStart));try{document.selection?Qt(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(o){}},_dragStarted:function(e,a){if(ot=!1,P&&m){Q("dragStarted",this,{evt:a}),this.nativeDraggable&&k(document,"dragover",Xr);var o=this.options;!e&&ae(m,o.dragClass,!1),ae(m,o.ghostClass,!0),S.active=this,e&&this._appendGhost(),j({sortable:this,name:"start",originalEvent:a})}else this._nulling()},_emulateDragOver:function(){if(he){this._lastX=he.clientX,this._lastY=he.clientY,Oo();for(var e=document.elementFromPoint(he.clientX,he.clientY),a=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(he.clientX,he.clientY),e!==a);)a=e;if(m.parentNode[re]._isOutsideThisEl(e),a)do{if(a[re]){var o=void 0;if(o=a[re]._onDragOver({clientX:he.clientX,clientY:he.clientY,target:e,rootEl:a}),o&&!this.options.dragoverBubble)break}e=a}while(a=a.parentNode);Mo()}},_onTouchMove:function(e){if(Ve){var a=this.options,o=a.fallbackTolerance,r=a.fallbackOffset,l=e.touches?e.touches[0]:e,s=w&<(w,!0),n=w&&s&&s.a,u=w&&s&&s.d,i=jt&&X&&Co(X),d=(l.clientX-Ve.clientX+r.x)/(n||1)+(i?i[0]-Fa[0]:0)/(n||1),c=(l.clientY-Ve.clientY+r.y)/(u||1)+(i?i[1]-Fa[1]:0)/(u||1);if(!S.active&&!ot){if(o&&Math.max(Math.abs(l.clientX-this._lastX),Math.abs(l.clientY-this._lastY))=0&&(j({rootEl:O,name:"add",toEl:O,fromEl:P,originalEvent:e}),j({sortable:this,name:"remove",toEl:O,originalEvent:e}),j({rootEl:O,name:"sort",toEl:O,fromEl:P,originalEvent:e}),j({sortable:this,name:"sort",toEl:O,originalEvent:e})),W&&W.save()):oe!==rt&&oe>=0&&(j({sortable:this,name:"update",toEl:O,originalEvent:e}),j({sortable:this,name:"sort",toEl:O,originalEvent:e})),S.active&&((oe==null||oe===-1)&&(oe=rt,Ee=_t),j({sortable:this,name:"end",toEl:O,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){Q("nulling",this),P=m=O=w=Ge=E=Zt=Oe=Ve=he=Ct=oe=Ee=rt=_t=at=yt=W=zt=S.dragged=S.ghost=S.clone=S.active=null,ra.forEach(function(e){e.checked=!0}),ra.length=Da=Ta=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":m&&(this._onDragOver(e),jr(e));break;case"selectstart":e.preventDefault();break}},toArray:function(){for(var e=[],a,o=this.el.children,r=0,l=o.length,s=this.options;ro.right+r||t.clientX<=o.right&&t.clientY>o.bottom&&t.clientX>=o.left:t.clientX>o.right&&t.clientY>o.top||t.clientX<=o.right&&t.clientY>o.bottom+r}function Jr(t,e,a,o,r,l,s,n){var u=o?t.clientY:t.clientX,i=o?a.height:a.width,d=o?a.top:a.left,c=o?a.bottom:a.right,h=!1;if(!s){if(n&&Jtd+i*l/2:uc-Jt)return-yt}else if(u>d+i*(1-r)/2&&uc-i*l/2)?u>d+i/2?1:-1:0}function Qr(t){return ie(m){a(7,e=Z(Z({},e),Se(f))),a(6,r=xa(e,o)),"name"in f&&a(0,n=f.name),"color"in f&&a(1,u=f.color),"size"in f&&a(2,i=f.size),"strokeWidth"in f&&a(3,d=f.strokeWidth),"absoluteStrokeWidth"in f&&a(4,c=f.absoluteStrokeWidth),"iconNode"in f&&a(5,h=f.iconNode),"$$scope"in f&&a(8,s=f.$$scope)},e=Se(e),[n,u,i,d,c,h,r,e,s,l]}var Ga=class extends me{constructor(e){super(),Be(this,e,rl,ol,pe,{name:0,color:1,size:2,strokeWidth:3,absoluteStrokeWidth:4,iconNode:5})}},na=Ga;function ll(t){let e,a=t[2].default,o=Xe(a,t,t[3],null);return{c(){o&&o.c()},l(r){o&&o.l(r)},m(r,l){o&&o.m(r,l),e=!0},p(r,l){o&&o.p&&(!e||l&8)&&Ke(o,a,r,r[3],e?je(a,r[3],l,null):Ye(r[3]),null)},i(r){e||(A(o,r),e=!0)},o(r){H(o,r),e=!1},d(r){o&&o.d(r)}}}function sl(t){let e,a,o=[{name:"pin"},t[1],{iconNode:t[0]}],r={$$slots:{default:[ll]},$$scope:{ctx:t}};for(let l=0;l{a(1,e=Z(Z({},e),Se(s))),"$$scope"in s&&a(3,r=s.$$scope)},e=Se(e),[l,e,o,r]}var Wa=class extends me{constructor(e){super(),Be(this,e,nl,sl,pe,{})}},nt=Wa;function ul(t){let e,a=t[2].default,o=Xe(a,t,t[3],null);return{c(){o&&o.c()},l(r){o&&o.l(r)},m(r,l){o&&o.m(r,l),e=!0},p(r,l){o&&o.p&&(!e||l&8)&&Ke(o,a,r,r[3],e?je(a,r[3],l,null):Ye(r[3]),null)},i(r){e||(A(o,r),e=!0)},o(r){H(o,r),e=!1},d(r){o&&o.d(r)}}}function il(t){let e,a,o=[{name:"x"},t[1],{iconNode:t[0]}],r={$$slots:{default:[ul]},$$scope:{ctx:t}};for(let l=0;l{a(1,e=Z(Z({},e),Se(s))),"$$scope"in s&&a(3,r=s.$$scope)},e=Se(e),[l,e,o,r]}var za=class extends me{constructor(e){super(),Be(this,e,dl,il,pe,{})}},Ft=za;var ut=[];function ua(t,e=ce){let a,o=new Set;function r(n){if(pe(t,n)&&(t=n,a)){let u=!ut.length;for(let i of o)i[1](),ut.push(i,t);if(u){for(let i=0;i{o.delete(i),o.size===0&&a&&(a(),a=null)}}return{set:r,update:l,subscribe:s}}var fl=ua(),cl=ua([]),pl=ua(),ee={plugin:fl,leaves:cl,activeLeafId:pl};var qo=(t,e,a,o)=>{let r=s=>{if(o[s])return o[s];let[n,u,i]=s.split("/"),d=new RegExp(u,i);return o[s]=d,d},l=(s,n)=>{if(s.matchConfig.condition==="startsWith"&&n.startsWith(s.matchConfig.value)||s.matchConfig.condition==="endsWith"&&n.endsWith(s.matchConfig.value)||s.matchConfig.condition==="includes"&&n.includes(s.matchConfig.value)||s.matchConfig.condition==="equals"&&n===s.matchConfig.value||s.matchConfig.condition==="regexp"&&r(s.matchConfig.value).test(n))return!0};return t.find(s=>{if(s.matchConfig.target==="directory")return l(s,e);if(s.matchConfig.target==="title")return l(s,a)})};var Vo=(t,e)=>t.vault.getAbstractFileByPath(e),Xa=async(t,e,a)=>{let o=Vo(t,e);if(o)return await t.vault.trash(o,a)},$o=async(t,e)=>{let a=Vo(t,e);if(a)return await t.vault.delete(a)};function ml(t){so(t,"svelte-fthq2i",":root{--ctx-menu-font-size:0.9rem;--ctx-menu-margin:0.25rem 0;--ctx-menu-padding:0;--ctx-menu-item-padding:0 0.5rem;--ctx-menu-divider-margin:0.2rem 0}")}function Go(t,e,a){let o=t.slice();return o[35]=e[a],o}function Wo(t){let e,a,o,r,l;a=new Ft({props:{size:18,strokeWidth:2}});function s(...n){return t[15](t[35],...n)}return{c(){e=z("div"),Pe(a.$$.fragment),U(e,"class","vertical-tabs-view-list-item-close-btn vertical-tabs-view-list-item-icon")},m(n,u){ue(n,e,u),ve(a,e,null),o=!0,r||(l=Ue(e,"click",s),r=!0)},p(n,u){t=n},i(n){o||(A(a.$$.fragment,n),o=!0)},o(n){H(a.$$.fragment,n),o=!1},d(n){n&&R(e),_e(a),r=!1,l()}}}function zo(t){let e;return{c(){e=z("div"),U(e,"class","vertical-tabs-view-list-item-tab-icon vertical-tabs-view-list-item-icon")},m(a,o){ue(a,e,o)},d(a){a&&R(e)}}}function Xo(t){let e,a=t[4](t[35])+"",o;return{c(){e=z("span"),o=ct(a),U(e,"class","vertical-tabs-view-list-item-dirname")},m(r,l){ue(r,e,l),J(e,o)},p(r,l){l[0]&1&&a!==(a=r[4](r[35])+"")&&Ca(o,a)},d(r){r&&R(e)}}}function hl(t){let e,a,o,r,l;a=new nt({props:{size:20}});function s(...n){return t[17](t[35],...n)}return{c(){e=z("div"),Pe(a.$$.fragment),U(e,"class","vertical-tabs-view-list-item-icon vertical-tabs-view-list-item-icon-pinned vertical-tabs-view-list-item-pin-btn vertical-tabs-view-list-item-pin-btn-pin")},m(n,u){ue(n,e,u),ve(a,e,null),o=!0,r||(l=Ue(e,"click",s),r=!0)},p(n,u){t=n},i(n){o||(A(a.$$.fragment,n),o=!0)},o(n){H(a.$$.fragment,n),o=!1},d(n){n&&R(e),_e(a),r=!1,l()}}}function gl(t){let e,a,o,r,l;a=new nt({props:{size:20}});function s(...n){return t[16](t[35],...n)}return{c(){e=z("div"),Pe(a.$$.fragment),U(e,"class","vertical-tabs-view-list-item-icon vertical-tabs-view-list-item-pin-btn vertical-tabs-view-list-item-pin-btn-pin")},m(n,u){ue(n,e,u),ve(a,e,null),o=!0,r||(l=Ue(e,"click",s),r=!0)},p(n,u){t=n},i(n){o||(A(a.$$.fragment,n),o=!0)},o(n){H(a.$$.fragment,n),o=!1},d(n){n&&R(e),_e(a),r=!1,l()}}}function jo(t){let e,a,o,r,l,s,n,u=t[5](t[35])+"",i,d,c,h,f,x,C,y,V,v=t[2].settings.showCloseIcon&&Wo(t),T=t[2].settings.showTabIcon&&zo(t),D=t[2].settings.showDirectory&&Xo(t),le=[gl,hl],M=[];function K(F,B){return F[2].settings.showPinIconIfNotPinned&&!F[35].pinned?0:F[2].settings.showPinnedIcon&&F[35].pinned?1:-1}~(h=K(t,[-1,-1]))&&(f=M[h]=le[h](t));function de(...F){return t[18](t[35],...F)}function G(...F){return t[19](t[35],...F)}return{c(){e=z("li"),a=z("div"),v&&v.c(),o=Je(),T&&T.c(),r=Je(),l=z("div"),D&&D.c(),s=Je(),n=z("span"),i=ct(u),d=Je(),c=z("div"),f&&f.c(),U(n,"class","vertical-tabs-view-list-item-title"),U(l,"class","vertical-tabs-view-list-item-name-container"),U(a,"class","vertical-tabs-view-list-item-left-container"),U(c,"class","vertical-tabs-view-list-item-right-container"),U(e,"data-leaf-id",x=t[35].id),U(e,"class","vertical-tabs-view-list-item"),ba(e,"focused",t[35].id===t[1])},m(F,B){ue(F,e,B),J(e,a),v&&v.m(a,null),J(a,o),T&&T.m(a,null),J(a,r),J(a,l),D&&D.m(l,null),J(l,s),J(l,n),J(n,i),J(e,d),J(e,c),~h&&M[h].m(c,null),C=!0,y||(V=[Ue(e,"mousedown",de),Ue(e,"contextmenu",G)],y=!0)},p(F,B){t=F,t[2].settings.showCloseIcon?v?(v.p(t,B),B[0]&4&&A(v,1)):(v=Wo(t),v.c(),A(v,1),v.m(a,o)):v&&(xt(),H(v,1,1,()=>{v=null}),Lt()),t[2].settings.showTabIcon?T||(T=zo(t),T.c(),T.m(a,r)):T&&(T.d(1),T=null),t[2].settings.showDirectory?D?D.p(t,B):(D=Xo(t),D.c(),D.m(l,s)):D&&(D.d(1),D=null),(!C||B[0]&1)&&u!==(u=t[5](t[35])+"")&&Ca(i,u);let se=h;h=K(t,B),h===se?~h&&M[h].p(t,B):(f&&(xt(),H(M[se],1,1,()=>{M[se]=null}),Lt()),~h?(f=M[h],f?f.p(t,B):(f=M[h]=le[h](t),f.c()),A(f,1),f.m(c,null)):f=null),(!C||B[0]&1&&x!==(x=t[35].id))&&U(e,"data-leaf-id",x),(!C||B[0]&3)&&ba(e,"focused",t[35].id===t[1])},i(F){C||(A(v),A(f),C=!0)},o(F){H(v),H(f),C=!1},d(F){F&&R(e),v&&v.d(),T&&T.d(),D&&D.d(),~h&&M[h].d(),y=!1,te(V)}}}function Ko(t){let e;return{c(){e=z("div"),U(e,"class","vertical-tabs-view-list-mobile-margin-block")},m(a,o){ue(a,e,o)},d(a){a&&R(e)}}}function xl(t){let e,a,o,r=Ae(t[0]),l=[];for(let u=0;uH(l[u],1,1,()=>{l[u]=null}),n=t[0].length>0&&ge.Platform.isMobile&&Ko(t);return{c(){e=z("ul");for(let u=0;u0&&ge.Platform.isMobile?n||(n=Ko(u),n.c(),n.m(e,null)):n&&(n.d(1),n=null)},i(u){if(!o){for(let i=0;i{a(2,l=p)}),ee.leaves.subscribe(p=>{a(0,s=p)}),ee.activeLeafId.subscribe(p=>{a(1,n=p)});let{view:u}=e,{state:i={tabIdToIndex:{},sortedTabIds:[]}}=e,d,{viewContentId:c}=e,{updateView:h}=e,f=[],x=()=>l.settings.tabIconRules.sort((p,g)=>g.priority-p.priority),C={},y=p=>{let g=p.view.file;return g?g.parent.path:""},V=p=>{let g=p.view.file,I=p.view.titleContainerEl.querySelectorAll(`.${p.view.titleEl.className}`),L=Array.from(I).find(ne=>{if(!ne.hasAttribute("hidden"))return ne});return(L==null?void 0:L.getText())||g.name},v=(p,g)=>It(void 0,void 0,void 0,function*(){var I,L;p.stopPropagation(),p.button!==2&&(p.target instanceof SVGElement||(yield ha(l.app,g),a(1,n=g.id),l.app.isMobile&&(!((I=l.app.workspace.leftSplit)===null||I===void 0)&&I.collapsed||l.app.workspace.leftSplit.collapse(),!((L=l.app.workspace.rightSplit)===null||L===void 0)&&L.collapsed||l.app.workspace.rightSplit.collapse())))}),T=(p,g)=>{var I;if(g.detach(),g.id===n)if(g.id===s[0].id&&s[1])a(1,n=s[1].id);else if(g.id===((I=s.at(-1))===null||I===void 0?void 0:I.id)&&s.at(-2))a(1,n=s.at(-2).id);else{let L=i.tabIdToIndex[g.id];s[L-1]&&a(1,n=s[L-1].id)}},D=(p,g)=>{s.forEach(I=>{I.id!==g.id&&I.detach()}),a(1,n=g.id)},le=(p,g)=>{let I=i.tabIdToIndex[g.id],L=i.tabIdToIndex[n];0<=L&&L{ne.detach()})},M=(p,g)=>{let I=i.tabIdToIndex[g.id],L=i.tabIdToIndex[n];I+1<=L&&L<=s.length-1&&a(1,n=s[I].id),s.slice(I+1,s.length).forEach(ne=>{ne.detach()})},K=(p,g)=>{g.setPinned(!0),h.bind(u)()},de=(p,g)=>{g.setPinned(!1),h.bind(u)()},G=(p,g)=>It(void 0,void 0,void 0,function*(){yield $o(l.app,g.view.file.path),h.bind(u)()}),F=(p,g)=>It(void 0,void 0,void 0,function*(){yield Xa(l.app,g.view.file.path,!0),h.bind(u)()}),B=(p,g)=>It(void 0,void 0,void 0,function*(){yield Xa(l.app,g.view.file.path,!1),h.bind(u)()});function se(){var p;let g=document.querySelector(`li[data-leaf-id="${n}"]`);if(!g)return;let I=g.getBoundingClientRect();if(!I)return;let L=(p=g.parentElement)===null||p===void 0?void 0:p.getBoundingClientRect();L&&(I.top>L.top||I.bottom{a(11,i.tabIdToIndex={},i),a(11,i.sortedTabIds=[],i),p.forEach((g,I)=>{a(11,i.tabIdToIndex[g.id]=I,i),i.sortedTabIds.push(g.id)}),localStorage.setItem(r.LIST_STATE,JSON.stringify(i))},xe=()=>{s.forEach(p=>{let g=`li[data-leaf-id="${p.id}"] .${o}`,I=document.querySelector(g);if(!I)return;let L=qo(f,y(p),V(p),C);L?(0,ge.setIcon)(I,L.icon):l.settings.defaultTabIcon?(0,ge.setIcon)(I,l.settings.defaultTabIcon):p.getViewState().type==="markdown"&&(0,ge.setIcon)(I,"")})};Sa(()=>{Uo.create(d,{group:"vertical-tabs-view-list",delay:100,delayOnTouchOnly:!0,touchStartThreshold:3,animation:150,draggable:".vertical-tabs-view-list-item",direction:"vertical",ghostClass:"vertical-tabs-view-list-item-ghost",chosenClass:"vertical-tabs-view-list-item-chosen",forceFallback:!ge.Platform.isDesktop,fallbackOnBody:!ge.Platform.isDesktop,onChange:p=>{let g=document.querySelector(`#${c}`);if(!g)return;let I=g.getBoundingClientRect(),L=p.item.getBoundingClientRect(),ne=L.height*2;L.top{if(p.oldIndex==null||p.newIndex==null)return;let g=Math.min(p.oldIndex,p.newIndex),I=Math.max(p.oldIndex,p.newIndex);for(let L=g;L<=I;L++){let ca=d.children[L].getAttribute("data-leaf-id");ca&&(a(11,i.tabIdToIndex[ca]=L,i),a(11,i.sortedTabIds[L]=ca,i),localStorage.setItem(r.LIST_STATE,JSON.stringify(i)))}}}),xe(),se()});let Te=p=>{let g=new ge.Menu;return g.addItem(I=>I.setTitle("Close").setIcon("x").onClick(L=>{L.preventDefault(),T(L,p)})),g.addItem(I=>I.setTitle("Close others").setIcon("x").onClick(L=>{L.preventDefault(),D(L,p)})),g.addItem(I=>I.setTitle("Close to the top").setIcon("x").onClick(L=>{L.preventDefault(),le(L,p)})),g.addItem(I=>I.setTitle("Close to the bottom").setIcon("x").onClick(L=>{L.preventDefault(),M(L,p)})),g.addSeparator(),p&&!p.pinned&&g.addItem(I=>I.setTitle("Pin").setIcon("pin").onClick(L=>{L.preventDefault(),K(L,p)})),p&&p.pinned&&g.addItem(I=>I.setTitle("Unpin").setIcon("pin-off").onClick(L=>{L.preventDefault(),de(L,p)})),g.addSeparator(),g.addItem(I=>I.setTitle("Trach local").setIcon("trash").onClick(L=>{L.preventDefault(),B(L,p)})),g.addItem(I=>I.setTitle("Trach system").setIcon("trash").onClick(L=>{L.preventDefault(),F(L,p)})),g.addItem(I=>I.setTitle("Delete file").setIcon("trash-2").onClick(L=>{L.preventDefault(),G(L,p)})),g},Le=(p,g)=>T(g,p),We=(p,g)=>K(g,p),Re=(p,g)=>de(g,p),fa=(p,g)=>v(g,p),Ka=(p,g)=>{Te(p).showAtMouseEvent(g)};function At(p){qt[p?"unshift":"push"](()=>{d=p,a(3,d)})}t.$$set=p=>{"view"in p&&a(12,u=p.view),"state"in p&&a(11,i=p.state),"viewContentId"in p&&a(13,c=p.viewContentId),"updateView"in p&&a(14,h=p.updateView)},t.$$.update=()=>{if(t.$$.dirty[0]&1){e:fe(s),xe()}if(t.$$.dirty[0]&2){e:n&&se()}};e:f=x();return[s,n,l,d,y,V,v,T,K,de,Te,i,u,c,h,Le,We,Re,fa,Ka,At]}var ja=class extends me{constructor(e){super(),Be(this,e,Ll,xl,pe,{view:12,state:11,viewContentId:13,updateView:14},ml,[-1,-1])}},Zo=ja;var er="vertical-tabs-view",Jo=er+"-content",Il={LIST_STATE:er+"list-state"},it="vertical-tabs-view",ia=class extends Qo.ItemView{constructor(a,o){super(o);this.state={tabIdToIndex:{},sortedTabIds:[]};this.plugin=a,this.settings=a.settings;let r=localStorage.getItem(Il.LIST_STATE);if(r)try{this.state=JSON.parse(r)}catch(l){console.error(l)}this.registerEvent(this.app.workspace.on("layout-change",()=>{let l=this.getActiveLeaf();ee.activeLeafId.set(l.id),this.updateView()})),this.registerEvent(this.app.workspace.on("active-leaf-change",l=>{!l||l.getViewState().type===it||ee.activeLeafId.set(l.id)}))}setSettings(a){this.plugin.settings=a,ee.plugin.set(this.plugin),this.updateView()}getViewType(){return it}getIcon(){return"list"}getDisplayText(){return"Vertical Tabs"}async onClose(){this.Tabs.$destroy()}async onOpen(){ee.plugin.set(this.plugin),ee.leaves.set(this.getSortedLeaves()),ee.activeLeafId.set(this.getActiveLeaf().id);let a=this.contentEl;a.id=Jo,this.Tabs=new Zo({target:this.contentEl,props:{view:this,state:this.state,updateView:this.updateView,viewContentId:Jo}})}getActiveLeaf(){return this.app.workspace.getMostRecentLeaf()}async setActiveLeafById(a){await to(this.app,a),ee.activeLeafId.set(a)}updateView(){let a=this.getSortedLeaves();a.forEach(o=>{o.on("pinned-change",()=>{ee.leaves.set(a)})}),ee.leaves.set(a)}getActiveLeafIndex(){let a=this.getActiveLeaf();return a?this.state.tabIdToIndex[a.id]:0}async cycleNextTab(){let a=this.getActiveLeafIndex();if(a==null)return;let o=(a+1)%this.state.sortedTabIds.length;await this.setActiveLeafById(this.state.sortedTabIds[o])}async cyclePreviousTab(){let a=this.getActiveLeafIndex();if(a==null)return;let o=(a-1)%this.state.sortedTabIds.length;o<0&&(o+=this.state.sortedTabIds.length),await this.setActiveLeafById(this.state.sortedTabIds[o])}collectLeafIds(a,o=[]){return a.forEach(r=>{if(r.type==="leaf")o.push(r.id);else if("children"in r&&Array.isArray(r.children))return this.collectLeafIds(r.children,o)}),o}getLeaves(){let a=[],o=this.app.workspace.rootSplit,r=this.collectLeafIds(o.children);return this.app.workspace.iterateRootLeaves(l=>{r.includes(l.id)&&a.push(l)}),a}getSortedLeaves(){return this.getLeaves().slice().sort((a,o)=>{var s,n;let r=(s=this.state.tabIdToIndex[a.id])!=null?s:1/0,l=(n=this.state.tabIdToIndex[o.id])!=null?n:1/0;return r-l})}};var da=class extends tr.Plugin{async onload(){Bt("loading..."),await this.loadSettings(),this.addSettingTab(new Ot(this.app,this)),this.addCommands(),this.app.workspace.onLayoutReady(async()=>{this.registerViewExtension()}),Bt("loaded.")}onunload(){Bt("unloaded.")}async loadSettings(){this.settings=Object.assign({},eo,await this.loadData()),this.settings.tabIconRules.length===0&&"tabIconConfigs"in this.settings&&Array.isArray(this.settings.tabIconConfigs)&&this.settings.tabIconConfigs.length>0&&(this.settings.tabIconRules=structuredClone(this.settings.tabIconConfigs),delete this.settings.tabIconConfigs,this.saveSettings(this.settings))}async saveSettings(a){await this.saveData(a),this.settings=a;let o=this.getView();o&&o.updateView()}addCommands(){this.addCommand({id:"show-tabs-view",name:"Show vertical tabs view",callback:async()=>{this.openViewLeaf()}}),this.addCommand({id:"cycle-previous-tab",name:"Cycle previous tab",callback:async()=>{let a=this.getView();a&&await a.cyclePreviousTab()}}),this.addCommand({id:"cycle-next-tab",name:"Cycle next tab",callback:async()=>{let a=this.getView();a&&await a.cycleNextTab()}})}registerViewExtension(){this.registerView(it,a=>new ia(this,a))}getView(){let a=this.app.workspace.getLeavesOfType(it)[0];if(a)return a.view}async openViewLeaf(){let a=()=>this.settings.defaultPosition==="left"?this.app.workspace.getLeftLeaf(!1):this.settings.defaultPosition==="right"?this.app.workspace.getRightLeaf(!1):this.app.workspace.getLeftLeaf(!1),o=this.getView();if(o)return o.updateView(),this.app.workspace.revealLeaf(o.leaf);let r=a();await r.setViewState({type:it,active:!0}),this.app.workspace.revealLeaf(r)}}; +/*! Bundled license information: + +sortablejs/modular/sortable.esm.js: + (**! + * Sortable 1.15.0 + * @author RubaXa + * @author owenm + * @license MIT + *) +*/ diff --git a/.obsidian/plugins/vertical-tabs-view/manifest.json b/.obsidian/plugins/vertical-tabs-view/manifest.json new file mode 100644 index 00000000..483a2d38 --- /dev/null +++ b/.obsidian/plugins/vertical-tabs-view/manifest.json @@ -0,0 +1,11 @@ +{ + "id": "vertical-tabs-view", + "name": "Vertical Tabs View", + "version": "2.4.5", + "minAppVersion": "0.15.0", + "description": "Provides a vertical tabs view.", + "author": "hdykokd", + "authorUrl": "https://hdykokd.me", + "fundingUrl": "https://www.buymeacoffee.com/hdykokd", + "isDesktopOnly": false +} \ No newline at end of file diff --git a/.obsidian/plugins/vertical-tabs-view/styles.css b/.obsidian/plugins/vertical-tabs-view/styles.css new file mode 100644 index 00000000..ae95e3b6 --- /dev/null +++ b/.obsidian/plugins/vertical-tabs-view/styles.css @@ -0,0 +1,163 @@ +#vertical-tabs-view-content { + padding: 0; + margin: 2px; +} + +ul.vertical-tabs-view-list { + list-style: none; + padding: 0; + margin: 0.1rem 0; +} + +.is-focused .vertical-tabs-view-list li.vertical-tabs-view-list-item { + color: var(--tab-text-color-focused); +} +.vertical-tabs-view-list li.vertical-tabs-view-list-item { + display: flex; + flex-direction: row; + justify-content: space-between; + color: var(--tab-text-color); + font-size: var(--tab-font-size); + font-weight: var(--tab-font-weight); + padding: 2px 0 2px 2px; + width: 100%; + min-height: 2.5rem; + border-radius: var(--tab-radius); + overflow: hidden; + white-space: nowrap; +} +.is-focused .vertical-tabs-view-list li.focused, +.vertical-tabs-view-list li.focused { + color: var(--tab-text-color-focused-active-current); + background-color: var(--tab-background-active); +} + +.vertical-tabs-view-list li.vertical-tabs-view-list-item:hover { + background-color: var(--background-modifier-hover); +} + +.vertical-tabs-view-list-item-ghost { + opacity: 0.6; +} +.is-mobile .vertical-tabs-view-list-item-chosen { + display: none; +} + +.vertical-tabs-view-list li .vertical-tabs-view-list-item-left-container, +.vertical-tabs-view-list li .vertical-tabs-view-list-item-right-container { + display: flex; + flex-direction: row; + align-items: center; + overflow: auto; +} + +.vertical-tabs-view-list li .vertical-tabs-view-list-item-name-container { + display: flex; + overflow: auto; + margin: 0 0.25em; + scrollbar-width: thin; +} + +/* scrollbar */ +.vertical-tabs-view-list li .vertical-tabs-view-list-item-name-container::-webkit-scrollbar { + margin-top: 0.25em; + height: 0.25em; +} +.vertical-tabs-view-list li .vertical-tabs-view-list-item-name-container::-webkit-scrollbar-track { + background-color: var(--scrollbar-bg); +} +.vertical-tabs-view-list li .vertical-tabs-view-list-item-name-container::-webkit-scrollbar-thumb { + background-color: var(--scrollbar-thumb-bg); +} +.vertical-tabs-view-list li .vertical-tabs-view-list-item-name-container::-webkit-scrollbar-thumb:hover { + background-color: var(--scrollbar-active-thumb-bg); +} + +.vertical-tabs-view-list li .vertical-tabs-view-list-item-right-container { + flex-shrink: 0; +} + +.vertical-tabs-view-list li .vertical-tabs-view-list-item-icon { + color: var(--tab-text-color); + padding-top: 0.25em; +} + +.vertical-tabs-view-list li .vertical-tabs-view-list-item-tab-icon { + margin: 0 0.25em; + min-width: var(--icon-s); + --icon-size: var(--icon-s); + --icon-stroke: var(--icon-s-stroke-width); +} + +.vertical-tabs-view-list li .vertical-tabs-view-list-item-close-btn, +.vertical-tabs-view-list li .vertical-tabs-view-list-item-pin-btn { + cursor: pointer; + --icon-size: var(--icon-l); + --icon-stroke: var(--icon-l-stroke-width); +} + +.vertical-tabs-view-list li .vertical-tabs-view-list-item-close-btn:hover, +.vertical-tabs-view-list li .vertical-tabs-view-list-item-pin-btn:hover { + color: var(--tab-text-color-focused); + background-color: var(--tab-background-active); +} + +.vertical-tabs-view-list li .vertical-tabs-view-list-item-icon-pinned { + color: var(--text-accent); +} + +.vertical-tabs-view-list li .vertical-tabs-view-list-item-pin-btn { + margin-right: 0.5em; + margin-top: 0.5em; +} + +.vertical-tabs-view-list li .vertical-tabs-view-list-item-name-container { + display: flex; + flex-direction: column; + justify-content: space-between; + margin-left: 0.25em; + line-height: 1.4em; + width: 100%; +} + +.vertical-tabs-view-list li .vertical-tabs-view-list-item-name-container::-webkit-scrollbar { + width: 2rem; +} + +.vertical-tabs-view-list li .vertical-tabs-view-list-item-dirname { + font-size: var(--font-ui-smaller); +} + +/* settings */ +.vertical-tabs-view-settings-preview-icon-wrapper { + display: flex; +} +.vertical-tabs-view-settings-preview-icon-text { + margin-right: 0.5em; +} +.vertical-tabs-view-settings-tab-icon-rules { + margin-left: 1em; +} +.setting-item.vertical-tabs-view-settings-tab-icon-rules-add-btn { + border: none; +} +.vertical-tabs-view-settings-tab-icon-rule-wrapper { + border: 1px solid var(--background-modifier-border); + padding: 1em; + margin-bottom: 0.25em; +} +.vertical-tabs-view-settings-tab-icon-rule-match-config-wrapper { + border-bottom: 1px solid var(--background-modifier-border); + padding: 0.5em 1em; +} +.vertical-tabs-view-settings-tab-icon-rule-remove-btn-wrapper { + display: flex; + justify-content: end; + margin-top: 1em; +} + +/* See: https://github.com/hdykokd/obsidian-vertical-tabs-view/issues/60 */ +.vertical-tabs-view-list-mobile-margin-block { + height: 100%; + padding-bottom: 4.5rem; +} diff --git a/.obsidian/plugins/zotlit/data.json b/.obsidian/plugins/zotlit/data.json new file mode 100644 index 00000000..77efa79c --- /dev/null +++ b/.obsidian/plugins/zotlit/data.json @@ -0,0 +1,27 @@ +{ + "logLevel": "INFO", + "citationEditorSuggester": true, + "showCitekeyInSuggester": true, + "literatureNoteFolder": "sources/zotero", + "enableServer": false, + "serverPort": 9091, + "serverHostname": "127.0.0.1", + "template": { + "folder": "templates/zotero", + "templates": { + "filename": "<%= it.citekey ?? it.DOI ?? it.title ?? it.key %>.md" + } + }, + "updateAnnotBlock": false, + "updateOverwrite": false, + "autoPairEta": false, + "autoTrim": [ + false, + false + ], + "autoRefresh": true, + "zoteroDataDir": "/Users/oscarplaisant/Zotero", + "citationLibrary": 2, + "imgExcerptImport": "symlink", + "imgExcerptPath": "images/zotero" +} \ No newline at end of file diff --git a/.obsidian/plugins/zotlit/main.js b/.obsidian/plugins/zotlit/main.js new file mode 100644 index 00000000..22910ab3 --- /dev/null +++ b/.obsidian/plugins/zotlit/main.js @@ -0,0 +1,410 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source visit the plugins github repository +*/ + +"use strict";var fj=Object.create;var Ho=Object.defineProperty;var Ov=Object.getOwnPropertyDescriptor;var pj=Object.getOwnPropertyNames;var dj=Object.getPrototypeOf,mj=Object.prototype.hasOwnProperty;var hj=(e,t,r)=>t in e?Ho(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var $u=(e,t)=>()=>(e&&(t=e(e=0)),t);var g=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Av=(e,t)=>{for(var r in t)Ho(e,r,{get:t[r],enumerable:!0})},kv=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of pj(t))!mj.call(e,o)&&o!==r&&Ho(e,o,{get:()=>t[o],enumerable:!(n=Ov(t,o))||n.enumerable});return e};var ge=(e,t,r)=>(r=e!=null?fj(dj(e)):{},kv(t||!e||!e.__esModule?Ho(r,"default",{value:e,enumerable:!0}):r,e)),Ed=e=>kv(Ho({},"__esModule",{value:!0}),e),le=(e,t,r,n)=>{for(var o=n>1?void 0:n?Ov(t,r):t,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(n?s(t,r,o):s(o))||o);return n&&o&&Ho(t,r,o),o};var Nv=(e,t,r)=>(hj(e,typeof t!="symbol"?t+"":t,r),r);var r0=g((Ine,t0)=>{var Jo=1e3,Zo=Jo*60,Yo=Zo*60,Gn=Yo*24,_j=Gn*7,Cj=Gn*365.25;t0.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return Tj(e);if(r==="number"&&isFinite(e))return t.long?Aj(e):Oj(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function Tj(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Cj;case"weeks":case"week":case"w":return r*_j;case"days":case"day":case"d":return r*Gn;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Yo;case"minutes":case"minute":case"mins":case"min":case"m":return r*Zo;case"seconds":case"second":case"secs":case"sec":case"s":return r*Jo;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Oj(e){var t=Math.abs(e);return t>=Gn?Math.round(e/Gn)+"d":t>=Yo?Math.round(e/Yo)+"h":t>=Zo?Math.round(e/Zo)+"m":t>=Jo?Math.round(e/Jo)+"s":e+"ms"}function Aj(e){var t=Math.abs(e);return t>=Gn?Hu(e,t,Gn,"day"):t>=Yo?Hu(e,t,Yo,"hour"):t>=Zo?Hu(e,t,Zo,"minute"):t>=Jo?Hu(e,t,Jo,"second"):e+" ms"}function Hu(e,t,r,n){var o=t>=r*1.5;return Math.round(e/r)+" "+n+(o?"s":"")}});var o0=g((_ne,n0)=>{function kj(e){r.debug=r,r.default=r,r.coerce=u,r.disable=i,r.enable=o,r.enabled=s,r.humanize=r0(),r.destroy=l,Object.keys(e).forEach(c=>{r[c]=e[c]}),r.names=[],r.skips=[],r.formatters={};function t(c){let f=0;for(let p=0;p{if(J==="%%")return"%";M++;let K=r.formatters[G];if(typeof K=="function"){let P=y[M];J=K.call(v,P),y.splice(M,1),M--}return J}),r.formatArgs.call(v,y),(v.log||r.log).apply(v,y)}return b.namespace=c,b.useColors=r.useColors(),b.color=r.selectColor(c),b.extend=n,b.destroy=r.destroy,Object.defineProperty(b,"enabled",{enumerable:!0,configurable:!1,get:()=>p!==null?p:(d!==r.namespaces&&(d=r.namespaces,h=r.enabled(c)),h),set:y=>{p=y}}),typeof r.init=="function"&&r.init(b),b}function n(c,f){let p=r(this.namespace+(typeof f>"u"?":":f)+c);return p.log=this.log,p}function o(c){r.save(c),r.namespaces=c,r.names=[],r.skips=[];let f,p=(typeof c=="string"?c:"").split(/[\s,]+/),d=p.length;for(f=0;f"-"+f)].join(",");return r.enable(""),c}function s(c){if(c[c.length-1]==="*")return!0;let f,p;for(f=0,p=r.skips.length;f{At.formatArgs=Rj;At.save=Dj;At.load=Pj;At.useColors=Nj;At.storage=Fj();At.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();At.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Nj(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Rj(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+Ku.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(r++,o==="%c"&&(n=r))}),e.splice(n,0,t)}At.log=console.debug||console.log||(()=>{});function Dj(e){try{e?At.storage.setItem("debug",e):At.storage.removeItem("debug")}catch{}}function Pj(){let e;try{e=At.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function Fj(){try{return localStorage}catch{}}Ku.exports=o0()(At);var{formatters:$j}=Ku.exports;$j.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var s0=g((Cne,i0)=>{"use strict";i0.exports=Mj;function Xo(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function Mj(e){if(e=e||{},e.circles)return jj(e);return e.proto?n:r;function t(o,i){for(var s=Object.keys(o),a=new Array(s.length),u=0;u{var Lj=require("util"),Jn=Ue()("log4js:configuration"),Vu=[],Gu=[],a0=e=>!e,u0=e=>e&&typeof e=="object"&&!Array.isArray(e),qj=e=>/^[A-Za-z][A-Za-z0-9_]*$/g.test(e),Bj=e=>e&&typeof e=="number"&&Number.isInteger(e),zj=e=>{Gu.push(e),Jn(`Added listener, now ${Gu.length} listeners`)},Uj=e=>{Vu.push(e),Jn(`Added pre-processing listener, now ${Vu.length} listeners`)},c0=(e,t,r)=>{(Array.isArray(t)?t:[t]).forEach(o=>{if(o)throw new Error(`Problem with log4js configuration: (${Lj.inspect(e,{depth:5})}) - ${r}`)})},Wj=e=>{Jn("New configuration to be validated: ",e),c0(e,a0(u0(e)),"must be an object."),Jn(`Calling pre-processing listeners (${Vu.length})`),Vu.forEach(t=>t(e)),Jn("Configuration pre-processing finished."),Jn(`Calling configuration listeners (${Gu.length})`),Gu.forEach(t=>t(e)),Jn("Configuration finished.")};l0.exports={configure:Wj,addListener:zj,addPreProcessingListener:Uj,throwExceptionIf:c0,anObject:u0,anInteger:Bj,validIdentifier:qj,not:a0}});var Ju=g((One,zt)=>{"use strict";function f0(e,t){for(var r=e.toString();r.length-1?o:i,a=Yn(t.getHours()),u=Yn(t.getMinutes()),l=Yn(t.getSeconds()),c=f0(t.getMilliseconds(),3),f=Hj(t.getTimezoneOffset()),p=e.replace(/dd/g,r).replace(/MM/g,n).replace(/y{1,4}/g,s).replace(/hh/g,a).replace(/mm/g,u).replace(/ss/g,l).replace(/SSS/g,c).replace(/O/g,f);return p}function dn(e,t,r,n){e["set"+(n?"":"UTC")+t](r)}function Kj(e,t,r){var n=e.indexOf("O")<0,o=!1,i=[{pattern:/y{1,4}/,regexp:"\\d{1,4}",fn:function(f,p){dn(f,"FullYear",p,n)}},{pattern:/MM/,regexp:"\\d{1,2}",fn:function(f,p){dn(f,"Month",p-1,n),f.getMonth()!==p-1&&(o=!0)}},{pattern:/dd/,regexp:"\\d{1,2}",fn:function(f,p){o&&dn(f,"Month",f.getMonth()-1,n),dn(f,"Date",p,n)}},{pattern:/hh/,regexp:"\\d{1,2}",fn:function(f,p){dn(f,"Hours",p,n)}},{pattern:/mm/,regexp:"\\d\\d",fn:function(f,p){dn(f,"Minutes",p,n)}},{pattern:/ss/,regexp:"\\d\\d",fn:function(f,p){dn(f,"Seconds",p,n)}},{pattern:/SSS/,regexp:"\\d\\d\\d",fn:function(f,p){dn(f,"Milliseconds",p,n)}},{pattern:/O/,regexp:"[+-]\\d{1,2}:?\\d{2}?|Z",fn:function(f,p){p==="Z"?p=0:p=p.replace(":","");var d=Math.abs(p),h=(p>0?-1:1)*(d%100+Math.floor(d/100)*60);f.setUTCMinutes(f.getUTCMinutes()+h)}}],s=i.reduce(function(f,p){return p.pattern.test(f.regexp)?(p.index=f.regexp.match(p.pattern).index,f.regexp=f.regexp.replace(p.pattern,"("+p.regexp+")")):p.index=-1,f},{regexp:e,index:[]}),a=i.filter(function(f){return f.index>-1});a.sort(function(f,p){return f.index-p.index});var u=new RegExp(s.regexp),l=u.exec(t);if(l){var c=r||zt.exports.now();return a.forEach(function(f,p){f.fn(c,l[p+1])}),c}throw new Error("String '"+t+"' could not be parsed as '"+e+"'")}function Vj(e,t,r){if(!e)throw new Error("pattern must be supplied");return Kj(e,t,r)}function Gj(){return new Date}zt.exports=p0;zt.exports.asString=p0;zt.exports.parse=Vj;zt.exports.now=Gj;zt.exports.ISO8601_FORMAT="yyyy-MM-ddThh:mm:ss.SSS";zt.exports.ISO8601_WITH_TZ_OFFSET_FORMAT="yyyy-MM-ddThh:mm:ss.SSSO";zt.exports.DATETIME_FORMAT="dd MM yyyy hh:mm:ss.SSS";zt.exports.ABSOLUTETIME_FORMAT="hh:mm:ss.SSS"});var $d=g((Ane,I0)=>{var mn=Ju(),d0=require("os"),gs=require("util"),hs=require("path"),m0=require("url"),h0=Ue()("log4js:layouts"),g0={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[90,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[91,39],yellow:[33,39]};function y0(e){return e?`\x1B[${g0[e][0]}m`:""}function b0(e){return e?`\x1B[${g0[e][1]}m`:""}function Jj(e,t){return y0(t)+e+b0(t)}function v0(e,t){return Jj(gs.format("[%s] [%s] %s - ",mn.asString(e.startTime),e.level.toString(),e.categoryName),t)}function x0(e){return v0(e)+gs.format(...e.data)}function Zu(e){return v0(e,e.level.colour)+gs.format(...e.data)}function w0(e){return gs.format(...e.data)}function E0(e){return e.data[0]}function S0(e,t){let r="%r %p %c - %m%n",n=/%(-?[0-9]+)?(\.?-?[0-9]+)?([[\]cdhmnprzxXyflos%])(\{([^}]+)\})?|([^%]+)/;e=e||r;function o(C,_){let I=C.categoryName;if(_){let B=parseInt(_,10),D=I.split(".");BD&&(I=re.slice(-D).join(hs.sep))}return I}function T(C){return C.lineNumber?`${C.lineNumber}`:""}function M(C){return C.columnNumber?`${C.columnNumber}`:""}function V(C){return C.callStack||""}let J={c:o,d:i,h:s,m:a,n:u,p:l,r:c,"[":f,"]":p,y:b,z:h,"%":d,x:y,X:v,f:w,l:T,o:M,s:V};function G(C,_,I){return J[C](_,I)}function K(C,_){let I;return C?(I=parseInt(C.slice(1),10),I>0?_.slice(0,I):_.slice(I)):_}function P(C,_){let I;if(C)if(C.charAt(0)==="-")for(I=parseInt(C.slice(1),10);_.length{var $e=Zn(),_0=["white","grey","black","blue","cyan","green","magenta","red","yellow"],Me=class{constructor(t,r,n){this.level=t,this.levelStr=r,this.colour=n}toString(){return this.levelStr}static getLevel(t,r){return t?t instanceof Me?t:(t instanceof Object&&t.levelStr&&(t=t.levelStr),Me[t.toString().toUpperCase()]||r):r}static addLevels(t){t&&(Object.keys(t).forEach(n=>{let o=n.toUpperCase();Me[o]=new Me(t[n].value,o,t[n].colour);let i=Me.levels.findIndex(s=>s.levelStr===o);i>-1?Me.levels[i]=Me[o]:Me.levels.push(Me[o])}),Me.levels.sort((n,o)=>n.level-o.level))}isLessThanOrEqualTo(t){return typeof t=="string"&&(t=Me.getLevel(t)),this.level<=t.level}isGreaterThanOrEqualTo(t){return typeof t=="string"&&(t=Me.getLevel(t)),this.level>=t.level}isEqualTo(t){return typeof t=="string"&&(t=Me.getLevel(t)),this.level===t.level}};Me.levels=[];Me.addLevels({ALL:{value:Number.MIN_VALUE,colour:"grey"},TRACE:{value:5e3,colour:"blue"},DEBUG:{value:1e4,colour:"cyan"},INFO:{value:2e4,colour:"green"},WARN:{value:3e4,colour:"yellow"},ERROR:{value:4e4,colour:"red"},FATAL:{value:5e4,colour:"magenta"},MARK:{value:9007199254740992,colour:"grey"},OFF:{value:Number.MAX_VALUE,colour:"grey"}});$e.addListener(e=>{let t=e.levels;t&&($e.throwExceptionIf(e,$e.not($e.anObject(t)),"levels must be an object"),Object.keys(t).forEach(n=>{$e.throwExceptionIf(e,$e.not($e.validIdentifier(n)),`level name "${n}" is not a valid identifier (must start with a letter, only contain A-Z,a-z,0-9,_)`),$e.throwExceptionIf(e,$e.not($e.anObject(t[n])),`level "${n}" must be an object`),$e.throwExceptionIf(e,$e.not(t[n].value),`level "${n}" must have a 'value' property`),$e.throwExceptionIf(e,$e.not($e.anInteger(t[n].value)),`level "${n}".value must have an integer value`),$e.throwExceptionIf(e,$e.not(t[n].colour),`level "${n}" must have a 'colour' property`),$e.throwExceptionIf(e,$e.not(_0.indexOf(t[n].colour)>-1),`level "${n}".colour must be one of ${_0.join(", ")}`)}))});$e.addListener(e=>{Me.addLevels(e.levels)});C0.exports=Me});var $0=g(bs=>{"use strict";var{parse:A0,stringify:k0}=JSON,{keys:Zj}=Object,ys=String,N0="string",T0={},Yu="object",R0=(e,t)=>t,Yj=e=>e instanceof ys?ys(e):e,Xj=(e,t)=>typeof t===N0?new ys(t):t,D0=(e,t,r,n)=>{let o=[];for(let i=Zj(r),{length:s}=i,a=0;a{let n=ys(t.push(r)-1);return e.set(r,n),n},P0=(e,t)=>{let r=A0(e,Xj).map(Yj),n=r[0],o=t||R0,i=typeof n===Yu&&n?D0(r,new Set,n,o):n;return o.call({"":i},"",i)};bs.parse=P0;var F0=(e,t,r)=>{let n=t&&typeof t===Yu?(c,f)=>c===""||-1A0(F0(e));bs.toJSON=Qj;var e3=e=>P0(k0(e));bs.fromJSON=e3});var Md=g((Rne,L0)=>{var M0=$0(),j0=Xn(),Qo=class{constructor(t,r,n,o,i){this.startTime=new Date,this.categoryName=t,this.data=n,this.level=r,this.context=Object.assign({},o),this.pid=process.pid,i&&(this.functionName=i.functionName,this.fileName=i.fileName,this.lineNumber=i.lineNumber,this.columnNumber=i.columnNumber,this.callStack=i.callStack)}serialise(){return M0.stringify(this,(t,r)=>(r&&r.message&&r.stack?r=Object.assign({message:r.message,stack:r.stack},r):typeof r=="number"&&(Number.isNaN(r)||!Number.isFinite(r))?r=r.toString():typeof r>"u"&&(r=typeof r),r))}static deserialise(t){let r;try{let n=M0.parse(t,(o,i)=>{if(i&&i.message&&i.stack){let s=new Error(i);Object.keys(i).forEach(a=>{s[a]=i[a]}),i=s}return i});n.location={functionName:n.functionName,fileName:n.fileName,lineNumber:n.lineNumber,columnNumber:n.columnNumber,callStack:n.callStack},r=new Qo(n.categoryName,j0.getLevel(n.level.levelStr),n.data,n.context,n.location),r.startTime=new Date(n.startTime),r.pid=n.pid,r.cluster=n.cluster}catch(n){r=new Qo("log4js",j0.ERROR,["Unable to parse log:",t,"because: ",n])}return r}};L0.exports=Qo});var Qu=g((Dne,z0)=>{var Ut=Ue()("log4js:clustering"),t3=Md(),r3=Zn(),ei=!1,Wt=null;try{Wt=require("cluster")}catch{Ut("cluster module not present"),ei=!0}var Ld=[],xs=!1,vs="NODE_APP_INSTANCE",q0=()=>xs&&process.env[vs]==="0",jd=()=>ei||Wt&&Wt.isMaster||q0(),B0=e=>{Ld.forEach(t=>t(e))},Xu=(e,t)=>{if(Ut("cluster message received from worker ",e,": ",t),e.topic&&e.data&&(t=e,e=void 0),t&&t.topic&&t.topic==="log4js:message"){Ut("received message: ",t.data);let r=t3.deserialise(t.data);B0(r)}};ei||r3.addListener(e=>{Ld.length=0,{pm2:xs,disableClustering:ei,pm2InstanceVar:vs="NODE_APP_INSTANCE"}=e,Ut(`clustering disabled ? ${ei}`),Ut(`cluster.isMaster ? ${Wt&&Wt.isMaster}`),Ut(`pm2 enabled ? ${xs}`),Ut(`pm2InstanceVar = ${vs}`),Ut(`process.env[${vs}] = ${process.env[vs]}`),xs&&process.removeListener("message",Xu),Wt&&Wt.removeListener&&Wt.removeListener("message",Xu),ei||e.disableClustering?Ut("Not listening for cluster messages, because clustering disabled."):q0()?(Ut("listening for PM2 broadcast messages"),process.on("message",Xu)):Wt&&Wt.isMaster?(Ut("listening for cluster messages"),Wt.on("message",Xu)):Ut("not listening for messages, because we are not a master process")});z0.exports={onlyOnMaster:(e,t)=>jd()?e():t,isMaster:jd,send:e=>{jd()?B0(e):(xs||(e.cluster={workerId:Wt.worker.id,worker:process.pid}),process.send({topic:"log4js:message",data:e.serialise()}))},onMessage:e=>{Ld.push(e)}}});var H0=g((Pne,W0)=>{function n3(e){if(typeof e=="number"&&Number.isInteger(e))return e;let t={K:1024,M:1024*1024,G:1024*1024*1024},r=Object.keys(t),n=e.slice(-1).toLocaleUpperCase(),o=e.slice(0,-1).trim();if(r.indexOf(n)<0||!Number.isInteger(Number(o)))throw Error(`maxLogSize: "${e}" is invalid`);return o*t[n]}function o3(e,t){let r=Object.assign({},t);return Object.keys(e).forEach(n=>{r[n]&&(r[n]=e[n](t[n]))}),r}function qd(e){return o3({maxLogSize:n3},e)}var U0={dateFile:qd,file:qd,fileSync:qd};W0.exports.modifyConfig=e=>U0[e.type]?U0[e.type](e):e});var V0=g((Fne,K0)=>{var i3=console.log.bind(console);function s3(e,t){return r=>{i3(e(r,t))}}function a3(e,t){let r=t.colouredLayout;return e.layout&&(r=t.layout(e.layout.type,e.layout)),s3(r,e.timezoneOffset)}K0.exports.configure=a3});var J0=g(G0=>{function u3(e,t){return r=>{process.stdout.write(`${e(r,t)} +`)}}function c3(e,t){let r=t.colouredLayout;return e.layout&&(r=t.layout(e.layout.type,e.layout)),u3(r,e.timezoneOffset)}G0.configure=c3});var Y0=g((Mne,Z0)=>{function l3(e,t){return r=>{process.stderr.write(`${e(r,t)} +`)}}function f3(e,t){let r=t.colouredLayout;return e.layout&&(r=t.layout(e.layout.type,e.layout)),l3(r,e.timezoneOffset)}Z0.exports.configure=f3});var Q0=g((jne,X0)=>{function p3(e,t,r,n){let o=n.getLevel(e),i=n.getLevel(t,n.FATAL);return s=>{let a=s.level;o.isLessThanOrEqualTo(a)&&i.isGreaterThanOrEqualTo(a)&&r(s)}}function d3(e,t,r,n){let o=r(e.appender);return p3(e.level,e.maxLevel,o,n)}X0.exports.configure=d3});var rx=g((Lne,tx)=>{var ex=Ue()("log4js:categoryFilter");function m3(e,t){return typeof e=="string"&&(e=[e]),r=>{ex(`Checking ${r.categoryName} against ${e}`),e.indexOf(r.categoryName)===-1&&(ex("Not excluded, sending to appender"),t(r))}}function h3(e,t,r){let n=r(e.appender);return m3(e.exclude,n)}tx.exports.configure=h3});var ix=g((qne,ox)=>{var nx=Ue()("log4js:noLogFilter");function g3(e){return e.filter(r=>r!=null&&r!=="")}function y3(e,t){return r=>{nx(`Checking data: ${r.data} against filters: ${e}`),typeof e=="string"&&(e=[e]),e=g3(e);let n=new RegExp(e.join("|"),"i");(e.length===0||r.data.findIndex(o=>n.test(o))<0)&&(nx("Not excluded, sending to appender"),t(r))}}function b3(e,t,r){let n=r(e.appender);return y3(e.exclude,n)}ox.exports.configure=b3});var gt=g(Bd=>{"use strict";Bd.fromCallback=function(e){return Object.defineProperty(function(){if(typeof arguments[arguments.length-1]=="function")e.apply(this,arguments);else return new Promise((t,r)=>{arguments[arguments.length]=(n,o)=>{if(n)return r(n);t(o)},arguments.length++,e.apply(this,arguments)})},"name",{value:e.name})};Bd.fromPromise=function(e){return Object.defineProperty(function(){let t=arguments[arguments.length-1];if(typeof t!="function")return e.apply(this,arguments);e.apply(this,arguments).then(r=>t(null,r),t)},"name",{value:e.name})}});var ax=g((zne,sx)=>{var hn=require("constants"),v3=process.cwd,ec=null,x3=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return ec||(ec=v3.call(process)),ec};try{process.cwd()}catch{}typeof process.chdir=="function"&&(zd=process.chdir,process.chdir=function(e){ec=null,zd.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,zd));var zd;sx.exports=w3;function w3(e){hn.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(e),e.lutimes||r(e),e.chown=i(e.chown),e.fchown=i(e.fchown),e.lchown=i(e.lchown),e.chmod=n(e.chmod),e.fchmod=n(e.fchmod),e.lchmod=n(e.lchmod),e.chownSync=s(e.chownSync),e.fchownSync=s(e.fchownSync),e.lchownSync=s(e.lchownSync),e.chmodSync=o(e.chmodSync),e.fchmodSync=o(e.fchmodSync),e.lchmodSync=o(e.lchmodSync),e.stat=a(e.stat),e.fstat=a(e.fstat),e.lstat=a(e.lstat),e.statSync=u(e.statSync),e.fstatSync=u(e.fstatSync),e.lstatSync=u(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(c,f,p){p&&process.nextTick(p)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(c,f,p,d){d&&process.nextTick(d)},e.lchownSync=function(){}),x3==="win32"&&(e.rename=typeof e.rename!="function"?e.rename:function(c){function f(p,d,h){var b=Date.now(),y=0;c(p,d,function v(w){if(w&&(w.code==="EACCES"||w.code==="EPERM"||w.code==="EBUSY")&&Date.now()-b<6e4){setTimeout(function(){e.stat(d,function(T,M){T&&T.code==="ENOENT"?c(p,d,v):h(w)})},y),y<100&&(y+=10);return}h&&h(w)})}return Object.setPrototypeOf&&Object.setPrototypeOf(f,c),f}(e.rename)),e.read=typeof e.read!="function"?e.read:function(c){function f(p,d,h,b,y,v){var w;if(v&&typeof v=="function"){var T=0;w=function(M,V,J){if(M&&M.code==="EAGAIN"&&T<10)return T++,c.call(e,p,d,h,b,y,w);v.apply(this,arguments)}}return c.call(e,p,d,h,b,y,w)}return Object.setPrototypeOf&&Object.setPrototypeOf(f,c),f}(e.read),e.readSync=typeof e.readSync!="function"?e.readSync:function(c){return function(f,p,d,h,b){for(var y=0;;)try{return c.call(e,f,p,d,h,b)}catch(v){if(v.code==="EAGAIN"&&y<10){y++;continue}throw v}}}(e.readSync);function t(c){c.lchmod=function(f,p,d){c.open(f,hn.O_WRONLY|hn.O_SYMLINK,p,function(h,b){if(h){d&&d(h);return}c.fchmod(b,p,function(y){c.close(b,function(v){d&&d(y||v)})})})},c.lchmodSync=function(f,p){var d=c.openSync(f,hn.O_WRONLY|hn.O_SYMLINK,p),h=!0,b;try{b=c.fchmodSync(d,p),h=!1}finally{if(h)try{c.closeSync(d)}catch{}else c.closeSync(d)}return b}}function r(c){hn.hasOwnProperty("O_SYMLINK")&&c.futimes?(c.lutimes=function(f,p,d,h){c.open(f,hn.O_SYMLINK,function(b,y){if(b){h&&h(b);return}c.futimes(y,p,d,function(v){c.close(y,function(w){h&&h(v||w)})})})},c.lutimesSync=function(f,p,d){var h=c.openSync(f,hn.O_SYMLINK),b,y=!0;try{b=c.futimesSync(h,p,d),y=!1}finally{if(y)try{c.closeSync(h)}catch{}else c.closeSync(h)}return b}):c.futimes&&(c.lutimes=function(f,p,d,h){h&&process.nextTick(h)},c.lutimesSync=function(){})}function n(c){return c&&function(f,p,d){return c.call(e,f,p,function(h){l(h)&&(h=null),d&&d.apply(this,arguments)})}}function o(c){return c&&function(f,p){try{return c.call(e,f,p)}catch(d){if(!l(d))throw d}}}function i(c){return c&&function(f,p,d,h){return c.call(e,f,p,d,function(b){l(b)&&(b=null),h&&h.apply(this,arguments)})}}function s(c){return c&&function(f,p,d){try{return c.call(e,f,p,d)}catch(h){if(!l(h))throw h}}}function a(c){return c&&function(f,p,d){typeof p=="function"&&(d=p,p=null);function h(b,y){y&&(y.uid<0&&(y.uid+=4294967296),y.gid<0&&(y.gid+=4294967296)),d&&d.apply(this,arguments)}return p?c.call(e,f,p,h):c.call(e,f,h)}}function u(c){return c&&function(f,p){var d=p?c.call(e,f,p):c.call(e,f);return d&&(d.uid<0&&(d.uid+=4294967296),d.gid<0&&(d.gid+=4294967296)),d}}function l(c){if(!c||c.code==="ENOSYS")return!0;var f=!process.getuid||process.getuid()!==0;return!!(f&&(c.code==="EINVAL"||c.code==="EPERM"))}}});var lx=g((Une,cx)=>{var ux=require("stream").Stream;cx.exports=E3;function E3(e){return{ReadStream:t,WriteStream:r};function t(n,o){if(!(this instanceof t))return new t(n,o);ux.call(this);var i=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,o=o||{};for(var s=Object.keys(o),a=0,u=s.length;athis.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){i._read()});return}e.open(this.path,this.flags,this.mode,function(c,f){if(c){i.emit("error",c),i.readable=!1;return}i.fd=f,i.emit("open",f),i._read()})}function r(n,o){if(!(this instanceof r))return new r(n,o);ux.call(this),this.path=n,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,o=o||{};for(var i=Object.keys(o),s=0,a=i.length;s= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var px=g((Wne,fx)=>{"use strict";fx.exports=I3;var S3=Object.getPrototypeOf||function(e){return e.__proto__};function I3(e){if(e===null||typeof e!="object")return e;if(e instanceof Object)var t={__proto__:S3(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}});var je=g((Hne,Hd)=>{var Ce=require("fs"),_3=ax(),C3=lx(),T3=px(),tc=require("util"),Ye,nc;typeof Symbol=="function"&&typeof Symbol.for=="function"?(Ye=Symbol.for("graceful-fs.queue"),nc=Symbol.for("graceful-fs.previous")):(Ye="___graceful-fs.queue",nc="___graceful-fs.previous");function O3(){}function hx(e,t){Object.defineProperty(e,Ye,{get:function(){return t}})}var Qn=O3;tc.debuglog?Qn=tc.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(Qn=function(){var e=tc.format.apply(tc,arguments);e="GFS4: "+e.split(/\n/).join(` +GFS4: `),console.error(e)});Ce[Ye]||(dx=global[Ye]||[],hx(Ce,dx),Ce.close=function(e){function t(r,n){return e.call(Ce,r,function(o){o||mx(),typeof n=="function"&&n.apply(this,arguments)})}return Object.defineProperty(t,nc,{value:e}),t}(Ce.close),Ce.closeSync=function(e){function t(r){e.apply(Ce,arguments),mx()}return Object.defineProperty(t,nc,{value:e}),t}(Ce.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){Qn(Ce[Ye]),require("assert").equal(Ce[Ye].length,0)}));var dx;global[Ye]||hx(global,Ce[Ye]);Hd.exports=Ud(T3(Ce));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!Ce.__patched&&(Hd.exports=Ud(Ce),Ce.__patched=!0);function Ud(e){_3(e),e.gracefulify=Ud,e.createReadStream=V,e.createWriteStream=J;var t=e.readFile;e.readFile=r;function r(P,X,C){return typeof X=="function"&&(C=X,X=null),_(P,X,C);function _(I,B,D,re){return t(I,B,function(oe){oe&&(oe.code==="EMFILE"||oe.code==="ENFILE")?ti([_,[I,B,D],oe,re||Date.now(),Date.now()]):typeof D=="function"&&D.apply(this,arguments)})}}var n=e.writeFile;e.writeFile=o;function o(P,X,C,_){return typeof C=="function"&&(_=C,C=null),I(P,X,C,_);function I(B,D,re,oe,me){return n(B,D,re,function(ae){ae&&(ae.code==="EMFILE"||ae.code==="ENFILE")?ti([I,[B,D,re,oe],ae,me||Date.now(),Date.now()]):typeof oe=="function"&&oe.apply(this,arguments)})}}var i=e.appendFile;i&&(e.appendFile=s);function s(P,X,C,_){return typeof C=="function"&&(_=C,C=null),I(P,X,C,_);function I(B,D,re,oe,me){return i(B,D,re,function(ae){ae&&(ae.code==="EMFILE"||ae.code==="ENFILE")?ti([I,[B,D,re,oe],ae,me||Date.now(),Date.now()]):typeof oe=="function"&&oe.apply(this,arguments)})}}var a=e.copyFile;a&&(e.copyFile=u);function u(P,X,C,_){return typeof C=="function"&&(_=C,C=0),I(P,X,C,_);function I(B,D,re,oe,me){return a(B,D,re,function(ae){ae&&(ae.code==="EMFILE"||ae.code==="ENFILE")?ti([I,[B,D,re,oe],ae,me||Date.now(),Date.now()]):typeof oe=="function"&&oe.apply(this,arguments)})}}var l=e.readdir;e.readdir=f;var c=/^v[0-5]\./;function f(P,X,C){typeof X=="function"&&(C=X,X=null);var _=c.test(process.version)?function(D,re,oe,me){return l(D,I(D,re,oe,me))}:function(D,re,oe,me){return l(D,re,I(D,re,oe,me))};return _(P,X,C);function I(B,D,re,oe){return function(me,ae){me&&(me.code==="EMFILE"||me.code==="ENFILE")?ti([_,[B,D,re],me,oe||Date.now(),Date.now()]):(ae&&ae.sort&&ae.sort(),typeof re=="function"&&re.call(this,me,ae))}}}if(process.version.substr(0,4)==="v0.8"){var p=C3(e);v=p.ReadStream,T=p.WriteStream}var d=e.ReadStream;d&&(v.prototype=Object.create(d.prototype),v.prototype.open=w);var h=e.WriteStream;h&&(T.prototype=Object.create(h.prototype),T.prototype.open=M),Object.defineProperty(e,"ReadStream",{get:function(){return v},set:function(P){v=P},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return T},set:function(P){T=P},enumerable:!0,configurable:!0});var b=v;Object.defineProperty(e,"FileReadStream",{get:function(){return b},set:function(P){b=P},enumerable:!0,configurable:!0});var y=T;Object.defineProperty(e,"FileWriteStream",{get:function(){return y},set:function(P){y=P},enumerable:!0,configurable:!0});function v(P,X){return this instanceof v?(d.apply(this,arguments),this):v.apply(Object.create(v.prototype),arguments)}function w(){var P=this;K(P.path,P.flags,P.mode,function(X,C){X?(P.autoClose&&P.destroy(),P.emit("error",X)):(P.fd=C,P.emit("open",C),P.read())})}function T(P,X){return this instanceof T?(h.apply(this,arguments),this):T.apply(Object.create(T.prototype),arguments)}function M(){var P=this;K(P.path,P.flags,P.mode,function(X,C){X?(P.destroy(),P.emit("error",X)):(P.fd=C,P.emit("open",C))})}function V(P,X){return new e.ReadStream(P,X)}function J(P,X){return new e.WriteStream(P,X)}var G=e.open;e.open=K;function K(P,X,C,_){return typeof C=="function"&&(_=C,C=null),I(P,X,C,_);function I(B,D,re,oe,me){return G(B,D,re,function(ae,E){ae&&(ae.code==="EMFILE"||ae.code==="ENFILE")?ti([I,[B,D,re,oe],ae,me||Date.now(),Date.now()]):typeof oe=="function"&&oe.apply(this,arguments)})}}return e}function ti(e){Qn("ENQUEUE",e[0].name,e[1]),Ce[Ye].push(e),Wd()}var rc;function mx(){for(var e=Date.now(),t=0;t2&&(Ce[Ye][t][3]=e,Ce[Ye][t][4]=e);Wd()}function Wd(){if(clearTimeout(rc),rc=void 0,Ce[Ye].length!==0){var e=Ce[Ye].shift(),t=e[0],r=e[1],n=e[2],o=e[3],i=e[4];if(o===void 0)Qn("RETRY",t.name,r),t.apply(null,r);else if(Date.now()-o>=6e4){Qn("TIMEOUT",t.name,r);var s=r.pop();typeof s=="function"&&s.call(null,n)}else{var a=Date.now()-i,u=Math.max(i-o,1),l=Math.min(u*1.2,100);a>=l?(Qn("RETRY",t.name,r),t.apply(null,r.concat([o]))):Ce[Ye].push(e)}rc===void 0&&(rc=setTimeout(Wd,0))}}});var Kd=g(eo=>{"use strict";var gx=gt().fromCallback,Ht=je(),A3=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchown","lchmod","link","lstat","mkdir","mkdtemp","open","readFile","readdir","readlink","realpath","rename","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter(e=>typeof Ht[e]=="function");Object.keys(Ht).forEach(e=>{e!=="promises"&&(eo[e]=Ht[e])});A3.forEach(e=>{eo[e]=gx(Ht[e])});eo.exists=function(e,t){return typeof t=="function"?Ht.exists(e,t):new Promise(r=>Ht.exists(e,r))};eo.read=function(e,t,r,n,o,i){return typeof i=="function"?Ht.read(e,t,r,n,o,i):new Promise((s,a)=>{Ht.read(e,t,r,n,o,(u,l,c)=>{if(u)return a(u);s({bytesRead:l,buffer:c})})})};eo.write=function(e,t,...r){return typeof r[r.length-1]=="function"?Ht.write(e,t,...r):new Promise((n,o)=>{Ht.write(e,t,...r,(i,s,a)=>{if(i)return o(i);n({bytesWritten:s,buffer:a})})})};typeof Ht.realpath.native=="function"&&(eo.realpath.native=gx(Ht.realpath.native))});var Gd=g((Vne,bx)=>{"use strict";var Vd=require("path");function yx(e){return e=Vd.normalize(Vd.resolve(e)).split(Vd.sep),e.length>0?e[0]:null}var k3=/[<>:"|?*]/;function N3(e){let t=yx(e);return e=e.replace(t,""),k3.test(e)}bx.exports={getRootPath:yx,invalidWin32Path:N3}});var xx=g((Gne,vx)=>{"use strict";var R3=je(),Jd=require("path"),D3=Gd().invalidWin32Path,P3=parseInt("0777",8);function Zd(e,t,r,n){if(typeof t=="function"?(r=t,t={}):(!t||typeof t!="object")&&(t={mode:t}),process.platform==="win32"&&D3(e)){let s=new Error(e+" contains invalid WIN32 path characters.");return s.code="EINVAL",r(s)}let o=t.mode,i=t.fs||R3;o===void 0&&(o=P3&~process.umask()),n||(n=null),r=r||function(){},e=Jd.resolve(e),i.mkdir(e,o,s=>{if(!s)return n=n||e,r(null,n);switch(s.code){case"ENOENT":if(Jd.dirname(e)===e)return r(s);Zd(Jd.dirname(e),t,(a,u)=>{a?r(a,u):Zd(e,t,r,u)});break;default:i.stat(e,(a,u)=>{a||!u.isDirectory()?r(s,n):r(null,n)});break}})}vx.exports=Zd});var Ex=g((Jne,wx)=>{"use strict";var F3=je(),Yd=require("path"),$3=Gd().invalidWin32Path,M3=parseInt("0777",8);function Xd(e,t,r){(!t||typeof t!="object")&&(t={mode:t});let n=t.mode,o=t.fs||F3;if(process.platform==="win32"&&$3(e)){let i=new Error(e+" contains invalid WIN32 path characters.");throw i.code="EINVAL",i}n===void 0&&(n=M3&~process.umask()),r||(r=null),e=Yd.resolve(e);try{o.mkdirSync(e,n),r=r||e}catch(i){if(i.code==="ENOENT"){if(Yd.dirname(e)===e)throw i;r=Xd(Yd.dirname(e),t,r),Xd(e,t,r)}else{let s;try{s=o.statSync(e)}catch{throw i}if(!s.isDirectory())throw i}}return r}wx.exports=Xd});var kt=g((Zne,Sx)=>{"use strict";var j3=gt().fromCallback,Qd=j3(xx()),em=Ex();Sx.exports={mkdirs:Qd,mkdirsSync:em,mkdirp:Qd,mkdirpSync:em,ensureDir:Qd,ensureDirSync:em}});var tm=g((Yne,_x)=>{"use strict";var nt=je(),Ix=require("os"),oc=require("path");function L3(){let e=oc.join("millis-test-sync"+Date.now().toString()+Math.random().toString().slice(2));e=oc.join(Ix.tmpdir(),e);let t=new Date(1435410243862);nt.writeFileSync(e,"https://github.com/jprichardson/node-fs-extra/pull/141");let r=nt.openSync(e,"r+");return nt.futimesSync(r,t,t),nt.closeSync(r),nt.statSync(e).mtime>1435410243e3}function q3(e){let t=oc.join("millis-test"+Date.now().toString()+Math.random().toString().slice(2));t=oc.join(Ix.tmpdir(),t);let r=new Date(1435410243862);nt.writeFile(t,"https://github.com/jprichardson/node-fs-extra/pull/141",n=>{if(n)return e(n);nt.open(t,"r+",(o,i)=>{if(o)return e(o);nt.futimes(i,r,r,s=>{if(s)return e(s);nt.close(i,a=>{if(a)return e(a);nt.stat(t,(u,l)=>{if(u)return e(u);e(null,l.mtime>1435410243e3)})})})})})}function B3(e){if(typeof e=="number")return Math.floor(e/1e3)*1e3;if(e instanceof Date)return new Date(Math.floor(e.getTime()/1e3)*1e3);throw new Error("fs-extra: timeRemoveMillis() unknown parameter type")}function z3(e,t,r,n){nt.open(e,"r+",(o,i)=>{if(o)return n(o);nt.futimes(i,t,r,s=>{nt.close(i,a=>{n&&n(s||a)})})})}function U3(e,t,r){let n=nt.openSync(e,"r+");return nt.futimesSync(n,t,r),nt.closeSync(n)}_x.exports={hasMillisRes:q3,hasMillisResSync:L3,timeRemoveMillis:B3,utimesMillis:z3,utimesMillisSync:U3}});var Ss=g((Xne,Nx)=>{"use strict";var Kt=je(),yt=require("path"),Cx=10,Tx=5,W3=0,nm=process.versions.node.split("."),Ox=Number.parseInt(nm[0],10),Ax=Number.parseInt(nm[1],10),H3=Number.parseInt(nm[2],10);function ws(){if(Ox>Cx)return!0;if(Ox===Cx){if(Ax>Tx)return!0;if(Ax===Tx&&H3>=W3)return!0}return!1}function K3(e,t,r){ws()?Kt.stat(e,{bigint:!0},(n,o)=>{if(n)return r(n);Kt.stat(t,{bigint:!0},(i,s)=>i?i.code==="ENOENT"?r(null,{srcStat:o,destStat:null}):r(i):r(null,{srcStat:o,destStat:s}))}):Kt.stat(e,(n,o)=>{if(n)return r(n);Kt.stat(t,(i,s)=>i?i.code==="ENOENT"?r(null,{srcStat:o,destStat:null}):r(i):r(null,{srcStat:o,destStat:s}))})}function V3(e,t){let r,n;ws()?r=Kt.statSync(e,{bigint:!0}):r=Kt.statSync(e);try{ws()?n=Kt.statSync(t,{bigint:!0}):n=Kt.statSync(t)}catch(o){if(o.code==="ENOENT")return{srcStat:r,destStat:null};throw o}return{srcStat:r,destStat:n}}function G3(e,t,r,n){K3(e,t,(o,i)=>{if(o)return n(o);let{srcStat:s,destStat:a}=i;return a&&a.ino&&a.dev&&a.ino===s.ino&&a.dev===s.dev?n(new Error("Source and destination must not be the same.")):s.isDirectory()&&om(e,t)?n(new Error(Es(e,t,r))):n(null,{srcStat:s,destStat:a})})}function J3(e,t,r){let{srcStat:n,destStat:o}=V3(e,t);if(o&&o.ino&&o.dev&&o.ino===n.ino&&o.dev===n.dev)throw new Error("Source and destination must not be the same.");if(n.isDirectory()&&om(e,t))throw new Error(Es(e,t,r));return{srcStat:n,destStat:o}}function rm(e,t,r,n,o){let i=yt.resolve(yt.dirname(e)),s=yt.resolve(yt.dirname(r));if(s===i||s===yt.parse(s).root)return o();ws()?Kt.stat(s,{bigint:!0},(a,u)=>a?a.code==="ENOENT"?o():o(a):u.ino&&u.dev&&u.ino===t.ino&&u.dev===t.dev?o(new Error(Es(e,r,n))):rm(e,t,s,n,o)):Kt.stat(s,(a,u)=>a?a.code==="ENOENT"?o():o(a):u.ino&&u.dev&&u.ino===t.ino&&u.dev===t.dev?o(new Error(Es(e,r,n))):rm(e,t,s,n,o))}function kx(e,t,r,n){let o=yt.resolve(yt.dirname(e)),i=yt.resolve(yt.dirname(r));if(i===o||i===yt.parse(i).root)return;let s;try{ws()?s=Kt.statSync(i,{bigint:!0}):s=Kt.statSync(i)}catch(a){if(a.code==="ENOENT")return;throw a}if(s.ino&&s.dev&&s.ino===t.ino&&s.dev===t.dev)throw new Error(Es(e,r,n));return kx(e,t,i,n)}function om(e,t){let r=yt.resolve(e).split(yt.sep).filter(o=>o),n=yt.resolve(t).split(yt.sep).filter(o=>o);return r.reduce((o,i,s)=>o&&n[s]===i,!0)}function Es(e,t,r){return`Cannot ${r} '${e}' to a subdirectory of itself, '${t}'.`}Nx.exports={checkPaths:G3,checkPathsSync:J3,checkParentPaths:rm,checkParentPathsSync:kx,isSrcSubdir:om}});var Dx=g((Qne,Rx)=>{"use strict";Rx.exports=function(e){if(typeof Buffer.allocUnsafe=="function")try{return Buffer.allocUnsafe(e)}catch{return new Buffer(e)}return new Buffer(e)}});var jx=g((eoe,Mx)=>{"use strict";var Ie=je(),Is=require("path"),Z3=kt().mkdirsSync,Y3=tm().utimesMillisSync,_s=Ss();function X3(e,t,r){typeof r=="function"&&(r={filter:r}),r=r||{},r.clobber="clobber"in r?!!r.clobber:!0,r.overwrite="overwrite"in r?!!r.overwrite:r.clobber,r.preserveTimestamps&&process.arch==="ia32"&&console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended; + + see https://github.com/jprichardson/node-fs-extra/issues/269`);let{srcStat:n,destStat:o}=_s.checkPathsSync(e,t,"copy");return _s.checkParentPathsSync(e,n,t,"copy"),Q3(o,e,t,r)}function Q3(e,t,r,n){if(n.filter&&!n.filter(t,r))return;let o=Is.dirname(r);return Ie.existsSync(o)||Z3(o),Px(e,t,r,n)}function Px(e,t,r,n){if(!(n.filter&&!n.filter(t,r)))return e5(e,t,r,n)}function e5(e,t,r,n){let i=(n.dereference?Ie.statSync:Ie.lstatSync)(t);if(i.isDirectory())return o5(i,e,t,r,n);if(i.isFile()||i.isCharacterDevice()||i.isBlockDevice())return t5(i,e,t,r,n);if(i.isSymbolicLink())return a5(e,t,r,n)}function t5(e,t,r,n,o){return t?r5(e,r,n,o):Fx(e,r,n,o)}function r5(e,t,r,n){if(n.overwrite)return Ie.unlinkSync(r),Fx(e,t,r,n);if(n.errorOnExist)throw new Error(`'${r}' already exists`)}function Fx(e,t,r,n){return typeof Ie.copyFileSync=="function"?(Ie.copyFileSync(t,r),Ie.chmodSync(r,e.mode),n.preserveTimestamps?Y3(r,e.atime,e.mtime):void 0):n5(e,t,r,n)}function n5(e,t,r,n){let i=Dx()(65536),s=Ie.openSync(t,"r"),a=Ie.openSync(r,"w",e.mode),u=0;for(;us5(n,e,t,r))}function s5(e,t,r,n){let o=Is.join(t,e),i=Is.join(r,e),{destStat:s}=_s.checkPathsSync(o,i,"copy");return Px(s,o,i,n)}function a5(e,t,r,n){let o=Ie.readlinkSync(t);if(n.dereference&&(o=Is.resolve(process.cwd(),o)),e){let i;try{i=Ie.readlinkSync(r)}catch(s){if(s.code==="EINVAL"||s.code==="UNKNOWN")return Ie.symlinkSync(o,r);throw s}if(n.dereference&&(i=Is.resolve(process.cwd(),i)),_s.isSrcSubdir(o,i))throw new Error(`Cannot copy '${o}' to a subdirectory of itself, '${i}'.`);if(Ie.statSync(r).isDirectory()&&_s.isSrcSubdir(i,o))throw new Error(`Cannot overwrite '${i}' with '${o}'.`);return u5(o,r)}else return Ie.symlinkSync(o,r)}function u5(e,t){return Ie.unlinkSync(t),Ie.symlinkSync(e,t)}Mx.exports=X3});var im=g((toe,Lx)=>{"use strict";Lx.exports={copySync:jx()}});var xr=g((roe,Bx)=>{"use strict";var c5=gt().fromPromise,qx=Kd();function l5(e){return qx.access(e).then(()=>!0).catch(()=>!1)}Bx.exports={pathExists:c5(l5),pathExistsSync:qx.existsSync}});var Zx=g((noe,Jx)=>{"use strict";var Xe=je(),Cs=require("path"),f5=kt().mkdirs,p5=xr().pathExists,d5=tm().utimesMillis,Ts=Ss();function m5(e,t,r,n){typeof r=="function"&&!n?(n=r,r={}):typeof r=="function"&&(r={filter:r}),n=n||function(){},r=r||{},r.clobber="clobber"in r?!!r.clobber:!0,r.overwrite="overwrite"in r?!!r.overwrite:r.clobber,r.preserveTimestamps&&process.arch==="ia32"&&console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended; + + see https://github.com/jprichardson/node-fs-extra/issues/269`),Ts.checkPaths(e,t,"copy",(o,i)=>{if(o)return n(o);let{srcStat:s,destStat:a}=i;Ts.checkParentPaths(e,s,t,"copy",u=>u?n(u):r.filter?Wx(zx,a,e,t,r,n):zx(a,e,t,r,n))})}function zx(e,t,r,n,o){let i=Cs.dirname(r);p5(i,(s,a)=>{if(s)return o(s);if(a)return sm(e,t,r,n,o);f5(i,u=>u?o(u):sm(e,t,r,n,o))})}function Wx(e,t,r,n,o,i){Promise.resolve(o.filter(r,n)).then(s=>s?e(t,r,n,o,i):i(),s=>i(s))}function sm(e,t,r,n,o){return n.filter?Wx(Ux,e,t,r,n,o):Ux(e,t,r,n,o)}function Ux(e,t,r,n,o){(n.dereference?Xe.stat:Xe.lstat)(t,(s,a)=>{if(s)return o(s);if(a.isDirectory())return b5(a,e,t,r,n,o);if(a.isFile()||a.isCharacterDevice()||a.isBlockDevice())return h5(a,e,t,r,n,o);if(a.isSymbolicLink())return w5(e,t,r,n,o)})}function h5(e,t,r,n,o,i){return t?g5(e,r,n,o,i):Hx(e,r,n,o,i)}function g5(e,t,r,n,o){if(n.overwrite)Xe.unlink(r,i=>i?o(i):Hx(e,t,r,n,o));else return n.errorOnExist?o(new Error(`'${r}' already exists`)):o()}function Hx(e,t,r,n,o){return typeof Xe.copyFile=="function"?Xe.copyFile(t,r,i=>i?o(i):Kx(e,r,n,o)):y5(e,t,r,n,o)}function y5(e,t,r,n,o){let i=Xe.createReadStream(t);i.on("error",s=>o(s)).once("open",()=>{let s=Xe.createWriteStream(r,{mode:e.mode});s.on("error",a=>o(a)).on("open",()=>i.pipe(s)).once("close",()=>Kx(e,r,n,o))})}function Kx(e,t,r,n){Xe.chmod(t,e.mode,o=>o?n(o):r.preserveTimestamps?d5(t,e.atime,e.mtime,n):n())}function b5(e,t,r,n,o,i){return t?t&&!t.isDirectory()?i(new Error(`Cannot overwrite non-directory '${n}' with directory '${r}'.`)):Vx(r,n,o,i):v5(e,r,n,o,i)}function v5(e,t,r,n,o){Xe.mkdir(r,i=>{if(i)return o(i);Vx(t,r,n,s=>s?o(s):Xe.chmod(r,e.mode,o))})}function Vx(e,t,r,n){Xe.readdir(e,(o,i)=>o?n(o):Gx(i,e,t,r,n))}function Gx(e,t,r,n,o){let i=e.pop();return i?x5(e,i,t,r,n,o):o()}function x5(e,t,r,n,o,i){let s=Cs.join(r,t),a=Cs.join(n,t);Ts.checkPaths(s,a,"copy",(u,l)=>{if(u)return i(u);let{destStat:c}=l;sm(c,s,a,o,f=>f?i(f):Gx(e,r,n,o,i))})}function w5(e,t,r,n,o){Xe.readlink(t,(i,s)=>{if(i)return o(i);if(n.dereference&&(s=Cs.resolve(process.cwd(),s)),e)Xe.readlink(r,(a,u)=>a?a.code==="EINVAL"||a.code==="UNKNOWN"?Xe.symlink(s,r,o):o(a):(n.dereference&&(u=Cs.resolve(process.cwd(),u)),Ts.isSrcSubdir(s,u)?o(new Error(`Cannot copy '${s}' to a subdirectory of itself, '${u}'.`)):e.isDirectory()&&Ts.isSrcSubdir(u,s)?o(new Error(`Cannot overwrite '${u}' with '${s}'.`)):E5(s,r,o)));else return Xe.symlink(s,r,o)})}function E5(e,t,r){Xe.unlink(t,n=>n?r(n):Xe.symlink(e,t,r))}Jx.exports=m5});var am=g((ooe,Yx)=>{"use strict";var S5=gt().fromCallback;Yx.exports={copy:S5(Zx())}});var sw=g((ioe,iw)=>{"use strict";var Xx=je(),rw=require("path"),pe=require("assert"),Os=process.platform==="win32";function nw(e){["unlink","chmod","stat","lstat","rmdir","readdir"].forEach(r=>{e[r]=e[r]||Xx[r],r=r+"Sync",e[r]=e[r]||Xx[r]}),e.maxBusyTries=e.maxBusyTries||3}function um(e,t,r){let n=0;typeof t=="function"&&(r=t,t={}),pe(e,"rimraf: missing path"),pe.strictEqual(typeof e,"string","rimraf: path should be a string"),pe.strictEqual(typeof r,"function","rimraf: callback function required"),pe(t,"rimraf: invalid options argument provided"),pe.strictEqual(typeof t,"object","rimraf: options should be object"),nw(t),Qx(e,t,function o(i){if(i){if((i.code==="EBUSY"||i.code==="ENOTEMPTY"||i.code==="EPERM")&&nQx(e,t,o),s)}i.code==="ENOENT"&&(i=null)}r(i)})}function Qx(e,t,r){pe(e),pe(t),pe(typeof r=="function"),t.lstat(e,(n,o)=>{if(n&&n.code==="ENOENT")return r(null);if(n&&n.code==="EPERM"&&Os)return ew(e,t,n,r);if(o&&o.isDirectory())return ic(e,t,n,r);t.unlink(e,i=>{if(i){if(i.code==="ENOENT")return r(null);if(i.code==="EPERM")return Os?ew(e,t,i,r):ic(e,t,i,r);if(i.code==="EISDIR")return ic(e,t,i,r)}return r(i)})})}function ew(e,t,r,n){pe(e),pe(t),pe(typeof n=="function"),r&&pe(r instanceof Error),t.chmod(e,438,o=>{o?n(o.code==="ENOENT"?null:r):t.stat(e,(i,s)=>{i?n(i.code==="ENOENT"?null:r):s.isDirectory()?ic(e,t,r,n):t.unlink(e,n)})})}function tw(e,t,r){let n;pe(e),pe(t),r&&pe(r instanceof Error);try{t.chmodSync(e,438)}catch(o){if(o.code==="ENOENT")return;throw r}try{n=t.statSync(e)}catch(o){if(o.code==="ENOENT")return;throw r}n.isDirectory()?sc(e,t,r):t.unlinkSync(e)}function ic(e,t,r,n){pe(e),pe(t),r&&pe(r instanceof Error),pe(typeof n=="function"),t.rmdir(e,o=>{o&&(o.code==="ENOTEMPTY"||o.code==="EEXIST"||o.code==="EPERM")?I5(e,t,n):o&&o.code==="ENOTDIR"?n(r):n(o)})}function I5(e,t,r){pe(e),pe(t),pe(typeof r=="function"),t.readdir(e,(n,o)=>{if(n)return r(n);let i=o.length,s;if(i===0)return t.rmdir(e,r);o.forEach(a=>{um(rw.join(e,a),t,u=>{if(!s){if(u)return r(s=u);--i===0&&t.rmdir(e,r)}})})})}function ow(e,t){let r;t=t||{},nw(t),pe(e,"rimraf: missing path"),pe.strictEqual(typeof e,"string","rimraf: path should be a string"),pe(t,"rimraf: missing options"),pe.strictEqual(typeof t,"object","rimraf: options should be object");try{r=t.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;n.code==="EPERM"&&Os&&tw(e,t,n)}try{r&&r.isDirectory()?sc(e,t,null):t.unlinkSync(e)}catch(n){if(n.code==="ENOENT")return;if(n.code==="EPERM")return Os?tw(e,t,n):sc(e,t,n);if(n.code!=="EISDIR")throw n;sc(e,t,n)}}function sc(e,t,r){pe(e),pe(t),r&&pe(r instanceof Error);try{t.rmdirSync(e)}catch(n){if(n.code==="ENOTDIR")throw r;if(n.code==="ENOTEMPTY"||n.code==="EEXIST"||n.code==="EPERM")_5(e,t);else if(n.code!=="ENOENT")throw n}}function _5(e,t){if(pe(e),pe(t),t.readdirSync(e).forEach(r=>ow(rw.join(e,r),t)),Os){let r=Date.now();do try{return t.rmdirSync(e,t)}catch{}while(Date.now()-r<500)}else return t.rmdirSync(e,t)}iw.exports=um;um.sync=ow});var As=g((soe,uw)=>{"use strict";var C5=gt().fromCallback,aw=sw();uw.exports={remove:C5(aw),removeSync:aw.sync}});var gw=g((aoe,hw)=>{"use strict";var T5=gt().fromCallback,fw=je(),pw=require("path"),dw=kt(),mw=As(),cw=T5(function(t,r){r=r||function(){},fw.readdir(t,(n,o)=>{if(n)return dw.mkdirs(t,r);o=o.map(s=>pw.join(t,s)),i();function i(){let s=o.pop();if(!s)return r();mw.remove(s,a=>{if(a)return r(a);i()})}})});function lw(e){let t;try{t=fw.readdirSync(e)}catch{return dw.mkdirsSync(e)}t.forEach(r=>{r=pw.join(e,r),mw.removeSync(r)})}hw.exports={emptyDirSync:lw,emptydirSync:lw,emptyDir:cw,emptydir:cw}});var xw=g((uoe,vw)=>{"use strict";var O5=gt().fromCallback,yw=require("path"),ks=je(),bw=kt(),A5=xr().pathExists;function k5(e,t){function r(){ks.writeFile(e,"",n=>{if(n)return t(n);t()})}ks.stat(e,(n,o)=>{if(!n&&o.isFile())return t();let i=yw.dirname(e);A5(i,(s,a)=>{if(s)return t(s);if(a)return r();bw.mkdirs(i,u=>{if(u)return t(u);r()})})})}function N5(e){let t;try{t=ks.statSync(e)}catch{}if(t&&t.isFile())return;let r=yw.dirname(e);ks.existsSync(r)||bw.mkdirsSync(r),ks.writeFileSync(e,"")}vw.exports={createFile:O5(k5),createFileSync:N5}});var _w=g((coe,Iw)=>{"use strict";var R5=gt().fromCallback,Ew=require("path"),to=je(),Sw=kt(),ww=xr().pathExists;function D5(e,t,r){function n(o,i){to.link(o,i,s=>{if(s)return r(s);r(null)})}ww(t,(o,i)=>{if(o)return r(o);if(i)return r(null);to.lstat(e,s=>{if(s)return s.message=s.message.replace("lstat","ensureLink"),r(s);let a=Ew.dirname(t);ww(a,(u,l)=>{if(u)return r(u);if(l)return n(e,t);Sw.mkdirs(a,c=>{if(c)return r(c);n(e,t)})})})})}function P5(e,t){if(to.existsSync(t))return;try{to.lstatSync(e)}catch(i){throw i.message=i.message.replace("lstat","ensureLink"),i}let n=Ew.dirname(t);return to.existsSync(n)||Sw.mkdirsSync(n),to.linkSync(e,t)}Iw.exports={createLink:R5(D5),createLinkSync:P5}});var Tw=g((loe,Cw)=>{"use strict";var gn=require("path"),Ns=je(),F5=xr().pathExists;function $5(e,t,r){if(gn.isAbsolute(e))return Ns.lstat(e,n=>n?(n.message=n.message.replace("lstat","ensureSymlink"),r(n)):r(null,{toCwd:e,toDst:e}));{let n=gn.dirname(t),o=gn.join(n,e);return F5(o,(i,s)=>i?r(i):s?r(null,{toCwd:o,toDst:e}):Ns.lstat(e,a=>a?(a.message=a.message.replace("lstat","ensureSymlink"),r(a)):r(null,{toCwd:e,toDst:gn.relative(n,e)})))}}function M5(e,t){let r;if(gn.isAbsolute(e)){if(r=Ns.existsSync(e),!r)throw new Error("absolute srcpath does not exist");return{toCwd:e,toDst:e}}else{let n=gn.dirname(t),o=gn.join(n,e);if(r=Ns.existsSync(o),r)return{toCwd:o,toDst:e};if(r=Ns.existsSync(e),!r)throw new Error("relative srcpath does not exist");return{toCwd:e,toDst:gn.relative(n,e)}}}Cw.exports={symlinkPaths:$5,symlinkPathsSync:M5}});var kw=g((foe,Aw)=>{"use strict";var Ow=je();function j5(e,t,r){if(r=typeof t=="function"?t:r,t=typeof t=="function"?!1:t,t)return r(null,t);Ow.lstat(e,(n,o)=>{if(n)return r(null,"file");t=o&&o.isDirectory()?"dir":"file",r(null,t)})}function L5(e,t){let r;if(t)return t;try{r=Ow.lstatSync(e)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}Aw.exports={symlinkType:j5,symlinkTypeSync:L5}});var Mw=g((poe,$w)=>{"use strict";var q5=gt().fromCallback,Rw=require("path"),ri=je(),Dw=kt(),B5=Dw.mkdirs,z5=Dw.mkdirsSync,Pw=Tw(),U5=Pw.symlinkPaths,W5=Pw.symlinkPathsSync,Fw=kw(),H5=Fw.symlinkType,K5=Fw.symlinkTypeSync,Nw=xr().pathExists;function V5(e,t,r,n){n=typeof r=="function"?r:n,r=typeof r=="function"?!1:r,Nw(t,(o,i)=>{if(o)return n(o);if(i)return n(null);U5(e,t,(s,a)=>{if(s)return n(s);e=a.toDst,H5(a.toCwd,r,(u,l)=>{if(u)return n(u);let c=Rw.dirname(t);Nw(c,(f,p)=>{if(f)return n(f);if(p)return ri.symlink(e,t,l,n);B5(c,d=>{if(d)return n(d);ri.symlink(e,t,l,n)})})})})})}function G5(e,t,r){if(ri.existsSync(t))return;let o=W5(e,t);e=o.toDst,r=K5(o.toCwd,r);let i=Rw.dirname(t);return ri.existsSync(i)||z5(i),ri.symlinkSync(e,t,r)}$w.exports={createSymlink:q5(V5),createSymlinkSync:G5}});var Lw=g((doe,jw)=>{"use strict";var ac=xw(),uc=_w(),cc=Mw();jw.exports={createFile:ac.createFile,createFileSync:ac.createFileSync,ensureFile:ac.createFile,ensureFileSync:ac.createFileSync,createLink:uc.createLink,createLinkSync:uc.createLinkSync,ensureLink:uc.createLink,ensureLinkSync:uc.createLinkSync,createSymlink:cc.createSymlink,createSymlinkSync:cc.createSymlinkSync,ensureSymlink:cc.createSymlink,ensureSymlinkSync:cc.createSymlinkSync}});var Uw=g((moe,zw)=>{var ni;try{ni=je()}catch{ni=require("fs")}function J5(e,t,r){r==null&&(r=t,t={}),typeof t=="string"&&(t={encoding:t}),t=t||{};var n=t.fs||ni,o=!0;"throws"in t&&(o=t.throws),n.readFile(e,t,function(i,s){if(i)return r(i);s=Bw(s);var a;try{a=JSON.parse(s,t?t.reviver:null)}catch(u){return o?(u.message=e+": "+u.message,r(u)):r(null,null)}r(null,a)})}function Z5(e,t){t=t||{},typeof t=="string"&&(t={encoding:t});var r=t.fs||ni,n=!0;"throws"in t&&(n=t.throws);try{var o=r.readFileSync(e,t);return o=Bw(o),JSON.parse(o,t.reviver)}catch(i){if(n)throw i.message=e+": "+i.message,i;return null}}function qw(e,t){var r,n=` +`;typeof t=="object"&&t!==null&&(t.spaces&&(r=t.spaces),t.EOL&&(n=t.EOL));var o=JSON.stringify(e,t?t.replacer:null,r);return o.replace(/\n/g,n)+n}function Y5(e,t,r,n){n==null&&(n=r,r={}),r=r||{};var o=r.fs||ni,i="";try{i=qw(t,r)}catch(s){n&&n(s,null);return}o.writeFile(e,i,r,n)}function X5(e,t,r){r=r||{};var n=r.fs||ni,o=qw(t,r);return n.writeFileSync(e,o,r)}function Bw(e){return Buffer.isBuffer(e)&&(e=e.toString("utf8")),e=e.replace(/^\uFEFF/,""),e}var Q5={readFile:J5,readFileSync:Z5,writeFile:Y5,writeFileSync:X5};zw.exports=Q5});var fc=g((hoe,Hw)=>{"use strict";var Ww=gt().fromCallback,lc=Uw();Hw.exports={readJson:Ww(lc.readFile),readJsonSync:lc.readFileSync,writeJson:Ww(lc.writeFile),writeJsonSync:lc.writeFileSync}});var Gw=g((goe,Vw)=>{"use strict";var eL=require("path"),tL=kt(),rL=xr().pathExists,Kw=fc();function nL(e,t,r,n){typeof r=="function"&&(n=r,r={});let o=eL.dirname(e);rL(o,(i,s)=>{if(i)return n(i);if(s)return Kw.writeJson(e,t,r,n);tL.mkdirs(o,a=>{if(a)return n(a);Kw.writeJson(e,t,r,n)})})}Vw.exports=nL});var Zw=g((yoe,Jw)=>{"use strict";var oL=je(),iL=require("path"),sL=kt(),aL=fc();function uL(e,t,r){let n=iL.dirname(e);oL.existsSync(n)||sL.mkdirsSync(n),aL.writeJsonSync(e,t,r)}Jw.exports=uL});var Xw=g((boe,Yw)=>{"use strict";var cL=gt().fromCallback,ut=fc();ut.outputJson=cL(Gw());ut.outputJsonSync=Zw();ut.outputJSON=ut.outputJson;ut.outputJSONSync=ut.outputJsonSync;ut.writeJSON=ut.writeJson;ut.writeJSONSync=ut.writeJsonSync;ut.readJSON=ut.readJson;ut.readJSONSync=ut.readJsonSync;Yw.exports=ut});var oE=g((voe,nE)=>{"use strict";var tE=je(),lL=require("path"),fL=im().copySync,rE=As().removeSync,pL=kt().mkdirpSync,Qw=Ss();function dL(e,t,r){r=r||{};let n=r.overwrite||r.clobber||!1,{srcStat:o}=Qw.checkPathsSync(e,t,"move");return Qw.checkParentPathsSync(e,o,t,"move"),pL(lL.dirname(t)),mL(e,t,n)}function mL(e,t,r){if(r)return rE(t),eE(e,t,r);if(tE.existsSync(t))throw new Error("dest already exists.");return eE(e,t,r)}function eE(e,t,r){try{tE.renameSync(e,t)}catch(n){if(n.code!=="EXDEV")throw n;return hL(e,t,r)}}function hL(e,t,r){return fL(e,t,{overwrite:r,errorOnExist:!0}),rE(e)}nE.exports=dL});var sE=g((xoe,iE)=>{"use strict";iE.exports={moveSync:oE()}});var fE=g((woe,lE)=>{"use strict";var gL=je(),yL=require("path"),bL=am().copy,cE=As().remove,vL=kt().mkdirp,xL=xr().pathExists,aE=Ss();function wL(e,t,r,n){typeof r=="function"&&(n=r,r={});let o=r.overwrite||r.clobber||!1;aE.checkPaths(e,t,"move",(i,s)=>{if(i)return n(i);let{srcStat:a}=s;aE.checkParentPaths(e,a,t,"move",u=>{if(u)return n(u);vL(yL.dirname(t),l=>l?n(l):EL(e,t,o,n))})})}function EL(e,t,r,n){if(r)return cE(t,o=>o?n(o):uE(e,t,r,n));xL(t,(o,i)=>o?n(o):i?n(new Error("dest already exists.")):uE(e,t,r,n))}function uE(e,t,r,n){gL.rename(e,t,o=>o?o.code!=="EXDEV"?n(o):SL(e,t,r,n):n())}function SL(e,t,r,n){bL(e,t,{overwrite:r,errorOnExist:!0},i=>i?n(i):cE(e,n))}lE.exports=wL});var dE=g((Eoe,pE)=>{"use strict";var IL=gt().fromCallback;pE.exports={move:IL(fE())}});var yE=g((Soe,gE)=>{"use strict";var _L=gt().fromCallback,Rs=je(),mE=require("path"),hE=kt(),CL=xr().pathExists;function TL(e,t,r,n){typeof r=="function"&&(n=r,r="utf8");let o=mE.dirname(e);CL(o,(i,s)=>{if(i)return n(i);if(s)return Rs.writeFile(e,t,r,n);hE.mkdirs(o,a=>{if(a)return n(a);Rs.writeFile(e,t,r,n)})})}function OL(e,...t){let r=mE.dirname(e);if(Rs.existsSync(r))return Rs.writeFileSync(e,...t);hE.mkdirsSync(r),Rs.writeFileSync(e,...t)}gE.exports={outputFile:_L(TL),outputFileSync:OL}});var lm=g((Ioe,cm)=>{"use strict";cm.exports=Object.assign({},Kd(),im(),am(),gw(),Lw(),Xw(),kt(),sE(),dE(),yE(),xr(),As());var bE=require("fs");Object.getOwnPropertyDescriptor(bE,"promises")&&Object.defineProperty(cm.exports,"promises",{get(){return bE.promises}})});var xE=g((_oe,vE)=>{vE.exports=()=>new Date});var EE=g((Coe,wE)=>{var AL=Ue()("streamroller:fileNameFormatter"),kL=require("path"),NL=".gz",RL=".";wE.exports=({file:e,keepFileExt:t,needsIndex:r,alwaysIncludeDate:n,compress:o,fileNameSep:i})=>{let s=i||RL,a=kL.join(e.dir,e.name),u=d=>d+e.ext,l=(d,h,b)=>(r||!b)&&h?d+s+h:d,c=(d,h,b)=>(h>0||n)&&b?d+s+b:d,f=(d,h)=>h&&o?d+NL:d,p=t?[c,l,u,f]:[u,c,l,f];return({date:d,index:h})=>(AL(`_formatFileName: date=${d}, index=${h}`),p.reduce((b,y)=>y(b,h,d),a))}});var CE=g((Toe,_E)=>{var ro=Ue()("streamroller:fileNameParser"),SE=".gz",IE=Ju(),DL=".";_E.exports=({file:e,keepFileExt:t,pattern:r,fileNameSep:n})=>{let o=n||DL,i=(p,d)=>p.endsWith(SE)?(ro("it is gzipped"),d.isCompressed=!0,p.slice(0,-1*SE.length)):p,s="__NOT_MATCHING__",f=[i,t?p=>p.startsWith(e.name)&&p.endsWith(e.ext)?(ro("it starts and ends with the right things"),p.slice(e.name.length+1,-1*e.ext.length)):s:p=>p.startsWith(e.base)?(ro("it starts with the right things"),p.slice(e.base.length+1)):s,r?(p,d)=>{let h=p.split(o),b=h[h.length-1];ro("items: ",h,", indexStr: ",b);let y=p;b!==void 0&&b.match(/^\d+$/)?(y=p.slice(0,-1*(b.length+1)),ro(`dateStr is ${y}`),r&&!y&&(y=b,b="0")):b="0";try{let v=IE.parse(r,y,new Date(0,0));return IE.asString(r,v)!==y?p:(d.index=parseInt(b,10),d.date=y,d.timestamp=v.getTime(),"")}catch(v){return ro(`Problem parsing ${y} as ${r}, error was: `,v),p}}:(p,d)=>p.match(/^\d+$/)?(ro("it has an index"),d.index=parseInt(p,10),""):p];return p=>{let d={filename:p,index:0,isCompressed:!1};return f.reduce((b,y)=>y(b,d),p)?null:d}}});var OE=g((Ooe,TE)=>{var bt=Ue()("streamroller:moveAndMaybeCompressFile"),qr=lm(),PL=require("zlib"),FL=function(e){let t={mode:parseInt("0600",8),compress:!1},r=Object.assign({},t,e);return bt(`_parseOption: moveAndMaybeCompressFile called with option=${JSON.stringify(r)}`),r},$L=async(e,t,r)=>{if(r=FL(r),e===t){bt("moveAndMaybeCompressFile: source and target are the same, not doing anything");return}if(await qr.pathExists(e))if(bt(`moveAndMaybeCompressFile: moving file from ${e} to ${t} ${r.compress?"with":"without"} compress`),r.compress)await new Promise((n,o)=>{let i=!1,s=qr.createWriteStream(t,{mode:r.mode,flags:"wx"}).on("open",()=>{i=!0;let a=qr.createReadStream(e).on("open",()=>{a.pipe(PL.createGzip()).pipe(s)}).on("error",u=>{bt(`moveAndMaybeCompressFile: error reading ${e}`,u),s.destroy(u)})}).on("finish",()=>{bt(`moveAndMaybeCompressFile: finished compressing ${t}, deleting ${e}`),qr.unlink(e).then(n).catch(a=>{bt(`moveAndMaybeCompressFile: error deleting ${e}, truncating instead`,a),qr.truncate(e).then(n).catch(u=>{bt(`moveAndMaybeCompressFile: error truncating ${e}`,u),o(u)})})}).on("error",a=>{i?(bt(`moveAndMaybeCompressFile: error writing ${t}, deleting`,a),qr.unlink(t).then(()=>{o(a)}).catch(u=>{bt(`moveAndMaybeCompressFile: error deleting ${t}`,u),o(u)})):(bt(`moveAndMaybeCompressFile: error creating ${t}`,a),o(a))})}).catch(()=>{});else{bt(`moveAndMaybeCompressFile: renaming ${e} to ${t}`);try{await qr.move(e,t,{overwrite:!0})}catch(n){if(bt(`moveAndMaybeCompressFile: error renaming ${e} to ${t}`,n),n.code!=="ENOENT"){bt("moveAndMaybeCompressFile: trying copy+truncate instead");try{await qr.copy(e,t,{overwrite:!0}),await qr.truncate(e)}catch(o){bt("moveAndMaybeCompressFile: error copy+truncate",o)}}}}};TE.exports=$L});var mc=g((Aoe,AE)=>{var Nt=Ue()("streamroller:RollingFileWriteStream"),oo=lm(),no=require("path"),ML=require("os"),pc=xE(),dc=Ju(),{Writable:jL}=require("stream"),LL=EE(),qL=CE(),BL=OE(),zL=e=>(Nt(`deleteFiles: files to delete: ${e}`),Promise.all(e.map(t=>oo.unlink(t).catch(r=>{Nt(`deleteFiles: error when unlinking ${t}, ignoring. Error was ${r}`)})))),fm=class extends jL{constructor(t,r){if(Nt(`constructor: creating RollingFileWriteStream. path=${t}`),typeof t!="string"||t.length===0)throw new Error(`Invalid filename: ${t}`);if(t.endsWith(no.sep))throw new Error(`Filename is a directory: ${t}`);t.indexOf(`~${no.sep}`)===0&&(t=t.replace("~",ML.homedir())),super(r),this.options=this._parseOption(r),this.fileObject=no.parse(t),this.fileObject.dir===""&&(this.fileObject=no.parse(no.join(process.cwd(),t))),this.fileFormatter=LL({file:this.fileObject,alwaysIncludeDate:this.options.alwaysIncludePattern,needsIndex:this.options.maxSize 0`);if(n.numBackups||n.numBackups===0){if(n.numBackups<0)throw new Error(`options.numBackups (${n.numBackups}) should be >= 0`);if(n.numBackups>=Number.MAX_SAFE_INTEGER)throw new Error(`options.numBackups (${n.numBackups}) should be < Number.MAX_SAFE_INTEGER`);n.numToKeep=n.numBackups+1}else if(n.numToKeep<=0)throw new Error(`options.numToKeep (${n.numToKeep}) should be > 0`);return Nt(`_parseOption: creating stream with option=${JSON.stringify(n)}`),n}_final(t){this.currentFileStream.end("",this.options.encoding,t)}_write(t,r,n){this._shouldRoll().then(()=>{Nt(`_write: writing chunk. file=${this.currentFileStream.path} state=${JSON.stringify(this.state)} chunk=${t}`),this.currentFileStream.write(t,r,o=>{this.state.currentSize+=t.length,n(o)})})}async _shouldRoll(){(this._dateChanged()||this._tooBig())&&(Nt(`_shouldRoll: rolling because dateChanged? ${this._dateChanged()} or tooBig? ${this._tooBig()}`),await this._roll())}_dateChanged(){return this.state.currentDate&&this.state.currentDate!==dc(this.options.pattern,pc())}_tooBig(){return this.state.currentSize>=this.options.maxSize}_roll(){return Nt("_roll: closing the current stream"),new Promise((t,r)=>{this.currentFileStream.end("",this.options.encoding,()=>{this._moveOldFiles().then(t).catch(r)})})}async _moveOldFiles(){let t=await this._getExistingFiles(),r=this.state.currentDate?t.filter(n=>n.date===this.state.currentDate):t;for(let n=r.length;n>=0;n--){Nt(`_moveOldFiles: i = ${n}`);let o=this.fileFormatter({date:this.state.currentDate,index:n}),i=this.fileFormatter({date:this.state.currentDate,index:n+1}),s={compress:this.options.compress&&n===0,mode:this.options.mode};await BL(o,i,s)}this.state.currentSize=0,this.state.currentDate=this.state.currentDate?dc(this.options.pattern,pc()):null,Nt(`_moveOldFiles: finished rolling files. state=${JSON.stringify(this.state)}`),this._renewWriteStream(),await new Promise((n,o)=>{this.currentFileStream.write("","utf8",()=>{this._clean().then(n).catch(o)})})}async _getExistingFiles(){let t=await oo.readdir(this.fileObject.dir).catch(()=>[]);Nt(`_getExistingFiles: files=${t}`);let r=t.map(o=>this.fileNameParser(o)).filter(o=>o),n=o=>(o.timestamp?o.timestamp:pc().getTime())-o.index;return r.sort((o,i)=>n(o)-n(i)),r}_renewWriteStream(){let t=this.fileFormatter({date:this.state.currentDate,index:0}),r=i=>{try{return oo.mkdirSync(i,{recursive:!0})}catch(s){if(s.code==="ENOENT")return r(no.dirname(i)),r(i);if(s.code!=="EEXIST"&&s.code!=="EROFS")throw s;try{if(oo.statSync(i).isDirectory())return i;throw s}catch{throw s}}};r(this.fileObject.dir);let n={flags:this.options.flags,encoding:this.options.encoding,mode:this.options.mode},o=function(i,s,a){return i[a]=i[s],delete i[s],i};oo.appendFileSync(t,"",o({...n},"flags","flag")),this.currentFileStream=oo.createWriteStream(t,n),this.currentFileStream.on("error",i=>{this.emit("error",i)})}async _clean(){let t=await this._getExistingFiles();if(Nt(`_clean: numToKeep = ${this.options.numToKeep}, existingFiles = ${t.length}`),Nt("_clean: existing files are: ",t),this._tooManyFiles(t.length)){let r=t.slice(0,t.length-this.options.numToKeep).map(n=>no.format({dir:this.fileObject.dir,base:n.filename}));await zL(r)}}_tooManyFiles(t){return this.options.numToKeep>0&&t>this.options.numToKeep}};AE.exports=fm});var NE=g((koe,kE)=>{var UL=mc(),pm=class extends UL{constructor(t,r,n,o){o||(o={}),r&&(o.maxSize=r),!o.numBackups&&o.numBackups!==0&&(!n&&n!==0&&(n=1),o.numBackups=n),super(t,o),this.backups=o.numBackups,this.size=this.options.maxSize}get theStream(){return this.currentFileStream}};kE.exports=pm});var DE=g((Noe,RE)=>{var WL=mc(),dm=class extends WL{constructor(t,r,n){r&&typeof r=="object"&&(n=r,r=null),n||(n={}),r||(r="yyyy-MM-dd"),n.pattern=r,!n.numBackups&&n.numBackups!==0?(!n.daysToKeep&&n.daysToKeep!==0?n.daysToKeep=1:process.emitWarning("options.daysToKeep is deprecated due to the confusion it causes when used together with file size rolling. Please use options.numBackups instead.","DeprecationWarning","streamroller-DEP0001"),n.numBackups=n.daysToKeep):n.daysToKeep=n.numBackups,super(t,n),this.mode=this.options.mode}get theStream(){return this.currentFileStream}};RE.exports=dm});var mm=g((Roe,PE)=>{PE.exports={RollingFileWriteStream:mc(),RollingFileStream:NE(),DateRollingFileStream:DE()}});var LE=g((Doe,jE)=>{var FE=Ue()("log4js:file"),hm=require("path"),HL=mm(),ME=require("os"),KL=ME.EOL,hc=!1,gc=new Set;function $E(){gc.forEach(e=>{e.sighupHandler()})}function VL(e,t,r,n,o,i){if(typeof e!="string"||e.length===0)throw new Error(`Invalid filename: ${e}`);if(e.endsWith(hm.sep))throw new Error(`Filename is a directory: ${e}`);e=e.replace(new RegExp(`^~(?=${hm.sep}.+)`),ME.homedir()),e=hm.normalize(e),n=!n&&n!==0?5:n,FE("Creating file appender (",e,", ",r,", ",n,", ",o,", ",i,")");function s(l,c,f,p){let d=new HL.RollingFileStream(l,c,f,p);return d.on("error",h=>{console.error("log4js.fileAppender - Writing to file %s, error happened ",l,h)}),d.on("drain",()=>{process.emit("log4js:pause",!1)}),d}let a=s(e,r,n,o),u=function(l){if(a.writable){if(o.removeColor===!0){let c=/\x1b[[0-9;]*m/g;l.data=l.data.map(f=>typeof f=="string"?f.replace(c,""):f)}a.write(t(l,i)+KL,"utf8")||process.emit("log4js:pause",!0)}};return u.reopen=function(){a.end(()=>{a=s(e,r,n,o)})},u.sighupHandler=function(){FE("SIGHUP handler called."),u.reopen()},u.shutdown=function(l){gc.delete(u),gc.size===0&&hc&&(process.removeListener("SIGHUP",$E),hc=!1),a.end("","utf-8",l)},gc.add(u),hc||(process.on("SIGHUP",$E),hc=!0),u}function GL(e,t){let r=t.basicLayout;return e.layout&&(r=t.layout(e.layout.type,e.layout)),e.mode=e.mode||384,VL(e.filename,r,e.maxLogSize,e.backups,e,e.timezoneOffset)}jE.exports.configure=GL});var BE=g((Poe,qE)=>{var JL=mm(),ZL=require("os"),YL=ZL.EOL;function XL(e,t,r){let n=new JL.DateRollingFileStream(e,t,r);return n.on("error",o=>{console.error("log4js.dateFileAppender - Writing to file %s, error happened ",e,o)}),n.on("drain",()=>{process.emit("log4js:pause",!1)}),n}function QL(e,t,r,n,o){n.maxSize=n.maxLogSize;let i=XL(e,t,n),s=function(a){i.writable&&(i.write(r(a,o)+YL,"utf8")||process.emit("log4js:pause",!0))};return s.shutdown=function(a){i.end("","utf-8",a)},s}function eq(e,t){let r=t.basicLayout;return e.layout&&(r=t.layout(e.layout.type,e.layout)),e.alwaysIncludePattern||(e.alwaysIncludePattern=!1),e.mode=e.mode||384,QL(e.filename,e.pattern,r,e,e.timezoneOffset)}qE.exports.configure=eq});var HE=g((Foe,WE)=>{var Br=Ue()("log4js:fileSync"),Er=require("path"),wr=require("fs"),zE=require("os"),tq=zE.EOL;function UE(e,t){let r=n=>{try{return wr.mkdirSync(n,{recursive:!0})}catch(o){if(o.code==="ENOENT")return r(Er.dirname(n)),r(n);if(o.code!=="EEXIST"&&o.code!=="EROFS")throw o;try{if(wr.statSync(n).isDirectory())return n;throw o}catch{throw o}}};r(Er.dirname(e)),wr.appendFileSync(e,"",{mode:t.mode,flag:t.flags})}var gm=class{constructor(t,r,n,o){if(Br("In RollingFileStream"),r<0)throw new Error(`maxLogSize (${r}) should be > 0`);this.filename=t,this.size=r,this.backups=n,this.options=o,this.currentSize=0;function i(s){let a=0;try{a=wr.statSync(s).size}catch{UE(s,o)}return a}this.currentSize=i(this.filename)}shouldRoll(){return Br("should roll with current size %d, and max size %d",this.currentSize,this.size),this.currentSize>=this.size}roll(t){let r=this,n=new RegExp(`^${Er.basename(t)}`);function o(l){return n.test(l)}function i(l){return parseInt(l.slice(`${Er.basename(t)}.`.length),10)||0}function s(l,c){return i(l)-i(c)}function a(l){let c=i(l);if(Br(`Index of ${l} is ${c}`),r.backups===0)wr.truncateSync(t,0);else if(c ${t}.${c+1}`),wr.renameSync(Er.join(Er.dirname(t),l),`${t}.${c+1}`)}}function u(){Br("Renaming the old files"),wr.readdirSync(Er.dirname(t)).filter(o).sort(s).reverse().forEach(a)}Br("Rolling, rolling, rolling"),u()}write(t,r){let n=this;function o(){Br("writing the chunk to the file"),n.currentSize+=t.length,wr.appendFileSync(n.filename,t)}Br("in write"),this.shouldRoll()&&(this.currentSize=0,this.roll(this.filename)),o()}};function rq(e,t,r,n,o,i){if(typeof e!="string"||e.length===0)throw new Error(`Invalid filename: ${e}`);if(e.endsWith(Er.sep))throw new Error(`Filename is a directory: ${e}`);e=e.replace(new RegExp(`^~(?=${Er.sep}.+)`),zE.homedir()),e=Er.normalize(e),n=!n&&n!==0?5:n,Br("Creating fileSync appender (",e,", ",r,", ",n,", ",o,", ",i,")");function s(u,l,c){let f;return l?f=new gm(u,l,c,o):f=(p=>(UE(p,o),{write(d){wr.appendFileSync(p,d)}}))(u),f}let a=s(e,r,n);return u=>{a.write(t(u,i)+tq)}}function nq(e,t){let r=t.basicLayout;e.layout&&(r=t.layout(e.layout.type,e.layout));let n={flags:e.flags||"a",encoding:e.encoding||"utf8",mode:e.mode||384};return rq(e.filename,r,e.maxLogSize,e.backups,n,e.timezoneOffset)}WE.exports.configure=nq});var VE=g(($oe,KE)=>{var Sr=Ue()("log4js:tcp"),oq=require("net");function iq(e,t){let r=!1,n=[],o,i=3,s="__LOG4JS__";function a(f){Sr("Writing log event to socket"),r=o.write(`${t(f)}${s}`,"utf8")}function u(){let f;for(Sr("emptying buffer");f=n.shift();)a(f)}function l(){Sr(`appender creating socket to ${e.host||"localhost"}:${e.port||5e3}`),s=`${e.endMsg||"__LOG4JS__"}`,o=oq.createConnection(e.port||5e3,e.host||"localhost"),o.on("connect",()=>{Sr("socket connected"),u(),r=!0}),o.on("drain",()=>{Sr("drain event received, emptying buffer"),r=!0,u()}),o.on("timeout",o.end.bind(o)),o.on("error",f=>{Sr("connection error",f),r=!1,u()}),o.on("close",l)}l();function c(f){r?a(f):(Sr("buffering log event because it cannot write at the moment"),n.push(f))}return c.shutdown=function(f){Sr("shutdown called"),n.length&&i?(Sr("buffer has items, waiting 100ms to empty"),i-=1,setTimeout(()=>{c.shutdown(f)},100)):(o.removeAllListeners("close"),o.end(f))},c}function sq(e,t){Sr(`configure with config = ${e}`);let r=function(n){return n.serialise()};return e.layout&&(r=t.layout(e.layout.type,e.layout)),iq(e,r)}KE.exports.configure=sq});var vm=g((Moe,bm)=>{var ym=require("path"),yn=Ue()("log4js:appenders"),Vt=Zn(),GE=Qu(),aq=Xn(),uq=$d(),cq=H0(),ar=new Map;ar.set("console",V0());ar.set("stdout",J0());ar.set("stderr",Y0());ar.set("logLevelFilter",Q0());ar.set("categoryFilter",rx());ar.set("noLogFilter",ix());ar.set("file",LE());ar.set("dateFile",BE());ar.set("fileSync",HE());ar.set("tcp",VE());var Ds=new Map,yc=(e,t)=>{let r;try{let n=`${e}.cjs`;r=require.resolve(n),yn("Loading module from ",n)}catch{r=e,yn("Loading module from ",e)}try{return require(r)}catch(n){Vt.throwExceptionIf(t,n.code!=="MODULE_NOT_FOUND",`appender "${e}" could not be loaded (error was: ${n})`);return}},lq=(e,t)=>ar.get(e)||yc(`./${e}`,t)||yc(e,t)||require.main&&require.main.filename&&yc(ym.join(ym.dirname(require.main.filename),e),t)||yc(ym.join(process.cwd(),e),t),bc=new Set,JE=(e,t)=>{if(Ds.has(e))return Ds.get(e);if(!t.appenders[e])return!1;if(bc.has(e))throw new Error(`Dependency loop detected for appender ${e}.`);bc.add(e),yn(`Creating appender ${e}`);let r=fq(e,t);return bc.delete(e),Ds.set(e,r),r},fq=(e,t)=>{let r=t.appenders[e],n=r.type.configure?r.type:lq(r.type,t);return Vt.throwExceptionIf(t,Vt.not(n),`appender "${e}" is not valid (type "${r.type}" could not be found)`),n.appender&&(process.emitWarning(`Appender ${r.type} exports an appender function.`,"DeprecationWarning","log4js-node-DEP0001"),yn("[log4js-node-DEP0001]",`DEPRECATION: Appender ${r.type} exports an appender function.`)),n.shutdown&&(process.emitWarning(`Appender ${r.type} exports a shutdown function.`,"DeprecationWarning","log4js-node-DEP0002"),yn("[log4js-node-DEP0002]",`DEPRECATION: Appender ${r.type} exports a shutdown function.`)),yn(`${e}: clustering.isMaster ? ${GE.isMaster()}`),yn(`${e}: appenderModule is ${require("util").inspect(n)}`),GE.onlyOnMaster(()=>(yn(`calling appenderModule.configure for ${e} / ${r.type}`),n.configure(cq.modifyConfig(r),uq,o=>JE(o,t),aq)),()=>{})},ZE=e=>{if(Ds.clear(),bc.clear(),!e)return;let t=[];Object.values(e.categories).forEach(r=>{t.push(...r.appenders)}),Object.keys(e.appenders).forEach(r=>{(t.includes(r)||e.appenders[r].type==="tcp-server"||e.appenders[r].type==="multiprocess")&&JE(r,e)})},YE=()=>{ZE()};YE();Vt.addListener(e=>{Vt.throwExceptionIf(e,Vt.not(Vt.anObject(e.appenders)),'must have a property "appenders" of type object.');let t=Object.keys(e.appenders);Vt.throwExceptionIf(e,Vt.not(t.length),"must define at least one appender."),t.forEach(r=>{Vt.throwExceptionIf(e,Vt.not(e.appenders[r].type),`appender "${r}" is not valid (must be an object with property "type")`)})});Vt.addListener(ZE);bm.exports=Ds;bm.exports.init=YE});var Em=g((joe,vc)=>{var Ps=Ue()("log4js:categories"),ke=Zn(),xm=Xn(),XE=vm(),bn=new Map;function QE(e,t,r){if(t.inherit===!1)return;let n=r.lastIndexOf(".");if(n<0)return;let o=r.slice(0,n),i=e.categories[o];i||(i={inherit:!0,appenders:[]}),QE(e,i,o),!e.categories[o]&&i.appenders&&i.appenders.length&&i.level&&(e.categories[o]=i),t.appenders=t.appenders||[],t.level=t.level||i.level,i.appenders.forEach(s=>{t.appenders.includes(s)||t.appenders.push(s)}),t.parent=i}function pq(e){if(!e.categories)return;Object.keys(e.categories).forEach(r=>{let n=e.categories[r];QE(e,n,r)})}ke.addPreProcessingListener(e=>pq(e));ke.addListener(e=>{ke.throwExceptionIf(e,ke.not(ke.anObject(e.categories)),'must have a property "categories" of type object.');let t=Object.keys(e.categories);ke.throwExceptionIf(e,ke.not(t.length),"must define at least one category."),t.forEach(r=>{let n=e.categories[r];ke.throwExceptionIf(e,[ke.not(n.appenders),ke.not(n.level)],`category "${r}" is not valid (must be an object with properties "appenders" and "level")`),ke.throwExceptionIf(e,ke.not(Array.isArray(n.appenders)),`category "${r}" is not valid (appenders must be an array of appender names)`),ke.throwExceptionIf(e,ke.not(n.appenders.length),`category "${r}" is not valid (appenders must contain at least one appender name)`),Object.prototype.hasOwnProperty.call(n,"enableCallStack")&&ke.throwExceptionIf(e,typeof n.enableCallStack!="boolean",`category "${r}" is not valid (enableCallStack must be boolean type)`),n.appenders.forEach(o=>{ke.throwExceptionIf(e,ke.not(XE.get(o)),`category "${r}" is not valid (appender "${o}" is not defined)`)}),ke.throwExceptionIf(e,ke.not(xm.getLevel(n.level)),`category "${r}" is not valid (level "${n.level}" not recognised; valid levels are ${xm.levels.join(", ")})`)}),ke.throwExceptionIf(e,ke.not(e.categories.default),'must define a "default" category.')});var wm=e=>{if(bn.clear(),!e)return;Object.keys(e.categories).forEach(r=>{let n=e.categories[r],o=[];n.appenders.forEach(i=>{o.push(XE.get(i)),Ps(`Creating category ${r}`),bn.set(r,{appenders:o,level:xm.getLevel(n.level),enableCallStack:n.enableCallStack||!1})})})},eS=()=>{wm()};eS();ke.addListener(wm);var oi=e=>{if(Ps(`configForCategory: searching for config for ${e}`),bn.has(e))return Ps(`configForCategory: ${e} exists in config, returning it`),bn.get(e);let t;return e.indexOf(".")>0?(Ps(`configForCategory: ${e} has hierarchy, cloning from parents`),t={...oi(e.slice(0,e.lastIndexOf(".")))}):(bn.has("default")||wm({categories:{default:{appenders:["out"],level:"OFF"}}}),Ps("configForCategory: cloning default category"),t={...bn.get("default")}),bn.set(e,t),t},dq=e=>oi(e).appenders,mq=e=>oi(e).level,hq=(e,t)=>{oi(e).level=t},gq=e=>oi(e).enableCallStack===!0,yq=(e,t)=>{oi(e).enableCallStack=t};vc.exports=bn;vc.exports=Object.assign(vc.exports,{appendersForCategory:dq,getLevelForCategory:mq,setLevelForCategory:hq,getEnableCallStackForCategory:gq,setEnableCallStackForCategory:yq,init:eS})});var iS=g((Loe,oS)=>{var tS=Ue()("log4js:logger"),bq=Md(),Ir=Xn(),vq=Qu(),xc=Em(),rS=Zn(),xq=/at (?:(.+)\s+\()?(?:(.+?):(\d+)(?::(\d+))?|([^)]+))\)?/;function wq(e,t=4){try{let r=e.stack.split(` +`).slice(t),n=xq.exec(r[0]);if(n&&n.length===6)return{functionName:n[1],fileName:n[2],lineNumber:parseInt(n[3],10),columnNumber:parseInt(n[4],10),callStack:r.join(` +`)};console.error("log4js.logger - defaultParseCallStack error")}catch(r){console.error("log4js.logger - defaultParseCallStack error",r)}return null}var Fs=class{constructor(t){if(!t)throw new Error("No category provided.");this.category=t,this.context={},this.parseCallStack=wq,tS(`Logger created (${this.category}, ${this.level})`)}get level(){return Ir.getLevel(xc.getLevelForCategory(this.category),Ir.OFF)}set level(t){xc.setLevelForCategory(this.category,Ir.getLevel(t,this.level))}get useCallStack(){return xc.getEnableCallStackForCategory(this.category)}set useCallStack(t){xc.setEnableCallStackForCategory(this.category,t===!0)}log(t,...r){let n=Ir.getLevel(t);n?this.isLevelEnabled(n)&&this._log(n,r):rS.validIdentifier(t)&&r.length>0?(this.log(Ir.WARN,"log4js:logger.log: valid log-level not found as first parameter given:",t),this.log(Ir.INFO,`[${t}]`,...r)):this.log(Ir.INFO,t,...r)}isLevelEnabled(t){return this.level.isLessThanOrEqualTo(t)}_log(t,r){tS(`sending log data (${t}) to appenders`);let n=new bq(this.category,t,r,this.context,this.useCallStack&&this.parseCallStack(new Error));vq.send(n)}addContext(t,r){this.context[t]=r}removeContext(t){delete this.context[t]}clearContext(){this.context={}}setParseCallStackFunction(t){this.parseCallStack=t}};function nS(e){let t=Ir.getLevel(e),n=t.toString().toLowerCase().replace(/_([a-z])/g,i=>i[1].toUpperCase()),o=n[0].toUpperCase()+n.slice(1);Fs.prototype[`is${o}Enabled`]=function(){return this.isLevelEnabled(t)},Fs.prototype[n]=function(...i){this.log(t,...i)}}Ir.levels.forEach(nS);rS.addListener(()=>{Ir.levels.forEach(nS)});oS.exports=Fs});var uS=g((qoe,aS)=>{var ii=Xn(),Eq=':remote-addr - - ":method :url HTTP/:http-version" :status :content-length ":referrer" ":user-agent"';function Sq(e){return e.originalUrl||e.url}function Iq(e,t,r){let n=i=>{let s=i.concat();for(let a=0;an.source?n.source:n);t=new RegExp(r.join("|"))}return t}function Cq(e,t,r){let n=t;if(r){let o=r.find(i=>{let s=!1;return i.from&&i.to?s=e>=i.from&&e<=i.to:s=i.codes.indexOf(e)!==-1,s});o&&(n=ii.getLevel(o.level,n))}return n}aS.exports=function(t,r){typeof r=="string"||typeof r=="function"?r={format:r}:r=r||{};let n=t,o=ii.getLevel(r.level,ii.INFO),i=r.format||Eq;return(s,a,u)=>{if(s._logging!==void 0)return u();if(typeof r.nolog!="function"){let l=_q(r.nolog);if(l&&l.test(s.originalUrl))return u()}if(n.isLevelEnabled(o)||r.level==="auto"){let l=new Date,{writeHead:c}=a;s._logging=!0,a.writeHead=(d,h)=>{a.writeHead=c,a.writeHead(d,h),a.__statusCode=d,a.__headers=h||{}};let f=!1,p=()=>{if(f)return;if(f=!0,typeof r.nolog=="function"&&r.nolog(s,a)===!0){s._logging=!1;return}a.responseTime=new Date-l,a.statusCode&&r.level==="auto"&&(o=ii.INFO,a.statusCode>=300&&(o=ii.WARN),a.statusCode>=400&&(o=ii.ERROR)),o=Cq(a.statusCode,o,r.statusRules);let d=Iq(s,a,r.tokens||[]);if(r.context&&n.addContext("res",a),typeof i=="function"){let h=i(s,a,b=>sS(b,d));h&&n.log(o,h)}else n.log(o,sS(i,d));r.context&&n.removeContext("res")};a.on("end",p),a.on("finish",p),a.on("error",p),a.on("close",p)}return u()}}});var dS=g((Boe,pS)=>{var cS=Ue()("log4js:recording"),wc=[];function Tq(){return function(e){cS(`received logEvent, number of events now ${wc.length+1}`),cS("log event was ",e),wc.push(e)}}function lS(){return wc.slice()}function fS(){wc.length=0}pS.exports={configure:Tq,replay:lS,playback:lS,reset:fS,erase:fS}});var xS=g((zoe,vS)=>{var vn=Ue()("log4js:main"),Oq=require("fs"),Aq=s0()({proto:!0}),kq=Zn(),Nq=$d(),Rq=Xn(),mS=vm(),hS=Em(),Dq=iS(),Pq=Qu(),Fq=uS(),$q=dS(),$s=!1;function Mq(e){if(!$s)return;vn("Received log event ",e),hS.appendersForCategory(e.categoryName).forEach(r=>{r(e)})}function jq(e){vn(`Loading configuration from ${e}`);try{return JSON.parse(Oq.readFileSync(e,"utf8"))}catch(t){throw new Error(`Problem reading config from file "${e}". Error was ${t.message}`,t)}}function gS(e){$s&&yS();let t=e;return typeof t=="string"&&(t=jq(e)),vn(`Configuration is ${t}`),kq.configure(Aq(t)),Pq.onMessage(Mq),$s=!0,bS}function Lq(){return $q}function yS(e){vn("Shutdown called. Disabling all log writing."),$s=!1;let t=Array.from(mS.values());mS.init(),hS.init();let r=t.reduceRight((s,a)=>a.shutdown?s+1:s,0);if(r===0)return vn("No appenders with shutdown functions found."),e!==void 0&&e();let n=0,o;vn(`Found ${r} appenders with shutdown functions.`);function i(s){o=o||s,n+=1,vn(`Appender shutdowns complete: ${n} / ${r}`),n>=r&&(vn("All shutdown functions completed."),e&&e(o))}return t.filter(s=>s.shutdown).forEach(s=>s.shutdown(i)),null}function qq(e){return $s||gS(process.env.LOG4JS_CONFIG||{appenders:{out:{type:"stdout"}},categories:{default:{appenders:["out"],level:"OFF"}}}),new Dq(e||"default")}var bS={getLogger:qq,configure:gS,shutdown:yS,connectLogger:Fq,levels:Rq,addLayout:Nq.addLayout,recording:Lq};vS.exports=bS});var si=g(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});function wS(e,t){if(t)return e;throw new Error("Unhandled discriminated union member: "+JSON.stringify(e))}Ec.assertNever=wS;Ec.default=wS});var IS=g((Woe,SS)=>{"use strict";var Bq=["h","min","s","ms","\u03BCs","ns"],zq=["hour","minute","second","millisecond","microsecond","nanosecond"],ES=[3600,60,1,1e6,1e3,1];SS.exports=function(e,t){var r,n,o,i,s,a,u,l,c,f;if(r=!1,n=!1,t&&(r=t.verbose||!1,n=t.precise||!1),!Array.isArray(e)||e.length!==2||typeof e[0]!="number"||typeof e[1]!="number")return"";for(e[1]<0&&(f=e[0]+e[1]/1e9,e[0]=parseInt(f),e[1]=parseFloat((f%1).toPrecision(9))*1e9),c="",o=0;o<6&&(i=o<3?0:1,s=e[i],o!==3&&o!==0&&(s=s%ES[o-1]),o===2&&(s+=e[1]/1e9),a=s/ES[o],!(a>=1&&(r&&(a=Math.floor(a)),n?l=a.toString():(u=a>=10?0:2,l=a.toFixed(u)),l.indexOf(".")>-1&&l[l.length-1]==="0"&&(l=l.replace(/\.?0+$/,"")),c&&(c+=" "),c+=l,r?(c+=" "+zq[o],l!=="1"&&(c+="s")):c+=" "+Bq[o],!r)));o++);return c}});var CS=g((Hoe,_S)=>{"use strict";_S.exports=e=>encodeURIComponent(e).replace(/[!'()*]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase()}`)});var NS=g((Koe,kS)=>{"use strict";var AS="%[a-f0-9]{2}",TS=new RegExp("("+AS+")|([^%]+?)","gi"),OS=new RegExp("("+AS+")+","gi");function Sm(e,t){try{return[decodeURIComponent(e.join(""))]}catch{}if(e.length===1)return e;t=t||1;var r=e.slice(0,t),n=e.slice(t);return Array.prototype.concat.call([],Sm(r),Sm(n))}function Uq(e){try{return decodeURIComponent(e)}catch{for(var t=e.match(TS)||[],r=1;r{"use strict";RS.exports=(e,t)=>{if(!(typeof e=="string"&&typeof t=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(t==="")return[e];let r=e.indexOf(t);return r===-1?[e]:[e.slice(0,r),e.slice(r+t.length)]}});var FS=g((Goe,PS)=>{"use strict";PS.exports=function(e,t){for(var r={},n=Object.keys(e),o=Array.isArray(t),i=0;i{"use strict";var Hq=CS(),Kq=NS(),MS=DS(),Vq=FS(),Gq=e=>e==null,Im=Symbol("encodeFragmentIdentifier");function Jq(e){switch(e.arrayFormat){case"index":return t=>(r,n)=>{let o=r.length;return n===void 0||e.skipNull&&n===null||e.skipEmptyString&&n===""?r:n===null?[...r,[Re(t,e),"[",o,"]"].join("")]:[...r,[Re(t,e),"[",Re(o,e),"]=",Re(n,e)].join("")]};case"bracket":return t=>(r,n)=>n===void 0||e.skipNull&&n===null||e.skipEmptyString&&n===""?r:n===null?[...r,[Re(t,e),"[]"].join("")]:[...r,[Re(t,e),"[]=",Re(n,e)].join("")];case"colon-list-separator":return t=>(r,n)=>n===void 0||e.skipNull&&n===null||e.skipEmptyString&&n===""?r:n===null?[...r,[Re(t,e),":list="].join("")]:[...r,[Re(t,e),":list=",Re(n,e)].join("")];case"comma":case"separator":case"bracket-separator":{let t=e.arrayFormat==="bracket-separator"?"[]=":"=";return r=>(n,o)=>o===void 0||e.skipNull&&o===null||e.skipEmptyString&&o===""?n:(o=o===null?"":o,n.length===0?[[Re(r,e),t,Re(o,e)].join("")]:[[n,Re(o,e)].join(e.arrayFormatSeparator)])}default:return t=>(r,n)=>n===void 0||e.skipNull&&n===null||e.skipEmptyString&&n===""?r:n===null?[...r,Re(t,e)]:[...r,[Re(t,e),"=",Re(n,e)].join("")]}}function Zq(e){let t;switch(e.arrayFormat){case"index":return(r,n,o)=>{if(t=/\[(\d*)\]$/.exec(r),r=r.replace(/\[\d*\]$/,""),!t){o[r]=n;return}o[r]===void 0&&(o[r]={}),o[r][t[1]]=n};case"bracket":return(r,n,o)=>{if(t=/(\[\])$/.exec(r),r=r.replace(/\[\]$/,""),!t){o[r]=n;return}if(o[r]===void 0){o[r]=[n];return}o[r]=[].concat(o[r],n)};case"colon-list-separator":return(r,n,o)=>{if(t=/(:list)$/.exec(r),r=r.replace(/:list$/,""),!t){o[r]=n;return}if(o[r]===void 0){o[r]=[n];return}o[r]=[].concat(o[r],n)};case"comma":case"separator":return(r,n,o)=>{let i=typeof n=="string"&&n.includes(e.arrayFormatSeparator),s=typeof n=="string"&&!i&&zr(n,e).includes(e.arrayFormatSeparator);n=s?zr(n,e):n;let a=i||s?n.split(e.arrayFormatSeparator).map(u=>zr(u,e)):n===null?n:zr(n,e);o[r]=a};case"bracket-separator":return(r,n,o)=>{let i=/(\[\])$/.test(r);if(r=r.replace(/\[\]$/,""),!i){o[r]=n&&zr(n,e);return}let s=n===null?[]:n.split(e.arrayFormatSeparator).map(a=>zr(a,e));if(o[r]===void 0){o[r]=s;return}o[r]=[].concat(o[r],s)};default:return(r,n,o)=>{if(o[r]===void 0){o[r]=n;return}o[r]=[].concat(o[r],n)}}}function jS(e){if(typeof e!="string"||e.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function Re(e,t){return t.encode?t.strict?Hq(e):encodeURIComponent(e):e}function zr(e,t){return t.decode?Kq(e):e}function LS(e){return Array.isArray(e)?e.sort():typeof e=="object"?LS(Object.keys(e)).sort((t,r)=>Number(t)-Number(r)).map(t=>e[t]):e}function qS(e){let t=e.indexOf("#");return t!==-1&&(e=e.slice(0,t)),e}function Yq(e){let t="",r=e.indexOf("#");return r!==-1&&(t=e.slice(r)),t}function BS(e){e=qS(e);let t=e.indexOf("?");return t===-1?"":e.slice(t+1)}function $S(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&typeof e=="string"&&e.trim()!==""?e=Number(e):t.parseBooleans&&e!==null&&(e.toLowerCase()==="true"||e.toLowerCase()==="false")&&(e=e.toLowerCase()==="true"),e}function zS(e,t){t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t),jS(t.arrayFormatSeparator);let r=Zq(t),n=Object.create(null);if(typeof e!="string"||(e=e.trim().replace(/^[?#&]/,""),!e))return n;for(let o of e.split("&")){if(o==="")continue;let[i,s]=MS(t.decode?o.replace(/\+/g," "):o,"=");s=s===void 0?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?s:zr(s,t),r(zr(i,t),s,n)}for(let o of Object.keys(n)){let i=n[o];if(typeof i=="object"&&i!==null)for(let s of Object.keys(i))i[s]=$S(i[s],t);else n[o]=$S(i,t)}return t.sort===!1?n:(t.sort===!0?Object.keys(n).sort():Object.keys(n).sort(t.sort)).reduce((o,i)=>{let s=n[i];return s&&typeof s=="object"&&!Array.isArray(s)?o[i]=LS(s):o[i]=s,o},Object.create(null))}vt.extract=BS;vt.parse=zS;vt.stringify=(e,t)=>{if(!e)return"";t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t),jS(t.arrayFormatSeparator);let r=s=>t.skipNull&&Gq(e[s])||t.skipEmptyString&&e[s]==="",n=Jq(t),o={};for(let s of Object.keys(e))r(s)||(o[s]=e[s]);let i=Object.keys(o);return t.sort!==!1&&i.sort(t.sort),i.map(s=>{let a=e[s];return a===void 0?"":a===null?Re(s,t):Array.isArray(a)?a.length===0&&t.arrayFormat==="bracket-separator"?Re(s,t)+"[]":a.reduce(n(s),[]).join("&"):Re(s,t)+"="+Re(a,t)}).filter(s=>s.length>0).join("&")};vt.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);let[r,n]=MS(e,"#");return Object.assign({url:r.split("?")[0]||"",query:zS(BS(e),t)},t&&t.parseFragmentIdentifier&&n?{fragmentIdentifier:zr(n,t)}:{})};vt.stringifyUrl=(e,t)=>{t=Object.assign({encode:!0,strict:!0,[Im]:!0},t);let r=qS(e.url).split("?")[0]||"",n=vt.extract(e.url),o=vt.parse(n,{sort:!1}),i=Object.assign(o,e.query),s=vt.stringify(i,t);s&&(s=`?${s}`);let a=Yq(e.url);return e.fragmentIdentifier&&(a=`#${t[Im]?Re(e.fragmentIdentifier,t):e.fragmentIdentifier}`),`${r}${s}${a}`};vt.pick=(e,t,r)=>{r=Object.assign({parseFragmentIdentifier:!0,[Im]:!1},r);let{url:n,query:o,fragmentIdentifier:i}=vt.parseUrl(e,r);return vt.stringifyUrl({url:n,query:Vq(o,t),fragmentIdentifier:i},r)};vt.exclude=(e,t,r)=>{let n=Array.isArray(t)?o=>!t.includes(o):(o,i)=>!t(o,i);return vt.pick(e,n,r)}});function Gr(e,t){for(var r in t)e[r]=t[r];return e}function d_(e){var t=e.parentNode;t&&t.removeChild(e)}function H(e,t,r){var n,o,i,s={};for(i in t)i=="key"?n=t[i]:i=="ref"?o=t[i]:s[i]=t[i];if(arguments.length>2&&(s.children=arguments.length>3?aa.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(i in e.defaultProps)s[i]===void 0&&(s[i]=e.defaultProps[i]);return ia(e,s,n,o,null)}function ia(e,t,r,n,o){var i={type:e,props:t,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:o??++l_};return o==null&&q.vnode!=null&&q.vnode(i),i}function fl(){return{current:null}}function $(e){return e.children}function Dt(e,t){this.props=e,this.context=t}function sa(e,t){if(t==null)return e.__?sa(e.__,e.__.__k.indexOf(e)+1):null;for(var r;t0?ia(d.type,d.props,d.key,d.ref?d.ref:null,d.__v):d)!=null){if(d.__=r,d.__b=r.__b+1,(p=v[c])===null||p&&d.key==p.key&&d.type===p.type)v[c]=void 0;else for(f=0;f2&&(s.children=arguments.length>3?aa.call(arguments,2):r),ia(e.type,s,n||e.key,o||e.ref,null)}function Le(e,t){var r={__c:t="__cC"+f_++,__:e,Consumer:function(n,o){return n.children(o)},Provider:function(n){var o,i;return this.getChildContext||(o=[],(i={})[t]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(s){this.props.value!==s.value&&o.some(Ih)},this.sub=function(s){o.push(s);var a=s.componentWillUnmount;s.componentWillUnmount=function(){o.splice(o.indexOf(s),1),a&&a.call(s)}}),n.children}};return r.Provider.__=r.Consumer.contextType=r}var aa,q,l_,Tz,oa,s_,f_,ul,p_,Oz,wi=$u(()=>{ul={},p_=[],Oz=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;aa=p_.slice,q={__e:function(e,t,r,n){for(var o,i,s;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&i.getDerivedStateFromError!=null&&(o.setState(i.getDerivedStateFromError(e)),s=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(e,n||{}),s=o.__d),s)return o.__E=o}catch(a){e=a}throw e}},l_=0,Tz=function(e){return e!=null&&e.constructor===void 0},Dt.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=Gr({},this.state),typeof e=="function"&&(e=e(Gr({},r),this.props)),e&&Gr(r,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ih(this))},Dt.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ih(this))},Dt.prototype.render=$,oa=[],cl.__r=0,f_=0});function ho(e,t){q.__h&&q.__h(Ee,e,Ei||t),Ei=0;var r=Ee.__H||(Ee.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({__V:pl}),r.__[e]}function j(e){return Ei=1,Nr(k_,e)}function Nr(e,t,r){var n=ho(Tn++,2);if(n.t=e,!n.__c&&(n.__=[r?r(t):k_(void 0,t),function(i){var s=n.__N?n.__N[0]:n.__[0],a=n.t(s,i);s!==a&&(n.__N=[a,n.__[1]],n.__c.setState({}))}],n.__c=Ee,!Ee.u)){Ee.u=!0;var o=Ee.shouldComponentUpdate;Ee.shouldComponentUpdate=function(i,s,a){if(!n.__c.__H)return!0;var u=n.__c.__H.__.filter(function(c){return c.__c});if(u.every(function(c){return!c.__N}))return!o||o.call(this,i,s,a);var l=!1;return u.forEach(function(c){if(c.__N){var f=c.__[0];c.__=c.__N,c.__N=void 0,f!==c.__[0]&&(l=!0)}}),!(!l&&n.__c.props===i)&&(!o||o.call(this,i,s,a))}}return n.__N||n.__}function U(e,t){var r=ho(Tn++,3);!q.__s&&Nh(r.__H,t)&&(r.__=e,r.i=t,Ee.__H.__h.push(r))}function Et(e,t){var r=ho(Tn++,4);!q.__s&&Nh(r.__H,t)&&(r.__=e,r.i=t,Ee.__h.push(r))}function F(e){return Ei=5,ne(function(){return{current:e}},[])}function Ah(e,t,r){Ei=6,Et(function(){return typeof e=="function"?(e(t()),function(){return e(null)}):e?(e.current=t(),function(){return e.current=null}):void 0},r==null?r:r.concat(e))}function ne(e,t){var r=ho(Tn++,7);return Nh(r.__H,t)?(r.__V=e(),r.i=t,r.__h=e,r.__V):r.__}function Y(e,t){return Ei=8,ne(function(){return e},t)}function Q(e){var t=Ee.context[e.__c],r=ho(Tn++,9);return r.c=e,t?(r.__==null&&(r.__=!0,t.sub(Ee)),t.props.value):e.__}function go(e,t){q.useDebugValue&&q.useDebugValue(t?t(e):e)}function Rz(e){var t=ho(Tn++,10),r=j();return t.__=e,Ee.componentDidCatch||(Ee.componentDidCatch=function(n,o){t.__&&t.__(n,o),r[1](n)}),[r[0],function(){r[1](void 0)}]}function kh(){var e=ho(Tn++,11);if(!e.__){for(var t=Ee.__v;t!==null&&!t.__m&&t.__!==null;)t=t.__;var r=t.__m||(t.__m=[0,0]);e.__="P"+r[0]+"-"+r[1]++}return e.__}function Dz(){for(var e;e=A_.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(dl),e.__H.__h.forEach(Oh),e.__H.__h=[]}catch(t){e.__H.__h=[],q.__e(t,e.__v)}}function Pz(e){var t,r=function(){clearTimeout(n),O_&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);O_&&(t=requestAnimationFrame(r))}function dl(e){var t=Ee,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),Ee=t}function Oh(e){var t=Ee;e.__c=e.__(),Ee=t}function Nh(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function k_(e,t){return typeof t=="function"?t(e):t}var Tn,Ee,Th,E_,Ei,A_,pl,S_,I_,__,C_,T_,O_,Rh=$u(()=>{wi();Ei=0,A_=[],pl=[],S_=q.__b,I_=q.__r,__=q.diffed,C_=q.__c,T_=q.unmount;q.__b=function(e){Ee=null,S_&&S_(e)},q.__r=function(e){I_&&I_(e),Tn=0;var t=(Ee=e.__c).__H;t&&(Th===Ee?(t.__h=[],Ee.__h=[],t.__.forEach(function(r){r.__N&&(r.__=r.__N),r.__V=pl,r.__N=r.i=void 0})):(t.__h.forEach(dl),t.__h.forEach(Oh),t.__h=[])),Th=Ee},q.diffed=function(e){__&&__(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(A_.push(t)!==1&&E_===q.requestAnimationFrame||((E_=q.requestAnimationFrame)||Pz)(Dz)),t.__H.__.forEach(function(r){r.i&&(r.__H=r.i),r.__V!==pl&&(r.__=r.__V),r.i=void 0,r.__V=pl})),Th=Ee=null},q.__c=function(e,t){t.some(function(r){try{r.__h.forEach(dl),r.__h=r.__h.filter(function(n){return!n.__||Oh(n)})}catch(n){t.some(function(o){o.__h&&(o.__h=[])}),t=[],q.__e(n,r.__v)}}),C_&&C_(e,t)},q.unmount=function(e){T_&&T_(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{dl(n)}catch(o){t=o}}),r.__H=void 0,t&&q.__e(t,r.__v))};O_=typeof requestAnimationFrame=="function"});function L_(e,t){for(var r in t)e[r]=t[r];return e}function Ph(e,t){for(var r in e)if(r!=="__source"&&!(r in t))return!0;for(var n in t)if(n!=="__source"&&e[n]!==t[n])return!0;return!1}function Dh(e,t){return e===t&&(e!==0||1/e==1/t)||e!=e&&t!=t}function ml(e){this.props=e}function st(e,t){function r(o){var i=this.props.ref,s=i==o.ref;return!s&&i&&(i.call?i(null):i.current=null),t?!t(this.props,o)||!s:Ph(this.props,o)}function n(o){return this.shouldComponentUpdate=r,H(e,o)}return n.displayName="Memo("+(e.displayName||e.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n}function Z(e){function t(r){var n=L_({},r);return delete n.ref,e(n,r.ref||null)}return t.$$typeof=Fz,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}function q_(e,t,r){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach(function(n){typeof n.__c=="function"&&n.__c()}),e.__c.__H=null),(e=L_({},e)).__c!=null&&(e.__c.__P===r&&(e.__c.__P=t),e.__c=null),e.__k=e.__k&&e.__k.map(function(n){return q_(n,t,r)})),e}function B_(e,t,r){return e&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(n){return B_(n,t,r)}),e.__c&&e.__c.__P===t&&(e.__e&&r.insertBefore(e.__e,e.__d),e.__c.__e=!0,e.__c.__P=r)),e}function ua(){this.__u=0,this.t=null,this.__b=null}function z_(e){var t=e.__.__c;return t&&t.__a&&t.__a(e)}function U_(e){var t,r,n;function o(i){if(t||(t=e()).then(function(s){r=s.default||s},function(s){n=s}),n)throw n;if(!r)throw t;return H(r,i)}return o.displayName="Lazy",o.__f=!0,o}function Si(){this.u=null,this.o=null}function Mz(e){return this.getChildContext=function(){return e.context},e.children}function jz(e){var t=this,r=e.i;t.componentWillUnmount=function(){xi(null,t.l),t.l=null,t.i=null},t.i&&t.i!==r&&t.componentWillUnmount(),e.__v?(t.l||(t.i=r,t.l={nodeType:1,parentNode:r,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n)},insertBefore:function(n,o){this.childNodes.push(n),t.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),t.i.removeChild(n)}}),xi(H(Mz,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function W_(e,t){var r=H(jz,{__v:e,i:t});return r.containerInfo=t,r}function K_(e,t,r){return t.__k==null&&(t.textContent=""),xi(e,t),typeof r=="function"&&r(),e?e.__c:null}function V_(e,t,r){return Ch(e,t),typeof r=="function"&&r(),e?e.__c:null}function zz(){}function Uz(){return this.cancelBubble}function Wz(){return this.defaultPrevented}function Z_(e){return H.bind(null,e)}function Pt(e){return!!e&&e.$$typeof===H_}function Xt(e){return Pt(e)?w_.apply(null,arguments):e}function Y_(e){return!!e.__k&&(xi(null,e),!0)}function X_(e){return e&&(e.base||e.nodeType===1&&e)||null}function Fh(e){e()}function tC(e){return e}function rC(){return[!1,Fh]}function oC(e,t){var r=t(),n=j({h:{__:r,v:t}}),o=n[0].h,i=n[1];return Et(function(){o.__=r,o.v=t,Dh(o.__,t())||i({h:o})},[e,r,t]),U(function(){return Dh(o.__,o.v())||i({h:o}),e(function(){Dh(o.__,o.v())||i({h:o})})},[e]),r}var N_,Fz,R_,Ve,$z,D_,P_,H_,Lz,qz,Bz,F_,G_,$_,M_,j_,J_,Hz,Q_,Rr,eC,nC,R,$h=$u(()=>{wi();wi();Rh();Rh();(ml.prototype=new Dt).isPureReactComponent=!0,ml.prototype.shouldComponentUpdate=function(e,t){return Ph(this.props,e)||Ph(this.state,t)};N_=q.__b;q.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),N_&&N_(e)};Fz=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;R_=function(e,t){return e==null?null:kr(kr(e).map(t))},Ve={map:R_,forEach:R_,count:function(e){return e?kr(e).length:0},only:function(e){var t=kr(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:kr},$z=q.__e;q.__e=function(e,t,r,n){if(e.then){for(var o,i=t;i=i.__;)if((o=i.__c)&&o.__c)return t.__e==null&&(t.__e=r.__e,t.__k=r.__k),o.__c(e,t)}$z(e,t,r,n)};D_=q.unmount;q.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&e.__h===!0&&(e.type=null),D_&&D_(e)},(ua.prototype=new Dt).__c=function(e,t){var r=t.__c,n=this;n.t==null&&(n.t=[]),n.t.push(r);var o=z_(n.__v),i=!1,s=function(){i||(i=!0,r.__R=null,o?o(a):a())};r.__R=s;var a=function(){if(!--n.__u){if(n.state.__a){var l=n.state.__a;n.__v.__k[0]=B_(l,l.__c.__P,l.__c.__O)}var c;for(n.setState({__a:n.__b=null});c=n.t.pop();)c.forceUpdate()}},u=t.__h===!0;n.__u++||u||n.setState({__a:n.__b=n.__v.__k[0]}),e.then(s,s)},ua.prototype.componentWillUnmount=function(){this.t=[]},ua.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=q_(this.__b,r,n.__O=n.__P)}this.__b=null}var o=t.__a&&H($,null,e.fallback);return o&&(o.__h=null),[H($,null,t.__a?null:e.children),o]};P_=function(e,t,r){if(++r[1]===r[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(r=e.u;r;){for(;r.length>3;)r.pop()();if(r[1]Ve,Component:()=>Dt,Fragment:()=>$,PureComponent:()=>ml,StrictMode:()=>eC,Suspense:()=>ua,SuspenseList:()=>Si,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:()=>J_,cloneElement:()=>Xt,createContext:()=>Le,createElement:()=>H,createFactory:()=>Z_,createPortal:()=>W_,createRef:()=>fl,default:()=>R,findDOMNode:()=>X_,flushSync:()=>Rr,forwardRef:()=>Z,hydrate:()=>V_,isValidElement:()=>Pt,lazy:()=>U_,memo:()=>st,render:()=>K_,startTransition:()=>Fh,unmountComponentAtNode:()=>Y_,unstable_batchedUpdates:()=>Q_,useCallback:()=>Y,useContext:()=>Q,useDebugValue:()=>go,useDeferredValue:()=>tC,useEffect:()=>U,useErrorBoundary:()=>Rz,useId:()=>kh,useImperativeHandle:()=>Ah,useInsertionEffect:()=>nC,useLayoutEffect:()=>Et,useMemo:()=>ne,useReducer:()=>Nr,useRef:()=>F,useState:()=>j,useSyncExternalStore:()=>oC,useTransition:()=>rC,version:()=>Hz});var S=$u(()=>{$h();$h()});var er=g((KT,VT)=>{"use strict";var Gl=function(e){return e&&e.Math===Math&&e};VT.exports=Gl(typeof globalThis=="object"&&globalThis)||Gl(typeof window=="object"&&window)||Gl(typeof self=="object"&&self)||Gl(typeof global=="object"&&global)||function(){return this}()||KT||Function("return this")()});var ft=g((Jbe,GT)=>{"use strict";GT.exports=function(e){try{return!!e()}catch{return!0}}});var Ta=g((Zbe,JT)=>{"use strict";var K9=ft();JT.exports=!K9(function(){var e=function(){}.bind();return typeof e!="function"||e.hasOwnProperty("prototype")})});var eO=g((Ybe,QT)=>{"use strict";var V9=Ta(),XT=Function.prototype,ZT=XT.apply,YT=XT.call;QT.exports=typeof Reflect=="object"&&Reflect.apply||(V9?YT.bind(ZT):function(){return YT.apply(ZT,arguments)})});var pt=g((Xbe,nO)=>{"use strict";var tO=Ta(),rO=Function.prototype,cg=rO.call,G9=tO&&rO.bind.bind(cg,cg);nO.exports=tO?G9:function(e){return function(){return cg.apply(e,arguments)}}});var wo=g((Qbe,iO)=>{"use strict";var oO=pt(),J9=oO({}.toString),Z9=oO("".slice);iO.exports=function(e){return Z9(J9(e),8,-1)}});var lg=g((eve,sO)=>{"use strict";var Y9=wo(),X9=pt();sO.exports=function(e){if(Y9(e)==="Function")return X9(e)}});var pg=g((tve,aO)=>{"use strict";var fg=typeof document=="object"&&document.all,Q9=typeof fg>"u"&&fg!==void 0;aO.exports={all:fg,IS_HTMLDDA:Q9}});var Je=g((rve,cO)=>{"use strict";var uO=pg(),e4=uO.all;cO.exports=uO.IS_HTMLDDA?function(e){return typeof e=="function"||e===e4}:function(e){return typeof e=="function"}});var tr=g((nve,lO)=>{"use strict";var t4=ft();lO.exports=!t4(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var Xr=g((ove,fO)=>{"use strict";var r4=Ta(),Jl=Function.prototype.call;fO.exports=r4?Jl.bind(Jl):function(){return Jl.apply(Jl,arguments)}});var hO=g(mO=>{"use strict";var pO={}.propertyIsEnumerable,dO=Object.getOwnPropertyDescriptor,n4=dO&&!pO.call({1:2},1);mO.f=n4?function(t){var r=dO(this,t);return!!r&&r.enumerable}:pO});var Oa=g((sve,gO)=>{"use strict";gO.exports=function(e,t){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:t}}});var mg=g((ave,yO)=>{"use strict";var o4=pt(),i4=ft(),s4=wo(),dg=Object,a4=o4("".split);yO.exports=i4(function(){return!dg("z").propertyIsEnumerable(0)})?function(e){return s4(e)==="String"?a4(e,""):dg(e)}:dg});var Di=g((uve,bO)=>{"use strict";bO.exports=function(e){return e==null}});var Aa=g((cve,vO)=>{"use strict";var u4=Di(),c4=TypeError;vO.exports=function(e){if(u4(e))throw c4("Can't call method on "+e);return e}});var Pi=g((lve,xO)=>{"use strict";var l4=mg(),f4=Aa();xO.exports=function(e){return l4(f4(e))}});var fr=g((fve,SO)=>{"use strict";var wO=Je(),EO=pg(),p4=EO.all;SO.exports=EO.IS_HTMLDDA?function(e){return typeof e=="object"?e!==null:wO(e)||e===p4}:function(e){return typeof e=="object"?e!==null:wO(e)}});var ka=g((pve,IO)=>{"use strict";IO.exports={}});var Eo=g((dve,CO)=>{"use strict";var hg=ka(),gg=er(),d4=Je(),_O=function(e){return d4(e)?e:void 0};CO.exports=function(e,t){return arguments.length<2?_O(hg[e])||_O(gg[e]):hg[e]&&hg[e][t]||gg[e]&&gg[e][t]}});var Zl=g((mve,TO)=>{"use strict";var m4=pt();TO.exports=m4({}.isPrototypeOf)});var AO=g((hve,OO)=>{"use strict";OO.exports=typeof navigator<"u"&&String(navigator.userAgent)||""});var $O=g((gve,FO)=>{"use strict";var PO=er(),yg=AO(),kO=PO.process,NO=PO.Deno,RO=kO&&kO.versions||NO&&NO.version,DO=RO&&RO.v8,pr,Yl;DO&&(pr=DO.split("."),Yl=pr[0]>0&&pr[0]<4?1:+(pr[0]+pr[1]));!Yl&&yg&&(pr=yg.match(/Edge\/(\d+)/),(!pr||pr[1]>=74)&&(pr=yg.match(/Chrome\/(\d+)/),pr&&(Yl=+pr[1])));FO.exports=Yl});var bg=g((yve,jO)=>{"use strict";var MO=$O(),h4=ft(),g4=er(),y4=g4.String;jO.exports=!!Object.getOwnPropertySymbols&&!h4(function(){var e=Symbol("symbol detection");return!y4(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&MO&&MO<41})});var vg=g((bve,LO)=>{"use strict";var b4=bg();LO.exports=b4&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var xg=g((vve,qO)=>{"use strict";var v4=Eo(),x4=Je(),w4=Zl(),E4=vg(),S4=Object;qO.exports=E4?function(e){return typeof e=="symbol"}:function(e){var t=v4("Symbol");return x4(t)&&w4(t.prototype,S4(e))}});var Xl=g((xve,BO)=>{"use strict";var I4=String;BO.exports=function(e){try{return I4(e)}catch{return"Object"}}});var So=g((wve,zO)=>{"use strict";var _4=Je(),C4=Xl(),T4=TypeError;zO.exports=function(e){if(_4(e))return e;throw T4(C4(e)+" is not a function")}});var Ql=g((Eve,UO)=>{"use strict";var O4=So(),A4=Di();UO.exports=function(e,t){var r=e[t];return A4(r)?void 0:O4(r)}});var HO=g((Sve,WO)=>{"use strict";var wg=Xr(),Eg=Je(),Sg=fr(),k4=TypeError;WO.exports=function(e,t){var r,n;if(t==="string"&&Eg(r=e.toString)&&!Sg(n=wg(r,e))||Eg(r=e.valueOf)&&!Sg(n=wg(r,e))||t!=="string"&&Eg(r=e.toString)&&!Sg(n=wg(r,e)))return n;throw k4("Can't convert object to primitive value")}});var Na=g((Ive,KO)=>{"use strict";KO.exports=!0});var JO=g((_ve,GO)=>{"use strict";var VO=er(),N4=Object.defineProperty;GO.exports=function(e,t){try{N4(VO,e,{value:t,configurable:!0,writable:!0})}catch{VO[e]=t}return t}});var ef=g((Cve,YO)=>{"use strict";var R4=er(),D4=JO(),ZO="__core-js_shared__",P4=R4[ZO]||D4(ZO,{});YO.exports=P4});var Ig=g((Tve,QO)=>{"use strict";var F4=Na(),XO=ef();(QO.exports=function(e,t){return XO[e]||(XO[e]=t!==void 0?t:{})})("versions",[]).push({version:"3.32.1",mode:F4?"pure":"global",copyright:"\xA9 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.32.1/LICENSE",source:"https://github.com/zloirock/core-js"})});var tf=g((Ove,eA)=>{"use strict";var $4=Aa(),M4=Object;eA.exports=function(e){return M4($4(e))}});var Fr=g((Ave,tA)=>{"use strict";var j4=pt(),L4=tf(),q4=j4({}.hasOwnProperty);tA.exports=Object.hasOwn||function(t,r){return q4(L4(t),r)}});var rf=g((kve,rA)=>{"use strict";var B4=pt(),z4=0,U4=Math.random(),W4=B4(1 .toString);rA.exports=function(e){return"Symbol("+(e===void 0?"":e)+")_"+W4(++z4+U4,36)}});var dr=g((Nve,oA)=>{"use strict";var H4=er(),K4=Ig(),nA=Fr(),V4=rf(),G4=bg(),J4=vg(),Fi=H4.Symbol,_g=K4("wks"),Z4=J4?Fi.for||Fi:Fi&&Fi.withoutSetter||V4;oA.exports=function(e){return nA(_g,e)||(_g[e]=G4&&nA(Fi,e)?Fi[e]:Z4("Symbol."+e)),_g[e]}});var uA=g((Rve,aA)=>{"use strict";var Y4=Xr(),iA=fr(),sA=xg(),X4=Ql(),Q4=HO(),e8=dr(),t8=TypeError,r8=e8("toPrimitive");aA.exports=function(e,t){if(!iA(e)||sA(e))return e;var r=X4(e,r8),n;if(r){if(t===void 0&&(t="default"),n=Y4(r,e,t),!iA(n)||sA(n))return n;throw t8("Can't convert object to primitive value")}return t===void 0&&(t="number"),Q4(e,t)}});var Ra=g((Dve,cA)=>{"use strict";var n8=uA(),o8=xg();cA.exports=function(e){var t=n8(e,"string");return o8(t)?t:t+""}});var Tg=g((Pve,fA)=>{"use strict";var i8=er(),lA=fr(),Cg=i8.document,s8=lA(Cg)&&lA(Cg.createElement);fA.exports=function(e){return s8?Cg.createElement(e):{}}});var Og=g((Fve,pA)=>{"use strict";var a8=tr(),u8=ft(),c8=Tg();pA.exports=!a8&&!u8(function(){return Object.defineProperty(c8("div"),"a",{get:function(){return 7}}).a!==7})});var hA=g(mA=>{"use strict";var l8=tr(),f8=Xr(),p8=hO(),d8=Oa(),m8=Pi(),h8=Ra(),g8=Fr(),y8=Og(),dA=Object.getOwnPropertyDescriptor;mA.f=l8?dA:function(t,r){if(t=m8(t),r=h8(r),y8)try{return dA(t,r)}catch{}if(g8(t,r))return d8(!f8(p8.f,t,r),t[r])}});var yA=g((Mve,gA)=>{"use strict";var b8=ft(),v8=Je(),x8=/#|\.prototype\./,Da=function(e,t){var r=E8[w8(e)];return r===I8?!0:r===S8?!1:v8(t)?b8(t):!!t},w8=Da.normalize=function(e){return String(e).replace(x8,".").toLowerCase()},E8=Da.data={},S8=Da.NATIVE="N",I8=Da.POLYFILL="P";gA.exports=Da});var Pa=g((jve,vA)=>{"use strict";var bA=lg(),_8=So(),C8=Ta(),T8=bA(bA.bind);vA.exports=function(e,t){return _8(e),t===void 0?e:C8?T8(e,t):function(){return e.apply(t,arguments)}}});var Ag=g((Lve,xA)=>{"use strict";var O8=tr(),A8=ft();xA.exports=O8&&A8(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var Nn=g((qve,wA)=>{"use strict";var k8=fr(),N8=String,R8=TypeError;wA.exports=function(e){if(k8(e))return e;throw R8(N8(e)+" is not an object")}});var Rn=g(SA=>{"use strict";var D8=tr(),P8=Og(),F8=Ag(),nf=Nn(),EA=Ra(),$8=TypeError,kg=Object.defineProperty,M8=Object.getOwnPropertyDescriptor,Ng="enumerable",Rg="configurable",Dg="writable";SA.f=D8?F8?function(t,r,n){if(nf(t),r=EA(r),nf(n),typeof t=="function"&&r==="prototype"&&"value"in n&&Dg in n&&!n[Dg]){var o=M8(t,r);o&&o[Dg]&&(t[r]=n.value,n={configurable:Rg in n?n[Rg]:o[Rg],enumerable:Ng in n?n[Ng]:o[Ng],writable:!1})}return kg(t,r,n)}:kg:function(t,r,n){if(nf(t),r=EA(r),nf(n),P8)try{return kg(t,r,n)}catch{}if("get"in n||"set"in n)throw $8("Accessors not supported");return"value"in n&&(t[r]=n.value),t}});var Io=g((zve,IA)=>{"use strict";var j8=tr(),L8=Rn(),q8=Oa();IA.exports=j8?function(e,t,r){return L8.f(e,t,q8(1,r))}:function(e,t,r){return e[t]=r,e}});var _o=g((Uve,CA)=>{"use strict";var of=er(),B8=eO(),z8=lg(),U8=Je(),W8=hA().f,H8=yA(),$i=ka(),K8=Pa(),Mi=Io(),_A=Fr(),V8=function(e){var t=function(r,n,o){if(this instanceof t){switch(arguments.length){case 0:return new e;case 1:return new e(r);case 2:return new e(r,n)}return new e(r,n,o)}return B8(e,this,arguments)};return t.prototype=e.prototype,t};CA.exports=function(e,t){var r=e.target,n=e.global,o=e.stat,i=e.proto,s=n?of:o?of[r]:(of[r]||{}).prototype,a=n?$i:$i[r]||Mi($i,r,{})[r],u=a.prototype,l,c,f,p,d,h,b,y,v;for(p in t)l=H8(n?p:r+(o?".":"#")+p,e.forced),c=!l&&s&&_A(s,p),h=a[p],c&&(e.dontCallGetSet?(v=W8(s,p),b=v&&v.value):b=s[p]),d=c&&b?b:t[p],!(c&&typeof h==typeof d)&&(e.bind&&c?y=K8(d,of):e.wrap&&c?y=V8(d):i&&U8(d)?y=z8(d):y=d,(e.sham||d&&d.sham||h&&h.sham)&&Mi(y,"sham",!0),Mi(a,p,y),i&&(f=r+"Prototype",_A($i,f)||Mi($i,f,{}),Mi($i[f],p,d),e.real&&u&&(l||!u[p])&&Mi(u,p,d)))}});var Fa=g((Wve,TA)=>{"use strict";TA.exports={}});var AA=g((Hve,OA)=>{"use strict";var G8=Math.ceil,J8=Math.floor;OA.exports=Math.trunc||function(t){var r=+t;return(r>0?J8:G8)(r)}});var Pg=g((Kve,kA)=>{"use strict";var Z8=AA();kA.exports=function(e){var t=+e;return t!==t||t===0?0:Z8(t)}});var Fg=g((Vve,NA)=>{"use strict";var Y8=Pg(),X8=Math.max,Q8=Math.min;NA.exports=function(e,t){var r=Y8(e);return r<0?X8(r+t,0):Q8(r,t)}});var DA=g((Gve,RA)=>{"use strict";var eU=Pg(),tU=Math.min;RA.exports=function(e){return e>0?tU(eU(e),9007199254740991):0}});var $a=g((Jve,PA)=>{"use strict";var rU=DA();PA.exports=function(e){return rU(e.length)}});var MA=g((Zve,$A)=>{"use strict";var nU=Pi(),oU=Fg(),iU=$a(),FA=function(e){return function(t,r,n){var o=nU(t),i=iU(o),s=oU(n,i),a;if(e&&r!==r){for(;i>s;)if(a=o[s++],a!==a)return!0}else for(;i>s;s++)if((e||s in o)&&o[s]===r)return e||s||0;return!e&&-1}};$A.exports={includes:FA(!0),indexOf:FA(!1)}});var Mg=g((Yve,LA)=>{"use strict";var sU=pt(),$g=Fr(),aU=Pi(),uU=MA().indexOf,cU=Fa(),jA=sU([].push);LA.exports=function(e,t){var r=aU(e),n=0,o=[],i;for(i in r)!$g(cU,i)&&$g(r,i)&&jA(o,i);for(;t.length>n;)$g(r,i=t[n++])&&(~uU(o,i)||jA(o,i));return o}});var sf=g((Xve,qA)=>{"use strict";qA.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var jg=g(BA=>{"use strict";var lU=Mg(),fU=sf(),pU=fU.concat("length","prototype");BA.f=Object.getOwnPropertyNames||function(t){return lU(t,pU)}});var UA=g((e0e,zA)=>{"use strict";var dU=Ra(),mU=Rn(),hU=Oa();zA.exports=function(e,t,r){var n=dU(t);n in e?mU.f(e,n,hU(0,r)):e[n]=r}});var KA=g((t0e,HA)=>{"use strict";var WA=Fg(),gU=$a(),yU=UA(),bU=Array,vU=Math.max;HA.exports=function(e,t,r){for(var n=gU(e),o=WA(t,n),i=WA(r===void 0?n:r,n),s=bU(vU(i-o,0)),a=0;o{"use strict";var xU=wo(),wU=Pi(),VA=jg().f,EU=KA(),GA=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],SU=function(e){try{return VA(e)}catch{return EU(GA)}};JA.exports.f=function(t){return GA&&xU(t)==="Window"?SU(t):VA(wU(t))}});var XA=g((n0e,YA)=>{"use strict";var IU=ft();YA.exports=IU(function(){if(typeof ArrayBuffer=="function"){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}})});var tk=g((o0e,ek)=>{"use strict";var _U=ft(),CU=fr(),TU=wo(),QA=XA(),af=Object.isExtensible,OU=_U(function(){af(1)});ek.exports=OU||QA?function(t){return!CU(t)||QA&&TU(t)==="ArrayBuffer"?!1:af?af(t):!0}:af});var nk=g((i0e,rk)=>{"use strict";var AU=ft();rk.exports=!AU(function(){return Object.isExtensible(Object.preventExtensions({}))})});var zg=g((s0e,sk)=>{"use strict";var kU=_o(),NU=pt(),RU=Fa(),DU=fr(),Lg=Fr(),PU=Rn().f,ok=jg(),FU=ZA(),qg=tk(),$U=rf(),MU=nk(),ik=!1,Qr=$U("meta"),jU=0,Bg=function(e){PU(e,Qr,{value:{objectID:"O"+jU++,weakData:{}}})},LU=function(e,t){if(!DU(e))return typeof e=="symbol"?e:(typeof e=="string"?"S":"P")+e;if(!Lg(e,Qr)){if(!qg(e))return"F";if(!t)return"E";Bg(e)}return e[Qr].objectID},qU=function(e,t){if(!Lg(e,Qr)){if(!qg(e))return!0;if(!t)return!1;Bg(e)}return e[Qr].weakData},BU=function(e){return MU&&ik&&qg(e)&&!Lg(e,Qr)&&Bg(e),e},zU=function(){UU.enable=function(){},ik=!0;var e=ok.f,t=NU([].splice),r={};r[Qr]=1,e(r).length&&(ok.f=function(n){for(var o=e(n),i=0,s=o.length;i{"use strict";ak.exports={}});var ck=g((u0e,uk)=>{"use strict";var WU=dr(),HU=Ma(),KU=WU("iterator"),VU=Array.prototype;uk.exports=function(e){return e!==void 0&&(HU.Array===e||VU[KU]===e)}});var uf=g((c0e,fk)=>{"use strict";var GU=dr(),JU=GU("toStringTag"),lk={};lk[JU]="z";fk.exports=String(lk)==="[object z]"});var lf=g((l0e,pk)=>{"use strict";var ZU=uf(),YU=Je(),cf=wo(),XU=dr(),QU=XU("toStringTag"),eW=Object,tW=cf(function(){return arguments}())==="Arguments",rW=function(e,t){try{return e[t]}catch{}};pk.exports=ZU?cf:function(e){var t,r,n;return e===void 0?"Undefined":e===null?"Null":typeof(r=rW(t=eW(e),QU))=="string"?r:tW?cf(t):(n=cf(t))==="Object"&&YU(t.callee)?"Arguments":n}});var Ug=g((f0e,mk)=>{"use strict";var nW=lf(),dk=Ql(),oW=Di(),iW=Ma(),sW=dr(),aW=sW("iterator");mk.exports=function(e){if(!oW(e))return dk(e,aW)||dk(e,"@@iterator")||iW[nW(e)]}});var gk=g((p0e,hk)=>{"use strict";var uW=Xr(),cW=So(),lW=Nn(),fW=Xl(),pW=Ug(),dW=TypeError;hk.exports=function(e,t){var r=arguments.length<2?pW(e):t;if(cW(r))return lW(uW(r,e));throw dW(fW(e)+" is not iterable")}});var vk=g((d0e,bk)=>{"use strict";var mW=Xr(),yk=Nn(),hW=Ql();bk.exports=function(e,t,r){var n,o;yk(e);try{if(n=hW(e,"return"),!n){if(t==="throw")throw r;return r}n=mW(n,e)}catch(i){o=!0,n=i}if(t==="throw")throw r;if(o)throw n;return yk(n),r}});var ja=g((m0e,Sk)=>{"use strict";var gW=Pa(),yW=Xr(),bW=Nn(),vW=Xl(),xW=ck(),wW=$a(),xk=Zl(),EW=gk(),SW=Ug(),wk=vk(),IW=TypeError,ff=function(e,t){this.stopped=e,this.result=t},Ek=ff.prototype;Sk.exports=function(e,t,r){var n=r&&r.that,o=!!(r&&r.AS_ENTRIES),i=!!(r&&r.IS_RECORD),s=!!(r&&r.IS_ITERATOR),a=!!(r&&r.INTERRUPTED),u=gW(t,n),l,c,f,p,d,h,b,y=function(w){return l&&wk(l,"normal",w),new ff(!0,w)},v=function(w){return o?(bW(w),a?u(w[0],w[1],y):u(w[0],w[1])):a?u(w,y):u(w)};if(i)l=e.iterator;else if(s)l=e;else{if(c=SW(e),!c)throw IW(vW(e)+" is not iterable");if(xW(c)){for(f=0,p=wW(e);p>f;f++)if(d=v(e[f]),d&&xk(Ek,d))return d;return new ff(!1)}l=EW(e,c)}for(h=i?e.next:l.next;!(b=yW(h,l)).done;){try{d=v(b.value)}catch(w){wk(l,"throw",w)}if(typeof d=="object"&&d&&xk(Ek,d))return d}return new ff(!1)}});var Wg=g((h0e,Ik)=>{"use strict";var _W=Zl(),CW=TypeError;Ik.exports=function(e,t){if(_W(t,e))return e;throw CW("Incorrect invocation")}});var Ck=g((g0e,_k)=>{"use strict";var TW=uf(),OW=lf();_k.exports=TW?{}.toString:function(){return"[object "+OW(this)+"]"}});var pf=g((y0e,Ok)=>{"use strict";var AW=uf(),kW=Rn().f,NW=Io(),RW=Fr(),DW=Ck(),PW=dr(),Tk=PW("toStringTag");Ok.exports=function(e,t,r,n){if(e){var o=r?e:e.prototype;RW(o,Tk)||kW(o,Tk,{configurable:!0,value:t}),n&&!AW&&NW(o,"toString",DW)}}});var kk=g((b0e,Ak)=>{"use strict";var FW=wo();Ak.exports=Array.isArray||function(t){return FW(t)==="Array"}});var Rk=g((v0e,Nk)=>{"use strict";var $W=pt(),MW=Je(),Hg=ef(),jW=$W(Function.toString);MW(Hg.inspectSource)||(Hg.inspectSource=function(e){return jW(e)});Nk.exports=Hg.inspectSource});var jk=g((x0e,Mk)=>{"use strict";var LW=pt(),qW=ft(),Dk=Je(),BW=lf(),zW=Eo(),UW=Rk(),Pk=function(){},WW=[],Fk=zW("Reflect","construct"),Kg=/^\s*(?:class|function)\b/,HW=LW(Kg.exec),KW=!Kg.exec(Pk),La=function(t){if(!Dk(t))return!1;try{return Fk(Pk,WW,t),!0}catch{return!1}},$k=function(t){if(!Dk(t))return!1;switch(BW(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return KW||!!HW(Kg,UW(t))}catch{return!0}};$k.sham=!0;Mk.exports=!Fk||qW(function(){var e;return La(La.call)||!La(Object)||!La(function(){e=!0})||e})?$k:La});var zk=g((w0e,Bk)=>{"use strict";var Lk=kk(),VW=jk(),GW=fr(),JW=dr(),ZW=JW("species"),qk=Array;Bk.exports=function(e){var t;return Lk(e)&&(t=e.constructor,VW(t)&&(t===qk||Lk(t.prototype))?t=void 0:GW(t)&&(t=t[ZW],t===null&&(t=void 0))),t===void 0?qk:t}});var Wk=g((E0e,Uk)=>{"use strict";var YW=zk();Uk.exports=function(e,t){return new(YW(e))(t===0?0:t)}});var Vk=g((S0e,Kk)=>{"use strict";var XW=Pa(),QW=pt(),e7=mg(),t7=tf(),r7=$a(),n7=Wk(),Hk=QW([].push),Dn=function(e){var t=e===1,r=e===2,n=e===3,o=e===4,i=e===6,s=e===7,a=e===5||i;return function(u,l,c,f){for(var p=t7(u),d=e7(p),h=XW(l,c),b=r7(d),y=0,v=f||n7,w=t?v(u,b):r||s?v(u,0):void 0,T,M;b>y;y++)if((a||y in d)&&(T=d[y],M=h(T,y,p),e))if(t)w[y]=M;else if(M)switch(e){case 3:return!0;case 5:return T;case 6:return y;case 2:Hk(w,T)}else switch(e){case 4:return!1;case 7:Hk(w,T)}return i?-1:n||o?o:w}};Kk.exports={forEach:Dn(0),map:Dn(1),filter:Dn(2),some:Dn(3),every:Dn(4),find:Dn(5),findIndex:Dn(6),filterReject:Dn(7)}});var Zk=g((I0e,Jk)=>{"use strict";var o7=er(),i7=Je(),Gk=o7.WeakMap;Jk.exports=i7(Gk)&&/native code/.test(String(Gk))});var df=g((_0e,Xk)=>{"use strict";var s7=Ig(),a7=rf(),Yk=s7("keys");Xk.exports=function(e){return Yk[e]||(Yk[e]=a7(e))}});var Zg=g((C0e,tN)=>{"use strict";var u7=Zk(),eN=er(),c7=fr(),l7=Io(),Vg=Fr(),Gg=ef(),f7=df(),p7=Fa(),Qk="Object already initialized",Jg=eN.TypeError,d7=eN.WeakMap,mf,qa,hf,m7=function(e){return hf(e)?qa(e):mf(e,{})},h7=function(e){return function(t){var r;if(!c7(t)||(r=qa(t)).type!==e)throw Jg("Incompatible receiver, "+e+" required");return r}};u7||Gg.state?(mr=Gg.state||(Gg.state=new d7),mr.get=mr.get,mr.has=mr.has,mr.set=mr.set,mf=function(e,t){if(mr.has(e))throw Jg(Qk);return t.facade=e,mr.set(e,t),t},qa=function(e){return mr.get(e)||{}},hf=function(e){return mr.has(e)}):(Co=f7("state"),p7[Co]=!0,mf=function(e,t){if(Vg(e,Co))throw Jg(Qk);return t.facade=e,l7(e,Co,t),t},qa=function(e){return Vg(e,Co)?e[Co]:{}},hf=function(e){return Vg(e,Co)});var mr,Co;tN.exports={set:mf,get:qa,has:hf,enforce:m7,getterFor:h7}});var oN=g((T0e,nN)=>{"use strict";var g7=_o(),y7=er(),b7=zg(),v7=ft(),x7=Io(),w7=ja(),E7=Wg(),S7=Je(),I7=fr(),_7=Di(),C7=pf(),T7=Rn().f,O7=Vk().forEach,A7=tr(),rN=Zg(),k7=rN.set,N7=rN.getterFor;nN.exports=function(e,t,r){var n=e.indexOf("Map")!==-1,o=e.indexOf("Weak")!==-1,i=n?"set":"add",s=y7[e],a=s&&s.prototype,u={},l;if(!A7||!S7(s)||!(o||a.forEach&&!v7(function(){new s().entries().next()})))l=r.getConstructor(t,e,n,i),b7.enable();else{l=t(function(p,d){k7(E7(p,c),{type:e,collection:new s}),_7(d)||w7(d,p[i],{that:p,AS_ENTRIES:n})});var c=l.prototype,f=N7(e);O7(["add","clear","delete","forEach","get","has","set","keys","values","entries"],function(p){var d=p==="add"||p==="set";p in a&&!(o&&p==="clear")&&x7(c,p,function(h,b){var y=f(this).collection;if(!d&&o&&!I7(h))return p==="get"?void 0:!1;var v=y[p](h===0?0:h,b);return d?this:v})}),o||T7(c,"size",{configurable:!0,get:function(){return f(this).collection.size}})}return C7(l,e,!1,!0),u[e]=l,g7({global:!0,forced:!0},u),o||r.setStrong(l,e,n),l}});var sN=g((O0e,iN)=>{"use strict";var R7=Mg(),D7=sf();iN.exports=Object.keys||function(t){return R7(t,D7)}});var uN=g(aN=>{"use strict";var P7=tr(),F7=Ag(),$7=Rn(),M7=Nn(),j7=Pi(),L7=sN();aN.f=P7&&!F7?Object.defineProperties:function(t,r){M7(t);for(var n=j7(r),o=L7(r),i=o.length,s=0,a;i>s;)$7.f(t,a=o[s++],n[a]);return t}});var lN=g((k0e,cN)=>{"use strict";var q7=Eo();cN.exports=q7("document","documentElement")});var Ba=g((N0e,yN)=>{"use strict";var B7=Nn(),z7=uN(),fN=sf(),U7=Fa(),W7=lN(),H7=Tg(),K7=df(),pN=">",dN="<",Xg="prototype",Qg="script",hN=K7("IE_PROTO"),Yg=function(){},gN=function(e){return dN+Qg+pN+e+dN+"/"+Qg+pN},mN=function(e){e.write(gN("")),e.close();var t=e.parentWindow.Object;return e=null,t},V7=function(){var e=H7("iframe"),t="java"+Qg+":",r;return e.style.display="none",W7.appendChild(e),e.src=String(t),r=e.contentWindow.document,r.open(),r.write(gN("document.F=Object")),r.close(),r.F},gf,yf=function(){try{gf=new ActiveXObject("htmlfile")}catch{}yf=typeof document<"u"?document.domain&&gf?mN(gf):V7():mN(gf);for(var e=fN.length;e--;)delete yf[Xg][fN[e]];return yf()};U7[hN]=!0;yN.exports=Object.create||function(t,r){var n;return t!==null?(Yg[Xg]=B7(t),n=new Yg,Yg[Xg]=null,n[hN]=t):n=yf(),r===void 0?n:z7.f(n,r)}});var ey=g((R0e,bN)=>{"use strict";var G7=Rn();bN.exports=function(e,t,r){return G7.f(e,t,r)}});var bf=g((D0e,vN)=>{"use strict";var J7=Io();vN.exports=function(e,t,r,n){return n&&n.enumerable?e[t]=r:J7(e,t,r),e}});var wN=g((P0e,xN)=>{"use strict";var Z7=bf();xN.exports=function(e,t,r){for(var n in t)r&&r.unsafe&&e[n]?e[n]=t[n]:Z7(e,n,t[n],r);return e}});var IN=g((F0e,SN)=>{"use strict";var ty=tr(),Y7=Fr(),EN=Function.prototype,X7=ty&&Object.getOwnPropertyDescriptor,ry=Y7(EN,"name"),Q7=ry&&function(){}.name==="something",eH=ry&&(!ty||ty&&X7(EN,"name").configurable);SN.exports={EXISTS:ry,PROPER:Q7,CONFIGURABLE:eH}});var CN=g(($0e,_N)=>{"use strict";var tH=ft();_N.exports=!tH(function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})});var oy=g((M0e,ON)=>{"use strict";var rH=Fr(),nH=Je(),oH=tf(),iH=df(),sH=CN(),TN=iH("IE_PROTO"),ny=Object,aH=ny.prototype;ON.exports=sH?ny.getPrototypeOf:function(e){var t=oH(e);if(rH(t,TN))return t[TN];var r=t.constructor;return nH(r)&&t instanceof r?r.prototype:t instanceof ny?aH:null}});var uy=g((j0e,NN)=>{"use strict";var uH=ft(),cH=Je(),lH=fr(),fH=Ba(),AN=oy(),pH=bf(),dH=dr(),mH=Na(),ay=dH("iterator"),kN=!1,en,iy,sy;[].keys&&(sy=[].keys(),"next"in sy?(iy=AN(AN(sy)),iy!==Object.prototype&&(en=iy)):kN=!0);var hH=!lH(en)||uH(function(){var e={};return en[ay].call(e)!==e});hH?en={}:mH&&(en=fH(en));cH(en[ay])||pH(en,ay,function(){return this});NN.exports={IteratorPrototype:en,BUGGY_SAFARI_ITERATORS:kN}});var DN=g((L0e,RN)=>{"use strict";var gH=uy().IteratorPrototype,yH=Ba(),bH=Oa(),vH=pf(),xH=Ma(),wH=function(){return this};RN.exports=function(e,t,r,n){var o=t+" Iterator";return e.prototype=yH(gH,{next:bH(+!n,r)}),vH(e,o,!1,!0),xH[o]=wH,e}});var FN=g((q0e,PN)=>{"use strict";var EH=pt(),SH=So();PN.exports=function(e,t,r){try{return EH(SH(Object.getOwnPropertyDescriptor(e,t)[r]))}catch{}}});var MN=g((B0e,$N)=>{"use strict";var IH=Je(),_H=String,CH=TypeError;$N.exports=function(e){if(typeof e=="object"||IH(e))return e;throw CH("Can't set "+_H(e)+" as a prototype")}});var LN=g((z0e,jN)=>{"use strict";var TH=FN(),OH=Nn(),AH=MN();jN.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e=!1,t={},r;try{r=TH(Object.prototype,"__proto__","set"),r(t,[]),e=t instanceof Array}catch{}return function(o,i){return OH(o),AH(i),e?r(o,i):o.__proto__=i,o}}():void 0)});var ZN=g((U0e,JN)=>{"use strict";var kH=_o(),NH=Xr(),vf=Na(),VN=IN(),RH=Je(),DH=DN(),qN=oy(),BN=LN(),PH=pf(),FH=Io(),cy=bf(),$H=dr(),zN=Ma(),GN=uy(),MH=VN.PROPER,jH=VN.CONFIGURABLE,UN=GN.IteratorPrototype,xf=GN.BUGGY_SAFARI_ITERATORS,za=$H("iterator"),WN="keys",Ua="values",HN="entries",KN=function(){return this};JN.exports=function(e,t,r,n,o,i,s){DH(r,t,n);var a=function(v){if(v===o&&p)return p;if(!xf&&v in c)return c[v];switch(v){case WN:return function(){return new r(this,v)};case Ua:return function(){return new r(this,v)};case HN:return function(){return new r(this,v)}}return function(){return new r(this)}},u=t+" Iterator",l=!1,c=e.prototype,f=c[za]||c["@@iterator"]||o&&c[o],p=!xf&&f||a(o),d=t==="Array"&&c.entries||f,h,b,y;if(d&&(h=qN(d.call(new e)),h!==Object.prototype&&h.next&&(!vf&&qN(h)!==UN&&(BN?BN(h,UN):RH(h[za])||cy(h,za,KN)),PH(h,u,!0,!0),vf&&(zN[u]=KN))),MH&&o===Ua&&f&&f.name!==Ua&&(!vf&&jH?FH(c,"name",Ua):(l=!0,p=function(){return NH(f,this)})),o)if(b={values:a(Ua),keys:i?p:a(WN),entries:a(HN)},s)for(y in b)(xf||l||!(y in c))&&cy(c,y,b[y]);else kH({target:t,proto:!0,forced:xf||l},b);return(!vf||s)&&c[za]!==p&&cy(c,za,p,{name:o}),zN[t]=p,b}});var XN=g((W0e,YN)=>{"use strict";YN.exports=function(e,t){return{value:e,done:t}}});var tR=g((H0e,eR)=>{"use strict";var LH=Eo(),qH=ey(),BH=dr(),zH=tr(),QN=BH("species");eR.exports=function(e){var t=LH(e);zH&&t&&!t[QN]&&qH(t,QN,{configurable:!0,get:function(){return this}})}});var aR=g((K0e,sR)=>{"use strict";var UH=Ba(),WH=ey(),rR=wN(),HH=Pa(),KH=Wg(),VH=Di(),GH=ja(),JH=ZN(),wf=XN(),ZH=tR(),Wa=tr(),nR=zg().fastKey,iR=Zg(),oR=iR.set,ly=iR.getterFor;sR.exports={getConstructor:function(e,t,r,n){var o=e(function(l,c){KH(l,i),oR(l,{type:t,index:UH(null),first:void 0,last:void 0,size:0}),Wa||(l.size=0),VH(c)||GH(c,l[n],{that:l,AS_ENTRIES:r})}),i=o.prototype,s=ly(t),a=function(l,c,f){var p=s(l),d=u(l,c),h,b;return d?d.value=f:(p.last=d={index:b=nR(c,!0),key:c,value:f,previous:h=p.last,next:void 0,removed:!1},p.first||(p.first=d),h&&(h.next=d),Wa?p.size++:l.size++,b!=="F"&&(p.index[b]=d)),l},u=function(l,c){var f=s(l),p=nR(c),d;if(p!=="F")return f.index[p];for(d=f.first;d;d=d.next)if(d.key===c)return d};return rR(i,{clear:function(){for(var c=this,f=s(c),p=f.index,d=f.first;d;)d.removed=!0,d.previous&&(d.previous=d.previous.next=void 0),delete p[d.index],d=d.next;f.first=f.last=void 0,Wa?f.size=0:c.size=0},delete:function(l){var c=this,f=s(c),p=u(c,l);if(p){var d=p.next,h=p.previous;delete f.index[p.index],p.removed=!0,h&&(h.next=d),d&&(d.previous=h),f.first===p&&(f.first=d),f.last===p&&(f.last=h),Wa?f.size--:c.size--}return!!p},forEach:function(c){for(var f=s(this),p=HH(c,arguments.length>1?arguments[1]:void 0),d;d=d?d.next:f.first;)for(p(d.value,d.key,this);d&&d.removed;)d=d.previous},has:function(c){return!!u(this,c)}}),rR(i,r?{get:function(c){var f=u(this,c);return f&&f.value},set:function(c,f){return a(this,c===0?0:c,f)}}:{add:function(c){return a(this,c=c===0?0:c,c)}}),Wa&&WH(i,"size",{configurable:!0,get:function(){return s(this).size}}),o},setStrong:function(e,t,r){var n=t+" Iterator",o=ly(t),i=ly(n);JH(e,t,function(s,a){oR(this,{type:n,target:s,state:o(s),kind:a,last:void 0})},function(){for(var s=i(this),a=s.kind,u=s.last;u&&u.removed;)u=u.previous;return!s.target||!(s.last=u=u?u.next:s.state.first)?(s.target=void 0,wf(void 0,!0)):wf(a==="keys"?u.key:a==="values"?u.value:[u.key,u.value],!1)},r?"entries":"values",!r,!0),ZH(t)}}});var uR=g(()=>{"use strict";var YH=oN(),XH=aR();YH("Map",function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},XH)});var cR=g(()=>{"use strict";uR()});var fR=g((Y0e,lR)=>{"use strict";lR.exports=function(e,t){return t===1?function(r,n){return r[e](n)}:function(r,n,o){return r[e](n,o)}}});var mR=g((X0e,dR)=>{"use strict";var QH=Eo(),Ef=fR(),pR=QH("Map");dR.exports={Map:pR,set:Ef("set",2),get:Ef("get",1),has:Ef("has",1),remove:Ef("delete",1),proto:pR.prototype}});var hR=g(()=>{"use strict";var eK=_o(),tK=pt(),rK=So(),nK=Aa(),oK=ja(),Sf=mR(),iK=Na(),sK=Sf.Map,aK=Sf.has,uK=Sf.get,cK=Sf.set,lK=tK([].push);eK({target:"Map",stat:!0,forced:iK},{groupBy:function(t,r){nK(t),rK(r);var n=new sK,o=0;return oK(t,function(i){var s=r(i,o++);aK(n,s)?lK(uK(n,s),i):cK(n,s,[i])}),n}})});var bR=g((txe,yR)=>{"use strict";cR();hR();var fK=Xr(),pK=Je(),dK=ka(),gR=dK.Map,mK=gR.groupBy;yR.exports=function(t,r,n){return fK(mK,pK(this)?this:gR,t,r,n)}});var xR=g((rxe,vR)=>{"use strict";var hK=bR();vR.exports=hK});var wR=g(()=>{"use strict";var gK=_o(),yK=tr(),bK=Ba();gK({target:"Object",stat:!0,sham:!yK},{create:bK})});var ER=g(()=>{"use strict";var vK=_o(),xK=Eo(),wK=pt(),EK=So(),SK=Aa(),IK=Ra(),_K=ja(),CK=xK("Object","create"),TK=wK([].push);vK({target:"Object",stat:!0},{groupBy:function(t,r){SK(t),EK(r);var n=CK(null),o=0;return _K(t,function(i){var s=IK(r(i,o++));s in n?TK(n[s],i):n[s]=[i]}),n}})});var IR=g((axe,SR)=>{"use strict";wR();ER();var OK=ka();SR.exports=OK.Object.groupBy});var CR=g((uxe,_R)=>{"use strict";var AK=IR();_R.exports=AK});var KR=g(HR=>{"use strict";var qi=(S(),Ed(lr));function KK(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var VK=typeof Object.is=="function"?Object.is:KK,GK=qi.useState,JK=qi.useEffect,ZK=qi.useLayoutEffect,YK=qi.useDebugValue;function XK(e,t){var r=t(),n=GK({inst:{value:r,getSnapshot:t}}),o=n[0].inst,i=n[1];return ZK(function(){o.value=r,o.getSnapshot=t,Ay(o)&&i({inst:o})},[e,r,t]),JK(function(){return Ay(o)&&i({inst:o}),e(function(){Ay(o)&&i({inst:o})})},[e]),YK(r),r}function Ay(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!VK(e,r)}catch{return!0}}function QK(e,t){return t()}var eV=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?QK:XK;HR.useSyncExternalStore=qi.useSyncExternalStore!==void 0?qi.useSyncExternalStore:eV});var GR=g((kEe,VR)=>{"use strict";VR.exports=KR()});var ZR=g(JR=>{"use strict";var $f=(S(),Ed(lr)),tV=GR();function rV(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var nV=typeof Object.is=="function"?Object.is:rV,oV=tV.useSyncExternalStore,iV=$f.useRef,sV=$f.useEffect,aV=$f.useMemo,uV=$f.useDebugValue;JR.useSyncExternalStoreWithSelector=function(e,t,r,n,o){var i=iV(null);if(i.current===null){var s={hasValue:!1,value:null};i.current=s}else s=i.current;i=aV(function(){function u(d){if(!l){if(l=!0,c=d,d=n(d),o!==void 0&&s.hasValue){var h=s.value;if(o(h,d))return f=h}return f=d}if(h=f,nV(c,d))return h;var b=n(d);return o!==void 0&&o(h,b)?h:(c=d,f=b)}var l=!1,c,f,p=r===void 0?null:r;return[function(){return u(t())},p===null?void 0:function(){return u(p())}]},[t,r,n,o]);var a=oV(e,i[0],i[1]);return sV(function(){s.hasValue=!0,s.value=a},[a]),uV(a),a}});var XR=g((REe,YR)=>{"use strict";YR.exports=ZR()});var Ln=g((EAe,on)=>{function sb(){return on.exports=sb=Object.assign?Object.assign.bind():function(e){for(var t=1;t{function mb(e){return sn.exports=mb=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sn.exports.__esModule=!0,sn.exports.default=sn.exports,mb(e)}sn.exports=mb,sn.exports.__esModule=!0,sn.exports.default=sn.exports});var YP=g((tke,cu)=>{var ZP=tp().default;function GJ(e,t){if(ZP(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(ZP(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}cu.exports=GJ,cu.exports.__esModule=!0,cu.exports.default=cu.exports});var XP=g((rke,lu)=>{var JJ=tp().default,ZJ=YP();function YJ(e){var t=ZJ(e,"string");return JJ(t)==="symbol"?t:String(t)}lu.exports=YJ,lu.exports.__esModule=!0,lu.exports.default=lu.exports});var QP=g((nke,fu)=>{var XJ=XP();function QJ(e,t,r){return t=XJ(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}fu.exports=QJ,fu.exports.__esModule=!0,fu.exports.default=fu.exports});var eF=g((oke,pu)=>{function eZ(e){if(Array.isArray(e))return e}pu.exports=eZ,pu.exports.__esModule=!0,pu.exports.default=pu.exports});var tF=g((ike,du)=>{function tZ(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,o,i,s,a=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,t===0){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(a.push(n.value),a.length!==t);u=!0);}catch(c){l=!0,o=c}finally{try{if(!u&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(l)throw o}}return a}}du.exports=tZ,du.exports.__esModule=!0,du.exports.default=du.exports});var rF=g((ske,mu)=>{function rZ(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{var nF=rF();function nZ(e,t){if(e){if(typeof e=="string")return nF(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return nF(e,t)}}hu.exports=nZ,hu.exports.__esModule=!0,hu.exports.default=hu.exports});var iF=g((uke,gu)=>{function oZ(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}gu.exports=oZ,gu.exports.__esModule=!0,gu.exports.default=gu.exports});var sF=g((cke,yu)=>{var iZ=eF(),sZ=tF(),aZ=oF(),uZ=iF();function cZ(e,t){return iZ(e)||sZ(e,t)||aZ(e,t)||uZ()}yu.exports=cZ,yu.exports.__esModule=!0,yu.exports.default=yu.exports});var uF=g((rp,aF)=>{"use strict";rp.__esModule=!0;rp.default={scheme:"threezerotwofour",author:"jan t. sott (http://github.com/idleberg)",base00:"#090300",base01:"#3a3432",base02:"#4a4543",base03:"#5c5855",base04:"#807d7c",base05:"#a5a2a2",base06:"#d6d5d4",base07:"#f7f7f7",base08:"#db2d20",base09:"#e8bbd0",base0A:"#fded02",base0B:"#01a252",base0C:"#b5e4f4",base0D:"#01a0e4",base0E:"#a16a94",base0F:"#cdab53"};aF.exports=rp.default});var lF=g((np,cF)=>{"use strict";np.__esModule=!0;np.default={scheme:"apathy",author:"jannik siebert (https://github.com/janniks)",base00:"#031A16",base01:"#0B342D",base02:"#184E45",base03:"#2B685E",base04:"#5F9C92",base05:"#81B5AC",base06:"#A7CEC8",base07:"#D2E7E4",base08:"#3E9688",base09:"#3E7996",base0A:"#3E4C96",base0B:"#883E96",base0C:"#963E4C",base0D:"#96883E",base0E:"#4C963E",base0F:"#3E965B"};cF.exports=np.default});var pF=g((op,fF)=>{"use strict";op.__esModule=!0;op.default={scheme:"ashes",author:"jannik siebert (https://github.com/janniks)",base00:"#1C2023",base01:"#393F45",base02:"#565E65",base03:"#747C84",base04:"#ADB3BA",base05:"#C7CCD1",base06:"#DFE2E5",base07:"#F3F4F5",base08:"#C7AE95",base09:"#C7C795",base0A:"#AEC795",base0B:"#95C7AE",base0C:"#95AEC7",base0D:"#AE95C7",base0E:"#C795AE",base0F:"#C79595"};fF.exports=op.default});var mF=g((ip,dF)=>{"use strict";ip.__esModule=!0;ip.default={scheme:"atelier dune",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune)",base00:"#20201d",base01:"#292824",base02:"#6e6b5e",base03:"#7d7a68",base04:"#999580",base05:"#a6a28c",base06:"#e8e4cf",base07:"#fefbec",base08:"#d73737",base09:"#b65611",base0A:"#cfb017",base0B:"#60ac39",base0C:"#1fad83",base0D:"#6684e1",base0E:"#b854d4",base0F:"#d43552"};dF.exports=ip.default});var gF=g((sp,hF)=>{"use strict";sp.__esModule=!0;sp.default={scheme:"atelier forest",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest)",base00:"#1b1918",base01:"#2c2421",base02:"#68615e",base03:"#766e6b",base04:"#9c9491",base05:"#a8a19f",base06:"#e6e2e0",base07:"#f1efee",base08:"#f22c40",base09:"#df5320",base0A:"#d5911a",base0B:"#5ab738",base0C:"#00ad9c",base0D:"#407ee7",base0E:"#6666ea",base0F:"#c33ff3"};hF.exports=sp.default});var bF=g((ap,yF)=>{"use strict";ap.__esModule=!0;ap.default={scheme:"atelier heath",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath)",base00:"#1b181b",base01:"#292329",base02:"#695d69",base03:"#776977",base04:"#9e8f9e",base05:"#ab9bab",base06:"#d8cad8",base07:"#f7f3f7",base08:"#ca402b",base09:"#a65926",base0A:"#bb8a35",base0B:"#379a37",base0C:"#159393",base0D:"#516aec",base0E:"#7b59c0",base0F:"#cc33cc"};yF.exports=ap.default});var xF=g((up,vF)=>{"use strict";up.__esModule=!0;up.default={scheme:"atelier lakeside",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/)",base00:"#161b1d",base01:"#1f292e",base02:"#516d7b",base03:"#5a7b8c",base04:"#7195a8",base05:"#7ea2b4",base06:"#c1e4f6",base07:"#ebf8ff",base08:"#d22d72",base09:"#935c25",base0A:"#8a8a0f",base0B:"#568c3b",base0C:"#2d8f6f",base0D:"#257fad",base0E:"#5d5db1",base0F:"#b72dd2"};vF.exports=up.default});var EF=g((cp,wF)=>{"use strict";cp.__esModule=!0;cp.default={scheme:"atelier seaside",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/)",base00:"#131513",base01:"#242924",base02:"#5e6e5e",base03:"#687d68",base04:"#809980",base05:"#8ca68c",base06:"#cfe8cf",base07:"#f0fff0",base08:"#e6193c",base09:"#87711d",base0A:"#c3c322",base0B:"#29a329",base0C:"#1999b3",base0D:"#3d62f5",base0E:"#ad2bee",base0F:"#e619c3"};wF.exports=cp.default});var IF=g((lp,SF)=>{"use strict";lp.__esModule=!0;lp.default={scheme:"bespin",author:"jan t. sott",base00:"#28211c",base01:"#36312e",base02:"#5e5d5c",base03:"#666666",base04:"#797977",base05:"#8a8986",base06:"#9d9b97",base07:"#baae9e",base08:"#cf6a4c",base09:"#cf7d34",base0A:"#f9ee98",base0B:"#54be0d",base0C:"#afc4db",base0D:"#5ea6ea",base0E:"#9b859d",base0F:"#937121"};SF.exports=lp.default});var CF=g((fp,_F)=>{"use strict";fp.__esModule=!0;fp.default={scheme:"brewer",author:"timoth\xE9e poisot (http://github.com/tpoisot)",base00:"#0c0d0e",base01:"#2e2f30",base02:"#515253",base03:"#737475",base04:"#959697",base05:"#b7b8b9",base06:"#dadbdc",base07:"#fcfdfe",base08:"#e31a1c",base09:"#e6550d",base0A:"#dca060",base0B:"#31a354",base0C:"#80b1d3",base0D:"#3182bd",base0E:"#756bb1",base0F:"#b15928"};_F.exports=fp.default});var OF=g((pp,TF)=>{"use strict";pp.__esModule=!0;pp.default={scheme:"bright",author:"chris kempson (http://chriskempson.com)",base00:"#000000",base01:"#303030",base02:"#505050",base03:"#b0b0b0",base04:"#d0d0d0",base05:"#e0e0e0",base06:"#f5f5f5",base07:"#ffffff",base08:"#fb0120",base09:"#fc6d24",base0A:"#fda331",base0B:"#a1c659",base0C:"#76c7b7",base0D:"#6fb3d2",base0E:"#d381c3",base0F:"#be643c"};TF.exports=pp.default});var kF=g((dp,AF)=>{"use strict";dp.__esModule=!0;dp.default={scheme:"chalk",author:"chris kempson (http://chriskempson.com)",base00:"#151515",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#b0b0b0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#f5f5f5",base08:"#fb9fb1",base09:"#eda987",base0A:"#ddb26f",base0B:"#acc267",base0C:"#12cfc0",base0D:"#6fc2ef",base0E:"#e1a3ee",base0F:"#deaf8f"};AF.exports=dp.default});var RF=g((mp,NF)=>{"use strict";mp.__esModule=!0;mp.default={scheme:"codeschool",author:"brettof86",base00:"#232c31",base01:"#1c3657",base02:"#2a343a",base03:"#3f4944",base04:"#84898c",base05:"#9ea7a6",base06:"#a7cfa3",base07:"#b5d8f6",base08:"#2a5491",base09:"#43820d",base0A:"#a03b1e",base0B:"#237986",base0C:"#b02f30",base0D:"#484d79",base0E:"#c59820",base0F:"#c98344"};NF.exports=mp.default});var PF=g((hp,DF)=>{"use strict";hp.__esModule=!0;hp.default={scheme:"colors",author:"mrmrs (http://clrs.cc)",base00:"#111111",base01:"#333333",base02:"#555555",base03:"#777777",base04:"#999999",base05:"#bbbbbb",base06:"#dddddd",base07:"#ffffff",base08:"#ff4136",base09:"#ff851b",base0A:"#ffdc00",base0B:"#2ecc40",base0C:"#7fdbff",base0D:"#0074d9",base0E:"#b10dc9",base0F:"#85144b"};DF.exports=hp.default});var $F=g((gp,FF)=>{"use strict";gp.__esModule=!0;gp.default={scheme:"default",author:"chris kempson (http://chriskempson.com)",base00:"#181818",base01:"#282828",base02:"#383838",base03:"#585858",base04:"#b8b8b8",base05:"#d8d8d8",base06:"#e8e8e8",base07:"#f8f8f8",base08:"#ab4642",base09:"#dc9656",base0A:"#f7ca88",base0B:"#a1b56c",base0C:"#86c1b9",base0D:"#7cafc2",base0E:"#ba8baf",base0F:"#a16946"};FF.exports=gp.default});var jF=g((yp,MF)=>{"use strict";yp.__esModule=!0;yp.default={scheme:"eighties",author:"chris kempson (http://chriskempson.com)",base00:"#2d2d2d",base01:"#393939",base02:"#515151",base03:"#747369",base04:"#a09f93",base05:"#d3d0c8",base06:"#e8e6df",base07:"#f2f0ec",base08:"#f2777a",base09:"#f99157",base0A:"#ffcc66",base0B:"#99cc99",base0C:"#66cccc",base0D:"#6699cc",base0E:"#cc99cc",base0F:"#d27b53"};MF.exports=yp.default});var qF=g((bp,LF)=>{"use strict";bp.__esModule=!0;bp.default={scheme:"embers",author:"jannik siebert (https://github.com/janniks)",base00:"#16130F",base01:"#2C2620",base02:"#433B32",base03:"#5A5047",base04:"#8A8075",base05:"#A39A90",base06:"#BEB6AE",base07:"#DBD6D1",base08:"#826D57",base09:"#828257",base0A:"#6D8257",base0B:"#57826D",base0C:"#576D82",base0D:"#6D5782",base0E:"#82576D",base0F:"#825757"};LF.exports=bp.default});var zF=g((vp,BF)=>{"use strict";vp.__esModule=!0;vp.default={scheme:"flat",author:"chris kempson (http://chriskempson.com)",base00:"#2C3E50",base01:"#34495E",base02:"#7F8C8D",base03:"#95A5A6",base04:"#BDC3C7",base05:"#e0e0e0",base06:"#f5f5f5",base07:"#ECF0F1",base08:"#E74C3C",base09:"#E67E22",base0A:"#F1C40F",base0B:"#2ECC71",base0C:"#1ABC9C",base0D:"#3498DB",base0E:"#9B59B6",base0F:"#be643c"};BF.exports=vp.default});var WF=g((xp,UF)=>{"use strict";xp.__esModule=!0;xp.default={scheme:"google",author:"seth wright (http://sethawright.com)",base00:"#1d1f21",base01:"#282a2e",base02:"#373b41",base03:"#969896",base04:"#b4b7b4",base05:"#c5c8c6",base06:"#e0e0e0",base07:"#ffffff",base08:"#CC342B",base09:"#F96A38",base0A:"#FBA922",base0B:"#198844",base0C:"#3971ED",base0D:"#3971ED",base0E:"#A36AC7",base0F:"#3971ED"};UF.exports=xp.default});var KF=g((wp,HF)=>{"use strict";wp.__esModule=!0;wp.default={scheme:"grayscale",author:"alexandre gavioli (https://github.com/alexx2/)",base00:"#101010",base01:"#252525",base02:"#464646",base03:"#525252",base04:"#ababab",base05:"#b9b9b9",base06:"#e3e3e3",base07:"#f7f7f7",base08:"#7c7c7c",base09:"#999999",base0A:"#a0a0a0",base0B:"#8e8e8e",base0C:"#868686",base0D:"#686868",base0E:"#747474",base0F:"#5e5e5e"};HF.exports=wp.default});var GF=g((Ep,VF)=>{"use strict";Ep.__esModule=!0;Ep.default={scheme:"green screen",author:"chris kempson (http://chriskempson.com)",base00:"#001100",base01:"#003300",base02:"#005500",base03:"#007700",base04:"#009900",base05:"#00bb00",base06:"#00dd00",base07:"#00ff00",base08:"#007700",base09:"#009900",base0A:"#007700",base0B:"#00bb00",base0C:"#005500",base0D:"#009900",base0E:"#00bb00",base0F:"#005500"};VF.exports=Ep.default});var ZF=g((Sp,JF)=>{"use strict";Sp.__esModule=!0;Sp.default={scheme:"harmonic16",author:"jannik siebert (https://github.com/janniks)",base00:"#0b1c2c",base01:"#223b54",base02:"#405c79",base03:"#627e99",base04:"#aabcce",base05:"#cbd6e2",base06:"#e5ebf1",base07:"#f7f9fb",base08:"#bf8b56",base09:"#bfbf56",base0A:"#8bbf56",base0B:"#56bf8b",base0C:"#568bbf",base0D:"#8b56bf",base0E:"#bf568b",base0F:"#bf5656"};JF.exports=Sp.default});var XF=g((Ip,YF)=>{"use strict";Ip.__esModule=!0;Ip.default={scheme:"hopscotch",author:"jan t. sott",base00:"#322931",base01:"#433b42",base02:"#5c545b",base03:"#797379",base04:"#989498",base05:"#b9b5b8",base06:"#d5d3d5",base07:"#ffffff",base08:"#dd464c",base09:"#fd8b19",base0A:"#fdcc59",base0B:"#8fc13e",base0C:"#149b93",base0D:"#1290bf",base0E:"#c85e7c",base0F:"#b33508"};YF.exports=Ip.default});var e$=g((_p,QF)=>{"use strict";_p.__esModule=!0;_p.default={scheme:"isotope",author:"jan t. sott",base00:"#000000",base01:"#404040",base02:"#606060",base03:"#808080",base04:"#c0c0c0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#ffffff",base08:"#ff0000",base09:"#ff9900",base0A:"#ff0099",base0B:"#33ff00",base0C:"#00ffff",base0D:"#0066ff",base0E:"#cc00ff",base0F:"#3300ff"};QF.exports=_p.default});var r$=g((Cp,t$)=>{"use strict";Cp.__esModule=!0;Cp.default={scheme:"marrakesh",author:"alexandre gavioli (http://github.com/alexx2/)",base00:"#201602",base01:"#302e00",base02:"#5f5b17",base03:"#6c6823",base04:"#86813b",base05:"#948e48",base06:"#ccc37a",base07:"#faf0a5",base08:"#c35359",base09:"#b36144",base0A:"#a88339",base0B:"#18974e",base0C:"#75a738",base0D:"#477ca1",base0E:"#8868b3",base0F:"#b3588e"};t$.exports=Cp.default});var o$=g((Tp,n$)=>{"use strict";Tp.__esModule=!0;Tp.default={scheme:"mocha",author:"chris kempson (http://chriskempson.com)",base00:"#3B3228",base01:"#534636",base02:"#645240",base03:"#7e705a",base04:"#b8afad",base05:"#d0c8c6",base06:"#e9e1dd",base07:"#f5eeeb",base08:"#cb6077",base09:"#d28b71",base0A:"#f4bc87",base0B:"#beb55b",base0C:"#7bbda4",base0D:"#8ab3b5",base0E:"#a89bb9",base0F:"#bb9584"};n$.exports=Tp.default});var s$=g((Op,i$)=>{"use strict";Op.__esModule=!0;Op.default={scheme:"monokai",author:"wimer hazenberg (http://www.monokai.nl)",base00:"#272822",base01:"#383830",base02:"#49483e",base03:"#75715e",base04:"#a59f85",base05:"#f8f8f2",base06:"#f5f4f1",base07:"#f9f8f5",base08:"#f92672",base09:"#fd971f",base0A:"#f4bf75",base0B:"#a6e22e",base0C:"#a1efe4",base0D:"#66d9ef",base0E:"#ae81ff",base0F:"#cc6633"};i$.exports=Op.default});var u$=g((Ap,a$)=>{"use strict";Ap.__esModule=!0;Ap.default={scheme:"ocean",author:"chris kempson (http://chriskempson.com)",base00:"#2b303b",base01:"#343d46",base02:"#4f5b66",base03:"#65737e",base04:"#a7adba",base05:"#c0c5ce",base06:"#dfe1e8",base07:"#eff1f5",base08:"#bf616a",base09:"#d08770",base0A:"#ebcb8b",base0B:"#a3be8c",base0C:"#96b5b4",base0D:"#8fa1b3",base0E:"#b48ead",base0F:"#ab7967"};a$.exports=Ap.default});var l$=g((kp,c$)=>{"use strict";kp.__esModule=!0;kp.default={scheme:"paraiso",author:"jan t. sott",base00:"#2f1e2e",base01:"#41323f",base02:"#4f424c",base03:"#776e71",base04:"#8d8687",base05:"#a39e9b",base06:"#b9b6b0",base07:"#e7e9db",base08:"#ef6155",base09:"#f99b15",base0A:"#fec418",base0B:"#48b685",base0C:"#5bc4bf",base0D:"#06b6ef",base0E:"#815ba4",base0F:"#e96ba8"};c$.exports=kp.default});var p$=g((Np,f$)=>{"use strict";Np.__esModule=!0;Np.default={scheme:"pop",author:"chris kempson (http://chriskempson.com)",base00:"#000000",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#b0b0b0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#ffffff",base08:"#eb008a",base09:"#f29333",base0A:"#f8ca12",base0B:"#37b349",base0C:"#00aabb",base0D:"#0e5a94",base0E:"#b31e8d",base0F:"#7a2d00"};f$.exports=Np.default});var m$=g((Rp,d$)=>{"use strict";Rp.__esModule=!0;Rp.default={scheme:"railscasts",author:"ryan bates (http://railscasts.com)",base00:"#2b2b2b",base01:"#272935",base02:"#3a4055",base03:"#5a647e",base04:"#d4cfc9",base05:"#e6e1dc",base06:"#f4f1ed",base07:"#f9f7f3",base08:"#da4939",base09:"#cc7833",base0A:"#ffc66d",base0B:"#a5c261",base0C:"#519f50",base0D:"#6d9cbe",base0E:"#b6b3eb",base0F:"#bc9458"};d$.exports=Rp.default});var g$=g((Dp,h$)=>{"use strict";Dp.__esModule=!0;Dp.default={scheme:"shapeshifter",author:"tyler benziger (http://tybenz.com)",base00:"#000000",base01:"#040404",base02:"#102015",base03:"#343434",base04:"#555555",base05:"#ababab",base06:"#e0e0e0",base07:"#f9f9f9",base08:"#e92f2f",base09:"#e09448",base0A:"#dddd13",base0B:"#0ed839",base0C:"#23edda",base0D:"#3b48e3",base0E:"#f996e2",base0F:"#69542d"};h$.exports=Dp.default});var b$=g((Pp,y$)=>{"use strict";Pp.__esModule=!0;Pp.default={scheme:"solarized",author:"ethan schoonover (http://ethanschoonover.com/solarized)",base00:"#002b36",base01:"#073642",base02:"#586e75",base03:"#657b83",base04:"#839496",base05:"#93a1a1",base06:"#eee8d5",base07:"#fdf6e3",base08:"#dc322f",base09:"#cb4b16",base0A:"#b58900",base0B:"#859900",base0C:"#2aa198",base0D:"#268bd2",base0E:"#6c71c4",base0F:"#d33682"};y$.exports=Pp.default});var x$=g((Fp,v$)=>{"use strict";Fp.__esModule=!0;Fp.default={scheme:"summerfruit",author:"christopher corley (http://cscorley.github.io/)",base00:"#151515",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#B0B0B0",base05:"#D0D0D0",base06:"#E0E0E0",base07:"#FFFFFF",base08:"#FF0086",base09:"#FD8900",base0A:"#ABA800",base0B:"#00C918",base0C:"#1faaaa",base0D:"#3777E6",base0E:"#AD00A1",base0F:"#cc6633"};v$.exports=Fp.default});var E$=g(($p,w$)=>{"use strict";$p.__esModule=!0;$p.default={scheme:"tomorrow",author:"chris kempson (http://chriskempson.com)",base00:"#1d1f21",base01:"#282a2e",base02:"#373b41",base03:"#969896",base04:"#b4b7b4",base05:"#c5c8c6",base06:"#e0e0e0",base07:"#ffffff",base08:"#cc6666",base09:"#de935f",base0A:"#f0c674",base0B:"#b5bd68",base0C:"#8abeb7",base0D:"#81a2be",base0E:"#b294bb",base0F:"#a3685a"};w$.exports=$p.default});var I$=g((Mp,S$)=>{"use strict";Mp.__esModule=!0;Mp.default={scheme:"london tube",author:"jan t. sott",base00:"#231f20",base01:"#1c3f95",base02:"#5a5758",base03:"#737171",base04:"#959ca1",base05:"#d9d8d8",base06:"#e7e7e8",base07:"#ffffff",base08:"#ee2e24",base09:"#f386a1",base0A:"#ffd204",base0B:"#00853e",base0C:"#85cebc",base0D:"#009ddc",base0E:"#98005d",base0F:"#b06110"};S$.exports=Mp.default});var C$=g((jp,_$)=>{"use strict";jp.__esModule=!0;jp.default={scheme:"twilight",author:"david hart (http://hart-dev.com)",base00:"#1e1e1e",base01:"#323537",base02:"#464b50",base03:"#5f5a60",base04:"#838184",base05:"#a7a7a7",base06:"#c3c3c3",base07:"#ffffff",base08:"#cf6a4c",base09:"#cda869",base0A:"#f9ee98",base0B:"#8f9d6a",base0C:"#afc4db",base0D:"#7587a6",base0E:"#9b859d",base0F:"#9b703f"};_$.exports=jp.default});var T$=g(ie=>{"use strict";ie.__esModule=!0;function se(e){return e&&e.__esModule?e.default:e}var lZ=uF();ie.threezerotwofour=se(lZ);var fZ=lF();ie.apathy=se(fZ);var pZ=pF();ie.ashes=se(pZ);var dZ=mF();ie.atelierDune=se(dZ);var mZ=gF();ie.atelierForest=se(mZ);var hZ=bF();ie.atelierHeath=se(hZ);var gZ=xF();ie.atelierLakeside=se(gZ);var yZ=EF();ie.atelierSeaside=se(yZ);var bZ=IF();ie.bespin=se(bZ);var vZ=CF();ie.brewer=se(vZ);var xZ=OF();ie.bright=se(xZ);var wZ=kF();ie.chalk=se(wZ);var EZ=RF();ie.codeschool=se(EZ);var SZ=PF();ie.colors=se(SZ);var IZ=$F();ie.default=se(IZ);var _Z=jF();ie.eighties=se(_Z);var CZ=qF();ie.embers=se(CZ);var TZ=zF();ie.flat=se(TZ);var OZ=WF();ie.google=se(OZ);var AZ=KF();ie.grayscale=se(AZ);var kZ=GF();ie.greenscreen=se(kZ);var NZ=ZF();ie.harmonic=se(NZ);var RZ=XF();ie.hopscotch=se(RZ);var DZ=e$();ie.isotope=se(DZ);var PZ=r$();ie.marrakesh=se(PZ);var FZ=o$();ie.mocha=se(FZ);var $Z=s$();ie.monokai=se($Z);var MZ=u$();ie.ocean=se(MZ);var jZ=l$();ie.paraiso=se(jZ);var LZ=p$();ie.pop=se(LZ);var qZ=m$();ie.railscasts=se(qZ);var BZ=g$();ie.shapeshifter=se(BZ);var zZ=b$();ie.solarized=se(zZ);var UZ=x$();ie.summerfruit=se(UZ);var WZ=E$();ie.tomorrow=se(WZ);var HZ=I$();ie.tube=se(HZ);var KZ=C$();ie.twilight=se(KZ)});var A$=g((fke,O$)=>{"use strict";O$.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var N$=g((pke,k$)=>{k$.exports=function(t){return!t||typeof t=="string"?!1:t instanceof Array||Array.isArray(t)||t.length>=0&&(t.splice instanceof Function||Object.getOwnPropertyDescriptor(t,t.length-1)&&t.constructor.name!=="String")}});var P$=g((dke,D$)=>{"use strict";var VZ=N$(),GZ=Array.prototype.concat,JZ=Array.prototype.slice,R$=D$.exports=function(t){for(var r=[],n=0,o=t.length;n{var bu=A$(),vu=P$(),F$=Object.hasOwnProperty,$$=Object.create(null);for(Lp in bu)F$.call(bu,Lp)&&($$[bu[Lp]]=Lp);var Lp,Mt=M$.exports={to:{},get:{}};Mt.get=function(e){var t=e.substring(0,3).toLowerCase(),r,n;switch(t){case"hsl":r=Mt.get.hsl(e),n="hsl";break;case"hwb":r=Mt.get.hwb(e),n="hwb";break;default:r=Mt.get.rgb(e),n="rgb";break}return r?{model:n,value:r}:null};Mt.get.rgb=function(e){if(!e)return null;var t=/^#([a-f0-9]{3,4})$/i,r=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,n=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,o=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,i=/^(\w+)$/,s=[0,0,0,1],a,u,l;if(a=e.match(r)){for(l=a[2],a=a[1],u=0;u<3;u++){var c=u*2;s[u]=parseInt(a.slice(c,c+2),16)}l&&(s[3]=parseInt(l,16)/255)}else if(a=e.match(t)){for(a=a[1],l=a[3],u=0;u<3;u++)s[u]=parseInt(a[u]+a[u],16);l&&(s[3]=parseInt(l+l,16)/255)}else if(a=e.match(n)){for(u=0;u<3;u++)s[u]=parseInt(a[u+1],0);a[4]&&(a[5]?s[3]=parseFloat(a[4])*.01:s[3]=parseFloat(a[4]))}else if(a=e.match(o)){for(u=0;u<3;u++)s[u]=Math.round(parseFloat(a[u+1])*2.55);a[4]&&(a[5]?s[3]=parseFloat(a[4])*.01:s[3]=parseFloat(a[4]))}else return(a=e.match(i))?a[1]==="transparent"?[0,0,0,0]:F$.call(bu,a[1])?(s=bu[a[1]],s[3]=1,s):null:null;for(u=0;u<3;u++)s[u]=Bn(s[u],0,255);return s[3]=Bn(s[3],0,1),s};Mt.get.hsl=function(e){if(!e)return null;var t=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,r=e.match(t);if(r){var n=parseFloat(r[4]),o=(parseFloat(r[1])%360+360)%360,i=Bn(parseFloat(r[2]),0,100),s=Bn(parseFloat(r[3]),0,100),a=Bn(isNaN(n)?1:n,0,1);return[o,i,s,a]}return null};Mt.get.hwb=function(e){if(!e)return null;var t=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,r=e.match(t);if(r){var n=parseFloat(r[4]),o=(parseFloat(r[1])%360+360)%360,i=Bn(parseFloat(r[2]),0,100),s=Bn(parseFloat(r[3]),0,100),a=Bn(isNaN(n)?1:n,0,1);return[o,i,s,a]}return null};Mt.to.hex=function(){var e=vu(arguments);return"#"+qp(e[0])+qp(e[1])+qp(e[2])+(e[3]<1?qp(Math.round(e[3]*255)):"")};Mt.to.rgb=function(){var e=vu(arguments);return e.length<4||e[3]===1?"rgb("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+")":"rgba("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+", "+e[3]+")"};Mt.to.rgb.percent=function(){var e=vu(arguments),t=Math.round(e[0]/255*100),r=Math.round(e[1]/255*100),n=Math.round(e[2]/255*100);return e.length<4||e[3]===1?"rgb("+t+"%, "+r+"%, "+n+"%)":"rgba("+t+"%, "+r+"%, "+n+"%, "+e[3]+")"};Mt.to.hsl=function(){var e=vu(arguments);return e.length<4||e[3]===1?"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)":"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+e[3]+")"};Mt.to.hwb=function(){var e=vu(arguments),t="";return e.length>=4&&e[3]!==1&&(t=", "+e[3]),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+t+")"};Mt.to.keyword=function(e){return $$[e.slice(0,3)]};function Bn(e,t,r){return Math.min(Math.max(t,e),r)}function qp(e){var t=Math.round(e).toString(16).toUpperCase();return t.length<2?"0"+t:t}});var q$=g((hke,L$)=>{"use strict";L$.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var hb=g((gke,W$)=>{var Mo=q$(),U$={};for(Bp in Mo)Mo.hasOwnProperty(Bp)&&(U$[Mo[Bp]]=Bp);var Bp,L=W$.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(mt in L)if(L.hasOwnProperty(mt)){if(!("channels"in L[mt]))throw new Error("missing channels property: "+mt);if(!("labels"in L[mt]))throw new Error("missing channel labels property: "+mt);if(L[mt].labels.length!==L[mt].channels)throw new Error("channel and label counts mismatch: "+mt);B$=L[mt].channels,z$=L[mt].labels,delete L[mt].channels,delete L[mt].labels,Object.defineProperty(L[mt],"channels",{value:B$}),Object.defineProperty(L[mt],"labels",{value:z$})}var B$,z$,mt;L.rgb.hsl=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,o=Math.min(t,r,n),i=Math.max(t,r,n),s=i-o,a,u,l;return i===o?a=0:t===i?a=(r-n)/s:r===i?a=2+(n-t)/s:n===i&&(a=4+(t-r)/s),a=Math.min(a*60,360),a<0&&(a+=360),l=(o+i)/2,i===o?u=0:l<=.5?u=s/(i+o):u=s/(2-i-o),[a,u*100,l*100]};L.rgb.hsv=function(e){var t,r,n,o,i,s=e[0]/255,a=e[1]/255,u=e[2]/255,l=Math.max(s,a,u),c=l-Math.min(s,a,u),f=function(p){return(l-p)/6/c+1/2};return c===0?o=i=0:(i=c/l,t=f(s),r=f(a),n=f(u),s===l?o=n-r:a===l?o=1/3+t-n:u===l&&(o=2/3+r-t),o<0?o+=1:o>1&&(o-=1)),[o*360,i*100,l*100]};L.rgb.hwb=function(e){var t=e[0],r=e[1],n=e[2],o=L.rgb.hsl(e)[0],i=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[o,i*100,n*100]};L.rgb.cmyk=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,o,i,s,a;return a=Math.min(1-t,1-r,1-n),o=(1-t-a)/(1-a)||0,i=(1-r-a)/(1-a)||0,s=(1-n-a)/(1-a)||0,[o*100,i*100,s*100,a*100]};function ZZ(e,t){return Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)+Math.pow(e[2]-t[2],2)}L.rgb.keyword=function(e){var t=U$[e];if(t)return t;var r=1/0,n;for(var o in Mo)if(Mo.hasOwnProperty(o)){var i=Mo[o],s=ZZ(e,i);s.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92;var o=t*.4124+r*.3576+n*.1805,i=t*.2126+r*.7152+n*.0722,s=t*.0193+r*.1192+n*.9505;return[o*100,i*100,s*100]};L.rgb.lab=function(e){var t=L.rgb.xyz(e),r=t[0],n=t[1],o=t[2],i,s,a;return r/=95.047,n/=100,o/=108.883,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,i=116*n-16,s=500*(r-n),a=200*(n-o),[i,s,a]};L.hsl.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100,o,i,s,a,u;if(r===0)return u=n*255,[u,u,u];n<.5?i=n*(1+r):i=n+r-n*r,o=2*n-i,a=[0,0,0];for(var l=0;l<3;l++)s=t+1/3*-(l-1),s<0&&s++,s>1&&s--,6*s<1?u=o+(i-o)*6*s:2*s<1?u=i:3*s<2?u=o+(i-o)*(2/3-s)*6:u=o,a[l]=u*255;return a};L.hsl.hsv=function(e){var t=e[0],r=e[1]/100,n=e[2]/100,o=r,i=Math.max(n,.01),s,a;return n*=2,r*=n<=1?n:2-n,o*=i<=1?i:2-i,a=(n+r)/2,s=n===0?2*o/(i+o):2*r/(n+r),[t,s*100,a*100]};L.hsv.rgb=function(e){var t=e[0]/60,r=e[1]/100,n=e[2]/100,o=Math.floor(t)%6,i=t-Math.floor(t),s=255*n*(1-r),a=255*n*(1-r*i),u=255*n*(1-r*(1-i));switch(n*=255,o){case 0:return[n,u,s];case 1:return[a,n,s];case 2:return[s,n,u];case 3:return[s,a,n];case 4:return[u,s,n];case 5:return[n,s,a]}};L.hsv.hsl=function(e){var t=e[0],r=e[1]/100,n=e[2]/100,o=Math.max(n,.01),i,s,a;return a=(2-r)*n,i=(2-r)*o,s=r*o,s/=i<=1?i:2-i,s=s||0,a/=2,[t,s*100,a*100]};L.hwb.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100,o=r+n,i,s,a,u;o>1&&(r/=o,n/=o),i=Math.floor(6*t),s=1-n,a=6*t-i,i&1&&(a=1-a),u=r+a*(s-r);var l,c,f;switch(i){default:case 6:case 0:l=s,c=u,f=r;break;case 1:l=u,c=s,f=r;break;case 2:l=r,c=s,f=u;break;case 3:l=r,c=u,f=s;break;case 4:l=u,c=r,f=s;break;case 5:l=s,c=r,f=u;break}return[l*255,c*255,f*255]};L.cmyk.rgb=function(e){var t=e[0]/100,r=e[1]/100,n=e[2]/100,o=e[3]/100,i,s,a;return i=1-Math.min(1,t*(1-o)+o),s=1-Math.min(1,r*(1-o)+o),a=1-Math.min(1,n*(1-o)+o),[i*255,s*255,a*255]};L.xyz.rgb=function(e){var t=e[0]/100,r=e[1]/100,n=e[2]/100,o,i,s;return o=t*3.2406+r*-1.5372+n*-.4986,i=t*-.9689+r*1.8758+n*.0415,s=t*.0557+r*-.204+n*1.057,o=o>.0031308?1.055*Math.pow(o,1/2.4)-.055:o*12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*12.92,s=s>.0031308?1.055*Math.pow(s,1/2.4)-.055:s*12.92,o=Math.min(Math.max(0,o),1),i=Math.min(Math.max(0,i),1),s=Math.min(Math.max(0,s),1),[o*255,i*255,s*255]};L.xyz.lab=function(e){var t=e[0],r=e[1],n=e[2],o,i,s;return t/=95.047,r/=100,n/=108.883,t=t>.008856?Math.pow(t,1/3):7.787*t+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,o=116*r-16,i=500*(t-r),s=200*(r-n),[o,i,s]};L.lab.xyz=function(e){var t=e[0],r=e[1],n=e[2],o,i,s;i=(t+16)/116,o=r/500+i,s=i-n/200;var a=Math.pow(i,3),u=Math.pow(o,3),l=Math.pow(s,3);return i=a>.008856?a:(i-16/116)/7.787,o=u>.008856?u:(o-16/116)/7.787,s=l>.008856?l:(s-16/116)/7.787,o*=95.047,i*=100,s*=108.883,[o,i,s]};L.lab.lch=function(e){var t=e[0],r=e[1],n=e[2],o,i,s;return o=Math.atan2(n,r),i=o*360/2/Math.PI,i<0&&(i+=360),s=Math.sqrt(r*r+n*n),[t,s,i]};L.lch.lab=function(e){var t=e[0],r=e[1],n=e[2],o,i,s;return s=n/360*2*Math.PI,o=r*Math.cos(s),i=r*Math.sin(s),[t,o,i]};L.rgb.ansi16=function(e){var t=e[0],r=e[1],n=e[2],o=1 in arguments?arguments[1]:L.rgb.hsv(e)[2];if(o=Math.round(o/50),o===0)return 30;var i=30+(Math.round(n/255)<<2|Math.round(r/255)<<1|Math.round(t/255));return o===2&&(i+=60),i};L.hsv.ansi16=function(e){return L.rgb.ansi16(L.hsv.rgb(e),e[2])};L.rgb.ansi256=function(e){var t=e[0],r=e[1],n=e[2];if(t===r&&r===n)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;var o=16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5);return o};L.ansi16.rgb=function(e){var t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];var r=(~~(e>50)+1)*.5,n=(t&1)*r*255,o=(t>>1&1)*r*255,i=(t>>2&1)*r*255;return[n,o,i]};L.ansi256.rgb=function(e){if(e>=232){var t=(e-232)*10+8;return[t,t,t]}e-=16;var r,n=Math.floor(e/36)/5*255,o=Math.floor((r=e%36)/6)/5*255,i=r%6/5*255;return[n,o,i]};L.rgb.hex=function(e){var t=((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255),r=t.toString(16).toUpperCase();return"000000".substring(r.length)+r};L.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var r=t[0];t[0].length===3&&(r=r.split("").map(function(a){return a+a}).join(""));var n=parseInt(r,16),o=n>>16&255,i=n>>8&255,s=n&255;return[o,i,s]};L.rgb.hcg=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,o=Math.max(Math.max(t,r),n),i=Math.min(Math.min(t,r),n),s=o-i,a,u;return s<1?a=i/(1-s):a=0,s<=0?u=0:o===t?u=(r-n)/s%6:o===r?u=2+(n-t)/s:u=4+(t-r)/s+4,u/=6,u%=1,[u*360,s*100,a*100]};L.hsl.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=1,o=0;return r<.5?n=2*t*r:n=2*t*(1-r),n<1&&(o=(r-.5*n)/(1-n)),[e[0],n*100,o*100]};L.hsv.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=t*r,o=0;return n<1&&(o=(r-n)/(1-n)),[e[0],n*100,o*100]};L.hcg.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100;if(r===0)return[n*255,n*255,n*255];var o=[0,0,0],i=t%1*6,s=i%1,a=1-s,u=0;switch(Math.floor(i)){case 0:o[0]=1,o[1]=s,o[2]=0;break;case 1:o[0]=a,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=s;break;case 3:o[0]=0,o[1]=a,o[2]=1;break;case 4:o[0]=s,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=a}return u=(1-r)*n,[(r*o[0]+u)*255,(r*o[1]+u)*255,(r*o[2]+u)*255]};L.hcg.hsv=function(e){var t=e[1]/100,r=e[2]/100,n=t+r*(1-t),o=0;return n>0&&(o=t/n),[e[0],o*100,n*100]};L.hcg.hsl=function(e){var t=e[1]/100,r=e[2]/100,n=r*(1-t)+.5*t,o=0;return n>0&&n<.5?o=t/(2*n):n>=.5&&n<1&&(o=t/(2*(1-n))),[e[0],o*100,n*100]};L.hcg.hwb=function(e){var t=e[1]/100,r=e[2]/100,n=t+r*(1-t);return[e[0],(n-t)*100,(1-n)*100]};L.hwb.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=1-r,o=n-t,i=0;return o<1&&(i=(n-o)/(1-o)),[e[0],o*100,i*100]};L.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};L.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};L.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};L.gray.hsl=L.gray.hsv=function(e){return[0,0,e[0]]};L.gray.hwb=function(e){return[0,100,e[0]]};L.gray.cmyk=function(e){return[0,0,0,e[0]]};L.gray.lab=function(e){return[e[0],0,0]};L.gray.hex=function(e){var t=Math.round(e[0]/100*255)&255,r=(t<<16)+(t<<8)+t,n=r.toString(16).toUpperCase();return"000000".substring(n.length)+n};L.rgb.gray=function(e){var t=(e[0]+e[1]+e[2])/3;return[t/255*100]}});var K$=g((yke,H$)=>{var zp=hb();function YZ(){for(var e={},t=Object.keys(zp),r=t.length,n=0;n{var gb=hb(),tY=K$(),Gi={},rY=Object.keys(gb);function nY(e){var t=function(r){return r==null?r:(arguments.length>1&&(r=Array.prototype.slice.call(arguments)),e(r))};return"conversion"in e&&(t.conversion=e.conversion),t}function oY(e){var t=function(r){if(r==null)return r;arguments.length>1&&(r=Array.prototype.slice.call(arguments));var n=e(r);if(typeof n=="object")for(var o=n.length,i=0;i{"use strict";var xu=j$(),jt=G$(),vb=[].slice,J$=["keyword","gray","hex"],yb={};Object.keys(jt).forEach(function(e){yb[vb.call(jt[e].labels).sort().join("")]=e});var Up={};function tt(e,t){if(!(this instanceof tt))return new tt(e,t);if(t&&t in J$&&(t=null),t&&!(t in jt))throw new Error("Unknown model: "+t);var r,n;if(e==null)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(e instanceof tt)this.model=e.model,this.color=e.color.slice(),this.valpha=e.valpha;else if(typeof e=="string"){var o=xu.get(e);if(o===null)throw new Error("Unable to parse color from string: "+e);this.model=o.model,n=jt[this.model].channels,this.color=o.value.slice(0,n),this.valpha=typeof o.value[n]=="number"?o.value[n]:1}else if(e.length){this.model=t||"rgb",n=jt[this.model].channels;var i=vb.call(e,0,n);this.color=bb(i,n),this.valpha=typeof e[n]=="number"?e[n]:1}else if(typeof e=="number")e&=16777215,this.model="rgb",this.color=[e>>16&255,e>>8&255,e&255],this.valpha=1;else{this.valpha=1;var s=Object.keys(e);"alpha"in e&&(s.splice(s.indexOf("alpha"),1),this.valpha=typeof e.alpha=="number"?e.alpha:0);var a=s.sort().join("");if(!(a in yb))throw new Error("Unable to parse color from object: "+JSON.stringify(e));this.model=yb[a];var u=jt[this.model].labels,l=[];for(r=0;rr?(t+.05)/(r+.05):(r+.05)/(t+.05)},level:function(e){var t=this.contrast(e);return t>=7.1?"AAA":t>=4.5?"AA":""},isDark:function(){var e=this.rgb().color,t=(e[0]*299+e[1]*587+e[2]*114)/1e3;return t<128},isLight:function(){return!this.isDark()},negate:function(){for(var e=this.rgb(),t=0;t<3;t++)e.color[t]=255-e.color[t];return e},lighten:function(e){var t=this.hsl();return t.color[2]+=t.color[2]*e,t},darken:function(e){var t=this.hsl();return t.color[2]-=t.color[2]*e,t},saturate:function(e){var t=this.hsl();return t.color[1]+=t.color[1]*e,t},desaturate:function(e){var t=this.hsl();return t.color[1]-=t.color[1]*e,t},whiten:function(e){var t=this.hwb();return t.color[1]+=t.color[1]*e,t},blacken:function(e){var t=this.hwb();return t.color[2]+=t.color[2]*e,t},grayscale:function(){var e=this.rgb().color,t=e[0]*.3+e[1]*.59+e[2]*.11;return tt.rgb(t,t,t)},fade:function(e){return this.alpha(this.valpha-this.valpha*e)},opaquer:function(e){return this.alpha(this.valpha+this.valpha*e)},rotate:function(e){var t=this.hsl(),r=t.color[0];return r=(r+e)%360,r=r<0?360+r:r,t.color[0]=r,t},mix:function(e,t){if(!e||!e.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof e);var r=e.rgb(),n=this.rgb(),o=t===void 0?.5:t,i=2*o-1,s=r.alpha()-n.alpha(),a=((i*s===-1?i:(i+s)/(1+i*s))+1)/2,u=1-a;return tt.rgb(a*r.red()+u*n.red(),a*r.green()+u*n.green(),a*r.blue()+u*n.blue(),r.alpha()*o+n.alpha()*(1-o))}};Object.keys(jt).forEach(function(e){if(J$.indexOf(e)===-1){var t=jt[e].channels;tt.prototype[e]=function(){if(this.model===e)return new tt(this);if(arguments.length)return new tt(arguments,e);var r=typeof arguments[t]=="number"?t:this.valpha;return new tt(aY(jt[this.model][e].raw(this.color)).concat(r),e)},tt[e]=function(r){return typeof r=="number"&&(r=bb(vb.call(arguments),t)),new tt(r,e)}}});function iY(e,t){return Number(e.toFixed(t))}function sY(e){return function(t){return iY(t,e)}}function Ne(e,t,r){return e=Array.isArray(e)?e:[e],e.forEach(function(n){(Up[n]||(Up[n]=[]))[t]=r}),e=e[0],function(n){var o;return arguments.length?(r&&(n=r(n)),o=this[e](),o.color[t]=n,o):(o=this[e]().color[t],r&&(o=r(o)),o)}}function ze(e){return function(t){return Math.max(0,Math.min(e,t))}}function aY(e){return Array.isArray(e)?e:[e]}function bb(e,t){for(var r=0;r{var uY="Expected a function",X$="__lodash_placeholder__",Lo=1,Hp=2,cY=4,jo=8,wu=16,Ji=32,Eu=64,i2=128,lY=256,s2=512,Q$=1/0,fY=9007199254740991,pY=17976931348623157e292,e2=0/0,dY=[["ary",i2],["bind",Lo],["bindKey",Hp],["curry",jo],["curryRight",wu],["flip",s2],["partial",Ji],["partialRight",Eu],["rearg",lY]],mY="[object Function]",hY="[object GeneratorFunction]",gY="[object Symbol]",yY=/[\\^$.*+?()[\]{}|]/g,bY=/^\s+|\s+$/g,vY=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,xY=/\{\n\/\* \[wrapped with (.+)\] \*/,wY=/,? & /,EY=/^[-+]0x[0-9a-f]+$/i,SY=/^0b[01]+$/i,IY=/^\[object .+?Constructor\]$/,_Y=/^0o[0-7]+$/i,CY=/^(?:0|[1-9]\d*)$/,TY=parseInt,OY=typeof global=="object"&&global&&global.Object===Object&&global,AY=typeof self=="object"&&self&&self.Object===Object&&self,Iu=OY||AY||Function("return this")();function a2(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function kY(e,t){for(var r=-1,n=e?e.length:0;++r-1}function RY(e,t,r,n){for(var o=e.length,i=r+(n?1:-1);n?i--:++i2?e:void 0}();function UY(e){return Zi(e)?BY(e):{}}function WY(e){if(!Zi(e)||tX(e))return!1;var t=iX(e)||MY(e)?qY:IY;return t.test(nX(e))}function HY(e,t,r,n){for(var o=-1,i=e.length,s=r.length,a=-1,u=t.length,l=Wp(i-s,0),c=Array(u+l),f=!n;++a1&&w.reverse(),c&&u1?"& ":"")+t[n],t=t.join(r>2?", ":" "),e.replace(vY,`{ +/* [wrapped with `+t+`] */ +`)}function eX(e,t){return t=t??fY,!!t&&(typeof e=="number"||CY.test(e))&&e>-1&&e%1==0&&ebe});module.exports=Ed(mee);function Rv(e){var t=new WeakMap;return r=>t.has(r)?t.get(r):gj(t,r,e(r,t))}function gj(e,t,r){return e.set(t,r),r}function Dv(e){return e&&typeof e=="object"?JSON.parse(JSON.stringify(e)):e}var jr=typeof queueMicrotask=="function"?queueMicrotask:(e=>t=>e.then(t))(Promise.resolve());function Pv(e){let t=Promise.resolve(e);return(r,n)=>r||n?(typeof n>"u"&&(n=console.error),t=t.then(r,n)):t}function Fv(){let e,t,r=new Promise((n,o)=>{e=n,t=o});return{resolve:e,reject:t,promise:r}}var Cee=require("obsidian"),rt;(function(e){Object.assign(e,require("obsidian"))})(rt||(rt={}));var Sd="use.me",Id="use.factory",Ko,ls,_d=function(){return Object.defineProperties(e(),{this:{get(){if(Ko)return Ko;throw new TypeError("No current context")}},me:{value:Sd},factory:{value:Id}});function e(o){let i=new Map;i.prev=o;let s=Object.assign(o?u=>{let l=i.get(u);if(!l){for(let d=i.prev;d;d=d.prev)if(l=d.get(u)){l=Object.assign(Object.assign({},l),{s:l.s||1});break}l=l||{s:2,v:r},i.set(u,l)}let c,f,p;for(;;)switch(l.s){case 0:return Ko===s&&ls&&ls.push(u),l.v;case 1:if(c=l.d,!c||a(()=>c.k.every(d=>s(d)===c.c(d)))){l.s=0;break}l.v=c.f;case 2:l.s=4;try{t(i,u,0,a(f=l.v,u,p=[])),p.length&&(l.d={c:s,f,k:p});break}catch(d){l.s=3,l.v=d,l.d=null}case 3:throw l.v;case 4:throw new Error(`Factory ${String(l.v)} didn't resolve ${String(u)}`)}}:u=>_d.this(u),{def(u,l){return t(i,u,2,l),s},set(u,l){return t(i,u,1,l),s},fork(u){let l=e(i);return u!=null?l(u):l}});return o?s.use=s:s;function a(u,l,c){let f=Ko,p=ls;try{return Ko=s,ls=c,u(l)}finally{Ko=f,ls=p}}}function t(o,i,s,a){if(o.has(i)){let u=o.get(i);if(!u.s)throw new Error(`Already read: ${String(i)}`);u.s=s,u.v=a,u.d=null}else o.set(i,{s,v:a})}function r(o){if(typeof o[Sd]=="function")return o[Sd](o);if(n(o))return typeof o.prototype[Id]=="function"?o.prototype[Id]():new o;throw new ReferenceError(`No config for ${String(o)}`)}function n(o){return typeof o=="function"&&o.prototype!==void 0&&(Object.getPrototypeOf(o.prototype)!==Object.prototype||Object.getOwnPropertyNames(o.prototype).length>1||o.toString().startsWith("class"))}}();var yj,Vo=(e=>(e.service=function(t){return e(Mu).addChild(t),e.this},e.plugin=function(t){if(!Lr)yj=t.app,Lr=e.fork(),Lr.set(rt.Plugin,t),Lr.set(t.constructor,t),t.addChild(Lr.use(Mu));else if(t!==Lr.use(rt.Plugin))throw new TypeError("use.plugin() called on multiple plugins");return Lr},e.def(rt.Plugin,()=>{throw new Error("Plugin not created yet")}),e.def(rt.App,()=>e(rt.Plugin).app),e))(_d),Lr;function Cd(e){if(e?.use)return e.use;if(Lr)return Lr;if(e instanceof rt.Plugin)return e.use=Vo.plugin(e);throw new Error("No context available: did you forget to `use.plugin()`?")}var ue=class extends rt.Component{constructor(){super(...arguments),this.use=Vo.service(this)}},Mu=class extends rt.Component{constructor(){super(...arguments),this.children=new Set([this])}onload(){this.loaded=!0}onunload(){this.loaded=!1,this.children.clear()}addChild(t){return this.children.has(t)||(this.children.add(t),this.loaded?jr(()=>super.addChild(t)):super.addChild(t)),t}};function bj(e,t){jr(()=>e.removeChild(t))}function $v(e,t){let r=new rt.Component;r.onload=()=>{bj(e,r),e=null,t()},e.addChild(r)}function Lu(){throw new Error("Cycle detected")}function qu(){if(ln>1){ln--;return}let e,t=!1;for(;fs!==void 0;){let r=fs;for(fs=void 0,Td++;r!==void 0;){let n=r.o;if(r.o=void 0,r.f&=-3,!(8&r.f)&&qv(r))try{r.c()}catch(o){t||(e=o,t=!0)}r=n}}if(Td=0,ln--,t)throw e}function Mv(e){if(ln>0)return e();ln++;try{return e()}finally{qu()}}var Ae,fs;var ln=0,Td=0,ju=0;function jv(e){if(Ae===void 0)return;let t=e.n;if(t===void 0||t.t!==Ae)return t={i:0,S:e,p:Ae.s,n:void 0,t:Ae,e:void 0,x:void 0,r:t},Ae.s!==void 0&&(Ae.s.n=t),Ae.s=t,e.n=t,32&Ae.f&&e.S(t),t;if(t.i===-1)return t.i=0,t.n!==void 0&&(t.n.p=t.p,t.p!==void 0&&(t.p.n=t.n),t.p=Ae.s,t.n=void 0,Ae.s.n=t,Ae.s=t),t}function ht(e){this.v=e,this.i=0,this.n=void 0,this.t=void 0}ht.prototype.h=function(){return!0};ht.prototype.S=function(e){this.t!==e&&e.e===void 0&&(e.x=this.t,this.t!==void 0&&(this.t.e=e),this.t=e)};ht.prototype.U=function(e){if(this.t!==void 0){let t=e.e,r=e.x;t!==void 0&&(t.x=r,e.e=void 0),r!==void 0&&(r.e=t,e.x=void 0),e===this.t&&(this.t=r)}};ht.prototype.subscribe=function(e){let t=this;return Ad(function(){let r=t.value,n=32&this.f;this.f&=-33;try{e(r)}finally{this.f|=n}})};ht.prototype.valueOf=function(){return this.value};ht.prototype.toString=function(){return this.value+""};ht.prototype.toJSON=function(){return this.value};ht.prototype.peek=function(){return this.v};Object.defineProperty(ht.prototype,"value",{get(){let e=jv(this);return e!==void 0&&(e.i=this.i),this.v},set(e){if(Ae instanceof fn&&function(){throw new Error("Computed cannot have side-effects")}(),e!==this.v){Td>100&&Lu(),this.v=e,this.i++,ju++,ln++;try{for(let t=this.t;t!==void 0;t=t.x)t.t.N()}finally{qu()}}}});function Lv(e){return new ht(e)}function qv(e){for(let t=e.s;t!==void 0;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function Bv(e){for(let t=e.s;t!==void 0;t=t.n){let r=t.S.n;if(r!==void 0&&(t.r=r),t.S.n=t,t.i=-1,t.n===void 0){e.s=t;break}}}function zv(e){let t,r=e.s;for(;r!==void 0;){let n=r.p;r.i===-1?(r.S.U(r),n!==void 0&&(n.n=r.n),r.n!==void 0&&(r.n.p=n)):t=r,r.S.n=r.r,r.r!==void 0&&(r.r=void 0),r=n}e.s=t}function fn(e){ht.call(this,void 0),this.x=e,this.s=void 0,this.g=ju-1,this.f=4}(fn.prototype=new ht).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===ju))return!0;if(this.g=ju,this.f|=1,this.i>0&&!qv(this))return this.f&=-2,!0;let e=Ae;try{Bv(this),Ae=this;let t=this.x();(16&this.f||this.v!==t||this.i===0)&&(this.v=t,this.f&=-17,this.i++)}catch(t){this.v=t,this.f|=16,this.i++}return Ae=e,zv(this),this.f&=-2,!0};fn.prototype.S=function(e){if(this.t===void 0){this.f|=36;for(let t=this.s;t!==void 0;t=t.n)t.S.S(t)}ht.prototype.S.call(this,e)};fn.prototype.U=function(e){if(this.t!==void 0&&(ht.prototype.U.call(this,e),this.t===void 0)){this.f&=-33;for(let t=this.s;t!==void 0;t=t.n)t.S.U(t)}};fn.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(let e=this.t;e!==void 0;e=e.x)e.t.N()}};fn.prototype.peek=function(){if(this.h()||Lu(),16&this.f)throw this.v;return this.v};Object.defineProperty(fn.prototype,"value",{get(){1&this.f&&Lu();let e=jv(this);if(this.h(),e!==void 0&&(e.i=this.i),16&this.f)throw this.v;return this.v}});function Bu(e){return new fn(e)}function Uv(e){let t=e.u;if(e.u=void 0,typeof t=="function"){ln++;let r=Ae;Ae=void 0;try{t()}catch(n){throw e.f&=-2,e.f|=8,Od(e),n}finally{Ae=r,qu()}}}function Od(e){for(let t=e.s;t!==void 0;t=t.n)t.S.U(t);e.x=void 0,e.s=void 0,Uv(e)}function vj(e){if(Ae!==this)throw new Error("Out-of-order effect");zv(this),Ae=e,this.f&=-2,8&this.f&&Od(this),qu()}function ps(e){this.x=e,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}ps.prototype.c=function(){let e=this.S();try{if(8&this.f||this.x===void 0)return;let t=this.x();typeof t=="function"&&(this.u=t)}finally{e()}};ps.prototype.S=function(){1&this.f&&Lu(),this.f|=1,this.f&=-9,Uv(this),Bv(this),ln++;let e=Ae;return Ae=this,vj.bind(this,e)};ps.prototype.N=function(){2&this.f||(this.f|=2,this.o=fs,fs=this)};ps.prototype.d=function(){this.f|=8,1&this.f||Od(this)};function Ad(e){let t=new ps(e);try{t.c()}catch(r){throw t.d(),r}return t.d.bind(t)}function kd(e){let t=Bu(e);return()=>t.value}function Wv(e){let t=Lv(e);function r(){return t.value,e}return r.set=function(n){e!==n&&(ms.size||jr(xj),ms.set(t,e=n))},r}var ms=new Map;function xj(){ms.size&&Mv(()=>{for(let[e,t]of ms.entries())ms.delete(e),e.value=t})}var wj=Rv(function(e){return{}});function fe(e,t,r){let n=r.get;return{...r,get(){var o,i;return((o=(i=wj(this))[t])!==null&&o!==void 0?o:i[t]=kd(n.bind(this)))()}}}var ds;function qe(e){let t=Ad(function(){let r=ds,n=ds=[];try{let o=e.call(this);if(o&&n.push(o),n.length)return n.length===1?n.pop():function(){for(;n.length;)try{n.shift()()}catch(i){Promise.reject(i)}}}finally{ds=r}});return ds&&ds.push(t),t}function qt(e,t){let r=Object.keys(t).map(n=>Ej(e,n,t[n]));return r.length===1?r[0]:function(){r.forEach(n=>n())}}function Ej(e,t,r){let n=e[t],o=e.hasOwnProperty(t),i=r(n);return n&&Object.setPrototypeOf(i,n),Object.setPrototypeOf(s,i),e[t]=s,a;function s(...u){return i===n&&e[t]===s&&a(),i.apply(this,u)}function a(){e[t]===s&&(o?e[t]=n:delete e[t]),i!==n&&(i=n,Object.setPrototypeOf(s,n||Function))}}var zu=e=>{if(typeof e!="object"||e===null)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Sj=new Set(["__proto__","prototype","constructor"]),Nd=(e,t)=>{if(!zu(t))return e;e||(e={});for(let[r,n]of Object.entries(t)){if(Sj.has(r))continue;let o=e[r];if(zu(o)&&zu(n))e[r]=Nd(o,n);else{if(n===void 0)continue;zu(n)?e[r]=Nd({},n):Array.isArray(n)?e[r]=[...n]:e[r]=n}}return e};function Uu(e={},t={}){return Nd({...t},{...e})}var Wu=class extends ue{get current(){return this.cloned()}addDefaults(t){this.data=Uu(this.data,t)}constructor(){super(),this.plugin=this.use(rt.Plugin),this.queue=Pv(),this.data={},this.version=Wv(0),this.cloned=kd(()=>this.version()?Dv(this.data):null),this.queue(async()=>{var t;await new Promise(r=>$v(this.plugin,r)),this.data=Uu((t=await this.plugin.loadData())!==null&&t!==void 0?t:{},this.data),this.version.set(this.version()+1)},console.error)}once(t,r){let n=this.each(o=>{n(),t.call(r,o)});return n}each(t,r){return qe(()=>{this.current&&jr(t.bind(r,this.current))})}onChange(t,r){return this.each(t,r)}update(t){return this.queue(async()=>{var r;let n=this.data,o=JSON.stringify(n);try{var i=JSON.parse(o);i=(r=t(i))!==null&&r!==void 0?r:i;let s=JSON.stringify(i);o!==s&&(this.data=i,this.version.set(this.version()+1),await this.plugin.saveData(JSON.parse(s)).catch(console.error))}catch(s){console.error(s)}return this.data})}};function Hv(e,t,r,n){let{resolve:o,promise:i}=Fv(),s=new class extends rt.FuzzySuggestModal{getItemText(a){var u;return(u=t?.(a))!==null&&u!==void 0?u:""+a}getItems(){return e}onChooseItem(a,u){o({item:a,event:u})}onClose(){super.onClose(),jr(()=>o({item:null,event:null}))}}(app);return r&&s.setPlaceholder(r),n?.(s),s.open(),i}var cj=require("obsidian");var Kv=e=>`obsidian-zotero:${e}`;var Bt=({key:e,groupID:t,parentItem:r},n=!1)=>{let o=[e];return!n&&r&&o.push(`a${r}`),typeof t=="number"&&o.push(`g${t}`),o.join("")},Vv=(e,t,r=!0)=>(n,...o)=>{let i="";for(let s=0;s0&&(i+=e(o[s-1])),i+=(r?n.raw:n)[s];return t(i)},Pd=(e=!0,t)=>Vv(r=>r,r=>new RegExp(e?"^"+r+"$":r,t),!0),Rd=String.raw`[23456789ABCDEFGHIJKLMNPQRSTUVWXYZ]{8}`,Dd=String.raw`\d+`,Gv=e=>{let t={annotKey:Rd,parentKey:Rd,groupID:Dd,page:Dd};if(e)for(let r in t)t[r]=`(${t[r]})`;return Vv(r=>t[r],r=>r)`${"annotKey"}a${"parentKey"}(?:g${"groupID"})?(?:p${"page"})?`},Jv=Pd()`${Rd}(?:g${Dd})?`,Zv=Pd()`${Gv(!0)}`,Yv=Pd()`(?:${Gv(!1)}n?)+`,Go=(e,t)=>{if(e===null)return null;let r;return typeof e=="number"?r=e:r=parseInt(e,10),Number.isInteger(r)?t?r+1:r:null};var Xv=(e,t,{getLogger:r,configure:n})=>{let o=Kv(e);return n({appenders:{out:{type:"console"}},categories:{default:{appenders:["out"],level:t},[o]:{appenders:["out"],level:t}}}),r(o)},Qv={ALL:"ALL",TRACE:"TRACE",DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR",FATAL:"FATAL",MARK:"MARK",OFF:"OFF"};var pn=()=>(...e)=>e;var e0=e=>`better-sqlite3-${e}.node`;var al=ge(xS(),1);var Eh=ge(si(),1),Cn=require("obsidian"),n_=ge(IS(),1);var y1=require("http");var Xq=ge(si(),1),Qq=ge(_m(),1),Cm=ge(_m(),1);var WS=pn()("open","export","update");var US=(e,t)=>{let r=new RegExp(`^${t}\\[(\\d+)\\]$`);return Object.entries(e).filter(([n])=>r.test(n)).sort(([n],[o])=>Number(n.match(r)[1])-Number(o.match(r)[1])).map(([,n])=>JSON.parse(n))},Sc=e=>{if(e.type==="item")return{version:e.version,type:e.type,items:US(e,"items")};if(e.type==="annotation")return{version:e.version,type:e.type,annots:US(e,"annots"),parent:JSON.parse(e.parent)};throw new TypeError("Unrecognized query type: "+e.type)};var Tm=/^/;var Ic=require("obsidian");var Ms=require("path");var VS=require("path/posix");var Am=require("obsidian");var HS={"103":{darwin:["arm64","x64"],linux:["x64"],win32:["x64","ia32","arm64"]},"109":{darwin:["arm64","x64"],linux:["x64"],win32:["x64","ia32","arm64"]},"110":{darwin:["arm64","x64"],linux:["x64"],win32:["x64","ia32","arm64"]},"114":{darwin:["arm64","x64"],linux:["x64"],win32:["x64","ia32","arm64"]},"116":{darwin:["arm64","x64"],linux:["x64"],win32:["x64","ia32","arm64"]}};var KS=Am.Platform.isDesktopApp?require("@electron/remote").app.getPath("userData"):null,{arch:iie,platform:sie,versions:{modules:tB,electron:aie}}=process,Om=HS,GS=({modules:e})=>{if(e in Om)return 0;let r=Object.keys(Om).map(o=>parseInt(o,10)).sort((o,i)=>o-i);return parseInt(e,10)>r[r.length-1]?1:-1},JS=({platform:e,arch:t})=>!!Om[tB][e]?.includes(t),ZS=()=>Am.Platform.isDesktopApp?{arch:process.arch,platform:process.platform,modules:process.versions.modules,electron:process.versions.electron}:null,km=e=>e.versions?.["better-sqlite3"],ai=e=>{if(!KS)return null;let t=km(e);return t?(0,VS.join)(KS,e0(t)):null};var YS={citationEditorSuggester:!0,showCitekeyInSuggester:!1};var XS={literatureNoteFolder:"LiteratureNotes"};var QS={enableServer:!1,serverPort:9091,serverHostname:"127.0.0.1"};var Nm=require("path/posix");var e1=`[!note] Page <%= it.pageLabel %> + +<%= it.imgEmbed %><%= it.text %> +<% if (it.comment) { %> +--- +<%= it.comment %> +<% } %>`;var t1=`<% for (const annotation of it) { %> +<%~ include("annotation", annotation) %> +<% } %>`;var r1='[<%= it.map(lit => `@${lit.citekey}`).join("; ") %>]';var n1='<%= it.map(lit => `@${lit.citekey}`).join("; ") %>';var o1=`<%= it.content %>`;var i1=`title: "<%= it.title %>" +citekey: "<%= it.citekey %>"`;var s1=`# <%= it.title %> + +[Zotero](<%= it.backlink %>) <%= it.fileLink %> +<%~ include("annots", it.annotations) %>`;var ot={Ejectable:{note:s1,field:i1,annots:t1,annotation:e1,cite:r1,cite2:n1,colored:o1},Embeded:{filename:"<%= it.citekey ?? it.DOI ?? it.title ?? it.key %>.md"}},_r={Ejectable:Object.keys(ot.Ejectable),Embeded:Object.keys(ot.Embeded),All:Object.keys(ot.Ejectable).concat(Object.keys(ot.Embeded))};function Rm(e){return Object.hasOwn(ot.Embeded,e)?`zt-${e}.eta.md`:Object.hasOwn(ot.Ejectable,e)?e==="annotation"?"zt-annot.eta.md":`zt-${e}.eta.md`:null}function io(e,t){return(0,Nm.join)(t,Rm(e))}function ct(e,t){let r=_r.Embeded.find(o=>(0,Nm.join)(t,`zt-${o}.eta.md`)===e);if(r)return{type:"embeded",name:r};let n=_r.Ejectable.find(o=>io(o,t)===e);return n?{type:"ejectable",name:n}:null}var a1={template:{folder:"ZtTemplates",templates:ot.Embeded},updateAnnotBlock:!1,updateOverwrite:!1,autoPairEta:!1,autoTrim:[!1,!1]};var u1={autoRefresh:!0};var c1=require("os"),l1=require("path"),f1=()=>({zoteroDataDir:(0,l1.join)((0,c1.homedir)(),"Zotero"),citationLibrary:1});var p1=require("obsidian"),d1={imgExcerptImport:p1.Platform.isWin?"copy":"symlink",imgExcerptPath:"ZtImgExcerpt"};var m1=()=>({...h1,...YS,...XS,...QS,...a1,...u1,...f1(),...d1});function Qe(e,t,r=!1){let n=0;return(...o)=>{if(t(),n++>(r?1:0))return e(...o)}}var de=class extends Wu{#e=this.use(be);#t;get nativeBinding(){if(this.#t)return this.#t;let t=ai(this.#e.manifest);if(t)return this.#t=t,this.#t;throw new Error("Failed to get native binding path")}get templateDir(){return this.current?.template?.folder}get libId(){return this.current?.citationLibrary}get simpleTemplates(){return this.current?.template?.templates}get zoteroDbPath(){return(0,Ms.join)(this.current?.zoteroDataDir,"zotero.sqlite")}get bbtSearchDbPath(){return(0,Ms.join)(this.current?.zoteroDataDir,"better-bibtex-search.sqlite")}get bbtMainDbPath(){return(0,Ms.join)(this.current?.zoteroDataDir,"better-bibtex.sqlite")}get zoteroCacheDirPath(){return(0,Ms.join)(this.current?.zoteroDataDir,"cache")}get dbConnParams(){return[{zotero:this.zoteroDbPath,bbtSearch:this.bbtSearchDbPath,bbtMain:this.bbtMainDbPath},{nativeBinding:this.nativeBinding}]}};le([fe],de.prototype,"templateDir",1),le([fe],de.prototype,"libId",1),le([fe],de.prototype,"simpleTemplates",1),le([fe],de.prototype,"zoteroDbPath",1),le([fe],de.prototype,"bbtSearchDbPath",1),le([fe],de.prototype,"bbtMainDbPath",1),le([fe],de.prototype,"zoteroCacheDirPath",1),le([fe],de.prototype,"dbConnParams",1);function g1(e){let t=Cd(e)(de);return t.addDefaults(m1()),t}var cB=new Set(["notify"]),lB=new Set([...WS.map(e=>`zotero/${e}`)]),Ur=class extends ue{#e=new Ic.Events;settings=this.use(de);plugin=this.use(be);server=null;get port(){return this.settings.current?.serverPort}get hostname(){return this.settings.current?.serverHostname}get enableServer(){return this.settings.current?.enableServer}onload(){this.register(qe(Qe(()=>{this.enableServer?this.initServer():this.closeServer()},()=>this.enableServer))),this.register(qe(Qe(()=>{this.reloadPort(),new Ic.Notice("Server port is saved and applied.")},()=>(this.port,this.hostname),!0))),this.registerObsidianProtocolHandler()}onunload(){this.closeServer(),this.server=null}registerObsidianProtocolHandler(){let t=r=>{let{action:n,...o}=r;this.trigger(n,o)};for(let r of lB)this.plugin.registerObsidianProtocolHandler(r,t)}#t(){this.server??=(0,y1.createServer)((t,r)=>{this.requestListener(t,r)})}#r(){this.server?.listening||this.server?.listen(this.port,this.hostname,()=>this.listeningListener())}initServer(){this.#t(),this.#r()}closeServer(){this.server?.close()}reloadPort(){this.enableServer&&(this.closeServer(),this.#t(),this.#r())}requestListener(t,r){if(!t.url){W.error("Request without url"),r.statusCode=400,r.end();return}W.trace("server recieved req",t.url,t.rawHeaders);let{pathname:n,searchParams:o}=new URL(t.url,`http://${t.headers.host}`),i=n.substring(1),s=`bg:${n.substring(1)}`;if(cB.has(i)){let a=Object.fromEntries(o.entries());t.headers["content-type"]==="application/json"?new Promise((u,l)=>{let c="";t.on("data",f=>c+=f),t.on("error",f=>l(f)),t.on("end",()=>{try{u(JSON.parse(c))}catch(f){l(f)}})}).then(u=>{this.trigger(s,a,u),r.end()}):(this.trigger(s,a),r.end())}else r.statusCode=404,r.end()}listeningListener(){this.server&&W.info(`Server is listening at ${fB(this.server)}`)}on(t,r,n){return this.#e.on(t,r,n)}off(t,r){return this.#e.off(t,r)}offref(t){return this.#e.offref(t)}trigger(t,...r){return W.trace(`server trigger ${t}`,...r),this.#e.trigger(t,...r)}tryTrigger(t,r){return this.#e.tryTrigger(t,r)}};le([fe],Ur.prototype,"port",1),le([fe],Ur.prototype,"hostname",1),le([fe],Ur.prototype,"enableServer",1);function fB(e){let t=e.address();return t?typeof t=="string"?t:`${t.address}:${t.port}`:"?"}var b1=ge(si(),1),v1=require("obsidian");function x1(e,t={}){return qs({...t,register:r=>e.metadataCache.on("initialized",r),unregister:r=>e.metadataCache.offref(r),escape:()=>e.metadataCache.initialized,timeout:t.timeout??null})}function Dm(e,t={}){return qs({...t,register:r=>e.vault.on("zotero:db-refresh",r),unregister:r=>e.vault.offref(r)})}function ui(e,t={}){return qs({...t,unregister:r=>e.app.vault.offref(r),escape:()=>e.dbWorker.status===2,register:r=>{let n=e.dbWorker.status;if(n===0)return e.app.vault.on("zotero:db-ready",r);if(n===1)return e.app.vault.on("zotero:db-refresh",r);if(n===2)throw new Error("should not be called when db is ready");(0,b1.assertNever)(n)}})}var w1=e=>new Promise(t=>{e.workspace.onLayoutReady(t)}),qs=({register:e,unregister:t,escape:r,timeout:n=1e4,waitAfterEvent:o,debounce:i=1e3})=>{let s=null;return[new Promise((u,l)=>{if(r?.()){u();return}s=function(){t(p),l(new Ls)};function c(){t(p),u()}async function f(){o!==void 0&&await sleep(o),c()}let p=e(i?(0,v1.debounce)(f,i,!0):f);n!==null&&sleep(n).then(()=>{t(p),r?.()?c():l(new js(n))})}),s]},js=class extends Error{constructor(r){super(`Timeout after ${r}ms`);this.timeout=r}},Ls=class extends Error{constructor(){super("Manually cancelled")}};var dB=e=>{let t=new Blob([e],{type:"text/javascript"});return URL.createObjectURL(t)},E1=(e,t)=>{let r=dB(e),n=new Worker(r,t);return URL.revokeObjectURL(r),n};var Pm=class extends Error{},xe=e=>{throw new Pm(e)},Fm=class extends Error{},he=e=>{throw new Fm(e)};var xn=(e,t)=>De(e)===t,De=e=>{let t=typeof e;return t==="object"?e===null?"null":"object":t==="function"?"object":t},$m={bigint:"a bigint",boolean:"boolean",null:"null",number:"a number",object:"an object",string:"a string",symbol:"a symbol",undefined:"undefined"};var Gt=(e,t)=>e in t,S1=e=>Object.entries(e),we=e=>Object.keys(e),so=e=>{let t=[];for(;e!==Object.prototype&&e!==null&&e!==void 0;){for(let r of Object.getOwnPropertyNames(e))t.includes(r)||t.push(r);for(let r of Object.getOwnPropertySymbols(e))t.includes(r)||t.push(r);e=Object.getPrototypeOf(e)}return t},ci=(e,t)=>{let r=e?.[t];return r!=null};var I1=e=>Object.keys(e).length,Bs=e=>xn(e,"object")?Object.keys(e).length!==0:!1,sse=Symbol("id");var Cr=e=>Array.isArray(e)?e:[e];var We=class extends Array{static fromString(t,r="/"){return t===r?new We:new We(...t.split(r))}toString(t="/"){return this.length?this.join(t):t}},_1=(e,t)=>{let r=e;for(let n of t){if(typeof r!="object"||r===null)return;r=r[n]}return r};var Mm=/^(?!^-0$)-?(?:0|[1-9]\d*)(?:\.\d*[1-9])?$/,mB=e=>Mm.test(e),hB=/^-?\d*\.?\d*$/,gB=e=>e.length!==0&&hB.test(e),_c=/^(?:0|(?:-?[1-9]\d*))$/,zs=e=>_c.test(e),Us=/^(?:0|(?:[1-9]\d*))$/,C1=/^-?\d+$/,yB=e=>C1.test(e),T1={number:"a number",bigint:"a bigint",integer:"an integer"},O1=(e,t)=>`'${e}' was parsed as ${T1[t]} but could not be narrowed to a literal value. Avoid unnecessary leading or trailing zeros and other abnormal notation`,bB=(e,t)=>t==="number"?mB(e):zs(e),vB=(e,t)=>t==="number"?Number(e):Number.parseInt(e),xB=(e,t)=>t==="number"?gB(e):yB(e),Ws=(e,t)=>A1(e,"number",t),Cc=(e,t)=>A1(e,"integer",t),A1=(e,t,r)=>{let n=vB(e,t);if(!Number.isNaN(n)){if(bB(e,t))return n;if(xB(e,t))return he(O1(e,t))}return r?he(r===!0?`Failed to parse ${T1[t]} from '${e}'`:r):void 0},jm=e=>{if(e[e.length-1]!=="n")return;let t=e.slice(0,-1),r;try{r=BigInt(t)}catch{return}if(_c.test(t))return r;if(C1.test(t))return he(O1(e,"bigint"))};var Te=(e,t)=>{switch(De(e)){case"object":return JSON.stringify(Lm(e,Tc,[]),null,t);case"symbol":return Tc.onSymbol(e);default:return qm(e)}},Tc={onCycle:()=>"(cycle)",onSymbol:e=>`(symbol${e.description&&` ${e.description}`})`,onFunction:e=>`(function${e.name&&` ${e.name}`})`},Lm=(e,t,r)=>{switch(De(e)){case"object":if(typeof e=="function")return Tc.onFunction(e);if(r.includes(e))return"(cycle)";let n=[...r,e];if(Array.isArray(e))return e.map(i=>Lm(i,t,n));let o={};for(let i in e)o[i]=Lm(e[i],t,n);return o;case"symbol":return Tc.onSymbol(e);case"bigint":return`${e}n`;case"undefined":return"undefined";default:return e}},qm=e=>typeof e=="string"?`'${e}'`:typeof e=="bigint"?`${e}n`:`${e}`;function wB(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function EB(e,t){return t.get?t.get.call(e):t.value}function SB(e,t,r){if(t.set)t.set.call(e,r);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=r}}function N1(e,t,r){if(!t.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}function k1(e,t){var r=N1(e,t,"get");return EB(e,r)}function IB(e,t,r){wB(e,t),t.set(e,r)}function _B(e,t,r){var n=N1(e,t,"set");return SB(e,n,r),r}function Oc(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Jt=e=>(t,r,n)=>t===void 0?r===void 0?xe(Nc):r:r===void 0?t:e(t,r,n),Nc="Unexpected operation two undefined operands",Bm={domain:({l:e,r:t})=>`${e.join(", ")} and ${t.join(", ")}`,range:({l:e,r:t})=>`${kc(e)} and ${kc(t)}`,class:({l:e,r:t})=>`classes ${typeof e=="string"?e:e.name} and ${typeof t=="string"?t:t.name}`,tupleLength:({l:e,r:t})=>`tuples of length ${e} and ${t}`,value:({l:e,r:t})=>`literal values ${Te(e)} and ${Te(t)}`,leftAssignability:({l:e,r:t})=>`literal value ${Te(e.value)} and ${Te(t)}`,rightAssignability:({l:e,r:t})=>`literal value ${Te(t.value)} and ${Te(e)}`,union:({l:e,r:t})=>`branches ${Te(e)} and branches ${Te(t)}`},kc=e=>"limit"in e?`the range of exactly ${e.limit}`:e.min?e.max?`the range bounded by ${e.min.comparator}${e.min.limit} and ${e.max.comparator}${e.max.limit}`:`${e.min.comparator}${e.min.limit}`:e.max?`${e.max.comparator}${e.max.limit}`:"the unbounded range",Ac=new WeakMap,wn=class{get disjoints(){return k1(this,Ac)}addDisjoint(t,r,n){return k1(this,Ac)[`${this.path}`]={kind:t,l:r,r:n},Rc}constructor(t,r){Oc(this,"type",void 0),Oc(this,"lastOperator",void 0),Oc(this,"path",void 0),Oc(this,"domain",void 0),IB(this,Ac,{writable:!0,value:void 0}),this.type=t,this.lastOperator=r,this.path=new We,_B(this,Ac,{})}},Rc=Symbol("empty"),R1=()=>Rc,ur=e=>e===Rc,D1=Symbol("equal"),He=()=>D1,Zt=e=>e===D1,li=(e,t)=>(r,n,o)=>{let i={},s=we({...r,...n}),a=!0,u=!0;for(let l of s){let c=typeof e=="function"?e(l,r[l],n[l],o):e[l](r[l],n[l],o);if(Zt(c))r[l]!==void 0&&(i[l]=r[l]);else if(ur(c))if(t.onEmpty==="omit")a=!1,u=!1;else return Rc;else c!==void 0&&(i[l]=c),a&&(a=c===r[l]),u&&(u=c===n[l])}return a?u?He():r:u?n:i};var P1=e=>{let t=we(e);if(t.length===1){let n=t[0];return`${n==="/"?"":`At ${n}: `}Intersection of ${Bm[e[n].kind](e[n])} results in an unsatisfiable type`}let r=` + "Intersection results in unsatisfiable types at the following paths: +`;for(let n in e)r+=` ${n}: ${Bm[e[n].kind](e[n])} +`;return r},Dc=(e,t,r)=>`${e.length?`At ${e}: `:""}${t} ${r?`${r} `:""}results in an unsatisfiable type`;var Hs={Array,Date,Error,Function,Map,RegExp,Set,Object,String,Number,Boolean,WeakMap,WeakSet,Promise},fi=(e,t)=>{if(De(e)!=="object")return;let r=t??Hs,n=Object.getPrototypeOf(e);for(;n?.constructor&&(!r[n.constructor.name]||!(e instanceof r[n.constructor.name]));)n=Object.getPrototypeOf(n);return n?.constructor?.name};var En=e=>Array.isArray(e),zm={Object:"an object",Array:"an array",Function:"a function",Date:"a Date",RegExp:"a RegExp",Error:"an Error",Map:"a Map",Set:"a Set",String:"a String object",Number:"a Number object",Boolean:"a Boolean object",Promise:"a Promise",WeakMap:"a WeakMap",WeakSet:"a WeakSet"},Pc=e=>{let t=Object(e).name;return t&&Gt(t,Hs)&&Hs[t]===e?t:void 0};var F1=Jt((e,t,r)=>e===t?He():e instanceof t?e:t instanceof e?t:r.addDisjoint("class",e,t)),$1=(e,t)=>typeof e=="string"?fi(t.data)===e||!t.problems.add("class",e):t.data instanceof e||!t.problems.add("class",e);var Fc=(e,t)=>{if(Array.isArray(e)){if(Array.isArray(t)){let r=CB(e,t);return r.length===e.length?r.length===t.length?He():e:r.length===t.length?t:r}return e.includes(t)?e:[...e,t]}return Array.isArray(t)?t.includes(e)?t:[...t,e]:e===t?He():[e,t]},CB=(e,t)=>{let r=[...e];for(let n of t)e.includes(n)||r.push(n);return r};var M1=Jt((e,t)=>e===t?He():Math.abs(e*t/TB(e,t))),TB=(e,t)=>{let r,n=e,o=t;for(;o!==0;)r=o,o=n%o,n=r;return n},j1=(e,t)=>t.data%e===0||!t.problems.add("divisor",e);var Ks=e=>e[0]==="?",$c=e=>e[0]==="!",Or={index:"[index]"},Sn=e=>Ks(e)||$c(e)?e[1]:e,OB=e=>{if(typeof e.length=="object"&&$c(e.length)&&typeof e.length[1]!="string"&&jc(e.length[1],"number"))return e.length[1].number.value},L1=Jt((e,t,r)=>{let n=AB(e,t,r);if(typeof n=="symbol")return n;let o=OB(n);if(o===void 0||!(Or.index in n))return n;let{[Or.index]:i,...s}=n,a=Sn(i);for(let u=0;u{if(t===void 0)return r===void 0?He():r;if(r===void 0)return t;n.path.push(e);let o=Mc(Sn(t),Sn(r),n);n.path.pop();let i=Ks(t)&&Ks(r);return ur(o)&&i?{}:o},{onEmpty:"bubble"}),q1=(e,t,r)=>{let n=r.type.config?.keys??r.type.scope.config.keys;return n==="loose"?kB(e,t,r):NB(n,e,t,r)},kB=(e,t,r)=>{for(let n in t){let o=t[n];r.path.push(n),n===Or.index?e.push(["indexProp",Tr(Sn(o),r)]):Ks(o)?e.push(["optionalProp",[n,Tr(o[1],r)]]):$c(o)?e.push(["prerequisiteProp",[n,Tr(o[1],r)]]):e.push(["requiredProp",[n,Tr(o,r)]]),r.path.pop()}},NB=(e,t,r,n)=>{let o={required:{},optional:{}};for(let i in r){let s=r[i];n.path.push(i),i===Or.index?o.index=Tr(Sn(s),n):Ks(s)?o.optional[i]=Tr(s[1],n):$c(s)?t.push(["prerequisiteProp",[i,Tr(s[1],n)]]):o.required[i]=Tr(s,n),n.path.pop()}t.push([`${e}Props`,o])};function RB(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Um=e=>typeof e=="string"||Array.isArray(e)?e.length:typeof e=="number"?e:0,DB=e=>typeof e=="string"?"characters":Array.isArray(e)?"items long":"",Lc=class{toString(){return Te(this.value)}get domain(){return De(this.value)}get size(){return Um(this.value)}get units(){return DB(this.value)}get className(){return Object(this.value).constructor.name}constructor(t){RB(this,"value",void 0),this.value=t}};var qc={">":!0,">=":!0},Wm={"<":!0,"<=":!0},Vs=e=>"comparator"in e,z1=Jt((e,t,r)=>{if(Vs(e))return Vs(t)?e.limit===t.limit?He():r.addDisjoint("range",e,t):B1(t,e.limit)?e:r.addDisjoint("range",e,t);if(Vs(t))return B1(e,t.limit)?t:r.addDisjoint("range",e,t);let n=pi("min",e.min,t.min),o=pi("max",e.max,t.max);return n==="l"?o==="r"?pi("min",e.min,t.max)==="l"?r.addDisjoint("range",e,t):{min:e.min,max:t.max}:e:n==="r"?o==="l"?pi("max",e.max,t.min)==="l"?r.addDisjoint("range",e,t):{min:t.min,max:e.max}:t:o==="l"?e:o==="r"?t:He()}),B1=(e,t)=>Vs(e)?t===e.limit:PB(e.min,t)&&FB(e.max,t),PB=(e,t)=>!e||t>e.limit||t===e.limit&&!Gs(e.comparator),FB=(e,t)=>!e||t{let n=r.lastDomain==="string"?"characters":r.lastDomain==="object"?"items long":void 0;if(Vs(t))return e.push(["bound",n?{...t,units:n}:t]);t.min&&e.push(["bound",n?{...t.min,units:n}:t.min]),t.max&&e.push(["bound",n?{...t.max,units:n}:t.max])},W1=(e,t)=>$B[e.comparator](Um(t.data),e.limit)||!t.problems.add("bound",e),$B={"<":(e,t)=>e":(e,t)=>e>t,"<=":(e,t)=>e<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e===t},pi=(e,t,r)=>t?r?t.limit===r.limit?Gs(t.comparator)?Gs(r.comparator)?"=":"l":Gs(r.comparator)?"r":"=":e==="min"?t.limit>r.limit?"l":"r":t.limite.length===1;var Hm={},Km=e=>(Hm[e]||(Hm[e]=new RegExp(e)),Hm[e]),H1=(e,t)=>Km(e).test(t.data)||!t.problems.add("regex",`/${e}/`),K1=Jt(Fc);var G1=(e,t,r)=>"value"in e?"value"in t?e.value===t.value?He():r.addDisjoint("value",e.value,t.value):V1(e.value,t,r)?e:r.addDisjoint("leftAssignability",e,t):"value"in t?V1(t.value,e,r)?t:r.addDisjoint("rightAssignability",e,t):jB(e,t,r),MB=Jt(Fc),jB=li({divisor:M1,regex:K1,props:L1,class:F1,range:z1,narrow:MB},{onEmpty:"bubble"}),Vm=(e,t)=>{let r=[],n;for(n in e)LB[n](r,e[n],t);return r.sort((o,i)=>Js[o[0]]-Js[i[0]])},LB={regex:(e,t)=>{for(let r of Cr(t))e.push(["regex",r])},divisor:(e,t)=>{e.push(["divisor",t])},range:U1,class:(e,t)=>{e.push(["class",t])},props:q1,narrow:(e,t)=>{for(let r of Cr(t))e.push(["narrow",r])},value:(e,t)=>{e.push(["value",t])}},Js={config:-1,domain:0,value:0,domains:0,branches:0,switch:0,alias:0,class:0,regex:1,divisor:1,bound:1,prerequisiteProp:2,distilledProps:3,strictProps:3,requiredProp:3,optionalProp:3,indexProp:3,narrow:4,morph:5},V1=(e,t,r)=>!r.type.scope.type(["node",{[r.domain]:t}])(e).problems;var Gm=e=>e?.lBranches!==void 0,Z1=(e,t,r)=>{let n={lBranches:e,rBranches:t,lExtendsR:[],rExtendsL:[],equalities:[],distinctIntersections:[]},o=t.map(i=>({condition:i,distinct:[]}));return e.forEach((i,s)=>{let a=!1,u=o.map((l,c)=>{if(a||!l.distinct)return null;let f=l.condition,p=Ys(i,f,r);return ur(p)?null:p===i?(n.lExtendsR.push(s),a=!0,null):p===f?(n.rExtendsL.push(c),l.distinct=null,null):Zt(p)?(n.equalities.push([s,c]),a=!0,l.distinct=null,null):xn(p,"object")?p:xe(`Unexpected predicate intersection result of type '${De(p)}'`)});if(!a)for(let l=0;li.distinct??[]),n},Jm=e=>"rules"in e,Zs=(e,t)=>{if(Jm(e)){let r=Vm(e.rules,t);if(e.morph)if(typeof e.morph=="function")r.push(["morph",e.morph]);else for(let n of e.morph)r.push(["morph",n]);return r}return Vm(e,t)},J1=e=>e.rules??e,Ys=(e,t,r)=>{let n=J1(e),o=J1(t),i=G1(n,o,r);return"morph"in e?"morph"in t?e.morph===t.morph?Zt(i)||ur(i)?i:{rules:i,morph:e.morph}:r.lastOperator==="&"?he(Dc(r.path,"Intersection","of morphs")):{}:ur(i)?i:{rules:Zt(i)?e.rules:i,morph:e.morph}:"morph"in t?ur(i)?i:{rules:Zt(i)?t.rules:i,morph:t.morph}:i};var Y1=e=>`${e==="/"?"A":`At ${e}, a`} union including one or more morphs must be discriminatable`;var Q1=(e,t)=>{let r=BB(e,t),n=e.map((o,i)=>i);return eI(e,n,r,t)},eI=(e,t,r,n)=>{if(t.length===1)return Zs(e[t[0]],n);let o=UB(t,r);if(!o)return[["branches",t.map(s=>Ym(e[s],n.type.scope)?he(Y1(`${n.path}`)):Zs(e[s],n))]];let i={};for(let s in o.indexCases){let a=o.indexCases[s];i[s]=eI(e,a,r,n),s!=="default"&&Xs(i[s],o.path,o,n)}return[["switch",{path:o.path,kind:o.kind,cases:i}]]},Xs=(e,t,r,n)=>{for(let o=0;oxe(`Unexpectedly failed to discriminate ${e.kind} at path '${e.path}'`),qB={domain:!0,class:!0,value:!0},BB=(e,t)=>{let r={disjointsByPair:{},casesByDisjoint:{}};for(let n=0;n{let t=We.fromString(e);return[t,t.pop()]},UB=(e,t)=>{let r;for(let n=0;n{let v=e.indexOf(y);if(v!==-1)return delete f[v],!0});b.length!==0&&(c[h]=b,p++)}let d=we(f);if(d.length&&(c.default=d.map(h=>parseInt(h))),!r||p>r.score){let[h,b]=zB(u);if(r={path:h,kind:b,indexCases:c,score:p},p===e.length)return r}}}}return r},X1=(e,t)=>{switch(e){case"value":return tI(t);case"domain":return t;case"class":return Pc(t);default:return}},tI=e=>{let t=De(e);return t==="object"||t==="symbol"?void 0:qm(e)},WB={value:e=>tI(e)??"default",class:e=>fi(e)??"default",domain:De},rI=(e,t)=>WB[e](t),Ym=(e,t)=>"morph"in e?!0:"props"in e?Object.values(e.props).some(r=>HB(Sn(r),t)):!1,HB=(e,t)=>typeof e=="string"?t.resolve(e).includesMorph:Object.values(t.resolveTypeNode(e)).some(r=>r===!0?!1:En(r)?r.some(n=>Ym(n,t)):Ym(r,t));var di=e=>e===!0?{}:e,nI=(e,t,r)=>{if(e===!0&&t===!0)return He();if(!En(e)&&!En(t)){let s=Ys(di(e),di(t),r);return s===e?e:s===t?t:s}let n=Cr(di(e)),o=Cr(di(t)),i=Z1(n,o,r);return i.equalities.length===n.length&&i.equalities.length===o.length?He():i.lExtendsR.length+i.equalities.length===n.length?e:i.rExtendsL.length+i.equalities.length===o.length?t:i},oI=(e,t,r,n)=>{n.domain=e;let o=nI(t,r,n);if(!Gm(o))return o;let i=[...o.distinctIntersections,...o.equalities.map(s=>o.lBranches[s[0]]),...o.lExtendsR.map(s=>o.lBranches[s]),...o.rExtendsL.map(s=>o.rBranches[s])];return i.length===0&&n.addDisjoint("union",o.lBranches,o.rBranches),i.length===1?i[0]:i},iI=(e,t,r,n)=>{let o=new wn(n,"|"),i=nI(t,r,o);if(!Gm(i))return Zt(i)||i===t?r:i===r?t:e==="boolean"?!0:[di(t),di(r)];let s=[...i.lBranches.filter((a,u)=>!i.lExtendsR.includes(u)&&!i.equalities.some(l=>l[0]===u)),...i.rBranches.filter((a,u)=>!i.rExtendsL.includes(u)&&!i.equalities.some(l=>l[1]===u))];return s.length===1?s[0]:s},Xm=(e,t)=>e===!0?[]:En(e)?Q1(e,t):Zs(e,t),sI=e=>typeof e=="object"&&"value"in e;var Qs=e=>"config"in e,Mc=(e,t,r)=>{r.domain=void 0;let n=r.type.scope.resolveTypeNode(e),o=r.type.scope.resolveTypeNode(t),i=KB(n,o,r);return typeof i=="object"&&!Bs(i)?Bs(r.disjoints)?R1():r.addDisjoint("domain",we(n),we(o)):i===n?e:i===o?t:i},KB=li((e,t,r,n)=>{if(t===void 0)return r===void 0?xe(Nc):void 0;if(r!==void 0)return oI(e,t,r,n)},{onEmpty:"omit"}),In=(e,t,r)=>{let n=new wn(r,"&"),o=Mc(e,t,n);return ur(o)?he(P1(n.disjoints)):Zt(o)?e:o},Bc=(e,t,r)=>{let n=r.scope.resolveTypeNode(e),o=r.scope.resolveTypeNode(t),i={},s=we({...n,...o});for(let a of s)i[a]=ci(n,a)?ci(o,a)?iI(a,n[a],o[a],r):n[a]:ci(o,a)?o[a]:xe(Nc);return i},VB=e=>e[0]&&(e[0][0]==="value"||e[0][0]==="class"),Qm=e=>{let t={type:e,path:new We,lastDomain:"undefined"};return Tr(e.node,t)},Tr=(e,t)=>{if(typeof e=="string")return t.type.scope.resolve(e).flat;let r=Qs(e),n=GB(r?e.node:e,t);return r?[["config",{config:S1(e.config),node:n}]]:n},GB=(e,t)=>{let r=we(e);if(r.length===1){let o=r[0],i=e[o];if(i===!0)return o;t.lastDomain=o;let s=Xm(i,t);return VB(s)?s:[["domain",o],...s]}let n={};for(let o of r)t.lastDomain=o,n[o]=Xm(e[o],t);return[["domains",n]]},jc=(e,t)=>JB(e,t)&&sI(e[t]),JB=(e,t)=>{let r=we(e);return r.length===1&&r[0]===t},mi=e=>({object:{class:Array,props:{[Or.index]:e}}});function eh(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Oe=class{shift(){return this.chars[this.i++]??""}get lookahead(){return this.chars[this.i]??""}shiftUntil(t){let r="";for(;this.lookahead;){if(t(this,r))if(r[r.length-1]===Oe.escapeToken)r=r.slice(0,-1);else break;r+=this.shift()}return r}shiftUntilNextTerminator(){return this.shiftUntil(Oe.lookaheadIsNotWhitespace),this.shiftUntil(Oe.lookaheadIsTerminator)}get unscanned(){return this.chars.slice(this.i,this.chars.length).join("")}lookaheadIs(t){return this.lookahead===t}lookaheadIsIn(t){return this.lookahead in t}constructor(t){eh(this,"chars",void 0),eh(this,"i",void 0),eh(this,"finalized",!1),this.chars=[...t],this.i=0}};(function(e){var t=e.lookaheadIsTerminator=p=>p.lookahead in o,r=e.lookaheadIsNotWhitespace=p=>p.lookahead!==f,n=e.comparatorStartChars={"<":!0,">":!0,"=":!0},o=e.terminatingChars={...n,"|":!0,"&":!0,")":!0,"[":!0,"%":!0," ":!0},i=e.comparators={"<":!0,">":!0,"<=":!0,">=":!0,"==":!0},s=e.oneCharComparators={"<":!0,">":!0},a=e.comparatorDescriptions={"<":"less than",">":"more than","<=":"at most",">=":"at least","==":"exactly"},u=e.invertedComparators={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},l=e.branchTokens={"|":!0,"&":!0},c=e.escapeToken="\\",f=e.whiteSpaceToken=" "})(Oe||(Oe={}));function ZB(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function YB(e,t){return t.get?t.get.call(e):t.value}function XB(e,t,r){if(t.set)t.set.call(e,r);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=r}}function aI(e,t,r){if(!t.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}function zc(e,t){var r=aI(e,t,"get");return YB(e,r)}function QB(e,t,r){ZB(e,t),t.set(e,r)}function e6(e,t,r){var n=aI(e,t,"set");return XB(e,n,r),r}function Wr(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var rh=class extends TypeError{constructor(t){super(`${t}`),Wr(this,"cause",void 0),this.cause=t}},co=class{toString(){return this.message}get message(){return this.writers.addContext(this.reason,this.path)}get reason(){return this.writers.writeReason(this.mustBe,new Lc(this.data))}get mustBe(){return typeof this.writers.mustBe=="string"?this.writers.mustBe:this.writers.mustBe(this.source)}constructor(t,r,n,o,i){Wr(this,"code",void 0),Wr(this,"path",void 0),Wr(this,"data",void 0),Wr(this,"source",void 0),Wr(this,"writers",void 0),Wr(this,"parts",void 0),this.code=t,this.path=r,this.data=n,this.source=o,this.writers=i,this.code==="multi"&&(this.parts=this.source)}},hi=new WeakMap,nh=class extends Array{mustBe(t,r){return this.add("custom",t,r)}add(t,r,n){let o=We.from(n?.path??zc(this,hi).path),i=n&&"data"in n?n.data:zc(this,hi).data,s=new co(t,o,i,r,zc(this,hi).getProblemConfig(t));return this.addProblem(s),s}addProblem(t){let r=`${t.path}`,n=this.byPath[r];if(n)if(n.parts)n.parts.push(t);else{let o=new co("multi",n.path,n.data,[n,t],zc(this,hi).getProblemConfig("multi")),i=this.indexOf(n);this[i===-1?this.length:i]=o,this.byPath[r]=o}else this.byPath[r]=t,this.push(t);this.count++}get summary(){return`${this}`}toString(){return this.join(` +`)}throw(){throw new rh(this)}constructor(t){super(),Wr(this,"byPath",{}),Wr(this,"count",0),QB(this,hi,{writable:!0,value:void 0}),e6(this,hi,t)}},Uc=nh,t6=e=>e[0].toUpperCase()+e.slice(1),oh=e=>e.map(t=>$m[t]),uI=e=>e.map(t=>zm[t]),th=e=>{if(e.length===0)return"never";if(e.length===1)return e[0];let t="";for(let r=0;r`must be ${e}${t&&` (was ${t})`}`,cI=(e,t)=>t.length===0?t6(e):t.length===1&&zs(t[0])?`Item at index ${t[0]} ${e}`:`${t} ${e}`,uo={divisor:{mustBe:e=>e===1?"an integer":`a multiple of ${e}`},class:{mustBe:e=>{let t=Pc(e);return t?zm[t]:`an instance of ${e.name}`},writeReason:(e,t)=>ao(e,t.className)},domain:{mustBe:e=>$m[e],writeReason:(e,t)=>ao(e,t.domain)},missing:{mustBe:()=>"defined",writeReason:e=>ao(e,"")},extraneous:{mustBe:()=>"removed",writeReason:e=>ao(e,"")},bound:{mustBe:e=>`${Oe.comparatorDescriptions[e.comparator]} ${e.limit}${e.units?` ${e.units}`:""}`,writeReason:(e,t)=>ao(e,`${t.size}`)},regex:{mustBe:e=>`a string matching ${e}`},value:{mustBe:Te},branches:{mustBe:e=>th(e.map(t=>`${t.path} must be ${t.parts?th(t.parts.map(r=>r.mustBe)):t.mustBe}`)),writeReason:(e,t)=>`${e} (was ${t})`,addContext:(e,t)=>t.length?`At ${t}, ${e}`:e},multi:{mustBe:e=>"\u2022 "+e.map(t=>t.mustBe).join(` +\u2022 `),writeReason:(e,t)=>`${t} must be... +${e}`,addContext:(e,t)=>t.length?`At ${t}, ${e}`:e},custom:{mustBe:e=>e},cases:{mustBe:e=>th(e)}},lI=we(uo),r6=()=>{let e={},t;for(t of lI)e[t]={mustBe:uo[t].mustBe,writeReason:uo[t].writeReason??ao,addContext:uo[t].addContext??cI};return e},n6=r6(),fI=e=>{if(!e)return n6;let t={};for(let r of lI)t[r]={mustBe:e[r]?.mustBe??uo[r].mustBe,writeReason:e[r]?.writeReason??uo[r].writeReason??e.writeReason??ao,addContext:e[r]?.addContext??uo[r].addContext??e.addContext??cI};return t};function o6(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function i6(e,t){return t.get?t.get.call(e):t.value}function s6(e,t,r){if(t.set)t.set.call(e,r);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=r}}function mI(e,t,r){if(!t.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}function ih(e,t){var r=mI(e,t,"get");return i6(e,r)}function a6(e,t,r){o6(e,t),t.set(e,r)}function u6(e,t,r){var n=mI(e,t,"set");return s6(e,n,r),r}function Ar(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var c6=()=>({mustBe:[],writeReason:[],addContext:[],keys:[]}),l6=["mustBe","writeReason","addContext"],hI=(e,t)=>{let r=new sh(t,e);Wc(e.flat,r);let n=new gI(r);if(r.problems.count)n.problems=r.problems;else{for(let[o,i]of r.entriesToPrune)delete o[i];n.data=r.data}return n},gI=class{constructor(){Ar(this,"data",void 0),Ar(this,"problems",void 0)}},ea=new WeakMap,sh=class{getProblemConfig(t){let r={};for(let n of l6)r[n]=this.traversalConfig[n][0]??this.rootScope.config.codes[t][n];return r}traverseConfig(t,r){for(let o of t)this.traversalConfig[o[0]].unshift(o[1]);let n=Wc(r,this);for(let o of t)this.traversalConfig[o[0]].shift();return n}traverseKey(t,r){let n=this.data;this.data=this.data[t],this.path.push(t);let o=Wc(r,this);return this.path.pop(),n[t]!==this.data&&(n[t]=this.data),this.data=n,o}traverseResolution(t){let r=this.type.scope.resolve(t),n=r.qualifiedName,o=this.data,i=xn(o,"object");if(i){let u=ih(this,ea)[n];if(u){if(u.includes(o))return!0;u.push(o)}else ih(this,ea)[n]=[o]}let s=this.type;this.type=r;let a=Wc(r.flat,this);return this.type=s,i&&ih(this,ea)[n].pop(),a}traverseBranches(t){let r=this.failFast;this.failFast=!0;let n=this.problems,o=new Uc(this);this.problems=o;let i=this.path,s=this.entriesToPrune,a=!1;for(let u of t)if(this.path=new We,this.entriesToPrune=[],Hc(u,this)){a=!0,s.push(...this.entriesToPrune);break}return this.path=i,this.entriesToPrune=s,this.problems=n,this.failFast=r,a||!this.problems.add("branches",o)}constructor(t,r){Ar(this,"data",void 0),Ar(this,"type",void 0),Ar(this,"path",void 0),Ar(this,"problems",void 0),Ar(this,"entriesToPrune",void 0),Ar(this,"failFast",void 0),Ar(this,"traversalConfig",void 0),Ar(this,"rootScope",void 0),a6(this,ea,{writable:!0,value:void 0}),this.data=t,this.type=r,this.path=new We,this.problems=new Uc(this),this.entriesToPrune=[],this.failFast=!1,this.traversalConfig=c6(),u6(this,ea,{}),this.rootScope=r.scope}},Wc=(e,t)=>typeof e=="string"?De(t.data)===e||!t.problems.add("domain",e):Hc(e,t),Hc=(e,t)=>{let r=!0;for(let n=0;ne[0]in t.data?t.traverseKey(e[0],e[1]):(t.problems.add("missing",void 0,{path:t.path.concat(e[0]),data:void 0}),!1),dI=e=>(t,r)=>{let n=!0,o={...t.required};for(let s in r.data)if(t.required[s]?(n=r.traverseKey(s,t.required[s])&&n,delete o[s]):t.optional[s]?n=r.traverseKey(s,t.optional[s])&&n:t.index&&_c.test(s)?n=r.traverseKey(s,t.index)&&n:e==="distilledProps"?r.failFast?r.entriesToPrune.push([r.data,s]):delete r.data[s]:(n=!1,r.problems.add("extraneous",r.data[s],{path:r.path.concat(s)})),!n&&r.failFast)return!1;let i=Object.keys(o);if(i.length){for(let s of i)r.problems.add("missing",void 0,{path:r.path.concat(s)});return!1}return n},f6={regex:H1,divisor:j1,domains:(e,t)=>{let r=e[De(t.data)];return r?Hc(r,t):!t.problems.add("cases",oh(we(e)))},domain:(e,t)=>De(t.data)===e||!t.problems.add("domain",e),bound:W1,optionalProp:(e,t)=>e[0]in t.data?t.traverseKey(e[0],e[1]):!0,requiredProp:pI,prerequisiteProp:pI,indexProp:(e,t)=>{if(!Array.isArray(t.data))return t.problems.add("class",Array),!1;let r=!0;for(let n=0;nt.traverseBranches(e),switch:(e,t)=>{let r=_1(t.data,e.path),n=rI(e.kind,r);if(ci(e.cases,n))return Hc(e.cases[n],t);let o=we(e.cases),i=t.path.concat(e.path),s=e.kind==="value"?o:e.kind==="domain"?oh(o):e.kind==="class"?uI(o):xe(`Unexpectedly encountered rule kind '${e.kind}' during traversal`);return t.problems.add("cases",s,{path:i,data:r}),!1},alias:(e,t)=>t.traverseResolution(e),class:$1,narrow:(e,t)=>{let r=t.problems.count,n=e(t.data,t.problems);return!n&&t.problems.count===r&&t.problems.mustBe(e.name?`valid according to ${e.name}`:"valid"),n},config:({config:e,node:t},r)=>r.traverseConfig(e,t),value:(e,t)=>t.data===e||!t.problems.add("value",e),morph:(e,t)=>{let r=e(t.data,t.problems);if(t.problems.length)return!1;if(r instanceof co)return t.problems.addProblem(r),!1;if(r instanceof gI){if(r.problems){for(let n of r.problems)t.problems.addProblem(n);return!1}return t.data=r.data,!0}return t.data=r,!0},distilledProps:dI("distilledProps"),strictProps:dI("strictProps")};var _n=new Proxy(()=>_n,{get:()=>_n});var ah=(e,t,r,n)=>{let o={node:e,flat:[["alias",e]],allows:a=>!i(a).problems,assert:a=>{let u=i(a);return u.problems?u.problems.throw():u.data},infer:_n,inferIn:_n,qualifiedName:p6(e)?n.getAnonymousQualifiedName(e):`${n.name}.${e}`,definition:t,scope:n,includesMorph:!1,config:r},i={[e]:a=>hI(i,a)}[e];return Object.assign(i,o)},uh=e=>e?.infer===_n,p6=e=>e[0]==="\u03BB";var yI=e=>{let t=e.scanner.shiftUntilNextTerminator();e.setRoot(d6(e,t))},d6=(e,t)=>e.ctx.type.scope.addParsedReferenceIfResolvable(t,e.ctx)?t:m6(t)??e.error(t===""?ch(e):h6(t)),m6=e=>{let t=Ws(e);if(t!==void 0)return{number:{value:t}};let r=jm(e);if(r!==void 0)return{bigint:{value:r}}},h6=e=>`'${e}' is unresolvable`,ch=e=>{let t=e.previousOperator();return t?lh(t,e.scanner.unscanned):g6(e.scanner.unscanned)},lh=(e,t)=>`Token '${e}' requires a right operand${t?` before '${t}'`:""}`,g6=e=>`Expected an expression${e?` before '${e}'`:""}`;var fh=(e,t)=>({node:t.type.scope.resolveTypeNode(Ke(e[0],t)),config:e[2]});var Yt=e=>Object.isFrozen(e)?e:Array.isArray(e)?Object.freeze(e.map(Yt)):y6(e),y6=e=>{for(let t in e)Yt(e[t]);return e};var b6=Yt({regex:Us.source}),v6=Yt({range:{min:{comparator:">=",limit:0}},divisor:1}),bI=(e,t)=>{let r=t.type.scope.resolveNode(Ke(e[1],t)),n=we(r).map(c=>w6(c,r[c])),o=vI(n);if(!o.length)return Dc(t.path,"keyof");let i={};for(let c of o){let f=typeof c;if(f==="string"||f==="number"||f==="symbol"){var s,a;(s=i)[a=f]??(s[a]=[]),i[f].push({value:c})}else if(c===Us){var u,l;(u=i).string??(u.string=[]),i.string.push(b6),(l=i).number??(l.number=[]),i.number.push(v6)}else return xe(`Unexpected keyof key '${Te(c)}'`)}return Object.fromEntries(Object.entries(i).map(([c,f])=>[c,f.length===1?f[0]:f]))},x6={bigint:so(0n),boolean:so(!1),null:[],number:so(0),object:[],string:so(""),symbol:so(Symbol()),undefined:[]},w6=(e,t)=>e!=="object"||t===!0?x6[e]:vI(Cr(t).map(r=>E6(r))),vI=e=>{if(!e.length)return[];let t=e[0];for(let r=1;re[r].includes(n));return t},E6=e=>{let t=[];if("props"in e)for(let r of Object.keys(e.props))r===Or.index?t.push(Us):t.includes(r)||(t.push(r),Us.test(r)&&t.push(Cc(r,`Unexpectedly failed to parse an integer from key '${r}'`)));if("class"in e){let r=typeof e.class=="string"?Hs[e.class]:e.class;for(let n of so(r.prototype))t.includes(n)||t.push(n)}return t};var wI=(e,t)=>{if(typeof e[2]!="function")return he(S6(e[2]));let r=Ke(e[0],t),n=t.type.scope.resolveTypeNode(r),o=e[2];t.type.includesMorph=!0;let i,s={};for(i in n){let a=n[i];a===!0?s[i]={rules:{},morph:o}:typeof a=="object"?s[i]=En(a)?a.map(u=>xI(u,o)):xI(a,o):xe(`Unexpected predicate value for domain '${i}': ${Te(a)}`)}return s},xI=(e,t)=>Jm(e)?{...e,morph:e.morph?Array.isArray(e.morph)?[...e.morph,t]:[e.morph,t]:t}:{rules:e,morph:t},S6=e=>`Morph expression requires a function following '|>' (was ${typeof e})`;var EI=e=>`Expected a Function or Record operand (${Te(e)} was invalid)`,SI=(e,t,r,n)=>{let o=we(t);if(!xn(e,"object"))return he(EI(e));let i={};if(typeof e=="function"){let s={[n]:e};for(let a of o)i[a]=s}else for(let s of o){if(e[s]===void 0)continue;let a={[n]:e[s]};if(typeof a[n]!="function")return he(EI(a));i[s]=a}return i};var II=(e,t)=>{let r=Ke(e[0],t),n=t.type.scope.resolveNode(r),o=Qs(n),i=o?n.node:n,s=In(r,SI(e[2],i,t,"narrow"),t.type);return o?{config:n.config,node:s}:s};var CI=(e,t)=>{if(_6(e))return TI[e[1]](e,t);if(C6(e))return OI[e[0]](e,t);let r={length:["!",{number:{value:e.length}}]};for(let n=0;n{if(e[2]===void 0)return he(lh(e[1],""));let r=Ke(e[0],t),n=Ke(e[2],t);return e[1]==="&"?In(r,n,t.type):Bc(r,n,t.type)},I6=(e,t)=>mi(Ke(e[0],t));var _6=e=>TI[e[1]]!==void 0,TI={"|":_I,"&":_I,"[]":I6,"=>":II,"|>":wI,":":fh},OI={keyof:bI,instanceof:e=>typeof e[1]!="function"?he(`Expected a constructor following 'instanceof' operator (was ${typeof e[1]}).`):{object:{class:e[1]}},"===":e=>({[De(e[1])]:{value:e[1]}}),node:e=>e[1]},C6=e=>OI[e[0]]!==void 0;var AI=(e,t)=>{let r={};for(let n in e){let o=n,i=!1;n[n.length-1]==="?"&&(n[n.length-2]===Oe.escapeToken?o=`${n.slice(0,-2)}?`:(o=n.slice(0,-1),i=!0)),t.path.push(o);let s=Ke(e[n],t);t.path.pop(),r[o]=i?["?",s]:s}return{object:{props:r}}};var kI=e=>`Unmatched )${e===""?"":` before ${e}`}`,NI="Missing )",RI=(e,t)=>`Left bounds are only valid when paired with right bounds (try ...${t}${e})`,Kc=e=>`Left-bounded expressions must specify their limits using < or <= (was ${e})`,DI=(e,t,r,n)=>`An expression may have at most one left bound (parsed ${e}${Oe.invertedComparators[t]}, ${r}${Oe.invertedComparators[n]})`;function ta(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Vc=class{error(t){return he(t)}hasRoot(){return this.root!==void 0}resolveRoot(){return this.assertHasRoot(),this.ctx.type.scope.resolveTypeNode(this.root)}rootToString(){return this.assertHasRoot(),Te(this.root)}ejectRootIfLimit(){this.assertHasRoot();let t=typeof this.root=="string"?this.ctx.type.scope.resolveNode(this.root):this.root;if(jc(t,"number")){let r=t.number.value;return this.root=void 0,r}}ejectRangeIfOpen(){if(this.branches.range){let t=this.branches.range;return delete this.branches.range,t}}assertHasRoot(){if(this.root===void 0)return xe("Unexpected interaction with unset root")}assertUnsetRoot(){if(this.root!==void 0)return xe("Unexpected attempt to overwrite root")}setRoot(t){this.assertUnsetRoot(),this.root=t}rootToArray(){this.root=mi(this.ejectRoot())}intersect(t){this.root=In(this.ejectRoot(),t,this.ctx.type)}ejectRoot(){this.assertHasRoot();let t=this.root;return this.root=void 0,t}ejectFinalizedRoot(){this.assertHasRoot();let t=this.root;return this.root=T6,t}finalize(){if(this.groups.length)return this.error(NI);this.finalizeBranches(),this.scanner.finalized=!0}reduceLeftBound(t,r){let n=Oe.invertedComparators[r];if(!Gt(n,qc))return this.error(Kc(r));if(this.branches.range)return this.error(DI(`${this.branches.range.limit}`,this.branches.range.comparator,`${t}`,n));this.branches.range={limit:t,comparator:n}}finalizeBranches(){this.assertRangeUnset(),this.branches.union?(this.pushRootToBranch("|"),this.setRoot(this.branches.union)):this.branches.intersection&&this.setRoot(In(this.branches.intersection,this.ejectRoot(),this.ctx.type))}finalizeGroup(){this.finalizeBranches();let t=this.groups.pop();if(!t)return this.error(kI(this.scanner.unscanned));this.branches=t}pushRootToBranch(t){this.assertRangeUnset(),this.branches.intersection=this.branches.intersection?In(this.branches.intersection,this.ejectRoot(),this.ctx.type):this.ejectRoot(),t==="|"&&(this.branches.union=this.branches.union?Bc(this.branches.union,this.branches.intersection,this.ctx.type):this.branches.intersection,delete this.branches.intersection)}assertRangeUnset(){if(this.branches.range)return this.error(RI(`${this.branches.range.limit}`,this.branches.range.comparator))}reduceGroupOpen(){this.groups.push(this.branches),this.branches={}}previousOperator(){return this.branches.range?.comparator??this.branches.intersection?"&":this.branches.union?"|":void 0}shiftedByOne(){return this.scanner.shift(),this}constructor(t,r){ta(this,"ctx",void 0),ta(this,"scanner",void 0),ta(this,"root",void 0),ta(this,"branches",void 0),ta(this,"groups",void 0),this.ctx=r,this.branches={},this.groups=[],this.scanner=new Oe(t)}},T6=new Proxy({},{get:()=>xe("Unexpected attempt to access ejected attributes")});var PI=(e,t)=>{let r=e.scanner.shiftUntil(O6[t]);if(e.scanner.lookahead==="")return e.error(k6(r,t));e.scanner.shift()==="/"?(Km(r),e.setRoot({string:{regex:r}})):e.setRoot({string:{value:r}})},FI={"'":1,'"':1,"/":1},O6={"'":e=>e.lookahead==="'",'"':e=>e.lookahead==='"',"/":e=>e.lookahead==="/"},A6={'"':"double-quote","'":"single-quote","/":"forward slash"},k6=(e,t)=>`${t}${e} requires a closing ${A6[t]}`;var Gc=e=>e.scanner.lookahead===""?e.error(ch(e)):e.scanner.lookahead==="("?e.shiftedByOne().reduceGroupOpen():e.scanner.lookaheadIsIn(FI)?PI(e,e.scanner.shift()):e.scanner.lookahead===" "?Gc(e.shiftedByOne()):yI(e);var $I=e=>`Bounded expression ${e} must be a number, string or array`;var MI=(e,t)=>{let r=N6(e,t),n=e.ejectRootIfLimit();return n===void 0?D6(e,r):e.reduceLeftBound(n,r)},N6=(e,t)=>e.scanner.lookaheadIs("=")?`${t}${e.scanner.shift()}`:Gt(t,Oe.oneCharComparators)?t:e.error(R6),R6="= is not a valid comparator. Use == to check for equality",D6=(e,t)=>{let r=e.scanner.shiftUntilNextTerminator(),n=Ws(r,$6(t,r+e.scanner.unscanned)),o=e.ejectRangeIfOpen(),i={comparator:t,limit:n},s=o?ph(i,Wm)?pi("min",o,i)==="l"?e.error(M6({min:o,max:i})):{min:o,max:i}:e.error(Kc(t)):F6(i,"==")?i:ph(i,qc)?{min:i}:ph(i,Wm)?{max:i}:xe(`Unexpected comparator '${i.comparator}'`);e.intersect(P6(s,e))},P6=(e,t)=>{let r=t.resolveRoot(),n=we(r),o={},i={range:e};return n.every(a=>{switch(a){case"string":return o.string=i,!0;case"number":return o.number=i,!0;case"object":return o.object=i,r.object===!0?!1:Cr(r.object).every(u=>"class"in u&&u.class===Array);default:return!1}})||t.error($I(t.rootToString())),o},F6=(e,t)=>e.comparator===t,ph=(e,t)=>e.comparator in t,$6=(e,t)=>`Comparator ${e} must be followed by a number literal (was '${t}')`,M6=e=>`${kc(e)} is empty`;var jI=e=>`Divisibility operand ${e} must be a number`;var qI=e=>{let t=e.scanner.shiftUntilNextTerminator(),r=Cc(t,LI(t));r===0&&e.error(LI(0));let n=we(e.resolveRoot());n.length===1&&n[0]==="number"?e.intersect({number:{divisor:r}}):e.error(jI(e.rootToString()))},LI=e=>`% operator must be followed by a non-zero integer literal (was ${e})`;var dh=e=>{let t=e.scanner.shift();return t===""?e.finalize():t==="["?e.scanner.shift()==="]"?e.rootToArray():e.error(L6):Gt(t,Oe.branchTokens)?e.pushRootToBranch(t):t===")"?e.finalizeGroup():Gt(t,Oe.comparatorStartChars)?MI(e,t):t==="%"?qI(e):t===" "?dh(e):xe(j6(t))},j6=e=>`Unexpected character '${e}'`,L6="Missing expected ']'";var BI=(e,t)=>t.type.scope.parseCache.get(e)??t.type.scope.parseCache.set(e,q6(e,t)??B6(e,t)),q6=(e,t)=>{if(t.type.scope.addParsedReferenceIfResolvable(e,t))return e;if(e.endsWith("[]")){let r=e.slice(0,-2);if(t.type.scope.addParsedReferenceIfResolvable(e,t))return mi(r)}},B6=(e,t)=>{let r=new Vc(e,t);return Gc(r),z6(r)},z6=e=>{for(;!e.scanner.finalized;)U6(e);return e.ejectFinalizedRoot()},U6=e=>e.hasRoot()?dh(e):Gc(e);var Ke=(e,t)=>{let r=De(e);if(r==="string")return BI(e,t);if(r!=="object")return he(mh(r));let n=fi(e);switch(n){case"Object":return AI(e,t);case"Array":return CI(e,t);case"RegExp":return{string:{regex:e.source}};case"Function":if(uh(e))return t.type.scope.addAnonymousTypeReference(e,t);if(W6(e)){let o=e();if(uh(o))return t.type.scope.addAnonymousTypeReference(o,t)}return he(mh("Function"));default:return he(mh(n??Te(e)))}},Wce=Symbol("as"),W6=e=>typeof e=="function"&&e.length===0,mh=e=>`Type definitions must be strings or objects (was ${e})`;function H6(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var gi=class{get root(){return this.cache}has(t){return t in this.cache}get(t){return this.cache[t]}set(t,r){return this.cache[t]=r,r}constructor(){H6(this,"cache",{})}},Jc=class extends gi{set(t,r){return this.cache[t]=Yt(r),r}};function KI(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function K6(e,t){return t.get?t.get.call(e):t.value}function V6(e,t,r){if(t.set)t.set.call(e,r);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=r}}function VI(e,t,r){if(!t.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}function Kr(e,t){var r=VI(e,t,"get");return K6(e,r)}function zI(e,t,r){KI(e,t),t.set(e,r)}function UI(e,t,r){var n=VI(e,t,"set");return V6(e,n,r),r}function Hr(e,t,r){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return r}function Zc(e,t){KI(e,t),t.add(e)}function xt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var G6=e=>({codes:fI(e.codes),keys:e.keys??"loose"}),J6=0,WI={},hh={};var lo=new WeakMap,yi=new WeakMap,HI=new WeakSet,Yc=new WeakSet,yh=new WeakSet,Xc=new WeakSet,bh=class{getAnonymousQualifiedName(t){let r=0,n=t;for(;this.isResolvable(n);)n=`${t}${r++}`;return`${this.name}.${n}`}addAnonymousTypeReference(t,r){var n;return(n=r.type).includesMorph||(n.includesMorph=t.includesMorph),t.node}get infer(){return _n}compile(){if(!hh[this.name]){for(let t in this.aliases)this.resolve(t);hh[this.name]=Kr(this,yi).root}return Kr(this,yi).root}addParsedReferenceIfResolvable(t,r){var n;let o=Hr(this,Xc,vh).call(this,t,"undefined",[t]);return o?((n=r.type).includesMorph||(n.includesMorph=o.includesMorph),!0):!1}resolve(t){return Hr(this,Xc,vh).call(this,t,"throw",[t])}resolveNode(t){return typeof t=="string"?this.resolveNode(this.resolve(t).node):t}resolveTypeNode(t){let r=this.resolveNode(t);return Qs(r)?r.node:r}isResolvable(t){return Kr(this,lo).has(t)||this.aliases[t]}constructor(t,r={}){Zc(this,HI),Zc(this,Yc),Zc(this,yh),Zc(this,Xc),xt(this,"aliases",void 0),xt(this,"name",void 0),xt(this,"config",void 0),xt(this,"parseCache",void 0),zI(this,lo,{writable:!0,value:void 0}),zI(this,yi,{writable:!0,value:void 0}),xt(this,"expressions",void 0),xt(this,"intersection",void 0),xt(this,"union",void 0),xt(this,"arrayOf",void 0),xt(this,"keyOf",void 0),xt(this,"valueOf",void 0),xt(this,"instanceOf",void 0),xt(this,"narrow",void 0),xt(this,"morph",void 0),xt(this,"type",void 0),this.aliases=t,this.parseCache=new Jc,UI(this,lo,new gi),UI(this,yi,new gi),this.expressions={intersection:(n,o,i)=>this.type([n,"&",o],i),union:(n,o,i)=>this.type([n,"|",o],i),arrayOf:(n,o)=>this.type([n,"[]"],o),keyOf:(n,o)=>this.type(["keyof",n],o),node:(n,o)=>this.type(["node",n],o),instanceOf:(n,o)=>this.type(["instanceof",n],o),valueOf:(n,o)=>this.type(["===",n],o),narrow:(n,o,i)=>this.type([n,"=>",o],i),morph:(n,o,i)=>this.type([n,"|>",o],i)},this.intersection=this.expressions.intersection,this.union=this.expressions.union,this.arrayOf=this.expressions.arrayOf,this.keyOf=this.expressions.keyOf,this.valueOf=this.expressions.valueOf,this.instanceOf=this.expressions.instanceOf,this.narrow=this.expressions.narrow,this.morph=this.expressions.morph,this.type=Object.assign((n,o={})=>{let i=ah("\u03BBtype",n,o,this),s=Hr(this,yh,GI).call(this,i),a=Ke(n,s);return i.node=Yt(Bs(o)?{config:o,node:this.resolveTypeNode(a)}:a),i.flat=Yt(Qm(i)),i},{from:this.expressions.node}),this.name=Hr(this,HI,Z6).call(this,r),r.standard!==!1&&Hr(this,Yc,gh).call(this,[hh.standard],"imports"),r.imports&&Hr(this,Yc,gh).call(this,r.imports,"imports"),r.includes&&Hr(this,Yc,gh).call(this,r.includes,"includes"),this.config=G6(r)}};function Z6(e){let t=e.name?WI[e.name]?he(`A scope named '${e.name}' already exists`):e.name:`scope${++J6}`;return WI[t]=this,t}function gh(e,t){for(let r of e)for(let n in r)(Kr(this,lo).has(n)||n in this.aliases)&&he(X6(n)),Kr(this,lo).set(n,r[n]),t==="includes"&&Kr(this,yi).set(n,r[n])}function GI(e){return{type:e,path:new We}}function vh(e,t,r){let n=Kr(this,lo).get(e);if(n)return n;let o=this.aliases[e];if(!o)return t==="throw"?xe(`Unexpectedly failed to resolve alias '${e}'`):void 0;let i=ah(e,o,{},this),s=Hr(this,yh,GI).call(this,i);Kr(this,lo).set(e,i),Kr(this,yi).set(e,i);let a=Ke(o,s);if(typeof a=="string"){if(r.includes(a))return he(Y6(e,r));r.push(a),a=Hr(this,Xc,vh).call(this,a,"throw",r).node}return i.node=Yt(a),i.flat=Yt(Qm(i)),i}var wt=(e,t={})=>new bh(e,t),xh=wt({},{name:"root",standard:!1}),cr=xh.type,Y6=(e,t)=>`Alias '${e}' has a shallow resolution cycle: ${[...t,e].join("=>")}`,X6=e=>`Alias '${e}' is already defined`;var Qc=wt({Function:["node",{object:{class:Function}}],Date:["node",{object:{class:Date}}],Error:["node",{object:{class:Error}}],Map:["node",{object:{class:Map}}],RegExp:["node",{object:{class:RegExp}}],Set:["node",{object:{class:Set}}],WeakMap:["node",{object:{class:WeakMap}}],WeakSet:["node",{object:{class:WeakSet}}],Promise:["node",{object:{class:Promise}}]},{name:"jsObjects",standard:!1}),JI=Qc.compile();var ZI={bigint:!0,boolean:!0,null:!0,number:!0,object:!0,string:!0,symbol:!0,undefined:!0},el=wt({any:["node",ZI],bigint:["node",{bigint:!0}],boolean:["node",{boolean:!0}],false:["node",{boolean:{value:!1}}],never:["node",{}],null:["node",{null:!0}],number:["node",{number:!0}],object:["node",{object:!0}],string:["node",{string:!0}],symbol:["node",{symbol:!0}],true:["node",{boolean:{value:!0}}],unknown:["node",ZI],void:["node",{undefined:!0}],undefined:["node",{undefined:!0}]},{name:"ts",standard:!1}),fo=el.compile();var Q6=e=>{let t=e.replace(/[- ]+/g,""),r=0,n,o,i;for(let s=t.length-1;s>=0;s--)n=t.substring(s,s+1),o=parseInt(n,10),i?(o*=2,o>=10?r+=o%10+1:r+=o):r+=o,i=!i;return!!(r%10===0&&t)},ez=/^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14}|^(81[0-9]{14,17}))$/,YI=cr([ez,"=>",(e,t)=>Q6(e)||!t.mustBe("a valid credit card number")],{mustBe:"a valid credit card number"});var tz=/^[./-]$/,rz=/^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([.,]\d+(?!:))?)?(\17[0-5]\d([.,]\d+)?)?([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,nz=e=>!isNaN(e),tl=e=>`a ${e}-formatted date`,oz=(e,t)=>{if(!t?.format){let a=new Date(e);return nz(a)?a:"a valid date"}if(t.format==="iso8601")return rz.test(e)?new Date(e):tl("iso8601");let r=e.split(tz),n=e[r[0].length],o=n?t.format.split(n):[t.format];if(r.length!==o.length)return tl(t.format);let i={};for(let a=0;a",(e,t)=>{let r=oz(e);return typeof r=="string"?t.mustBe(r):r}]);var iz=cr([Mm,"|>",e=>parseFloat(e)],{mustBe:"a well-formed numeric string"}),sz=cr([fo.string,"|>",(e,t)=>{if(!zs(e))return t.mustBe("a well-formed integer string");let r=parseInt(e);return Number.isSafeInteger(r)?r:t.mustBe("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")}]),az=cr(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/,{mustBe:"a valid email"}),uz=cr(/^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$/,{mustBe:"a valid UUID"}),cz=cr(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,{mustBe:"a valid semantic version (see https://semver.org/)"}),lz=cr([fo.string,"|>",e=>JSON.parse(e)],{mustBe:"a JSON-parsable string"}),rl=wt({alpha:[/^[A-Za-z]*$/,":",{mustBe:"only letters"}],alphanumeric:[/^[A-Za-z\d]*$/,":",{mustBe:"only letters and digits"}],lowercase:[/^[a-z]*$/,":",{mustBe:"only lowercase letters"}],uppercase:[/^[A-Z]*$/,":",{mustBe:"only uppercase letters"}],creditCard:YI,email:az,uuid:uz,parsedNumber:iz,parsedInteger:sz,parsedDate:XI,semver:cz,json:lz,integer:["node",{number:{divisor:1}}]},{name:"validation",standard:!1}),QI=rl.compile();var nl=wt({},{name:"standard",includes:[fo,JI,QI],standard:!1}),fz=nl.compile(),Vr={root:xh,tsKeywords:el,jsObjects:Qc,validation:rl,ark:nl};var ra=nl.type;var pz=Vr.ark.intersection,dz=Vr.ark.union,mz=Vr.ark.arrayOf,hz=Vr.ark.keyOf,gz=Vr.ark.instanceOf,yz=Vr.ark.valueOf,bz=Vr.ark.narrow,vz=Vr.ark.morph;var{DataRequest:Mle,DataResponse:e_}=wt({DataRequest:{id:"number",method:"string",params:"any[]"},DataResponse:{id:"number","eventName?":"string",payload:"any",error:"any"}}).compile(),ol="__METHODS__",il="__EVAL__";var t_=()=>({events:{},emit(e,...t){let r=this.events[e]||[];for(let n=0,o=r.length;n{this.events[e]=this.events[e]?.filter(r=>t!==r)}}});function po(){let e=t_();return e.once=(t,r)=>{let n=(...i)=>{o(),r(...i)},o=e.on(t,n);return o},e}function xz(e){return Object.assign(new Error,e)}var mo=class{pending=new Map;terminateState=!1;terminationHandler=null;lastId=0;worker;constructor(){this.worker=this.setupWorker(),this.worker.onMessage(t=>this.onMessage(t.data)),this.worker.onError(t=>this.onError(t.error))}internal=po();evt=po();task=po();onMessage(t){if(this.terminateState==="finished")return;if(t==="ready"){this.internal.emit("ready");return}let{data:r,problems:n}=e_(t);if(n)throw new Error(n.toString());if(r.eventName){this.evt.emit(r.eventName,r.payload);return}this.task.emit(r.id,r.payload,r.error),this.terminateState==="requested"&&this.terminate()}onError(t){for(let r of this.pending.values())r.abort(t);this.pending.clear(),this.worker.terminate()}methods(){return this.invoke(ol)}eval(t,r,n){let o=[t,...r];return this.invoke(il,o,{transfer:n})}send({id:t,method:r,params:n,transfer:o,timeout:i},s=new AbortController){let a=s.signal;return this.pending.set(t,s),new Promise((u,l)=>{this.worker.send({id:t,method:r,params:n},{transfer:o});let c=-1,f=()=>{l(a?.reason),p(),window.clearTimeout(c)};i!==void 0&&(c=window.setTimeout(()=>{s.abort(new DOMException(`Timeout after ${i}ms`,"TimeoutError"))},i)),a?.addEventListener("abort",f);let p=this.task.once(t,(d,h)=>{a?.removeEventListener("abort",f),h?l(xz(h)):u(d)})}).catch(u=>{if(u instanceof DOMException&&["AbortError","TimeoutError"].includes(u.name))return this.terminate(!0).then(()=>{throw u});throw u}).finally(()=>{this.pending.delete(t)})}async invoke(t,r=[],{controller:n,transfer:o}={}){if(this.terminateState!==!1)throw new Error("Worker is terminated");let i=++this.lastId;return await this.worker.readyPromise,await this.send({id:i,method:t,params:r,transfer:o},n)}busy(){return this.pending.size>0}terminate(t=!1,r){if(t){for(let n of this.pending.values())n.abort(new Error("Worker terminated"));this.pending.clear()}if(this.busy()){this.terminateState="requested";let n=new Promise(o=>{this.internal.once("terminate",o)});return r!==void 0?Promise.race([n,wz(r)]).then():n}return this.worker.terminate(),Promise.resolve()}};function wz(e){return new Promise(t=>setTimeout(()=>t(new DOMException(`Timeout after ${e}ms`,"TimeoutError")),e))}var bi=class extends mo{setupWorker(){let t=this,r=Object.assign(this.initWebWorker(),{readyPromise:new Promise(n=>t.internal.once("ready",()=>n(!0))),killed:!1,send(n,o){r.postMessage(n,o)},onMessage(n){return r.addEventListener("message",n),()=>r.removeEventListener("message",n)},onError(n){return r.addEventListener("error",n),()=>r.removeEventListener("error",n)}});return qt(r,{terminate:n=>function(){r.killed||(n.call(this),r.killed=!0,t.internal.emit("terminate")),t.terminateState="finished"}}),r}};var vi=class{workers=[];tasks=[];pending=new Map;emitter=po();#e=po();maxQueueSize=1/0;maxWorkers=Math.max((this.getMaxConcurrency()||4)-1,1);minWorkers=0;getMaxConcurrency(){return navigator.hardwareConcurrency}constructor(t={}){if(t.maxQueueSize!==void 0&&(this.maxQueueSize=Sz.assert(t.maxQueueSize)),t.maxWorkers!==void 0&&(this.maxWorkers=Ez.assert(t.maxWorkers)),t.minWorkers!==void 0){let o=Iz.assert(t.minWorkers);o==="max"?this.minWorkers=this.maxWorkers:(this.minWorkers=o,this.maxWorkers=Math.max(this.minWorkers,this.maxWorkers)),this.ensureMinWorkers()}let r={},n=o=>r[o]??=(...i)=>this.invoke(o,i);this.proxy=new Proxy(r,{get:(o,i)=>!Reflect.has(o,i)&&typeof i=="string"?n(i):Reflect.get(o,i)}),this.methods().then(o=>o.forEach(n))}eval(t,r,n={}){return this.invoke(il,[typeof t=="string"?t:t.toString(),r],n)}invoke(t,r=[],n={}){if(this.tasks.length>=this.maxQueueSize)throw new Error("Max queue size of "+this.maxQueueSize+" reached");let o={method:t,params:r,transfer:n.transfer};return this.tasks.push(o),this.pending.set(o,n.controller??new AbortController),this.next(),new Promise((i,s)=>{let a=[this.#e.on("complete",(u,l)=>{o===u&&(a.forEach(c=>c()),i(l))}),this.#e.on("error",(u,l)=>{o===u&&(a.forEach(c=>c()),s(l))})]})}methods(){return this.invoke(ol)}proxy;next(){if(this.tasks.length===0)return;let t=this.getWorker();if(!t)return;let r=this.tasks.shift();if(!this.pending.has(r))return this.next();let n=this.pending.get(r);t.invoke(r.method,r.params,{transfer:r.transfer,timeout:r.timeout,controller:n}).then(o=>{this.#e.emit("complete",r,o)}).catch(o=>{this.#e.emit("error",r,o),t.terminateState==="finished"&&this.removeWorker(t)}).finally(()=>{this.pending.delete(r),this.next()})}getWorker(){for(let t of this.workers)if(!t.busy())return t;if(this.workers.length{try{await n.terminate(t,r),this.removeWorkerFromList(n)}finally{this.emitter.emit("worker-terminate")}})).then()}get stats(){let t=this.workers.length,r=this.workers.filter(function(n){return n.busy()}).length;return{totalWorkers:t,busyWorkers:r,idleWorkers:t-r,pendingTasks:this.tasks.length,activeTasks:r}}ensureMinWorkers(){if(this.minWorkers)for(let t=this.workers.length;t=1"),Sz=ra("integer>=1"),Iz=ra('integer>=0|"max"');var r_='"use strict";var Zg=Object.create;var vu=Object.defineProperty;var Qg=Object.getOwnPropertyDescriptor;var Xg=Object.getOwnPropertyNames;var ey=Object.getPrototypeOf,ty=Object.prototype.hasOwnProperty;var D=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ry=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Xg(t))!ty.call(e,o)&&o!==r&&vu(e,o,{get:()=>t[o],enumerable:!(n=Qg(t,o))||n.enumerable});return e};var $r=(e,t,r)=>(r=e!=null?Zg(ey(e)):{},ry(t||!e||!e.__esModule?vu(r,"default",{value:e,enumerable:!0}):r,e));var Js=D((pl,Hs)=>{(function(e){if(typeof pl=="object"&&typeof Hs<"u")Hs.exports=e();else if(typeof define=="function"&&define.amd)define([],e);else{var t;typeof window<"u"?t=window:typeof global<"u"?t=global:typeof self<"u"?t=self:t=this,t.localforage=e()}})(function(){var e,t,r;return function n(o,i,s){function a(l,d){if(!i[l]){if(!o[l]){var f=typeof require=="function"&&require;if(!d&&f)return f(l,!0);if(u)return u(l,!0);var g=new Error("Cannot find module \'"+l+"\'");throw g.code="MODULE_NOT_FOUND",g}var w=i[l]={exports:{}};o[l][0].call(w.exports,function(x){var S=o[l][1][x];return a(S||x)},w,w.exports,n,o,i,s)}return i[l].exports}for(var u=typeof require=="function"&&require,m=0;m"u"&&n(3);var f=Promise;function g(c,h){h&&c.then(function(p){h(null,p)},function(p){h(p)})}function w(c,h,p){typeof h=="function"&&c.then(h),typeof p=="function"&&c.catch(p)}function x(c){return typeof c!="string"&&(console.warn(c+" used as a key, but it is not a string."),c=String(c)),c}function S(){if(arguments.length&&typeof arguments[arguments.length-1]=="function")return arguments[arguments.length-1]}var N="local-forage-detect-blob-support",M=void 0,k={},ee=Object.prototype.toString,xe="readonly",A="readwrite";function B(c){for(var h=c.length,p=new ArrayBuffer(h),b=new Uint8Array(p),v=0;v=43)}}).catch(function(){return!1})}function F(c){return typeof M=="boolean"?f.resolve(M):L(c).then(function(h){return M=h,M})}function j(c){var h=k[c.name],p={};p.promise=new f(function(b,v){p.resolve=b,p.reject=v}),h.deferredOperations.push(p),h.dbReady?h.dbReady=h.dbReady.then(function(){return p.promise}):h.dbReady=p.promise}function O(c){var h=k[c.name],p=h.deferredOperations.pop();if(p)return p.resolve(),p.promise}function $(c,h){var p=k[c.name],b=p.deferredOperations.pop();if(b)return b.reject(h),b.promise}function R(c,h){return new f(function(p,b){if(k[c.name]=k[c.name]||Xa(),c.db)if(h)j(c),c.db.close();else return p(c.db);var v=[c.name];h&&v.push(c.version);var y=m.open.apply(m,v);h&&(y.onupgradeneeded=function(E){var I=y.result;try{I.createObjectStore(c.storeName),E.oldVersion<=1&&I.createObjectStore(N)}catch(_){if(_.name==="ConstraintError")console.warn(\'The database "\'+c.name+\'" has been upgraded from version \'+E.oldVersion+" to version "+E.newVersion+\', but the storage "\'+c.storeName+\'" already exists.\');else throw _}}),y.onerror=function(E){E.preventDefault(),b(y.error)},y.onsuccess=function(){var E=y.result;E.onversionchange=function(I){I.target.close()},p(E),O(c)}})}function U(c){return R(c,!1)}function q(c){return R(c,!0)}function W(c,h){if(!c.db)return!0;var p=!c.db.objectStoreNames.contains(c.storeName),b=c.versionc.db.version;if(b&&(c.version!==h&&console.warn(\'The database "\'+c.name+`" can\'t be downgraded from version `+c.db.version+" to version "+c.version+"."),c.version=c.db.version),v||p){if(p){var y=c.db.version+1;y>c.version&&(c.version=y)}return!0}return!1}function K(c){return new f(function(h,p){var b=new FileReader;b.onerror=p,b.onloadend=function(v){var y=btoa(v.target.result||"");h({__local_forage_encoded_blob:!0,data:y,type:c.type})},b.readAsBinaryString(c)})}function X(c){var h=B(atob(c.data));return d([h],{type:c.type})}function J(c){return c&&c.__local_forage_encoded_blob}function Zn(c){var h=this,p=h._initReady().then(function(){var b=k[h._dbInfo.name];if(b&&b.dbReady)return b.dbReady});return w(p,c,c),p}function Xh(c){j(c);for(var h=k[c.name],p=h.forages,b=0;b0&&(!c.db||y.name==="InvalidStateError"||y.name==="NotFoundError"))return f.resolve().then(function(){if(!c.db||y.name==="NotFoundError"&&!c.db.objectStoreNames.contains(c.storeName)&&c.version<=c.db.version)return c.db&&(c.version=c.db.version+1),q(c)}).then(function(){return Xh(c).then(function(){ft(c,h,p,b-1)})}).catch(p);p(y)}}function Xa(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function eg(c){var h=this,p={db:null};if(c)for(var b in c)p[b]=c[b];var v=k[p.name];v||(v=Xa(),k[p.name]=v),v.forages.push(h),h._initReady||(h._initReady=h.ready,h.ready=Zn);var y=[];function E(){return f.resolve()}for(var I=0;I>4,C[v++]=(E&15)<<4|I>>2,C[v++]=(I&3)<<6|_&63;return T}function Ki(c){var h=new Uint8Array(c),p="",b;for(b=0;b>2],p+=vt[(h[b]&3)<<4|h[b+1]>>4],p+=vt[(h[b+1]&15)<<2|h[b+2]>>6],p+=vt[h[b+2]&63];return h.length%3===2?p=p.substring(0,p.length-1)+"=":h.length%3===1&&(p=p.substring(0,p.length-2)+"=="),p}function mg(c,h){var p="";if(c&&(p=fu.call(c)),c&&(p==="[object ArrayBuffer]"||c.buffer&&fu.call(c.buffer)==="[object ArrayBuffer]")){var b,v=Qn;c instanceof ArrayBuffer?(b=c,v+=zi):(b=c.buffer,p==="[object Int8Array]"?v+=tu:p==="[object Uint8Array]"?v+=ru:p==="[object Uint8ClampedArray]"?v+=nu:p==="[object Int16Array]"?v+=ou:p==="[object Uint16Array]"?v+=su:p==="[object Int32Array]"?v+=iu:p==="[object Uint32Array]"?v+=au:p==="[object Float32Array]"?v+=uu:p==="[object Float64Array]"?v+=cu:h(new Error("Failed to get type for BinaryArray"))),h(v+Ki(b))}else if(p==="[object Blob]"){var y=new FileReader;y.onload=function(){var E=pg+c.type+"~"+Ki(this.result);h(Qn+Wi+E)},y.readAsArrayBuffer(c)}else try{h(JSON.stringify(c))}catch(E){console.error("Couldn\'t convert value into a JSON string: ",c),h(null,E)}}function dg(c){if(c.substring(0,Ui)!==Qn)return JSON.parse(c);var h=c.substring(lu),p=c.substring(Ui,lu),b;if(p===Wi&&eu.test(h)){var v=h.match(eu);b=v[1],h=h.substring(v[0].length)}var y=pu(h);switch(p){case zi:return y;case Wi:return d([y],{type:b});case tu:return new Int8Array(y);case ru:return new Uint8Array(y);case nu:return new Uint8ClampedArray(y);case ou:return new Int16Array(y);case su:return new Uint16Array(y);case iu:return new Int32Array(y);case au:return new Uint32Array(y);case uu:return new Float32Array(y);case cu:return new Float64Array(y);default:throw new Error("Unkown type: "+p)}}var Gi={serialize:mg,deserialize:dg,stringToBuffer:pu,bufferToString:Ki};function mu(c,h,p,b){c.executeSql("CREATE TABLE IF NOT EXISTS "+h.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],p,b)}function hg(c){var h=this,p={db:null};if(c)for(var b in c)p[b]=typeof c[b]!="string"?c[b].toString():c[b];var v=new f(function(y,E){try{p.db=openDatabase(p.name,String(p.version),p.description,p.size)}catch(I){return E(I)}p.db.transaction(function(I){mu(I,p,function(){h._dbInfo=p,y()},function(_,T){E(T)})},E)});return p.serializer=Gi,v}function wt(c,h,p,b,v,y){c.executeSql(p,b,v,function(E,I){I.code===I.SYNTAX_ERR?E.executeSql("SELECT name FROM sqlite_master WHERE type=\'table\' AND name = ?",[h.storeName],function(_,T){T.rows.length?y(_,I):mu(_,h,function(){_.executeSql(p,b,v,y)},y)},y):y(E,I)},y)}function gg(c,h){var p=this;c=x(c);var b=new f(function(v,y){p.ready().then(function(){var E=p._dbInfo;E.db.transaction(function(I){wt(I,E,"SELECT * FROM "+E.storeName+" WHERE key = ? LIMIT 1",[c],function(_,T){var C=T.rows.length?T.rows.item(0).value:null;C&&(C=E.serializer.deserialize(C)),v(C)},function(_,T){y(T)})})}).catch(y)});return g(b,h),b}function yg(c,h){var p=this,b=new f(function(v,y){p.ready().then(function(){var E=p._dbInfo;E.db.transaction(function(I){wt(I,E,"SELECT * FROM "+E.storeName,[],function(_,T){for(var C=T.rows,P=C.length,z=0;z0){E(du.apply(v,[c,_,p,b-1]));return}I(z)}})})}).catch(I)});return g(y,p),y}function bg(c,h,p){return du.apply(this,[c,h,p,1])}function vg(c,h){var p=this;c=x(c);var b=new f(function(v,y){p.ready().then(function(){var E=p._dbInfo;E.db.transaction(function(I){wt(I,E,"DELETE FROM "+E.storeName+" WHERE key = ?",[c],function(){v()},function(_,T){y(T)})})}).catch(y)});return g(b,h),b}function wg(c){var h=this,p=new f(function(b,v){h.ready().then(function(){var y=h._dbInfo;y.db.transaction(function(E){wt(E,y,"DELETE FROM "+y.storeName,[],function(){b()},function(I,_){v(_)})})}).catch(v)});return g(p,c),p}function xg(c){var h=this,p=new f(function(b,v){h.ready().then(function(){var y=h._dbInfo;y.db.transaction(function(E){wt(E,y,"SELECT COUNT(key) as c FROM "+y.storeName,[],function(I,_){var T=_.rows.item(0).c;b(T)},function(I,_){v(_)})})}).catch(v)});return g(p,c),p}function Eg(c,h){var p=this,b=new f(function(v,y){p.ready().then(function(){var E=p._dbInfo;E.db.transaction(function(I){wt(I,E,"SELECT key FROM "+E.storeName+" WHERE id = ? LIMIT 1",[c+1],function(_,T){var C=T.rows.length?T.rows.item(0).key:null;v(C)},function(_,T){y(T)})})}).catch(y)});return g(b,h),b}function Ig(c){var h=this,p=new f(function(b,v){h.ready().then(function(){var y=h._dbInfo;y.db.transaction(function(E){wt(E,y,"SELECT key FROM "+y.storeName,[],function(I,_){for(var T=[],C=0;C<_.rows.length;C++)T.push(_.rows.item(C).key);b(T)},function(I,_){v(_)})})}).catch(v)});return g(p,c),p}function Sg(c){return new f(function(h,p){c.transaction(function(b){b.executeSql("SELECT name FROM sqlite_master WHERE type=\'table\' AND name <> \'__WebKitDatabaseInfoTable__\'",[],function(v,y){for(var E=[],I=0;I0}function Cg(c){var h=this,p={};if(c)for(var b in c)p[b]=c[b];return p.keyPrefix=hu(c,h._defaultConfig),Ng()?(h._dbInfo=p,p.serializer=Gi,f.resolve()):f.reject()}function Ag(c){var h=this,p=h.ready().then(function(){for(var b=h._dbInfo.keyPrefix,v=localStorage.length-1;v>=0;v--){var y=localStorage.key(v);y.indexOf(b)===0&&localStorage.removeItem(y)}});return g(p,c),p}function Rg(c,h){var p=this;c=x(c);var b=p.ready().then(function(){var v=p._dbInfo,y=localStorage.getItem(v.keyPrefix+c);return y&&(y=v.serializer.deserialize(y)),y});return g(b,h),b}function Fg(c,h){var p=this,b=p.ready().then(function(){for(var v=p._dbInfo,y=v.keyPrefix,E=y.length,I=localStorage.length,_=1,T=0;T=0;E--){var I=localStorage.key(E);I.indexOf(y)===0&&localStorage.removeItem(I)}}):v=f.reject("Invalid arguments"),g(v,h),v}var Lg={_driver:"localStorageWrapper",_initStorage:Cg,_support:_g(),iterate:Fg,getItem:Rg,setItem:qg,removeItem:Mg,clear:Ag,length:kg,key:$g,keys:Pg,dropInstance:jg},Bg=function(h,p){return h===p||typeof h=="number"&&typeof p=="number"&&isNaN(h)&&isNaN(p)},Ug=function(h,p){for(var b=h.length,v=0;v"u"?"undefined":s(p))==="object"){if(this._ready)return new Error("Can\'t call config() after localforage has been used.");for(var b in p){if(b==="storeName"&&(p[b]=p[b].replace(/\\W/g,"_")),b==="version"&&typeof p[b]!="number")return new Error("Database version must be a number.");this._config[b]=p[b]}return"driver"in p&&p.driver?this.setDriver(this._config.driver):!0}else return typeof p=="string"?this._config[p]:this._config},c.prototype.defineDriver=function(p,b,v){var y=new f(function(E,I){try{var _=p._driver,T=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!p._driver){I(T);return}for(var C=Hi.concat("_initStorage"),P=0,z=C.length;P{var gr=1e3,yr=gr*60,br=yr*60,zt=br*24,Lv=zt*7,Bv=zt*365.25;ml.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return Uv(e);if(r==="number"&&isFinite(e))return t.long?Wv(e):zv(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function Uv(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Bv;case"weeks":case"week":case"w":return r*Lv;case"days":case"day":case"d":return r*zt;case"hours":case"hour":case"hrs":case"hr":case"h":return r*br;case"minutes":case"minute":case"mins":case"min":case"m":return r*yr;case"seconds":case"second":case"secs":case"sec":case"s":return r*gr;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function zv(e){var t=Math.abs(e);return t>=zt?Math.round(e/zt)+"d":t>=br?Math.round(e/br)+"h":t>=yr?Math.round(e/yr)+"m":t>=gr?Math.round(e/gr)+"s":e+"ms"}function Wv(e){var t=Math.abs(e);return t>=zt?Wo(e,t,zt,"day"):t>=br?Wo(e,t,br,"hour"):t>=yr?Wo(e,t,yr,"minute"):t>=gr?Wo(e,t,gr,"second"):e+" ms"}function Wo(e,t,r,n){var o=t>=r*1.5;return Math.round(e/r)+" "+n+(o?"s":"")}});var gl=D((tA,hl)=>{function Kv(e){r.debug=r,r.default=r,r.coerce=u,r.disable=i,r.enable=o,r.enabled=s,r.humanize=dl(),r.destroy=m,Object.keys(e).forEach(l=>{r[l]=e[l]}),r.names=[],r.skips=[],r.formatters={};function t(l){let d=0;for(let f=0;f{if(A==="%%")return"%";ee++;let L=r.formatters[B];if(typeof L=="function"){let F=S[ee];A=L.call(N,F),S.splice(ee,1),ee--}return A}),r.formatArgs.call(N,S),(N.log||r.log).apply(N,S)}return x.namespace=l,x.useColors=r.useColors(),x.color=r.selectColor(l),x.extend=n,x.destroy=r.destroy,Object.defineProperty(x,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(g!==r.namespaces&&(g=r.namespaces,w=r.enabled(l)),w),set:S=>{f=S}}),typeof r.init=="function"&&r.init(x),x}function n(l,d){let f=r(this.namespace+(typeof d>"u"?":":d)+l);return f.log=this.log,f}function o(l){r.save(l),r.namespaces=l,r.names=[],r.skips=[];let d,f=(typeof l=="string"?l:"").split(/[\\s,]+/),g=f.length;for(d=0;d"-"+d)].join(",");return r.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let d,f;for(d=0,f=r.skips.length;d{Fe.formatArgs=Hv;Fe.save=Jv;Fe.load=Vv;Fe.useColors=Gv;Fe.storage=Yv();Fe.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Fe.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Gv(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/)}function Hv(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+Ko.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(r++,o==="%c"&&(n=r))}),e.splice(n,0,t)}Fe.log=console.debug||console.log||(()=>{});function Jv(e){try{e?Fe.storage.setItem("debug",e):Fe.storage.removeItem("debug")}catch{}}function Vv(){let e;try{e=Fe.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function Yv(){try{return localStorage}catch{}}Ko.exports=gl()(Fe);var{formatters:Zv}=Ko.exports;Zv.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var bl=D((rA,yl)=>{"use strict";yl.exports=Qv;function vr(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function Qv(e){if(e=e||{},e.circles)return Xv(e);return e.proto?n:r;function t(o,i){for(var s=Object.keys(o),a=new Array(s.length),u=0;u{var ew=require("util"),Wt=we()("log4js:configuration"),Go=[],Ho=[],vl=e=>!e,wl=e=>e&&typeof e=="object"&&!Array.isArray(e),tw=e=>/^[A-Za-z][A-Za-z0-9_]*$/g.test(e),rw=e=>e&&typeof e=="number"&&Number.isInteger(e),nw=e=>{Ho.push(e),Wt(`Added listener, now ${Ho.length} listeners`)},ow=e=>{Go.push(e),Wt(`Added pre-processing listener, now ${Go.length} listeners`)},xl=(e,t,r)=>{(Array.isArray(t)?t:[t]).forEach(o=>{if(o)throw new Error(`Problem with log4js configuration: (${ew.inspect(e,{depth:5})}) - ${r}`)})},iw=e=>{Wt("New configuration to be validated: ",e),xl(e,vl(wl(e)),"must be an object."),Wt(`Calling pre-processing listeners (${Go.length})`),Go.forEach(t=>t(e)),Wt("Configuration pre-processing finished."),Wt(`Calling configuration listeners (${Ho.length})`),Ho.forEach(t=>t(e)),Wt("Configuration finished.")};El.exports={configure:iw,addListener:nw,addPreProcessingListener:ow,throwExceptionIf:xl,anObject:wl,anInteger:rw,validIdentifier:tw,not:vl}});var Jo=D((oA,ze)=>{"use strict";function Il(e,t){for(var r=e.toString();r.length-1?o:i,a=Gt(t.getHours()),u=Gt(t.getMinutes()),m=Gt(t.getSeconds()),l=Il(t.getMilliseconds(),3),d=sw(t.getTimezoneOffset()),f=e.replace(/dd/g,r).replace(/MM/g,n).replace(/y{1,4}/g,s).replace(/hh/g,a).replace(/mm/g,u).replace(/ss/g,m).replace(/SSS/g,l).replace(/O/g,d);return f}function _t(e,t,r,n){e["set"+(n?"":"UTC")+t](r)}function aw(e,t,r){var n=e.indexOf("O")<0,o=!1,i=[{pattern:/y{1,4}/,regexp:"\\\\d{1,4}",fn:function(d,f){_t(d,"FullYear",f,n)}},{pattern:/MM/,regexp:"\\\\d{1,2}",fn:function(d,f){_t(d,"Month",f-1,n),d.getMonth()!==f-1&&(o=!0)}},{pattern:/dd/,regexp:"\\\\d{1,2}",fn:function(d,f){o&&_t(d,"Month",d.getMonth()-1,n),_t(d,"Date",f,n)}},{pattern:/hh/,regexp:"\\\\d{1,2}",fn:function(d,f){_t(d,"Hours",f,n)}},{pattern:/mm/,regexp:"\\\\d\\\\d",fn:function(d,f){_t(d,"Minutes",f,n)}},{pattern:/ss/,regexp:"\\\\d\\\\d",fn:function(d,f){_t(d,"Seconds",f,n)}},{pattern:/SSS/,regexp:"\\\\d\\\\d\\\\d",fn:function(d,f){_t(d,"Milliseconds",f,n)}},{pattern:/O/,regexp:"[+-]\\\\d{1,2}:?\\\\d{2}?|Z",fn:function(d,f){f==="Z"?f=0:f=f.replace(":","");var g=Math.abs(f),w=(f>0?-1:1)*(g%100+Math.floor(g/100)*60);d.setUTCMinutes(d.getUTCMinutes()+w)}}],s=i.reduce(function(d,f){return f.pattern.test(d.regexp)?(f.index=d.regexp.match(f.pattern).index,d.regexp=d.regexp.replace(f.pattern,"("+f.regexp+")")):f.index=-1,d},{regexp:e,index:[]}),a=i.filter(function(d){return d.index>-1});a.sort(function(d,f){return d.index-f.index});var u=new RegExp(s.regexp),m=u.exec(t);if(m){var l=r||ze.exports.now();return a.forEach(function(d,f){d.fn(l,m[f+1])}),l}throw new Error("String \'"+t+"\' could not be parsed as \'"+e+"\'")}function uw(e,t,r){if(!e)throw new Error("pattern must be supplied");return aw(e,t,r)}function cw(){return new Date}ze.exports=Sl;ze.exports.asString=Sl;ze.exports.parse=uw;ze.exports.now=cw;ze.exports.ISO8601_FORMAT="yyyy-MM-ddThh:mm:ss.SSS";ze.exports.ISO8601_WITH_TZ_OFFSET_FORMAT="yyyy-MM-ddThh:mm:ss.SSSO";ze.exports.DATETIME_FORMAT="dd MM yyyy hh:mm:ss.SSS";ze.exports.ABSOLUTETIME_FORMAT="hh:mm:ss.SSS"});var Ys=D((iA,kl)=>{var Tt=Jo(),Ol=require("os"),bn=require("util"),yn=require("path"),Dl=require("url"),_l=we()("log4js:layouts"),Tl={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[90,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[91,39],yellow:[33,39]};function Nl(e){return e?`\\x1B[${Tl[e][0]}m`:""}function Cl(e){return e?`\\x1B[${Tl[e][1]}m`:""}function lw(e,t){return Nl(t)+e+Cl(t)}function Al(e,t){return lw(bn.format("[%s] [%s] %s - ",Tt.asString(e.startTime),e.level.toString(),e.categoryName),t)}function Rl(e){return Al(e)+bn.format(...e.data)}function Vo(e){return Al(e,e.level.colour)+bn.format(...e.data)}function Fl(e){return bn.format(...e.data)}function $l(e){return e.data[0]}function Pl(e,t){let r="%r %p %c - %m%n",n=/%(-?[0-9]+)?(\\.?-?[0-9]+)?([[\\]cdhmnprzxXyflos%])(\\{([^}]+)\\})?|([^%]+)/;e=e||r;function o(O,$){let R=O.categoryName;if($){let U=parseInt($,10),q=R.split(".");Uq&&(R=W.slice(-q).join(yn.sep))}return R}function k(O){return O.lineNumber?`${O.lineNumber}`:""}function ee(O){return O.columnNumber?`${O.columnNumber}`:""}function xe(O){return O.callStack||""}let A={c:o,d:i,h:s,m:a,n:u,p:m,r:l,"[":d,"]":f,y:x,z:w,"%":g,x:S,X:N,f:M,l:k,o:ee,s:xe};function B(O,$,R){return A[O]($,R)}function L(O,$){let R;return O?(R=parseInt(O.slice(1),10),R>0?$.slice(0,R):$.slice(R)):$}function F(O,$){let R;if(O)if(O.charAt(0)==="-")for(R=parseInt(O.slice(1),10);$.length{var me=Kt(),Ml=["white","grey","black","blue","cyan","green","magenta","red","yellow"],de=class{constructor(t,r,n){this.level=t,this.levelStr=r,this.colour=n}toString(){return this.levelStr}static getLevel(t,r){return t?t instanceof de?t:(t instanceof Object&&t.levelStr&&(t=t.levelStr),de[t.toString().toUpperCase()]||r):r}static addLevels(t){t&&(Object.keys(t).forEach(n=>{let o=n.toUpperCase();de[o]=new de(t[n].value,o,t[n].colour);let i=de.levels.findIndex(s=>s.levelStr===o);i>-1?de.levels[i]=de[o]:de.levels.push(de[o])}),de.levels.sort((n,o)=>n.level-o.level))}isLessThanOrEqualTo(t){return typeof t=="string"&&(t=de.getLevel(t)),this.level<=t.level}isGreaterThanOrEqualTo(t){return typeof t=="string"&&(t=de.getLevel(t)),this.level>=t.level}isEqualTo(t){return typeof t=="string"&&(t=de.getLevel(t)),this.level===t.level}};de.levels=[];de.addLevels({ALL:{value:Number.MIN_VALUE,colour:"grey"},TRACE:{value:5e3,colour:"blue"},DEBUG:{value:1e4,colour:"cyan"},INFO:{value:2e4,colour:"green"},WARN:{value:3e4,colour:"yellow"},ERROR:{value:4e4,colour:"red"},FATAL:{value:5e4,colour:"magenta"},MARK:{value:9007199254740992,colour:"grey"},OFF:{value:Number.MAX_VALUE,colour:"grey"}});me.addListener(e=>{let t=e.levels;t&&(me.throwExceptionIf(e,me.not(me.anObject(t)),"levels must be an object"),Object.keys(t).forEach(n=>{me.throwExceptionIf(e,me.not(me.validIdentifier(n)),`level name "${n}" is not a valid identifier (must start with a letter, only contain A-Z,a-z,0-9,_)`),me.throwExceptionIf(e,me.not(me.anObject(t[n])),`level "${n}" must be an object`),me.throwExceptionIf(e,me.not(t[n].value),`level "${n}" must have a \'value\' property`),me.throwExceptionIf(e,me.not(me.anInteger(t[n].value)),`level "${n}".value must have an integer value`),me.throwExceptionIf(e,me.not(t[n].colour),`level "${n}" must have a \'colour\' property`),me.throwExceptionIf(e,me.not(Ml.indexOf(t[n].colour)>-1),`level "${n}".colour must be one of ${Ml.join(", ")}`)}))});me.addListener(e=>{de.addLevels(e.levels)});ql.exports=de});var Jl=D(wn=>{"use strict";var{parse:Bl,stringify:Ul}=JSON,{keys:fw}=Object,vn=String,zl="string",jl={},Yo="object",Wl=(e,t)=>t,pw=e=>e instanceof vn?vn(e):e,mw=(e,t)=>typeof t===zl?new vn(t):t,Kl=(e,t,r,n)=>{let o=[];for(let i=fw(r),{length:s}=i,a=0;a{let n=vn(t.push(r)-1);return e.set(r,n),n},Gl=(e,t)=>{let r=Bl(e,mw).map(pw),n=r[0],o=t||Wl,i=typeof n===Yo&&n?Kl(r,new Set,n,o):n;return o.call({"":i},"",i)};wn.parse=Gl;var Hl=(e,t,r)=>{let n=t&&typeof t===Yo?(l,d)=>l===""||-1Bl(Hl(e));wn.toJSON=dw;var hw=e=>Gl(Ul(e));wn.fromJSON=hw});var Zs=D((uA,Zl)=>{var Vl=Jl(),Yl=Ht(),wr=class{constructor(t,r,n,o,i){this.startTime=new Date,this.categoryName=t,this.data=n,this.level=r,this.context=Object.assign({},o),this.pid=process.pid,i&&(this.functionName=i.functionName,this.fileName=i.fileName,this.lineNumber=i.lineNumber,this.columnNumber=i.columnNumber,this.callStack=i.callStack)}serialise(){return Vl.stringify(this,(t,r)=>(r&&r.message&&r.stack?r=Object.assign({message:r.message,stack:r.stack},r):typeof r=="number"&&(Number.isNaN(r)||!Number.isFinite(r))?r=r.toString():typeof r>"u"&&(r=typeof r),r))}static deserialise(t){let r;try{let n=Vl.parse(t,(o,i)=>{if(i&&i.message&&i.stack){let s=new Error(i);Object.keys(i).forEach(a=>{s[a]=i[a]}),i=s}return i});n.location={functionName:n.functionName,fileName:n.fileName,lineNumber:n.lineNumber,columnNumber:n.columnNumber,callStack:n.callStack},r=new wr(n.categoryName,Yl.getLevel(n.level.levelStr),n.data,n.context,n.location),r.startTime=new Date(n.startTime),r.pid=n.pid,r.cluster=n.cluster}catch(n){r=new wr("log4js",Yl.ERROR,["Unable to parse log:",t,"because: ",n])}return r}};Zl.exports=wr});var Qo=D((cA,ef)=>{var We=we()("log4js:clustering"),gw=Zs(),yw=Kt(),xr=!1,Ke=null;try{Ke=require("cluster")}catch{We("cluster module not present"),xr=!0}var Xs=[],En=!1,xn="NODE_APP_INSTANCE",Ql=()=>En&&process.env[xn]==="0",Qs=()=>xr||Ke&&Ke.isMaster||Ql(),Xl=e=>{Xs.forEach(t=>t(e))},Zo=(e,t)=>{if(We("cluster message received from worker ",e,": ",t),e.topic&&e.data&&(t=e,e=void 0),t&&t.topic&&t.topic==="log4js:message"){We("received message: ",t.data);let r=gw.deserialise(t.data);Xl(r)}};xr||yw.addListener(e=>{Xs.length=0,{pm2:En,disableClustering:xr,pm2InstanceVar:xn="NODE_APP_INSTANCE"}=e,We(`clustering disabled ? ${xr}`),We(`cluster.isMaster ? ${Ke&&Ke.isMaster}`),We(`pm2 enabled ? ${En}`),We(`pm2InstanceVar = ${xn}`),We(`process.env[${xn}] = ${process.env[xn]}`),En&&process.removeListener("message",Zo),Ke&&Ke.removeListener&&Ke.removeListener("message",Zo),xr||e.disableClustering?We("Not listening for cluster messages, because clustering disabled."):Ql()?(We("listening for PM2 broadcast messages"),process.on("message",Zo)):Ke&&Ke.isMaster?(We("listening for cluster messages"),Ke.on("message",Zo)):We("not listening for messages, because we are not a master process")});ef.exports={onlyOnMaster:(e,t)=>Qs()?e():t,isMaster:Qs,send:e=>{Qs()?Xl(e):(En||(e.cluster={workerId:Ke.worker.id,worker:process.pid}),process.send({topic:"log4js:message",data:e.serialise()}))},onMessage:e=>{Xs.push(e)}}});var nf=D((lA,rf)=>{function bw(e){if(typeof e=="number"&&Number.isInteger(e))return e;let t={K:1024,M:1024*1024,G:1024*1024*1024},r=Object.keys(t),n=e.slice(-1).toLocaleUpperCase(),o=e.slice(0,-1).trim();if(r.indexOf(n)<0||!Number.isInteger(Number(o)))throw Error(`maxLogSize: "${e}" is invalid`);return o*t[n]}function vw(e,t){let r=Object.assign({},t);return Object.keys(e).forEach(n=>{r[n]&&(r[n]=e[n](t[n]))}),r}function ea(e){return vw({maxLogSize:bw},e)}var tf={dateFile:ea,file:ea,fileSync:ea};rf.exports.modifyConfig=e=>tf[e.type]?tf[e.type](e):e});var sf=D((fA,of)=>{var ww=console.log.bind(console);function xw(e,t){return r=>{ww(e(r,t))}}function Ew(e,t){let r=t.colouredLayout;return e.layout&&(r=t.layout(e.layout.type,e.layout)),xw(r,e.timezoneOffset)}of.exports.configure=Ew});var uf=D(af=>{function Iw(e,t){return r=>{process.stdout.write(`${e(r,t)}\n`)}}function Sw(e,t){let r=t.colouredLayout;return e.layout&&(r=t.layout(e.layout.type,e.layout)),Iw(r,e.timezoneOffset)}af.configure=Sw});var lf=D((mA,cf)=>{function Ow(e,t){return r=>{process.stderr.write(`${e(r,t)}\n`)}}function Dw(e,t){let r=t.colouredLayout;return e.layout&&(r=t.layout(e.layout.type,e.layout)),Ow(r,e.timezoneOffset)}cf.exports.configure=Dw});var pf=D((dA,ff)=>{function _w(e,t,r,n){let o=n.getLevel(e),i=n.getLevel(t,n.FATAL);return s=>{let a=s.level;o.isLessThanOrEqualTo(a)&&i.isGreaterThanOrEqualTo(a)&&r(s)}}function Tw(e,t,r,n){let o=r(e.appender);return _w(e.level,e.maxLevel,o,n)}ff.exports.configure=Tw});var hf=D((hA,df)=>{var mf=we()("log4js:categoryFilter");function Nw(e,t){return typeof e=="string"&&(e=[e]),r=>{mf(`Checking ${r.categoryName} against ${e}`),e.indexOf(r.categoryName)===-1&&(mf("Not excluded, sending to appender"),t(r))}}function Cw(e,t,r){let n=r(e.appender);return Nw(e.exclude,n)}df.exports.configure=Cw});var bf=D((gA,yf)=>{var gf=we()("log4js:noLogFilter");function Aw(e){return e.filter(r=>r!=null&&r!=="")}function Rw(e,t){return r=>{gf(`Checking data: ${r.data} against filters: ${e}`),typeof e=="string"&&(e=[e]),e=Aw(e);let n=new RegExp(e.join("|"),"i");(e.length===0||r.data.findIndex(o=>n.test(o))<0)&&(gf("Not excluded, sending to appender"),t(r))}}function Fw(e,t,r){let n=r(e.appender);return Rw(e.exclude,n)}yf.exports.configure=Fw});var Ce=D(ta=>{"use strict";ta.fromCallback=function(e){return Object.defineProperty(function(){if(typeof arguments[arguments.length-1]=="function")e.apply(this,arguments);else return new Promise((t,r)=>{arguments[arguments.length]=(n,o)=>{if(n)return r(n);t(o)},arguments.length++,e.apply(this,arguments)})},"name",{value:e.name})};ta.fromPromise=function(e){return Object.defineProperty(function(){let t=arguments[arguments.length-1];if(typeof t!="function")return e.apply(this,arguments);e.apply(this,arguments).then(r=>t(null,r),t)},"name",{value:e.name})}});var wf=D((bA,vf)=>{var Nt=require("constants"),$w=process.cwd,Xo=null,Pw=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return Xo||(Xo=$w.call(process)),Xo};try{process.cwd()}catch{}typeof process.chdir=="function"&&(ra=process.chdir,process.chdir=function(e){Xo=null,ra.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,ra));var ra;vf.exports=kw;function kw(e){Nt.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\\.6\\.[0-2]|^v0\\.5\\./)&&t(e),e.lutimes||r(e),e.chown=i(e.chown),e.fchown=i(e.fchown),e.lchown=i(e.lchown),e.chmod=n(e.chmod),e.fchmod=n(e.fchmod),e.lchmod=n(e.lchmod),e.chownSync=s(e.chownSync),e.fchownSync=s(e.fchownSync),e.lchownSync=s(e.lchownSync),e.chmodSync=o(e.chmodSync),e.fchmodSync=o(e.fchmodSync),e.lchmodSync=o(e.lchmodSync),e.stat=a(e.stat),e.fstat=a(e.fstat),e.lstat=a(e.lstat),e.statSync=u(e.statSync),e.fstatSync=u(e.fstatSync),e.lstatSync=u(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(l,d,f){f&&process.nextTick(f)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(l,d,f,g){g&&process.nextTick(g)},e.lchownSync=function(){}),Pw==="win32"&&(e.rename=typeof e.rename!="function"?e.rename:function(l){function d(f,g,w){var x=Date.now(),S=0;l(f,g,function N(M){if(M&&(M.code==="EACCES"||M.code==="EPERM"||M.code==="EBUSY")&&Date.now()-x<6e4){setTimeout(function(){e.stat(g,function(k,ee){k&&k.code==="ENOENT"?l(f,g,N):w(M)})},S),S<100&&(S+=10);return}w&&w(M)})}return Object.setPrototypeOf&&Object.setPrototypeOf(d,l),d}(e.rename)),e.read=typeof e.read!="function"?e.read:function(l){function d(f,g,w,x,S,N){var M;if(N&&typeof N=="function"){var k=0;M=function(ee,xe,A){if(ee&&ee.code==="EAGAIN"&&k<10)return k++,l.call(e,f,g,w,x,S,M);N.apply(this,arguments)}}return l.call(e,f,g,w,x,S,M)}return Object.setPrototypeOf&&Object.setPrototypeOf(d,l),d}(e.read),e.readSync=typeof e.readSync!="function"?e.readSync:function(l){return function(d,f,g,w,x){for(var S=0;;)try{return l.call(e,d,f,g,w,x)}catch(N){if(N.code==="EAGAIN"&&S<10){S++;continue}throw N}}}(e.readSync);function t(l){l.lchmod=function(d,f,g){l.open(d,Nt.O_WRONLY|Nt.O_SYMLINK,f,function(w,x){if(w){g&&g(w);return}l.fchmod(x,f,function(S){l.close(x,function(N){g&&g(S||N)})})})},l.lchmodSync=function(d,f){var g=l.openSync(d,Nt.O_WRONLY|Nt.O_SYMLINK,f),w=!0,x;try{x=l.fchmodSync(g,f),w=!1}finally{if(w)try{l.closeSync(g)}catch{}else l.closeSync(g)}return x}}function r(l){Nt.hasOwnProperty("O_SYMLINK")&&l.futimes?(l.lutimes=function(d,f,g,w){l.open(d,Nt.O_SYMLINK,function(x,S){if(x){w&&w(x);return}l.futimes(S,f,g,function(N){l.close(S,function(M){w&&w(N||M)})})})},l.lutimesSync=function(d,f,g){var w=l.openSync(d,Nt.O_SYMLINK),x,S=!0;try{x=l.futimesSync(w,f,g),S=!1}finally{if(S)try{l.closeSync(w)}catch{}else l.closeSync(w)}return x}):l.futimes&&(l.lutimes=function(d,f,g,w){w&&process.nextTick(w)},l.lutimesSync=function(){})}function n(l){return l&&function(d,f,g){return l.call(e,d,f,function(w){m(w)&&(w=null),g&&g.apply(this,arguments)})}}function o(l){return l&&function(d,f){try{return l.call(e,d,f)}catch(g){if(!m(g))throw g}}}function i(l){return l&&function(d,f,g,w){return l.call(e,d,f,g,function(x){m(x)&&(x=null),w&&w.apply(this,arguments)})}}function s(l){return l&&function(d,f,g){try{return l.call(e,d,f,g)}catch(w){if(!m(w))throw w}}}function a(l){return l&&function(d,f,g){typeof f=="function"&&(g=f,f=null);function w(x,S){S&&(S.uid<0&&(S.uid+=4294967296),S.gid<0&&(S.gid+=4294967296)),g&&g.apply(this,arguments)}return f?l.call(e,d,f,w):l.call(e,d,w)}}function u(l){return l&&function(d,f){var g=f?l.call(e,d,f):l.call(e,d);return g&&(g.uid<0&&(g.uid+=4294967296),g.gid<0&&(g.gid+=4294967296)),g}}function m(l){if(!l||l.code==="ENOSYS")return!0;var d=!process.getuid||process.getuid()!==0;return!!(d&&(l.code==="EINVAL"||l.code==="EPERM"))}}});var If=D((vA,Ef)=>{var xf=require("stream").Stream;Ef.exports=Mw;function Mw(e){return{ReadStream:t,WriteStream:r};function t(n,o){if(!(this instanceof t))return new t(n,o);xf.call(this);var i=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,o=o||{};for(var s=Object.keys(o),a=0,u=s.length;athis.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){i._read()});return}e.open(this.path,this.flags,this.mode,function(l,d){if(l){i.emit("error",l),i.readable=!1;return}i.fd=d,i.emit("open",d),i._read()})}function r(n,o){if(!(this instanceof r))return new r(n,o);xf.call(this),this.path=n,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,o=o||{};for(var i=Object.keys(o),s=0,a=i.length;s= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var Of=D((wA,Sf)=>{"use strict";Sf.exports=jw;var qw=Object.getPrototypeOf||function(e){return e.__proto__};function jw(e){if(e===null||typeof e!="object")return e;if(e instanceof Object)var t={__proto__:qw(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}});var he=D((xA,ia)=>{var se=require("fs"),Lw=wf(),Bw=If(),Uw=Of(),ei=require("util"),Ee,ri;typeof Symbol=="function"&&typeof Symbol.for=="function"?(Ee=Symbol.for("graceful-fs.queue"),ri=Symbol.for("graceful-fs.previous")):(Ee="___graceful-fs.queue",ri="___graceful-fs.previous");function zw(){}function Tf(e,t){Object.defineProperty(e,Ee,{get:function(){return t}})}var Jt=zw;ei.debuglog?Jt=ei.debuglog("gfs4"):/\\bgfs4\\b/i.test(process.env.NODE_DEBUG||"")&&(Jt=function(){var e=ei.format.apply(ei,arguments);e="GFS4: "+e.split(/\\n/).join(`\nGFS4: `),console.error(e)});se[Ee]||(Df=global[Ee]||[],Tf(se,Df),se.close=function(e){function t(r,n){return e.call(se,r,function(o){o||_f(),typeof n=="function"&&n.apply(this,arguments)})}return Object.defineProperty(t,ri,{value:e}),t}(se.close),se.closeSync=function(e){function t(r){e.apply(se,arguments),_f()}return Object.defineProperty(t,ri,{value:e}),t}(se.closeSync),/\\bgfs4\\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){Jt(se[Ee]),require("assert").equal(se[Ee].length,0)}));var Df;global[Ee]||Tf(global,se[Ee]);ia.exports=na(Uw(se));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!se.__patched&&(ia.exports=na(se),se.__patched=!0);function na(e){Lw(e),e.gracefulify=na,e.createReadStream=xe,e.createWriteStream=A;var t=e.readFile;e.readFile=r;function r(F,j,O){return typeof j=="function"&&(O=j,j=null),$(F,j,O);function $(R,U,q,W){return t(R,U,function(K){K&&(K.code==="EMFILE"||K.code==="ENFILE")?Er([$,[R,U,q],K,W||Date.now(),Date.now()]):typeof q=="function"&&q.apply(this,arguments)})}}var n=e.writeFile;e.writeFile=o;function o(F,j,O,$){return typeof O=="function"&&($=O,O=null),R(F,j,O,$);function R(U,q,W,K,X){return n(U,q,W,function(J){J&&(J.code==="EMFILE"||J.code==="ENFILE")?Er([R,[U,q,W,K],J,X||Date.now(),Date.now()]):typeof K=="function"&&K.apply(this,arguments)})}}var i=e.appendFile;i&&(e.appendFile=s);function s(F,j,O,$){return typeof O=="function"&&($=O,O=null),R(F,j,O,$);function R(U,q,W,K,X){return i(U,q,W,function(J){J&&(J.code==="EMFILE"||J.code==="ENFILE")?Er([R,[U,q,W,K],J,X||Date.now(),Date.now()]):typeof K=="function"&&K.apply(this,arguments)})}}var a=e.copyFile;a&&(e.copyFile=u);function u(F,j,O,$){return typeof O=="function"&&($=O,O=0),R(F,j,O,$);function R(U,q,W,K,X){return a(U,q,W,function(J){J&&(J.code==="EMFILE"||J.code==="ENFILE")?Er([R,[U,q,W,K],J,X||Date.now(),Date.now()]):typeof K=="function"&&K.apply(this,arguments)})}}var m=e.readdir;e.readdir=d;var l=/^v[0-5]\\./;function d(F,j,O){typeof j=="function"&&(O=j,j=null);var $=l.test(process.version)?function(q,W,K,X){return m(q,R(q,W,K,X))}:function(q,W,K,X){return m(q,W,R(q,W,K,X))};return $(F,j,O);function R(U,q,W,K){return function(X,J){X&&(X.code==="EMFILE"||X.code==="ENFILE")?Er([$,[U,q,W],X,K||Date.now(),Date.now()]):(J&&J.sort&&J.sort(),typeof W=="function"&&W.call(this,X,J))}}}if(process.version.substr(0,4)==="v0.8"){var f=Bw(e);N=f.ReadStream,k=f.WriteStream}var g=e.ReadStream;g&&(N.prototype=Object.create(g.prototype),N.prototype.open=M);var w=e.WriteStream;w&&(k.prototype=Object.create(w.prototype),k.prototype.open=ee),Object.defineProperty(e,"ReadStream",{get:function(){return N},set:function(F){N=F},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return k},set:function(F){k=F},enumerable:!0,configurable:!0});var x=N;Object.defineProperty(e,"FileReadStream",{get:function(){return x},set:function(F){x=F},enumerable:!0,configurable:!0});var S=k;Object.defineProperty(e,"FileWriteStream",{get:function(){return S},set:function(F){S=F},enumerable:!0,configurable:!0});function N(F,j){return this instanceof N?(g.apply(this,arguments),this):N.apply(Object.create(N.prototype),arguments)}function M(){var F=this;L(F.path,F.flags,F.mode,function(j,O){j?(F.autoClose&&F.destroy(),F.emit("error",j)):(F.fd=O,F.emit("open",O),F.read())})}function k(F,j){return this instanceof k?(w.apply(this,arguments),this):k.apply(Object.create(k.prototype),arguments)}function ee(){var F=this;L(F.path,F.flags,F.mode,function(j,O){j?(F.destroy(),F.emit("error",j)):(F.fd=O,F.emit("open",O))})}function xe(F,j){return new e.ReadStream(F,j)}function A(F,j){return new e.WriteStream(F,j)}var B=e.open;e.open=L;function L(F,j,O,$){return typeof O=="function"&&($=O,O=null),R(F,j,O,$);function R(U,q,W,K,X){return B(U,q,W,function(J,Zn){J&&(J.code==="EMFILE"||J.code==="ENFILE")?Er([R,[U,q,W,K],J,X||Date.now(),Date.now()]):typeof K=="function"&&K.apply(this,arguments)})}}return e}function Er(e){Jt("ENQUEUE",e[0].name,e[1]),se[Ee].push(e),oa()}var ti;function _f(){for(var e=Date.now(),t=0;t2&&(se[Ee][t][3]=e,se[Ee][t][4]=e);oa()}function oa(){if(clearTimeout(ti),ti=void 0,se[Ee].length!==0){var e=se[Ee].shift(),t=e[0],r=e[1],n=e[2],o=e[3],i=e[4];if(o===void 0)Jt("RETRY",t.name,r),t.apply(null,r);else if(Date.now()-o>=6e4){Jt("TIMEOUT",t.name,r);var s=r.pop();typeof s=="function"&&s.call(null,n)}else{var a=Date.now()-i,u=Math.max(i-o,1),m=Math.min(u*1.2,100);a>=m?(Jt("RETRY",t.name,r),t.apply(null,r.concat([o]))):se[Ee].push(e)}ti===void 0&&(ti=setTimeout(oa,0))}}});var sa=D(Vt=>{"use strict";var Nf=Ce().fromCallback,Ge=he(),Ww=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchown","lchmod","link","lstat","mkdir","mkdtemp","open","readFile","readdir","readlink","realpath","rename","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter(e=>typeof Ge[e]=="function");Object.keys(Ge).forEach(e=>{e!=="promises"&&(Vt[e]=Ge[e])});Ww.forEach(e=>{Vt[e]=Nf(Ge[e])});Vt.exists=function(e,t){return typeof t=="function"?Ge.exists(e,t):new Promise(r=>Ge.exists(e,r))};Vt.read=function(e,t,r,n,o,i){return typeof i=="function"?Ge.read(e,t,r,n,o,i):new Promise((s,a)=>{Ge.read(e,t,r,n,o,(u,m,l)=>{if(u)return a(u);s({bytesRead:m,buffer:l})})})};Vt.write=function(e,t,...r){return typeof r[r.length-1]=="function"?Ge.write(e,t,...r):new Promise((n,o)=>{Ge.write(e,t,...r,(i,s,a)=>{if(i)return o(i);n({bytesWritten:s,buffer:a})})})};typeof Ge.realpath.native=="function"&&(Vt.realpath.native=Nf(Ge.realpath.native))});var ua=D((IA,Af)=>{"use strict";var aa=require("path");function Cf(e){return e=aa.normalize(aa.resolve(e)).split(aa.sep),e.length>0?e[0]:null}var Kw=/[<>:"|?*]/;function Gw(e){let t=Cf(e);return e=e.replace(t,""),Kw.test(e)}Af.exports={getRootPath:Cf,invalidWin32Path:Gw}});var Ff=D((SA,Rf)=>{"use strict";var Hw=he(),ca=require("path"),Jw=ua().invalidWin32Path,Vw=parseInt("0777",8);function la(e,t,r,n){if(typeof t=="function"?(r=t,t={}):(!t||typeof t!="object")&&(t={mode:t}),process.platform==="win32"&&Jw(e)){let s=new Error(e+" contains invalid WIN32 path characters.");return s.code="EINVAL",r(s)}let o=t.mode,i=t.fs||Hw;o===void 0&&(o=Vw&~process.umask()),n||(n=null),r=r||function(){},e=ca.resolve(e),i.mkdir(e,o,s=>{if(!s)return n=n||e,r(null,n);switch(s.code){case"ENOENT":if(ca.dirname(e)===e)return r(s);la(ca.dirname(e),t,(a,u)=>{a?r(a,u):la(e,t,r,u)});break;default:i.stat(e,(a,u)=>{a||!u.isDirectory()?r(s,n):r(null,n)});break}})}Rf.exports=la});var Pf=D((OA,$f)=>{"use strict";var Yw=he(),fa=require("path"),Zw=ua().invalidWin32Path,Qw=parseInt("0777",8);function pa(e,t,r){(!t||typeof t!="object")&&(t={mode:t});let n=t.mode,o=t.fs||Yw;if(process.platform==="win32"&&Zw(e)){let i=new Error(e+" contains invalid WIN32 path characters.");throw i.code="EINVAL",i}n===void 0&&(n=Qw&~process.umask()),r||(r=null),e=fa.resolve(e);try{o.mkdirSync(e,n),r=r||e}catch(i){if(i.code==="ENOENT"){if(fa.dirname(e)===e)throw i;r=pa(fa.dirname(e),t,r),pa(e,t,r)}else{let s;try{s=o.statSync(e)}catch{throw i}if(!s.isDirectory())throw i}}return r}$f.exports=pa});var $e=D((DA,kf)=>{"use strict";var Xw=Ce().fromCallback,ma=Xw(Ff()),da=Pf();kf.exports={mkdirs:ma,mkdirsSync:da,mkdirp:ma,mkdirpSync:da,ensureDir:ma,ensureDirSync:da}});var ha=D((_A,qf)=>{"use strict";var Se=he(),Mf=require("os"),ni=require("path");function ex(){let e=ni.join("millis-test-sync"+Date.now().toString()+Math.random().toString().slice(2));e=ni.join(Mf.tmpdir(),e);let t=new Date(1435410243862);Se.writeFileSync(e,"https://github.com/jprichardson/node-fs-extra/pull/141");let r=Se.openSync(e,"r+");return Se.futimesSync(r,t,t),Se.closeSync(r),Se.statSync(e).mtime>1435410243e3}function tx(e){let t=ni.join("millis-test"+Date.now().toString()+Math.random().toString().slice(2));t=ni.join(Mf.tmpdir(),t);let r=new Date(1435410243862);Se.writeFile(t,"https://github.com/jprichardson/node-fs-extra/pull/141",n=>{if(n)return e(n);Se.open(t,"r+",(o,i)=>{if(o)return e(o);Se.futimes(i,r,r,s=>{if(s)return e(s);Se.close(i,a=>{if(a)return e(a);Se.stat(t,(u,m)=>{if(u)return e(u);e(null,m.mtime>1435410243e3)})})})})})}function rx(e){if(typeof e=="number")return Math.floor(e/1e3)*1e3;if(e instanceof Date)return new Date(Math.floor(e.getTime()/1e3)*1e3);throw new Error("fs-extra: timeRemoveMillis() unknown parameter type")}function nx(e,t,r,n){Se.open(e,"r+",(o,i)=>{if(o)return n(o);Se.futimes(i,t,r,s=>{Se.close(i,a=>{n&&n(s||a)})})})}function ox(e,t,r){let n=Se.openSync(e,"r+");return Se.futimesSync(n,t,r),Se.closeSync(n)}qf.exports={hasMillisRes:tx,hasMillisResSync:ex,timeRemoveMillis:rx,utimesMillis:nx,utimesMillisSync:ox}});var On=D((TA,Wf)=>{"use strict";var He=he(),Ae=require("path"),jf=10,Lf=5,ix=0,ya=process.versions.node.split("."),Bf=Number.parseInt(ya[0],10),Uf=Number.parseInt(ya[1],10),sx=Number.parseInt(ya[2],10);function In(){if(Bf>jf)return!0;if(Bf===jf){if(Uf>Lf)return!0;if(Uf===Lf&&sx>=ix)return!0}return!1}function ax(e,t,r){In()?He.stat(e,{bigint:!0},(n,o)=>{if(n)return r(n);He.stat(t,{bigint:!0},(i,s)=>i?i.code==="ENOENT"?r(null,{srcStat:o,destStat:null}):r(i):r(null,{srcStat:o,destStat:s}))}):He.stat(e,(n,o)=>{if(n)return r(n);He.stat(t,(i,s)=>i?i.code==="ENOENT"?r(null,{srcStat:o,destStat:null}):r(i):r(null,{srcStat:o,destStat:s}))})}function ux(e,t){let r,n;In()?r=He.statSync(e,{bigint:!0}):r=He.statSync(e);try{In()?n=He.statSync(t,{bigint:!0}):n=He.statSync(t)}catch(o){if(o.code==="ENOENT")return{srcStat:r,destStat:null};throw o}return{srcStat:r,destStat:n}}function cx(e,t,r,n){ax(e,t,(o,i)=>{if(o)return n(o);let{srcStat:s,destStat:a}=i;return a&&a.ino&&a.dev&&a.ino===s.ino&&a.dev===s.dev?n(new Error("Source and destination must not be the same.")):s.isDirectory()&&ba(e,t)?n(new Error(Sn(e,t,r))):n(null,{srcStat:s,destStat:a})})}function lx(e,t,r){let{srcStat:n,destStat:o}=ux(e,t);if(o&&o.ino&&o.dev&&o.ino===n.ino&&o.dev===n.dev)throw new Error("Source and destination must not be the same.");if(n.isDirectory()&&ba(e,t))throw new Error(Sn(e,t,r));return{srcStat:n,destStat:o}}function ga(e,t,r,n,o){let i=Ae.resolve(Ae.dirname(e)),s=Ae.resolve(Ae.dirname(r));if(s===i||s===Ae.parse(s).root)return o();In()?He.stat(s,{bigint:!0},(a,u)=>a?a.code==="ENOENT"?o():o(a):u.ino&&u.dev&&u.ino===t.ino&&u.dev===t.dev?o(new Error(Sn(e,r,n))):ga(e,t,s,n,o)):He.stat(s,(a,u)=>a?a.code==="ENOENT"?o():o(a):u.ino&&u.dev&&u.ino===t.ino&&u.dev===t.dev?o(new Error(Sn(e,r,n))):ga(e,t,s,n,o))}function zf(e,t,r,n){let o=Ae.resolve(Ae.dirname(e)),i=Ae.resolve(Ae.dirname(r));if(i===o||i===Ae.parse(i).root)return;let s;try{In()?s=He.statSync(i,{bigint:!0}):s=He.statSync(i)}catch(a){if(a.code==="ENOENT")return;throw a}if(s.ino&&s.dev&&s.ino===t.ino&&s.dev===t.dev)throw new Error(Sn(e,r,n));return zf(e,t,i,n)}function ba(e,t){let r=Ae.resolve(e).split(Ae.sep).filter(o=>o),n=Ae.resolve(t).split(Ae.sep).filter(o=>o);return r.reduce((o,i,s)=>o&&n[s]===i,!0)}function Sn(e,t,r){return`Cannot ${r} \'${e}\' to a subdirectory of itself, \'${t}\'.`}Wf.exports={checkPaths:cx,checkPathsSync:lx,checkParentPaths:ga,checkParentPathsSync:zf,isSrcSubdir:ba}});var Gf=D((NA,Kf)=>{"use strict";Kf.exports=function(e){if(typeof Buffer.allocUnsafe=="function")try{return Buffer.allocUnsafe(e)}catch{return new Buffer(e)}return new Buffer(e)}});var Zf=D((CA,Yf)=>{"use strict";var ne=he(),Dn=require("path"),fx=$e().mkdirsSync,px=ha().utimesMillisSync,_n=On();function mx(e,t,r){typeof r=="function"&&(r={filter:r}),r=r||{},r.clobber="clobber"in r?!!r.clobber:!0,r.overwrite="overwrite"in r?!!r.overwrite:r.clobber,r.preserveTimestamps&&process.arch==="ia32"&&console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269`);let{srcStat:n,destStat:o}=_n.checkPathsSync(e,t,"copy");return _n.checkParentPathsSync(e,n,t,"copy"),dx(o,e,t,r)}function dx(e,t,r,n){if(n.filter&&!n.filter(t,r))return;let o=Dn.dirname(r);return ne.existsSync(o)||fx(o),Hf(e,t,r,n)}function Hf(e,t,r,n){if(!(n.filter&&!n.filter(t,r)))return hx(e,t,r,n)}function hx(e,t,r,n){let i=(n.dereference?ne.statSync:ne.lstatSync)(t);if(i.isDirectory())return vx(i,e,t,r,n);if(i.isFile()||i.isCharacterDevice()||i.isBlockDevice())return gx(i,e,t,r,n);if(i.isSymbolicLink())return Ex(e,t,r,n)}function gx(e,t,r,n,o){return t?yx(e,r,n,o):Jf(e,r,n,o)}function yx(e,t,r,n){if(n.overwrite)return ne.unlinkSync(r),Jf(e,t,r,n);if(n.errorOnExist)throw new Error(`\'${r}\' already exists`)}function Jf(e,t,r,n){return typeof ne.copyFileSync=="function"?(ne.copyFileSync(t,r),ne.chmodSync(r,e.mode),n.preserveTimestamps?px(r,e.atime,e.mtime):void 0):bx(e,t,r,n)}function bx(e,t,r,n){let i=Gf()(65536),s=ne.openSync(t,"r"),a=ne.openSync(r,"w",e.mode),u=0;for(;uxx(n,e,t,r))}function xx(e,t,r,n){let o=Dn.join(t,e),i=Dn.join(r,e),{destStat:s}=_n.checkPathsSync(o,i,"copy");return Hf(s,o,i,n)}function Ex(e,t,r,n){let o=ne.readlinkSync(t);if(n.dereference&&(o=Dn.resolve(process.cwd(),o)),e){let i;try{i=ne.readlinkSync(r)}catch(s){if(s.code==="EINVAL"||s.code==="UNKNOWN")return ne.symlinkSync(o,r);throw s}if(n.dereference&&(i=Dn.resolve(process.cwd(),i)),_n.isSrcSubdir(o,i))throw new Error(`Cannot copy \'${o}\' to a subdirectory of itself, \'${i}\'.`);if(ne.statSync(r).isDirectory()&&_n.isSrcSubdir(i,o))throw new Error(`Cannot overwrite \'${i}\' with \'${o}\'.`);return Ix(o,r)}else return ne.symlinkSync(o,r)}function Ix(e,t){return ne.unlinkSync(t),ne.symlinkSync(e,t)}Yf.exports=mx});var va=D((AA,Qf)=>{"use strict";Qf.exports={copySync:Zf()}});var it=D((RA,ep)=>{"use strict";var Sx=Ce().fromPromise,Xf=sa();function Ox(e){return Xf.access(e).then(()=>!0).catch(()=>!1)}ep.exports={pathExists:Sx(Ox),pathExistsSync:Xf.existsSync}});var cp=D((FA,up)=>{"use strict";var Ie=he(),Tn=require("path"),Dx=$e().mkdirs,_x=it().pathExists,Tx=ha().utimesMillis,Nn=On();function Nx(e,t,r,n){typeof r=="function"&&!n?(n=r,r={}):typeof r=="function"&&(r={filter:r}),n=n||function(){},r=r||{},r.clobber="clobber"in r?!!r.clobber:!0,r.overwrite="overwrite"in r?!!r.overwrite:r.clobber,r.preserveTimestamps&&process.arch==="ia32"&&console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269`),Nn.checkPaths(e,t,"copy",(o,i)=>{if(o)return n(o);let{srcStat:s,destStat:a}=i;Nn.checkParentPaths(e,s,t,"copy",u=>u?n(u):r.filter?np(tp,a,e,t,r,n):tp(a,e,t,r,n))})}function tp(e,t,r,n,o){let i=Tn.dirname(r);_x(i,(s,a)=>{if(s)return o(s);if(a)return wa(e,t,r,n,o);Dx(i,u=>u?o(u):wa(e,t,r,n,o))})}function np(e,t,r,n,o,i){Promise.resolve(o.filter(r,n)).then(s=>s?e(t,r,n,o,i):i(),s=>i(s))}function wa(e,t,r,n,o){return n.filter?np(rp,e,t,r,n,o):rp(e,t,r,n,o)}function rp(e,t,r,n,o){(n.dereference?Ie.stat:Ie.lstat)(t,(s,a)=>{if(s)return o(s);if(a.isDirectory())return Fx(a,e,t,r,n,o);if(a.isFile()||a.isCharacterDevice()||a.isBlockDevice())return Cx(a,e,t,r,n,o);if(a.isSymbolicLink())return kx(e,t,r,n,o)})}function Cx(e,t,r,n,o,i){return t?Ax(e,r,n,o,i):op(e,r,n,o,i)}function Ax(e,t,r,n,o){if(n.overwrite)Ie.unlink(r,i=>i?o(i):op(e,t,r,n,o));else return n.errorOnExist?o(new Error(`\'${r}\' already exists`)):o()}function op(e,t,r,n,o){return typeof Ie.copyFile=="function"?Ie.copyFile(t,r,i=>i?o(i):ip(e,r,n,o)):Rx(e,t,r,n,o)}function Rx(e,t,r,n,o){let i=Ie.createReadStream(t);i.on("error",s=>o(s)).once("open",()=>{let s=Ie.createWriteStream(r,{mode:e.mode});s.on("error",a=>o(a)).on("open",()=>i.pipe(s)).once("close",()=>ip(e,r,n,o))})}function ip(e,t,r,n){Ie.chmod(t,e.mode,o=>o?n(o):r.preserveTimestamps?Tx(t,e.atime,e.mtime,n):n())}function Fx(e,t,r,n,o,i){return t?t&&!t.isDirectory()?i(new Error(`Cannot overwrite non-directory \'${n}\' with directory \'${r}\'.`)):sp(r,n,o,i):$x(e,r,n,o,i)}function $x(e,t,r,n,o){Ie.mkdir(r,i=>{if(i)return o(i);sp(t,r,n,s=>s?o(s):Ie.chmod(r,e.mode,o))})}function sp(e,t,r,n){Ie.readdir(e,(o,i)=>o?n(o):ap(i,e,t,r,n))}function ap(e,t,r,n,o){let i=e.pop();return i?Px(e,i,t,r,n,o):o()}function Px(e,t,r,n,o,i){let s=Tn.join(r,t),a=Tn.join(n,t);Nn.checkPaths(s,a,"copy",(u,m)=>{if(u)return i(u);let{destStat:l}=m;wa(l,s,a,o,d=>d?i(d):ap(e,r,n,o,i))})}function kx(e,t,r,n,o){Ie.readlink(t,(i,s)=>{if(i)return o(i);if(n.dereference&&(s=Tn.resolve(process.cwd(),s)),e)Ie.readlink(r,(a,u)=>a?a.code==="EINVAL"||a.code==="UNKNOWN"?Ie.symlink(s,r,o):o(a):(n.dereference&&(u=Tn.resolve(process.cwd(),u)),Nn.isSrcSubdir(s,u)?o(new Error(`Cannot copy \'${s}\' to a subdirectory of itself, \'${u}\'.`)):e.isDirectory()&&Nn.isSrcSubdir(u,s)?o(new Error(`Cannot overwrite \'${u}\' with \'${s}\'.`)):Mx(s,r,o)));else return Ie.symlink(s,r,o)})}function Mx(e,t,r){Ie.unlink(t,n=>n?r(n):Ie.symlink(e,t,r))}up.exports=Nx});var xa=D(($A,lp)=>{"use strict";var qx=Ce().fromCallback;lp.exports={copy:qx(cp())}});var vp=D((PA,bp)=>{"use strict";var fp=he(),hp=require("path"),G=require("assert"),Cn=process.platform==="win32";function gp(e){["unlink","chmod","stat","lstat","rmdir","readdir"].forEach(r=>{e[r]=e[r]||fp[r],r=r+"Sync",e[r]=e[r]||fp[r]}),e.maxBusyTries=e.maxBusyTries||3}function Ea(e,t,r){let n=0;typeof t=="function"&&(r=t,t={}),G(e,"rimraf: missing path"),G.strictEqual(typeof e,"string","rimraf: path should be a string"),G.strictEqual(typeof r,"function","rimraf: callback function required"),G(t,"rimraf: invalid options argument provided"),G.strictEqual(typeof t,"object","rimraf: options should be object"),gp(t),pp(e,t,function o(i){if(i){if((i.code==="EBUSY"||i.code==="ENOTEMPTY"||i.code==="EPERM")&&npp(e,t,o),s)}i.code==="ENOENT"&&(i=null)}r(i)})}function pp(e,t,r){G(e),G(t),G(typeof r=="function"),t.lstat(e,(n,o)=>{if(n&&n.code==="ENOENT")return r(null);if(n&&n.code==="EPERM"&&Cn)return mp(e,t,n,r);if(o&&o.isDirectory())return oi(e,t,n,r);t.unlink(e,i=>{if(i){if(i.code==="ENOENT")return r(null);if(i.code==="EPERM")return Cn?mp(e,t,i,r):oi(e,t,i,r);if(i.code==="EISDIR")return oi(e,t,i,r)}return r(i)})})}function mp(e,t,r,n){G(e),G(t),G(typeof n=="function"),r&&G(r instanceof Error),t.chmod(e,438,o=>{o?n(o.code==="ENOENT"?null:r):t.stat(e,(i,s)=>{i?n(i.code==="ENOENT"?null:r):s.isDirectory()?oi(e,t,r,n):t.unlink(e,n)})})}function dp(e,t,r){let n;G(e),G(t),r&&G(r instanceof Error);try{t.chmodSync(e,438)}catch(o){if(o.code==="ENOENT")return;throw r}try{n=t.statSync(e)}catch(o){if(o.code==="ENOENT")return;throw r}n.isDirectory()?ii(e,t,r):t.unlinkSync(e)}function oi(e,t,r,n){G(e),G(t),r&&G(r instanceof Error),G(typeof n=="function"),t.rmdir(e,o=>{o&&(o.code==="ENOTEMPTY"||o.code==="EEXIST"||o.code==="EPERM")?jx(e,t,n):o&&o.code==="ENOTDIR"?n(r):n(o)})}function jx(e,t,r){G(e),G(t),G(typeof r=="function"),t.readdir(e,(n,o)=>{if(n)return r(n);let i=o.length,s;if(i===0)return t.rmdir(e,r);o.forEach(a=>{Ea(hp.join(e,a),t,u=>{if(!s){if(u)return r(s=u);--i===0&&t.rmdir(e,r)}})})})}function yp(e,t){let r;t=t||{},gp(t),G(e,"rimraf: missing path"),G.strictEqual(typeof e,"string","rimraf: path should be a string"),G(t,"rimraf: missing options"),G.strictEqual(typeof t,"object","rimraf: options should be object");try{r=t.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;n.code==="EPERM"&&Cn&&dp(e,t,n)}try{r&&r.isDirectory()?ii(e,t,null):t.unlinkSync(e)}catch(n){if(n.code==="ENOENT")return;if(n.code==="EPERM")return Cn?dp(e,t,n):ii(e,t,n);if(n.code!=="EISDIR")throw n;ii(e,t,n)}}function ii(e,t,r){G(e),G(t),r&&G(r instanceof Error);try{t.rmdirSync(e)}catch(n){if(n.code==="ENOTDIR")throw r;if(n.code==="ENOTEMPTY"||n.code==="EEXIST"||n.code==="EPERM")Lx(e,t);else if(n.code!=="ENOENT")throw n}}function Lx(e,t){if(G(e),G(t),t.readdirSync(e).forEach(r=>yp(hp.join(e,r),t)),Cn){let r=Date.now();do try{return t.rmdirSync(e,t)}catch{}while(Date.now()-r<500)}else return t.rmdirSync(e,t)}bp.exports=Ea;Ea.sync=yp});var An=D((kA,xp)=>{"use strict";var Bx=Ce().fromCallback,wp=vp();xp.exports={remove:Bx(wp),removeSync:wp.sync}});var Np=D((MA,Tp)=>{"use strict";var Ux=Ce().fromCallback,Sp=he(),Op=require("path"),Dp=$e(),_p=An(),Ep=Ux(function(t,r){r=r||function(){},Sp.readdir(t,(n,o)=>{if(n)return Dp.mkdirs(t,r);o=o.map(s=>Op.join(t,s)),i();function i(){let s=o.pop();if(!s)return r();_p.remove(s,a=>{if(a)return r(a);i()})}})});function Ip(e){let t;try{t=Sp.readdirSync(e)}catch{return Dp.mkdirsSync(e)}t.forEach(r=>{r=Op.join(e,r),_p.removeSync(r)})}Tp.exports={emptyDirSync:Ip,emptydirSync:Ip,emptyDir:Ep,emptydir:Ep}});var Fp=D((qA,Rp)=>{"use strict";var zx=Ce().fromCallback,Cp=require("path"),Rn=he(),Ap=$e(),Wx=it().pathExists;function Kx(e,t){function r(){Rn.writeFile(e,"",n=>{if(n)return t(n);t()})}Rn.stat(e,(n,o)=>{if(!n&&o.isFile())return t();let i=Cp.dirname(e);Wx(i,(s,a)=>{if(s)return t(s);if(a)return r();Ap.mkdirs(i,u=>{if(u)return t(u);r()})})})}function Gx(e){let t;try{t=Rn.statSync(e)}catch{}if(t&&t.isFile())return;let r=Cp.dirname(e);Rn.existsSync(r)||Ap.mkdirsSync(r),Rn.writeFileSync(e,"")}Rp.exports={createFile:zx(Kx),createFileSync:Gx}});var qp=D((jA,Mp)=>{"use strict";var Hx=Ce().fromCallback,Pp=require("path"),Yt=he(),kp=$e(),$p=it().pathExists;function Jx(e,t,r){function n(o,i){Yt.link(o,i,s=>{if(s)return r(s);r(null)})}$p(t,(o,i)=>{if(o)return r(o);if(i)return r(null);Yt.lstat(e,s=>{if(s)return s.message=s.message.replace("lstat","ensureLink"),r(s);let a=Pp.dirname(t);$p(a,(u,m)=>{if(u)return r(u);if(m)return n(e,t);kp.mkdirs(a,l=>{if(l)return r(l);n(e,t)})})})})}function Vx(e,t){if(Yt.existsSync(t))return;try{Yt.lstatSync(e)}catch(i){throw i.message=i.message.replace("lstat","ensureLink"),i}let n=Pp.dirname(t);return Yt.existsSync(n)||kp.mkdirsSync(n),Yt.linkSync(e,t)}Mp.exports={createLink:Hx(Jx),createLinkSync:Vx}});var Lp=D((LA,jp)=>{"use strict";var Ct=require("path"),Fn=he(),Yx=it().pathExists;function Zx(e,t,r){if(Ct.isAbsolute(e))return Fn.lstat(e,n=>n?(n.message=n.message.replace("lstat","ensureSymlink"),r(n)):r(null,{toCwd:e,toDst:e}));{let n=Ct.dirname(t),o=Ct.join(n,e);return Yx(o,(i,s)=>i?r(i):s?r(null,{toCwd:o,toDst:e}):Fn.lstat(e,a=>a?(a.message=a.message.replace("lstat","ensureSymlink"),r(a)):r(null,{toCwd:e,toDst:Ct.relative(n,e)})))}}function Qx(e,t){let r;if(Ct.isAbsolute(e)){if(r=Fn.existsSync(e),!r)throw new Error("absolute srcpath does not exist");return{toCwd:e,toDst:e}}else{let n=Ct.dirname(t),o=Ct.join(n,e);if(r=Fn.existsSync(o),r)return{toCwd:o,toDst:e};if(r=Fn.existsSync(e),!r)throw new Error("relative srcpath does not exist");return{toCwd:e,toDst:Ct.relative(n,e)}}}jp.exports={symlinkPaths:Zx,symlinkPathsSync:Qx}});var zp=D((BA,Up)=>{"use strict";var Bp=he();function Xx(e,t,r){if(r=typeof t=="function"?t:r,t=typeof t=="function"?!1:t,t)return r(null,t);Bp.lstat(e,(n,o)=>{if(n)return r(null,"file");t=o&&o.isDirectory()?"dir":"file",r(null,t)})}function e0(e,t){let r;if(t)return t;try{r=Bp.lstatSync(e)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}Up.exports={symlinkType:Xx,symlinkTypeSync:e0}});var Yp=D((UA,Vp)=>{"use strict";var t0=Ce().fromCallback,Kp=require("path"),Ir=he(),Gp=$e(),r0=Gp.mkdirs,n0=Gp.mkdirsSync,Hp=Lp(),o0=Hp.symlinkPaths,i0=Hp.symlinkPathsSync,Jp=zp(),s0=Jp.symlinkType,a0=Jp.symlinkTypeSync,Wp=it().pathExists;function u0(e,t,r,n){n=typeof r=="function"?r:n,r=typeof r=="function"?!1:r,Wp(t,(o,i)=>{if(o)return n(o);if(i)return n(null);o0(e,t,(s,a)=>{if(s)return n(s);e=a.toDst,s0(a.toCwd,r,(u,m)=>{if(u)return n(u);let l=Kp.dirname(t);Wp(l,(d,f)=>{if(d)return n(d);if(f)return Ir.symlink(e,t,m,n);r0(l,g=>{if(g)return n(g);Ir.symlink(e,t,m,n)})})})})})}function c0(e,t,r){if(Ir.existsSync(t))return;let o=i0(e,t);e=o.toDst,r=a0(o.toCwd,r);let i=Kp.dirname(t);return Ir.existsSync(i)||n0(i),Ir.symlinkSync(e,t,r)}Vp.exports={createSymlink:t0(u0),createSymlinkSync:c0}});var Qp=D((zA,Zp)=>{"use strict";var si=Fp(),ai=qp(),ui=Yp();Zp.exports={createFile:si.createFile,createFileSync:si.createFileSync,ensureFile:si.createFile,ensureFileSync:si.createFileSync,createLink:ai.createLink,createLinkSync:ai.createLinkSync,ensureLink:ai.createLink,ensureLinkSync:ai.createLinkSync,createSymlink:ui.createSymlink,createSymlinkSync:ui.createSymlinkSync,ensureSymlink:ui.createSymlink,ensureSymlinkSync:ui.createSymlinkSync}});var rm=D((WA,tm)=>{var Sr;try{Sr=he()}catch{Sr=require("fs")}function l0(e,t,r){r==null&&(r=t,t={}),typeof t=="string"&&(t={encoding:t}),t=t||{};var n=t.fs||Sr,o=!0;"throws"in t&&(o=t.throws),n.readFile(e,t,function(i,s){if(i)return r(i);s=em(s);var a;try{a=JSON.parse(s,t?t.reviver:null)}catch(u){return o?(u.message=e+": "+u.message,r(u)):r(null,null)}r(null,a)})}function f0(e,t){t=t||{},typeof t=="string"&&(t={encoding:t});var r=t.fs||Sr,n=!0;"throws"in t&&(n=t.throws);try{var o=r.readFileSync(e,t);return o=em(o),JSON.parse(o,t.reviver)}catch(i){if(n)throw i.message=e+": "+i.message,i;return null}}function Xp(e,t){var r,n=`\n`;typeof t=="object"&&t!==null&&(t.spaces&&(r=t.spaces),t.EOL&&(n=t.EOL));var o=JSON.stringify(e,t?t.replacer:null,r);return o.replace(/\\n/g,n)+n}function p0(e,t,r,n){n==null&&(n=r,r={}),r=r||{};var o=r.fs||Sr,i="";try{i=Xp(t,r)}catch(s){n&&n(s,null);return}o.writeFile(e,i,r,n)}function m0(e,t,r){r=r||{};var n=r.fs||Sr,o=Xp(t,r);return n.writeFileSync(e,o,r)}function em(e){return Buffer.isBuffer(e)&&(e=e.toString("utf8")),e=e.replace(/^\\uFEFF/,""),e}var d0={readFile:l0,readFileSync:f0,writeFile:p0,writeFileSync:m0};tm.exports=d0});var li=D((KA,om)=>{"use strict";var nm=Ce().fromCallback,ci=rm();om.exports={readJson:nm(ci.readFile),readJsonSync:ci.readFileSync,writeJson:nm(ci.writeFile),writeJsonSync:ci.writeFileSync}});var am=D((GA,sm)=>{"use strict";var h0=require("path"),g0=$e(),y0=it().pathExists,im=li();function b0(e,t,r,n){typeof r=="function"&&(n=r,r={});let o=h0.dirname(e);y0(o,(i,s)=>{if(i)return n(i);if(s)return im.writeJson(e,t,r,n);g0.mkdirs(o,a=>{if(a)return n(a);im.writeJson(e,t,r,n)})})}sm.exports=b0});var cm=D((HA,um)=>{"use strict";var v0=he(),w0=require("path"),x0=$e(),E0=li();function I0(e,t,r){let n=w0.dirname(e);v0.existsSync(n)||x0.mkdirsSync(n),E0.writeJsonSync(e,t,r)}um.exports=I0});var fm=D((JA,lm)=>{"use strict";var S0=Ce().fromCallback,De=li();De.outputJson=S0(am());De.outputJsonSync=cm();De.outputJSON=De.outputJson;De.outputJSONSync=De.outputJsonSync;De.writeJSON=De.writeJson;De.writeJSONSync=De.writeJsonSync;De.readJSON=De.readJson;De.readJSONSync=De.readJsonSync;lm.exports=De});var ym=D((VA,gm)=>{"use strict";var dm=he(),O0=require("path"),D0=va().copySync,hm=An().removeSync,_0=$e().mkdirpSync,pm=On();function T0(e,t,r){r=r||{};let n=r.overwrite||r.clobber||!1,{srcStat:o}=pm.checkPathsSync(e,t,"move");return pm.checkParentPathsSync(e,o,t,"move"),_0(O0.dirname(t)),N0(e,t,n)}function N0(e,t,r){if(r)return hm(t),mm(e,t,r);if(dm.existsSync(t))throw new Error("dest already exists.");return mm(e,t,r)}function mm(e,t,r){try{dm.renameSync(e,t)}catch(n){if(n.code!=="EXDEV")throw n;return C0(e,t,r)}}function C0(e,t,r){return D0(e,t,{overwrite:r,errorOnExist:!0}),hm(e)}gm.exports=T0});var vm=D((YA,bm)=>{"use strict";bm.exports={moveSync:ym()}});var Sm=D((ZA,Im)=>{"use strict";var A0=he(),R0=require("path"),F0=xa().copy,Em=An().remove,$0=$e().mkdirp,P0=it().pathExists,wm=On();function k0(e,t,r,n){typeof r=="function"&&(n=r,r={});let o=r.overwrite||r.clobber||!1;wm.checkPaths(e,t,"move",(i,s)=>{if(i)return n(i);let{srcStat:a}=s;wm.checkParentPaths(e,a,t,"move",u=>{if(u)return n(u);$0(R0.dirname(t),m=>m?n(m):M0(e,t,o,n))})})}function M0(e,t,r,n){if(r)return Em(t,o=>o?n(o):xm(e,t,r,n));P0(t,(o,i)=>o?n(o):i?n(new Error("dest already exists.")):xm(e,t,r,n))}function xm(e,t,r,n){A0.rename(e,t,o=>o?o.code!=="EXDEV"?n(o):q0(e,t,r,n):n())}function q0(e,t,r,n){F0(e,t,{overwrite:r,errorOnExist:!0},i=>i?n(i):Em(e,n))}Im.exports=k0});var Dm=D((QA,Om)=>{"use strict";var j0=Ce().fromCallback;Om.exports={move:j0(Sm())}});var Cm=D((XA,Nm)=>{"use strict";var L0=Ce().fromCallback,$n=he(),_m=require("path"),Tm=$e(),B0=it().pathExists;function U0(e,t,r,n){typeof r=="function"&&(n=r,r="utf8");let o=_m.dirname(e);B0(o,(i,s)=>{if(i)return n(i);if(s)return $n.writeFile(e,t,r,n);Tm.mkdirs(o,a=>{if(a)return n(a);$n.writeFile(e,t,r,n)})})}function z0(e,...t){let r=_m.dirname(e);if($n.existsSync(r))return $n.writeFileSync(e,...t);Tm.mkdirsSync(r),$n.writeFileSync(e,...t)}Nm.exports={outputFile:L0(U0),outputFileSync:z0}});var Sa=D((eR,Ia)=>{"use strict";Ia.exports=Object.assign({},sa(),va(),xa(),Np(),Qp(),fm(),$e(),vm(),Dm(),Cm(),it(),An());var Am=require("fs");Object.getOwnPropertyDescriptor(Am,"promises")&&Object.defineProperty(Ia.exports,"promises",{get(){return Am.promises}})});var Fm=D((tR,Rm)=>{Rm.exports=()=>new Date});var Pm=D((rR,$m)=>{var W0=we()("streamroller:fileNameFormatter"),K0=require("path"),G0=".gz",H0=".";$m.exports=({file:e,keepFileExt:t,needsIndex:r,alwaysIncludeDate:n,compress:o,fileNameSep:i})=>{let s=i||H0,a=K0.join(e.dir,e.name),u=g=>g+e.ext,m=(g,w,x)=>(r||!x)&&w?g+s+w:g,l=(g,w,x)=>(w>0||n)&&x?g+s+x:g,d=(g,w)=>w&&o?g+G0:g,f=t?[l,m,u,d]:[u,l,m,d];return({date:g,index:w})=>(W0(`_formatFileName: date=${g}, index=${w}`),f.reduce((x,S)=>S(x,w,g),a))}});var jm=D((nR,qm)=>{var Zt=we()("streamroller:fileNameParser"),km=".gz",Mm=Jo(),J0=".";qm.exports=({file:e,keepFileExt:t,pattern:r,fileNameSep:n})=>{let o=n||J0,i=(f,g)=>f.endsWith(km)?(Zt("it is gzipped"),g.isCompressed=!0,f.slice(0,-1*km.length)):f,s="__NOT_MATCHING__",d=[i,t?f=>f.startsWith(e.name)&&f.endsWith(e.ext)?(Zt("it starts and ends with the right things"),f.slice(e.name.length+1,-1*e.ext.length)):s:f=>f.startsWith(e.base)?(Zt("it starts with the right things"),f.slice(e.base.length+1)):s,r?(f,g)=>{let w=f.split(o),x=w[w.length-1];Zt("items: ",w,", indexStr: ",x);let S=f;x!==void 0&&x.match(/^\\d+$/)?(S=f.slice(0,-1*(x.length+1)),Zt(`dateStr is ${S}`),r&&!S&&(S=x,x="0")):x="0";try{let N=Mm.parse(r,S,new Date(0,0));return Mm.asString(r,N)!==S?f:(g.index=parseInt(x,10),g.date=S,g.timestamp=N.getTime(),"")}catch(N){return Zt(`Problem parsing ${S} as ${r}, error was: `,N),f}}:(f,g)=>f.match(/^\\d+$/)?(Zt("it has an index"),g.index=parseInt(f,10),""):f];return f=>{let g={filename:f,index:0,isCompressed:!1};return d.reduce((x,S)=>S(x,g),f)?null:g}}});var Bm=D((oR,Lm)=>{var Re=we()("streamroller:moveAndMaybeCompressFile"),gt=Sa(),V0=require("zlib"),Y0=function(e){let t={mode:parseInt("0600",8),compress:!1},r=Object.assign({},t,e);return Re(`_parseOption: moveAndMaybeCompressFile called with option=${JSON.stringify(r)}`),r},Z0=async(e,t,r)=>{if(r=Y0(r),e===t){Re("moveAndMaybeCompressFile: source and target are the same, not doing anything");return}if(await gt.pathExists(e))if(Re(`moveAndMaybeCompressFile: moving file from ${e} to ${t} ${r.compress?"with":"without"} compress`),r.compress)await new Promise((n,o)=>{let i=!1,s=gt.createWriteStream(t,{mode:r.mode,flags:"wx"}).on("open",()=>{i=!0;let a=gt.createReadStream(e).on("open",()=>{a.pipe(V0.createGzip()).pipe(s)}).on("error",u=>{Re(`moveAndMaybeCompressFile: error reading ${e}`,u),s.destroy(u)})}).on("finish",()=>{Re(`moveAndMaybeCompressFile: finished compressing ${t}, deleting ${e}`),gt.unlink(e).then(n).catch(a=>{Re(`moveAndMaybeCompressFile: error deleting ${e}, truncating instead`,a),gt.truncate(e).then(n).catch(u=>{Re(`moveAndMaybeCompressFile: error truncating ${e}`,u),o(u)})})}).on("error",a=>{i?(Re(`moveAndMaybeCompressFile: error writing ${t}, deleting`,a),gt.unlink(t).then(()=>{o(a)}).catch(u=>{Re(`moveAndMaybeCompressFile: error deleting ${t}`,u),o(u)})):(Re(`moveAndMaybeCompressFile: error creating ${t}`,a),o(a))})}).catch(()=>{});else{Re(`moveAndMaybeCompressFile: renaming ${e} to ${t}`);try{await gt.move(e,t,{overwrite:!0})}catch(n){if(Re(`moveAndMaybeCompressFile: error renaming ${e} to ${t}`,n),n.code!=="ENOENT"){Re("moveAndMaybeCompressFile: trying copy+truncate instead");try{await gt.copy(e,t,{overwrite:!0}),await gt.truncate(e)}catch(o){Re("moveAndMaybeCompressFile: error copy+truncate",o)}}}}};Lm.exports=Z0});var mi=D((iR,Um)=>{var Pe=we()("streamroller:RollingFileWriteStream"),Xt=Sa(),Qt=require("path"),Q0=require("os"),fi=Fm(),pi=Jo(),{Writable:X0}=require("stream"),eE=Pm(),tE=jm(),rE=Bm(),nE=e=>(Pe(`deleteFiles: files to delete: ${e}`),Promise.all(e.map(t=>Xt.unlink(t).catch(r=>{Pe(`deleteFiles: error when unlinking ${t}, ignoring. Error was ${r}`)})))),Oa=class extends X0{constructor(t,r){if(Pe(`constructor: creating RollingFileWriteStream. path=${t}`),typeof t!="string"||t.length===0)throw new Error(`Invalid filename: ${t}`);if(t.endsWith(Qt.sep))throw new Error(`Filename is a directory: ${t}`);t.indexOf(`~${Qt.sep}`)===0&&(t=t.replace("~",Q0.homedir())),super(r),this.options=this._parseOption(r),this.fileObject=Qt.parse(t),this.fileObject.dir===""&&(this.fileObject=Qt.parse(Qt.join(process.cwd(),t))),this.fileFormatter=eE({file:this.fileObject,alwaysIncludeDate:this.options.alwaysIncludePattern,needsIndex:this.options.maxSize 0`);if(n.numBackups||n.numBackups===0){if(n.numBackups<0)throw new Error(`options.numBackups (${n.numBackups}) should be >= 0`);if(n.numBackups>=Number.MAX_SAFE_INTEGER)throw new Error(`options.numBackups (${n.numBackups}) should be < Number.MAX_SAFE_INTEGER`);n.numToKeep=n.numBackups+1}else if(n.numToKeep<=0)throw new Error(`options.numToKeep (${n.numToKeep}) should be > 0`);return Pe(`_parseOption: creating stream with option=${JSON.stringify(n)}`),n}_final(t){this.currentFileStream.end("",this.options.encoding,t)}_write(t,r,n){this._shouldRoll().then(()=>{Pe(`_write: writing chunk. file=${this.currentFileStream.path} state=${JSON.stringify(this.state)} chunk=${t}`),this.currentFileStream.write(t,r,o=>{this.state.currentSize+=t.length,n(o)})})}async _shouldRoll(){(this._dateChanged()||this._tooBig())&&(Pe(`_shouldRoll: rolling because dateChanged? ${this._dateChanged()} or tooBig? ${this._tooBig()}`),await this._roll())}_dateChanged(){return this.state.currentDate&&this.state.currentDate!==pi(this.options.pattern,fi())}_tooBig(){return this.state.currentSize>=this.options.maxSize}_roll(){return Pe("_roll: closing the current stream"),new Promise((t,r)=>{this.currentFileStream.end("",this.options.encoding,()=>{this._moveOldFiles().then(t).catch(r)})})}async _moveOldFiles(){let t=await this._getExistingFiles(),r=this.state.currentDate?t.filter(n=>n.date===this.state.currentDate):t;for(let n=r.length;n>=0;n--){Pe(`_moveOldFiles: i = ${n}`);let o=this.fileFormatter({date:this.state.currentDate,index:n}),i=this.fileFormatter({date:this.state.currentDate,index:n+1}),s={compress:this.options.compress&&n===0,mode:this.options.mode};await rE(o,i,s)}this.state.currentSize=0,this.state.currentDate=this.state.currentDate?pi(this.options.pattern,fi()):null,Pe(`_moveOldFiles: finished rolling files. state=${JSON.stringify(this.state)}`),this._renewWriteStream(),await new Promise((n,o)=>{this.currentFileStream.write("","utf8",()=>{this._clean().then(n).catch(o)})})}async _getExistingFiles(){let t=await Xt.readdir(this.fileObject.dir).catch(()=>[]);Pe(`_getExistingFiles: files=${t}`);let r=t.map(o=>this.fileNameParser(o)).filter(o=>o),n=o=>(o.timestamp?o.timestamp:fi().getTime())-o.index;return r.sort((o,i)=>n(o)-n(i)),r}_renewWriteStream(){let t=this.fileFormatter({date:this.state.currentDate,index:0}),r=i=>{try{return Xt.mkdirSync(i,{recursive:!0})}catch(s){if(s.code==="ENOENT")return r(Qt.dirname(i)),r(i);if(s.code!=="EEXIST"&&s.code!=="EROFS")throw s;try{if(Xt.statSync(i).isDirectory())return i;throw s}catch{throw s}}};r(this.fileObject.dir);let n={flags:this.options.flags,encoding:this.options.encoding,mode:this.options.mode},o=function(i,s,a){return i[a]=i[s],delete i[s],i};Xt.appendFileSync(t,"",o({...n},"flags","flag")),this.currentFileStream=Xt.createWriteStream(t,n),this.currentFileStream.on("error",i=>{this.emit("error",i)})}async _clean(){let t=await this._getExistingFiles();if(Pe(`_clean: numToKeep = ${this.options.numToKeep}, existingFiles = ${t.length}`),Pe("_clean: existing files are: ",t),this._tooManyFiles(t.length)){let r=t.slice(0,t.length-this.options.numToKeep).map(n=>Qt.format({dir:this.fileObject.dir,base:n.filename}));await nE(r)}}_tooManyFiles(t){return this.options.numToKeep>0&&t>this.options.numToKeep}};Um.exports=Oa});var Wm=D((sR,zm)=>{var oE=mi(),Da=class extends oE{constructor(t,r,n,o){o||(o={}),r&&(o.maxSize=r),!o.numBackups&&o.numBackups!==0&&(!n&&n!==0&&(n=1),o.numBackups=n),super(t,o),this.backups=o.numBackups,this.size=this.options.maxSize}get theStream(){return this.currentFileStream}};zm.exports=Da});var Gm=D((aR,Km)=>{var iE=mi(),_a=class extends iE{constructor(t,r,n){r&&typeof r=="object"&&(n=r,r=null),n||(n={}),r||(r="yyyy-MM-dd"),n.pattern=r,!n.numBackups&&n.numBackups!==0?(!n.daysToKeep&&n.daysToKeep!==0?n.daysToKeep=1:process.emitWarning("options.daysToKeep is deprecated due to the confusion it causes when used together with file size rolling. Please use options.numBackups instead.","DeprecationWarning","streamroller-DEP0001"),n.numBackups=n.daysToKeep):n.daysToKeep=n.numBackups,super(t,n),this.mode=this.options.mode}get theStream(){return this.currentFileStream}};Km.exports=_a});var Ta=D((uR,Hm)=>{Hm.exports={RollingFileWriteStream:mi(),RollingFileStream:Wm(),DateRollingFileStream:Gm()}});var Qm=D((cR,Zm)=>{var Jm=we()("log4js:file"),Na=require("path"),sE=Ta(),Ym=require("os"),aE=Ym.EOL,di=!1,hi=new Set;function Vm(){hi.forEach(e=>{e.sighupHandler()})}function uE(e,t,r,n,o,i){if(typeof e!="string"||e.length===0)throw new Error(`Invalid filename: ${e}`);if(e.endsWith(Na.sep))throw new Error(`Filename is a directory: ${e}`);e=e.replace(new RegExp(`^~(?=${Na.sep}.+)`),Ym.homedir()),e=Na.normalize(e),n=!n&&n!==0?5:n,Jm("Creating file appender (",e,", ",r,", ",n,", ",o,", ",i,")");function s(m,l,d,f){let g=new sE.RollingFileStream(m,l,d,f);return g.on("error",w=>{console.error("log4js.fileAppender - Writing to file %s, error happened ",m,w)}),g.on("drain",()=>{process.emit("log4js:pause",!1)}),g}let a=s(e,r,n,o),u=function(m){if(a.writable){if(o.removeColor===!0){let l=/\\x1b[[0-9;]*m/g;m.data=m.data.map(d=>typeof d=="string"?d.replace(l,""):d)}a.write(t(m,i)+aE,"utf8")||process.emit("log4js:pause",!0)}};return u.reopen=function(){a.end(()=>{a=s(e,r,n,o)})},u.sighupHandler=function(){Jm("SIGHUP handler called."),u.reopen()},u.shutdown=function(m){hi.delete(u),hi.size===0&&di&&(process.removeListener("SIGHUP",Vm),di=!1),a.end("","utf-8",m)},hi.add(u),di||(process.on("SIGHUP",Vm),di=!0),u}function cE(e,t){let r=t.basicLayout;return e.layout&&(r=t.layout(e.layout.type,e.layout)),e.mode=e.mode||384,uE(e.filename,r,e.maxLogSize,e.backups,e,e.timezoneOffset)}Zm.exports.configure=cE});var ed=D((lR,Xm)=>{var lE=Ta(),fE=require("os"),pE=fE.EOL;function mE(e,t,r){let n=new lE.DateRollingFileStream(e,t,r);return n.on("error",o=>{console.error("log4js.dateFileAppender - Writing to file %s, error happened ",e,o)}),n.on("drain",()=>{process.emit("log4js:pause",!1)}),n}function dE(e,t,r,n,o){n.maxSize=n.maxLogSize;let i=mE(e,t,n),s=function(a){i.writable&&(i.write(r(a,o)+pE,"utf8")||process.emit("log4js:pause",!0))};return s.shutdown=function(a){i.end("","utf-8",a)},s}function hE(e,t){let r=t.basicLayout;return e.layout&&(r=t.layout(e.layout.type,e.layout)),e.alwaysIncludePattern||(e.alwaysIncludePattern=!1),e.mode=e.mode||384,dE(e.filename,e.pattern,r,e,e.timezoneOffset)}Xm.exports.configure=hE});var od=D((fR,nd)=>{var yt=we()("log4js:fileSync"),at=require("path"),st=require("fs"),td=require("os"),gE=td.EOL;function rd(e,t){let r=n=>{try{return st.mkdirSync(n,{recursive:!0})}catch(o){if(o.code==="ENOENT")return r(at.dirname(n)),r(n);if(o.code!=="EEXIST"&&o.code!=="EROFS")throw o;try{if(st.statSync(n).isDirectory())return n;throw o}catch{throw o}}};r(at.dirname(e)),st.appendFileSync(e,"",{mode:t.mode,flag:t.flags})}var Ca=class{constructor(t,r,n,o){if(yt("In RollingFileStream"),r<0)throw new Error(`maxLogSize (${r}) should be > 0`);this.filename=t,this.size=r,this.backups=n,this.options=o,this.currentSize=0;function i(s){let a=0;try{a=st.statSync(s).size}catch{rd(s,o)}return a}this.currentSize=i(this.filename)}shouldRoll(){return yt("should roll with current size %d, and max size %d",this.currentSize,this.size),this.currentSize>=this.size}roll(t){let r=this,n=new RegExp(`^${at.basename(t)}`);function o(m){return n.test(m)}function i(m){return parseInt(m.slice(`${at.basename(t)}.`.length),10)||0}function s(m,l){return i(m)-i(l)}function a(m){let l=i(m);if(yt(`Index of ${m} is ${l}`),r.backups===0)st.truncateSync(t,0);else if(l ${t}.${l+1}`),st.renameSync(at.join(at.dirname(t),m),`${t}.${l+1}`)}}function u(){yt("Renaming the old files"),st.readdirSync(at.dirname(t)).filter(o).sort(s).reverse().forEach(a)}yt("Rolling, rolling, rolling"),u()}write(t,r){let n=this;function o(){yt("writing the chunk to the file"),n.currentSize+=t.length,st.appendFileSync(n.filename,t)}yt("in write"),this.shouldRoll()&&(this.currentSize=0,this.roll(this.filename)),o()}};function yE(e,t,r,n,o,i){if(typeof e!="string"||e.length===0)throw new Error(`Invalid filename: ${e}`);if(e.endsWith(at.sep))throw new Error(`Filename is a directory: ${e}`);e=e.replace(new RegExp(`^~(?=${at.sep}.+)`),td.homedir()),e=at.normalize(e),n=!n&&n!==0?5:n,yt("Creating fileSync appender (",e,", ",r,", ",n,", ",o,", ",i,")");function s(u,m,l){let d;return m?d=new Ca(u,m,l,o):d=(f=>(rd(f,o),{write(g){st.appendFileSync(f,g)}}))(u),d}let a=s(e,r,n);return u=>{a.write(t(u,i)+gE)}}function bE(e,t){let r=t.basicLayout;e.layout&&(r=t.layout(e.layout.type,e.layout));let n={flags:e.flags||"a",encoding:e.encoding||"utf8",mode:e.mode||384};return yE(e.filename,r,e.maxLogSize,e.backups,n,e.timezoneOffset)}nd.exports.configure=bE});var sd=D((pR,id)=>{var ut=we()("log4js:tcp"),vE=require("net");function wE(e,t){let r=!1,n=[],o,i=3,s="__LOG4JS__";function a(d){ut("Writing log event to socket"),r=o.write(`${t(d)}${s}`,"utf8")}function u(){let d;for(ut("emptying buffer");d=n.shift();)a(d)}function m(){ut(`appender creating socket to ${e.host||"localhost"}:${e.port||5e3}`),s=`${e.endMsg||"__LOG4JS__"}`,o=vE.createConnection(e.port||5e3,e.host||"localhost"),o.on("connect",()=>{ut("socket connected"),u(),r=!0}),o.on("drain",()=>{ut("drain event received, emptying buffer"),r=!0,u()}),o.on("timeout",o.end.bind(o)),o.on("error",d=>{ut("connection error",d),r=!1,u()}),o.on("close",m)}m();function l(d){r?a(d):(ut("buffering log event because it cannot write at the moment"),n.push(d))}return l.shutdown=function(d){ut("shutdown called"),n.length&&i?(ut("buffer has items, waiting 100ms to empty"),i-=1,setTimeout(()=>{l.shutdown(d)},100)):(o.removeAllListeners("close"),o.end(d))},l}function xE(e,t){ut(`configure with config = ${e}`);let r=function(n){return n.serialise()};return e.layout&&(r=t.layout(e.layout.type,e.layout)),wE(e,r)}id.exports.configure=xE});var Fa=D((mR,Ra)=>{var Aa=require("path"),At=we()("log4js:appenders"),Je=Kt(),ad=Qo(),EE=Ht(),IE=Ys(),SE=nf(),Qe=new Map;Qe.set("console",sf());Qe.set("stdout",uf());Qe.set("stderr",lf());Qe.set("logLevelFilter",pf());Qe.set("categoryFilter",hf());Qe.set("noLogFilter",bf());Qe.set("file",Qm());Qe.set("dateFile",ed());Qe.set("fileSync",od());Qe.set("tcp",sd());var Pn=new Map,gi=(e,t)=>{let r;try{let n=`${e}.cjs`;r=require.resolve(n),At("Loading module from ",n)}catch{r=e,At("Loading module from ",e)}try{return require(r)}catch(n){Je.throwExceptionIf(t,n.code!=="MODULE_NOT_FOUND",`appender "${e}" could not be loaded (error was: ${n})`);return}},OE=(e,t)=>Qe.get(e)||gi(`./${e}`,t)||gi(e,t)||require.main&&require.main.filename&&gi(Aa.join(Aa.dirname(require.main.filename),e),t)||gi(Aa.join(process.cwd(),e),t),yi=new Set,ud=(e,t)=>{if(Pn.has(e))return Pn.get(e);if(!t.appenders[e])return!1;if(yi.has(e))throw new Error(`Dependency loop detected for appender ${e}.`);yi.add(e),At(`Creating appender ${e}`);let r=DE(e,t);return yi.delete(e),Pn.set(e,r),r},DE=(e,t)=>{let r=t.appenders[e],n=r.type.configure?r.type:OE(r.type,t);return Je.throwExceptionIf(t,Je.not(n),`appender "${e}" is not valid (type "${r.type}" could not be found)`),n.appender&&(process.emitWarning(`Appender ${r.type} exports an appender function.`,"DeprecationWarning","log4js-node-DEP0001"),At("[log4js-node-DEP0001]",`DEPRECATION: Appender ${r.type} exports an appender function.`)),n.shutdown&&(process.emitWarning(`Appender ${r.type} exports a shutdown function.`,"DeprecationWarning","log4js-node-DEP0002"),At("[log4js-node-DEP0002]",`DEPRECATION: Appender ${r.type} exports a shutdown function.`)),At(`${e}: clustering.isMaster ? ${ad.isMaster()}`),At(`${e}: appenderModule is ${require("util").inspect(n)}`),ad.onlyOnMaster(()=>(At(`calling appenderModule.configure for ${e} / ${r.type}`),n.configure(SE.modifyConfig(r),IE,o=>ud(o,t),EE)),()=>{})},cd=e=>{if(Pn.clear(),yi.clear(),!e)return;let t=[];Object.values(e.categories).forEach(r=>{t.push(...r.appenders)}),Object.keys(e.appenders).forEach(r=>{(t.includes(r)||e.appenders[r].type==="tcp-server"||e.appenders[r].type==="multiprocess")&&ud(r,e)})},ld=()=>{cd()};ld();Je.addListener(e=>{Je.throwExceptionIf(e,Je.not(Je.anObject(e.appenders)),\'must have a property "appenders" of type object.\');let t=Object.keys(e.appenders);Je.throwExceptionIf(e,Je.not(t.length),"must define at least one appender."),t.forEach(r=>{Je.throwExceptionIf(e,Je.not(e.appenders[r].type),`appender "${r}" is not valid (must be an object with property "type")`)})});Je.addListener(cd);Ra.exports=Pn;Ra.exports.init=ld});var ka=D((dR,bi)=>{var kn=we()("log4js:categories"),ue=Kt(),$a=Ht(),fd=Fa(),Rt=new Map;function pd(e,t,r){if(t.inherit===!1)return;let n=r.lastIndexOf(".");if(n<0)return;let o=r.slice(0,n),i=e.categories[o];i||(i={inherit:!0,appenders:[]}),pd(e,i,o),!e.categories[o]&&i.appenders&&i.appenders.length&&i.level&&(e.categories[o]=i),t.appenders=t.appenders||[],t.level=t.level||i.level,i.appenders.forEach(s=>{t.appenders.includes(s)||t.appenders.push(s)}),t.parent=i}function _E(e){if(!e.categories)return;Object.keys(e.categories).forEach(r=>{let n=e.categories[r];pd(e,n,r)})}ue.addPreProcessingListener(e=>_E(e));ue.addListener(e=>{ue.throwExceptionIf(e,ue.not(ue.anObject(e.categories)),\'must have a property "categories" of type object.\');let t=Object.keys(e.categories);ue.throwExceptionIf(e,ue.not(t.length),"must define at least one category."),t.forEach(r=>{let n=e.categories[r];ue.throwExceptionIf(e,[ue.not(n.appenders),ue.not(n.level)],`category "${r}" is not valid (must be an object with properties "appenders" and "level")`),ue.throwExceptionIf(e,ue.not(Array.isArray(n.appenders)),`category "${r}" is not valid (appenders must be an array of appender names)`),ue.throwExceptionIf(e,ue.not(n.appenders.length),`category "${r}" is not valid (appenders must contain at least one appender name)`),Object.prototype.hasOwnProperty.call(n,"enableCallStack")&&ue.throwExceptionIf(e,typeof n.enableCallStack!="boolean",`category "${r}" is not valid (enableCallStack must be boolean type)`),n.appenders.forEach(o=>{ue.throwExceptionIf(e,ue.not(fd.get(o)),`category "${r}" is not valid (appender "${o}" is not defined)`)}),ue.throwExceptionIf(e,ue.not($a.getLevel(n.level)),`category "${r}" is not valid (level "${n.level}" not recognised; valid levels are ${$a.levels.join(", ")})`)}),ue.throwExceptionIf(e,ue.not(e.categories.default),\'must define a "default" category.\')});var Pa=e=>{if(Rt.clear(),!e)return;Object.keys(e.categories).forEach(r=>{let n=e.categories[r],o=[];n.appenders.forEach(i=>{o.push(fd.get(i)),kn(`Creating category ${r}`),Rt.set(r,{appenders:o,level:$a.getLevel(n.level),enableCallStack:n.enableCallStack||!1})})})},md=()=>{Pa()};md();ue.addListener(Pa);var Or=e=>{if(kn(`configForCategory: searching for config for ${e}`),Rt.has(e))return kn(`configForCategory: ${e} exists in config, returning it`),Rt.get(e);let t;return e.indexOf(".")>0?(kn(`configForCategory: ${e} has hierarchy, cloning from parents`),t={...Or(e.slice(0,e.lastIndexOf(".")))}):(Rt.has("default")||Pa({categories:{default:{appenders:["out"],level:"OFF"}}}),kn("configForCategory: cloning default category"),t={...Rt.get("default")}),Rt.set(e,t),t},TE=e=>Or(e).appenders,NE=e=>Or(e).level,CE=(e,t)=>{Or(e).level=t},AE=e=>Or(e).enableCallStack===!0,RE=(e,t)=>{Or(e).enableCallStack=t};bi.exports=Rt;bi.exports=Object.assign(bi.exports,{appendersForCategory:TE,getLevelForCategory:NE,setLevelForCategory:CE,getEnableCallStackForCategory:AE,setEnableCallStackForCategory:RE,init:md})});var bd=D((hR,yd)=>{var dd=we()("log4js:logger"),FE=Zs(),ct=Ht(),$E=Qo(),vi=ka(),hd=Kt(),PE=/at (?:(.+)\\s+\\()?(?:(.+?):(\\d+)(?::(\\d+))?|([^)]+))\\)?/;function kE(e,t=4){try{let r=e.stack.split(`\n`).slice(t),n=PE.exec(r[0]);if(n&&n.length===6)return{functionName:n[1],fileName:n[2],lineNumber:parseInt(n[3],10),columnNumber:parseInt(n[4],10),callStack:r.join(`\n`)};console.error("log4js.logger - defaultParseCallStack error")}catch(r){console.error("log4js.logger - defaultParseCallStack error",r)}return null}var Mn=class{constructor(t){if(!t)throw new Error("No category provided.");this.category=t,this.context={},this.parseCallStack=kE,dd(`Logger created (${this.category}, ${this.level})`)}get level(){return ct.getLevel(vi.getLevelForCategory(this.category),ct.OFF)}set level(t){vi.setLevelForCategory(this.category,ct.getLevel(t,this.level))}get useCallStack(){return vi.getEnableCallStackForCategory(this.category)}set useCallStack(t){vi.setEnableCallStackForCategory(this.category,t===!0)}log(t,...r){let n=ct.getLevel(t);n?this.isLevelEnabled(n)&&this._log(n,r):hd.validIdentifier(t)&&r.length>0?(this.log(ct.WARN,"log4js:logger.log: valid log-level not found as first parameter given:",t),this.log(ct.INFO,`[${t}]`,...r)):this.log(ct.INFO,t,...r)}isLevelEnabled(t){return this.level.isLessThanOrEqualTo(t)}_log(t,r){dd(`sending log data (${t}) to appenders`);let n=new FE(this.category,t,r,this.context,this.useCallStack&&this.parseCallStack(new Error));$E.send(n)}addContext(t,r){this.context[t]=r}removeContext(t){delete this.context[t]}clearContext(){this.context={}}setParseCallStackFunction(t){this.parseCallStack=t}};function gd(e){let t=ct.getLevel(e),n=t.toString().toLowerCase().replace(/_([a-z])/g,i=>i[1].toUpperCase()),o=n[0].toUpperCase()+n.slice(1);Mn.prototype[`is${o}Enabled`]=function(){return this.isLevelEnabled(t)},Mn.prototype[n]=function(...i){this.log(t,...i)}}ct.levels.forEach(gd);hd.addListener(()=>{ct.levels.forEach(gd)});yd.exports=Mn});var xd=D((gR,wd)=>{var Dr=Ht(),ME=\':remote-addr - - ":method :url HTTP/:http-version" :status :content-length ":referrer" ":user-agent"\';function qE(e){return e.originalUrl||e.url}function jE(e,t,r){let n=i=>{let s=i.concat();for(let a=0;an.source?n.source:n);t=new RegExp(r.join("|"))}return t}function BE(e,t,r){let n=t;if(r){let o=r.find(i=>{let s=!1;return i.from&&i.to?s=e>=i.from&&e<=i.to:s=i.codes.indexOf(e)!==-1,s});o&&(n=Dr.getLevel(o.level,n))}return n}wd.exports=function(t,r){typeof r=="string"||typeof r=="function"?r={format:r}:r=r||{};let n=t,o=Dr.getLevel(r.level,Dr.INFO),i=r.format||ME;return(s,a,u)=>{if(s._logging!==void 0)return u();if(typeof r.nolog!="function"){let m=LE(r.nolog);if(m&&m.test(s.originalUrl))return u()}if(n.isLevelEnabled(o)||r.level==="auto"){let m=new Date,{writeHead:l}=a;s._logging=!0,a.writeHead=(g,w)=>{a.writeHead=l,a.writeHead(g,w),a.__statusCode=g,a.__headers=w||{}};let d=!1,f=()=>{if(d)return;if(d=!0,typeof r.nolog=="function"&&r.nolog(s,a)===!0){s._logging=!1;return}a.responseTime=new Date-m,a.statusCode&&r.level==="auto"&&(o=Dr.INFO,a.statusCode>=300&&(o=Dr.WARN),a.statusCode>=400&&(o=Dr.ERROR)),o=BE(a.statusCode,o,r.statusRules);let g=jE(s,a,r.tokens||[]);if(r.context&&n.addContext("res",a),typeof i=="function"){let w=i(s,a,x=>vd(x,g));w&&n.log(o,w)}else n.log(o,vd(i,g));r.context&&n.removeContext("res")};a.on("end",f),a.on("finish",f),a.on("error",f),a.on("close",f)}return u()}}});var Dd=D((yR,Od)=>{var Ed=we()("log4js:recording"),wi=[];function UE(){return function(e){Ed(`received logEvent, number of events now ${wi.length+1}`),Ed("log event was ",e),wi.push(e)}}function Id(){return wi.slice()}function Sd(){wi.length=0}Od.exports={configure:UE,replay:Id,playback:Id,reset:Sd,erase:Sd}});var Fd=D((bR,Rd)=>{var Ft=we()("log4js:main"),zE=require("fs"),WE=bl()({proto:!0}),KE=Kt(),GE=Ys(),HE=Ht(),_d=Fa(),Td=ka(),JE=bd(),VE=Qo(),YE=xd(),ZE=Dd(),qn=!1;function QE(e){if(!qn)return;Ft("Received log event ",e),Td.appendersForCategory(e.categoryName).forEach(r=>{r(e)})}function XE(e){Ft(`Loading configuration from ${e}`);try{return JSON.parse(zE.readFileSync(e,"utf8"))}catch(t){throw new Error(`Problem reading config from file "${e}". Error was ${t.message}`,t)}}function Nd(e){qn&&Cd();let t=e;return typeof t=="string"&&(t=XE(e)),Ft(`Configuration is ${t}`),KE.configure(WE(t)),VE.onMessage(QE),qn=!0,Ad}function eI(){return ZE}function Cd(e){Ft("Shutdown called. Disabling all log writing."),qn=!1;let t=Array.from(_d.values());_d.init(),Td.init();let r=t.reduceRight((s,a)=>a.shutdown?s+1:s,0);if(r===0)return Ft("No appenders with shutdown functions found."),e!==void 0&&e();let n=0,o;Ft(`Found ${r} appenders with shutdown functions.`);function i(s){o=o||s,n+=1,Ft(`Appender shutdowns complete: ${n} / ${r}`),n>=r&&(Ft("All shutdown functions completed."),e&&e(o))}return t.filter(s=>s.shutdown).forEach(s=>s.shutdown(i)),null}function tI(e){return qn||Nd(process.env.LOG4JS_CONFIG||{appenders:{out:{type:"stdout"}},categories:{default:{appenders:["out"],level:"OFF"}}}),new JE(e||"default")}var Ad={getLogger:tI,configure:Nd,shutdown:Cd,connectLogger:YE,levels:HE,addLayout:GE.addLayout,recording:eI};Rd.exports=Ad});var lt=D(Ei=>{"use strict";Ei.getBooleanOption=(e,t)=>{let r=!1;if(t in e&&typeof(r=e[t])!="boolean")throw new TypeError(`Expected the "${t}" option to be a boolean`);return r};Ei.cppdb=Symbol();Ei.inspect=Symbol.for("nodejs.util.inspect.custom")});var ja=D((ER,kd)=>{"use strict";var qa={value:"SqliteError",writable:!0,enumerable:!1,configurable:!0};function er(e,t){if(new.target!==er)return new er(e,t);if(typeof t!="string")throw new TypeError("Expected second argument to be a string");Error.call(this,e),qa.value=""+e,Object.defineProperty(this,"message",qa),Error.captureStackTrace(this,er),this.code=t}Object.setPrototypeOf(er,Error);Object.setPrototypeOf(er.prototype,Error.prototype);Object.defineProperty(er.prototype,"name",qa);kd.exports=er});var qd=D((IR,Md)=>{var Ii=require("path").sep||"/";Md.exports=nI;function nI(e){if(typeof e!="string"||e.length<=7||e.substring(0,7)!="file://")throw new TypeError("must pass in a file:// URI to convert to a file path");var t=decodeURI(e.substring(7)),r=t.indexOf("/"),n=t.substring(0,r),o=t.substring(r+1);return n=="localhost"&&(n=""),n&&(n=Ii+Ii+n),o=o.replace(/^(.+)\\|/,"$1:"),Ii=="\\\\"&&(o=o.replace(/\\//g,"\\\\")),/^.+\\:/.test(o)||(o=Ii+o),n+o}});var Ud=D((_r,Bd)=>{var La=require("fs"),Oi=require("path"),oI=qd(),Si=Oi.join,iI=Oi.dirname,jd=La.accessSync&&function(e){try{La.accessSync(e)}catch{return!1}return!0}||La.existsSync||Oi.existsSync,Ld={arrow:process.env.NODE_BINDINGS_ARROW||" \\u2192 ",compiled:process.env.NODE_BINDINGS_COMPILED_DIR||"compiled",platform:process.platform,arch:process.arch,nodePreGyp:"node-v"+process.versions.modules+"-"+process.platform+"-"+process.arch,version:process.versions.node,bindings:"bindings.node",try:[["module_root","build","bindings"],["module_root","build","Debug","bindings"],["module_root","build","Release","bindings"],["module_root","out","Debug","bindings"],["module_root","Debug","bindings"],["module_root","out","Release","bindings"],["module_root","Release","bindings"],["module_root","build","default","bindings"],["module_root","compiled","version","platform","arch","bindings"],["module_root","addon-build","release","install-root","bindings"],["module_root","addon-build","debug","install-root","bindings"],["module_root","addon-build","default","install-root","bindings"],["module_root","lib","binding","nodePreGyp","bindings"]]};function sI(e){typeof e=="string"?e={bindings:e}:e||(e={}),Object.keys(Ld).map(function(u){u in e||(e[u]=Ld[u])}),e.module_root||(e.module_root=_r.getRoot(_r.getFileName())),Oi.extname(e.bindings)!=".node"&&(e.bindings+=".node");for(var t=typeof __webpack_require__=="function"?__non_webpack_require__:require,r=[],n=0,o=e.try.length,i,s,a;n{"use strict";var{cppdb:Xe}=lt();$t.prepare=function(t){return this[Xe].prepare(t,this,!1)};$t.exec=function(t){return this[Xe].exec(t),this};$t.close=function(){return this[Xe].close(),this};$t.loadExtension=function(...t){return this[Xe].loadExtension(...t),this};$t.defaultSafeIntegers=function(...t){return this[Xe].defaultSafeIntegers(...t),this};$t.unsafeMode=function(...t){return this[Xe].unsafeMode(...t),this};$t.getters={name:{get:function(){return this[Xe].name},enumerable:!0},open:{get:function(){return this[Xe].open},enumerable:!0},inTransaction:{get:function(){return this[Xe].inTransaction},enumerable:!0},readonly:{get:function(){return this[Xe].readonly},enumerable:!0},memory:{get:function(){return this[Xe].memory},enumerable:!0}}});var Gd=D((OR,Kd)=>{"use strict";var{cppdb:aI}=lt(),Wd=new WeakMap;Kd.exports=function(t){if(typeof t!="function")throw new TypeError("Expected first argument to be a function");let r=this[aI],n=uI(r,this),{apply:o}=Function.prototype,i={default:{value:Di(o,t,r,n.default)},deferred:{value:Di(o,t,r,n.deferred)},immediate:{value:Di(o,t,r,n.immediate)},exclusive:{value:Di(o,t,r,n.exclusive)},database:{value:this,enumerable:!0}};return Object.defineProperties(i.default.value,i),Object.defineProperties(i.deferred.value,i),Object.defineProperties(i.immediate.value,i),Object.defineProperties(i.exclusive.value,i),i.default.value};var uI=(e,t)=>{let r=Wd.get(e);if(!r){let n={commit:e.prepare("COMMIT",t,!1),rollback:e.prepare("ROLLBACK",t,!1),savepoint:e.prepare("SAVEPOINT ` _bs3. `",t,!1),release:e.prepare("RELEASE ` _bs3. `",t,!1),rollbackTo:e.prepare("ROLLBACK TO ` _bs3. `",t,!1)};Wd.set(e,r={default:Object.assign({begin:e.prepare("BEGIN",t,!1)},n),deferred:Object.assign({begin:e.prepare("BEGIN DEFERRED",t,!1)},n),immediate:Object.assign({begin:e.prepare("BEGIN IMMEDIATE",t,!1)},n),exclusive:Object.assign({begin:e.prepare("BEGIN EXCLUSIVE",t,!1)},n)})}return r},Di=(e,t,r,{begin:n,commit:o,rollback:i,savepoint:s,release:a,rollbackTo:u})=>function(){let l,d,f;r.inTransaction?(l=s,d=a,f=u):(l=n,d=o,f=i),l.run();try{let g=e.call(t,this,arguments);return d.run(),g}catch(g){throw r.inTransaction&&(f.run(),f!==i&&d.run()),g}}});var Jd=D((DR,Hd)=>{"use strict";var{getBooleanOption:cI,cppdb:lI}=lt();Hd.exports=function(t,r){if(r==null&&(r={}),typeof t!="string")throw new TypeError("Expected first argument to be a string");if(typeof r!="object")throw new TypeError("Expected second argument to be an options object");let n=cI(r,"simple"),o=this[lI].prepare(`PRAGMA ${t}`,this,!0);return n?o.pluck().get():o.all()}});var Zd=D((_R,Yd)=>{"use strict";var fI=require("fs"),pI=require("path"),{promisify:mI}=require("util"),{cppdb:dI}=lt(),Vd=mI(fI.access);Yd.exports=async function(t,r){if(r==null&&(r={}),typeof t!="string")throw new TypeError("Expected first argument to be a string");if(typeof r!="object")throw new TypeError("Expected second argument to be an options object");t=t.trim();let n="attached"in r?r.attached:"main",o="progress"in r?r.progress:null;if(!t)throw new TypeError("Backup filename cannot be an empty string");if(t===":memory:")throw new TypeError(\'Invalid backup filename ":memory:"\');if(typeof n!="string")throw new TypeError(\'Expected the "attached" option to be a string\');if(!n)throw new TypeError(\'The "attached" option cannot be an empty string\');if(o!=null&&typeof o!="function")throw new TypeError(\'Expected the "progress" option to be a function\');await Vd(pI.dirname(t)).catch(()=>{throw new TypeError("Cannot save backup because the directory does not exist")});let i=await Vd(t).then(()=>!1,()=>!0);return hI(this[dI].backup(this,n,t,i),o||null)};var hI=(e,t)=>{let r=0,n=!0;return new Promise((o,i)=>{setImmediate(function s(){try{let a=e.transfer(r);if(!a.remainingPages){e.close(),o(a);return}if(n&&(n=!1,r=100),t){let u=t(a);if(u!==void 0)if(typeof u=="number"&&u===u)r=Math.max(0,Math.min(2147483647,Math.round(u)));else throw new TypeError("Expected progress callback to return a number or undefined")}setImmediate(s)}catch(a){e.close(),i(a)}})})}});var Xd=D((TR,Qd)=>{"use strict";var{cppdb:gI}=lt();Qd.exports=function(t){if(t==null&&(t={}),typeof t!="object")throw new TypeError("Expected first argument to be an options object");let r="attached"in t?t.attached:"main";if(typeof r!="string")throw new TypeError(\'Expected the "attached" option to be a string\');if(!r)throw new TypeError(\'The "attached" option cannot be an empty string\');return this[gI].serialize(r)}});var th=D((NR,eh)=>{"use strict";var{getBooleanOption:_i,cppdb:yI}=lt();eh.exports=function(t,r,n){if(r==null&&(r={}),typeof r=="function"&&(n=r,r={}),typeof t!="string")throw new TypeError("Expected first argument to be a string");if(typeof n!="function")throw new TypeError("Expected last argument to be a function");if(typeof r!="object")throw new TypeError("Expected second argument to be an options object");if(!t)throw new TypeError("User-defined function name cannot be an empty string");let o="safeIntegers"in r?+_i(r,"safeIntegers"):2,i=_i(r,"deterministic"),s=_i(r,"directOnly"),a=_i(r,"varargs"),u=-1;if(!a){if(u=n.length,!Number.isInteger(u)||u<0)throw new TypeError("Expected function.length to be a positive integer");if(u>100)throw new RangeError("User-defined functions cannot have more than 100 arguments")}return this[yI].function(n,t,u,o,i,s),this}});var oh=D((CR,nh)=>{"use strict";var{getBooleanOption:Ti,cppdb:bI}=lt();nh.exports=function(t,r){if(typeof t!="string")throw new TypeError("Expected first argument to be a string");if(typeof r!="object"||r===null)throw new TypeError("Expected second argument to be an options object");if(!t)throw new TypeError("User-defined function name cannot be an empty string");let n="start"in r?r.start:null,o=Ba(r,"step",!0),i=Ba(r,"inverse",!1),s=Ba(r,"result",!1),a="safeIntegers"in r?+Ti(r,"safeIntegers"):2,u=Ti(r,"deterministic"),m=Ti(r,"directOnly"),l=Ti(r,"varargs"),d=-1;if(!l&&(d=Math.max(rh(o),i?rh(i):0),d>0&&(d-=1),d>100))throw new RangeError("User-defined functions cannot have more than 100 arguments");return this[bI].aggregate(n,o,i,s,t,d,a,u,m),this};var Ba=(e,t,r)=>{let n=t in e?e[t]:null;if(typeof n=="function")return n;if(n!=null)throw new TypeError(`Expected the "${t}" option to be a function`);if(r)throw new TypeError(`Missing required option "${t}"`);return null},rh=({length:e})=>{if(Number.isInteger(e)&&e>=0)return e;throw new TypeError("Expected function.length to be a positive integer")}});var uh=D((AR,ah)=>{"use strict";var{cppdb:vI}=lt();ah.exports=function(t,r){if(typeof t!="string")throw new TypeError("Expected first argument to be a string");if(!t)throw new TypeError("Virtual table module name cannot be an empty string");let n=!1;if(typeof r=="object"&&r!==null)n=!0,r=_I(sh(r,"used",t));else{if(typeof r!="function")throw new TypeError("Expected second argument to be a function or a table definition object");r=wI(r)}return this[vI].table(r,t,n),this};function wI(e){return function(r,n,o,...i){let s={module:r,database:n,table:o},a=OI.call(e,s,i);if(typeof a!="object"||a===null)throw new TypeError(`Virtual table module "${r}" did not return a table definition object`);return sh(a,"returned",r)}}function sh(e,t,r){if(!jn.call(e,"rows"))throw new TypeError(`Virtual table module "${r}" ${t} a table definition without a "rows" property`);if(!jn.call(e,"columns"))throw new TypeError(`Virtual table module "${r}" ${t} a table definition without a "columns" property`);let n=e.rows;if(typeof n!="function"||Object.getPrototypeOf(n)!==DI)throw new TypeError(`Virtual table module "${r}" ${t} a table definition with an invalid "rows" property (should be a generator function)`);let o=e.columns;if(!Array.isArray(o)||!(o=[...o]).every(m=>typeof m=="string"))throw new TypeError(`Virtual table module "${r}" ${t} a table definition with an invalid "columns" property (should be an array of strings)`);if(o.length!==new Set(o).size)throw new TypeError(`Virtual table module "${r}" ${t} a table definition with duplicate column names`);if(!o.length)throw new RangeError(`Virtual table module "${r}" ${t} a table definition with zero columns`);let i;if(jn.call(e,"parameters")){if(i=e.parameters,!Array.isArray(i)||!(i=[...i]).every(m=>typeof m=="string"))throw new TypeError(`Virtual table module "${r}" ${t} a table definition with an invalid "parameters" property (should be an array of strings)`)}else i=SI(n);if(i.length!==new Set(i).size)throw new TypeError(`Virtual table module "${r}" ${t} a table definition with duplicate parameter names`);if(i.length>32)throw new RangeError(`Virtual table module "${r}" ${t} a table definition with more than the maximum number of 32 parameters`);for(let m of i)if(o.includes(m))throw new TypeError(`Virtual table module "${r}" ${t} a table definition with column "${m}" which was ambiguously defined as both a column and parameter`);let s=2;if(jn.call(e,"safeIntegers")){let m=e.safeIntegers;if(typeof m!="boolean")throw new TypeError(`Virtual table module "${r}" ${t} a table definition with an invalid "safeIntegers" property (should be a boolean)`);s=+m}let a=!1;if(jn.call(e,"directOnly")&&(a=e.directOnly,typeof a!="boolean"))throw new TypeError(`Virtual table module "${r}" ${t} a table definition with an invalid "directOnly" property (should be a boolean)`);return[`CREATE TABLE x(${[...i.map(ih).map(m=>`${m} HIDDEN`),...o.map(ih)].join(", ")});`,xI(n,new Map(o.map((m,l)=>[m,i.length+l])),r),i,s,a]}function xI(e,t,r){return function*(...o){let i=o.map(s=>Buffer.isBuffer(s)?Buffer.from(s):s);for(let s=0;s`"${e.replace(/"/g,\'""\')}"`,_I=e=>()=>e});var lh=D((RR,ch)=>{"use strict";var TI=function(){};ch.exports=function(t,r){return Object.assign(new TI,this)}});var dh=D((FR,mh)=>{"use strict";var NI=require("fs"),fh=require("path"),Ln=lt(),CI=ja(),ph;function Oe(e,t){if(new.target==null)return new Oe(e,t);let r;if(Buffer.isBuffer(e)&&(r=e,e=":memory:"),e==null&&(e=""),t==null&&(t={}),typeof e!="string")throw new TypeError("Expected first argument to be a string");if(typeof t!="object")throw new TypeError("Expected second argument to be an options object");if("readOnly"in t)throw new TypeError(\'Misspelled option "readOnly" should be "readonly"\');if("memory"in t)throw new TypeError(\'Option "memory" was removed in v7.0.0 (use ":memory:" filename instead)\');let n=e.trim(),o=n===""||n===":memory:",i=Ln.getBooleanOption(t,"readonly"),s=Ln.getBooleanOption(t,"fileMustExist"),a=Ln.getBooleanOption(t,"uriPath"),u="timeout"in t?t.timeout:5e3,m="verbose"in t?t.verbose:null,l="nativeBinding"in t?t.nativeBinding:null;if(i&&o&&!r)throw new TypeError("In-memory/temporary databases cannot be readonly");if(!Number.isInteger(u)||u<0)throw new TypeError(\'Expected the "timeout" option to be a positive integer\');if(u>2147483647)throw new RangeError(\'Option "timeout" cannot be greater than 2147483647\');if(m!=null&&typeof m!="function")throw new TypeError(\'Expected the "verbose" option to be a function\');if(l!=null&&typeof l!="string")throw new TypeError(\'Expected the "nativeBinding" option to be a string\');let d;if(l==null?d=ph||(ph=Ud()("better_sqlite3.node")):d=require(fh.resolve(l).replace(/(\\.node)?$/,".node")),d.isInitialized||(d.setErrorConstructor(CI),d.isInitialized=!0),!o&&!a&&!NI.existsSync(fh.dirname(n)))throw new TypeError("Cannot open database because the directory does not exist");Object.defineProperties(this,{[Ln.cppdb]:{value:new d.Database(n,e,o,i,s,a,u,m||null,r||null)},...tr.getters})}var tr=zd();Oe.prototype.prepare=tr.prepare;Oe.prototype.transaction=Gd();Oe.prototype.pragma=Jd();Oe.prototype.backup=Zd();Oe.prototype.serialize=Xd();Oe.prototype.function=th();Oe.prototype.aggregate=oh();Oe.prototype.table=uh();Oe.prototype.loadExtension=tr.loadExtension;Oe.prototype.exec=tr.exec;Oe.prototype.close=tr.close;Oe.prototype.defaultSafeIntegers=tr.defaultSafeIntegers;Oe.prototype.unsafeMode=tr.unsafeMode;Oe.prototype[Ln.inspect]=lh();mh.exports=Oe});var hh=D(($R,Ua)=>{"use strict";Ua.exports=dh();Ua.exports.SqliteError=ja()});var wh=D(Ni=>{"use strict";Object.defineProperty(Ni,"__esModule",{value:!0});function vh(e,t){if(t)return e;throw new Error("Unhandled discriminated union member: "+JSON.stringify(e))}Ni.assertNever=vh;Ni.default=vh});var Zi=class extends Error{},te=e=>{throw new Zi(e)},Qi=class extends Error{},Q=e=>{throw new Qi(e)};var xt=(e,t)=>le(e)===t,le=e=>{let t=typeof e;return t==="object"?e===null?"null":"object":t==="function"?"object":t},Xi={bigint:"a bigint",boolean:"boolean",null:"null",number:"a number",object:"an object",string:"a string",symbol:"a symbol",undefined:"undefined"};var Me=(e,t)=>e in t,wu=e=>Object.entries(e),re=e=>Object.keys(e),Pt=e=>{let t=[];for(;e!==Object.prototype&&e!==null&&e!==void 0;){for(let r of Object.getOwnPropertyNames(e))t.includes(r)||t.push(r);for(let r of Object.getOwnPropertySymbols(e))t.includes(r)||t.push(r);e=Object.getPrototypeOf(e)}return t},ir=(e,t)=>{let r=e?.[t];return r!=null};var xu=e=>Object.keys(e).length,Pr=e=>xt(e,"object")?Object.keys(e).length!==0:!1,tS=Symbol("id");var et=e=>Array.isArray(e)?e:[e];var ge=class extends Array{static fromString(t,r="/"){return t===r?new ge:new ge(...t.split(r))}toString(t="/"){return this.length?this.join(t):t}},Eu=(e,t)=>{let r=e;for(let n of t){if(typeof r!="object"||r===null)return;r=r[n]}return r};var es=/^(?!^-0$)-?(?:0|[1-9]\\d*)(?:\\.\\d*[1-9])?$/,ny=e=>es.test(e),oy=/^-?\\d*\\.?\\d*$/,iy=e=>e.length!==0&&oy.test(e),eo=/^(?:0|(?:-?[1-9]\\d*))$/,kr=e=>eo.test(e),Mr=/^(?:0|(?:[1-9]\\d*))$/,Iu=/^-?\\d+$/,sy=e=>Iu.test(e),Su={number:"a number",bigint:"a bigint",integer:"an integer"},Ou=(e,t)=>`\'${e}\' was parsed as ${Su[t]} but could not be narrowed to a literal value. Avoid unnecessary leading or trailing zeros and other abnormal notation`,ay=(e,t)=>t==="number"?ny(e):kr(e),uy=(e,t)=>t==="number"?Number(e):Number.parseInt(e),cy=(e,t)=>t==="number"?iy(e):sy(e),qr=(e,t)=>Du(e,"number",t),to=(e,t)=>Du(e,"integer",t),Du=(e,t,r)=>{let n=uy(e,t);if(!Number.isNaN(n)){if(ay(e,t))return n;if(cy(e,t))return Q(Ou(e,t))}return r?Q(r===!0?`Failed to parse ${Su[t]} from \'${e}\'`:r):void 0},ts=e=>{if(e[e.length-1]!=="n")return;let t=e.slice(0,-1),r;try{r=BigInt(t)}catch{return}if(eo.test(t))return r;if(Iu.test(t))return Q(Ou(e,"bigint"))};var oe=(e,t)=>{switch(le(e)){case"object":return JSON.stringify(rs(e,ro,[]),null,t);case"symbol":return ro.onSymbol(e);default:return ns(e)}},ro={onCycle:()=>"(cycle)",onSymbol:e=>`(symbol${e.description&&` ${e.description}`})`,onFunction:e=>`(function${e.name&&` ${e.name}`})`},rs=(e,t,r)=>{switch(le(e)){case"object":if(typeof e=="function")return ro.onFunction(e);if(r.includes(e))return"(cycle)";let n=[...r,e];if(Array.isArray(e))return e.map(i=>rs(i,t,n));let o={};for(let i in e)o[i]=rs(e[i],t,n);return o;case"symbol":return ro.onSymbol(e);case"bigint":return`${e}n`;case"undefined":return"undefined";default:return e}},ns=e=>typeof e=="string"?`\'${e}\'`:typeof e=="bigint"?`${e}n`:`${e}`;function ly(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function fy(e,t){return t.get?t.get.call(e):t.value}function py(e,t,r){if(t.set)t.set.call(e,r);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=r}}function Tu(e,t,r){if(!t.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}function _u(e,t){var r=Tu(e,t,"get");return fy(e,r)}function my(e,t,r){ly(e,t),t.set(e,r)}function dy(e,t,r){var n=Tu(e,t,"set");return py(e,n,r),r}function no(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var qe=e=>(t,r,n)=>t===void 0?r===void 0?te(so):r:r===void 0?t:e(t,r,n),so="Unexpected operation two undefined operands",os={domain:({l:e,r:t})=>`${e.join(", ")} and ${t.join(", ")}`,range:({l:e,r:t})=>`${io(e)} and ${io(t)}`,class:({l:e,r:t})=>`classes ${typeof e=="string"?e:e.name} and ${typeof t=="string"?t:t.name}`,tupleLength:({l:e,r:t})=>`tuples of length ${e} and ${t}`,value:({l:e,r:t})=>`literal values ${oe(e)} and ${oe(t)}`,leftAssignability:({l:e,r:t})=>`literal value ${oe(e.value)} and ${oe(t)}`,rightAssignability:({l:e,r:t})=>`literal value ${oe(t.value)} and ${oe(e)}`,union:({l:e,r:t})=>`branches ${oe(e)} and branches ${oe(t)}`},io=e=>"limit"in e?`the range of exactly ${e.limit}`:e.min?e.max?`the range bounded by ${e.min.comparator}${e.min.limit} and ${e.max.comparator}${e.max.limit}`:`${e.min.comparator}${e.min.limit}`:e.max?`${e.max.comparator}${e.max.limit}`:"the unbounded range",oo=new WeakMap,Et=class{get disjoints(){return _u(this,oo)}addDisjoint(t,r,n){return _u(this,oo)[`${this.path}`]={kind:t,l:r,r:n},ao}constructor(t,r){no(this,"type",void 0),no(this,"lastOperator",void 0),no(this,"path",void 0),no(this,"domain",void 0),my(this,oo,{writable:!0,value:void 0}),this.type=t,this.lastOperator=r,this.path=new ge,dy(this,oo,{})}},ao=Symbol("empty"),Nu=()=>ao,Ye=e=>e===ao,Cu=Symbol("equal"),ye=()=>Cu,je=e=>e===Cu,sr=(e,t)=>(r,n,o)=>{let i={},s=re({...r,...n}),a=!0,u=!0;for(let m of s){let l=typeof e=="function"?e(m,r[m],n[m],o):e[m](r[m],n[m],o);if(je(l))r[m]!==void 0&&(i[m]=r[m]);else if(Ye(l))if(t.onEmpty==="omit")a=!1,u=!1;else return ao;else l!==void 0&&(i[m]=l),a&&(a=l===r[m]),u&&(u=l===n[m])}return a?u?ye():r:u?n:i};var Au=e=>{let t=re(e);if(t.length===1){let n=t[0];return`${n==="/"?"":`At ${n}: `}Intersection of ${os[e[n].kind](e[n])} results in an unsatisfiable type`}let r=`\n "Intersection results in unsatisfiable types at the following paths:\n`;for(let n in e)r+=` ${n}: ${os[e[n].kind](e[n])}\n`;return r},uo=(e,t,r)=>`${e.length?`At ${e}: `:""}${t} ${r?`${r} `:""}results in an unsatisfiable type`;var jr={Array,Date,Error,Function,Map,RegExp,Set,Object,String,Number,Boolean,WeakMap,WeakSet,Promise},ar=(e,t)=>{if(le(e)!=="object")return;let r=t??jr,n=Object.getPrototypeOf(e);for(;n?.constructor&&(!r[n.constructor.name]||!(e instanceof r[n.constructor.name]));)n=Object.getPrototypeOf(n);return n?.constructor?.name};var It=e=>Array.isArray(e),is={Object:"an object",Array:"an array",Function:"a function",Date:"a Date",RegExp:"a RegExp",Error:"an Error",Map:"a Map",Set:"a Set",String:"a String object",Number:"a Number object",Boolean:"a Boolean object",Promise:"a Promise",WeakMap:"a WeakMap",WeakSet:"a WeakSet"},co=e=>{let t=Object(e).name;return t&&Me(t,jr)&&jr[t]===e?t:void 0};var Ru=qe((e,t,r)=>e===t?ye():e instanceof t?e:t instanceof e?t:r.addDisjoint("class",e,t)),Fu=(e,t)=>typeof e=="string"?ar(t.data)===e||!t.problems.add("class",e):t.data instanceof e||!t.problems.add("class",e);var lo=(e,t)=>{if(Array.isArray(e)){if(Array.isArray(t)){let r=hy(e,t);return r.length===e.length?r.length===t.length?ye():e:r.length===t.length?t:r}return e.includes(t)?e:[...e,t]}return Array.isArray(t)?t.includes(e)?t:[...t,e]:e===t?ye():[e,t]},hy=(e,t)=>{let r=[...e];for(let n of t)e.includes(n)||r.push(n);return r};var $u=qe((e,t)=>e===t?ye():Math.abs(e*t/gy(e,t))),gy=(e,t)=>{let r,n=e,o=t;for(;o!==0;)r=o,o=n%o,n=r;return n},Pu=(e,t)=>t.data%e===0||!t.problems.add("divisor",e);var Lr=e=>e[0]==="?",fo=e=>e[0]==="!",rt={index:"[index]"},St=e=>Lr(e)||fo(e)?e[1]:e,yy=e=>{if(typeof e.length=="object"&&fo(e.length)&&typeof e.length[1]!="string"&&mo(e.length[1],"number"))return e.length[1].number.value},ku=qe((e,t,r)=>{let n=by(e,t,r);if(typeof n=="symbol")return n;let o=yy(n);if(o===void 0||!(rt.index in n))return n;let{[rt.index]:i,...s}=n,a=St(i);for(let u=0;u{if(t===void 0)return r===void 0?ye():r;if(r===void 0)return t;n.path.push(e);let o=po(St(t),St(r),n);n.path.pop();let i=Lr(t)&&Lr(r);return Ye(o)&&i?{}:o},{onEmpty:"bubble"}),Mu=(e,t,r)=>{let n=r.type.config?.keys??r.type.scope.config.keys;return n==="loose"?vy(e,t,r):wy(n,e,t,r)},vy=(e,t,r)=>{for(let n in t){let o=t[n];r.path.push(n),n===rt.index?e.push(["indexProp",tt(St(o),r)]):Lr(o)?e.push(["optionalProp",[n,tt(o[1],r)]]):fo(o)?e.push(["prerequisiteProp",[n,tt(o[1],r)]]):e.push(["requiredProp",[n,tt(o,r)]]),r.path.pop()}},wy=(e,t,r,n)=>{let o={required:{},optional:{}};for(let i in r){let s=r[i];n.path.push(i),i===rt.index?o.index=tt(St(s),n):Lr(s)?o.optional[i]=tt(s[1],n):fo(s)?t.push(["prerequisiteProp",[i,tt(s[1],n)]]):o.required[i]=tt(s,n),n.path.pop()}t.push([`${e}Props`,o])};function xy(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ss=e=>typeof e=="string"||Array.isArray(e)?e.length:typeof e=="number"?e:0,Ey=e=>typeof e=="string"?"characters":Array.isArray(e)?"items long":"",ho=class{toString(){return oe(this.value)}get domain(){return le(this.value)}get size(){return ss(this.value)}get units(){return Ey(this.value)}get className(){return Object(this.value).constructor.name}constructor(t){xy(this,"value",void 0),this.value=t}};var go={">":!0,">=":!0},as={"<":!0,"<=":!0},Br=e=>"comparator"in e,ju=qe((e,t,r)=>{if(Br(e))return Br(t)?e.limit===t.limit?ye():r.addDisjoint("range",e,t):qu(t,e.limit)?e:r.addDisjoint("range",e,t);if(Br(t))return qu(e,t.limit)?t:r.addDisjoint("range",e,t);let n=ur("min",e.min,t.min),o=ur("max",e.max,t.max);return n==="l"?o==="r"?ur("min",e.min,t.max)==="l"?r.addDisjoint("range",e,t):{min:e.min,max:t.max}:e:n==="r"?o==="l"?ur("max",e.max,t.min)==="l"?r.addDisjoint("range",e,t):{min:t.min,max:e.max}:t:o==="l"?e:o==="r"?t:ye()}),qu=(e,t)=>Br(e)?t===e.limit:Iy(e.min,t)&&Sy(e.max,t),Iy=(e,t)=>!e||t>e.limit||t===e.limit&&!Ur(e.comparator),Sy=(e,t)=>!e||t{let n=r.lastDomain==="string"?"characters":r.lastDomain==="object"?"items long":void 0;if(Br(t))return e.push(["bound",n?{...t,units:n}:t]);t.min&&e.push(["bound",n?{...t.min,units:n}:t.min]),t.max&&e.push(["bound",n?{...t.max,units:n}:t.max])},Bu=(e,t)=>Oy[e.comparator](ss(t.data),e.limit)||!t.problems.add("bound",e),Oy={"<":(e,t)=>e":(e,t)=>e>t,"<=":(e,t)=>e<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e===t},ur=(e,t,r)=>t?r?t.limit===r.limit?Ur(t.comparator)?Ur(r.comparator)?"=":"l":Ur(r.comparator)?"r":"=":e==="min"?t.limit>r.limit?"l":"r":t.limite.length===1;var us={},cs=e=>(us[e]||(us[e]=new RegExp(e)),us[e]),Uu=(e,t)=>cs(e).test(t.data)||!t.problems.add("regex",`/${e}/`),zu=qe(lo);var Ku=(e,t,r)=>"value"in e?"value"in t?e.value===t.value?ye():r.addDisjoint("value",e.value,t.value):Wu(e.value,t,r)?e:r.addDisjoint("leftAssignability",e,t):"value"in t?Wu(t.value,e,r)?t:r.addDisjoint("rightAssignability",e,t):_y(e,t,r),Dy=qe(lo),_y=sr({divisor:$u,regex:zu,props:ku,class:Ru,range:ju,narrow:Dy},{onEmpty:"bubble"}),ls=(e,t)=>{let r=[],n;for(n in e)Ty[n](r,e[n],t);return r.sort((o,i)=>zr[o[0]]-zr[i[0]])},Ty={regex:(e,t)=>{for(let r of et(t))e.push(["regex",r])},divisor:(e,t)=>{e.push(["divisor",t])},range:Lu,class:(e,t)=>{e.push(["class",t])},props:Mu,narrow:(e,t)=>{for(let r of et(t))e.push(["narrow",r])},value:(e,t)=>{e.push(["value",t])}},zr={config:-1,domain:0,value:0,domains:0,branches:0,switch:0,alias:0,class:0,regex:1,divisor:1,bound:1,prerequisiteProp:2,distilledProps:3,strictProps:3,requiredProp:3,optionalProp:3,indexProp:3,narrow:4,morph:5},Wu=(e,t,r)=>!r.type.scope.type(["node",{[r.domain]:t}])(e).problems;var fs=e=>e?.lBranches!==void 0,Hu=(e,t,r)=>{let n={lBranches:e,rBranches:t,lExtendsR:[],rExtendsL:[],equalities:[],distinctIntersections:[]},o=t.map(i=>({condition:i,distinct:[]}));return e.forEach((i,s)=>{let a=!1,u=o.map((m,l)=>{if(a||!m.distinct)return null;let d=m.condition,f=Kr(i,d,r);return Ye(f)?null:f===i?(n.lExtendsR.push(s),a=!0,null):f===d?(n.rExtendsL.push(l),m.distinct=null,null):je(f)?(n.equalities.push([s,l]),a=!0,m.distinct=null,null):xt(f,"object")?f:te(`Unexpected predicate intersection result of type \'${le(f)}\'`)});if(!a)for(let m=0;mi.distinct??[]),n},ps=e=>"rules"in e,Wr=(e,t)=>{if(ps(e)){let r=ls(e.rules,t);if(e.morph)if(typeof e.morph=="function")r.push(["morph",e.morph]);else for(let n of e.morph)r.push(["morph",n]);return r}return ls(e,t)},Gu=e=>e.rules??e,Kr=(e,t,r)=>{let n=Gu(e),o=Gu(t),i=Ku(n,o,r);return"morph"in e?"morph"in t?e.morph===t.morph?je(i)||Ye(i)?i:{rules:i,morph:e.morph}:r.lastOperator==="&"?Q(uo(r.path,"Intersection","of morphs")):{}:Ye(i)?i:{rules:je(i)?e.rules:i,morph:e.morph}:"morph"in t?Ye(i)?i:{rules:je(i)?t.rules:i,morph:t.morph}:i};var Ju=e=>`${e==="/"?"A":`At ${e}, a`} union including one or more morphs must be discriminatable`;var Yu=(e,t)=>{let r=Cy(e,t),n=e.map((o,i)=>i);return Zu(e,n,r,t)},Zu=(e,t,r,n)=>{if(t.length===1)return Wr(e[t[0]],n);let o=Ry(t,r);if(!o)return[["branches",t.map(s=>ds(e[s],n.type.scope)?Q(Ju(`${n.path}`)):Wr(e[s],n))]];let i={};for(let s in o.indexCases){let a=o.indexCases[s];i[s]=Zu(e,a,r,n),s!=="default"&&Gr(i[s],o.path,o,n)}return[["switch",{path:o.path,kind:o.kind,cases:i}]]},Gr=(e,t,r,n)=>{for(let o=0;ote(`Unexpectedly failed to discriminate ${e.kind} at path \'${e.path}\'`),Ny={domain:!0,class:!0,value:!0},Cy=(e,t)=>{let r={disjointsByPair:{},casesByDisjoint:{}};for(let n=0;n{let t=ge.fromString(e);return[t,t.pop()]},Ry=(e,t)=>{let r;for(let n=0;n{let N=e.indexOf(S);if(N!==-1)return delete d[N],!0});x.length!==0&&(l[w]=x,f++)}let g=re(d);if(g.length&&(l.default=g.map(w=>parseInt(w))),!r||f>r.score){let[w,x]=Ay(u);if(r={path:w,kind:x,indexCases:l,score:f},f===e.length)return r}}}}return r},Vu=(e,t)=>{switch(e){case"value":return Qu(t);case"domain":return t;case"class":return co(t);default:return}},Qu=e=>{let t=le(e);return t==="object"||t==="symbol"?void 0:ns(e)},Fy={value:e=>Qu(e)??"default",class:e=>ar(e)??"default",domain:le},Xu=(e,t)=>Fy[e](t),ds=(e,t)=>"morph"in e?!0:"props"in e?Object.values(e.props).some(r=>$y(St(r),t)):!1,$y=(e,t)=>typeof e=="string"?t.resolve(e).includesMorph:Object.values(t.resolveTypeNode(e)).some(r=>r===!0?!1:It(r)?r.some(n=>ds(n,t)):ds(r,t));var cr=e=>e===!0?{}:e,ec=(e,t,r)=>{if(e===!0&&t===!0)return ye();if(!It(e)&&!It(t)){let s=Kr(cr(e),cr(t),r);return s===e?e:s===t?t:s}let n=et(cr(e)),o=et(cr(t)),i=Hu(n,o,r);return i.equalities.length===n.length&&i.equalities.length===o.length?ye():i.lExtendsR.length+i.equalities.length===n.length?e:i.rExtendsL.length+i.equalities.length===o.length?t:i},tc=(e,t,r,n)=>{n.domain=e;let o=ec(t,r,n);if(!fs(o))return o;let i=[...o.distinctIntersections,...o.equalities.map(s=>o.lBranches[s[0]]),...o.lExtendsR.map(s=>o.lBranches[s]),...o.rExtendsL.map(s=>o.rBranches[s])];return i.length===0&&n.addDisjoint("union",o.lBranches,o.rBranches),i.length===1?i[0]:i},rc=(e,t,r,n)=>{let o=new Et(n,"|"),i=ec(t,r,o);if(!fs(i))return je(i)||i===t?r:i===r?t:e==="boolean"?!0:[cr(t),cr(r)];let s=[...i.lBranches.filter((a,u)=>!i.lExtendsR.includes(u)&&!i.equalities.some(m=>m[0]===u)),...i.rBranches.filter((a,u)=>!i.rExtendsL.includes(u)&&!i.equalities.some(m=>m[1]===u))];return s.length===1?s[0]:s},hs=(e,t)=>e===!0?[]:It(e)?Yu(e,t):Wr(e,t),nc=e=>typeof e=="object"&&"value"in e;var Hr=e=>"config"in e,po=(e,t,r)=>{r.domain=void 0;let n=r.type.scope.resolveTypeNode(e),o=r.type.scope.resolveTypeNode(t),i=Py(n,o,r);return typeof i=="object"&&!Pr(i)?Pr(r.disjoints)?Nu():r.addDisjoint("domain",re(n),re(o)):i===n?e:i===o?t:i},Py=sr((e,t,r,n)=>{if(t===void 0)return r===void 0?te(so):void 0;if(r!==void 0)return tc(e,t,r,n)},{onEmpty:"omit"}),Ot=(e,t,r)=>{let n=new Et(r,"&"),o=po(e,t,n);return Ye(o)?Q(Au(n.disjoints)):je(o)?e:o},yo=(e,t,r)=>{let n=r.scope.resolveTypeNode(e),o=r.scope.resolveTypeNode(t),i={},s=re({...n,...o});for(let a of s)i[a]=ir(n,a)?ir(o,a)?rc(a,n[a],o[a],r):n[a]:ir(o,a)?o[a]:te(so);return i},ky=e=>e[0]&&(e[0][0]==="value"||e[0][0]==="class"),gs=e=>{let t={type:e,path:new ge,lastDomain:"undefined"};return tt(e.node,t)},tt=(e,t)=>{if(typeof e=="string")return t.type.scope.resolve(e).flat;let r=Hr(e),n=My(r?e.node:e,t);return r?[["config",{config:wu(e.config),node:n}]]:n},My=(e,t)=>{let r=re(e);if(r.length===1){let o=r[0],i=e[o];if(i===!0)return o;t.lastDomain=o;let s=hs(i,t);return ky(s)?s:[["domain",o],...s]}let n={};for(let o of r)t.lastDomain=o,n[o]=hs(e[o],t);return[["domains",n]]},mo=(e,t)=>qy(e,t)&&nc(e[t]),qy=(e,t)=>{let r=re(e);return r.length===1&&r[0]===t},lr=e=>({object:{class:Array,props:{[rt.index]:e}}});function ys(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ie=class{shift(){return this.chars[this.i++]??""}get lookahead(){return this.chars[this.i]??""}shiftUntil(t){let r="";for(;this.lookahead;){if(t(this,r))if(r[r.length-1]===ie.escapeToken)r=r.slice(0,-1);else break;r+=this.shift()}return r}shiftUntilNextTerminator(){return this.shiftUntil(ie.lookaheadIsNotWhitespace),this.shiftUntil(ie.lookaheadIsTerminator)}get unscanned(){return this.chars.slice(this.i,this.chars.length).join("")}lookaheadIs(t){return this.lookahead===t}lookaheadIsIn(t){return this.lookahead in t}constructor(t){ys(this,"chars",void 0),ys(this,"i",void 0),ys(this,"finalized",!1),this.chars=[...t],this.i=0}};(function(e){var t=e.lookaheadIsTerminator=f=>f.lookahead in o,r=e.lookaheadIsNotWhitespace=f=>f.lookahead!==d,n=e.comparatorStartChars={"<":!0,">":!0,"=":!0},o=e.terminatingChars={...n,"|":!0,"&":!0,")":!0,"[":!0,"%":!0," ":!0},i=e.comparators={"<":!0,">":!0,"<=":!0,">=":!0,"==":!0},s=e.oneCharComparators={"<":!0,">":!0},a=e.comparatorDescriptions={"<":"less than",">":"more than","<=":"at most",">=":"at least","==":"exactly"},u=e.invertedComparators={"<":">",">":"<","<=":">=",">=":"<=","==":"=="},m=e.branchTokens={"|":!0,"&":!0},l=e.escapeToken="\\\\",d=e.whiteSpaceToken=" "})(ie||(ie={}));function jy(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function Ly(e,t){return t.get?t.get.call(e):t.value}function By(e,t,r){if(t.set)t.set.call(e,r);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=r}}function oc(e,t,r){if(!t.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}function bo(e,t){var r=oc(e,t,"get");return Ly(e,r)}function Uy(e,t,r){jy(e,t),t.set(e,r)}function zy(e,t,r){var n=oc(e,t,"set");return By(e,n,r),r}function pt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var vs=class extends TypeError{constructor(t){super(`${t}`),pt(this,"cause",void 0),this.cause=t}},qt=class{toString(){return this.message}get message(){return this.writers.addContext(this.reason,this.path)}get reason(){return this.writers.writeReason(this.mustBe,new ho(this.data))}get mustBe(){return typeof this.writers.mustBe=="string"?this.writers.mustBe:this.writers.mustBe(this.source)}constructor(t,r,n,o,i){pt(this,"code",void 0),pt(this,"path",void 0),pt(this,"data",void 0),pt(this,"source",void 0),pt(this,"writers",void 0),pt(this,"parts",void 0),this.code=t,this.path=r,this.data=n,this.source=o,this.writers=i,this.code==="multi"&&(this.parts=this.source)}},fr=new WeakMap,ws=class extends Array{mustBe(t,r){return this.add("custom",t,r)}add(t,r,n){let o=ge.from(n?.path??bo(this,fr).path),i=n&&"data"in n?n.data:bo(this,fr).data,s=new qt(t,o,i,r,bo(this,fr).getProblemConfig(t));return this.addProblem(s),s}addProblem(t){let r=`${t.path}`,n=this.byPath[r];if(n)if(n.parts)n.parts.push(t);else{let o=new qt("multi",n.path,n.data,[n,t],bo(this,fr).getProblemConfig("multi")),i=this.indexOf(n);this[i===-1?this.length:i]=o,this.byPath[r]=o}else this.byPath[r]=t,this.push(t);this.count++}get summary(){return`${this}`}toString(){return this.join(`\n`)}throw(){throw new vs(this)}constructor(t){super(),pt(this,"byPath",{}),pt(this,"count",0),Uy(this,fr,{writable:!0,value:void 0}),zy(this,fr,t)}},vo=ws,Wy=e=>e[0].toUpperCase()+e.slice(1),xs=e=>e.map(t=>Xi[t]),ic=e=>e.map(t=>is[t]),bs=e=>{if(e.length===0)return"never";if(e.length===1)return e[0];let t="";for(let r=0;r`must be ${e}${t&&` (was ${t})`}`,sc=(e,t)=>t.length===0?Wy(e):t.length===1&&kr(t[0])?`Item at index ${t[0]} ${e}`:`${t} ${e}`,Mt={divisor:{mustBe:e=>e===1?"an integer":`a multiple of ${e}`},class:{mustBe:e=>{let t=co(e);return t?is[t]:`an instance of ${e.name}`},writeReason:(e,t)=>kt(e,t.className)},domain:{mustBe:e=>Xi[e],writeReason:(e,t)=>kt(e,t.domain)},missing:{mustBe:()=>"defined",writeReason:e=>kt(e,"")},extraneous:{mustBe:()=>"removed",writeReason:e=>kt(e,"")},bound:{mustBe:e=>`${ie.comparatorDescriptions[e.comparator]} ${e.limit}${e.units?` ${e.units}`:""}`,writeReason:(e,t)=>kt(e,`${t.size}`)},regex:{mustBe:e=>`a string matching ${e}`},value:{mustBe:oe},branches:{mustBe:e=>bs(e.map(t=>`${t.path} must be ${t.parts?bs(t.parts.map(r=>r.mustBe)):t.mustBe}`)),writeReason:(e,t)=>`${e} (was ${t})`,addContext:(e,t)=>t.length?`At ${t}, ${e}`:e},multi:{mustBe:e=>"\\u2022 "+e.map(t=>t.mustBe).join(`\n\\u2022 `),writeReason:(e,t)=>`${t} must be...\n${e}`,addContext:(e,t)=>t.length?`At ${t}, ${e}`:e},custom:{mustBe:e=>e},cases:{mustBe:e=>bs(e)}},ac=re(Mt),Ky=()=>{let e={},t;for(t of ac)e[t]={mustBe:Mt[t].mustBe,writeReason:Mt[t].writeReason??kt,addContext:Mt[t].addContext??sc};return e},Gy=Ky(),uc=e=>{if(!e)return Gy;let t={};for(let r of ac)t[r]={mustBe:e[r]?.mustBe??Mt[r].mustBe,writeReason:e[r]?.writeReason??Mt[r].writeReason??e.writeReason??kt,addContext:e[r]?.addContext??Mt[r].addContext??e.addContext??sc};return t};function Hy(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function Jy(e,t){return t.get?t.get.call(e):t.value}function Vy(e,t,r){if(t.set)t.set.call(e,r);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=r}}function fc(e,t,r){if(!t.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}function Es(e,t){var r=fc(e,t,"get");return Jy(e,r)}function Yy(e,t,r){Hy(e,t),t.set(e,r)}function Zy(e,t,r){var n=fc(e,t,"set");return Vy(e,n,r),r}function nt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Qy=()=>({mustBe:[],writeReason:[],addContext:[],keys:[]}),Xy=["mustBe","writeReason","addContext"],pc=(e,t)=>{let r=new Is(t,e);wo(e.flat,r);let n=new mc(r);if(r.problems.count)n.problems=r.problems;else{for(let[o,i]of r.entriesToPrune)delete o[i];n.data=r.data}return n},mc=class{constructor(){nt(this,"data",void 0),nt(this,"problems",void 0)}},Jr=new WeakMap,Is=class{getProblemConfig(t){let r={};for(let n of Xy)r[n]=this.traversalConfig[n][0]??this.rootScope.config.codes[t][n];return r}traverseConfig(t,r){for(let o of t)this.traversalConfig[o[0]].unshift(o[1]);let n=wo(r,this);for(let o of t)this.traversalConfig[o[0]].shift();return n}traverseKey(t,r){let n=this.data;this.data=this.data[t],this.path.push(t);let o=wo(r,this);return this.path.pop(),n[t]!==this.data&&(n[t]=this.data),this.data=n,o}traverseResolution(t){let r=this.type.scope.resolve(t),n=r.qualifiedName,o=this.data,i=xt(o,"object");if(i){let u=Es(this,Jr)[n];if(u){if(u.includes(o))return!0;u.push(o)}else Es(this,Jr)[n]=[o]}let s=this.type;this.type=r;let a=wo(r.flat,this);return this.type=s,i&&Es(this,Jr)[n].pop(),a}traverseBranches(t){let r=this.failFast;this.failFast=!0;let n=this.problems,o=new vo(this);this.problems=o;let i=this.path,s=this.entriesToPrune,a=!1;for(let u of t)if(this.path=new ge,this.entriesToPrune=[],xo(u,this)){a=!0,s.push(...this.entriesToPrune);break}return this.path=i,this.entriesToPrune=s,this.problems=n,this.failFast=r,a||!this.problems.add("branches",o)}constructor(t,r){nt(this,"data",void 0),nt(this,"type",void 0),nt(this,"path",void 0),nt(this,"problems",void 0),nt(this,"entriesToPrune",void 0),nt(this,"failFast",void 0),nt(this,"traversalConfig",void 0),nt(this,"rootScope",void 0),Yy(this,Jr,{writable:!0,value:void 0}),this.data=t,this.type=r,this.path=new ge,this.problems=new vo(this),this.entriesToPrune=[],this.failFast=!1,this.traversalConfig=Qy(),Zy(this,Jr,{}),this.rootScope=r.scope}},wo=(e,t)=>typeof e=="string"?le(t.data)===e||!t.problems.add("domain",e):xo(e,t),xo=(e,t)=>{let r=!0;for(let n=0;ne[0]in t.data?t.traverseKey(e[0],e[1]):(t.problems.add("missing",void 0,{path:t.path.concat(e[0]),data:void 0}),!1),lc=e=>(t,r)=>{let n=!0,o={...t.required};for(let s in r.data)if(t.required[s]?(n=r.traverseKey(s,t.required[s])&&n,delete o[s]):t.optional[s]?n=r.traverseKey(s,t.optional[s])&&n:t.index&&eo.test(s)?n=r.traverseKey(s,t.index)&&n:e==="distilledProps"?r.failFast?r.entriesToPrune.push([r.data,s]):delete r.data[s]:(n=!1,r.problems.add("extraneous",r.data[s],{path:r.path.concat(s)})),!n&&r.failFast)return!1;let i=Object.keys(o);if(i.length){for(let s of i)r.problems.add("missing",void 0,{path:r.path.concat(s)});return!1}return n},eb={regex:Uu,divisor:Pu,domains:(e,t)=>{let r=e[le(t.data)];return r?xo(r,t):!t.problems.add("cases",xs(re(e)))},domain:(e,t)=>le(t.data)===e||!t.problems.add("domain",e),bound:Bu,optionalProp:(e,t)=>e[0]in t.data?t.traverseKey(e[0],e[1]):!0,requiredProp:cc,prerequisiteProp:cc,indexProp:(e,t)=>{if(!Array.isArray(t.data))return t.problems.add("class",Array),!1;let r=!0;for(let n=0;nt.traverseBranches(e),switch:(e,t)=>{let r=Eu(t.data,e.path),n=Xu(e.kind,r);if(ir(e.cases,n))return xo(e.cases[n],t);let o=re(e.cases),i=t.path.concat(e.path),s=e.kind==="value"?o:e.kind==="domain"?xs(o):e.kind==="class"?ic(o):te(`Unexpectedly encountered rule kind \'${e.kind}\' during traversal`);return t.problems.add("cases",s,{path:i,data:r}),!1},alias:(e,t)=>t.traverseResolution(e),class:Fu,narrow:(e,t)=>{let r=t.problems.count,n=e(t.data,t.problems);return!n&&t.problems.count===r&&t.problems.mustBe(e.name?`valid according to ${e.name}`:"valid"),n},config:({config:e,node:t},r)=>r.traverseConfig(e,t),value:(e,t)=>t.data===e||!t.problems.add("value",e),morph:(e,t)=>{let r=e(t.data,t.problems);if(t.problems.length)return!1;if(r instanceof qt)return t.problems.addProblem(r),!1;if(r instanceof mc){if(r.problems){for(let n of r.problems)t.problems.addProblem(n);return!1}return t.data=r.data,!0}return t.data=r,!0},distilledProps:lc("distilledProps"),strictProps:lc("strictProps")};var Dt=new Proxy(()=>Dt,{get:()=>Dt});var Ss=(e,t,r,n)=>{let o={node:e,flat:[["alias",e]],allows:a=>!i(a).problems,assert:a=>{let u=i(a);return u.problems?u.problems.throw():u.data},infer:Dt,inferIn:Dt,qualifiedName:tb(e)?n.getAnonymousQualifiedName(e):`${n.name}.${e}`,definition:t,scope:n,includesMorph:!1,config:r},i={[e]:a=>pc(i,a)}[e];return Object.assign(i,o)},Os=e=>e?.infer===Dt,tb=e=>e[0]==="\\u03BB";var dc=e=>{let t=e.scanner.shiftUntilNextTerminator();e.setRoot(rb(e,t))},rb=(e,t)=>e.ctx.type.scope.addParsedReferenceIfResolvable(t,e.ctx)?t:nb(t)??e.error(t===""?Ds(e):ob(t)),nb=e=>{let t=qr(e);if(t!==void 0)return{number:{value:t}};let r=ts(e);if(r!==void 0)return{bigint:{value:r}}},ob=e=>`\'${e}\' is unresolvable`,Ds=e=>{let t=e.previousOperator();return t?_s(t,e.scanner.unscanned):ib(e.scanner.unscanned)},_s=(e,t)=>`Token \'${e}\' requires a right operand${t?` before \'${t}\'`:""}`,ib=e=>`Expected an expression${e?` before \'${e}\'`:""}`;var Ts=(e,t)=>({node:t.type.scope.resolveTypeNode(be(e[0],t)),config:e[2]});var Le=e=>Object.isFrozen(e)?e:Array.isArray(e)?Object.freeze(e.map(Le)):sb(e),sb=e=>{for(let t in e)Le(e[t]);return e};var ab=Le({regex:Mr.source}),ub=Le({range:{min:{comparator:">=",limit:0}},divisor:1}),hc=(e,t)=>{let r=t.type.scope.resolveNode(be(e[1],t)),n=re(r).map(l=>lb(l,r[l])),o=gc(n);if(!o.length)return uo(t.path,"keyof");let i={};for(let l of o){let d=typeof l;if(d==="string"||d==="number"||d==="symbol"){var s,a;(s=i)[a=d]??(s[a]=[]),i[d].push({value:l})}else if(l===Mr){var u,m;(u=i).string??(u.string=[]),i.string.push(ab),(m=i).number??(m.number=[]),i.number.push(ub)}else return te(`Unexpected keyof key \'${oe(l)}\'`)}return Object.fromEntries(Object.entries(i).map(([l,d])=>[l,d.length===1?d[0]:d]))},cb={bigint:Pt(0n),boolean:Pt(!1),null:[],number:Pt(0),object:[],string:Pt(""),symbol:Pt(Symbol()),undefined:[]},lb=(e,t)=>e!=="object"||t===!0?cb[e]:gc(et(t).map(r=>fb(r))),gc=e=>{if(!e.length)return[];let t=e[0];for(let r=1;re[r].includes(n));return t},fb=e=>{let t=[];if("props"in e)for(let r of Object.keys(e.props))r===rt.index?t.push(Mr):t.includes(r)||(t.push(r),Mr.test(r)&&t.push(to(r,`Unexpectedly failed to parse an integer from key \'${r}\'`)));if("class"in e){let r=typeof e.class=="string"?jr[e.class]:e.class;for(let n of Pt(r.prototype))t.includes(n)||t.push(n)}return t};var bc=(e,t)=>{if(typeof e[2]!="function")return Q(pb(e[2]));let r=be(e[0],t),n=t.type.scope.resolveTypeNode(r),o=e[2];t.type.includesMorph=!0;let i,s={};for(i in n){let a=n[i];a===!0?s[i]={rules:{},morph:o}:typeof a=="object"?s[i]=It(a)?a.map(u=>yc(u,o)):yc(a,o):te(`Unexpected predicate value for domain \'${i}\': ${oe(a)}`)}return s},yc=(e,t)=>ps(e)?{...e,morph:e.morph?Array.isArray(e.morph)?[...e.morph,t]:[e.morph,t]:t}:{rules:e,morph:t},pb=e=>`Morph expression requires a function following \'|>\' (was ${typeof e})`;var vc=e=>`Expected a Function or Record operand (${oe(e)} was invalid)`,wc=(e,t,r,n)=>{let o=re(t);if(!xt(e,"object"))return Q(vc(e));let i={};if(typeof e=="function"){let s={[n]:e};for(let a of o)i[a]=s}else for(let s of o){if(e[s]===void 0)continue;let a={[n]:e[s]};if(typeof a[n]!="function")return Q(vc(a));i[s]=a}return i};var xc=(e,t)=>{let r=be(e[0],t),n=t.type.scope.resolveNode(r),o=Hr(n),i=o?n.node:n,s=Ot(r,wc(e[2],i,t,"narrow"),t.type);return o?{config:n.config,node:s}:s};var Ic=(e,t)=>{if(db(e))return Sc[e[1]](e,t);if(hb(e))return Oc[e[0]](e,t);let r={length:["!",{number:{value:e.length}}]};for(let n=0;n{if(e[2]===void 0)return Q(_s(e[1],""));let r=be(e[0],t),n=be(e[2],t);return e[1]==="&"?Ot(r,n,t.type):yo(r,n,t.type)},mb=(e,t)=>lr(be(e[0],t));var db=e=>Sc[e[1]]!==void 0,Sc={"|":Ec,"&":Ec,"[]":mb,"=>":xc,"|>":bc,":":Ts},Oc={keyof:hc,instanceof:e=>typeof e[1]!="function"?Q(`Expected a constructor following \'instanceof\' operator (was ${typeof e[1]}).`):{object:{class:e[1]}},"===":e=>({[le(e[1])]:{value:e[1]}}),node:e=>e[1]},hb=e=>Oc[e[0]]!==void 0;var Dc=(e,t)=>{let r={};for(let n in e){let o=n,i=!1;n[n.length-1]==="?"&&(n[n.length-2]===ie.escapeToken?o=`${n.slice(0,-2)}?`:(o=n.slice(0,-1),i=!0)),t.path.push(o);let s=be(e[n],t);t.path.pop(),r[o]=i?["?",s]:s}return{object:{props:r}}};var _c=e=>`Unmatched )${e===""?"":` before ${e}`}`,Tc="Missing )",Nc=(e,t)=>`Left bounds are only valid when paired with right bounds (try ...${t}${e})`,Eo=e=>`Left-bounded expressions must specify their limits using < or <= (was ${e})`,Cc=(e,t,r,n)=>`An expression may have at most one left bound (parsed ${e}${ie.invertedComparators[t]}, ${r}${ie.invertedComparators[n]})`;function Vr(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Io=class{error(t){return Q(t)}hasRoot(){return this.root!==void 0}resolveRoot(){return this.assertHasRoot(),this.ctx.type.scope.resolveTypeNode(this.root)}rootToString(){return this.assertHasRoot(),oe(this.root)}ejectRootIfLimit(){this.assertHasRoot();let t=typeof this.root=="string"?this.ctx.type.scope.resolveNode(this.root):this.root;if(mo(t,"number")){let r=t.number.value;return this.root=void 0,r}}ejectRangeIfOpen(){if(this.branches.range){let t=this.branches.range;return delete this.branches.range,t}}assertHasRoot(){if(this.root===void 0)return te("Unexpected interaction with unset root")}assertUnsetRoot(){if(this.root!==void 0)return te("Unexpected attempt to overwrite root")}setRoot(t){this.assertUnsetRoot(),this.root=t}rootToArray(){this.root=lr(this.ejectRoot())}intersect(t){this.root=Ot(this.ejectRoot(),t,this.ctx.type)}ejectRoot(){this.assertHasRoot();let t=this.root;return this.root=void 0,t}ejectFinalizedRoot(){this.assertHasRoot();let t=this.root;return this.root=gb,t}finalize(){if(this.groups.length)return this.error(Tc);this.finalizeBranches(),this.scanner.finalized=!0}reduceLeftBound(t,r){let n=ie.invertedComparators[r];if(!Me(n,go))return this.error(Eo(r));if(this.branches.range)return this.error(Cc(`${this.branches.range.limit}`,this.branches.range.comparator,`${t}`,n));this.branches.range={limit:t,comparator:n}}finalizeBranches(){this.assertRangeUnset(),this.branches.union?(this.pushRootToBranch("|"),this.setRoot(this.branches.union)):this.branches.intersection&&this.setRoot(Ot(this.branches.intersection,this.ejectRoot(),this.ctx.type))}finalizeGroup(){this.finalizeBranches();let t=this.groups.pop();if(!t)return this.error(_c(this.scanner.unscanned));this.branches=t}pushRootToBranch(t){this.assertRangeUnset(),this.branches.intersection=this.branches.intersection?Ot(this.branches.intersection,this.ejectRoot(),this.ctx.type):this.ejectRoot(),t==="|"&&(this.branches.union=this.branches.union?yo(this.branches.union,this.branches.intersection,this.ctx.type):this.branches.intersection,delete this.branches.intersection)}assertRangeUnset(){if(this.branches.range)return this.error(Nc(`${this.branches.range.limit}`,this.branches.range.comparator))}reduceGroupOpen(){this.groups.push(this.branches),this.branches={}}previousOperator(){return this.branches.range?.comparator??this.branches.intersection?"&":this.branches.union?"|":void 0}shiftedByOne(){return this.scanner.shift(),this}constructor(t,r){Vr(this,"ctx",void 0),Vr(this,"scanner",void 0),Vr(this,"root",void 0),Vr(this,"branches",void 0),Vr(this,"groups",void 0),this.ctx=r,this.branches={},this.groups=[],this.scanner=new ie(t)}},gb=new Proxy({},{get:()=>te("Unexpected attempt to access ejected attributes")});var Ac=(e,t)=>{let r=e.scanner.shiftUntil(yb[t]);if(e.scanner.lookahead==="")return e.error(vb(r,t));e.scanner.shift()==="/"?(cs(r),e.setRoot({string:{regex:r}})):e.setRoot({string:{value:r}})},Rc={"\'":1,\'"\':1,"/":1},yb={"\'":e=>e.lookahead==="\'",\'"\':e=>e.lookahead===\'"\',"/":e=>e.lookahead==="/"},bb={\'"\':"double-quote","\'":"single-quote","/":"forward slash"},vb=(e,t)=>`${t}${e} requires a closing ${bb[t]}`;var So=e=>e.scanner.lookahead===""?e.error(Ds(e)):e.scanner.lookahead==="("?e.shiftedByOne().reduceGroupOpen():e.scanner.lookaheadIsIn(Rc)?Ac(e,e.scanner.shift()):e.scanner.lookahead===" "?So(e.shiftedByOne()):dc(e);var Fc=e=>`Bounded expression ${e} must be a number, string or array`;var $c=(e,t)=>{let r=wb(e,t),n=e.ejectRootIfLimit();return n===void 0?Eb(e,r):e.reduceLeftBound(n,r)},wb=(e,t)=>e.scanner.lookaheadIs("=")?`${t}${e.scanner.shift()}`:Me(t,ie.oneCharComparators)?t:e.error(xb),xb="= is not a valid comparator. Use == to check for equality",Eb=(e,t)=>{let r=e.scanner.shiftUntilNextTerminator(),n=qr(r,Ob(t,r+e.scanner.unscanned)),o=e.ejectRangeIfOpen(),i={comparator:t,limit:n},s=o?Ns(i,as)?ur("min",o,i)==="l"?e.error(Db({min:o,max:i})):{min:o,max:i}:e.error(Eo(t)):Sb(i,"==")?i:Ns(i,go)?{min:i}:Ns(i,as)?{max:i}:te(`Unexpected comparator \'${i.comparator}\'`);e.intersect(Ib(s,e))},Ib=(e,t)=>{let r=t.resolveRoot(),n=re(r),o={},i={range:e};return n.every(a=>{switch(a){case"string":return o.string=i,!0;case"number":return o.number=i,!0;case"object":return o.object=i,r.object===!0?!1:et(r.object).every(u=>"class"in u&&u.class===Array);default:return!1}})||t.error(Fc(t.rootToString())),o},Sb=(e,t)=>e.comparator===t,Ns=(e,t)=>e.comparator in t,Ob=(e,t)=>`Comparator ${e} must be followed by a number literal (was \'${t}\')`,Db=e=>`${io(e)} is empty`;var Pc=e=>`Divisibility operand ${e} must be a number`;var Mc=e=>{let t=e.scanner.shiftUntilNextTerminator(),r=to(t,kc(t));r===0&&e.error(kc(0));let n=re(e.resolveRoot());n.length===1&&n[0]==="number"?e.intersect({number:{divisor:r}}):e.error(Pc(e.rootToString()))},kc=e=>`% operator must be followed by a non-zero integer literal (was ${e})`;var Cs=e=>{let t=e.scanner.shift();return t===""?e.finalize():t==="["?e.scanner.shift()==="]"?e.rootToArray():e.error(Tb):Me(t,ie.branchTokens)?e.pushRootToBranch(t):t===")"?e.finalizeGroup():Me(t,ie.comparatorStartChars)?$c(e,t):t==="%"?Mc(e):t===" "?Cs(e):te(_b(t))},_b=e=>`Unexpected character \'${e}\'`,Tb="Missing expected \']\'";var qc=(e,t)=>t.type.scope.parseCache.get(e)??t.type.scope.parseCache.set(e,Nb(e,t)??Cb(e,t)),Nb=(e,t)=>{if(t.type.scope.addParsedReferenceIfResolvable(e,t))return e;if(e.endsWith("[]")){let r=e.slice(0,-2);if(t.type.scope.addParsedReferenceIfResolvable(e,t))return lr(r)}},Cb=(e,t)=>{let r=new Io(e,t);return So(r),Ab(r)},Ab=e=>{for(;!e.scanner.finalized;)Rb(e);return e.ejectFinalizedRoot()},Rb=e=>e.hasRoot()?Cs(e):So(e);var be=(e,t)=>{let r=le(e);if(r==="string")return qc(e,t);if(r!=="object")return Q(As(r));let n=ar(e);switch(n){case"Object":return Dc(e,t);case"Array":return Ic(e,t);case"RegExp":return{string:{regex:e.source}};case"Function":if(Os(e))return t.type.scope.addAnonymousTypeReference(e,t);if(Fb(e)){let o=e();if(Os(o))return t.type.scope.addAnonymousTypeReference(o,t)}return Q(As("Function"));default:return Q(As(n??oe(e)))}},j_=Symbol("as"),Fb=e=>typeof e=="function"&&e.length===0,As=e=>`Type definitions must be strings or objects (was ${e})`;function $b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var pr=class{get root(){return this.cache}has(t){return t in this.cache}get(t){return this.cache[t]}set(t,r){return this.cache[t]=r,r}constructor(){$b(this,"cache",{})}},Oo=class extends pr{set(t,r){return this.cache[t]=Le(r),r}};function zc(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function Pb(e,t){return t.get?t.get.call(e):t.value}function kb(e,t,r){if(t.set)t.set.call(e,r);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=r}}function Wc(e,t,r){if(!t.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}function dt(e,t){var r=Wc(e,t,"get");return Pb(e,r)}function jc(e,t,r){zc(e,t),t.set(e,r)}function Lc(e,t,r){var n=Wc(e,t,"set");return kb(e,n,r),r}function mt(e,t,r){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return r}function Do(e,t){zc(e,t),t.add(e)}function Ne(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Mb=e=>({codes:uc(e.codes),keys:e.keys??"loose"}),qb=0,Bc={},Rs={};var jt=new WeakMap,mr=new WeakMap,Uc=new WeakSet,_o=new WeakSet,$s=new WeakSet,To=new WeakSet,Ps=class{getAnonymousQualifiedName(t){let r=0,n=t;for(;this.isResolvable(n);)n=`${t}${r++}`;return`${this.name}.${n}`}addAnonymousTypeReference(t,r){var n;return(n=r.type).includesMorph||(n.includesMorph=t.includesMorph),t.node}get infer(){return Dt}compile(){if(!Rs[this.name]){for(let t in this.aliases)this.resolve(t);Rs[this.name]=dt(this,mr).root}return dt(this,mr).root}addParsedReferenceIfResolvable(t,r){var n;let o=mt(this,To,ks).call(this,t,"undefined",[t]);return o?((n=r.type).includesMorph||(n.includesMorph=o.includesMorph),!0):!1}resolve(t){return mt(this,To,ks).call(this,t,"throw",[t])}resolveNode(t){return typeof t=="string"?this.resolveNode(this.resolve(t).node):t}resolveTypeNode(t){let r=this.resolveNode(t);return Hr(r)?r.node:r}isResolvable(t){return dt(this,jt).has(t)||this.aliases[t]}constructor(t,r={}){Do(this,Uc),Do(this,_o),Do(this,$s),Do(this,To),Ne(this,"aliases",void 0),Ne(this,"name",void 0),Ne(this,"config",void 0),Ne(this,"parseCache",void 0),jc(this,jt,{writable:!0,value:void 0}),jc(this,mr,{writable:!0,value:void 0}),Ne(this,"expressions",void 0),Ne(this,"intersection",void 0),Ne(this,"union",void 0),Ne(this,"arrayOf",void 0),Ne(this,"keyOf",void 0),Ne(this,"valueOf",void 0),Ne(this,"instanceOf",void 0),Ne(this,"narrow",void 0),Ne(this,"morph",void 0),Ne(this,"type",void 0),this.aliases=t,this.parseCache=new Oo,Lc(this,jt,new pr),Lc(this,mr,new pr),this.expressions={intersection:(n,o,i)=>this.type([n,"&",o],i),union:(n,o,i)=>this.type([n,"|",o],i),arrayOf:(n,o)=>this.type([n,"[]"],o),keyOf:(n,o)=>this.type(["keyof",n],o),node:(n,o)=>this.type(["node",n],o),instanceOf:(n,o)=>this.type(["instanceof",n],o),valueOf:(n,o)=>this.type(["===",n],o),narrow:(n,o,i)=>this.type([n,"=>",o],i),morph:(n,o,i)=>this.type([n,"|>",o],i)},this.intersection=this.expressions.intersection,this.union=this.expressions.union,this.arrayOf=this.expressions.arrayOf,this.keyOf=this.expressions.keyOf,this.valueOf=this.expressions.valueOf,this.instanceOf=this.expressions.instanceOf,this.narrow=this.expressions.narrow,this.morph=this.expressions.morph,this.type=Object.assign((n,o={})=>{let i=Ss("\\u03BBtype",n,o,this),s=mt(this,$s,Kc).call(this,i),a=be(n,s);return i.node=Le(Pr(o)?{config:o,node:this.resolveTypeNode(a)}:a),i.flat=Le(gs(i)),i},{from:this.expressions.node}),this.name=mt(this,Uc,jb).call(this,r),r.standard!==!1&&mt(this,_o,Fs).call(this,[Rs.standard],"imports"),r.imports&&mt(this,_o,Fs).call(this,r.imports,"imports"),r.includes&&mt(this,_o,Fs).call(this,r.includes,"includes"),this.config=Mb(r)}};function jb(e){let t=e.name?Bc[e.name]?Q(`A scope named \'${e.name}\' already exists`):e.name:`scope${++qb}`;return Bc[t]=this,t}function Fs(e,t){for(let r of e)for(let n in r)(dt(this,jt).has(n)||n in this.aliases)&&Q(Bb(n)),dt(this,jt).set(n,r[n]),t==="includes"&&dt(this,mr).set(n,r[n])}function Kc(e){return{type:e,path:new ge}}function ks(e,t,r){let n=dt(this,jt).get(e);if(n)return n;let o=this.aliases[e];if(!o)return t==="throw"?te(`Unexpectedly failed to resolve alias \'${e}\'`):void 0;let i=Ss(e,o,{},this),s=mt(this,$s,Kc).call(this,i);dt(this,jt).set(e,i),dt(this,mr).set(e,i);let a=be(o,s);if(typeof a=="string"){if(r.includes(a))return Q(Lb(e,r));r.push(a),a=mt(this,To,ks).call(this,a,"throw",r).node}return i.node=Le(a),i.flat=Le(gs(i)),i}var Be=(e,t={})=>new Ps(e,t),Ms=Be({},{name:"root",standard:!1}),Ze=Ms.type,Lb=(e,t)=>`Alias \'${e}\' has a shallow resolution cycle: ${[...t,e].join("=>")}`,Bb=e=>`Alias \'${e}\' is already defined`;var No=Be({Function:["node",{object:{class:Function}}],Date:["node",{object:{class:Date}}],Error:["node",{object:{class:Error}}],Map:["node",{object:{class:Map}}],RegExp:["node",{object:{class:RegExp}}],Set:["node",{object:{class:Set}}],WeakMap:["node",{object:{class:WeakMap}}],WeakSet:["node",{object:{class:WeakSet}}],Promise:["node",{object:{class:Promise}}]},{name:"jsObjects",standard:!1}),Gc=No.compile();var Hc={bigint:!0,boolean:!0,null:!0,number:!0,object:!0,string:!0,symbol:!0,undefined:!0},Co=Be({any:["node",Hc],bigint:["node",{bigint:!0}],boolean:["node",{boolean:!0}],false:["node",{boolean:{value:!1}}],never:["node",{}],null:["node",{null:!0}],number:["node",{number:!0}],object:["node",{object:!0}],string:["node",{string:!0}],symbol:["node",{symbol:!0}],true:["node",{boolean:{value:!0}}],unknown:["node",Hc],void:["node",{undefined:!0}],undefined:["node",{undefined:!0}]},{name:"ts",standard:!1}),Lt=Co.compile();var Ub=e=>{let t=e.replace(/[- ]+/g,""),r=0,n,o,i;for(let s=t.length-1;s>=0;s--)n=t.substring(s,s+1),o=parseInt(n,10),i?(o*=2,o>=10?r+=o%10+1:r+=o):r+=o,i=!i;return!!(r%10===0&&t)},zb=/^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11}|6[27][0-9]{14}|^(81[0-9]{14,17}))$/,Jc=Ze([zb,"=>",(e,t)=>Ub(e)||!t.mustBe("a valid credit card number")],{mustBe:"a valid credit card number"});var Wb=/^[./-]$/,Kb=/^([+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([.,]\\d+(?!:))?)?(\\17[0-5]\\d([.,]\\d+)?)?([zZ]|([+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/,Gb=e=>!isNaN(e),Ao=e=>`a ${e}-formatted date`,Hb=(e,t)=>{if(!t?.format){let a=new Date(e);return Gb(a)?a:"a valid date"}if(t.format==="iso8601")return Kb.test(e)?new Date(e):Ao("iso8601");let r=e.split(Wb),n=e[r[0].length],o=n?t.format.split(n):[t.format];if(r.length!==o.length)return Ao(t.format);let i={};for(let a=0;a",(e,t)=>{let r=Hb(e);return typeof r=="string"?t.mustBe(r):r}]);var Jb=Ze([es,"|>",e=>parseFloat(e)],{mustBe:"a well-formed numeric string"}),Vb=Ze([Lt.string,"|>",(e,t)=>{if(!kr(e))return t.mustBe("a well-formed integer string");let r=parseInt(e);return Number.isSafeInteger(r)?r:t.mustBe("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER")}]),Yb=Ze(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$/,{mustBe:"a valid email"}),Zb=Ze(/^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$/,{mustBe:"a valid UUID"}),Qb=Ze(/^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/,{mustBe:"a valid semantic version (see https://semver.org/)"}),Xb=Ze([Lt.string,"|>",e=>JSON.parse(e)],{mustBe:"a JSON-parsable string"}),Ro=Be({alpha:[/^[A-Za-z]*$/,":",{mustBe:"only letters"}],alphanumeric:[/^[A-Za-z\\d]*$/,":",{mustBe:"only letters and digits"}],lowercase:[/^[a-z]*$/,":",{mustBe:"only lowercase letters"}],uppercase:[/^[A-Z]*$/,":",{mustBe:"only uppercase letters"}],creditCard:Jc,email:Yb,uuid:Zb,parsedNumber:Jb,parsedInteger:Vb,parsedDate:Vc,semver:Qb,json:Xb,integer:["node",{number:{divisor:1}}]},{name:"validation",standard:!1}),Yc=Ro.compile();var Fo=Be({},{name:"standard",includes:[Lt,Gc,Yc],standard:!1}),ev=Fo.compile(),ht={root:Ms,tsKeywords:Co,jsObjects:No,validation:Ro,ark:Fo};var tv=Fo.type;var rv=ht.ark.intersection,nv=ht.ark.union,ov=ht.ark.arrayOf,iv=ht.ark.keyOf,sv=ht.ark.instanceOf,av=ht.ark.valueOf,uv=ht.ark.narrow,cv=ht.ark.morph;var{DataRequest:Zc,DataResponse:R1}=Be({DataRequest:{id:"number",method:"string",params:"any[]"},DataResponse:{id:"number","eventName?":"string",payload:"any",error:"any"}}).compile(),Qc="__METHODS__",Xc="__EVAL__";var lv=typeof parent<"u"&&typeof window<"u"&&window!==parent?parent.postMessage:postMessage,Yr=class{methods;constructor(t){if(!(typeof self<"u"&&typeof postMessage=="function"&&typeof addEventListener=="function"))throw new Error("Script must be executed as a worker");this.methods={...t,[Qc]:()=>Object.keys(t),[Xc]:(r,...n)=>new Function(`return (${r})`)()(...n)},addEventListener("message",r=>this.onMessage(r.data)),this.send("ready")}send(t,r){lv(t,r)}async onMessage(t){let{data:r,problems:n}=Zc(t);if(n)return this.send({id:-1,payload:null,error:n.toString()});try{let o=this.methods[r.method];if(!o)throw new Error(\'Unknown method "\'+r.method+\'"\');let i=await o.apply(o,r.params);this.send({id:r.id,payload:i,error:null})}catch(o){console.error(o),this.send({id:r.id,payload:null,error:fv(o)})}}emit(t,r){this.send({eventName:t,payload:r,id:-1,error:null})}};function fv(e){return Object.getOwnPropertyNames(e).reduce((t,r)=>Object.defineProperty(t,r,{value:e[r],enumerable:!0}),{})}var el=e=>`obsidian-zotero:${e}`;var Ls=({key:e,groupID:t,parentItem:r},n=!1)=>{let o=[e];return!n&&r&&o.push(`a${r}`),typeof t=="number"&&o.push(`g${t}`),o.join("")},tl=(e,t,r=!0)=>(n,...o)=>{let i="";for(let s=0;s0&&(i+=e(o[s-1])),i+=(r?n.raw:n)[s];return t(i)},Bs=(e=!0,t)=>tl(r=>r,r=>new RegExp(e?"^"+r+"$":r,t),!0),qs=String.raw`[23456789ABCDEFGHIJKLMNPQRSTUVWXYZ]{8}`,js=String.raw`\\d+`,rl=e=>{let t={annotKey:qs,parentKey:qs,groupID:js,page:js};if(e)for(let r in t)t[r]=`(${t[r]})`;return tl(r=>t[r],r=>r)`${"annotKey"}a${"parentKey"}(?:g${"groupID"})?(?:p${"page"})?`},k1=Bs()`${qs}(?:g${js})?`,M1=Bs()`${rl(!0)}`,q1=Bs()`(?:${rl(!1)}n?)+`;var mv=/^[0-9]{4}\\-(0[0-9]|10|11|12)\\-(0[0-9]|[1-2][0-9]|30|31) /;var dv=/^\\-?[0-9]{4}\\-(0[1-9]|10|11|12)\\-(0[1-9]|[1-2][0-9]|30|31) ([0-1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9])$/,hv=/^\\-?[0-9]{4}\\-(0[1-9]|10|11|12)\\-(0[1-9]|[1-2][0-9]|30|31) ([0-1][0-9]|[2][0-3]):([0-5][0-9])$/,gv=e=>yv(e)||bv(e)?!1:mv.test(e),nl=e=>e?gv(e)?e.substring(0,10):"0000-00-00":"";var yv=e=>dv.test(e),bv=e=>hv.test(e);var ol=(e,t,{getLogger:r,configure:n})=>{let o=el(e);return n({appenders:{out:{type:"console"}},categories:{default:{appenders:["out"],level:t},[o]:{appenders:["out"],level:t}}}),r(o)};var il=()=>(...e)=>e;function sl(e,t){let r=Object.keys(t).map(n=>vv(e,n,t[n]));return r.length===1?r[0]:function(){r.forEach(n=>n())}}function vv(e,t,r){let n=e[t],o=e.hasOwnProperty(t),i=r(n);return n&&Object.setPrototypeOf(i,n),Object.setPrototypeOf(s,i),e[t]=s,a;function s(...u){return i===n&&e[t]===s&&a(),i.apply(this,u)}function a(){e[t]===s&&(o?e[t]=n:delete e[t]),i!==n&&(i=n,Object.setPrototypeOf(s,n||Function))}}var al=e=>{let t=r=>async(...n)=>{try{return await r(...n)}catch(o){throw console.error(o),o}};return sl(e,Object.fromEntries(Object.keys(e).map(r=>[r,t]))),e};var ul;(function(e){e[e.highlight=1]="highlight",e[e.note=2]="note",e[e.image=3]="image",e[e.ink=4]="ink",e[e.underline=5]="underline",e[e.text=6]="text"})(ul||(ul={}));var cl;(function(e){e[e.manual=0]="manual",e[e.auto=1]="auto"})(cl||(cl={}));var ll;(function(e){e[e.importedFile=0]="importedFile",e[e.importedUrl=1]="importedUrl",e[e.linkedFile=2]="linkedFile",e[e.linkedUrl=3]="linkedUrl",e[e.embeddedImage=4]="embeddedImage"})(ll||(ll={}));var Us;(function(e){e[e.fullName=0]="fullName",e[e.nameOnly=1]="nameOnly"})(Us||(Us={}));var zs=["attachment","note","annotation"];var $o=zs.map(e=>`\'${e}\'`).join(",");var ve=(e="itemID")=>`--sql\n ${e} IS NOT NULL\n ${e==="itemID"?`AND ${e} NOT IN (SELECT itemID FROM deletedItems)`:""}\n`,Ue=(e,t="$itemId")=>typeof e=="boolean"?"":`AND ${e} = ${t}`;var Z=class{statement;constructor(t){this.statement=t.prepare(this.sql())}get database(){return this.statement.database}get(t){return this.statement.get(t)}all(t){return t===void 0?this.statement.all():this.statement.all(t)}},dr=class extends Z{query(t){return this.all(t)}},Po=class extends Z{query(){return this.all(void 0)}},hr=class extends Z{query(t){return this.all(t).map(r=>this.parse(r,t))}};var Ws=(e,t)=>{for(let r=0;re?.split("|").map(t=>parseInt(t,10))??[];var ko=`--sql\n items.itemID,\n items.key,\n items.clientDateModified,\n items.dateAdded,\n items.dateModified,\n annots.type,\n annots.authorName,\n annots.text,\n annots.comment,\n annots.color,\n annots.pageLabel,\n annots.sortIndex,\n annots.position,\n annots.isExternal\n`,Mo=`--sql\n itemAnnotations annots\n JOIN items USING (itemID)\n`,qo=(e,t,r)=>Object.assign(e,{sortIndex:Ks(e.sortIndex),position:JSON.parse(e.position),libraryID:t,groupID:r,itemType:"annotation"});var wv=`--sql\nSELECT\n ${ko},\n annots.parentItemID,\n parentItems.key as parentItem\nFROM\n ${Mo}\n JOIN items as parentItems ON annots.parentItemID = parentItems.itemID\nWHERE\n items.key = $annotKey\n AND items.libraryID = $libId\n AND ${ve("items.itemID")}\n`,Zr=class extends Z{trxCache={};sql(){return wv}parse(t,r){return qo(t,r.libId,r.groupID)}query(t){let{annotKeys:r,libId:n}=t,o=s=>s.reduce((a,u)=>{let m=this.get({annotKey:u,libId:n});return m&&(a[u]=this.parse(m,t)),a},{});return(this.trxCache[n]??=this.database.transaction(o))(r)}};var xv=`--sql\nSELECT\n ${ko}\nFROM\n ${Mo}\nWHERE\n parentItemID = $attachmentId\n AND items.libraryID = $libId\n AND ${ve()}\n`,Qr=class extends hr{sql(){return xv}getKeyStatement=this.database.prepare("SELECT key FROM items WHERE itemID = $attachmentId AND libraryID = $libId");parse(t,r,n){return Object.assign(qo(t,r.libId,r.groupID),{parentItem:n,parentItemID:r.attachmentId})}query(t){let r=this.getKeyStatement.get(t)?.key;if(r===void 0)throw new Error("Parent item not found");return this.all(t).map(n=>this.parse(n,t,r)).sort((n,o)=>Ws(n.sortIndex,o.sortIndex))}};var jo=`--sql\n items.itemID,\n items.key,\n items.clientDateModified,\n items.dateAdded,\n items.dateModified,\n notes.note,\n notes.title\n`,Lo=`--sql\n itemNotes notes\n JOIN items USING (itemID)\n`,Bo=(e,t,r)=>Object.assign(e,{libraryID:t,groupID:r,itemType:"note"});var Ev=`--sql\nSELECT\n ${jo},\n notes.parentItemID,\n parentItems.key as parentItem\nFROM\n ${Lo}\n JOIN items as parentItems ON notes.parentItemID = parentItems.itemID\nWHERE\n items.key = $noteKey\n AND items.libraryID = $libId\n AND ${ve("items.itemID")}\n`,Xr=class extends Z{trxCache={};sql(){return Ev}parse(t,r){return Bo(t,r.libId,r.groupID)}query(t){let{noteKeys:r,libId:n}=t,o=s=>s.reduce((a,u)=>{let m=this.get({noteKey:u,libId:n});return m&&(a[u]=this.parse(m,t)),a},{});return(this.trxCache[n]??=this.database.transaction(o))(r)}};var Iv=`--sql\nSELECT\n ${jo}\nFROM\n ${Lo}\nWHERE\n parentItemID = $itemID\n AND items.libraryID = $libId\n AND ${ve()}\n`,en=class extends hr{sql(){return Iv}getKeyStatement=this.database.prepare("SELECT key FROM items WHERE itemID = $itemID AND libraryID = $libId");parse(t,r,n){return Object.assign(Bo(t,r.libId,r.groupID),{parentItem:n,parentItemID:r.itemID})}query(t){let r=this.getKeyStatement.get(t)?.key;if(r===void 0)throw new Error("Parent item not found");return this.all(t).map(n=>this.parse(n,t,r))}};var Sv=`--sql\nSELECT\n atchs.itemID,\n atchs.path,\n atchs.contentType,\n atchs.linkMode,\n charsets.charset,\n items.key,\n COUNT(atchs.itemID) as annotCount\nFROM\n itemAttachments atchs\n JOIN items USING (itemID)\n LEFT JOIN charsets USING (charsetID)\n LEFT JOIN itemAnnotations annots ON atchs.itemID = annots.parentItemID\nWHERE\n atchs.parentItemID = $itemId\n AND libraryID = $libId\n AND ${ve("atchs.itemID")}\nGROUP BY atchs.itemID\n`,tn=class extends dr{sql(){return Sv}};var ot="betterbibtex",Bt="bbts";var Ov=`--sql\nSELECT\n citationkey as citekey\nFROM\n ${ot}.citationkey\nWHERE\n itemID = $itemID\n AND (libraryID IS NULL OR libraryID = $libId)\n`,Dv=`--sql\nSELECT\n citekey\nFROM\n ${Bt}.citekeys\nWHERE\n itemID = $itemID\n AND (libraryID IS NULL OR libraryID = $libId)\n`,rn=class extends Z{trxFunc=t=>t.reduce((r,[n,o])=>{let i=this.get({itemID:n,libId:o});return i&&(r[n]=i.citekey),r},{});trx=this.database.transaction(this.trxFunc);sql(){return Ov}query(t){return this.trx(t.items)}},nn=class extends Z{trxFunc=t=>t.reduce((r,[n,o])=>{let i=this.get({itemID:n,libId:o});return i&&(r[n]=i.citekey),r},{});trx=this.database.transaction(this.trxFunc);sql(){return Dv}query(t){return this.trx(t.items)}};var _v=`--sql\nSELECT\n itemID\nFROM\n ${ot}.citationkey\nWHERE\n citationkey = $citekey\n`,Tv=`--sql\nSELECT\n itemID\nFROM\n ${Bt}.citekeys\nWHERE\n citekey = $citekey\n`,on=class extends Z{trxFunc=t=>t.reduce((r,n)=>{let o=this.get({citekey:n});return r[n]=o?.itemID??-1,r},{});trx=this.database.transaction(this.trxFunc);sql(){return _v}query(t){return this.trx(t.citekeys)}},sn=class extends Z{trxFunc=t=>t.reduce((r,n)=>{let o=this.get({citekey:n});return r[n]=o?.itemID??-1,r},{});trx=this.database.transaction(this.trxFunc);sql(){return Tv}query(t){return this.trx(t.citekeys)}};var Uo=e=>`--sql\nSELECT\n itemID,\n creators.firstName,\n creators.lastName,\n creators.fieldMode,\n creatorTypes.creatorType,\n orderIndex\nFROM\n items\n LEFT JOIN itemCreators USING (itemID)\n JOIN creators USING (creatorID)\n JOIN creatorTypes USING (creatorTypeID)\nWHERE\n libraryID = $libId\n ${Ue(e||"itemID")}\n AND ${ve()}\nORDER BY\n itemID,\n orderIndex\n`;var KT=Uo(!0);function fl(e){for(var t={},r=e.length,n=0;nt.map(([r,n])=>[r,this.all({itemId:r,libId:n})]);trx=this.database.transaction(this.trxFunc);sql(){return Nv}query(t){return Ut(this.trx(t))}};var zo=e=>`--sql\nSELECT\n items.itemID,\n fieldsCombined.fieldName,\n itemDataValues.value\nFROM\n items\n JOIN itemData USING (itemID)\n JOIN itemDataValues USING (valueID)\n JOIN fieldsCombined USING (fieldID)\n JOIN itemTypesCombined USING (itemTypeID)\nWHERE\n libraryID = $libId\n ${Ue(e||"items.itemID")}\n AND itemTypesCombined.typeName NOT IN (${$o})\n AND ${ve()}\n`;var FN=zo(!0);var Cv=zo(!1),un=class extends Z{trxFunc=t=>t.map(([r,n])=>[r,this.all({itemId:r,libId:n})]);trx=this.database.transaction(this.trxFunc);sql(){return Cv}query(t){return Ut(this.trx(t))}};var cn=e=>`--sql\nSELECT\n items.libraryID,\n items.itemID,\n items.key,\n items.clientDateModified,\n items.dateAdded,\n items.dateModified,\n itemTypesCombined.typeName as itemType,\n json_group_array(collectionID) filter (where collectionID is not null) as collectionIDs\nFROM \n items\n JOIN itemTypesCombined USING (itemTypeID)\n LEFT JOIN collectionItems USING (itemID)\nWHERE \n libraryID = $libId\n ${e==="full"?Ue(!1):e==="id"?Ue("items.itemID"):Ue("items.key","$key")}\n AND ${ve()}\n AND itemType NOT IN (${$o})\nGROUP BY itemID\n`;var Av=cn("full"),ln=class extends Z{sql(){return Av}query(t){return this.all(t).map(({collectionIDs:n,...o})=>({...o,collectionIDs:JSON.parse(n)}))}};var Rv=cn("id"),Fv=cn("key"),fn=class extends Z{trxFunc=t=>t.reduce((r,[n,o])=>{let i=this.get({itemId:n,libId:o});return i&&(r[n]={...i,collectionIDs:JSON.parse(i.collectionIDs)}),r},{});trx=this.database.transaction(this.trxFunc);sql(){return Rv}query(t){return this.trx(t)}},pn=class extends Z{trxFunc=t=>t.reduce((r,[n,o])=>{let i=this.get({key:n,libId:o});return i&&(r[n]={...i,collectionIDs:JSON.parse(i.collectionIDs)}),r},{});trx=this.database.transaction(this.trxFunc);sql(){return Fv}query(t){return this.trx(t)}};var mn=e=>`--sql\nWITH\n RECURSIVE CollectionPath AS (\n -- Base case: collections without a parent\n SELECT\n collectionID,\n parentCollectionID,\n collectionName AS path\n FROM\n collections\n WHERE\n libraryID = $libId\n ${e==="full"?Ue(!1):e==="id"?Ue("collectionID","$collectionID"):Ue("key","$key")}\n AND ${ve("collectionID")}\n UNION ALL\n -- Recursive case: join with parent collections\n SELECT\n prev.collectionID,\n c.parentCollectionID,\n c.collectionName\n FROM\n collections c\n JOIN CollectionPath prev ON c.collectionID = prev.parentCollectionID\n )\nSELECT\n p.collectionID,\n json_group_array(p.path) path,\n c.key,\n c.collectionName,\n c.libraryID\nFROM\n CollectionPath p\n JOIN collections c USING (collectionID)\nGROUP BY\n collectionID\nORDER BY\n collectionID;\n`;function Gs({collectionID:e,collectionName:t,path:r,...n}){return{...n,id:e,name:t,path:JSON.parse(r)}}var ZN=mn("full");var $v=mn("id"),tC=mn("key"),dn=class extends Z{trxFunc=t=>t.reduce((r,[n,o])=>{let i=this.get({collectionID:n,libId:o});return i&&r.set(n,Gs(i)),r},new Map);trx=this.database.transaction(this.trxFunc);sql(){return $v}query(t){return this.trx(t)}};var Pv=`--sql\nSELECT\n libraries.libraryID,\n groups.groupID,\n CASE\n libraries.type\n WHEN \'user\' THEN \'My Library\'\n WHEN \'group\' THEN groups.name\n ELSE NULL\n END AS name\nFROM\n libraries\n LEFT JOIN groups USING (libraryID)\nWHERE\n libraries.libraryID IS NOT NULL\nORDER BY\n libraryID\n`,hn=class extends Po{sql(){return Pv}};var kv=`--sql\nSELECT\n tagID,\n type,\n name\nFROM\n itemTags\n JOIN items USING (itemID)\n JOIN tags USING (tagID)\nWHERE\n itemID = $itemId\n AND tagID IS NOT NULL\n AND libraryID = $libId\n`,gn=class extends Z{trxFunc=t=>t.map(([r,n])=>[r,this.all({itemId:r,libId:n})]);trx=this.database.transaction(this.trxFunc);sql(){return kv}query(t){return Ut(this.trx(t))}};var Mv=new Set(il()("creators","itemID","itemType","key","libraryID","collections"));var Qh=$r(Js(),1);var $d=$r(Js(),1),xi=$r(Fd(),1),rI="INFO",Pd=ol("db-worker",rI,xi.default),Ma="log4js_loglevel";$d.default.getItem(Ma).then(e=>{typeof e=="string"&&e in xi.levels&&(Pd.level=e,console.debug(`Read from localforage: loglevel ${e}`))});var ae=Pd;var yh=require("fs"),bh=$r(hh(),1);var bt=class extends Error{constructor(){super("Database not set")}},gh=e=>(0,yh.statSync)(e).mtimeMs,Bn=class{database=null;get instance(){return this.database?.instance}get databaseList(){return this.instance?.pragma("database_list")??[]}tableExists(t,r=""){if(!this.database)throw new bt;let n=r||"main",{exist:o}=(this.database.existStatements[n]??=this.database.instance.prepare(`SELECT count(*) AS exist FROM ${r?`${r}.`:""}sqlite_master WHERE type = \'table\' AND name = $tableName`)).get({tableName:t});return!!o}attachDatabase(t,r){if(!this.instance)throw new bt;this.instance.prepare(`ATTACH DATABASE $path AS ${r}`).run({path:t})}detachDatabase(t){if(!this.instance)throw new bt;this.instance.prepare(`DETACH DATABASE ${t}`).run()}isUpToDate(){return this.database?this.database.mtime===gh(this.database.file):null}opened=!1;open(t,r){try{return this.database?.instance&&(ae.debug("Database opened before, closing: ",this.database.instance.name),this.close()),this.database={mtime:gh(t),instance:AI(t,r),file:t,existStatements:{},prepared:new Map},ae.debug("Database opened: ",t),this.opened=!0,!0}catch(n){if(n.code!=="ENOENT")throw console.error("Failed to open database",t),n;return this.opened=!1,!1}}close(){this.opened=!1,this.instance?.close(),this.database=null}prepare(t){if(!this.database)throw new bt;let r=this.database.prepared.get(t);if(r)return r;let n=new t(this.database.instance);return this.database.prepared.set(t,n),n}};function AI(e,t){return new bh.default(`file:${e}?mode=ro&immutable=1`,{nativeBinding:t.nativeBinding,uriPath:!0,verbose:void 0})}function RI(e){return e.tableExists("citationkey",ot)}var Un=class{#e=null;get instance(){return this.status==="READY"?this.#e:null}get zotero(){if(!this.#e)throw new Error("database not ready");return this.#e.zotero}status="NOT_INITIALIZED";get loadStatus(){if(this.#e?.zotero.opened!==!0)return{main:!1,bbtMain:!1,bbtSearch:null};let t=this.#e.zotero.databaseList;return t.some(o=>o.name===ot)?this.#e.bbtAfterMigration?{main:!0,bbtMain:!0,bbtSearch:null}:{main:!0,bbtMain:!0,bbtSearch:t.some(o=>o.name===Bt)}:{main:!0,bbtMain:!1,bbtSearch:null}}get bbtLoadStatus(){let t=this.loadStatus;return t.bbtMain?t.bbtSearch!==!1:!1}getItemIDsFromCitekey(t){if(!this.#e)throw new bt;let r=this.#e.bbtAfterMigration?on:sn;return this.#e.zotero.prepare(r).query({citekeys:t})}getCitekeys(t){if(!this.#e)throw new bt;let r=this.#e.bbtAfterMigration?rn:nn;return this.#e.zotero.prepare(r).query({items:t})}load(t,r){let n={zotero:this.#e?.zotero??new Bn};try{let o=n.zotero.open(t.zotero,r);if(!o)throw new Error(`Failed to open main database, no database found at ${t.zotero}`);let i=FI(t,n.zotero),s=n.zotero.prepare(hn).query().reduce((a,u)=>(a[u.libraryID]=u,a),{});return this.#e={...n,bbtAfterMigration:i.bbtSearch===null,libraries:s},this.status="READY",{main:o,...i}}catch(o){throw this.status="ERROR",o}}groupOf(t){if(!this.#e)throw new Error("Library info not loaded");return this.#e.libraries[t].groupID}get libraries(){if(!this.#e)throw new Error("Library info not loaded");return Object.values(this.#e.libraries)}};function FI(e,t){try{t.attachDatabase(`file:${e.bbtMain}?mode=ro&immutable=1`,ot)}catch(n){let{code:o}=n;return o==="SQLITE_CANTOPEN"?ae.debug(`Unable to open bbt main database, no database found at ${e.bbtMain}`):ae.debug(`Unable to open bbt main database, ${o} @ ${e.bbtMain}`),{bbtMain:!1,bbtSearch:null}}if(RI(t))return{bbtMain:!0,bbtSearch:null};try{t.attachDatabase(`file:${e.bbtSearch}?mode=ro&immutable=1`,ot)}catch(n){let{code:o}=n;return o==="SQLITE_CANTOPEN"?ae.debug(`Unable to open bbt search database, no database found at ${e.bbtSearch}`):ae.debug(`Unable to open bbt search database, ${o} @ ${e.bbtSearch}`),{bbtMain:!0,bbtSearch:!1}}return{bbtMain:!0,bbtSearch:!0}}var xh=$r(wh(),1);var $I=e=>typeof e[0][0]=="string";function Eh(e){return[...new Set(e)]}var zn=class{#e=Ci;async get(t,r){if(t.length===0)return[];if(!r)return await Promise.all(t.map(([i,s])=>this.#t(i,s)));let n=$I(t)?this.#e.readItemByKey(t):this.#e.readItemById(t);return await this.#e.updateIndex(n),Object.values(n)}async#t(t,r){let n=await this.#e.getItemsCache(r);return typeof t=="number"?n.byId.get(t)??null:typeof t=="string"?n.byKey.get(t)??null:((0,xh.assertNever)(t),null)}};function Wn(){this.cache=null,this.matcher=null,this.stemmer=null,this.filter=null}Wn.prototype.add;Wn.prototype.append;Wn.prototype.search;Wn.prototype.update;Wn.prototype.remove;function Tr(e,t){return typeof e<"u"?e:t}function za(e){let t=new Array(e);for(let r=0;r1&&(e=Wa(e,this.stemmer)),n&&e.length>1&&(e=PI(e)),r||r==="")){let o=e.split(r);return this.filter?kI(o,this.filter):o}return e}var Th=/[\\p{Z}\\p{S}\\p{P}\\p{C}]+/u;function Nh(e){let t=H();for(let r=0,n=e.length;r=0;m--){let l=e[m],d=l.length,f=H(),g=!s;for(let w=0;w=0;m--){l=n[m],d=l.length;for(let f=0,g;f0;n--)this.queue[n]=this.queue[n-1];this.queue[0]=e}this.cache[e]=t};Fi.prototype.get=function(e){let t=this.cache[e];if(this.limit&&t){let r=this.queue.indexOf(e);if(r){let n=this.queue[r-1];this.queue[r-1]=this.queue[r],this.queue[r]=n}}return t};Fi.prototype.del=function(e){for(let t=0,r,n;t=this.minlength&&(a||!s[l])){let f=ki(u,o,m),g="";switch(this.tokenize){case"full":if(d>2){for(let w=0;ww;x--)if(x-w>=this.minlength){let S=ki(u,o,m,d,w);g=l.substring(w,x),this.push_index(s,g,S,e,r)}break}case"reverse":if(d>1){for(let w=d-1;w>0;w--)if(g=l[w]+g,g.length>=this.minlength){let x=ki(u,o,m,d,w);this.push_index(s,g,x,e,r)}g=""}case"forward":if(d>1){for(let w=0;w=this.minlength&&this.push_index(s,g,f,e,r);break}default:if(this.boost&&(f=Math.min(f/this.boost(t,l,m)|0,u-1)),this.push_index(s,l,f,e,r),a&&o>1&&m=this.minlength&&!w[l]){w[l]=1;let k=ki(x+(o/2>x?0:1),o,m,N-1,M-1),ee=this.bidirectional&&l>S;this.push_index(i,ee?S:l,k,e,r,ee?l:S)}}}}}this.fastupdate||(this.register[e]=1)}}return this};function ki(e,t,r,n,o){return r&&e>1?t+(n||0)<=e?r+(o||0):(e-1)/(t+(n||0))*(r+(o||0))+1|0:0}_e.prototype.push_index=function(e,t,r,n,o,i){let s=i?this.ctx:this.map;if((!e[t]||i&&!e[t][i])&&(this.optimize&&(s=s[r]),i?(e=e[t]||(e[t]=H()),e[i]=1,s=s[i]||(s[i]=H())):e[t]=1,s=s[t]||(s[t]=[]),this.optimize||(s=s[r]||(s[r]=[])),(!o||!s.includes(n))&&(s[s.length]=n,this.fastupdate))){let a=this.register[n]||(this.register[n]=[]);a[a.length]=s}};_e.prototype.search=function(e,t,r){r||(!t&&Ve(e)?(r=e,e=r.query):Ve(t)&&(r=t));let n=[],o,i,s,a=0;if(r&&(e=r.query||e,t=r.limit,a=r.offset||0,i=r.context,s=!0&&r.suggest),e&&(e=this.encode(""+e),o=e.length,o>1)){let d=H(),f=[];for(let g=0,w=0,x;g=this.minlength&&!d[x]){if(!this.optimize&&!s&&!this.map[x])return n;f[w++]=x,d[x]=1}e=f,o=e.length}if(!o)return n;t||(t=100);let u=this.depth&&o>1&&i!==!1,m=0,l;u?(l=e[0],m=1):o>1&&e.sort(Oh);for(let d,f;m=r)))));d++);if(m){if(o)return Uh(a,r,0);e[e.length]=a;return}}return!t&&a};function Uh(e,t,r){return e.length===1?e=e[0]:e=Sh(e),r||e.length>t?e.slice(r,r+t):e}function Bh(e,t,r,n){if(r){let o=n&&t>r;e=e[o?t:r],e=e&&e[o?r:t]}else e=e[t];return e}_e.prototype.contain=function(e){return!!this.register[e]};_e.prototype.update=function(e,t){return this.remove(e).add(e,t)};_e.prototype.remove=function(e,t){let r=this.register[e];if(r){if(this.fastupdate)for(let n=0,o;n1&&(e.splice(s,1),i++):i++}else{o=Math.min(e.length,r);for(let s=0,a;s"u"&&self.exports,o=this;this.worker=BI(r,n,e.worker),this.resolver=H(),this.worker&&(n?this.worker.on("message",function(i){o.resolver[i.id](i.msg),delete o.resolver[i.id]}):this.worker.onmessage=function(i){i=i.data,o.resolver[i.id](i.msg),delete o.resolver[i.id]},this.worker.postMessage({task:"init",factory:r,options:e}))}var Kh=Hn;Jn("add");Jn("append");Jn("search");Jn("update");Jn("remove");function Jn(e){Hn.prototype[e]=Hn.prototype[e+"Async"]=function(){let t=this,r=[].slice.call(arguments),n=r[r.length-1],o;Kn(n)&&(o=n,r.splice(r.length-1,1));let i=new Promise(function(s){setTimeout(function(){t.resolver[++Wh]=s,t.worker.postMessage({task:e,id:Wh,args:r})})});return o?(i.then(o),this):i}}function BI(factory,is_node_js,worker_path){let worker;try{worker=is_node_js?eval(\'new (require("worker_threads")["Worker"])("../dist/node/node.js")\'):factory?new Worker(URL.createObjectURL(new Blob(["onmessage="+zh.toString()],{type:"text/javascript"}))):new Worker(fe(worker_path)?worker_path:"worker/worker.js",{type:"module"})}catch(e){}return worker}function Te(e){if(!(this instanceof Te))return new Te(e);let t=e.document||e.doc||e,r;this.tree=[],this.field=[],this.marker=[],this.register=H(),this.key=(r=t.key||t.id)&&Li(r,this.marker)||"id",this.fastupdate=Tr(e.fastupdate,!0),!0&&(this.storetree=(r=t.store)&&r!==!0&&[],this.store=r&&H()),!0&&(this.tag=(r=t.tag)&&Li(r,this.marker),this.tagindex=r&&H()),!0&&(this.cache=(r=e.cache)&&new $i(r),e.cache=!1),!0&&(this.worker=e.worker),!0&&(this.async=!1),this.index=UI.call(this,e,t)}var Hh=Te;function UI(e,t){let r=H(),n=t.index||t.field||t;fe(n)&&(n=[n]);for(let o=0,i,s;o=0&&(e=e.substring(0,e.length-2),e&&(t[n]=!0)),e&&(r[n++]=e);return n1?r:r[0]}function Va(e,t){if(fe(t))e=e[t];else for(let r=0;e&&r1?r.splice(n,1):delete this.tagindex[t])}!0&&this.store&&delete this.store[e],delete this.register[e]}return this};Te.prototype.search=function(e,t,r,n){r||(!t&&Ve(e)?(r=e,e=""):Ve(t)&&(r=t,t=0));let o=[],i=[],s,a,u,m,l,d,f=0;if(r)if(rr(r))u=r,r=null;else{if(e=r.query||e,s=r.pluck,u=s||r.index||r.field,m=!0&&r.tag,a=!0&&this.store&&r.enrich,l=r.bool==="and",t=r.limit||t||100,d=r.offset||0,m&&(fe(m)&&(m=[m]),!e)){for(let w=0,x;w1||m&&m.length>1);let g=!n&&(this.worker||this.async)&&[];for(let w=0,x,S,N;w0)return(i>t||r)&&(o=o.slice(r,r+t)),n&&(o=Jh.call(this,o)),{tag:e,result:o}}function Jh(e){let t=new Array(e.length);for(let r=0,n;r{e=n,t=o});return{resolve:e,reject:t,promise:r}}var Vn=class{#e=Ar;readCitekeys(t){if(ae.debug("Reading Better BibTex database"),!this.#e.bbtLoadStatus)return ae.info("Better BibTex database not enabled, skipping..."),[];let r=this.#e.getCitekeys(t);return ae.info("Finished reading Better BibTex"),r}toItemObjects(t,r){let n=this.readCitekeys(r),o=this.#e.zotero.prepare(un).query(r),i=this.#e.zotero.prepare(an).query(r),s=Eh(r.flatMap(([u])=>t[u]?.collectionIDs?.map(m=>`${m}-${t[u].libraryID}`)??[])).filter(u=>u!==null),a=this.#e.zotero.prepare(dn).query(s.map(u=>u.split("-").map(m=>+m)));return r.reduce((u,[m,l])=>{if(!m)return u;let d=n[m];d||ae.warn(`Citekey: No item found for itemID ${m}`,d);let f=o[m].reduce((N,M)=>{let{value:k}=M;return M.fieldName==="date"&&(k=nl(k).split("-")[0]),(N[M.fieldName]??=[]).push(k),N},{}),{collectionIDs:g,...w}=t[m],x=g.map(N=>a.get(N)).filter(N=>N!==void 0),S={...w,libraryID:l,groupID:this.#e.groupOf(l),itemID:m,creators:i[m],collections:x,citekey:n[m],...f,dateAccessed:HI(f)?JI(f.accessDate[0]):null};return u[m]=S,u},{})}};function HI(e){let t=e;return Array.isArray(t.accessDate)&&t.accessDate.length===1&&typeof t.accessDate[0]=="string"}function JI(e){let t=e.replace(" ","T")+"Z";try{return new Date(t)}catch{return null}}var Yn=class{#e=Ar;#t=new Vn;#r=new Hh({worker:!0,charset:Ch,language:Vh,document:{id:"itemID",index:["title","creators[]:firstName","creators[]:lastName","date"]},tokenize:"full",suggest:!0});#o=new Map;#n=new Map;getStatus(t){if(!this.#n.has(t)){let n=Yh();return this.#n.set(t,n),n.promise}let r=this.#n.get(t);return r instanceof Promise||typeof r=="string"?r:r.promise}load(t){let r=this.#n.get(t);if(r instanceof Promise)return r;let n=this.#a(t),o=this.#u(t,n).then(()=>{this.#n.set(t,"READY")}).catch(i=>{throw this.#n.set(t,"ERROR"),i});return typeof r=="string"||!r||o.then(r.resolve,r.reject),this.#n.set(t,o),o}async searchItems(t,r){return await this.#i(t),await this.#r.searchAsync(r)}async getCachedItems(t,r){await this.#i(r);let n=this.#o.get(r);if(!n)throw new Error("Cache not initialized");let o=[...n.byId.values()].sort((i,s)=>s.dateAccessed&&i.dateAccessed?s.dateAccessed.getTime()-i.dateAccessed.getTime():0);return t<=0?o:o.slice(0,t)}async getItemsCache(t){await this.#i(t);let r=this.#o.get(t);if(!r)throw new Error("Cache not initialized");return r}async#i(t){let r=this.getStatus(t);if(r==="ERROR")throw new Error("Indexing failed");r instanceof Promise&&await r}#a(t){ae.debug("Reading main Zotero database for index");let{zotero:r}=this.#e,n=this.#s(r.prepare(ln).query({libId:t}));return ae.info("Finished reading main Zotero database for index"),n}readItemByKey(t){let{zotero:r}=this.#e,n=r.prepare(pn).query(t);return this.#s(t.map(([i])=>n[i]))}readItemById(t){let{zotero:r}=this.#e,n=r.prepare(fn).query(t);return this.#s(t.map(([i])=>n[i]))}#s(t){let r=t.reduce((o,i)=>(o[i.itemID]=i,o),{}),n=t.map(o=>[o.itemID,o.libraryID]);return this.#t.toItemObjects(r,n)}async#u(t,r){ae.trace("Start flexsearch indexing");let n=Object.values(r),o=this.#o.get(t);if(this.#o.set(t,{byId:new Map(n.map(i=>[i.itemID,i])),byKey:new Map(n.map(i=>[Ls(i,!0),i]))}),!o)await Promise.all([...n.map(i=>this.#r.addAsync(i.itemID,i))]);else{let i=new Set(n.map(a=>a.itemID)),s=[...o.byId.keys()].filter(a=>!i.has(a));o.byId.clear(),o.byKey.clear(),await Promise.all([...n.map(a=>this.#r.addAsync(a.itemID,a)),...s.map(a=>this.#r.removeAsync(a))])}ae.info("Library citation index done: "+t)}async updateIndex(t){await Promise.all(Object.values(t).map(async r=>{let n=this.#o.get(r.libraryID);if(!n)throw new Error("Cannot update index for library not initialized");n.byId.set(r.itemID,r),n.byKey.set(Ls(r,!0),r),await this.#r.updateAsync(r.itemID,r)}))}};var Ar=new Un,Ci=new Yn,Zh=new zn;function nr(e,t){return(...r)=>{ae.debug(`Reading Zotero database for ${typeof t=="string"?t:t(null,...r)}`);let n=e.apply(null,r);return Promise.resolve(n).then(o=>ae.debug(`Finished reading Zotero database for ${typeof t=="string"?t:t(o,...r)}`)),n}}var Qa=class{#e=Ar;#t=Ci;#r=Zh;api={getLibs:()=>this.#e.libraries,initIndex:async t=>{await this.#t.load(t)},openDb:(...t)=>this.#e.load(...t),search:async(t,r)=>await this.#t.searchItems(t,r),getItems:async(t,r)=>await this.#r.get(t,r),getTags:nr(t=>this.#e.zotero.prepare(gn).query(t),"tags"),getItemIDsFromCitekey:t=>this.#e.getItemIDsFromCitekey(t),getItemsFromCache:(t,r)=>this.#t.getCachedItems(t,r),getAttachments:nr((t,r)=>this.#e.zotero.prepare(tn).query({itemId:t,libId:r}),(t,r)=>`attachments of item ${r}`+(t?`, count: ${t.length}`:"")),getAnnotations:nr((t,r)=>this.#e.zotero.prepare(Qr).query({attachmentId:t,libId:r,groupID:this.#e.groupOf(r)}),(t,r)=>`annotations of attachment ${r}`+(t?`, count: ${t.length}`:"")),getAnnotFromKey:nr((t,r)=>this.#e.zotero.prepare(Zr).query({annotKeys:t,libId:r,groupID:this.#e.groupOf(r)}),(t,r)=>`annotations with keys: ${r.join(",")}`+(t?`, count: ${t.length}`:"")),getNotes:nr((t,r)=>this.#e.zotero.prepare(en).query({itemID:t,libId:r,groupID:this.#e.groupOf(r)}),(t,r)=>`notes of literature ${r}`+(t?`, count: ${t.length}`:"")),getNoteFromKey:nr((t,r)=>this.#e.zotero.prepare(Xr).query({noteKeys:t,libId:r,groupID:this.#e.groupOf(r)}),(t,r)=>`notes with keys: ${r.join(",")}`+(t?`, count: ${t.length}`:"")),isUpToDate:()=>this.#e.zotero.isUpToDate(),getLoadStatus:()=>{let t=this.#e.loadStatus;return{main:t.main,bbt:this.#e.bbtLoadStatus,bbtVersion:t.bbtSearch===null?"v1":"v0"}},raw:(t,r,n)=>{let{zotero:{instance:o}}=this.#e;if(!o)throw new Error("failed to query raw: no main database opened");return o.prepare(r)[t](...n)},setLoglevel:t=>{ae.level=t,Qh.default.setItem(Ma,t)}};toAPI(){return al(this.api)}},VI=new Qa;new Yr(VI.toAPI());\n/*! Bundled license information:\n\nlocalforage/dist/localforage.js:\n (*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n *)\n\nflatted/cjs/index.js:\n (*! (c) 2020 Andrea Giammarchi *)\n*/\n';var wh=class extends bi{initWebWorker(){return E1(r_,{name:"zotlit database worker"})}},sl=class extends vi{workerCtor(){return new wh}};var Rt=class extends ue{settings=this.use(de);app=this.use(Cn.App);plugin=this.use(be);server=this.use(Ur);get zoteroDataDir(){return this.settings.current?.zoteroDataDir}onload(){W.debug("loading DatabaseWorker"),this.settings.once(async()=>{let t=(0,Cn.debounce)(()=>this.refresh({task:"dbConn"}),500,!0);this.registerEvent(this.app.vault.on("zotero:db-updated",()=>t()));let r=process.hrtime();await this.initialize(),W.debug(`ZoteroDB Initialization complete. Took ${(0,n_.default)(process.hrtime(r))}`);let n=this.genAutoRefresh(this.plugin);this.registerEvent(this.server.on("bg:notify",async(o,i)=>{i.event==="regular-item/update"&&n(i)})),this.plugin.addCommand({id:"refresh-zotero-data",name:"Refresh Zotero data",callback:async()=>{await this.refresh({task:"full"})}}),this.plugin.addCommand({id:"refresh-zotero-search-index",name:"Refresh Zotero search index",callback:async()=>{await this.refresh({task:"searchIndex"})}})}),this.register(qe(Qe(async()=>{this.status===0?await this.initialize():await this.refresh({task:"full"})},()=>this.zoteroDataDir))),this.register(qe(Qe(async()=>{await this.refresh({task:"searchIndex",force:!0}),new Cn.Notice("Zotero search index updated.")},()=>this.settings.libId,!0)))}genAutoRefresh(t){let r=!1,n=null,o=()=>{n&&(W.debug("unregistering db refresh watcher"),n(),n=null)},i=(0,Cn.debounce)(async()=>{if(o(),W.debug("Auto Refreshing Zotero Search Index"),!r){r=!1;try{W.debug("Db not refreshed, waiting before auto refresh");let[s]=Dm(t.app,{timeout:1e4});await s}catch(s){if(s instanceof js){W.warn("no db refreshed event received in 10s, skip refresh search index");return}else{console.error("error while waiting for db refresh during execute",s);return}}}await this.refresh({task:"searchIndex",force:!0}),W.debug("Auto Refreshing Zotero Search Index Success")},5e3,!0);return s=>{if(W.debug(`Request to auto refresh search index: (refreshed ${r})`,s),i(),o(),r)return;W.debug("watching db refresh while waiting for search index auto refresh");let[a,u]=Dm(t.app,{timeout:null});n=u,a.then(()=>{W.debug("db refresh while requesting auto refresh search index"),r=!0,n=null}).catch(l=>{l instanceof Ls||console.error("error while waiting for db refresh during request",l)})}}async onunload(){await this.#e.terminate(),this.#t=0,this.#o=null}#e=new sl({minWorkers:1,maxWorkers:1});get api(){return this.#e.proxy}#t=0;get status(){return this.#t}#r=null;async#n(t){let r=this.settings.libId;return!t&&this.#r===r?(W.debug(`Skipping search index init, lib ${r} already indexed`),!1):(await this.api.initIndex(r),this.#r=r,W.debug(`Search index init complete for lib ${r}`),!0)}async#i(){let[t,r]=this.settings.dbConnParams,{main:n,bbtMain:o,bbtSearch:i}=await this.api.openDb(t,r);if((!o||i===!1)&&W.debug("Failed to open Better BibTeX database, skipping..."),!n)throw new Error("Failed to init ZoteroDB")}async initialize(){if(this.#t!==0)throw new Error("Calling init on already initialized db, use refresh instead");await this.#i(),this.app.vault.trigger("zotero:db-ready"),await this.#n(!0),this.app.metadataCache.trigger("zotero:search-ready"),W.info("ZoteroDB Initialization complete."),this.#t=2}#s=null;#o=null;refresh(t){if(this.#t===0)return Promise.reject(new Error("Calling refresh on uninitialized database"));if(this.#t===2){this.#t=1;let r=(async()=>{t.task==="dbConn"?await this.#a():t.task==="searchIndex"?await this.#u(t.force):t.task==="full"?await this.#c():(0,Eh.assertNever)(t),this.#t=2;let n=this.#o;n&&(this.#o=null,await this.refresh(n))})();return this.#s=r}else{if(this.#t===1)return this.#s?(this.#o=this.#l(t),this.#s):Promise.reject(new Error("Other task in pending state"));(0,Eh.assertNever)(this.#t)}}async#a(){await this.#i(),this.app.vault.trigger("zotero:db-refresh")}async#u(t=!1){await this.#n(t)&&this.app.metadataCache.trigger("zotero:search-refresh")}async#c(){await this.#a(),await this.#u(!0),new Cn.Notice("ZoteroDB Refresh complete.")}#l(t){if(!this.#o)return t;let r=this.#o;return r.task==="full"?r:r.task===t.task?r.task==="searchIndex"?{...r,force:r.force||t.force}:r:{task:"full"}}};le([fe],Rt.prototype,"zoteroDataDir",1);var o_="INFO",i_="log4js_loglevel",Cz=()=>{let e=localStorage.getItem(i_);return typeof e=="string"&&e in al.levels?(console.debug(`Read from localstorage: loglevel ${e}`),e):o_},Sh=Xv("main",Cz(),al.default),W=Sh,it=(e,t,...r)=>{if(!t){Sh.error(e,...r);return}Sh.error(e,t instanceof Error?t.message:String(t),...r),console.error(t)},h1={logLevel:o_},na=class extends ue{settings=this.use(de);get level(){return this.settings.current?.logLevel}async applyLogLevel(){localStorage.setItem(i_,this.level),await this.use(Rt).api.setLoglevel(this.level)}onload(){this.register(qe(Qe(()=>this.applyLogLevel(),()=>this.level)))}};le([fe],na.prototype,"level",1);var qC=require("fs"),Jr=require("obsidian");S();var ve={},Ii=Symbol(),uC=e=>!!e[Ii],iC=e=>!e[Ii].c,ca=e=>{var t;let{b:r,c:n}=e[Ii];n&&(n(),(t=Kz.get(r))==null||t())},gl=(e,t)=>{let r=e[Ii].o,n=t[Ii].o;return r===n||e===n||uC(r)&&gl(r,t)},sC=(e,t)=>{let r={b:e,o:t,c:null},n=new Promise(o=>{r.c=()=>{r.c=null,o()},t.finally(r.c)});return n[Ii]=r,n},Kz=new WeakMap;var hl=e=>"init"in e,jh="r",Lh="w",la="c",qh="s",aC="h",Vz="n",Gz="l",Jz="a",Zz="m",Yz=e=>{let t=new WeakMap,r=new WeakMap,n=new Map,o,i;if((ve.env&&ve.env.MODE)!=="production"&&(o=new Set,i=new Set),e)for(let[E,x]of e){let O={v:x,r:0,y:!0,d:new Map};(ve.env&&ve.env.MODE)!=="production"&&(Object.freeze(O),hl(E)||console.warn("Found initial value for derived atom which can cause unexpected behavior",E)),t.set(E,O)}let s=new WeakMap,a=(E,x,O)=>{let A=s.get(x);A||(A=new Map,s.set(x,A)),O.then(()=>{A.get(E)===O&&(A.delete(E),A.size||s.delete(x))}),A.set(E,O)},u=E=>{let x=new Set,O=s.get(E);return O&&(s.delete(E),O.forEach((A,k)=>{ca(A),x.add(k)})),x},l=new WeakMap,c=E=>{let x=l.get(E);return x||(x=new Map,l.set(E,x)),x},f=(E,x)=>{if(E){let O=c(E),A=O.get(x);return A||(A=f(E.p,x),A&&"p"in A&&iC(A.p)&&(A=void 0),A&&O.set(x,A)),A}return t.get(x)},p=(E,x,O)=>{if((ve.env&&ve.env.MODE)!=="production"&&Object.freeze(O),E)c(E).set(x,O);else{let A=t.get(x);t.set(x,O),n.has(x)||n.set(x,A)}},d=(E,x=new Map,O)=>{if(!O)return x;let A=new Map,k=!1;return O.forEach(N=>{var z;let te=((z=f(E,N))==null?void 0:z.r)||0;A.set(N,te),x.get(N)!==te&&(k=!0)}),x.size===A.size&&!k?x:A},h=(E,x,O,A,k)=>{let N=f(E,x);if(N){if(k&&(!("p"in N)||!gl(N.p,k)))return N;"p"in N&&ca(N.p)}let z={v:O,r:N?.r||0,y:!0,d:d(E,N?.d,A)},te=!N?.y;return!N||!("v"in N)||!Object.is(N.v,O)?(te=!0,++z.r,z.d.has(x)&&(z.d=new Map(z.d).set(x,z.r))):z.d!==N.d&&(z.d.size!==N.d.size||!Array.from(z.d.keys()).every(vr=>N.d.has(vr)))&&(te=!0,Promise.resolve().then(()=>{D(E)})),N&&!te?N:(p(E,x,z),z)},b=(E,x,O,A,k)=>{let N=f(E,x);if(N){if(k&&(!("p"in N)||!gl(N.p,k)))return N;"p"in N&&ca(N.p)}let z={e:O,r:(N?.r||0)+1,y:!0,d:d(E,N?.d,A)};return p(E,x,z),z},y=(E,x,O,A)=>{let k=f(E,x);if(k&&"p"in k){if(gl(k.p,O))return k.y?k:{...k,y:!0};ca(k.p)}a(E,x,O);let N={p:O,r:(k?.r||0)+1,y:!0,d:d(E,k?.d,A)};return p(E,x,N),N},v=(E,x,O,A)=>{if(O instanceof Promise){let k=sC(O,O.then(N=>{h(E,x,N,A,k)}).catch(N=>{if(N instanceof Promise)return uC(N)?N.then(()=>{T(E,x,!0)}):N;b(E,x,N,A,k)}));return y(E,x,k,A)}return h(E,x,O,A)},w=(E,x)=>{let O=f(E,x);if(O){let A={...O,y:!1};p(E,x,A)}else(ve.env&&ve.env.MODE)!=="production"&&console.warn("[Bug] could not invalidate non existing atom",x)},T=(E,x,O)=>{if(!O){let k=f(E,x);if(k){if(k.y&&"p"in k&&!iC(k.p))return k;if(k.d.forEach((N,z)=>{if(z!==x)if(!r.has(z))T(E,z);else{let te=f(E,z);te&&!te.y&&T(E,z)}}),Array.from(k.d).every(([N,z])=>{let te=f(E,N);return te&&!("p"in te)&&te.r===z}))return k.y?k:{...k,y:!0}}}let A=new Set;try{let k=x.read(N=>{A.add(N);let z=N===x?f(E,N):T(E,N);if(z){if("e"in z)throw z.e;if("p"in z)throw z.p;return z.v}if(hl(N))return N.init;throw new Error("no atom init")});return v(E,x,k,A)}catch(k){if(k instanceof Promise){let N=sC(k,k);return y(E,x,N,A)}return b(E,x,k,A)}},M=(E,x)=>T(x,E),V=(E,x)=>{let O=r.get(x);return O||(O=_(E,x)),O},J=(E,x)=>!x.l.size&&(!x.t.size||x.t.size===1&&x.t.has(E)),G=(E,x)=>{let O=r.get(x);O&&J(x,O)&&I(E,x)},K=(E,x)=>{let O=r.get(x);O?.t.forEach(A=>{A!==x&&(w(E,A),K(E,A))})},P=(E,x,O)=>{let A=!0,k=(te,vr)=>{let sr=T(E,te);if("e"in sr)throw sr.e;if("p"in sr){if(vr?.unstable_promise)return sr.p.then(()=>{let Fu=f(E,te);return Fu&&"p"in Fu&&Fu.p===sr.p?new Promise(wd=>setTimeout(wd)).then(()=>k(te,vr)):k(te,vr)});throw(ve.env&&ve.env.MODE)!=="production"&&console.info("Reading pending atom state in write operation. We throw a promise for now.",te),sr.p}if("v"in sr)return sr.v;throw(ve.env&&ve.env.MODE)!=="production"&&console.warn("[Bug] no value found while reading atom in write operation. This is probably a bug.",te),new Error("no value found")},N=(te,vr)=>{let sr;if(te===x){if(!hl(te))throw new Error("atom not writable");u(te).forEach(Tv=>{Tv!==E&&v(Tv,te,vr)});let wd=f(E,te),lj=v(E,te,vr);wd!==lj&&K(E,te)}else sr=P(E,te,vr);return A||D(E),sr},z=x.write(k,N,O);return A=!1,z},X=(E,x,O)=>{let A=P(O,E,x);return D(O),A},C=E=>!!E.write,_=(E,x,O)=>{let A={t:new Set(O&&[O]),l:new Set};if(r.set(x,A),(ve.env&&ve.env.MODE)!=="production"&&i.add(x),T(void 0,x).d.forEach((N,z)=>{let te=r.get(z);te?te.t.add(x):z!==x&&_(E,z,x)}),C(x)&&x.onMount){let N=te=>X(x,te,E),z=x.onMount(N);E=void 0,z&&(A.u=z)}return A},I=(E,x)=>{var O;let A=(O=r.get(x))==null?void 0:O.u;A&&A(),r.delete(x),(ve.env&&ve.env.MODE)!=="production"&&i.delete(x);let k=f(E,x);k?("p"in k&&ca(k.p),k.d.forEach((N,z)=>{if(z!==x){let te=r.get(z);te&&(te.t.delete(x),J(z,te)&&I(E,z))}})):(ve.env&&ve.env.MODE)!=="production"&&console.warn("[Bug] could not find atom state to unmount",x)},B=(E,x,O,A)=>{let k=new Set(O.d.keys());A?.forEach((N,z)=>{if(k.has(z)){k.delete(z);return}let te=r.get(z);te&&(te.t.delete(x),J(z,te)&&I(E,z))}),k.forEach(N=>{let z=r.get(N);z?z.t.add(x):r.has(x)&&_(E,N,x)})},D=E=>{if(E){c(E).forEach((O,A)=>{let k=t.get(A);if(O!==k){let N=r.get(A);N?.l.forEach(z=>z(E))}});return}for(;n.size;){let x=Array.from(n);n.clear(),x.forEach(([O,A])=>{let k=f(void 0,O);if(k&&k.d!==A?.d&&B(void 0,O,k,A?.d),A&&!A.y&&k?.y)return;let N=r.get(O);N?.l.forEach(z=>z())})}(ve.env&&ve.env.MODE)!=="production"&&o.forEach(x=>x())},re=E=>{c(E).forEach((O,A)=>{let k=t.get(A);(!k||O.r>k.r||O.y!==k.y||O.r===k.r&&O.d!==k.d)&&(t.set(A,O),O.d!==k?.d&&B(E,A,O,k?.d))})},oe=(E,x)=>{x&&re(x),D(void 0)},me=(E,x,O)=>{let k=V(O,E).l;return k.add(x),()=>{k.delete(x),G(O,E)}},ae=(E,x)=>{for(let[O,A]of E)hl(O)&&(v(x,O,A),K(x,O));D(x)};return(ve.env&&ve.env.MODE)!=="production"?{[jh]:M,[Lh]:X,[la]:oe,[qh]:me,[aC]:ae,[Vz]:E=>(o.add(E),()=>{o.delete(E)}),[Gz]:()=>i.values(),[Jz]:E=>t.get(E),[Zz]:E=>r.get(E)}:{[jh]:M,[Lh]:X,[la]:oe,[qh]:me,[aC]:ae}};var cC=(e,t)=>({s:t?t(e).SECRET_INTERNAL_store:Yz(e)}),Mh=new Map,Bh=e=>(Mh.has(e)||Mh.set(e,Le(cC())),Mh.get(e)),lC=({children:e,initialValues:t,scope:r,unstable_createStore:n,unstable_enableVersionedWrite:o})=>{let[i,s]=j({});U(()=>{let l=a.current;l.w&&(l.s[la](null,i),delete i.p,l.v=i)},[i]);let a=F();if(!a.current){let l=cC(t,n);if(o){let c=0;l.w=f=>{s(p=>{let d=c?p:{p};return f(d),d})},l.v=i,l.r=f=>{++c,f(),--c}}a.current=l}let u=Bh(r);return H(u.Provider,{value:a.current},e)},Xz=0;function Ft(e,t){let r=`atom${++Xz}`,n={toString:()=>r};return typeof e=="function"?n.read=e:(n.init=e,n.read=o=>o(n),n.write=(o,i,s)=>i(n,typeof s=="function"?s(o(n)):s)),t&&(n.write=t),n}function lt(e,t){let r=Bh(t),n=Q(r),{s:o,v:i}=n,s=p=>{let d=o[jh](e,p);if((ve.env&&ve.env.MODE)!=="production"&&!d.y)throw new Error("should not be invalidated");if("e"in d)throw d.e;if("p"in d)throw d.p;if("v"in d)return d.v;throw new Error("no atom value")},[[a,u,l],c]=Nr((p,d)=>{let h=s(d);return Object.is(p[1],h)&&p[2]===e?p:[d,h,e]},i,p=>{let d=s(p);return[p,d,e]}),f=u;return l!==e&&(c(a),f=s(a)),U(()=>{let{v:p}=n;p&&o[la](e,p);let d=o[qh](e,c,p);return c(p),d},[o,e,n]),U(()=>{o[la](e,a)}),go(f),f}function zh(e,t){let r=Bh(t),{s:n,w:o}=Q(r);return Y(s=>{if((ve.env&&ve.env.MODE)!=="production"&&!("write"in e))throw new Error("not writable atom");let a=u=>n[Lh](e,s,u);return o?o(a):a()},[n,o,e])}var jC=require("obsidian");S();var fC=()=>{let e=[];return{get:()=>e,set:(n,o)=>{e.push([n,o])}}};var Dr=Ft(null),Uh=Ft(e=>{let{arch:t,platform:r,modules:n}=e(Dr).platform;return`${r}-${t}-${n}.node.gz`}),fa=Ft(e=>`https://github.com/aidenlx/better-sqlite3/releases/download/${e(Dr).binaryVersion}/${e(Uh)}`),Bfe=Ft(e=>e(fa).replace("github.com","download.fastgit.org")),yl=Ft(e=>ai(e(Dr).manifest)),pC=Ft(e=>e(Dr).mode);var $C=ge(si(),1);S();var dC=function(e){return function(t,r){var n=F(!1);e(function(){return function(){n.current=!1}},[]),e(function(){if(!n.current)n.current=!0;else return t()},r)}};function On(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),o,i=[],s;try{for(;(t===void 0||t-- >0)&&!(o=n.next()).done;)i.push(o.value)}catch(a){s={error:a}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(s)throw s.error}}return i}S();var pa=function(e){return typeof e=="function"};var mC=function(e){return typeof e>"u"};var Qz=!1,hC=Qz;function e9(e){hC&&(pa(e)||console.error("useMemoizedFn expected parameter is a function, got ".concat(typeof e)));var t=F(e);t.current=ne(function(){return e},[e]);var r=F();return r.current||(r.current=function(){for(var n=[],o=0;o{let t=F(null);return[Y(n=>{t.current&&t.current.empty(),n&&(0,xC.setIcon)(n,e),t.current=n},[e])]};wi();wi();var n9=0;function m(e,t,r,n,o){var i,s,a={};for(s in t)s=="ref"?i=t[s]:a[s]=t[s];var u={type:e,props:a,key:r,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:--n9,__source:o,__self:n};if(typeof e=="function"&&(i=e.defaultProps))for(s in i)a[s]===void 0&&(a[s]=i[s]);return q.vnode&&q.vnode(u),u}var da=({name:e,desc:t,button:r,onClick:n,icon:o,className:i,...s})=>m("div",{className:_i("setting-item",i),...s,children:[o&&m("div",{className:"setting-icon",children:o}),m("div",{className:"setting-item-info",children:[m("div",{className:"setting-item-name",children:e}),m("div",{className:"setting-item-description",children:t})]}),m("div",{className:"setting-item-control",children:r&&m("button",{className:"mod-cta",onClick:n,children:r})})]});S();var o9=()=>m("svg",{className:"icon-blank svg-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",height:"32",width:"32"}),i9=()=>m("svg",{className:"icon-spin svg-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",height:"32",width:"32",children:[m("path",{opacity:".25",d:"M16 0 A16 16 0 0 0 16 32 A16 16 0 0 0 16 0 M16 4 A12 12 0 0 1 16 28 A12 12 0 0 1 16 4"}),m("path",{d:"M16 0 A16 16 0 0 1 32 16 L28 16 A12 12 0 0 0 16 4z",children:m("animateTransform",{attributeName:"transform",type:"rotate",from:"0 16 16",to:"360 16 16",dur:"0.8s",repeatCount:"indefinite"})})]}),wC=({color:e="var(--icon-color, black)",delay:t=0,height:r=16,width:n=16,style:o,...i})=>{let[s,a]=j(t>0);return U(()=>{let u=-1;return s&&(u=window.setTimeout(()=>{a(!1)},t)),()=>{window.clearTimeout(u)}},[]),m("div",{style:{...o,fill:e,height:Number(r)||r,width:Number(n)||n},...i,children:s?m(o9,{}):m(i9,{})})};var SC=require("fs"),IC=require("fs/promises"),_C=require("stream"),Gh=require("stream/promises"),CC=require("zlib"),f9=require("@electron/remote");var bl=class extends Error{},Kh=class extends bl{},Vh=class extends bl{},s9=(e,t=",")=>e.join(t),a9={accept:"*",multiple:!1,strict:!1},EC=e=>{let{accept:t,multiple:r,strict:n}={...a9,...e},o=l9({multiple:r,accept:Array.isArray(t)?s9(t):t});return new Promise(i=>{o.onchange=()=>{i(u9(o.files,r,n)),o.remove()},o.click()})},u9=(e,t,r)=>new Promise((n,o)=>{if(!e)return o(new Kh);let i=c9(e,t,r);if(!i)return o(new Vh);n(i)}),c9=(e,t,r)=>!t&&r?e.length===1?e[0]:null:e.length?e:null,l9=({accept:e,multiple:t})=>{let r=document.createElement("input");return r.type="file",r.multiple=t,r.accept=e,r};var TC=require("obsidian"),vl=async(e,t,r)=>{let n=_C.Readable.from(Buffer.from(e)),o=(0,SC.createWriteStream)(t);try{r?await(0,Gh.pipeline)(n,o):await(0,Gh.pipeline)(n,(0,CC.createGunzip)(),o)}catch(i){throw o.destroy(),await(0,IC.rm)(t,{force:!0}),i}},OC=async()=>{let e=await EC({multiple:!1,accept:[".gz",".node"],strict:!0});return e?{decompressed:!e.name.endsWith(".gz"),arrayBuffer:await e.arrayBuffer()}:null},AC=async e=>(await fetch(e,{method:"HEAD"})).status,kC=async e=>(await(0,TC.requestUrl)({url:e})).arrayBuffer;var NC=(i=>(i[i.Idle=0]="Idle",i[i.Downloading=1]="Downloading",i[i.Importing=2]="Importing",i[i.Success=3]="Success",i[i.Failed=4]="Failed",i))(NC||{}),Ci=Ft(0),p9=Ft(e=>e(Ci)===4),RC=Ft(null),d9=Ft(e=>{switch(e(Ci)){case 0:return null;case 1:return"Downloading...";case 2:return"Importing...";case 3:return"Module successfully installed";case 4:return`Module install failed: ${e(RC)}`;default:break}}),m9=Ft(null,(e,t,[r,n])=>{t(Ci,4);let o="Failed to install module when "+NC[r];it(o,n),t(RC,o+": "+(n instanceof Error?n.message:`${n}`))}),h9=()=>{let e=zh(Ci),t=zh(m9),r=lt(fa),n=lt(yl);return $t(async()=>{if(!n){t([0,new Error("Cannot find binary version")]);return}e(1);let o;try{if(await AC(r)===404)throw new Error(`Requested module not available (${r}), please open an issue on GitHub`);o=await kC(r)}catch(i){t([1,i]);return}e(2);try{await vl(o,n,!1)}catch(i){t([2,i]);return}e(3)})},DC=()=>{let e=lt(Ci),t=lt(d9),r=lt(Dr),n=h9();return m("div",{className:"zt-auto-install",children:[m(da,{name:"Auto Install",desc:"Recommended",button:e===0?"Install":void 0,onClick:n}),e!==0&&m(da,{className:_i("zt-auto-install-status",{"mod-warning":e===4,"mod-success":e===3}),icon:m(y9,{}),name:t,button:e===3?"Reload Plugin":void 0,onClick:()=>r.reloadPlugin()})]})},g9=()=>{let e=lt(p9),[t]=St(e?"slash":"check");return m("div",{className:"zt-install-done-icon",style:{display:"contents"},ref:t})},y9=()=>{switch(lt(Ci)){case 0:return null;case 1:case 2:return m(wC,{className:"zt-install-spin-icon",style:{display:"contents"}});case 3:case 4:return m(g9,{})}};var PC=require("obsidian");S();var b9=async e=>{try{let t=await OC();return t?(await vl(t.arrayBuffer,e,t.decompressed),!0):(W.info("No file selected, skip import module"),!1)}catch(t){return new PC.Notice(`Failed to import module from ${e}: ${t}`),it("import module "+e,t),!1}},v9=()=>{let[e,t]=j(!1),r=lt(yl),n=async()=>{if(!r)return;await b9(r)&&t(!0)},o=lt(fa),i=lt(Uh),s=lt(Dr);return m("ol",{children:[m("li",{children:["Download ",m("code",{children:".node.gz"})," file from"," ",m("a",{href:o,children:"GitHub"}),"."]}),m("li",{children:["Select downloaded ",m("code",{children:i})," or uncompressed"," ",m("code",{children:"better-sqlite3.node"}),"to install:",m(x9,{onClick:n,done:e})]}),m("li",{children:["Reload ZotLit:",m(w9,{onClick:()=>s.reloadPlugin()})]})]})},FC=()=>{let[e,t]=j(!1);return m("div",{className:"zt-manual-install",children:[m(da,{name:"Manual Install",desc:"Use this option if you have trouble downloading the module with auto install.",button:`${e?"Hide":"Show"} Guide`,onClick:()=>t(r=>!r)}),m("div",{hidden:!e,children:m(v9,{})})]})},x9=({done:e,onClick:t})=>m("button",{className:_i({"zt-import-done":e}),onClick:t,children:e?"Library file imported":"Select"}),w9=({disabled:e,onClick:t})=>m("button",{disabled:e,onClick:t,children:"Reload Plugin"});var E9=()=>{let e=lt(pC);switch(e){case"install":return m($,{children:["ZotLit requires latest version of ",m("code",{children:"better-sqlite3"})," to be installed. Use one of the method below to install or update it."]});case"reset":return m($,{children:[m("code",{children:"better-sqlite3"})," seems to be broken and failed to load. you can try to use one of the method below to reinstall it."]});default:(0,$C.default)(e)}},MC=()=>m($,{children:[m("style",{children:` +.modal.mod-zt-install-guide .modal-content { + display: flex; + flex-direction: column; +} +.zt-install-methods { + display: flex; + flex-direction: column; + gap: var(--size-4-4); + flex-grow: 1; + padding: var(--size-4-4); + padding-bottom: var(--size-4-2); +} +.zt-install-methods .setting-item { + padding: 0; +} +.zt-auto-install { + display: flex; + flex-direction: column; + gap: var(--size-4-4); +} +.modal.mod-zt-install-guide button:disabled { + background-color: var(--background-modifier-cover); +} +.modal.mod-zt-install-guide button:disabled:hover { + box-shadow: var(--input-shadow); +} +.modal.mod-zt-install-guide button.zt-import-done { + background-color: var(--background-modifier-success); +} +.zt-auto-install-status { + border-top: none; +} +.zt-auto-install-status.mod-success .setting-icon , +.zt-auto-install-status.mod-success .setting-item-name { + color: var(--text-success); +} +.zt-auto-install-status.mod-warning .setting-icon , +.zt-auto-install-status.mod-warning .setting-item-name { + color: var(--text-error); +} +.zt-auto-install-status .setting-icon , +.zt-auto-install-status .setting-item-name { + color: var(--text-muted); +} + `}),m("div",{className:"zt-install-desc",children:m(E9,{})}),m("div",{className:"zt-install-methods",children:[m(DC,{}),m(FC,{})]})]});var ma=class extends jC.Modal{constructor(r,n,o,i,s){super(s);this.manifest=r;this.platform=n;this.binaryVersion=o;this.mode=i;this.app=s;this.titleEl.setText("Setup ZotLit"),this.modalEl.addClass("mod-zt-install-guide")}onOpen(){let r=fC();r.set(Dr,this),R.render(m(lC,{initialValues:r.get(),children:m(MC,{})}),this.contentEl)}onClose(){R.unmountComponentAtNode(this.contentEl)}async reloadPlugin(){await this.app.plugins.disablePlugin(this.manifest.id),this.close(),await this.app.plugins.enablePlugin(this.manifest.id)}};var LC=(e,t,r,n)=>{let o=ZS();if(!o)throw new Error("Not in desktop app");let i=GS(o);if(i<0)new Jr.Notice(`The electron (electron: ${o.electron}, module version: ${o.modules}) in current version of obsidian is not supported by zotlit, please reinstall using latest obsidian installer from official website`);else if(i>0)new Jr.Notice(`The electron (electron: ${o.electron}, module version: ${o.modules}) in current version of obsidian is newer than the one supported by installed zotlit, please update zotlit to the latest version`);else if(!JS(o))new Jr.Notice(`Your device (${o.arch}-${o.platform}) is not supported by zotlit`);else{let s=km(t);if(!s)throw new Error(`Cannot find binary version for ${t.name} v${t.version}`);try{(0,qC.statSync)(e).isFile()?r==="reset"&&new ma(t,o,s,r,n).open():new Jr.Notice("Path to database library occupied, please check the location manually: "+e,2e3)}catch(a){let u=a;u.code==="ENOENT"?new ma(t,o,s,r,n).open():(new Jr.Notice(`Unexpected error while checking path of better-sqlite3, please check the location manually: ${e}, error: ${u}`,2e3),it("checking better-sqlite3 path:"+e,u))}}},S9=(e,t)=>{if(!Jr.Platform.isDesktopApp)throw new Error("Not in desktop app");let r=ai(e);if(!r)throw new Error(`Cannot find binary version for ${e.name} v${e.version}`);try{return require(r),!0}catch(n){return n?.code==="MODULE_NOT_FOUND"?LC(r,e,"install",t):(new Jr.Notice(`Failed to load database library: ${n}`),it("Failed to load database library",n),LC(r,e,"reset",t)),!1}},BC=S9;var lM=require("path/posix");var un=require("obsidian");var _e;(function(e){e[e.highlight=1]="highlight",e[e.note=2]="note",e[e.image=3]="image",e[e.ink=4]="ink",e[e.underline=5]="underline",e[e.text=6]="text"})(_e||(_e={}));var yo;(function(e){e[e.manual=0]="manual",e[e.auto=1]="auto"})(yo||(yo={}));var xl;(function(e){e[e.importedFile=0]="importedFile",e[e.importedUrl=1]="importedUrl",e[e.linkedFile=2]="linkedFile",e[e.linkedUrl=3]="linkedUrl",e[e.embeddedImage=4]="embeddedImage"})(xl||(xl={}));var ha;(function(e){e[e.fullName=0]="fullName",e[e.nameOnly=1]="nameOnly"})(ha||(ha={}));var wl=["attachment","note","annotation"];var El=wl.map(e=>`'${e}'`).join(",");var Ge=(e="itemID")=>`--sql + ${e} IS NOT NULL + ${e==="itemID"?`AND ${e} NOT IN (SELECT itemID FROM deletedItems)`:""} +`,Qt=(e,t="$itemId")=>typeof e=="boolean"?"":`AND ${e} = ${t}`;var Sl=(e,t)=>{for(let r=0;r!!e.path,ga=e=>Jh(e)&&!!e.contentType&&I9.has(e.contentType),zC=e=>`obzt-active-atch-${e.itemID}-${e.libraryID}`,Zh=(e,t)=>{let r=e.getItem(zC(t));if(!r)return null;let n=parseInt(r,10);return n>0?n:null},Ti=(e,t,r)=>e.setItem(zC(t),r.toString());var Il=`--sql + items.itemID, + items.key, + items.clientDateModified, + items.dateAdded, + items.dateModified, + annots.type, + annots.authorName, + annots.text, + annots.comment, + annots.color, + annots.pageLabel, + annots.sortIndex, + annots.position, + annots.isExternal +`,_l=`--sql + itemAnnotations annots + JOIN items USING (itemID) +`;var Dde=`--sql +SELECT + ${Il}, + annots.parentItemID, + parentItems.key as parentItem +FROM + ${_l} + JOIN items as parentItems ON annots.parentItemID = parentItems.itemID +WHERE + items.key = $annotKey + AND items.libraryID = $libId + AND ${Ge("items.itemID")} +`;var jde=`--sql +SELECT + ${Il} +FROM + ${_l} +WHERE + parentItemID = $attachmentId + AND items.libraryID = $libId + AND ${Ge()} +`;var Cl=`--sql + items.itemID, + items.key, + items.clientDateModified, + items.dateAdded, + items.dateModified, + notes.note, + notes.title +`,Tl=`--sql + itemNotes notes + JOIN items USING (itemID) +`;var Ude=`--sql +SELECT + ${Cl}, + notes.parentItemID, + parentItems.key as parentItem +FROM + ${Tl} + JOIN items as parentItems ON notes.parentItemID = parentItems.itemID +WHERE + items.key = $noteKey + AND items.libraryID = $libId + AND ${Ge("items.itemID")} +`;var Vde=`--sql +SELECT + ${Cl} +FROM + ${Tl} +WHERE + parentItemID = $itemID + AND items.libraryID = $libId + AND ${Ge()} +`;var Zde=`--sql +SELECT + atchs.itemID, + atchs.path, + atchs.contentType, + atchs.linkMode, + charsets.charset, + items.key, + COUNT(atchs.itemID) as annotCount +FROM + itemAttachments atchs + JOIN items USING (itemID) + LEFT JOIN charsets USING (charsetID) + LEFT JOIN itemAnnotations annots ON atchs.itemID = annots.parentItemID +WHERE + atchs.parentItemID = $itemId + AND libraryID = $libId + AND ${Ge("atchs.itemID")} +GROUP BY atchs.itemID +`;var ya="betterbibtex",ba="bbts";var tme=`--sql +SELECT + citationkey as citekey +FROM + ${ya}.citationkey +WHERE + itemID = $itemID + AND (libraryID IS NULL OR libraryID = $libId) +`,rme=`--sql +SELECT + citekey +FROM + ${ba}.citekeys +WHERE + itemID = $itemID + AND (libraryID IS NULL OR libraryID = $libId) +`;var sme=`--sql +SELECT + itemID +FROM + ${ya}.citationkey +WHERE + citationkey = $citekey +`,ame=`--sql +SELECT + itemID +FROM + ${ba}.citekeys +WHERE + citekey = $citekey +`;var Ol=e=>`--sql +SELECT + itemID, + creators.firstName, + creators.lastName, + creators.fieldMode, + creatorTypes.creatorType, + orderIndex +FROM + items + LEFT JOIN itemCreators USING (itemID) + JOIN creators USING (creatorID) + JOIN creatorTypes USING (creatorTypeID) +WHERE + libraryID = $libId + ${Qt(e||"itemID")} + AND ${Ge()} +ORDER BY + itemID, + orderIndex +`;var dme=Ol(!0);function WC(e){return e===void 0?{BS_PRIVATE_NESTED_SOME_NONE:0}:e!==null&&e.BS_PRIVATE_NESTED_SOME_NONE!==void 0?{BS_PRIVATE_NESTED_SOME_NONE:e.BS_PRIVATE_NESTED_SOME_NONE+1|0}:e}function HC(e,t){for(var r=e.length,n=t.length,o=new Array(r+n|0),i=0;it||e`--sql +SELECT + items.itemID, + fieldsCombined.fieldName, + itemDataValues.value +FROM + items + JOIN itemData USING (itemID) + JOIN itemDataValues USING (valueID) + JOIN fieldsCombined USING (fieldID) + JOIN itemTypesCombined USING (itemTypeID) +WHERE + libraryID = $libId + ${Qt(e||"items.itemID")} + AND itemTypesCombined.typeName NOT IN (${El}) + AND ${Ge()} +`;var che=$l(!0);var dhe=$l(!1);var Ea=e=>`--sql +SELECT + items.libraryID, + items.itemID, + items.key, + items.clientDateModified, + items.dateAdded, + items.dateModified, + itemTypesCombined.typeName as itemType, + json_group_array(collectionID) filter (where collectionID is not null) as collectionIDs +FROM + items + JOIN itemTypesCombined USING (itemTypeID) + LEFT JOIN collectionItems USING (itemID) +WHERE + libraryID = $libId + ${e==="full"?Qt(!1):e==="id"?Qt("items.itemID"):Qt("items.key","$key")} + AND ${Ge()} + AND itemType NOT IN (${El}) +GROUP BY itemID +`;var vhe=Ea("full");var She=Ea("id"),Ihe=Ea("key");var Sa=e=>`--sql +WITH + RECURSIVE CollectionPath AS ( + -- Base case: collections without a parent + SELECT + collectionID, + parentCollectionID, + collectionName AS path + FROM + collections + WHERE + libraryID = $libId + ${e==="full"?Qt(!1):e==="id"?Qt("collectionID","$collectionID"):Qt("key","$key")} + AND ${Ge("collectionID")} + UNION ALL + -- Recursive case: join with parent collections + SELECT + prev.collectionID, + c.parentCollectionID, + c.collectionName + FROM + collections c + JOIN CollectionPath prev ON c.collectionID = prev.parentCollectionID + ) +SELECT + p.collectionID, + json_group_array(p.path) path, + c.key, + c.collectionName, + c.libraryID +FROM + CollectionPath p + JOIN collections c USING (collectionID) +GROUP BY + collectionID +ORDER BY + collectionID; +`;var khe=Sa("full");var Phe=Sa("id"),Fhe=Sa("key");var OT=require("path"),An=({groupID:e,key:t},r)=>{let n=[r,"cache"];return e?n.push("groups",e.toString()):n.push("library"),(0,OT.join)(...n,t+".png")};var Ia=e=>Ml(e)?[e.firstName,e.lastName].join(" "):jl(e)?e.lastName:null,Ml=e=>{let t=e;return t.fieldMode===ha.fullName&&t.firstName!==null&&t.lastName!==null},jl=e=>{let t=e;return t.fieldMode===ha.nameOnly&&t.lastName!==null},eg=new Set(pn()("creators","itemID","itemType","key","libraryID","collections")),tg=e=>!wl.includes(e.itemType)&&typeof e.key=="string",_a=e=>e.itemType==="annotation"&&!!e.parentItem;var AT=e=>typeof e.groupID=="number"?`groups/${e.groupID}`:"library",kn=e=>{let t;if(tg(e))t=new URL(`zotero://select/${AT(e)}/items/${e.key}`);else if(_a(e)){t=new URL(`zotero://open-pdf/${AT(e)}/items/${e.parentItem}`);let r;try{r=Go(e.position.pageIndex,!0)}catch(n){console.warn(n),r=null}typeof r=="number"&&t.searchParams.append("page",r.toString()),e.key&&t.searchParams.append("annotation",e.key)}else return"";return t.toString()};var NT=require("obsidian");var ql=require("obsidian");async function kT(e){let t=await xo(e);if(!t)return null;let{value:r,evt:n}=t;return{value:r.item,evt:n}}function xo(e){let t,r=new Promise((o,i)=>{t=o}),n=qt(e,{selectSuggestion:o=>function(s,a,...u){return t(s!==null?{value:s,evt:a}:null),o.call(this,s,a,...u)},onClose:o=>function(...s){return t(null),o.call(this,...s)}});return r.finally(n),e.open(),r}var Ll=class extends ql.SuggestModal{initial=!0;async#e(){let t=this.inputEl.value,r=await this.getSuggestions(t);if(r.length!==0){let n=this.limit;n&&n>0&&(r=r.slice(0,n)),this.chooser.setSuggestions(r)}else t?this.onNoSuggestion():this.chooser.setSuggestions(null)}#t=(0,ql.debounce)(this.#e.bind(this),250,!0);updateSuggestions(){this.initial?(this.#e(),this.initial=!1):this.#t()}};var rg=class extends NT.FuzzySuggestModal{constructor(r,n){super(n);this.attachments=r}getItems(){return this.attachments}renderSuggestion(r,n){n.addClass("mod-complex");let o=n.createDiv("suggestion-content").createDiv("suggestion-title").createSpan(),i=n.createDiv("suggestion-aux");super.renderSuggestion(r,o),i.createEl("kbd","suggestion-hotkey").setText((r.item.annotCount??0).toString())}getItemText(r){return r.path?.replace(/^storage:/,"")??r.key}onChooseItem(){}};async function k9(e,t){return e.length===1?e[0]:e.length?(await kT(new rg(e,t)))?.value??null:null}function Ni(e,t){Ti(window.localStorage,t,e.itemID)}async function Zr(e,t){let r=e.filter(ga);return await k9(r,t)}var Cy=require("obsidian");var dt=require("obsidian");var Ri=require("obsidian"),RT=()=>`Press ${Ri.Platform.isMacOS?"\u2318 Cmd":"Ctrl"} + ${Ri.Platform.isMacOS?"\u2325 Option":"Shift"} + I, then go to the "Console" tab to see the log.`;var at=e=>e instanceof Ri.TFile&&e.extension==="md",DT=e=>typeof e=="string"?e:e.path;function ng(e){let t=bo(e,o=>o.comment?.match(Tm)?.[1]??-1),r=t[-1]??[],n=new Map(r.map(o=>[o.itemID,[o]]));delete t[-1];for(let[o,i]of Object.entries(t)){let s=n.get(+o);i.forEach(a=>{a.comment&&=a.comment.replace(Tm,"")??null}),s?s.push(...i.sort((a,u)=>Sl(a.sortIndex,u.sortIndex))):i.forEach(a=>{n.set(a.itemID,[a])})}for(let[o,...i]of n.values())if(!(i.length<=0)){for(let s of i)s.comment&&(o.comment=(o.comment??"")+` +`+s.comment),s.text&&(o.text?o.text.endsWith("-")&&!o.text.endsWith("--")?o.text.substring(0,o.text.length-1)+s.text.trimStart():o.text.match(/[a-zA-Z\d]\s*$/)&&s.text.match(/^\s*[a-zA-Z\d]/)?o.text=o.text.trimEnd()+" "+s.text.trimStart():o.text=o.text.trimEnd()+s.text.trimStart():o.text=s.text);o.comment=o.comment?.replace(/\n+/,` +`).replace(/^\s+|\s+$/g,"")??null}return[...n.values()]}function og(e){return e.map(t=>t[0])}function ig(e,t){let r=e.map(([n,...o])=>{if(o.length===0)return[n.itemID,t[n.itemID]];let i=new Map(t[n.itemID].map(s=>[s.tagID,s]));return o.forEach(s=>{t[s.itemID].forEach(a=>{i.set(a.tagID,a)})}),[n.itemID,Array.from(i.values())]});return Object.fromEntries(r)}function PT(e,t){let r=ng(e);return{annotations:og(r),tags:ig(r,t)}}var Hl=class{constructor(t){this.cache=void 0,this.cache=t}define(t,r){this.cache[t]=r}get(t){return this.cache[t]}remove(t){delete this.cache[t]}reset(){this.cache={}}load(t){this.cache={...this.cache,...t}}},et=class extends Error{constructor(t){super(t),this.name="Eta Error"}};function Ca(e,t,r){let n=t.slice(0,r).split(/\n/),o=n.length,i=n[o-1].length+1;throw e+=" at line "+o+" col "+i+`: + + `+t.split(/\n/)[o-1]+` + `+Array(i).join(" ")+"^",new et(e)}function N9(e,t,r,n){let o=t.split(` +`),i=Math.max(r-3,0),s=Math.min(o.length,r+3),a=n,u=o.slice(i,s).map(function(f,p){let d=p+i+1;return(d==r?" >> ":" ")+d+"| "+f}).join(` +`),l=a?a+":"+r+` +`:"line "+r+` +`,c=new et(l+u+` + +`+e.message);throw c.name=e.name,c}var R9=async function(){}.constructor;function D9(e,t){let r=this.config,n=t&&t.async?R9:Function;try{let o=new n(r.varName,"options",this.compileToString.call(this,e,t));return o.mtime=t?.mtime,o}catch(o){throw o instanceof SyntaxError?new et(`Bad template syntax + +`+o.message+` +`+Array(o.message.length+1).join("=")+` +`+this.compileToString.call(this,e,t)+` +`):o}}function P9(e,t){let r=this.config,n=t&&t.async,o=this.compileBody,i=this.parse.call(this,e),s=`${r.functionHeader} +let include = (template, data) => this.render(template, data, options); +let includeAsync = (template, data) => this.renderAsync(template, data, options); + +let __eta = {res: "", e: this.config.escapeFunction, f: this.config.filterFunction${r.debug?', line: 1, templateStr: "'+e.replace(/\\|'/g,"\\$&").replace(/\r\n|\n|\r/g,"\\n")+'"':""}}; + +function layout(path, data) { + __eta.layout = path; + __eta.layoutData = data; +}${r.debug?"try {":""}${r.useWith?"with("+r.varName+"||{}){":""} + +${o.call(this,i)} +if (__eta.layout) { + __eta.res = ${n?"await includeAsync":"include"} (__eta.layout, {...${r.varName}, body: __eta.res, ...__eta.layoutData}); +} +${r.useWith?"}":""}${r.debug?"} catch (e) { this.RuntimeErr(e, __eta.templateStr, __eta.line, options.filepath) }":""} +return __eta.res; +`;if(r.plugins)for(let a=0;a":">",'"':""","'":"'"};function j9(e){return M9[e]}function L9(e){let t=String(e);return/[&<>"']/.test(t)?t.replace(/[&<>"']/g,j9):t}var FT={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,debug:!1,escapeFunction:L9,filterFunction:e=>String(e),functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it"},Bl=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,zl=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,Ul=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;function Wl(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function q9(e,t){return e.slice(0,t).split(` +`).length}function B9(e){let t=this.config,r=[],n=!1,o=0,i=t.parse;if(t.plugins)for(let f=0;f0&&s!==void 0&&i<=s))return o;let a=this.readFile(n),u=this.compile(a,t);return this.config.cache&&r.define(n,u),u}}function ag(e,t,r){let n,o={...r,async:!1};return typeof e=="string"?(e.startsWith("@")||(o.filepath=this.resolvePath(e,o)),n=zT.call(this,e,o)):n=e,n.call(this,t,o)}function ug(e,t,r){let n,o={...r,async:!0};typeof e=="string"?(e.startsWith("@")||(o.filepath=this.resolvePath(e,o)),n=zT.call(this,e,o)):n=e;let i=n.call(this,t,o);return Promise.resolve(i)}function UT(e,t){let r=this.compile(e,{async:!1});return ag.call(this,r,t)}function WT(e,t){let r=this.compile(e,{async:!0});return ug.call(this,r,t)}var Vl=class extends Kl{use=Vo.this;settings=this.use(de);app=this.use(HT.App);tplFileCache=new WeakMap;constructor(){super();let t=this;this.config={...this.config,cache:!0,autoEscape:!1,autoFilter:!0,filterFunction:r=>r==null?"":r instanceof Date?r.toISOString():r,plugins:[],get autoTrim(){return t.settings.current?.autoTrim},get views(){return t.settings.templateDir}}}resolvePath=BT;readFile=LT;readModTime=qT;render=ag;renderAsync=ug;renderString=UT;renderStringAsync=WT;getFile(t){let r=this.app.vault.getAbstractFileByPath(t);if(!r)return t;if(!at(r))throw new et(`'${t}' is not a markdown file`);return r}};var kR=ge(xR(),1),NR=ge(CR(),1);var kf=require("obsidian");var kK="\\ufeff?",NK=typeof process<"u"?process.platform:"",RK="^("+kK+"(= yaml =|---)$([\\s\\S]*?)^(?:\\2|\\.\\.\\.)\\s*$"+(NK==="win32"?"\\r?":"")+"(?:\\n)?)",DK=new RegExp(RK,"m");function If(e){e=e||"";let t=e.split(/(\r?\n)/);return t[0]&&/= yaml =|---/.test(t[0])?FK(e):{yaml:null,body:e,bodyBegin:1}}function PK(e,t){let r=1,n=t.indexOf(` +`),o=e.index+e[0].length;for(;n!==-1;){if(n>=o)return r;r++,n=t.indexOf(` +`,n+1)}return r}function FK(e){let t=DK.exec(e);if(!t)return{yaml:null,body:e,bodyBegin:1};let r=t[t.length-1].replace(/^\s+|\s+$/g,""),n=e.replace(t[0],""),o=PK(t,e);return{yaml:r,body:n,bodyBegin:o}}var Cf=require("path"),my=require("url");function fy(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function py(e,t){if(typeof e!="string"||typeof t!="string")throw new TypeError("Expected a string");let r=new RegExp(`(?:${fy(t)}){2,}`,"g");return e.replace(r,t)}function _f(){return/[<>:"/\\|?*\u0000-\u001F]/g}function TR(){return/^(con|prn|aux|nul|com\d|lpt\d)$/i}function dy(e,t){if(typeof e!="string"||typeof t!="string")throw new TypeError("Expected a string");return e.startsWith(t)&&(e=e.slice(t.length)),e.endsWith(t)&&(e=e.slice(0,-t.length)),e}var $K=100,OR=/[\u0000-\u001F\u0080-\u009F]/g,MK=/^\.+(\\|\/)|^\.+$/,jK=/\.+$/;function To(e,t={}){if(typeof e!="string")throw new TypeError("Expected a string");let r=t.replacement===void 0?"!":t.replacement;if(_f().test(r)&&OR.test(r))throw new Error("Replacement string cannot contain reserved filename characters");if(e=e.normalize("NFD"),e=e.replace(MK,r),e=e.replace(_f(),r),e=e.replace(OR,r),e=e.replace(jK,""),r.length>0){let o=e[0]===".";e=py(e,r),e=e.length>1?dy(e,r):e,!o&&e[0]==="."&&(e=r+e),e[e.length-1]==="."&&(e+=r)}e=TR().test(e)?e+r:e;let n=typeof t.maxLength=="number"?t.maxLength:$K;if(e.length>n){let o=e.lastIndexOf(".");if(o===-1)e=e.slice(0,n);else{let i=e.slice(0,o),s=e.slice(o);e=i.slice(0,Math.max(1,n-s.length))+s}}return e}var hy=e=>encodeURI(e)===e?e:`<${e}>`,Tf=e=>e.name.endsWith(".eta.md"),gy=(e,t)=>t.path?t.path.startsWith("storage:")?(0,Cf.join)(e,"storage",t.key,t.path.replace(/^storage:/,"")):t.path:"",Of=(e,t,r,n=null,o=null)=>{if(!n?.path)return"";let i=o?`#page=${o}`:void 0,s=t.vault.adapter.getBasePath(),a=gy(e,n),u=(0,Cf.relative)(s,a);if(u.startsWith(".."))return`[attachment](${hy((0,my.pathToFileURL)(a).href+(i??""))})`;{let l=t.metadataCache.getFirstLinkpathDest(u,"");return l?t.fileManager.generateMarkdownLink(l,r??"",i).replace(/^!/,""):(W.warn("fileLink: file not found",u,a),"")}},AR=e=>To(e,{replacement:"_"}),Af=e=>_a(e)&&e.type===_e.image,LK=(e,t,r)=>t?`[${r??""}](${hy(e)})`:`[[${e}${r?"|"+r:""}]]`,yy=(e,t)=>{if(Af(e)){let r=t.imgCacheImporter.import(e);if(r)return LK(r,t.app.vault.getConfig("useMarkdownLinks"));{let n=t.imgCacheImporter.getCachePath(e);return`[Annotation ${e.key}](${hy((0,my.pathToFileURL)(n).href)})`}}else return""};function RR(e){qt(e,{compile:t=>function(n,o){let i=this,s=t.call(this,n,o);if(!o?.filepath)return s;let a=o.filepath,u=ct(a,i.settings.templateDir);if(!u)return s;let l=s;switch(u.name){case"filename":l=(c,f)=>AR(s.call(this,c,f));break;case"annotation":l=(c,f)=>{let p=s.call(this,c,f),d=!0,{yaml:h,body:b}=If(p);if(h)try{(0,kf.parseYaml)(h).callout===!1&&(d=!1)}catch(v){new kf.Notice(`Error parsing frontmatter, ${v}`)}if(!d)return b;let y=b.trim().split(` +`);return y.push(`^${c.blockID}`),y.map(v=>`> ${v}`).join(` +`)};break;default:break}return Object.groupBy&&Map.groupBy?l:(c,f)=>{let p=qK(),d=l.call(this,c,f);return p(),d}}})}function qK(){let e=[];return Object.groupBy||(Object.groupBy=NR.default,e.push(()=>delete Object.groupBy)),Map.groupBy||(Map.groupBy=kR.default,e.push(()=>delete Map.groupBy)),()=>e.forEach(t=>t())}var Oo="zotero-key",ji="zt-attachments";var DR=require("url");var PR=require("obsidian");var Pn=e=>e.plugin.settings.current?.zoteroDataDir,Ha=Symbol("proxied"),Nf=e=>!!e[Ha];var Rf={"#FF6666":"red","#FF8C19":"orange","#F19837":"orange","#FFD400":"yellow","#999999":"gray","#AAAAAA":"gray","#5FB236":"green","#009980":"cyan","#2EA8E5":"blue","#576DD9":"navy","#A28AE5":"purple","#A6507B":"brown","#E56EEE":"magenta"};var by=new Set(pn()("attachment","tags")),vy=(e,t,r)=>new Proxy({get page(){return Go(e.position.pageIndex,!0)??NaN},get backlink(){return kn(e)},get blockID(){let n=Bt(e),o=Go(e.position.pageIndex,!0);return typeof o=="number"&&(n+=`p${o}`),n},get commentMd(){return e.comment?(0,PR.htmlToMarkdown)(e.comment):""},get imgPath(){return Af(this)?An(this,Pn(r)):""},get imgUrl(){if(Af(this)){let n=An(this,Pn(r));return(0,DR.pathToFileURL)(n).href}else return""},get imgLink(){return yy(this,r.plugin)},get imgEmbed(){let n=yy(this,r.plugin);return n?`!${n}`:""},get fileLink(){return Of(Pn(r),r.plugin.app,r.sourcePath,t.attachment,Go(e.position.pageIndex,!0))},get textBlock(){return e.text?`\`\`\`zotero-annot +> ${e.text} [zotero](${kn(e)}) +\`\`\``:""},get colorName(){let n=e.color?.toUpperCase();return Rf[n]||this.color},docItem:"not-loaded"},{get(n,o,i){if(o==="tags"){if(!t.tags[e.itemID])throw console.error(t,e.itemID),new Error("No tags loaded for item "+e.itemID);return t.tags[e.itemID]}if(o==="docItem"){if(n.docItem==="not-loaded")throw new Error("Doc Item not loaded for item "+e.itemID);return n.docItem}return by.has(o)?Reflect.get(t,o,i):Reflect.get(e,o,i)??Reflect.get(n,o,i)},ownKeys(n){return[...Reflect.ownKeys(e),...by,...Reflect.ownKeys(n)]},getOwnPropertyDescriptor(n,o){return Object.prototype.hasOwnProperty.call(e,o)?Reflect.getOwnPropertyDescriptor(e,o):by.has(o)?Reflect.getOwnPropertyDescriptor(t,o):Reflect.getOwnPropertyDescriptor(n,o)}});function xy(e,t){return!e||Nf(e)?e:new Proxy({get filePath(){return gy(Pn(t),e)}},{get(r,n,o){return n===Ha?!0:Reflect.get(e,n,o)??Reflect.get(r,n,o)},ownKeys(r){return[...Reflect.ownKeys(e),...Reflect.ownKeys(r)]},getOwnPropertyDescriptor(r,n){return Object.prototype.hasOwnProperty.call(e,n)?Reflect.getOwnPropertyDescriptor(e,n):Reflect.getOwnPropertyDescriptor(r,n)}})}var wy=class extends Array{toString(){return this.join(" > ")}},Ey=({path:e,...t})=>{let r={path:wy.from(e),toString(){return t.name}};return new Proxy(r,{get(n,o,i){return Reflect.get(n,o,i)??Reflect.get(t,o,i)},ownKeys(n){return[...Reflect.ownKeys(t),...Reflect.ownKeys(n).filter(o=>!(o==="toJSON"||o==="toString"))]},getOwnPropertyDescriptor(n,o){return Object.prototype.hasOwnProperty.call(t,o)?Reflect.getOwnPropertyDescriptor(t,o):Reflect.getOwnPropertyDescriptor(n,o)}})};var Sy=e=>{let t={get fullname(){return Ia(e)??""},toString(){return this.fullname},toJSON(){return this.fullname}};return new Proxy(t,{get(r,n,o){return Reflect.get(r,n,o)??Reflect.get(e,n,o)},ownKeys(r){return[...Reflect.ownKeys(e),...Reflect.ownKeys(r).filter(n=>!(n==="toJSON"||n==="toString"))]},getOwnPropertyDescriptor(r,n){return Object.prototype.hasOwnProperty.call(e,n)?Reflect.getOwnPropertyDescriptor(e,n):Reflect.getOwnPropertyDescriptor(r,n)}})};var Iy=new Set(pn()("attachment","allAttachments","tags","notes")),_y=({creators:e,collections:t,...r},n,o)=>{let i=e.map(s=>Sy(s));return new Proxy({get backlink(){return kn(r)},get fileLink(){return Of(Pn(o),o.plugin.app,o.sourcePath,n.attachment)},get authorsShort(){let s=this.authors;if(!s.length)return"";let a=s[0],u=a.lastName??a.fullname;return s.length===1?u:`${u} et al.`},annotations:"not-loaded",creators:i,collections:t.map(s=>Ey(s)),get authors(){return i.filter(s=>s.creatorType==="author")}},{get(s,a,u){if(a==="tags"){if(!n.tags[r.itemID])throw new Error("No tags loaded for item "+r.itemID);return n.tags[r.itemID]}return Iy.has(a)?n[a]:a==="annotations"?s.annotations:Reflect.get(r,a,u)??Reflect.get(s,a,u)},ownKeys(s){return[...Reflect.ownKeys(r),...Iy,...Reflect.ownKeys(s)]},getOwnPropertyDescriptor(s,a){return Object.prototype.hasOwnProperty.call(r,a)?Reflect.getOwnPropertyDescriptor(r,a):Iy.has(a)?Reflect.getOwnPropertyDescriptor(n,a):Reflect.getOwnPropertyDescriptor(s,a)}})};function FR(e){return!e||Nf(e)?e:new Proxy({toString(){return e.name},toJSON(){return e.name}},{get(t,r,n){return r===Ha?!0:Reflect.get(t,r,n)??Reflect.get(e,r,n)},ownKeys(t){return[...Reflect.ownKeys(e),...Reflect.ownKeys(t).filter(r=>!(r==="toJSON"||r==="toString"))]},getOwnPropertyDescriptor(t,r){return Object.prototype.hasOwnProperty.call(e,r)?Reflect.getOwnPropertyDescriptor(e,r):Reflect.getOwnPropertyDescriptor(t,r)}})}function It(e,t,r){let n={...e,attachement:xy(e.attachment,t),allAttachments:e.allAttachments.map(a=>xy(a,t)),tags:Ai(e.tags,a=>a.map(u=>FR(u)))},o=_y(e.docItem,n,t),i=e.annotations.map(a=>{let u=vy(a,n,t);return u.docItem=o,u}),s=r?i[e.annotations.findIndex(a=>a.itemID===r.itemID)]:void 0;return o.annotations=i,{annotation:s,annotations:i,docItem:o}}var Fn=class extends ue{eta=this.use(Vl);plugin=this.use(be);settings=this.use(de);app=this.use(dt.App);get vault(){return this.app.vault}get folder(){return this.settings.templateDir}get filenameTemplate(){return this.settings.simpleTemplates?.filename}get autoTrim(){return this.settings.current?.autoTrim}async loadTemplates(){let t=this.vault.getAbstractFileByPath(this.folder);if(!t)return;if(!(t instanceof dt.TFolder)){W.warn("Template folder is occupied by a file");return}let r=[];dt.Vault.recurseChildren(t,async n=>{!at(n)||!n.path.endsWith(".eta.md")||r.push(n)}),await Promise.all(r.map(async n=>this.eta.tplFileCache.set(n,await this.vault.cachedRead(n))))}onload(){RR(this.eta),this.settings.once(async()=>{await this.loadTemplates()}),this.register(qe(Qe(()=>this.plugin.app.vault.trigger("zotero:template-updated","filename"),()=>this.filenameTemplate,!0))),this.register(qe(Qe(async()=>_r.All.forEach(t=>this.plugin.app.vault.trigger("zotero:template-updated",t)),()=>this.autoTrim,!0))),this.registerEvent(this.vault.on("create",this.onFileChange,this)),this.registerEvent(this.vault.on("modify",this.onFileChange,this)),this.registerEvent(this.vault.on("delete",async t=>{if(!at(t))return;let r=this.fromPath(t.path);r&&(this.eta.tplFileCache.delete(t),this.vault.trigger("zotero:template-updated",r))})),this.registerEvent(this.vault.on("rename",async(t,r)=>{await this.onFileChange(t);let n=this.fromPath(r);n&&this.vault.trigger("zotero:template-updated",n)}))}async onFileChange(t){if(!at(t))return;let r=this.fromPath(t.path);this.eta.tplFileCache.set(t,await this.vault.cachedRead(t)),this.vault.trigger("zotero:template-updated",r)}fromPath(t){let r=ct(t,this.folder);return r?.type==="ejectable"?r.name:null}onFileUpdate(t){at(t)&&this.fromPath(t.path)}onFileRename(t,r){at(t)&&this.fromPath(t.path),this.fromPath(r)}mergeAnnotTags(t){if(t.annotations.length===0)return t;let r=PT(t.annotations,t.tags);return t.annotations=r.annotations,t.tags={...t.tags,...r.tags},t}render(t,r){try{let n=this.eta.render(t,r);return this.plugin.imgCacheImporter.flush(),n}catch(n){throw console.error("Error while rendering",t,n),n}}renderAnnot(t,r,n){n.merge!==!1&&(r=this.mergeAnnotTags(r));let o=It(r,n,t);return this.render("annotation",o.annotation)}renderNote(t,r,n){r.merge!==!1&&(t=this.mergeAnnotTags(t));let o=It(t,r),i=this.#e(o.docItem,n),s=this.render("note",o.docItem);return["",i,s].join(`--- +`)}renderAnnots(t,r){r.merge!==!1&&(t=this.mergeAnnotTags(t));let n=It(t,r);return this.render("annots",n.annotations)}renderCitations(t,r,n=!1){let o=t.map(i=>It(i,r));return this.render(n?"cite2":"cite",o.map(i=>i.docItem))}renderColored(t){return this.render("colored",t)}renderFilename(t,r){let n=It(t,r);return this.render("filename",n.docItem)}toFrontmatterRecord(t){let r=this.render("field",t),n=!1,{yaml:o,body:i}=If(r);if(o)try{(0,dt.parseYaml)(o).raw===!0&&(n=!0)}catch(f){new dt.Notice(`Error parsing frontmatter, ${f}`)}let s=Bt(t,!0),a=t.attachment?[t.attachment.itemID.toString()]:void 0,{[Oo]:u,[ji]:l,...c}=(0,dt.parseYaml)(i);return{mode:n?"raw":"parsed",yaml:[`${Oo}: ${s}`,`${ji}: ${l??a}`,i.trim(),""].join(` +`),data:{[Oo]:s,[ji]:a,...wa(c,f=>!(f===""||f===null||f===void 0))}}}renderFrontmatter(t,r,n){let o=It(t,r);return this.#e(o.docItem,n)}#e(t,r){try{let n=this.toFrontmatterRecord(t);return n.mode==="raw"?n.yaml:(0,dt.stringifyYaml)(r!==void 0?vo(n.data,r):n.data)}catch(n){throw it("Failed to renderYaml",n,t),new dt.Notice("Failed to renderYaml"),n}}async setFrontmatterTo(t,r){try{let n=this.toFrontmatterRecord(r).data;await this.plugin.app.fileManager.processFrontMatter(t,o=>Object.assign(o,n))}catch(n){it("Failed to set frontmatter to file "+t.path,n,r),new dt.Notice("Failed to set frontmatter to file "+t.path)}}};le([fe],Fn.prototype,"folder",1),le([fe],Fn.prototype,"filenameTemplate",1),le([fe],Fn.prototype,"autoTrim",1);var Df=require("@codemirror/state"),$R=require("obsidian");var MR=e=>Df.Prec.highest(Df.EditorState.languageData.of(t=>{let r=[],n=e.getConfig("autoPairBrackets"),o=e.getConfig("autoPairMarkdown");n&&r.push("(","[","{","'",'"'),o&&r.push("*","_","`","```");let i=t.field($R.editorInfoField);return i?.file&&Tf(i?.file)&&r.push("<","%"),[{closeBrackets:{brackets:r}}]}));var LR=require("obsidian");var jR=[{prefix:"=",name:"interpolate tag",description:"An interpolation outputs data into the template"},{prefix:" ",name:"evaluation tag",description:"An evaluate tag inserts its contents into the template function."}],Pf=class extends LR.EditorSuggest{onTrigger(t,r,n){if(!n||!Tf(n))return null;let o=r.getLine(t.line),s=o.substring(0,t.ch).match(/<%([ =]?)$/);if(!s)return null;let[a,u]=s,l=o.substring(t.ch).match(/^([\w ]*)%>/),c;if(!l)c={...t};else{let[,f]=l;if(u===" "&&f.length===1)return null;c={...t,ch:t.ch+f.length}}return{end:c,start:{ch:s.index+a.length-u.length,line:t.line},query:s[1]}}getSuggestions(t){return t.query?jR.filter(r=>r.prefix===t.query):jR}renderSuggestion({prefix:t,name:r,description:n},o){t===" "?o.createSpan({text:"No Prefix"}):o.createEl("code",{text:t}),o.createDiv({text:r}),o.createDiv({text:n})}selectSuggestion({prefix:t},r){if(!this.context)return;let{editor:n,end:o,start:i}=this.context,s=t===" "?" ":"= it. ";n.transaction({changes:[{from:i,to:o,text:s}],selection:{from:{...i,ch:i.ch+s.length-1}}})}};var Li=class extends ue{#e=null;plugin=this.use(be);settings=this.use(de);#t(){this.plugin.registerEditorSuggest(new Pf(this.plugin.app))}get etaBracketPairing(){return this.settings.current?.autoPairEta}#r(t){let r=this.#e!==null;this.#e===null?(this.#e=[],this.plugin.registerEditorExtension(this.#e)):this.#e.length=0,t&&this.#e.push(MR(this.plugin.app.vault)),r&&this.plugin.app.workspace.updateOptions()}onload(){this.#t(),this.register(qe(Qe(()=>this.#r(this.etaBracketPairing),()=>this.etaBracketPairing)))}};le([fe],Li.prototype,"etaBracketPairing",1);var Ty=e=>{let t=e?.frontmatter?.[Oo];return t&&typeof t=="string"&&Jv.test(t)?t:null},Ao=(e,t)=>{if(!e)return null;let r=typeof e=="string"?t.getCache(e):e instanceof Cy.TFile?t.getFileCache(e):null;return Ty(r)},ko=(e,t)=>{if(!e)return null;let n=(typeof e=="string"?t.getCache(e):e instanceof Cy.TFile?t.getFileCache(e):null)?.frontmatter?.[ji];if(n&&Array.isArray(n)&&n.length>0){let o=[];for(let i of n)if(typeof i=="string"){let s=Number(i);if(!(s>0&&Number.isInteger(s)))return null;o.push(s)}else if(typeof i=="number"){if(!(i>0&&Number.isInteger(i)))return null;o.push(i)}return o}return null},Ka=({id:e})=>!!e&&Yv.test(e),Va=e=>e.split("n").map(t=>{let[,r,,n]=t.split("p")[0].match(Zv);return Bt({key:r,groupID:n?+n:void 0},!0)});function Ga(e,t){let r=DT(e);return!!Ao(r,t.metadataCache)}var sM=require("url");S();var $n=Le({});S();var Be=Le({});S();var qR=function(e){return typeof e=="function"};var zK=!1,BR=zK;function UK(e){BR&&(qR(e)||console.error("useMemoizedFn expected parameter is a function, got ".concat(typeof e)));var t=F(e);t.current=ne(function(){return e},[e]);var r=F();return r.current||(r.current=function(){for(var n=[],o=0;o{let t,r=new Set,n=(u,l)=>{let c=typeof u=="function"?u(t):u;if(!Object.is(c,t)){let f=t;t=l??typeof c!="object"?c:Object.assign({},t,c),r.forEach(p=>p(t,f))}},o=()=>t,a={setState:n,getState:o,subscribe:u=>(r.add(u),()=>r.delete(u)),destroy:()=>{(WR.env&&WR.env.MODE)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}};return t=e(n,o,a),a},Ja=e=>e?UR(e):UR;S();var QR=ge(XR(),1);var{useSyncExternalStoreWithSelector:cV}=QR.default;function _t(e,t=e.getState,r){let n=cV(e.subscribe,e.getState,e.getServerState||e.getState,t,r);return go(n),n}function Bi(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,o]of e)if(!Object.is(o,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let r=Object.keys(e);if(r.length!==Object.keys(t).length)return!1;for(let n=0;ne&&(t=0,n=r,r=new Map)}return{get:function(s){var a=r.get(s);if(a!==void 0)return a;if((a=n.get(s))!==void 0)return o(s,a),a},set:function(s,a){r.has(s)?r.set(s,a):o(s,a)}}}var Ry="!";function aD(e){var t=e.separator||":";return function(n){for(var o=0,i=[],s=0,a=0;a{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}var Lf=(e,t)=>{let{setIcon:r}=Q($n),n=F(null);return Y(i=>{n.current&&SV.call(n.current),i&&(r(i,e),t&&i.firstElementChild instanceof SVGSVGElement&&i.firstElementChild.style.setProperty("--icon-size",typeof t=="number"||!Number.isNaN(Number(t))?`${t}px`:t)),n.current=i},[e,t,r])};function SV(){for(;this.lastChild;)this.removeChild(this.lastChild)}var jn=st(Z(function({icon:t,size:r,className:n,...o},i){let s=Lf(t,r),a=jf(s,i);return m("div",{ref:a,className:ee("zt-icon",n),...o})}));S();var Ro=Z(function({onClick:t,onKeyDown:r,className:n,...o},i){return m(jn,{onClick:t,onKeyDown:r??t,className:ee("clickable-icon",n),...o,ref:i,role:"button",tabIndex:0})});S();S();var xD=st(Z(function({icon:t,...r},n){let o=Lf(t);return m("button",{ref:jf(o,n),...r})}));var Do=Z(function({className:t,active:r=!1,...n},o){return m(xD,{...n,ref:o,className:ee("clickable-icon",{"is-active":r},t)})});function Za(e){return m(Ro,{size:16,icon:"info","aria-label":"Show details",...e})}function Ya(){let e=arguments[0];for(let t=1,r=arguments.length;to(t).replace(/<\/?b>/g,"**").replace(/<\/?i>/g,"*"),[t,o]);return m("div",{className:ee("annot-comment select-text overflow-x-auto break-words px-2 py-1",r),...n,children:i(s)})});S();var ED=Z(function({className:t,...r},n){return m("div",{ref:n,className:ee("annot-excerpt",t),...r})});S();function Py({text:e,pageLabel:t,className:r,collapsed:n=!1,...o}){let i=e??`Area Excerpt for Page ${t??"?"}`;return m("img",{className:ee("w-full",n?"max-h-20 object-cover object-left-top":"object-scale-down",r),alt:i,...o})}var SD=st(function({type:t,text:r,pageLabel:n,imgSrc:o,collapsed:i}){switch(t){case _e.highlight:case _e.underline:case _e.text:return m("p",{className:"select-text",children:r});case _e.image:if(!o)throw new Error("imgSrc is required for image annotation");return m(Py,{collapsed:i,src:o,pageLabel:n,text:r});default:return m($,{children:["Unsupported Type: ",_e[t]??t]})}});function Fy({checkbox:e,drag:t,buttons:r,onMoreOptions:n,className:o,children:i,onContextMenu:s,...a}){return m("div",{className:ee("annot-header flex cursor-context-menu items-center gap-1",o),onContextMenu:s??n,...a,children:[e,m("div",{className:"annot-header-drag-container flex flex-row items-center gap-1",children:t}),m("div",{className:"annot-header-buttons-container flex flex-row items-center gap-1 opacity-0 transition-opacity hover:opacity-100",children:r}),m("div",{className:"annot-header-space flex-1"}),i]})}var IV=typeof global=="object"&&global&&global.Object===Object&&global,ID=IV;var _V=typeof self=="object"&&self&&self.Object===Object&&self,CV=ID||_V||Function("return this")(),_D=CV;var TV=_D.Symbol,rn=TV;var CD=Object.prototype,OV=CD.hasOwnProperty,AV=CD.toString,Xa=rn?rn.toStringTag:void 0;function kV(e){var t=OV.call(e,Xa),r=e[Xa];try{e[Xa]=void 0;var n=!0}catch{}var o=AV.call(e);return n&&(t?e[Xa]=r:delete e[Xa]),o}var TD=kV;var NV=Object.prototype,RV=NV.toString;function DV(e){return RV.call(e)}var OD=DV;var PV="[object Null]",FV="[object Undefined]",AD=rn?rn.toStringTag:void 0;function $V(e){return e==null?e===void 0?FV:PV:AD&&AD in Object(e)?TD(e):OD(e)}var kD=$V;function MV(e){return e!=null&&typeof e=="object"}var ND=MV;var jV="[object Symbol]";function LV(e){return typeof e=="symbol"||ND(e)&&kD(e)==jV}var RD=LV;function qV(e,t){for(var r=-1,n=e==null?0:e.length,o=Array(n);++ro?0:o+t),r=r>o?o:r,r<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var i=Array(o);++n=n?e:LD(e,t,r)}var qD=HV;var KV="\\ud800-\\udfff",VV="\\u0300-\\u036f",GV="\\ufe20-\\ufe2f",JV="\\u20d0-\\u20ff",ZV=VV+GV+JV,YV="\\ufe0e\\ufe0f",XV="\\u200d",QV=RegExp("["+XV+KV+ZV+YV+"]");function eG(e){return QV.test(e)}var qf=eG;function tG(e){return e.split("")}var BD=tG;var zD="\\ud800-\\udfff",rG="\\u0300-\\u036f",nG="\\ufe20-\\ufe2f",oG="\\u20d0-\\u20ff",iG=rG+nG+oG,sG="\\ufe0e\\ufe0f",aG="["+zD+"]",$y="["+iG+"]",My="\\ud83c[\\udffb-\\udfff]",uG="(?:"+$y+"|"+My+")",UD="[^"+zD+"]",WD="(?:\\ud83c[\\udde6-\\uddff]){2}",HD="[\\ud800-\\udbff][\\udc00-\\udfff]",cG="\\u200d",KD=uG+"?",VD="["+sG+"]?",lG="(?:"+cG+"(?:"+[UD,WD,HD].join("|")+")"+VD+KD+")*",fG=VD+KD+lG,pG="(?:"+[UD+$y+"?",$y,WD,HD,aG].join("|")+")",dG=RegExp(My+"(?="+My+")|"+pG+fG,"g");function mG(e){return e.match(dG)||[]}var GD=mG;function hG(e){return qf(e)?GD(e):BD(e)}var JD=hG;function gG(e){return function(t){t=Hi(t);var r=qf(t)?JD(t):void 0,n=r?r[0]:t.charAt(0),o=r?qD(r,1).join(""):t.slice(1);return n[e]()+o}}var ZD=gG;var yG=ZD("toUpperCase"),YD=yG;function bG(e,t,r,n){var o=-1,i=e==null?0:e.length;for(n&&i&&(r=e[++o]);++o{switch(e){case _e.highlight:return"align-left";case _e.underline:return"underline";case _e.image:return"frame";case _e.text:return"text-select";case _e.note:case _e.ink:default:return"file-question"}};S();var CP=e=>{let{annotRenderer:t,store:r}=Q(Be),n=_t(r,t.storeSelector,Bi);return t.get(e,n)};S();var TP=e=>{let{getImgSrc:t}=Q(Be);return ne(()=>t(e),[e,t])};function Ly({className:e,...t}){return m(Ro,{icon:"more-vertical",className:ee("annot-header-more-options",e),"aria-label":"More options",size:"0.9rem","aria-label-delay":"50",...t})}S();var OP=st(function({pageLabel:t,backlink:r,className:n,...o}){let i=t?`Page ${t}`:"";return r?m("a",{className:ee("annot-page","external-link","bg-[length:12px] bg-[center_right_3px] pr-[18px] text-xs",n),href:r,"aria-label":`Open annotation in Zotero at page ${t}`,"aria-label-delay":"500",...o,children:i}):m("span",{className:ee("annot-page",n),children:i})});S();function qy({tags:e}){return e.length===0?null:m("div",{className:"annot-tags-container",children:e.map(t=>m(uJ,{...t},t.tagID))})}var uJ=st(function({name:t}){return m("a",{className:ee("tag","annot-tag"),children:t})});function By({collapsed:e=!1,annotation:t,checkbox:r,tags:n,className:o,...i}){let s=F(null),{onMoreOptions:a,onDragStart:u,onShowDetails:l}=Q(Be),c=Qh.selectKeys(t,["type","text","pageLabel"]),f=CP(t),p=hr(h=>a(h,t)),d=hr(()=>l("annot",t.itemID));return m("div",{className:ee("annot-preview","bg-primary shadow-border col-span-1 flex flex-col divide-y overflow-auto rounded-sm transition-colors",o),"data-id":t.itemID,...i,children:[m(Fy,{className:"bg-primary-alt py-1 pl-2 pr-1",checkbox:r,drag:m(IP,{type:t.type,color:t.color,icon:_P(t.type),draggable:f!==null,onDragStart:hr(h=>f&&u(h,f,s.current)),size:16}),buttons:m($,{children:[m(Za,{className:"p-0.5",size:14,onClick:d}),m(Ly,{className:"p-0",onClick:p})]}),onMoreOptions:p,children:m(OP,{pageLabel:t.pageLabel,backlink:kn(t)})}),m(ED,{ref:s,className:"px-2 py-1",children:m("blockquote",{className:ee("border-l-blockquote pl-2 leading-tight",{"line-clamp-3":e}),style:{borderColor:t.color??"var(--interactive-accent)"},children:m(SD,{...c,collapsed:e,imgSrc:TP(t)})})}),t.comment&&m(wD,{content:t.comment}),n&&m(qy,{tags:n})]})}function zy({selectable:e=!1,collapsed:t,annotations:r,getTags:n}){let[o,{add:i,remove:s}]=Oy();return m("div",{role:"list",className:"@md:grid-cols-2 @md:gap-3 @3xl:grid-cols-4 grid grid-cols-1 gap-2",children:r.map(a=>m(By,{checkbox:e&&m(cJ,{checked:o.has(a.itemID),onChange:u=>u?i(a.itemID):s(a.itemID)}),collapsed:t,role:"listitem",annotation:a,tags:n(a.itemID)},a.itemID))})}function cJ({checked:e,onChange:t}){return m("div",{className:"flex h-5 items-center",children:m("input",{type:"checkbox",className:"m-0 h-4 w-4",checked:e,onChange:r=>t(r.target.checked)})})}S();var lJ=()=>_t(Q(Be).store,e=>({attachments:e.allAttachments,onChange:e.setActiveAtch,value:e.attachmentID}),Bi);function Uy(){let{attachments:e,onChange:t,value:r}=lJ();return e?e.length===1?null:e.length<=0?m("span",{className:"atch-select-empty",children:"No attachments available"}):m("select",{className:"atch-select",onChange:n=>t(parseInt(n.target.value,10)),value:r??void 0,children:e.map(({itemID:n,path:o,annotCount:i})=>m("option",{value:n,children:["(",i,") ",o?.replace(/^storage:/,"")]},n))}):m($,{children:"Loading"})}function Wy({isCollapsed:e,...t}){return m(Do,{...t,icon:e?"chevrons-up-down":"chevrons-down-up","aria-label":e?"Expand":"Collapse"})}S();function Bf(e){let{store:t,onSetFollow:r}=Q(Be),n=_t(t,s=>s.follow),o=n===null?"not following":n==="ob-note"?"active literature note":"active literature in Zotero reader";return m($,{children:[m(Do,{...e,onClick:r,icon:n===null?"unlink":"link","aria-label":"Choose follow mode"+(n===null?" (Currently linked with literature)":""),"aria-label-delay":"50"}),n!==null&&m("span",{className:"ml-1","aria-label":`Following ${o}`,children:n==="ob-note"?"ob":"zt"})]})}function zf({children:e,buttons:t}){return m("div",{className:"nav-header",children:[m("div",{className:"nav-buttons-container",children:t}),e]})}function Hy(e){return m(Do,{...e,icon:"refresh-ccw","aria-label":"Refresh annotation list","aria-label-delay":"50"})}var fJ=()=>{let{registerDbUpdate:e,store:t}=Q(Be),r=_t(t,n=>n.refresh);U(()=>e(r),[e,r])};function Qa(){fJ();let{store:e}=Q(Be),t=_t(e,r=>r.doc);return t?m(pJ,{docItem:t.docItem}):m($,{children:[m(zf,{buttons:m(Bf,{})}),m("div",{className:"pane-empty p-2",children:"Active file not literature note"})]})}function pJ({docItem:e}){let{refreshConn:t,onShowDetails:r}=Q(Be),[n,{toggle:o}]=Ff(!1),i=dJ();return m($,{children:[m(zf,{buttons:m($,{children:[m(Za,{className:"nav-action-button",onClick:hr(()=>r("doc-item",e.itemID))}),m(Wy,{className:"nav-action-button",isCollapsed:n,onClick:o}),m(Hy,{className:"nav-action-button",onClick:t}),m(Bf,{})]}),children:m(Uy,{})}),m("div",{className:ee("annots-container @container","overflow-auto px-3 pt-1 pb-8 text-xs"),children:i?m(zy,{collapsed:n,...i}):m($,{children:"Loading"})})]})}var dJ=()=>_t(Q(Be).store,e=>!e.doc||!e.annotations||!e.attachment?null:{annotations:e.annotations,getTags:t=>e.tags[t]??[]},Bi);S();function ce(){return ce=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(r[o]=e[o]);return r}function Uf(e,t=166){let r;function n(...o){let i=()=>{e.apply(this,o)};clearTimeout(r),r=setTimeout(i,t)}return n.clear=()=>{clearTimeout(r)},n}function Vy(e){return e&&e.ownerDocument||document}function eu(e){return Vy(e).defaultView||window}function Gy(e,t){typeof e=="function"?e(t):e&&(e.current=t)}S();var mJ=typeof window<"u"?Et:U,Jy=mJ;S();function Wf(...e){return ne(()=>e.every(t=>t==null)?null:t=>{e.forEach(r=>{Gy(r,t)})},e)}S();S();var hJ=["onChange","maxRows","minRows","style","value"];function Hf(e){return parseInt(e,10)||0}var gJ={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function AP(e){return e==null||Object.keys(e).length===0||e.outerHeightStyle===0&&!e.overflow}var yJ=Z(function(t,r){let{onChange:n,maxRows:o,minRows:i=1,style:s,value:a}=t,u=Ky(t,hJ),{current:l}=F(a!=null),c=F(null),f=Wf(r,c),p=F(null),d=F(0),[h,b]=j({outerHeightStyle:0}),y=Y(()=>{let V=c.current,G=eu(V).getComputedStyle(V);if(G.width==="0px")return{outerHeightStyle:0};let K=p.current;K.style.width=G.width,K.value=V.value||t.placeholder||"x",K.value.slice(-1)===` +`&&(K.value+=" ");let P=G.boxSizing,X=Hf(G.paddingBottom)+Hf(G.paddingTop),C=Hf(G.borderBottomWidth)+Hf(G.borderTopWidth),_=K.scrollHeight;K.value="x";let I=K.scrollHeight,B=_;i&&(B=Math.max(Number(i)*I,B)),o&&(B=Math.min(Number(o)*I,B)),B=Math.max(B,I);let D=B+(P==="border-box"?X+C:0),re=Math.abs(B-_)<=1;return{outerHeightStyle:D,overflow:re}},[o,i,t.placeholder]),v=(V,J)=>{let{outerHeightStyle:G,overflow:K}=J;return d.current<20&&(G>0&&Math.abs((V.outerHeightStyle||0)-G)>1||V.overflow!==K)?(d.current+=1,{overflow:K,outerHeightStyle:G}):V},w=Y(()=>{let V=y();AP(V)||b(J=>v(J,V))},[y]),T=()=>{let V=y();AP(V)||Rr(()=>{b(J=>v(J,V))})};return U(()=>{let V=Uf(()=>{d.current=0,c.current&&T()}),J,G=c.current,K=eu(G);return K.addEventListener("resize",V),typeof ResizeObserver<"u"&&(J=new ResizeObserver(V),J.observe(G)),()=>{V.clear(),K.removeEventListener("resize",V),J&&J.disconnect()}}),Jy(()=>{w()}),U(()=>{d.current=0},[a]),m($,{children:[m("textarea",ce({value:a,onChange:V=>{d.current=0,l||w(),n&&n(V)},ref:f,rows:i,style:ce({height:h.outerHeightStyle,overflow:h.overflow?"hidden":void 0},s)},u)),m("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:p,tabIndex:-1,style:ce({},gJ.shadow,s,{padding:0})})]})}),tu=yJ;S();S();S();S();function bJ(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function Zy(...e){return t=>e.forEach(r=>bJ(r,t))}function Kf(...e){return Y(Zy(...e),e)}S();function kP(e,t=[]){let r=[];function n(i,s){let a=Le(s),u=r.length;r=[...r,s];function l(f){let{scope:p,children:d,...h}=f,b=p?.[e][u]||a,y=ne(()=>h,Object.values(h));return H(b.Provider,{value:y},d)}function c(f,p){let d=p?.[e][u]||a,h=Q(d);if(h)return h;if(s!==void 0)return s;throw new Error(`\`${f}\` must be used within \`${i}\``)}return l.displayName=i+"Provider",[l,c]}let o=()=>{let i=r.map(s=>Le(s));return function(a){let u=a?.[e]||i;return ne(()=>({[`__scope${e}`]:{...a,[e]:u}}),[a,u])}};return o.scopeName=e,[n,vJ(o,...t)]}function vJ(...e){let t=e[0];if(e.length===1)return t;let r=()=>{let n=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){let s=n.reduce((a,{useScope:u,scopeName:l})=>{let f=u(i)[`__scope${l}`];return{...a,...f}},{});return ne(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return r.scopeName=t.scopeName,r}function Ct(e,t,{checkForDefaultPrevented:r=!0}={}){return function(o){if(e?.(o),r===!1||!o.defaultPrevented)return t?.(o)}}S();S();function Yy(e){let t=F(e);return U(()=>{t.current=e}),ne(()=>(...r)=>{var n;return(n=t.current)===null||n===void 0?void 0:n.call(t,...r)},[])}function NP({prop:e,defaultProp:t,onChange:r=()=>{}}){let[n,o]=xJ({defaultProp:t,onChange:r}),i=e!==void 0,s=i?e:n,a=Yy(r),u=Y(l=>{if(i){let f=typeof l=="function"?l(e):l;f!==e&&a(f)}else o(l)},[i,e,o,a]);return[s,u]}function xJ({defaultProp:e,onChange:t}){let r=j(e),[n]=r,o=F(n),i=Yy(t);return U(()=>{o.current!==n&&(i(n),o.current=n)},[n,o,i]),r}S();function RP(e){let t=F({value:e,previous:e});return ne(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}S();S();var ru=globalThis?.document?Et:()=>{};function DP(e){let[t,r]=j(void 0);return ru(()=>{if(e){r({width:e.offsetWidth,height:e.offsetHeight});let n=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;let i=o[0],s,a;if("borderBoxSize"in i){let u=i.borderBoxSize,l=Array.isArray(u)?u[0]:u;s=l.inlineSize,a=l.blockSize}else s=e.offsetWidth,a=e.offsetHeight;r({width:s,height:a})});return n.observe(e,{box:"border-box"}),()=>n.unobserve(e)}else r(void 0)},[e]),t}S();S();function wJ(e,t){return Nr((r,n)=>{let o=t[r][n];return o??r},e)}var Xy=e=>{let{present:t,children:r}=e,n=EJ(t),o=typeof r=="function"?r({present:n.isPresent}):Ve.only(r),i=Kf(n.ref,o.ref);return typeof r=="function"||n.isPresent?Xt(o,{ref:i}):null};Xy.displayName="Presence";function EJ(e){let[t,r]=j(),n=F({}),o=F(e),i=F("none"),s=e?"mounted":"unmounted",[a,u]=wJ(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return U(()=>{let l=Vf(n.current);i.current=a==="mounted"?l:"none"},[a]),ru(()=>{let l=n.current,c=o.current;if(c!==e){let p=i.current,d=Vf(l);e?u("MOUNT"):d==="none"||l?.display==="none"?u("UNMOUNT"):u(c&&p!==d?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,u]),ru(()=>{if(t){let l=f=>{let d=Vf(n.current).includes(f.animationName);f.target===t&&d&&Rr(()=>u("ANIMATION_END"))},c=f=>{f.target===t&&(i.current=Vf(n.current))};return t.addEventListener("animationstart",c),t.addEventListener("animationcancel",l),t.addEventListener("animationend",l),()=>{t.removeEventListener("animationstart",c),t.removeEventListener("animationcancel",l),t.removeEventListener("animationend",l)}}else u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(a),ref:Y(l=>{l&&(n.current=getComputedStyle(l)),r(l)},[])}}function Vf(e){return e?.animationName||"none"}S();S();S();var eb=Z((e,t)=>{let{children:r,...n}=e,o=Ve.toArray(r),i=o.find(IJ);if(i){let s=i.props.children,a=o.map(u=>u===i?Ve.count(s)>1?Ve.only(null):Pt(s)?s.props.children:null:u);return H(Qy,ce({},n,{ref:t}),Pt(s)?Xt(s,void 0,a):null)}return H(Qy,ce({},n,{ref:t}),r)});eb.displayName="Slot";var Qy=Z((e,t)=>{let{children:r,...n}=e;return Pt(r)?Xt(r,{..._J(n,r.props),ref:Zy(t,r.ref)}):Ve.count(r)>1?Ve.only(null):null});Qy.displayName="SlotClone";var SJ=({children:e})=>H($,null,e);function IJ(e){return Pt(e)&&e.type===SJ}function _J(e,t){let r={...t};for(let n in t){let o=e[n],i=t[n];/^on[A-Z]/.test(n)?o&&i?r[n]=(...a)=>{i(...a),o(...a)}:o&&(r[n]=o):n==="style"?r[n]={...o,...i}:n==="className"&&(r[n]=[o,i].filter(Boolean).join(" "))}return{...e,...r}}var CJ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],tb=CJ.reduce((e,t)=>{let r=Z((n,o)=>{let{asChild:i,...s}=n,a=i?eb:t;return U(()=>{window[Symbol.for("radix-ui")]=!0},[]),H(a,ce({},s,{ref:o}))});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});var PP="Checkbox",[TJ,bOe]=kP(PP),[OJ,AJ]=TJ(PP),kJ=Z((e,t)=>{let{__scopeCheckbox:r,name:n,checked:o,defaultChecked:i,required:s,disabled:a,value:u="on",onCheckedChange:l,...c}=e,[f,p]=j(null),d=Kf(t,T=>p(T)),h=F(!1),b=f?!!f.closest("form"):!0,[y=!1,v]=NP({prop:o,defaultProp:i,onChange:l}),w=F(y);return U(()=>{let T=f?.form;if(T){let M=()=>v(w.current);return T.addEventListener("reset",M),()=>T.removeEventListener("reset",M)}},[f,v]),H(OJ,{scope:r,state:y,disabled:a},H(tb.button,ce({type:"button",role:"checkbox","aria-checked":Po(y)?"mixed":y,"aria-required":s,"data-state":FP(y),"data-disabled":a?"":void 0,disabled:a,value:u},c,{ref:d,onKeyDown:Ct(e.onKeyDown,T=>{T.key==="Enter"&&T.preventDefault()}),onClick:Ct(e.onClick,T=>{v(M=>Po(M)?!0:!M),b&&(h.current=T.isPropagationStopped(),h.current||T.stopPropagation())})})),b&&H(DJ,{control:f,bubbles:!h.current,name:n,value:u,checked:y,required:s,disabled:a,style:{transform:"translateX(-100%)"}}))}),NJ="CheckboxIndicator",RJ=Z((e,t)=>{let{__scopeCheckbox:r,forceMount:n,...o}=e,i=AJ(NJ,r);return H(Xy,{present:n||Po(i.state)||i.state===!0},H(tb.span,ce({"data-state":FP(i.state),"data-disabled":i.disabled?"":void 0},o,{ref:t,style:{pointerEvents:"none",...e.style}})))}),DJ=e=>{let{control:t,checked:r,bubbles:n=!0,...o}=e,i=F(null),s=RP(r),a=DP(t);return U(()=>{let u=i.current,l=window.HTMLInputElement.prototype,f=Object.getOwnPropertyDescriptor(l,"checked").set;if(s!==r&&f){let p=new Event("click",{bubbles:n});u.indeterminate=Po(r),f.call(u,Po(r)?!1:r),u.dispatchEvent(p)}},[s,r,n]),H("input",ce({type:"checkbox","aria-hidden":!0,defaultChecked:Po(r)?!1:r},o,{tabIndex:-1,ref:i,style:{...e.style,...a,position:"absolute",pointerEvents:"none",opacity:0,margin:0}}))};function Po(e){return e==="indeterminate"}function FP(e){return Po(e)?"indeterminate":e?"checked":"unchecked"}var rb=kJ,$P=RJ;S();var nb=Z(({className:e,checked:t,...r},n)=>m(rb,{ref:n,className:ee("data-[state=checked]:text-mod-error peer h-3 w-3 shrink-0 rounded-sm border disabled:cursor-not-allowed disabled:opacity-50 bg-primary obzt-btn-reset",e),checked:t,...r,children:m($P,{className:ee("flex items-center justify-center"),children:m(jn,{icon:"chevrons-down",size:"0.75rem",className:"contents"})})}));nb.displayName=rb.displayName;var MP=Z(({id:e,checked:t,onCheckChange:r,title:n,disabled:o,className:i,...s},a)=>m("div",{className:ee("flex items-center gap-x-1","rounded-sm focus-within:outline-none focus-within:ring-2 focus-within:ring-mod-border-focus focus-within:ring-offset-2",t&&"animate-pulse",i),ref:a,...s,children:[m(nb,{className:ee("h-3 w-3",o&&"hidden"),id:e,checked:t,disabled:o,onCheckedChange:r}),m("label",{htmlFor:e,className:"peer-[[data-state=checked]]:text-mod-error text-status-bar text-txt-status-bar leading-none peer-disabled:cursor-not-allowed",children:n})]}));MP.displayName="ImportingStatus";var Qp=require("obsidian");S();var Vi=require("obsidian");S();var jP={sanitize:DOMPurify.sanitize.bind(DOMPurify),setIcon:Vi.setIcon,renderMarkdown(e){return m(FJ,{content:e})}};function FJ({content:e}){let t=F(null);return m("div",{className:"contents",ref:n=>{n?(n.empty(),t.current&&t.current.unload(),t.current=new Vi.Component,Vi.MarkdownRenderer.renderMarkdown(e,n,"",t.current)):t.current&&(t.current.unload(),t.current=null)}})}var Fo=require("obsidian"),Gf=class extends Fo.FileView{constructor(t){super(t),this.navigation=!1,this.allowNoFile=!0,this.requestUpdate=(0,Fo.debounce)(()=>this.update(),10)}load(){super.load(),this.registerEvent(this.app.workspace.on("file-open",this.onFileOpen,this))}async setState(t,r){if(!Object.hasOwn(t,"file")&&!Object.hasOwn(t,"group")){let n=this.leaf.workspace.getActiveFile();n&&(t.file=n?.path)}await super.setState(t,r)}onLoadFile(t){return this.requestUpdate()}onUnloadFile(t){return this.requestUpdate()}onFileOpen(t){this.leaf.group||this.leaf.pinned||(t instanceof Fo.TFile?this.loadFile(t):this.loadFile(null),this.requestUpdate())}onGroupChange(){if(super.onGroupChange(),this.leaf.group)for(let t=0,r=this.leaf.workspace.getGroupLeaves(this.leaf.group);ttypeof e=="string"&&e.trim().length>0?await t.database.search(e):await t.database.getItemsOf(50);function Xf({item:e,fields:t},r){r.addClass("mod-complex");let n=r.createDiv("suggestion-content").createDiv("suggestion-title").createSpan(),o=r.createDiv("suggestion-aux");for(let a of t){let u=o.createEl("kbd","suggestion-hotkey");switch(u.setAttribute("aria-label",a),a){case"title":(0,Jf.setIcon)(u,"type");break;case"creators":(0,Jf.setIcon)(u,"user");break;case"date":(0,Jf.setIcon)(u,"calendar");break;default:u.setText(a);break}}let[i]=e.title??[],s=n.createDiv({cls:"title"});typeof i=="string"&&i?s.setText(i):s.setText("Title missing"),this.plugin.settings.current?.showCitekeyInSuggester&&e.citekey&&n.createDiv({cls:"citekey",text:e.citekey}),$J(e)&&n.append(MJ(e))}var $J=e=>e.itemType==="journalArticle",MJ=e=>{let{creators:t,date:r,publicationTitle:n,volume:o,issue:i,pages:s}=e,a={creators:jJ(t),date:r,publication:n,volume:o,issue:i,pages:s},u=(l,c,f)=>a[c]&&l.createSpan({cls:f??c,text:a[c]??void 0});return createDiv({cls:"meta"},l=>{(a.creators||a.date)&&l.createSpan({cls:"author-year"},c=>{u(c,"creators"),u(c,"date")}),u(l,"publication"),(a.volume||a.issue)&&l.createSpan({cls:"vol-issue"},c=>{u(c,"volume"),u(c,"issue")}),u(l,"pages")})},jJ=e=>{if(!e||!e[0])return"";let t=e[0],r=Ml(t)||jl(t)?t.lastName:"";return e.length>1&&(r=r.trim()+" et al."),r};var nu=class extends LP.EditorSuggest{constructor(r){super(r.app);this.plugin=r;this.suggestEl.addClass(Zf)}getSuggestions(r){return Yf(r.query,this.plugin)}renderSuggestion=Xf.bind(this)};var nn=class extends Ll{constructor(r){super(r.app);this.plugin=r;this.modalEl.addClass(Zf)}getSuggestions(r){return Yf(r,this.plugin)}renderSuggestion=Xf.bind(this);onChooseSuggestion(){}};var zP=require("obsidian");var qP=require("@codemirror/state");async function BP(e,t,r=t.settings.current?.updateOverwrite){let{app:n,noteIndex:o,templateRenderer:i}=t,s=o.getNotesFor(e);if(s.length===0)return null;let a=t.settings.libId,u=await t.databaseAPI.getAttachments(e.itemID,a),l=new Set(s.flatMap(y=>ko(y,t.app.metadataCache))),c=u.filter(y=>l.has(y.itemID)),f;c.length===0&&(f=await Zr(u,t.app),f&&(Ni(f,e),c.push(f)));let p=await t.databaseAPI.getNotes(e.itemID,a).then(y=>t.noteParser.normalizeNotes(y)),d=await ou(e,{all:u,selected:c,notes:p},t),h=Object.values(d)[0],b={notes:s.length,addedAnnots:0,updatedAnnots:0};for(let y of s){let v=n.metadataCache.getCache(y);if(!v)continue;let w=ko(y,t.app.metadataCache);w||(f===void 0&&(f=await Zr(c,t.app)),f?w=[f.itemID]:w=[]);let T=n.vault.getAbstractFileByPath(y),M={plugin:t,sourcePath:y};if(r){let _=await i.renderNote(d[w[0]],M);await n.vault.modify(T,_);continue}let V=Ya((v.sections?.filter(Ka)??[]).flatMap(_=>Va(_.id).map(I=>[I,_.position])),bo(([_])=>_),ki((_,I)=>({key:_,blocks:I.map(([B,D])=>D)}))),J=new Set(Object.values(v.blocks??{})?.filter(Ka).flatMap(_=>Va(_.id).map(I=>I))),G=new Map(w.map(_=>[d[_],[]])),K=[];if(await Promise.all(w.map(async _=>{let I=d[_];if(!(!I.annotations||I.annotations.length===0))return await Promise.all(I.annotations.map(async B=>{let D=Bt(B,!0),re=V[D];if(re){if(!t.settings.current?.updateAnnotBlock)return;let oe=await i.renderAnnot(B,I,M);K.push(...re.blocks.map(me=>({from:me.start.offset,to:me.end.offset,insert:oe})))}else J.has(D)||G.get(I).push(B)})??[])})),K.length>0){let _=qP.EditorState.create({doc:await n.vault.read(T)}).update({changes:K}).state.doc.toString();await n.vault.modify(T,_)}await i.setFrontmatterTo(T,It(h,M).docItem);let P=[...G].reduce((_,[I,B])=>{if(B.length===0)return _;let D=i.renderAnnots({...I,annotations:B},M);return(_&&_+` +`)+D},"");P&&await n.vault.append(T,P);let X=K.length,C=[...G.values()].reduce((_,I)=>_+I.length,0);b.updatedAnnots+=X,b.addedAnnots+=C}return b}async function ou(e,{all:t,selected:r,notes:n},o){let i=o.settings.libId,s=await o.databaseAPI.getTags([[e.itemID,i]]);if(r.length===0)return{[-1]:{docItem:e,attachment:null,tags:s,allAttachments:t,annotations:[],notes:n}};let a={};for(let u of r){let l=u?await o.databaseAPI.getAnnotations(u.itemID,i):[];a[u.itemID]={docItem:e,attachment:u,tags:{...s,...await o.databaseAPI.getTags(l.map(c=>[c.itemID,i]))},allAttachments:t,annotations:l,notes:n}}return a}async function Qf({alt:e,item:t},{start:r,end:n,editor:o,file:i},s){let{plugin:a}=s,u=a.settings.libId,l=await a.databaseAPI.getAttachments(t.itemID,u),c=new Set(ko(i,a.app.metadataCache)),f=l.filter(y=>c.has(y.itemID)),p;f.length===0&&(p=await Zr(l,a.app),p&&(Ni(p,t),f.push(p)));let d=await a.databaseAPI.getNotes(t.itemID,u).then(y=>a.noteParser.normalizeNotes(y)),h=await ou(t,{all:l,selected:f,notes:d},s.plugin),b=s.renderCitations(Object.values(h),{plugin:s.plugin},e);o.replaceRange(b,r,n),o.setCursor(o.offsetToPos(o.posToOffset(r)+b.length))}var UP=e=>zP.Keymap.isModifier(e,"Shift");var LJ=[{command:"\u2191\u2193",purpose:"to navigate"},{command:"\u21B5",purpose:"to insert primary Markdown citation"},{command:"\u21B5 (end with /)",purpose:"Insert secondary Markdown citation"}],iu=class extends nu{constructor(r){super(r);this.plugin=r;this.setInstructions(LJ)}onTrigger(r,n){if(!this.plugin.settings.current?.citationEditorSuggester)return null;let o=n.getLine(r.line),s=o.substring(0,r.ch).match(/[[【]@([^\]】]*)$/);if(!s)return null;let a={...r};return(o[r.ch]==="]"||o[r.ch]==="\u3011")&&(a.ch+=1),{end:a,start:{ch:s.index,line:r.line,alt:!!s[0]?.endsWith("/")},query:s[1].replaceAll(/\/$/g,"")}}selectSuggestion(r){this.context&&Qf({item:r.item,alt:this.context.start.alt??!1},this.context,this.plugin.templateRenderer)}};var qJ=[{command:"\u2191\u2193",purpose:"to navigate"},{command:"\u21B5",purpose:"to insert Markdown citation"},{command:"shift \u21B5",purpose:"to insert secondary Markdown citation"},{command:"esc",purpose:"to dismiss"}],ob=class extends nn{constructor(r){super(r);this.plugin=r;this.setInstructions(qJ)}};async function ib(e,t,r){let n=await ep(r);if(!n)return!1;let o=e.getCursor();return await Qf({item:n.value.item,alt:UP(n.evt)},{start:o,end:o,editor:e,file:t},r.templateRenderer),!0}async function ep(e){return await xo(new ob(e))}var qo=require("obsidian");S();S();S();S();var qn=ge(Ln());S();function ab(e){let t=Object.prototype.toString.call(e).slice(8,-1);return t==="Object"&&typeof e[Symbol.iterator]=="function"?"Iterable":t==="Custom"&&e.constructor!==Object&&e instanceof Object?"Object":t}var VP=ge(Ln());S();var au=ge(Ln());S();var WP=ge(Ln());S();function su(e){let{styling:t,arrowStyle:r="single",expanded:n,nodeType:o,onClick:i}=e;return R.createElement("div",(0,WP.default)({},t("arrowContainer",r),{onClick:i}),R.createElement("div",t(["arrow","arrowSign"],o,n,r),"\u25B6",r==="double"&&R.createElement("div",t(["arrowSign","arrowSignInner"]),"\u25B6")))}function BJ(e,t){return e==="Object"?Object.keys(t).length:e==="Array"?t.length:1/0}function zJ(e){return typeof e.set=="function"}function UJ(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1/0,i;if(e==="Object"){let s=Object.getOwnPropertyNames(t);r&&s.sort(r===!0?void 0:r),s=s.slice(n,o+1),i={entries:s.map(a=>({key:a,value:t[a]}))}}else if(e==="Array")i={entries:t.slice(n,o+1).map((s,a)=>({key:a+n,value:s}))};else{let s=0,a=[],u=!0,l=zJ(t);for(let c of t){if(s>o){u=!1;break}n<=s&&(l&&Array.isArray(c)?typeof c[0]=="string"||typeof c[0]=="number"?a.push({key:c[0],value:c[1]}):a.push({key:`[entry ${s}]`,value:{"[key]":c[0],"[value]":c[1]}}):a.push({key:s,value:c})),s++}i={hasMore:!u,entries:a}}return i}function ub(e,t,r){let n=[];for(;t-e>r*r;)r=r*r;for(let o=e;o<=t;o+=r)n.push({from:o,to:Math.min(t,o+r-1)});return n}function cb(e,t,r,n){let o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:1/0,s=UJ.bind(null,e,t,r);if(!n)return s().entries;let a=i<1/0,u=Math.min(i-o,BJ(e,t));if(e!=="Iterable"){if(u<=n||n<7)return s(o,i).entries}else if(u<=n&&!a)return s(o,i).entries;let l;if(e==="Iterable"){let{hasMore:c,entries:f}=s(o,o+n-1);l=c?[...f,...ub(o+n,o+2*n-1,n)]:f}else l=a?ub(o,i,n):[...s(0,n-5).entries,...ub(n-4,u-5,n),...s(u-4,u-1).entries];return l}var HP=ge(Ln());S();function lb(e){let{styling:t,from:r,to:n,renderChildNodes:o,nodeType:i}=e,[s,a]=j(!1),u=Y(()=>{a(!s)},[s]);return s?R.createElement("div",t("itemRange",s),o(e,r,n)):R.createElement("div",(0,HP.default)({},t("itemRange",s),{onClick:u}),R.createElement(su,{nodeType:i,styling:t,expanded:!1,onClick:u,arrowStyle:"double"}),`${r} ... ${n}`)}function WJ(e){return e.to!==void 0}function KP(e,t,r){let{nodeType:n,data:o,collectionLimit:i,circularCache:s,keyPath:a,postprocessValue:u,sortObjectKeys:l}=e,c=[];return cb(n,o,l,i,t,r).forEach(f=>{if(WJ(f))c.push(R.createElement(lb,(0,au.default)({},e,{key:`ItemRange--${f.from}-${f.to}`,from:f.from,to:f.to,renderChildNodes:KP})));else{let{key:p,value:d}=f,h=s.indexOf(d)!==-1;c.push(R.createElement(uu,(0,au.default)({},e,{postprocessValue:u,collectionLimit:i,key:`Node--${p}`,keyPath:[p,...a],value:u(d),circularCache:[...s,d],isCircular:h,hideRoot:!1})))}}),c}function $o(e){let{circularCache:t=[],collectionLimit:r,createItemString:n,data:o,expandable:i,getItemString:s,hideRoot:a,isCircular:u,keyPath:l,labelRenderer:c,level:f=0,nodeType:p,nodeTypeIndicator:d,shouldExpandNodeInitially:h,styling:b}=e,[y,v]=j(u?!1:h(l,o,f)),w=Y(()=>{i&&v(!y)},[i,y]),T=y||a&&f===0?KP({...e,circularCache:t,level:f+1}):null,M=R.createElement("span",b("nestedNodeItemType",y),d),V=s(p,o,M,n(o,r),l),J=[l,p,y,i];return a?R.createElement("li",b("rootNode",...J),R.createElement("ul",b("rootNodeChildren",...J),T)):R.createElement("li",b("nestedNode",...J),i&&R.createElement(su,{styling:b,nodeType:p,expanded:y,onClick:w}),R.createElement("label",(0,au.default)({},b(["label","nestedNodeLabel"],...J),{onClick:w}),c(...J)),R.createElement("span",(0,au.default)({},b("nestedNodeItemString",...J),{onClick:w}),V),R.createElement("ul",b("nestedNodeChildren",...J),T))}function HJ(e){let t=Object.getOwnPropertyNames(e).length;return`${t} ${t!==1?"keys":"key"}`}function fb(e){let{data:t,...r}=e;return R.createElement($o,(0,VP.default)({},r,{data:t,nodeType:"Object",nodeTypeIndicator:r.nodeType==="Error"?"Error()":"{}",createItemString:HJ,expandable:Object.getOwnPropertyNames(t).length>0}))}var GP=ge(Ln());S();function KJ(e){return`${e.length} ${e.length!==1?"items":"item"}`}function pb(e){let{data:t,...r}=e;return R.createElement($o,(0,GP.default)({},r,{data:t,nodeType:"Array",nodeTypeIndicator:"[]",createItemString:KJ,expandable:t.length>0}))}var JP=ge(Ln());S();function VJ(e,t){let r=0,n=!1;if(Number.isSafeInteger(e.size))r=e.size;else for(let o of e){if(t&&r+1>t){n=!0;break}r+=1}return`${n?">":""}${r} ${r!==1?"entries":"entry"}`}function db(e){return R.createElement($o,(0,JP.default)({},e,{nodeType:"Iterable",nodeTypeIndicator:"()",createItemString:VJ,expandable:!0}))}S();function gr(e){let{nodeType:t,styling:r,labelRenderer:n,keyPath:o,valueRenderer:i,value:s,valueGetter:a=u=>u}=e;return R.createElement("li",r("value",t,o),R.createElement("label",r(["label","valueLabel"],t,o),n(o,t,!1,!1)),R.createElement("span",r("valueText",t,o),i(a(s),s,...o)))}function uu(e){let{getItemString:t,keyPath:r,labelRenderer:n,styling:o,value:i,valueRenderer:s,isCustomNode:a,...u}=e,l=a(i)?"Custom":ab(i),c={getItemString:t,key:r[0],keyPath:r,labelRenderer:n,nodeType:l,styling:o,value:i,valueRenderer:s},f={...u,...c,data:i,isCustomNode:a};switch(l){case"Object":case"Error":case"WeakMap":case"WeakSet":return R.createElement(fb,f);case"Array":return R.createElement(pb,f);case"Iterable":case"Map":case"Set":return R.createElement(db,f);case"String":return R.createElement(gr,(0,qn.default)({},c,{valueGetter:p=>`"${p}"`}));case"Number":return R.createElement(gr,c);case"Boolean":return R.createElement(gr,(0,qn.default)({},c,{valueGetter:p=>p?"true":"false"}));case"Date":return R.createElement(gr,(0,qn.default)({},c,{valueGetter:p=>p.toISOString()}));case"Null":return R.createElement(gr,(0,qn.default)({},c,{valueGetter:()=>"null"}));case"Undefined":return R.createElement(gr,(0,qn.default)({},c,{valueGetter:()=>"undefined"}));case"Function":case"Symbol":return R.createElement(gr,(0,qn.default)({},c,{valueGetter:p=>p.toString()}));case"Custom":return R.createElement(gr,c);default:return R.createElement(gr,(0,qn.default)({},c,{valueGetter:()=>`<${l}>`}))}}var Kp=ge(tp()),w2=ge(QP()),Cb=ge(sF()),Tb=ge(T$()),Sb=ge(Y$()),Ib=ge(g2());function y2(e){var t=e[0],r=e[1],n=e[2],o,i,s;return o=t*1+r*0+n*1.13983,i=t*1+r*-.39465+n*-.5806,s=t*1+r*2.02311+n*0,o=Math.min(Math.max(0,o),1),i=Math.min(Math.max(0,i),1),s=Math.min(Math.max(0,s),1),[o*255,i*255,s*255]}function b2(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,o=t*.299+r*.587+n*.114,i=t*-.14713+r*-.28886+n*.436,s=t*.615+r*-.51499+n*-.10001;return[o,i,s]}function v2(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Tt(e){for(var t=1;t1?s-1:0),u=1;u1?s-1:0),u=1;u1?s-1:0),u=1;u1?s-1:0),u=1;u1?s-1:0),u=1;u2?n-2:0),i=2;i1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=t.defaultBase16,o=n===void 0?E2:n,i=t.base16Themes,s=i===void 0?null:i,a=yX(r,s);a&&(r=Tt(Tt({},a),r));for(var u=x2.reduce(function(b,y){return b[y]=r[y]||o[y],b},{}),l=Object.keys(r).reduce(function(b,y){return x2.indexOf(y)===-1&&(b[y]=r[y]),b},{}),c=e(u),f=hX(l,c),p=arguments.length,d=new Array(p>3?p-3:0),h=3;h({BACKGROUND_COLOR:e.base00,TEXT_COLOR:e.base07,STRING_COLOR:e.base0B,DATE_COLOR:e.base0B,NUMBER_COLOR:e.base09,BOOLEAN_COLOR:e.base09,NULL_COLOR:e.base08,UNDEFINED_COLOR:e.base08,FUNCTION_COLOR:e.base08,SYMBOL_COLOR:e.base08,LABEL_COLOR:e.base0D,ARROW_COLOR:e.base0D,ITEM_STRING_COLOR:e.base0B,ITEM_STRING_EXPANDED_COLOR:e.base03}),vX=e=>({String:e.STRING_COLOR,Date:e.DATE_COLOR,Number:e.NUMBER_COLOR,Boolean:e.BOOLEAN_COLOR,Null:e.NULL_COLOR,Undefined:e.UNDEFINED_COLOR,Function:e.FUNCTION_COLOR,Symbol:e.SYMBOL_COLOR}),xX=e=>{let t=bX(e);return{tree:{border:0,padding:0,marginTop:"0.5em",marginBottom:"0.5em",marginLeft:"0.125em",marginRight:0,listStyle:"none",MozUserSelect:"none",WebkitUserSelect:"none",backgroundColor:t.BACKGROUND_COLOR},value:(r,n,o)=>{let{style:i}=r;return{style:{...i,paddingTop:"0.25em",paddingRight:0,marginLeft:"0.875em",WebkitUserSelect:"text",MozUserSelect:"text",wordWrap:"break-word",paddingLeft:o.length>1?"2.125em":"1.25em",textIndent:"-0.5em",wordBreak:"break-all"}}},label:{display:"inline-block",color:t.LABEL_COLOR},valueLabel:{margin:"0 0.5em 0 0"},valueText:(r,n)=>{let{style:o}=r;return{style:{...o,color:vX(t)[n]}}},itemRange:(r,n)=>({style:{paddingTop:n?0:"0.25em",cursor:"pointer",color:t.LABEL_COLOR}}),arrow:(r,n,o)=>{let{style:i}=r;return{style:{...i,marginLeft:0,transition:"150ms",WebkitTransition:"150ms",MozTransition:"150ms",WebkitTransform:o?"rotateZ(90deg)":"rotateZ(0deg)",MozTransform:o?"rotateZ(90deg)":"rotateZ(0deg)",transform:o?"rotateZ(90deg)":"rotateZ(0deg)",transformOrigin:"45% 50%",WebkitTransformOrigin:"45% 50%",MozTransformOrigin:"45% 50%",position:"relative",lineHeight:"1.1em",fontSize:"0.75em"}}},arrowContainer:(r,n)=>{let{style:o}=r;return{style:{...o,display:"inline-block",paddingRight:"0.5em",paddingLeft:n==="double"?"1em":0,cursor:"pointer"}}},arrowSign:{color:t.ARROW_COLOR},arrowSignInner:{position:"absolute",top:0,left:"-0.4em"},nestedNode:(r,n,o,i,s)=>{let{style:a}=r;return{style:{...a,position:"relative",paddingTop:"0.25em",marginLeft:n.length>1?"0.875em":0,paddingLeft:s?0:"1.125em"}}},rootNode:{padding:0,margin:0},nestedNodeLabel:(r,n,o,i,s)=>{let{style:a}=r;return{style:{...a,margin:0,padding:0,WebkitUserSelect:s?"inherit":"text",MozUserSelect:s?"inherit":"text",cursor:s?"pointer":"default"}}},nestedNodeItemString:(r,n,o,i)=>{let{style:s}=r;return{style:{...s,paddingLeft:"0.5em",cursor:"default",color:i?t.ITEM_STRING_EXPANDED_COLOR:t.ITEM_STRING_COLOR}}},nestedNodeItemType:{marginLeft:"0.3em",marginRight:"0.3em"},nestedNodeChildren:(r,n,o)=>{let{style:i}=r;return{style:{...i,padding:0,margin:0,listStyle:"none",display:o?"block":"none"}}},rootNodeChildren:{padding:0,margin:0,listStyle:"none"}}},wX=S2(xX,{defaultBase16:C2}),T2=wX;var O2=e=>e,EX=(e,t,r)=>r===0,SX=(e,t,r,n)=>R.createElement("span",null,r," ",n),IX=e=>{let[t]=e;return R.createElement("span",null,t,":")},_X=()=>!1;function A2(e){let{data:t,theme:r,invertTheme:n,keyPath:o=["root"],labelRenderer:i=IX,valueRenderer:s=O2,shouldExpandNodeInitially:a=EX,hideRoot:u=!1,getItemString:l=SX,postprocessValue:c=O2,isCustomNode:f=_X,collectionLimit:p=50,sortObjectKeys:d=!1}=e,h=ne(()=>T2(n?_2(r):r),[r,n]);return R.createElement("ul",h("tree"),R.createElement(uu,{keyPath:u?[]:o,value:c(t),isCustomNode:f,styling:h,labelRenderer:i,valueRenderer:s,shouldExpandNodeInitially:a,hideRoot:u,getItemString:l,postprocessValue:c,collectionLimit:p,sortObjectKeys:d}))}var k2=require("obsidian");var CX=()=>{let[e]=St("clipboard-copy");return m("span",{ref:e})},N2=(e,t,r,n,o)=>{if(o.length===1){let i=async s=>{s.preventDefault(),s.stopPropagation(),await navigator.clipboard.writeText("```json\n"+JSON.stringify(t,null,2)+"\n```"),new k2.Notice("Copied JSON code block to clipboard")};return m("span",{role:"button",tabIndex:0,onClick:i,onKeyDown:i,"aria-label":"Copy item details in JSON",children:[n," ",m(CX,{})]})}if(o[1]==="creators"&&o.length===3){let i=Ia(t);if(i)return m("span",{children:i})}if(o[1]==="tags"&&o.length===3){let i=t;return m("span",{children:['"',i.name,'"" (',yo[i.type],")"]})}if(o[0]==="sortIndex"&&o.length===2)return m("span",{children:["[",t.join(", "),"]"]});if(o.length===2&&Array.isArray(t)&&t.length===1){let i=JSON.stringify(t[0]);return m("span",{children:[r," ",i.length>100?i.slice(0,100)+"...":i]})}return m("span",{children:[r," ",n]})};var D2=require("obsidian");var P2=(e,t,r,n)=>{let o=e.length===1,i=e.slice(0,-1),s=R2(i);return m("span",{...o?void 0:{onContextMenu:l=>{let c=new D2.Menu().addItem(f=>f.setTitle("Copy template").onClick(()=>{navigator.clipboard.writeText(`<%= ${s} %>`)}));n&&t!=="Array"&&c.addItem(f=>f.setTitle("Copy template (using with)").onClick(()=>{let[p,...d]=i,h=typeof p=="string"&&F2.test(p)?p:`'${p}'`,b=R2(d);navigator.clipboard.writeText(`<% { const { ${h}: $it } = ${b}; %> + <%= $it %> +<% } %>`)})),t==="Array"&&c.addItem(f=>f.setTitle("Copy template (using for-of loop)").onClick(()=>{navigator.clipboard.writeText(`<% for (const $it of ${s}) { %> + <%= $it %> +<% } %>`)})).addItem(f=>f.setTitle("Copy template (using forEach)").onClick(()=>{navigator.clipboard.writeText(`<% ${s}.forEach(($it, i) => { %> + <%= $it %> +<% }) %>`)})).addItem(f=>f.setTitle("Copy template (pick first element)").onClick(()=>{navigator.clipboard.writeText(`<%= ${s}.first() %>`)})).addItem(f=>f.setTitle("Copy template (pick last element)").onClick(()=>{navigator.clipboard.writeText(`<%= ${s}.last() %>`)})),eg.has(i[0])||c.addItem(f=>f.setTitle("Copy template (render when present)").onClick(()=>{navigator.clipboard.writeText(`<% if (${s}) { %> + <%= ${s} %> +<% } %>`)})),l.preventDefault(),c.showAtMouseEvent(l.nativeEvent)},style:{cursor:"context-menu"}},children:[e[0],": "]})},R2=e=>"it"+e.map(TX).reverse().join(""),F2=/^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u,TX=e=>typeof e=="number"?`[${e}]`:F2.test(e)?`.${e}`:`[${JSON.stringify(e)}]`;var OX=new Set(["sortIndex"]),AX=new Set(["creators","tags"]),kX=new Set(["position"]),$2=(e,t,r)=>{let n=e[0];return OX.has(n)||AX.has(n)&&Array.isArray(t)&&t.length>6?!1:!!(kX.has(n)||r<1||r<2&&Array.isArray(t)&&t.length>1)};var NX={grad:.9,turn:360,rad:360/(2*Math.PI)},an=function(e){return typeof e=="string"?e.length>0:typeof e=="number"},Ze=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=Math.pow(10,t)),Math.round(r*e)/r+0},nr=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=1),e>r?r:e>t?e:t},H2=function(e){return(e=isFinite(e)?e%360:0)>0?e:e+360},M2=function(e){return{r:nr(e.r,0,255),g:nr(e.g,0,255),b:nr(e.b,0,255),a:nr(e.a)}},Ob=function(e){return{r:Ze(e.r),g:Ze(e.g),b:Ze(e.b),a:Ze(e.a,3)}},RX=/^#([0-9a-f]{3,8})$/i,Vp=function(e){var t=e.toString(16);return t.length<2?"0"+t:t},K2=function(e){var t=e.r,r=e.g,n=e.b,o=e.a,i=Math.max(t,r,n),s=i-Math.min(t,r,n),a=s?i===t?(r-n)/s:i===r?2+(n-t)/s:4+(t-r)/s:0;return{h:60*(a<0?a+6:a),s:i?s/i*100:0,v:i/255*100,a:o}},V2=function(e){var t=e.h,r=e.s,n=e.v,o=e.a;t=t/360*6,r/=100,n/=100;var i=Math.floor(t),s=n*(1-r),a=n*(1-(t-i)*r),u=n*(1-(1-t+i)*r),l=i%6;return{r:255*[n,a,s,s,u,n][l],g:255*[u,n,n,a,s,s][l],b:255*[s,s,u,n,n,a][l],a:o}},j2=function(e){return{h:H2(e.h),s:nr(e.s,0,100),l:nr(e.l,0,100),a:nr(e.a)}},L2=function(e){return{h:Ze(e.h),s:Ze(e.s),l:Ze(e.l),a:Ze(e.a,3)}},q2=function(e){return V2((r=(t=e).s,{h:t.h,s:(r*=((n=t.l)<50?n:100-n)/100)>0?2*r/(n+r)*100:0,v:n+r,a:t.a}));var t,r,n},_u=function(e){return{h:(t=K2(e)).h,s:(o=(200-(r=t.s))*(n=t.v)/100)>0&&o<200?r*n/100/(o<=100?o:200-o)*100:0,l:o/2,a:t.a};var t,r,n,o},DX=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,PX=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,FX=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,$X=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,B2={string:[[function(e){var t=RX.exec(e);return t?(e=t[1]).length<=4?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:e.length===4?Ze(parseInt(e[3]+e[3],16)/255,2):1}:e.length===6||e.length===8?{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16),a:e.length===8?Ze(parseInt(e.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(e){var t=FX.exec(e)||$X.exec(e);return t?t[2]!==t[4]||t[4]!==t[6]?null:M2({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(e){var t=DX.exec(e)||PX.exec(e);if(!t)return null;var r,n,o=j2({h:(r=t[1],n=t[2],n===void 0&&(n="deg"),Number(r)*(NX[n]||1)),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)});return q2(o)},"hsl"]],object:[[function(e){var t=e.r,r=e.g,n=e.b,o=e.a,i=o===void 0?1:o;return an(t)&&an(r)&&an(n)?M2({r:Number(t),g:Number(r),b:Number(n),a:Number(i)}):null},"rgb"],[function(e){var t=e.h,r=e.s,n=e.l,o=e.a,i=o===void 0?1:o;if(!an(t)||!an(r)||!an(n))return null;var s=j2({h:Number(t),s:Number(r),l:Number(n),a:Number(i)});return q2(s)},"hsl"],[function(e){var t=e.h,r=e.s,n=e.v,o=e.a,i=o===void 0?1:o;if(!an(t)||!an(r)||!an(n))return null;var s=function(a){return{h:H2(a.h),s:nr(a.s,0,100),v:nr(a.v,0,100),a:nr(a.a)}}({h:Number(t),s:Number(r),v:Number(n),a:Number(i)});return V2(s)},"hsv"]]},z2=function(e,t){for(var r=0;r=.5},e.prototype.toHex=function(){return t=Ob(this.rgba),r=t.r,n=t.g,o=t.b,s=(i=t.a)<1?Vp(Ze(255*i)):"","#"+Vp(r)+Vp(n)+Vp(o)+s;var t,r,n,o,i,s},e.prototype.toRgb=function(){return Ob(this.rgba)},e.prototype.toRgbString=function(){return t=Ob(this.rgba),r=t.r,n=t.g,o=t.b,(i=t.a)<1?"rgba("+r+", "+n+", "+o+", "+i+")":"rgb("+r+", "+n+", "+o+")";var t,r,n,o,i},e.prototype.toHsl=function(){return L2(_u(this.rgba))},e.prototype.toHslString=function(){return t=L2(_u(this.rgba)),r=t.h,n=t.s,o=t.l,(i=t.a)<1?"hsla("+r+", "+n+"%, "+o+"%, "+i+")":"hsl("+r+", "+n+"%, "+o+"%)";var t,r,n,o,i},e.prototype.toHsv=function(){return t=K2(this.rgba),{h:Ze(t.h),s:Ze(t.s),v:Ze(t.v),a:Ze(t.a,3)};var t},e.prototype.invert=function(){return Lt({r:255-(t=this.rgba).r,g:255-t.g,b:255-t.b,a:t.a});var t},e.prototype.saturate=function(t){return t===void 0&&(t=.1),Lt(Ab(this.rgba,t))},e.prototype.desaturate=function(t){return t===void 0&&(t=.1),Lt(Ab(this.rgba,-t))},e.prototype.grayscale=function(){return Lt(Ab(this.rgba,-1))},e.prototype.lighten=function(t){return t===void 0&&(t=.1),Lt(U2(this.rgba,t))},e.prototype.darken=function(t){return t===void 0&&(t=.1),Lt(U2(this.rgba,-t))},e.prototype.rotate=function(t){return t===void 0&&(t=15),this.hue(this.hue()+t)},e.prototype.alpha=function(t){return typeof t=="number"?Lt({r:(r=this.rgba).r,g:r.g,b:r.b,a:t}):Ze(this.rgba.a,3);var r},e.prototype.hue=function(t){var r=_u(this.rgba);return typeof t=="number"?Lt({h:t,s:r.s,l:r.l,a:r.a}):Ze(r.h)},e.prototype.isEqual=function(t){return this.toHex()===Lt(t).toHex()},e}(),Lt=function(e){return e instanceof W2?e:new W2(e)};var jX=/^#(?:[\dA-F]{3}){1,2}$|^#(?:[\dA-F]{4}){1,2}$/i,LX=e=>{let t=Lt(e),{r,g:n,b:o}=t.rgba;return r*.299+n*.587+o*.114>186},G2=(e,t,...r)=>{if(typeof t=="string"&&jX.test(t))return m("span",{style:{backgroundColor:t,padding:"0 0.5em",color:LX(t)?"black":"white"},children:t});let n;return r[0]==="linkMode"&&typeof t=="number"&&(n=xl[t]),r[0]==="type"&&typeof t=="number"&&(r.length===2&&_e[t]?n=_e[t]:r.length===4&&typeof r[1]=="number"&&r[2]==="tags"&&yo[t]&&(n=yo[t])),n?m($,{children:[e," ",m("span",{children:["(",n,")"]})]}):e};var J2=()=>document.body.classList.contains("theme-dark"),qX={scheme:"Solarized Light",author:"Ethan Schoonover (modified by aramisgithub)",base00:"transparent",base01:"#eee8d5",base02:"#93a1a1",base03:"#839496",base04:"#657b83",base05:"#586e75",base06:"#073642",base07:"#002b36",base08:"#dc322f",base09:"#cb4b16",base0A:"#b58900",base0B:"#859900",base0C:"#2aa198",base0D:"#268bd2",base0E:"#6c71c4",base0F:"#d33682"},BX={scheme:"Solarized Dark",author:"Ethan Schoonover (modified by aramisgithub)",base00:"transparent",base01:"#073642",base02:"#586e75",base03:"#657b83",base04:"#839496",base05:"#93a1a1",base06:"#eee8d5",base07:"#fdf6e3",base08:"#dc322f",base09:"#cb4b16",base0A:"#b58900",base0B:"#859900",base0C:"#2aa198",base0D:"#268bd2",base0E:"#6c71c4",base0F:"#d33682"};function Nb({item:e,registerCssChange:t}){let[r,n]=j(()=>J2());return U(()=>t?.(()=>n(J2())),[t]),e?m(A2,{data:e,theme:r?BX:qX,invertTheme:!1,keyPath:["Zotero Item Data"],shouldExpandNodeInitially:$2,valueRenderer:G2,labelRenderer:P2,getItemString:N2}):m("div",{children:"No Details Available"})}var Z2=require("obsidian");var Gp=e=>({plugin:e,sourcePath:""});function zX(){return Ja((e,t)=>({preview:null,templateType:null,setTemplateType(r){e(n=>({...n,templateType:r||void 0}))},setPreview(r){e(({...n})=>({...n,preview:r??null}))},async setPreviewFromState(r,n){let o=t().preview;if(o?.docItem.itemID===r?.docItem&&o?.attachment?.itemID===r?.attachment&&o?.annot?.itemID===r?.annot)return!1;let i=n.database.settings.libId;if(!r.docItem)return console.error("TemplatePreview: no docItem provided"),!1;let[s]=await n.databaseAPI.getItems([[r.docItem,i]]);if(!s)return console.error("TemplatePreview: no docItem found for id "+r.docItem),!1;let a=await n.databaseAPI.getAttachments(r.docItem,i),u=a.find(d=>d.itemID===r.attachment)??null;r.attachment&&!u&&console.error("TemplatePreview: no attachment found for id "+r.attachment);let l=u?await n.databaseAPI.getAnnotations(u.itemID,i):[],c=l.find(d=>d.itemID===r.annot);r.annot&&!c&&console.error("TemplatePreview: no annotation found for id "+r.annot);let f=await n.databaseAPI.getTags([[r.docItem,i],...l.map(d=>[d.itemID,i])]),p;try{p=await n.databaseAPI.getNotes(s.itemID,i).then(d=>n.noteParser.normalizeNotes(d))}catch(d){console.error(d),p=[]}return e(()=>({preview:{docItem:s,allAttachments:a,annotations:l,attachment:u,tags:f,annot:l.find(d=>d.itemID===r.annot),notes:p}})),!0}}))}function Y2(e,t){let r=null,n=null,o=null;return function(...i){if(r&&window.clearTimeout(r),n){o=i;return}r=window.setTimeout(()=>{r=null,n=e(...i).then(()=>{o?n=e(...o):n=null}).catch(s=>{console.error(s),n=null})},t)}}var Xi=class extends Z2.FileView{constructor(r,n){super(r);this.plugin=n;this.store=zX()}store;canAcceptExtension(r){return r==="md"}getTemplateType(r){if(!r)return!1;let n=ct(r.path,this.plugin.settings.templateDir);return n?.type!=="ejectable"?!1:n.name}setTemplateType(r){this.store.getState().setTemplateType(r)}async onLoadFile(r){await super.onLoadFile(r),this.setTemplateType(this.getTemplateType(r))}getState(){let r=super.getState(),{preview:n}=this.store.getState(),o;if(!n)o={preview:null};else{let{docItem:i,attachment:s,annot:a}=n;o={preview:{docItem:i.itemID,attachment:s?.itemID,annot:a?.itemID}}}return{...r,...o}}async setState(r,n){if(await super.setState(r,n),r.preview===void 0)return;let o=this.store.getState();r.preview===null?o.setPreview(null):await o.setPreviewFromState(r.preview,this.plugin)}setPreview(r){this.store.getState().setPreview(r)}async onOpen(){await super.onOpen();let[r,n]=ui(this.plugin);n&&this.register(n),await r}};var Qi="zotero-item-details",X2=({templateType:e})=>e==="annotation"?e:"note",Jp=class extends Xi{getViewType(){return Qi}getDisplayText(){let t=this.store.getState();return t.templateType?"Zotero Item Details: "+X2(t):"Zotero Item Details"}async onOpen(){await super.onOpen();let[t,r]=ui(this.plugin);r&&this.register(r),await t,R.render(m(UX,{store:this.store,plugin:this.plugin}),this.contentEl)}async onClose(){R.unmountComponentAtNode(this.contentEl),await super.onClose()}};function UX({store:e,plugin:t}){let r=_t(e,X2),n=_t(e,i=>i.preview),o=ne(()=>{let i=Gp(t);if(!n)return null;switch(r){case"note":{let s=It(n,i);return s.docItem.annotations=void 0,s.docItem}case"annotation":{let s=It(n,i),a=n.annot?s.annotations.find(u=>u.itemID===n.annot?.itemID):s.annotations[0];return a?(a.docItem=void 0,a):null}default:throw new Error("Unsupported template type")}},[t,n,r]);return o?m(Nb,{item:o,registerCssChange:i=>(t.app.workspace.on("css-change",i),()=>t.app.workspace.off("css-change",i))}):m("div",{})}var Q2=ge(si(),1),or=require("obsidian");var es="zotero-template-preview",Zp=class extends Xi{getViewType(){return es}getDisplayText(){let t=this.store.getState().templateType;return t?"Zotero Template Preview: "+t:"Zotero Template Preview"}async switchToTemplate(t){if(!this.leaf.group)return!1;let r=eM(this.leaf.group,this.plugin);if(!r)return!1;let n=Db(t,this.plugin.settings.templateDir,this.app);if(!n||!(n instanceof or.TFile)){new or.Notice("Template file not found: "+t);return}return await r.openFile(n),!0}onload(){let t={annots:this.addAction("list-ordered","Open Template for Annotations",async()=>await this.switchToTemplate("annots")||new or.Notice("Cannot switch to template")),note:this.addAction("file-input","Open Note Template",async()=>await this.switchToTemplate("note")||new or.Notice("Cannot switch to template")),annotation:this.addAction("highlighter","Open Template for Single Annotation",async()=>await this.switchToTemplate("annotation")||new or.Notice("Cannot switch to template")),field:this.addAction("info","Open Template for Note Properties",async()=>await this.switchToTemplate("field")||new or.Notice("Cannot switch to template"))};Object.values(t).forEach(r=>r.hide()),this.register(this.store.subscribe((r,n)=>{if(r.templateType!==n.templateType)for(let[o,i]of Object.entries(t))i.toggle(o!==r.templateType)})),this.registerEvent(this.app.vault.on("zotero:template-updated",r=>{let n=this.getTemplateType(this.file);n&&r===n&&(this.setTemplateType(n),this.requestRender())}))}content=null;async render(){let{preview:t,templateType:r}=this.store.getState();if(!r){this.contentEl.empty(),this.contentEl.setText("No template preview available");return}if(!t){this.contentEl.empty(),this.contentEl.setText("No preview data available");return}let n="",o=Gp(this.plugin),i=this.plugin.templateRenderer;try{switch(r){case"annotation":{let u=t.annot??t.annotations[0];if(!u){this.contentEl.setText("No annotation data available");return}n=i.renderAnnot(u,t,o);break}case"annots":n=i.renderAnnots(t,o);break;case"note":n=i.renderNote(t,o);break;case"field":n=i.renderFrontmatter(t,o);break;case"cite":n=i.renderCitations([t],o);break;case"cite2":n=i.renderCitations([t],o,!0);break;case"colored":n=i.renderColored({content:"I'm Highlight",color:"#FF000080",colorName:"red",bgColor:"#FF000080",bgColorName:"red"});break;default:(0,Q2.assertNever)(r)}if(n===this.content?.markdown)return;this.content?.unload(),this.contentEl.empty();let s=await(0,or.loadPrism)(),a=s.highlight(n,s.languages.markdown,"markdown");this.content=new Rb(n),this.contentEl.createEl("pre").createEl("code",{cls:"language-markdown"}).innerHTML=a}catch(s){this.content?.unload(),this.contentEl.empty();let a=s instanceof Error?s.message:String(s);this.contentEl.createEl("h1",{text:`Error while rendering ${r}`,cls:["mod-error","message"]}),this.contentEl.createEl("pre",{text:a})}}requestRender=Y2(()=>this.render(),200);async onOpen(){await super.onOpen(),this.register(this.store.subscribe((t,r)=>{t.templateType!==r.templateType?this.requestRender():t.preview!==r.preview&&this.requestRender()}))}},Rb=class extends or.Component{constructor(r){super();this.markdown=r}};async function Bo(e,t,{app:r,settings:n}){let{workspace:o}=r,i=Db(e,n.templateDir,r);if(!i||!(i instanceof qo.TFile)){new qo.Notice("Template file not found: "+e);return}let s=o.getLeavesOfType("markdown").filter(c=>{let f=c.view;return f.file?ct(f.file.path,n.templateDir)?.type==="ejectable"&&c.getRoot().type==="floating":!1});if(s.length>0){let c=s[0];if(await c.openFile(i),!c.group)return;let f=o.getGroupLeaves(c.group);for(let p of f){let d=p.view.getViewType();if(d===es||d===Qi){let h=p.view.getState();await p.view.setState({...h,preview:t},{})}}return}let a=o.openPopoutLeaf(),u=o.createLeafBySplit(a,"vertical"),l=o.createLeafBySplit(u,"vertical");await Promise.all([a.openFile(i,{active:!0}),u.setViewState({type:es,state:{file:i.path,preview:t},group:a}),l.setViewState({type:Qi,state:{file:i.path,preview:t},group:a})])}function Db(e,t,r){let n=io(e,t),o=r.vault.getAbstractFileByPath(n);return o instanceof qo.TFile?o:null}function eM(e,t){return t.app.workspace.getGroupLeaves(e).find(n=>n.view instanceof qo.MarkdownView&&n.view.file&&ct(n.view.file.path,t.settings.templateDir)?.type==="ejectable")}var tM=e=>(t,r,n)=>{let{imgCacheImporter:o}=e,i=String(t.timeStamp),s="drag-source";t.dataTransfer.setData("text/plain",r()),t.dataTransfer.setData(s,i),t.dataTransfer.dropEffect="copy";let a=t.target.win,{workspace:u}=e.app,l=p=>{p.dataTransfer?.getData(s)===i&&o.flush(),u.off("editor-drop",l),a.removeEventListener("dragend",c)},c=()=>{o.cancel(),u.off("editor-drop",l)},f=u.on("editor-drop",p=>{p.dataTransfer?.getData("drag-source")===i&&o.flush(),u.offref(f)});a.addEventListener("dragend",c,{once:!0}),n&&t.dataTransfer.setDragImage(n,0,0)},rM=e=>({storeSelector:t=>Fl(t,["doc","attachment","allAttachments","tags","annotations"]),get:(t,{allAttachments:r,attachment:n,doc:o,tags:i,annotations:s})=>!r||!n||!o||!i[t.itemID]||!s?null:()=>{let a=e.app.workspace.getActiveFile(),u=a&&at(a)?a.path:null;return e.templateRenderer.renderAnnot(t,{tags:i,attachment:n,allAttachments:r,annotations:s,docItem:o.docItem,notes:[]},{plugin:e,sourcePath:u,merge:!1})}});var ts=require("obsidian");var nM=e=>(t,r)=>{let n=new ts.Menu;if(n.addItem(o=>o.setTitle("Jump to note").setIcon("links-going-out").onClick(WX(r,e))),e.app.workspace.trigger("zotero:open-annot-menu",r,n),t.nativeEvent instanceof MouseEvent)n.showAtMouseEvent(t.nativeEvent);else{let o=t.currentTarget.getBoundingClientRect();n.showAtPosition({x:o.left,y:o.bottom})}},WX=(e,t)=>async()=>{let r=t.app.workspace.getActiveFile(),n=r&&at(r)?r.path:void 0,o=t.plugin.noteIndex.getBlocksFor({item:e,file:n}).shift();if(!o){new ts.Notice("No embed for this annotation in current note");return}let i=o.blocks.sort((p,d)=>{let h=p.start.offset-d.start.offset;return h!==0?h:p.end.offset-d.end.offset})[0];await sleep(10);let{leaf:s}=t,{workspace:a,vault:u}=t.app,l;if(s.group)l=a.getGroupLeaves(s.group);else{l=[];let p=a.getActiveFileView();p&&l.push(p.leaf)}let c=!1,f=i.end.line+1;for(let p of l)p&&p.view instanceof ts.MarkdownView&&p.view.file?.path===o.file&&(p.view.setEphemeralState({line:f}),c=!0);if(!c){let p=u.getAbstractFileByPath(o.file);if(!p||!at(p))throw new Error("File from block info not found: "+o.file);a.getLeaf().openFile(p,{eState:{line:f}})}};var oM=(e,t)=>t.length===0?null:e?t.find(r=>r.itemID===e)??t[0]:t[0],Yp=()=>({doc:null,allAttachments:null,attachmentID:null,annotations:null,attachment:null,tags:{}}),HX=()=>({follow:"zt-reader",doc:null,allAttachments:null,attachmentID:null,annotations:null,attachment:null,tags:{}}),Cu=e=>e.databaseAPI,iM=e=>Ja((t,r)=>{let n=async(s,a)=>{let u=(await Cu(e).getAttachments(s,a)).filter(ga);t(l=>({...l,allAttachments:u,attachment:oM(l.attachmentID,u)}))},o=async(s,a)=>{let u=await Cu(e).getTags([[s,a]]);return t(l=>({...l,tags:u})),u},i=async s=>{let{attachment:a}=r();if(!a)return;let u=await Cu(e).getAnnotations(a.itemID,s),l=ng(u);t(p=>({...p,annotations:og(l),attachment:a}));let c=await Cu(e).getTags(u.map(p=>[p.itemID,s])),f=ig(l,c);t(p=>({...p,tags:{...p.tags,...f}}))};return{...HX(),loadDocItem:async(s,a,u,l=!1)=>{if(s<0)return t(Yp());if(r().doc?.docItem.itemID===s&&!l)return;let c=(await Cu(e).getItems([[s,u]]))[0];if(!c)return t(Yp());let f={docItem:c,lib:u};if(a<0){let p=Zh(window.localStorage,c);t({...Yp(),doc:f,attachmentID:p})}else Ti(window.localStorage,c,a),t({...Yp(),doc:f,attachmentID:a});await n(c.itemID,u),await o(c.itemID,u),await i(u)},refresh:async()=>{let{doc:s,attachment:a}=r();if(!s)return;let{docItem:u,lib:l}=s;await n(u.itemID,l),await o(u.itemID,l),a&&await i(l)},setActiveAtch:s=>{let{doc:a,allAttachments:u}=r();if(a)if(Ti(window.localStorage,a.docItem,s),!u)t(l=>({...l,attachment:null,attachmentID:s}));else{let l=oM(s,u);t(c=>({...c,attachment:l,attachmentID:s}))}},setFollow:s=>t({follow:s})}});var ed="zotero-annotation-view",Xp=class extends Gf{constructor(r,n){super(r);this.plugin=n;this.store=iM(n)}update(){if(this.follow!=="ob-note")return;let r=this.plugin.settings.libId;(async()=>{if(this.file?.extension!=="md")return!1;let n=Ao(this.file,this.app.metadataCache),o=ko(this.file,this.app.metadataCache);if(!n)return!1;let[i]=await this.plugin.databaseAPI.getItems([[n,r]]);return i?(this.setStatePrev(s=>({...s,follow:"ob-note",itemId:i.itemID,attachmentId:o?.[0]??void 0})),!0):!1})().then(n=>{n||this.setStatePrev(o=>({...o,follow:"ob-note",itemId:-1}))})}getViewType(){return ed}#e=null;onload(){super.onload(),this.contentEl.addClass("obzt");let r=null,n=!1,o=i=>{if(n)r=i;else{n=!0;let{itemId:s,attachmentId:a}=i;this.setStatePrev(u=>({...u,itemId:s,attachmentId:a})).then(()=>{if(n=!1,r===null)return;let u=r;r=null,o(u)})}};this.registerEvent(this.plugin.server.on("bg:notify",(i,s)=>{s.event==="reader/active"&&(this.#e=s.itemId,!(this.follow!=="zt-reader"||s.itemId<0||s.attachmentId<0)&&o(s))}))}getDisplayText(){return this.follow!=="ob-note"||!this.file?.basename?"Zotero Annotations":`Zotero Annotations for ${this.file.basename}`}getIcon(){return"highlighter"}get lib(){return this.plugin.settings.libId}store;get follow(){return this.store.getState().follow}getState(){let r=super.getState(),n=this.store.getState(),o={itemId:n.doc?.docItem.itemID??-1,attachmentId:n.attachment?.itemID??-1,follow:n.follow};return{...r&&typeof r=="object"?r:{},...o}}async setState(r,n){await super.setState(r,n??{});let{itemId:o=-1,attachmentId:i=-1,follow:s="zt-reader"}=r;this.store.getState().setFollow(s),await this.store.getState().loadDocItem(o,i,this.lib)}async setStatePrev(r){await this.setState(r(this.getState()))}onSetFollowZt=async()=>{this.setStatePrev(r=>({...r,follow:"zt-reader"})),await this.setStatePrev(({attachmentId:r,...n})=>({...n,follow:"zt-reader",...this.#e===null?{attachmentId:r}:{itemId:this.#e}}))};onSetFollowOb=()=>{this.store.getState().setFollow("ob-note"),this.update()};onSetFollowNull=async()=>{let{plugin:r}=this,n=await ep(r);if(!n)return;let{itemID:o}=n.value.item,i=r.settings.libId,s=await r.databaseAPI.getAttachments(o,i),a=await Zr(s,this.app);await this.setStatePrev(({attachmentId:u,...l})=>({...l,follow:null,itemId:o,attachmentId:a?.itemID}))};getContext(){let r=this,{plugin:n,store:o,app:i}=r;return{store:o,registerDbUpdate(s){return i.vault.on("zotero:db-refresh",s),()=>i.vault.off("zotero:db-refresh",s)},refreshConn:async()=>{await n.dbWorker.refresh({task:"dbConn"})},getImgSrc:s=>{let a=An(s,n.settings.current?.zoteroDataDir);return KX(a)},onShowDetails:async(s,a)=>{let u=o.getState(),l=u.attachmentID??void 0;if(s==="doc-item")await Bo("note",{docItem:a,attachment:l},n);else{let c=u.doc?.docItem.itemID;if(!c)throw new Error("Missing doc item when showing annotation details");await Bo("annotation",{docItem:c,attachment:l,annot:a},n)}},onDragStart:tM(n),onMoreOptions:nM(r),annotRenderer:rM(n),onSetFollow(s){let a=new Qp.Menu,u=o.getState().follow;if(u!=="zt-reader"&&a.addItem(l=>l.setIcon("book").setTitle("Follow active literature in Zotero reader").onClick(r.onSetFollowZt)),u!=="ob-note"&&a.addItem(l=>l.setIcon("file-edit").setTitle("Follow active literature note").onClick(r.onSetFollowOb)),a.addItem(l=>l.setIcon("file-lock-2").setTitle("Link with selected literature").onClick(async()=>{s.target.blur(),await r.onSetFollowNull()})),s.nativeEvent instanceof MouseEvent)a.showAtMouseEvent(s.nativeEvent);else{let c=s.target.getBoundingClientRect();a.showAtPosition({x:c.x,y:c.y})}}}}async onOpen(){await super.onOpen();let[r,n]=ui(this.plugin);n&&this.register(n),this.contentEl.empty(),this.contentEl.createDiv({cls:"pane-empty p-2",text:"Loading..."}),r.then(()=>{this.contentEl.empty(),R.render(m($n.Provider,{value:jP,children:m(Be.Provider,{value:this.getContext(),children:m(Qa,{})})}),this.contentEl)}).catch(o=>{this.contentEl.empty(),console.error("Failed to load annot view: ",o),this.contentEl.createDiv({cls:"pane-empty p-2",text:"Failed to load, Check console for details"})}),this.registerEvent(this.plugin.server.on("bg:notify",(o,i)=>{if(i.event!=="reader/annot-select")return;let s=i.updates.filter(([,u])=>u).pop();if(!s)return;let[a]=s;this.highlightAnnot(a)}))}async onClose(){R.unmountComponentAtNode(this.contentEl),await super.onClose()}async highlightAnnot(r){let n=this.contentEl.querySelector(`.annot-preview[data-id="${r}"]`);n instanceof HTMLElement&&(n.addClass("select-flashing"),n.scrollIntoView({behavior:"smooth",block:"center"}),await sleep(1500),n.removeClass("select-flashing"))}};function KX(e){return(Qp.Platform.resourcePathPrefix??"app://local/")+(0,sM.pathToFileURL)(e).pathname.substring(1)+`?${Date.now()}`}var aM=require("path/posix");var td=require("obsidian");var VX=[{command:"\u2191\u2193",purpose:"to navigate"},{command:"\u21B5",purpose:"to continue select note to import"},{command:"esc",purpose:"to dismiss"}],Pb=class extends nn{constructor(r){super(r);this.plugin=r;this.setInstructions(VX)}};async function uM(e){let t=await xo(new Pb(e));if(!t)return!1;let{value:{item:r}}=t,n=await e.databaseAPI.getNotes(r.itemID,e.settings.libId);if(n.length===0)return new td.Notice("No note found for selected literature"),!1;let o=await Hv(n,c=>c.title??c.note?.substring(0,20)??`No title (Key ${c.key})`);if(!o.item)return!1;let i=o.item;if(!i.note)return new td.Notice("Selected note is empty"),!1;let s=await e.noteParser.turndown(i.note),a=e.settings.current?.literatureNoteFolder,u=(0,aM.join)(a,"zt-import",To(i.title??[i.note.substring(0,10),i.key].join("_"),{replacement:"_"})),l=await e.app.fileManager.createNewMarkdownFile(e.app.vault.getRoot(),u,s);return await e.app.workspace.openLinkText(l.path,"",!0),new td.Notice(`Note imported: ${i.title??i.key}`),!0}var $r=require("obsidian");var rd=class extends ue{plugin=this.use(be);onload(){this.registerEvent(this.plugin.server.on("zotero/open",t=>this.onZtOpen(Sc(t)))),this.registerEvent(this.plugin.server.on("zotero/export",t=>this.onZtExport(Sc(t)))),this.registerEvent(this.plugin.server.on("zotero/update",t=>this.onZtExport(Sc(t))))}async onZtOpen(t){if(t.type==="annotation"){new $r.Notice("Not implemented yet");return}if(t.items.length<1){new $r.Notice("No items to open");return}await this.plugin.noteFeatures.openNote(t.items[0])}async onZtUpdate(t){if(t.type==="annotation"){new $r.Notice("Single annotation update not yet supported");return}if(t.items.length<1){new $r.Notice("No items to open");return}if(t.items.length>1){new $r.Notice("Multiple literature note update not yet supported");return}await this.plugin.noteFeatures.updateNoteFromId(t.items[0])}async onZtExport(t){if(t.type==="annotation"){new $r.Notice("Not implemented yet");return}t.items.length<1?new $r.Notice("No items to open"):t.items.length>1&&new $r.Notice("Multiple items not yet supported");let{libraryID:r,id:n}=t.items[0],[o]=await this.plugin.databaseAPI.getItems([[n,r]]);if(!o){new $r.Notice("Item not found: "+n);return}let i=await this.plugin.noteFeatures.createNoteForDocItemFull(o);await this.plugin.app.workspace.openLinkText(i,"",!1,{active:!0})}};var cM=require("obsidian");var GX=[{command:"\u2191\u2193",purpose:"to navigate"},{command:"\u21B5",purpose:"to open/create literature note"},{command:"esc",purpose:"to dismiss"}],Fb=class extends nn{constructor(r){super(r);this.plugin=r;this.setInstructions(GX)}};async function $b(e){let t=await xo(new Fb(e));if(!t)return!1;let{value:{item:r},evt:n}=t;if(await e.noteFeatures.openNote(r,!0))return!0;let o=await e.noteFeatures.createNoteForDocItemFull(r);return await e.app.workspace.openLinkText(o,"",cM.Keymap.isModEvent(n),{active:!0}),!0}var Mb=class extends ue{plugin=this.use(be);protocol=this.use(rd);onload(){let{plugin:t}=this,{app:r}=t;t.addCommand({id:"note-quick-switcher",name:"Open quick switcher for literature notes",callback:()=>$b(t)}),t.registerView(ed,o=>new Xp(o,t)),t.registerView(es,o=>new Zp(o,t)),t.registerView(Qi,o=>new Jp(o,t)),t.registerEvent(t.app.workspace.on("file-menu",(o,i)=>{let s=ct(i.path,t.settings.templateDir);s?.type==="ejectable"&&o.addItem(a=>a.setIcon("edit").setTitle("Open template preview").onClick(()=>{Bo(s.name,null,t)}))})),t.addCommand({id:"zotero-annot-view",name:"Open Zotero annotation view in side panel",callback:()=>{r.workspace.ensureSideLeaf(ed,"right",{active:!0,state:{file:r.workspace.getActiveFile()?.path}})}}),t.addCommand({id:"insert-markdown-citation",name:"Insert Markdown citation",editorCallback:(o,i)=>ib(o,i.file,t)}),t.registerEditorSuggest(new iu(t));let n=async(o,i)=>{let s=t.settings.libId,a=Ao(o,r.metadataCache);if(!a)return new un.Notice("Cannot get zotero item key from file name"),!1;let[u]=await t.databaseAPI.getItems([[a,s]]);if(!u)return new un.Notice("Cannot find zotero item with key "+a),!1;await this.updateNote(u,i)};t.addCommand({id:"update-literature-note",name:"Update literature note",editorCheckCallback(o,i,s){let a=s.file&&Ga(s.file,r);if(o)return!!a;a&&n(s.file)}}),t.addCommand({id:"overwrite-update-literature-note",name:"Force update literature note by overwriting",editorCheckCallback(o,i,s){let a=s.file&&Ga(s.file,r);if(o)return!!a;a&&n(s.file,!0)}}),t.addCommand({id:"import-note",name:"Import note",callback:()=>uM(t)}),t.registerEvent(t.app.workspace.on("file-menu",(o,i)=>{Ga(i,r)&&(o.addItem(s=>s.setTitle("Update literature note").setIcon("sync").onClick(()=>n(i))),t.settings.current?.updateOverwrite||o.addItem(s=>s.setTitle("Force update by overwriting").setIcon("sync").onClick(()=>n(i,!0))))})),t.registerEvent(t.app.workspace.on("file-menu",(o,i)=>{let s=ct(i.path,t.settings.templateDir);s?.type==="ejectable"&&o.addItem(a=>a.setTitle("Reset to default").setIcon("reset").onClick(async()=>{activeWindow.confirm("Reset template to default?")&&await t.app.vault.modify(i,ot.Ejectable[s.name])}))}))}async openNote(t,r=!1){let{workspace:n}=this.plugin.app,{noteIndex:o}=this.plugin,i=o.getNotesFor(t);if(!i.length)return!r&&new un.Notice(`No literature note found for zotero item with key ${t.key}`),!1;let s=i.sort().shift();return await n.openLinkText(s,"",!1,{active:!0}),!0}async createNoteForDocItem(t,r){let{noteIndex:n}=this.plugin,o=n.getNotesFor(t);if(o.length)throw new nd(o,t.key);let{vault:i,fileManager:s}=this.plugin.app,{literatureNoteFolder:a}=this.plugin.settings.current,u=this.plugin.templateRenderer,l=(0,lM.join)(a,r.filename(u,{plugin:this.plugin})),c=i.getAbstractFileByPath(l);if(c&&Ao(c,this.plugin.app.metadataCache))throw new nd([l],t.key);return await s.createNewMarkdownFile(i.getRoot(),l,r.note(u,{plugin:this.plugin,sourcePath:l}))}async createNoteForDocItemFull(t){let r=this.plugin.settings.libId,n=await this.plugin.databaseAPI.getAttachments(t.itemID,r),o=await Zr(n,this.plugin.app);o&&Ni(o,t);let i=await this.plugin.databaseAPI.getNotes(t.itemID,r).then(l=>this.plugin.noteParser.normalizeNotes(l)),s=await ou(t,{all:n,selected:o?[o]:[],notes:i},this.plugin),a=Object.values(s)[0];return(await this.createNoteForDocItem(t,{note:(l,c)=>l.renderNote(a,c),filename:(l,c)=>l.renderFilename(a,c)})).path}async updateNoteFromId(t){let{noteIndex:r,databaseAPI:n}=this.plugin;if(!r.getNotesFor(t).length){new un.Notice(`No literature note found for zotero item with key ${t.key}`);return}let[i]=await n.getItems([[t.key,t.libraryID]]);if(!i){new un.Notice(`Cannot find zotero item with key ${t.key}`);return}await this.updateNote(i)}async updateNote(t,r){let n=await BP(t,this.plugin,r);n?n.addedAnnots>0||n.updatedAnnots>0?new un.Notice(`Affected ${n.notes} notes, annotations: ${n.addedAnnots} added, ${n.updatedAnnots} updated`):new un.Notice(`Affected ${n.notes} notes, no annotation updated`):new un.Notice("No note found for this literature")}},fM=Mb,nd=class extends Error{constructor(r,n){super(`Note linked to ${n} already exists: ${r.join(",")}`);this.targets=r;this.key=n;this.name="NoteExistsError"}};var id=require("@codemirror/language");var jb=require("obsidian");var od=class extends ue{plugin=this.use(be);onload(){this.patchEditorClick()}async patchEditorClick(){let{workspace:t}=this.plugin.app,{noteIndex:r,database:n,settings:o,noteFeatures:i}=this.plugin;await w1(this.plugin.app);let s=()=>t.getLeavesOfType("markdown").length>0,[a,u]=qs({register:c=>t.on("layout-change",()=>{s()&&c()}),unregister:c=>t.offref(c),escape:s,timeout:null});u&&this.register(u),await a;let l=t.getLeavesOfType("markdown")[0].view;this.register(qt(l.editor.constructor.prototype,{getClickableTokenAt:c=>function(f,...p){let d=c.call(this,f,...p);return d||JX.call(this,f,r)}})),this.register(qt(l.editMode.constructor.prototype,{triggerClickableToken:c=>function(f,p){if(f.type==="internal-link"&&f.citekey==="zotero")(async()=>{let d=f.text,{[d]:h}=await n.api.getItemIDsFromCitekey([f.text]);if(h<0){new jb.Notice(`Citekey ${d} not found in Zotero`);return}let[b]=await n.api.getItems([[h,o.libId]]);if(!b){new jb.Notice(`Item not found for citekey ${d}`);return}let y=await i.createNoteForDocItemFull(b);await t.openLinkText(y,"",!0,{active:!0})})();else return c.call(this,f,p)}}))}};function JX(e,t){let r=this.cm,n=r.state.doc,o=[],i=n.line(e.line+1),s=(0,id.syntaxTree)(r.state),a=i.from;s.iterate({from:i.from,to:i.to,enter:b=>{let y=b.type,v=b.from,w=b.to,T=y.prop(id.tokenClassNodeProp);T&&(a=u){l=b;break}}if(l<0)return null;let c=o[l];if(!c.type.split(" ").includes("hmd-barelink"))return null;let p=n.sliceString(c.from,c.to);if(!p.startsWith("@"))return null;let d=p.slice(1),h={start:this.offsetToPos(c.from),end:this.offsetToPos(c.to)};if(t.citekeyCache.has(d)){let[b]=t.citekeyCache.get(d);return{type:"internal-link",text:b,...h}}else return{type:"internal-link",text:d,citekey:"zotero",...h}}var sd=require("obsidian");var rs=class extends ue{plugin=this.use(be);settings=this.use(de);app=this.use(sd.App);get meta(){return this.app.metadataCache}get vault(){return this.app.vault}get literatureNoteFolder(){return this.settings.current?.literatureNoteFolder}get joinPath(){return ZX(this.literatureNoteFolder)}noteCache=new Map;blockCache={byFile:new Map,byKey:new Map};citekeyCache=new Map;#e(t,r){let n=Ty(r);if(n){if(!this.noteCache.has(n))return this.noteCache.set(n,new Set([t])),!0;let i=this.noteCache.get(n),s=i.size;return i.add(t).size!==s}let o=!1;for(let[i,s]of this.noteCache.entries()){let a=s.delete(t);o||=a,a&&s.size===0&&this.noteCache.delete(i)}return o}#t(t,r){let n=u=>{let l=this.blockCache.byFile.get(u);if(!l)return!1;this.blockCache.byFile.delete(u);for(let c of l){let f=this.blockCache.byKey.get(c.key);f.delete(c),f.size===0&&this.blockCache.byKey.delete(c.key)}return!0};if(!r)return n(t);let{blocks:o,sections:i}=r;if(!i||!o)return n(t);let s=i.filter(Ka);if(s.length===0)return n(t);n(t);let a=Ya(s.flatMap(u=>Va(u.id).map(l=>[l,u.position])),bo(([u])=>u),ki((u,l)=>({file:t,key:u,blocks:l.map(([c,f])=>f)})),Rl);this.blockCache.byFile.set(t,a);for(let u of a){let l=this.blockCache.byKey.get(u.key);l?l.add(u):this.blockCache.byKey.set(u.key,new Set([u]))}return!0}#r(t,r){let n=r?.frontmatter?.citekey;if(n){if(!this.citekeyCache.has(n))return this.citekeyCache.set(n,new Set([t])),!0;let i=this.citekeyCache.get(n),s=i.size;return i.add(t).size!==s}let o=!1;for(let[i,s]of this.citekeyCache.entries()){let a=s.delete(t);o||=a,a&&s.size===0&&this.citekeyCache.delete(i)}return o}getNotesFor(t){let r=this.noteCache.get(Bt(t,!0));return r?[...r]:[]}getBlocksFor({file:t,item:r}){if(!t&&!r)throw new Error("no file or item provided");let n=r?this.blockCache.byKey.get(Bt(r,!0)):null,o=t?this.blockCache.byFile.get(t):null;return t&&r?!o||!n?[]:o.filter(i=>n.has(i)):t?o?[...o]:[]:r?n?[...n]:[]:[]}getBlocksIn(t){let r=this.blockCache.byFile.get(t);return r?[...r]:null}#n(t,r){r===void 0&&(r=this.meta.getCache(t)),[this.#e(t,r),this.#t(t,r),this.#r(t,r)].some(o=>o)&&this.meta.trigger("zotero:index-update",t)}#i(t){this.#n(t,null)}#s(){this.noteCache.clear(),this.blockCache.byFile.clear(),this.blockCache.byKey.clear(),this.meta.trigger("zotero:index-clear")}onload(){this.settings.once(()=>{[this.meta.on("changed",this.onMetaChanged,this),this.vault.on("rename",this.onFileRenamed,this),this.vault.on("delete",this.onFileRemoved,this)].forEach(this.registerEvent.bind(this));let[t,r]=x1(this.plugin.app,{});r&&this.register(r),t.then(()=>{this.onMetaBuilt(),this.plugin.addCommand({id:"refresh-note-index",name:"Refresh literature notes index",callback:()=>{this.reload(),new sd.Notice("Literature notes re-indexed")}})})}),this.register(qe(Qe(()=>this.reload(),()=>this.literatureNoteFolder,!0)))}onMetaBuilt(){for(let t of this.vault.getMarkdownFiles())this.#n(t.path)}onMetaChanged(t,r,n){this.#n(t.path,n)}onFileRemoved(t){at(t)&&this.#i(t.path)}onFileRenamed(t,r){this.#i(r),at(t)&&this.#n(t.path)}reload(){this.#s(),this.onMetaBuilt(),W.info("Note Index: Reloaded")}};le([fe],rs.prototype,"literatureNoteFolder",1);var ZX=e=>e==="/"?"":e+"/";var Lb=require("crypto");var pM="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var YX=128,zo,ns,XX=e=>{!zo||zo.lengthzo.length&&((0,Lb.randomFillSync)(zo),ns=0),ns+=e};var ad=(e=21)=>{XX(e-=0);let t="";for(let r=ns-e;r({filter:(t,r)=>t.nodeName==="SPAN"&&!!t.style.color,replacement:(t,r,n)=>{if(!(r instanceof HTMLElement))throw new Error("Unexpected node");let{color:o,colorName:i}=Bb(r.style.color),s=r.firstChild,a={bgColor:null,bgColorName:null};if(s===r.lastChild&&s?.nodeName==="SPAN"&&s.style.backgroundColor){let{color:u,colorName:l}=Bb(s.style.backgroundColor);a={bgColor:u,bgColorName:l}}return e.renderColored({content:t,color:o,colorName:i,...a})}}),gM=e=>({filter:(t,r)=>t.nodeName==="SPAN"&&!!t.style.backgroundColor,replacement:(t,r,n)=>{if(!(r instanceof HTMLElement))throw new Error("Unexpected node");let{color:o,colorName:i}=Bb(r.style.backgroundColor),s=r.parentElement;return s?.nodeName==="SPAN"&&s.style.color&&!r.nextSibling?t:e.renderColored({content:t,color:null,colorName:null,bgColor:o,bgColorName:i})}});function Bb(e){if(!e)return{colorName:null,color:null};let t=Lt(e).toHex().toUpperCase();return{colorName:Rf[t.substring(0,7)]??t,color:t}}var Tu={cite:{pattern:/%%ZTNOTE\.CITE:([\w-]{10})%%/g,create:e=>`%%ZTNOTE.CITE:${e}%%`},annot:{pattern:/%%ZTNOTE\.ANNOT:([\w-]{10})%%/g,create:e=>`%%ZTNOTE.ANNOT:${e}%%`}},zb=class{constructor(t){Object.assign(this,t)}toString(){return this.content}},ud=class extends ue{plugin=this.use(be);citations=new Map;annotations=new Map;tdService=new globalThis.TurndownService({headingStyle:"atx"}).addRule("color",hM(this.plugin.templateRenderer)).addRule("bg-color",gM(this.plugin.templateRenderer)).addRule("highlight-imported",{filter:(t,r)=>{if(t.tagName!=="P")return!1;let[n,o,i]=t.childNodes;return n instanceof HTMLElement&&n.classList.contains("highlight")?o instanceof HTMLElement?o.classList.contains("citation"):o instanceof Text&&o.textContent?.trim()===""?i instanceof HTMLElement&&i.classList.contains("citation"):!1:!1},replacement:(t,r,n)=>{let[o,i]=r.children;for(;r.firstChild!==i;)r.removeChild(r.firstChild);r.removeChild(i);let s=yM(o.dataset.annotation),a=r,u=ad(10);return this.annotations.set(u,{annotationKey:s.annotationKey,citationKey:os(s.citationItem.uris[0]),attachementKey:os(s.attachmentURI),commentHTML:a.textContent?.trim()?a.innerHTML:null,inline:!1}),Tu.annot.create(u)}}).addRule("citation",{filter:(t,r)=>t.classList.contains("citation")&&!!t.dataset.citation,replacement:(t,r,n)=>{if(!(r instanceof HTMLElement))throw new Error("Unexpected node");let o=QX(r.dataset.citation),i=ad(10);return this.citations.set(i,{text:t,itemKeys:o.citationItems.map(({uris:[s]})=>os(s))}),Tu.cite.create(i)}}).addRule("highlight",{filter:(t,r)=>t.classList.contains("highlight")&&!!t.dataset.annotation,replacement:(t,r,n)=>{if(!(r instanceof HTMLElement))throw new Error("Unexpected node");let o=yM(r.dataset.annotation),i=ad(10);return this.annotations.set(i,{annotationKey:o.annotationKey,citationKey:os(o.citationItem.uris[0]),attachementKey:os(o.attachmentURI),commentHTML:null,inline:!0}),Tu.annot.create(i)}});onload(){}async normalizeNotes(t){let r=[];for(let{note:n,...o}of t)r.push(new zb({...o,content:n?await this.turndown(n):"",note:n}));return r}async turndown(t){this.citations.clear(),this.annotations.clear();let r=this.tdService.turndown(t),n={citations:[...this.citations.values()].flatMap(c=>c.itemKeys),annotations:[...this.annotations.values()].map(c=>c.citationKey)},o=new Set([...this.annotations.values()].map(c=>c.attachementKey)),i=this.plugin.settings.libId,s=eQ([...n.citations,...n.annotations]),a=await this.plugin.databaseAPI.getItems(s.map(c=>[c,i])).then(async c=>{let f=new Map;for(let p=0;pc?[c.item.itemID,...[...c.annotations.values()].map(f=>f.itemID)]:[]).map(c=>[c,i])),l=r.replaceAll(Tu.cite.pattern,(c,f)=>{let p=this.citations.get(f),d=p.itemKeys.map(b=>{let y=a.get(b);if(!y)throw W.error("citation not found, key: ",b,p),new Error(`citation not found: key ${b}`);return{allAttachments:y.attachments,annotations:[],docItem:y.item,attachment:null,tags:u,notes:[]}});return this.plugin.templateRenderer.renderCitations(d,{plugin:this.plugin})}).replaceAll(Tu.annot.pattern,(c,f)=>{let p=this.annotations.get(f),d=a.get(p.citationKey);if(!d)throw W.error("citation not found, key:",f,p),new Error(`citation key not found: ${f}`);let h=d.annotations.get(p.annotationKey);if(!h)throw W.error("annotation not found, key: ",p.annotationKey,p),new Error(`annotation key not found: ${p.annotationKey}`);let b=this.plugin.templateRenderer.renderAnnot({...h,ztnote:{comment:p.commentHTML,get commentMd(){return p.commentHTML?(0,bM.htmlToMarkdown)(p.commentHTML):""},inline:p.inline}},{allAttachments:d.attachments,annotations:[...d.annotations.values()],attachment:d.attachments.find(y=>y.itemID===h.parentItemID),docItem:d.item,notes:[],tags:u},{plugin:this.plugin});return p.inline?b:` +`+b+` +`}).replace(/\n{3,}/g,` + +`);return this.citations.clear(),this.annotations.clear(),l}};function QX(e){let t=JSON.parse(decodeURIComponent(e)),{data:r,problems:n}=dM(t);if(n)throw W.error("Unexpected citation data",t,n),new Error("Unexpected citation data: "+n.summary);return r}function yM(e){let t=JSON.parse(decodeURIComponent(e)),{data:r,problems:n}=mM(t);if(n)throw W.error("Unexpected annotation data",t,n),new Error("Unexpected annotation data: "+n.summary);return r}function eQ(e){return[...new Set(e)]}var fd=require("fs/promises");var tQ=(e,t)=>t.some(r=>e instanceof r),vM,xM;function rQ(){return vM||(vM=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function nQ(){return xM||(xM=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var wM=new WeakMap,Wb=new WeakMap,EM=new WeakMap,Ub=new WeakMap,Kb=new WeakMap;function oQ(e){let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{r(Mr(e.result)),o()},s=()=>{n(e.error),o()};e.addEventListener("success",i),e.addEventListener("error",s)});return t.then(r=>{r instanceof IDBCursor&&wM.set(r,e)}).catch(()=>{}),Kb.set(t,e),t}function iQ(e){if(Wb.has(e))return;let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",s),e.removeEventListener("abort",s)},i=()=>{r(),o()},s=()=>{n(e.error||new DOMException("AbortError","AbortError")),o()};e.addEventListener("complete",i),e.addEventListener("error",s),e.addEventListener("abort",s)});Wb.set(e,t)}var Hb={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return Wb.get(e);if(t==="objectStoreNames")return e.objectStoreNames||EM.get(e);if(t==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return Mr(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&(t==="done"||t==="store")?!0:t in e}};function SM(e){Hb=e(Hb)}function sQ(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...r){let n=e.call(cd(this),t,...r);return EM.set(n,t.sort?t.sort():[t]),Mr(n)}:nQ().includes(e)?function(...t){return e.apply(cd(this),t),Mr(wM.get(this))}:function(...t){return Mr(e.apply(cd(this),t))}}function aQ(e){return typeof e=="function"?sQ(e):(e instanceof IDBTransaction&&iQ(e),tQ(e,rQ())?new Proxy(e,Hb):e)}function Mr(e){if(e instanceof IDBRequest)return oQ(e);if(Ub.has(e))return Ub.get(e);let t=aQ(e);return t!==e&&(Ub.set(e,t),Kb.set(t,e)),t}var cd=e=>Kb.get(e);function _M(e,t,{blocked:r,upgrade:n,blocking:o,terminated:i}={}){let s=indexedDB.open(e,t),a=Mr(s);return n&&s.addEventListener("upgradeneeded",u=>{n(Mr(s.result),u.oldVersion,u.newVersion,Mr(s.transaction),u)}),r&&s.addEventListener("blocked",u=>r(u.oldVersion,u.newVersion,u)),a.then(u=>{i&&u.addEventListener("close",()=>i()),o&&u.addEventListener("versionchange",l=>o(l.oldVersion,l.newVersion,l))}).catch(()=>{}),a}var uQ=["get","getKey","getAll","getAllKeys","count"],cQ=["put","add","delete","clear"],Vb=new Map;function IM(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(Vb.get(t))return Vb.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=cQ.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||uQ.includes(r)))return;let i=async function(s,...a){let u=this.transaction(s,o?"readwrite":"readonly"),l=u.store;return n&&(l=l.index(a.shift())),(await Promise.all([l[r](...a),o&&u.done]))[0]};return Vb.set(t,i),i}SM(e=>({...e,get:(t,r,n)=>IM(t,r)||e.get(t,r,n),has:(t,r)=>!!IM(t,r)||e.has(t,r)}));var pd=require("obsidian");var lQ="zotlit",ld="pdf-outline",Ou=class extends ue{constructor(r){super();this.plugin=r}db=_M(lQ,1,{upgrade(r){r.createObjectStore(ld,{keyPath:"path"})}});async getCachedOutlineKeys(){return await(await this.db).getAllKeys(ld)}async getPDFOutline(r,n=!1){let o=await this.db,i=await o.get(ld,r),s;try{s=await(0,fd.stat)(r)}catch(u){if(u.code==="ENOENT")return new pd.Notice("PDF file not found"),null;throw u}if(i&&s.mtimeMs===i.mtime&&!n)return W.debug("PDF outline cache hit",r),i.outline;let a=await this.#e(r);return a?(await o.put(ld,{path:r,mtime:s.mtimeMs,outline:a,created:Date.now()}),W.debug("PDF outline cache miss and updated",r),a):null}pdfjs;async#e(r){this.pdfjs??=await(0,pd.loadPdfJs)();let n=this.pdfjs.getDocument(await(0,fd.readFile)(r)),o=await n.promise,i=CM(await o.getOutline(),0),s=await Promise.all(i.map(async({dest:a,...u})=>{if(!Array.isArray(a))return{...u,page:null};let[l]=a,c=await o.getPageIndex(l);return{...u,page:c}}));return await o.cleanup(),await n.destroy(),s}},CM=(e,t)=>e.flatMap(({title:r,dest:n,items:o})=>[{title:r,dest:n,level:t},...CM(o,t+1)]);var Gb=require("fs");var TM=require("obsidian");var cn=class extends ue{settings=this.use(de);api=this.use(Rt).api;app=this.use(TM.App);get autoRefresh(){return this.settings.current?.autoRefresh}onDatabaseUpdate(t){return()=>this.app.vault.trigger("zotero:db-updated",t)}onload(){this.register(qe(Qe(()=>this.setAutoRefresh(this.autoRefresh),()=>this.autoRefresh))),W.debug("loading DatabaseWatcher")}onunload(){this.#e()}#e(){this.#r=!1,this.#t=Ai(this.#t,t=>(t?.close(),null))}#t={main:null,bbt:null};#r=!1;async setAutoRefresh(t,r=!1){if(!(t===this.#r&&!r)&&(W.debug("Auto refresh set to "+t),this.#r=t,this.#e(),t)){this.#t.main=(0,Gb.watch)(this.settings.zoteroDbPath,this.onDatabaseUpdate("main"));let n=await this.api.getLoadStatus();n.bbt&&(this.#t.bbt=(0,Gb.watch)(n.bbtVersion==="v0"?this.settings.bbtSearchDbPath:this.settings.bbtMainDbPath,this.onDatabaseUpdate("bbt")))}}};le([fe],cn.prototype,"autoRefresh",1);var Au=class extends ue{onunload(){W.info("ZoteroDB unloaded")}get defaultLibId(){return this.settings.libId}settings=this.use(de);#e=this.use(Rt);watcher=this.use(cn);get api(){return this.#e.api}async search(t){let n=this.defaultLibId;if(this.#e.status!==2)throw new Error("Search index not ready");let o=await this.api.search(n,{query:t,limit:50,index:fQ});if(o.length===0)return[];let i=pQ(o);return i.length===0?[]:(await this.api.getItems(i.map(a=>[a.id,n]))).map((a,u)=>{let{id:l,fields:c,score:f}=i[u];if(!a)throw new Error("Item not found: "+l);return{item:a,score:f,fields:[...c]}})}async getItemsOf(t=50,r=this.defaultLibId){if(this.#e.status!==2)throw new Error("Search index not ready");return(await this.api.getItemsFromCache(t,r)).map(o=>({item:o,score:-1,fields:[]}))}},fQ=["title","creators[]:firstName","creators[]:lastName","date"];function pQ(e){let{size:t}=new Set(e.flatMap(n=>n.result)),r=e.reduce((n,{field:o,result:i})=>(o.startsWith("creators[]")&&(o="creators"),i.forEach((s,a)=>{let u=t-a;switch(o){case"title":u*=100;break;case"creators":case"date":u*=5;break;default:throw new Error("Unknown field: "+o)}if(!n.has(+s))n.set(+s,{id:+s,score:u,fields:new Set([o])});else{let l=n.get(+s);l.fields.add(o),l.score+=u}}),n),new Map);return Array.from(r.values()).sort((n,o)=>o.score-n.score)}var yr=require("fs/promises"),OM=require("path"),AM=require("path/posix");var ir=require("obsidian");var zn=class extends ue{onload(){W.debug("loading ImgCacheImporter")}async onunload(){await this.flush()}get app(){return this.use(be).app}settings=this.use(de);queue=new Map;getCachePath(t){return An(t,this.settings.current?.zoteroDataDir)}get mode(){return this.settings.current?.imgExcerptImport}get path(){return this.settings.current?.imgExcerptPath}get imgExcerptDir(){return this.mode?this.path:null}getInVaultPath(t){if(!this.imgExcerptDir||t.type!==_e.image)return null;let r=this.getCachePath(t);return mQ(t,r,this.imgExcerptDir)}import(t){let r=this.getCachePath(t),n=this.getInVaultPath(t);if(!n)return null;let o;return this.queue.has(n)?o=this.queue.get(n):(o=async()=>{let i=await this.linkToVault(n,r);return this.queue.delete(n),i},this.queue.set(n,o)),n}async flush(){return await Promise.all([...this.queue.values()].map(r=>r()))}cancel(){this.queue.clear()}async linkToVault(t,r){let n=await(0,yr.stat)(r).then(s=>{if(!s.isFile()&&!s.isSymbolicLink()){let a=`failed to link image excerpt cache to vault: given path not file ${r}`;return new ir.Notice(a),it(a,null),-1}return s.mtimeMs}).catch(s=>{if(s.code==="ENOENT"){let a=`failed to link image excerpt cache to vault: file not found ${r}`;return new ir.Notice(a),it(a,s),-1}throw s});if(n===-1)return!1;let o=this.mode;if(o===!1)return W.trace("import mode disabled"),!1;let i=(0,AM.dirname)(t);if(i!=="."&&i!==".."&&await this.app.vault.createFolder(i).catch(()=>{}),this.app.vault.adapter instanceof ir.FileSystemAdapter){let s=this.app.vault.adapter.getFullPath(t),a=await(0,yr.lstat)(s).catch(u=>{if(u.code!=="ENOENT")throw u;return null});if(o==="copy"){let u=-1;if(a)if(a.isSymbolicLink())W.trace(s+" is symlink, unlinking"),await(0,yr.rm)(s);else if(a.isFile())u=a.mtimeMs;else{let l="Failed to import image excerpt cache: cannot overwrite non-file "+s;return new ir.Notice(l),it(l,null),!1}if(u<0||n>u)return W.trace(s+" is file, "+(u<0?"creating":"overwritting")),await(0,yr.copyFile)(r,s),new ir.Notice(`Copied image excerpt cache to vault: ${t}`),!0;W.trace("mtime check pass, skipping")}else{if(a){if(a.isSymbolicLink())return W.trace(s+" is symlink, skipping"),!1;if(a.isFile())W.trace(s+" is file, remove before symlinking"),await(0,yr.rm)(s);else{let u="Failed to import image excerpt cache: cannot overwrite non-file "+s;return new ir.Notice(u),it(u,null),!1}}try{await(0,yr.symlink)(r,s,"file")}catch(u){if(u.code==="EPERM")return new ir.Notice(`Failed to symlink image excerpt cache to vault: permission denied ${r}, check directory permission or change import mode to copy. If you are using FAT32 drive, symlink is not supported.`),it(`Failed to symlink image excerpt cache to vault: permission denied ${r}`,u),!1;throw u}return new ir.Notice(`linked image excerpt cache to vault: ${t}`),!0}return!1}else throw new Error("Mobile not supported")}};le([fe],zn.prototype,"mode",1),le([fe],zn.prototype,"path",1),le([fe],zn.prototype,"imgExcerptDir",1);var dQ=(e,t)=>(t??"")+(0,OM.basename)(e),mQ=(e,t,r)=>{let n=dQ(t,e.groupID);return[(0,ir.normalizePath)(r),n].join("/")};S();S();S();function is(e,t=[]){let r=[];function n(i,s){let a=Le(s),u=r.length;r=[...r,s];function l(f){let{scope:p,children:d,...h}=f,b=p?.[e][u]||a,y=ne(()=>h,Object.values(h));return H(b.Provider,{value:y},d)}function c(f,p){let d=p?.[e][u]||a,h=Q(d);if(h)return h;if(s!==void 0)return s;throw new Error(`\`${f}\` must be used within \`${i}\``)}return l.displayName=i+"Provider",[l,c]}let o=()=>{let i=r.map(s=>Le(s));return function(a){let u=a?.[e]||i;return ne(()=>({[`__scope${e}`]:{...a,[e]:u}}),[a,u])}};return o.scopeName=e,[n,hQ(o,...t)]}function hQ(...e){let t=e[0];if(e.length===1)return t;let r=()=>{let n=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){let s=n.reduce((a,{useScope:u,scopeName:l})=>{let f=u(i)[`__scope${l}`];return{...a,...f}},{});return ne(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return r.scopeName=t.scopeName,r}S();S();S();function gQ(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function Jb(...e){return t=>e.forEach(r=>gQ(r,t))}function Uo(...e){return Y(Jb(...e),e)}S();var ss=Z((e,t)=>{let{children:r,...n}=e,o=Ve.toArray(r),i=o.find(bQ);if(i){let s=i.props.children,a=o.map(u=>u===i?Ve.count(s)>1?Ve.only(null):Pt(s)?s.props.children:null:u);return H(Zb,ce({},n,{ref:t}),Pt(s)?Xt(s,void 0,a):null)}return H(Zb,ce({},n,{ref:t}),r)});ss.displayName="Slot";var Zb=Z((e,t)=>{let{children:r,...n}=e;return Pt(r)?Xt(r,{...vQ(n,r.props),ref:Jb(t,r.ref)}):Ve.count(r)>1?Ve.only(null):null});Zb.displayName="SlotClone";var yQ=({children:e})=>H($,null,e);function bQ(e){return Pt(e)&&e.type===yQ}function vQ(e,t){let r={...t};for(let n in t){let o=e[n],i=t[n];/^on[A-Z]/.test(n)?o&&i?r[n]=(...a)=>{i(...a),o(...a)}:o&&(r[n]=o):n==="style"?r[n]={...o,...i}:n==="className"&&(r[n]=[o,i].filter(Boolean).join(" "))}return{...e,...r}}function kM(e){let t=e+"CollectionProvider",[r,n]=is(t),[o,i]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=d=>{let{scope:h,children:b}=d,y=R.useRef(null),v=R.useRef(new Map).current;return R.createElement(o,{scope:h,itemMap:v,collectionRef:y},b)},a=e+"CollectionSlot",u=R.forwardRef((d,h)=>{let{scope:b,children:y}=d,v=i(a,b),w=Uo(h,v.collectionRef);return R.createElement(ss,{ref:w},y)}),l=e+"CollectionItemSlot",c="data-radix-collection-item",f=R.forwardRef((d,h)=>{let{scope:b,children:y,...v}=d,w=R.useRef(null),T=Uo(h,w),M=i(l,b);return R.useEffect(()=>(M.itemMap.set(w,{ref:w,...v}),()=>void M.itemMap.delete(w))),R.createElement(ss,{[c]:"",ref:T},y)});function p(d){let h=i(e+"CollectionConsumer",d);return R.useCallback(()=>{let y=h.collectionRef.current;if(!y)return[];let v=Array.from(y.querySelectorAll(`[${c}]`));return Array.from(h.itemMap.values()).sort((M,V)=>v.indexOf(M.ref.current)-v.indexOf(V.ref.current))},[h.collectionRef,h.itemMap])}return[{Provider:s,Slot:u,ItemSlot:f},p,n]}S();S();var ku=globalThis?.document?Et:()=>{};var xQ=lr["useId".toString()]||(()=>{}),wQ=0;function dd(e){let[t,r]=j(xQ());return ku(()=>{e||r(n=>n??String(wQ++))},[e]),e||(t?`radix-${t}`:"")}S();S();var EQ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],Un=EQ.reduce((e,t)=>{let r=Z((n,o)=>{let{asChild:i,...s}=n,a=i?ss:t;return U(()=>{window[Symbol.for("radix-ui")]=!0},[]),H(a,ce({},s,{ref:o}))});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});S();function Nu(e){let t=F(e);return U(()=>{t.current=e}),ne(()=>(...r)=>{var n;return(n=t.current)===null||n===void 0?void 0:n.call(t,...r)},[])}S();function md({prop:e,defaultProp:t,onChange:r=()=>{}}){let[n,o]=SQ({defaultProp:t,onChange:r}),i=e!==void 0,s=i?e:n,a=Nu(r),u=Y(l=>{if(i){let f=typeof l=="function"?l(e):l;f!==e&&a(f)}else o(l)},[i,e,o,a]);return[s,u]}function SQ({defaultProp:e,onChange:t}){let r=j(e),[n]=r,o=F(n),i=Nu(t);return U(()=>{o.current!==n&&(i(n),o.current=n)},[n,o,i]),r}S();var IQ=Le(void 0);function hd(e){let t=Q(IQ);return e||t||"ltr"}var Yb="rovingFocusGroup.onEntryFocus",_Q={bubbles:!1,cancelable:!0},Qb="RovingFocusGroup",[Xb,NM,CQ]=kM(Qb),[TQ,ev]=is(Qb,[CQ]),[OQ,AQ]=TQ(Qb),kQ=Z((e,t)=>H(Xb.Provider,{scope:e.__scopeRovingFocusGroup},H(Xb.Slot,{scope:e.__scopeRovingFocusGroup},H(NQ,ce({},e,{ref:t}))))),NQ=Z((e,t)=>{let{__scopeRovingFocusGroup:r,orientation:n,loop:o=!1,dir:i,currentTabStopId:s,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:u,onEntryFocus:l,...c}=e,f=F(null),p=Uo(t,f),d=hd(i),[h=null,b]=md({prop:s,defaultProp:a,onChange:u}),[y,v]=j(!1),w=Nu(l),T=NM(r),M=F(!1),[V,J]=j(0);return U(()=>{let G=f.current;if(G)return G.addEventListener(Yb,w),()=>G.removeEventListener(Yb,w)},[w]),H(OQ,{scope:r,orientation:n,dir:d,loop:o,currentTabStopId:h,onItemFocus:Y(G=>b(G),[b]),onItemShiftTab:Y(()=>v(!0),[]),onFocusableItemAdd:Y(()=>J(G=>G+1),[]),onFocusableItemRemove:Y(()=>J(G=>G-1),[])},H(Un.div,ce({tabIndex:y||V===0?-1:0,"data-orientation":n},c,{ref:p,style:{outline:"none",...e.style},onMouseDown:Ct(e.onMouseDown,()=>{M.current=!0}),onFocus:Ct(e.onFocus,G=>{let K=!M.current;if(G.target===G.currentTarget&&K&&!y){let P=new CustomEvent(Yb,_Q);if(G.currentTarget.dispatchEvent(P),!P.defaultPrevented){let X=T().filter(D=>D.focusable),C=X.find(D=>D.active),_=X.find(D=>D.id===h),B=[C,_,...X].filter(Boolean).map(D=>D.ref.current);RM(B)}}M.current=!1}),onBlur:Ct(e.onBlur,()=>v(!1))})))}),RQ="RovingFocusGroupItem",DQ=Z((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:n=!0,active:o=!1,tabStopId:i,...s}=e,a=dd(),u=i||a,l=AQ(RQ,r),c=l.currentTabStopId===u,f=NM(r),{onFocusableItemAdd:p,onFocusableItemRemove:d}=l;return U(()=>{if(n)return p(),()=>d()},[n,p,d]),H(Xb.ItemSlot,{scope:r,id:u,focusable:n,active:o},H(Un.span,ce({tabIndex:c?0:-1,"data-orientation":l.orientation},s,{ref:t,onMouseDown:Ct(e.onMouseDown,h=>{n?l.onItemFocus(u):h.preventDefault()}),onFocus:Ct(e.onFocus,()=>l.onItemFocus(u)),onKeyDown:Ct(e.onKeyDown,h=>{if(h.key==="Tab"&&h.shiftKey){l.onItemShiftTab();return}if(h.target!==h.currentTarget)return;let b=$Q(h,l.orientation,l.dir);if(b!==void 0){h.preventDefault();let v=f().filter(w=>w.focusable).map(w=>w.ref.current);if(b==="last")v.reverse();else if(b==="prev"||b==="next"){b==="prev"&&v.reverse();let w=v.indexOf(h.currentTarget);v=l.loop?MQ(v,w+1):v.slice(w+1)}setTimeout(()=>RM(v))}})})))}),PQ={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function FQ(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function $Q(e,t,r){let n=FQ(e.key,r);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(n))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(n)))return PQ[n]}function RM(e){let t=document.activeElement;for(let r of e)if(r===t||(r.focus(),document.activeElement!==t))return}function MQ(e,t){return e.map((r,n)=>e[(t+n)%e.length])}var DM=kQ,PM=DQ;S();S();function jQ(e,t){return Nr((r,n)=>{let o=t[r][n];return o??r},e)}var tv=e=>{let{present:t,children:r}=e,n=LQ(t),o=typeof r=="function"?r({present:n.isPresent}):Ve.only(r),i=Uo(n.ref,o.ref);return typeof r=="function"||n.isPresent?Xt(o,{ref:i}):null};tv.displayName="Presence";function LQ(e){let[t,r]=j(),n=F({}),o=F(e),i=F("none"),s=e?"mounted":"unmounted",[a,u]=jQ(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return U(()=>{let l=gd(n.current);i.current=a==="mounted"?l:"none"},[a]),ku(()=>{let l=n.current,c=o.current;if(c!==e){let p=i.current,d=gd(l);e?u("MOUNT"):d==="none"||l?.display==="none"?u("UNMOUNT"):u(c&&p!==d?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,u]),ku(()=>{if(t){let l=f=>{let d=gd(n.current).includes(f.animationName);f.target===t&&d&&Rr(()=>u("ANIMATION_END"))},c=f=>{f.target===t&&(i.current=gd(n.current))};return t.addEventListener("animationstart",c),t.addEventListener("animationcancel",l),t.addEventListener("animationend",l),()=>{t.removeEventListener("animationstart",c),t.removeEventListener("animationcancel",l),t.removeEventListener("animationend",l)}}else u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(a),ref:Y(l=>{l&&(n.current=getComputedStyle(l)),r(l)},[])}}function gd(e){return e?.animationName||"none"}var FM="Tabs",[qQ,qPe]=is(FM,[ev]),$M=ev(),[BQ,rv]=qQ(FM),zQ=Z((e,t)=>{let{__scopeTabs:r,value:n,onValueChange:o,defaultValue:i,orientation:s="horizontal",dir:a,activationMode:u="automatic",...l}=e,c=hd(a),[f,p]=md({prop:n,onChange:o,defaultProp:i});return H(BQ,{scope:r,baseId:dd(),value:f,onValueChange:p,orientation:s,dir:c,activationMode:u},H(Un.div,ce({dir:c,"data-orientation":s},l,{ref:t})))}),UQ="TabsList",WQ=Z((e,t)=>{let{__scopeTabs:r,loop:n=!0,...o}=e,i=rv(UQ,r),s=$M(r);return H(DM,ce({asChild:!0},s,{orientation:i.orientation,dir:i.dir,loop:n}),H(Un.div,ce({role:"tablist","aria-orientation":i.orientation},o,{ref:t})))}),HQ="TabsTrigger",KQ=Z((e,t)=>{let{__scopeTabs:r,value:n,disabled:o=!1,...i}=e,s=rv(HQ,r),a=$M(r),u=MM(s.baseId,n),l=jM(s.baseId,n),c=n===s.value;return H(PM,ce({asChild:!0},a,{focusable:!o,active:c}),H(Un.button,ce({type:"button",role:"tab","aria-selected":c,"aria-controls":l,"data-state":c?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:u},i,{ref:t,onMouseDown:Ct(e.onMouseDown,f=>{!o&&f.button===0&&f.ctrlKey===!1?s.onValueChange(n):f.preventDefault()}),onKeyDown:Ct(e.onKeyDown,f=>{[" ","Enter"].includes(f.key)&&s.onValueChange(n)}),onFocus:Ct(e.onFocus,()=>{let f=s.activationMode!=="manual";!c&&!o&&f&&s.onValueChange(n)})})))}),VQ="TabsContent",GQ=Z((e,t)=>{let{__scopeTabs:r,value:n,forceMount:o,children:i,...s}=e,a=rv(VQ,r),u=MM(a.baseId,n),l=jM(a.baseId,n),c=n===a.value,f=F(c);return U(()=>{let p=requestAnimationFrame(()=>f.current=!1);return()=>cancelAnimationFrame(p)},[]),H(tv,{present:o||c},({present:p})=>H(Un.div,ce({"data-state":c?"active":"inactive","data-orientation":a.orientation,role:"tabpanel","aria-labelledby":u,hidden:!p,id:l,tabIndex:0},s,{ref:t,style:{...e.style,animationDuration:f.current?"0s":void 0}}),p&&i))});function MM(e,t){return`${e}-trigger-${t}`}function jM(e,t){return`${e}-content-${t}`}var LM=zQ,nv=WQ,ov=KQ,iv=GQ;S();var qM=LM,sv=Z(({className:e,...t},r)=>m(nv,{ref:r,className:ee("inline-flex items-center justify-center rounded-md bg-secondary p-1",e),...t}));sv.displayName=nv.displayName;var Wn=Z(({className:e,...t},r)=>m(ov,{className:ee("obzt-btn-reset","inline-flex min-w-[100px] items-center justify-center rounded-[0.185rem] px-3 py-1.5 text-sm font-medium text-txt-muted transition-all disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-primary data-[state=active]:text-txt-normal data-[state=active]:shadow-sm",e),...t,ref:r}));Wn.displayName=ov.displayName;var Hn=Z(({className:e,...t},r)=>m(iv,{className:ee("mt-2 rounded-md border p-6",e),...t,ref:r}));Hn.displayName=iv.displayName;S();S();function as(){return as=Object.assign||function(e){for(var t=1;to(i=>!i),[])]}var VM=require("obsidian");S();S();var ye=Z(function({name:t,description:r,heading:n,children:o,className:i},s){return m("div",{className:ee("setting-item",n&&"setting-item-heading border-none",i),children:[m("div",{className:"setting-item-info",children:[m("div",{className:"setting-item-name",children:t}),r&&m("div",{className:"setting-item-description",children:r})]}),m("div",{className:"setting-item-control",ref:s,children:o})]})});function aee(e){let t=F(e);return t.current=e,ne(()=>Bu(()=>t.current()),[])}function Fe(e,t){let r=Q(Ot).settings,n=aee(()=>e(r.current)).value,o=$t(function(s){r.update(a=>t(s,a))});return[n,o]}function av(e,t){let r=$t(t),n=F(null);return U(()=>{n.current?.setValue(e)},[e]),Y(o=>{if(!o)n.current?.toggleEl.remove(),n.current=null;else{let i=new VM.ToggleComponent(o);i.setValue(e),i.onChange(r),n.current=i}},[])}function br({name:e,children:t,get:r,set:n}){let o=av(...Fe(r,n));return m(uv,{ref:o,name:e,children:t})}var uv=Z(function({name:t,children:r},n){return m(ye,{className:"mod-toggle",ref:n,name:t,description:r})});var ZM=ge(require("node:net"),1),YM=ge(require("node:os"),1),xd=class extends Error{constructor(t){super(`${t} is locked`)}},cs={old:new Set,young:new Set},uee=1e3*15;var vd,cee=()=>{let e=YM.default.networkInterfaces(),t=new Set([void 0,"0.0.0.0"]);for(let r of Object.values(e))for(let n of r)t.add(n.address);return t},GM=e=>new Promise((t,r)=>{let n=ZM.default.createServer();n.unref(),n.on("error",r),n.listen(e,()=>{let{port:o}=n.address();n.close(()=>{t(o)})})}),JM=async(e,t)=>{if(e.host||e.port===0)return GM(e);for(let r of t)try{await GM({port:e.port,host:r})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return e.port},lee=function*(e){e&&(yield*e),yield 0};async function cv(e){let t,r=new Set;if(e&&(e.port&&(t=typeof e.port=="number"?[e.port]:e.port),e.exclude)){let o=e.exclude;if(typeof o[Symbol.iterator]!="function")throw new TypeError("The `exclude` option must be an iterable.");for(let i of o){if(typeof i!="number")throw new TypeError("Each item in the `exclude` option must be a number corresponding to the port you want excluded.");if(!Number.isSafeInteger(i))throw new TypeError(`Number ${i} in the exclude option is not a safe integer and can't be used`)}r=new Set(o)}vd===void 0&&(vd=setInterval(()=>{cs.old=cs.young,cs.young=new Set},uee),vd.unref&&vd.unref());let n=cee();for(let o of lee(t))try{if(r.has(o))continue;let i=await JM({...e,port:o},n);for(;cs.old.has(i)||cs.young.has(i);){if(o!==0)throw new xd(o);i=await JM({...e,port:o},n)}return cs.young.add(i),i}catch(i){if(!["EADDRINUSE","EACCES"].includes(i.code)&&!(i instanceof xd))throw i}throw new Error("No available ports found")}var lv=require("obsidian");S();function XM(){let[e,t]=Fe(n=>n.enableServer,(n,o)=>({...o,enableServer:n})),r=av(e,t);return m($,{children:[m(ye,{heading:!0,name:"Background connect",description:"Allow Zotero to send status in the background, which is required for some features like focus annotation on selection in Zotero"}),m(uv,{ref:r,name:"Enable",children:"Remember to enable the server in Zotero as well"}),e&&m(fee,{})]})}function fee(){let[e,t]=Fe(a=>a.serverPort,(a,u)=>({...u,serverPort:a})),[r]=Fe(a=>a.serverHostname,(a,u)=>({...u,serverHostname:a})),[n,o]=j(e),[i]=St("check");async function s(){if(isNaN(n)||n<0||n>65535)return new lv.Notice("Invalid port number: "+n),o(e),!1;if(n===e)return!1;let a=await cv({host:r,port:[n]});return a!==n?(new lv.Notice(`Port is currently occupied, a different port is provided: ${a}, confirm again to apply the change.`),o(a),!1):(t(a),!0)}return m(ye,{name:"Port number",description:`Default to ${e}`,children:[m("input",{type:"number",value:n,min:0,max:65535,onChange:a=>o(Number.parseInt(a.target.value,10))}),m("button",{"aria-label":"Apply",ref:i,onClick:s})]})}var ej=require("@electron/remote"),tj=require("obsidian");S();function fv({children:e,path:t,state:r}){return m("div",{children:[e,": ",r==="failed"&&"(Failed to load)",m(pv,{path:t,state:r})]})}function pv({path:e,state:t}){return m("code",{"data-state":t,className:ee("data-[state=success]:text-txt-success","data-[state=failed]:text-txt-error","data-[state=disabled]:text-txt-muted"),children:e})}S();function dv(e){let{database:t}=Q(Ot),[r,n]=bd(()=>t.api.getLoadStatus().then(i=>e==="zotero"?i.main:i.bbt),[e]),o;return r.loading?o="disabled":r.error?o="failed":o=r.result?"success":"failed",[o,n]}function mv(){let e=QM("main"),t=QM("bbt"),[r,n]=dv("zotero"),[o,i]=dv("bbt"),[s,a,u]=pee(()=>{n(),i()});return m(ye,{name:"Zotero data directory",description:m($,{children:[m(fv,{path:e,state:r,children:"Zotero"}),m(fv,{path:t,state:o,children:"Better BibTeX"})]}),children:[m(pv,{path:s,state:a}),m("button",{onClick:u,children:"Select"})]})}function pee(e){let[t,r]=Fe(s=>s.zoteroDataDir,(s,a)=>({...a,zoteroDataDir:s})),{app:n}=Q(Ot),o=HM(async()=>{try{let{filePaths:[s]}=await ej.dialog.showOpenDialog({defaultPath:t,properties:["openDirectory"]});s&&t!==s&&(r(s),await new Promise((a,u)=>{function l(){a(),n.vault.off("zotero:db-refresh",l)}n.vault.on("zotero:db-refresh",l),setTimeout(()=>{u(new DOMException("Timeout after 5s","TimeoutError")),n.vault.off("zotero:db-refresh",l)},5e3)}),e())}catch(s){throw console.error("Failed to set data directory",s),new tj.Notice(`Failed to set data directory: ${s}`),s}}),i;return o.loading?i="disabled":o.error?i="failed":i="success",[t,i,o.execute]}function QM(e){let t=Q(Ot).settings;return e==="main"?t.zoteroDbPath:t.bbtMainDbPath}function hv(){return m($,{children:[m(mv,{}),m(br,{name:"Refresh automatically when Zotero updates database",get:e=>e.autoRefresh,set:(e,t)=>({...t,autoRefresh:e})}),m(XM,{})]})}S();function Wo({name:e,children:t,normalize:r,get:n,set:o}){let[i,s]=Fe(n,o),[a,u]=j(i);return m(gv,{name:e,value:a,onChange:l=>u(l.target.value),onSubmit:()=>{let l=r?.(a)??a;l!==a&&u(l),s(l)},children:t})}function gv({name:e,children:t,value:r,onChange:n,onSubmit:o}){let[i]=St("check");return m(ye,{name:e,description:t,children:[m(tu,{className:"border",value:r,onChange:n}),m("button",{"aria-label":"Apply",ref:i,onClick:o})]})}function rj(){let[e,t]=Fe(r=>r.imgExcerptImport===!1?"false":r.imgExcerptImport,(r,n)=>({...n,imgExcerptImport:r==="false"?!1:r}));return m($,{children:[m(ye,{heading:!0,name:"Image excerpt",description:"Controls how to import images in annotaion excerpts."}),m(ye,{name:"Mode",description:m("dl",{className:"mt-2 grid grid-cols-3 gap-1",children:[m("div",{children:[m("dt",{className:"text-xs font-medium text-txt-normal",children:"Direct link"}),m("dd",{className:"mt-1",children:["Use image embed linked directly to the original image in Zotero cache using ",m("code",{children:"file://"})," url"]})]}),m("div",{children:[m("dt",{className:"text-xs font-medium text-txt-normal",children:"Symlink"}),m("dd",{className:"mt-1",children:["Create a symlink to the original image in Zotero cache within the specified folder",m("p",{className:"text-txt-error",children:"Don't use this option if your file system doesn't support symlink."})]})]}),m("div",{children:[m("dt",{className:"text-xs font-medium text-txt-normal",children:"Copy"}),m("dd",{className:"mt-1",children:"Copy the original image to the specified folder."})]})]}),children:m("select",{className:"dropdown",onChange:r=>t(r.target.value),value:e,children:[m("option",{value:"false",children:"direct link"},0),m("option",{value:"symlink",children:"symlink"},1),m("option",{value:"copy",children:"copy"},2)]})}),e!=="false"&&m($,{children:m(Wo,{name:"Default location",get:r=>r.imgExcerptPath,set:(r,n)=>({...n,imgExcerptPath:r}),normalize:us,children:"The folder to store image excerpts."})})]})}S();function yv(){let{database:e}=Q(Ot),[t,r]=Fe(a=>a.citationLibrary,(a,u)=>({...u,citationLibrary:a})),[n,o]=bd(()=>e.api.getLibs(),[]),i=n.result??[{groupID:null,libraryID:1,name:"My Library"}],[s]=St("switch");return m(ye,{name:"Citation library",children:[m("select",{className:"dropdown",onChange:a=>r(Number.parseInt(a.target.value,10)),value:t,children:i.map(({groupID:a,libraryID:u,name:l})=>m("option",{value:u,children:l?a?`${l} (Group)`:l:`Library ${u}`},u))}),m("button",{"aria-label":"Refresh",ref:s,onClick:async()=>{await e.refresh({task:"full"}),o()}})]})}function bv(){return m($,{children:[m(Wo,{name:"Default location for new literature notes",get:e=>e.literatureNoteFolder,set:(e,t)=>({...t,literatureNoteFolder:e}),normalize:us}),m(yv,{}),m(rj,{})]})}function vv(){let[e,t]=Fe(r=>r.logLevel,(r,n)=>({...n,logLevel:r}));return m($,{children:[m(ye,{heading:!0,name:"Debug"}),m(ye,{name:"Log Level",description:m($,{children:["Change level of logs output to the console.",m("br",{}),"Set to DEBUG if you need to report a issue",m("br",{}),"To check console, ",RT()]}),children:m("select",{className:"dropdown",onChange:r=>{let n=r.target.value;t(n)},value:e,children:Object.entries(Qv).map(([r,n])=>m("option",{value:n,children:r},n))})})]})}function xv(){return m($,{children:m(vv,{})})}var nj=require("obsidian");var Du=class extends nj.PluginSettingTab{#e(){let t=this.containerEl.parentElement;if(!t)throw new Error("Setting tab is not mounted");if(!t.classList.contains("vertical-tab-content-container"))return W.error("Failed to patch unload, unexpected tabContentContainer"),console.error(t),!1;let r=this,n=qt(t,{empty:o=>function(){r.unload(),o.call(this),n()}});return W.debug("Setting tab unload patched"),!0}#t=[];register(t){this.#t.push(t)}unload(){for(;this.#t.length>0;)this.#t.pop()()}display(){this.containerEl.empty(),this.#e()}};function wv(){return m($,{children:[m(br,{name:"Citation editor suggester",get:e=>e.citationEditorSuggester,set:(e,t)=>({...t,citationEditorSuggester:e})}),m(br,{name:"Show BibTex citekey in suggester",get:e=>e.showCitekeyInSuggester,set:(e,t)=>({...t,showCitekeyInSuggester:e})})]})}S();function Ev(){let[e,t]=Fe(l=>l.autoTrim[0],(l,c)=>({...c,autoTrim:[l,c.autoTrim[1]]})),[r,n]=Fe(l=>l.autoTrim[1],(l,c)=>({...c,autoTrim:[c.autoTrim[0],l]})),[o,i]=j(e),[s,a]=j(r),u=$t(async function(c,f){let p=c==="false"?!1:c;f===0?(i(p),t(p)):(a(p),n(p))});return m(ye,{name:"Auto trim",description:m($,{children:[m("p",{className:"text-sm",children:["Controls default whitespace/new line trimming before/after a ejs"," ",m("code",{className:"whitespace-nowrap",children:"<% Tag %>"})]}),m("dl",{className:"mt-2",children:m("div",{className:"grid grid-cols-2 gap-1",children:[m("div",{children:[m("dt",{className:"text-xs font-medium text-txt-normal",children:"Newline slurp"}),m("dd",{className:"mt-1",children:"Removes the following newline before and after the tag."})]}),m("div",{children:[m("dt",{className:"text-xs font-medium text-txt-normal",children:"Whitespace slurp:"}),m("dd",{className:"mt-1",children:"Removes all whitespace before and after the tag."})]})]})})]}),children:m("div",{className:"flex flex-col gap-2",children:[0,1].map(l=>m("div",{className:"flex flex-col items-start gap-1 text-sm",children:[m("span",{children:l===0?"Leading":"Ending"}),m("select",{className:"dropdown",onChange:c=>u(c.target.value,l),value:String(l===0?o:s),children:[m("option",{value:"false",children:"Disable"},0),m("option",{value:"nl",children:"Newline slurp (-)"},1),m("option",{value:"slurp",children:"Whitespace slurp (_)"},2)]})]},l))})})}var Vn=require("obsidian");S();var oj=require("obsidian");S();function Sv(e,{icon:t,desc:r,disable:n}){let o=$t(e),i=F(null);return U(()=>{i.current?.setIcon(t??"")},[t]),U(()=>{i.current?.setTooltip(r??"")},[r]),U(()=>{i.current?.setDisabled(n??!1)},[n]),Y(s=>{if(!s)i.current?.extraSettingsEl.remove(),i.current=null;else{let a=new oj.ExtraButtonComponent(s);a.onClick(o),i.current=a}},[])}var Kn={filename:{title:"Note filename",desc:"Used to render filename for each imported literature note"},cite:{title:"Primary Markdown citation",desc:"Used to render citation in literature note"},cite2:{title:"Secondary Markdown citation",desc:"Used to render alternative citation in literature note"},field:{title:"Note properties",desc:"Used to render Properties in literature note"},note:{title:"Note content",desc:"Used to render created literature note"},annotation:{title:"Single annotaion",desc:"Used to render single annotation"},annots:{title:"Annotations",desc:"Used to render annotation list when batch importing"},colored:{title:"Colored highlight",desc:"Used to render highlights with color in imported Zotero note"}};function ij({type:e}){let{app:t,settings:r}=Q(Ot),[n]=St("arrow-up-right"),[o]=St("folder-input"),[i]=St("reset"),[s,a]=j(()=>Iv(e,{app:t,folder:r.templateDir})),u=io(e,r.templateDir);return U(()=>{let l=[t.vault.on("delete",c=>{c.path===u&&a(!1)}),t.vault.on("create",c=>{c.path===u&&a(!0)}),t.vault.on("rename",(c,f)=>{c.path===u&&a(!0),f===u&&a(!1)})];return()=>l.forEach(c=>t.vault.offref(c))},[u]),s?m(ye,{name:Kn[e].title,description:Kn[e].desc,children:[m("code",{children:u}),m("button",{"aria-label":"Open template file",ref:n,onClick:async()=>{await Bo(e,null,{app:t,settings:r})}}),m("button",{"aria-label":"Reset to default",ref:i,onClick:async()=>{if(!activeWindow.confirm("Reset template to default?"))return;let l=t.vault.getAbstractFileByPath(u);l instanceof Vn.TFile?(await t.vault.modify(l,ot.Ejectable[e]),new Vn.Notice(`Template '${u}' reset`)):a(!0)}})]}):m(ye,{name:Kn[e].title,description:Kn[e].desc,children:[m("pre",{className:"text-left max-w-xs overflow-scroll rounded border p-4",children:ot.Ejectable[e]}),m("button",{"aria-label":"Save to template folder",ref:o,onClick:async()=>{let l=await sj(e,{app:t,folder:r.templateDir});a(l)}})]})}async function sj(e,{app:t,folder:r}){let n=io(e,r),o=t.vault.getAbstractFileByPath(n);return o instanceof Vn.TFile?!0:o?(new Vn.Notice(`The path '${n}' is occupied by a folder`),!1):(await t.fileManager.createNewMarkdownFile(t.vault.getRoot(),n,ot.Ejectable[e]),new Vn.Notice(`Template '${n}' created`),!0)}function Iv(e,{app:t,folder:r}){let n=io(e,r);return t.vault.getAbstractFileByPath(n)instanceof Vn.TFile}function aj(){let{app:e,settings:t}=Q(Ot),[r,n]=j(()=>_r.Ejectable.every(i=>Iv(i,{app:e,folder:t.templateDir}))),o=Sv(async()=>{let i=_r.Ejectable.filter(s=>!Iv(s,{app:e,folder:t.templateDir}));await Promise.all(i.map(s=>sj(s,{app:e,folder:t.templateDir}))),n(!0)},{icon:r?"":"folder-input",desc:r?"":"Save template files to template folder",disable:r});return[r,o]}S();function uj({type:e}){let[t,r]=Fe(i=>i.template.templates[e],(i,s)=>({...s,template:{...s.template,templates:{...s.template.templates,[e]:i}}})),[n,o]=j(t);return m(gv,{name:Kn[e].title,value:n,onChange:i=>o(i.target.value),onSubmit:()=>{r(n)},children:Kn[e].desc})}function _v(){let[e,t]=aj();return m($,{children:[m(Wo,{name:"Template location",get:r=>r.template.folder,set:(r,n)=>({...n,template:{...n.template,folder:r}}),normalize:us,children:"The folder which templates are ejected into and stored"}),m(br,{name:"Auto pair for Eta",get:r=>r.autoPairEta,set:(r,n)=>({...n,autoPairEta:r}),children:["Pair `<` and `%` automatically in eta templates.",m("br",{}),"If you have issue with native auto pair features, you can disable this option and report the bug in GitHub"]}),m(Ev,{}),m(ye,{heading:!0,name:"Simple"}),_r.Embeded.map(r=>m(uj,{type:r},r)),m(ye,{heading:!0,name:"Ejectable",ref:t,description:"These templates can be customized once saved to the template folder",children:e||m("div",{children:"Eject"})}),_r.Ejectable.map(r=>m(ij,{type:r},r))]})}function Cv(){return m($,{children:[m(ye,{heading:!0,name:"Update note",description:m($,{children:["You can find update note option in ",m("code",{children:"More Options"})," menu and command pallette inside a literature note. When update, all literature notes with the same ",m("code",{children:"zotero-key"})," will be updated."]})}),m(br,{name:"Overwrite existing note",get:e=>e.updateOverwrite,set:(e,t)=>({...t,updateOverwrite:e}),children:m("div",{className:"space-y-2",children:m("div",{className:"text-txt-error",children:"\u26A0 WARNING: This will overwrite the whole note content with latest one when update literature note, make sure you didn't add any custom content in the note before enable this option."})})}),m(br,{name:"In-place update of existing annotations",get:e=>e.updateAnnotBlock,set:(e,t)=>({...t,updateAnnotBlock:e}),children:m("div",{className:"space-y-2",children:[m("div",{children:"(Experimental)"}),m("div",{className:"text-txt-error",children:"\u26A0 WARNING: When enable, the plugin will try to update existing annotaion callouts marked with block-id in addition to appped newly-added ones, which may cause unexpected behavior. Make sure you have backup of your notes before enable this option."}),m("div",{className:"text-txt-accent",children:"\u24D8 Note: If you disable callout warpping in annotation template, you need to make sure the block-id is added properly in the template."}),m("div",{className:"text-txt-accent",children:"\u24D8 Note: This won't work on annotations imported before this feature is available, unless every annotation is inside a block with proper block-id"})]})})]})}var Pu=class extends Du{constructor(r){super(r.app,r);this.plugin=r;this.containerEl.addClass("obzt")}display(){super.display(),R.render(m(Ot.Provider,{value:{settings:this.plugin.settings,app:this.app,database:this.plugin.dbWorker,closeTab:()=>this.setting.close()},children:m(dee,{})}),this.containerEl),this.register(()=>R.unmountComponentAtNode(this.containerEl))}};function dee(){let[e,t]=Wh("obzt-setting-tab",{defaultValue:"general"});return m(qM,{value:e,onValueChange:t,className:"flex h-full flex-col",children:[m(sv,{className:"self-start max-w-full",children:[m(Wn,{value:"general",children:"General"}),m(Wn,{value:"connect",children:"Connect"}),m(Wn,{value:"suggester",children:"Suggester"}),m(Wn,{value:"template",children:"Template"}),m(Wn,{value:"update",children:"Note update"}),m(Wn,{value:"misc",children:"Misc"})]}),m(Hn,{value:"general",className:"divide-y flex-grow overflow-y-scroll",children:m(bv,{})}),m(Hn,{value:"connect",className:"divide-y flex-grow overflow-y-scroll",children:m(hv,{})}),m(Hn,{value:"suggester",className:"divide-y flex-grow overflow-y-scroll",children:m(wv,{})}),m(Hn,{value:"template",className:"divide-y flex-grow overflow-y-scroll",children:m(_v,{})}),m(Hn,{value:"update",className:"divide-y flex-grow overflow-y-scroll",children:m(Cv,{})}),m(Hn,{value:"misc",className:"divide-y flex-grow overflow-y-scroll",children:m(xv,{})})]})}var be=class extends cj.Plugin{use=Vo.plugin(this);constructor(t,r){if(super(t,r),!BC(r,t))throw new Error("Library check failed")}settings=g1(this);services={_log:this.use(na)};noteIndex=this.use(rs);server=this.use(Ur);citekeyClick=this.use(od);templateEditor=this.use(Li);noteFeatures=this.use(fM);noteParser=this.use(ud);get databaseAPI(){return this.dbWorker.api}dbWorker=this.use(Rt);imgCacheImporter=this.use(zn);dbWatcher=this.use(cn);database=this.use(Au);templateRenderer=this.use(Fn);pdfParser=this.use(Ou);onload(){W.info("loading ZotLit"),this.addSettingTab(new Pu(this)),globalThis.zoteroAPI={version:this.manifest.version,getDocItems:t=>this.databaseAPI.getItems(t),getItemIDsFromCitekey:(...t)=>this.databaseAPI.getItemIDsFromCitekey(...t),getAnnotsFromKeys:(...t)=>this.databaseAPI.getAnnotFromKey(...t),getAnnotsOfAtch:(...t)=>this.databaseAPI.getAnnotations(...t),getAttachments:(...t)=>this.databaseAPI.getAttachments(...t),getLibs:()=>this.databaseAPI.getLibs()},this.register(()=>{delete globalThis.zoteroAPI})}onunload(){W.info("unloading ZotLit")}};0&&(module.exports={}); +/*! Bundled license information: + +flatted/cjs/index.js: + (*! (c) 2020 Andrea Giammarchi *) + +use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js: + (** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js: + (** + * @license React + * use-sync-external-store-shim/with-selector.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +lodash-es/lodash.js: + (** + * @license + * Lodash (Custom Build) + * Build: `lodash modularize exports="es" -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + *) + +@mui/base/index.js: + (** + * @mui/base v5.0.0-alpha.122 + * + * @license MIT + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) +*/ diff --git a/.obsidian/plugins/zotlit/manifest.json b/.obsidian/plugins/zotlit/manifest.json new file mode 100644 index 00000000..88808a0e --- /dev/null +++ b/.obsidian/plugins/zotlit/manifest.json @@ -0,0 +1,13 @@ +{ + "id": "zotlit", + "name": "ZotLit", + "version": "1.1.4", + "minAppVersion": "1.4.4", + "versions": { + "better-sqlite3": "8.0.1-mod.1" + }, + "description": "Plugin to integrate with Zotero, create literature notes and insert citations from a Zotero library.", + "author": "AidenLx", + "authorUrl": "https://github.com/aidenlx", + "isDesktopOnly": true +} \ No newline at end of file diff --git a/.obsidian/plugins/zotlit/styles.css b/.obsidian/plugins/zotlit/styles.css new file mode 100644 index 00000000..76691ace --- /dev/null +++ b/.obsidian/plugins/zotlit/styles.css @@ -0,0 +1 @@ +.modal.mod-settings .vertical-tab-content.obzt{padding:var(--size-4-2);padding-right:var(--size-4-3)}.obzt .setting-item:last-child{padding-bottom:0;border-bottom:none}.workspace-leaf-content[data-type=zotero-template-preview] pre{user-select:text}.obzt *,.obzt :before,.obzt :after{border-width:0;border-style:solid;border-color:var(--background-modifier-border)}.obzt [type=button],.obzt [type=reset],.obzt [type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}.obzt blockquote,.obzt dl,.obzt dd,.obzt h1,.obzt h2,.obzt h3,.obzt h4,.obzt h5,.obzt h6,.obzt hr,.obzt figure,.obzt p,.obzt pre{margin:0}.obzt textarea{resize:vertical}.obzt input::-moz-placeholder,.obzt textarea::-moz-placeholder{opacity:1;color:#9ca3af}.obzt input::placeholder,.obzt textarea::placeholder{opacity:1;color:#9ca3af}.obzt h1,.obzt h2,.obzt h3,.obzt h4,.obzt h5,.obzt h6{font-size:inherit;font-weight:inherit}.obzt fieldset{margin:0;padding:0}.obzt legend{padding:0}.obzt menu{list-style:none;margin:0;padding:0}.obzt .shadow-border,.obzt [data-state=active]{--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000}.obzt .ring-0,.obzt .focus-within\:ring-2,.obzt .focus-within\:ring-inset,.obzt .focus\:ring-0{--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000}.obzt .blur,.obzt .filter{--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: }.obzt .container{width:100%}@media (min-width: 640px){.obzt .container{max-width:640px}}@media (min-width: 768px){.obzt .container{max-width:768px}}@media (min-width: 1024px){.obzt .container{max-width:1024px}}@media (min-width: 1280px){.obzt .container{max-width:1280px}}@media (min-width: 1536px){.obzt .container{max-width:1536px}}.obzt .relative{position:relative}.obzt .sticky{position:sticky}.obzt .top-0{top:0}.obzt .z-0{z-index:0}.obzt .z-10{z-index:10}.obzt .col-span-1{grid-column:span 1 / span 1}.obzt .m-0{margin:0}.obzt .m-8{margin:2rem}.obzt .ml-1{margin-left:.25rem}.obzt .mt-1{margin-top:.25rem}.obzt .mt-2{margin-top:.5rem}.obzt .mt-6{margin-top:1.5rem}.obzt .block{display:block}.obzt .flex{display:flex}.obzt .inline-flex{display:inline-flex}.obzt .grid{display:grid}.obzt .contents{display:contents}.obzt .hidden{display:none}.obzt .h-3{height:.75rem}.obzt .h-4{height:1rem}.obzt .h-5{height:1.25rem}.obzt .h-auto{height:auto}.obzt .h-full{height:100%}.obzt .max-h-20{max-height:5rem}.obzt .w-3{width:.75rem}.obzt .w-4{width:1rem}.obzt .w-full{width:100%}.obzt .min-w-0{min-width:0px}.obzt .min-w-\[100px\]{min-width:100px}.obzt .max-w-full{max-width:100%}.obzt .max-w-xs{max-width:20rem}.obzt .flex-1{flex:1 1 0%}.obzt .shrink-0{flex-shrink:0}.obzt .flex-grow{flex-grow:1}@keyframes pulse{50%{opacity:.5}}.obzt .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.obzt .cursor-context-menu{cursor:context-menu}.obzt .cursor-grab{cursor:grab}.obzt .select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.obzt .list-none{list-style-type:none}.obzt .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.obzt .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.obzt .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.obzt .flex-row{flex-direction:row}.obzt .flex-col{flex-direction:column}.obzt .items-start{align-items:flex-start}.obzt .items-center{align-items:center}.obzt .items-stretch{align-items:stretch}.obzt .justify-center{justify-content:center}.obzt .gap-1{gap:.25rem}.obzt .gap-2{gap:.5rem}.obzt .gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.obzt .space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.obzt .space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.obzt .divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(var(--border-width) * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(var(--border-width) * var(--tw-divide-y-reverse))}.obzt .self-start{align-self:flex-start}.obzt .justify-self-center{justify-self:center}.obzt .overflow-auto{overflow:auto}.obzt .overflow-scroll{overflow:scroll}.obzt .overflow-x-auto{overflow-x:auto}.obzt .overflow-y-auto{overflow-y:auto}.obzt .overflow-y-scroll{overflow-y:scroll}.obzt .whitespace-nowrap{white-space:nowrap}.obzt .break-words{overflow-wrap:break-word}.obzt .rounded{border-radius:var(--radius-m)}.obzt .rounded-\[0\.185rem\]{border-radius:.185rem}.obzt .rounded-md{border-radius:var(--radius-m)}.obzt .rounded-sm{border-radius:var(--radius-s)}.obzt .border{border-width:var(--border-width)}.obzt .border-y{border-top-width:var(--border-width);border-bottom-width:var(--border-width)}.obzt .border-l-blockquote{border-left-width:var(--blockquote-border-thickness)}.obzt .border-none{border-style:none}.obzt .bg-primary{background-color:var(--background-primary)}.obzt .bg-primary-alt{background-color:var(--background-primary-alt)}.obzt .bg-secondary{background-color:var(--background-secondary)}.obzt .bg-transparent{background-color:transparent}.obzt .bg-\[length\:12px\]{background-size:12px}.obzt .bg-\[center_right_3px\]{background-position:center right 3px}.obzt .object-cover{-o-object-fit:cover;object-fit:cover}.obzt .object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.obzt .object-left-top{-o-object-position:left top;object-position:left top}.obzt .p-0{padding:0}.obzt .p-0\.5{padding:.125rem}.obzt .p-1{padding:.25rem}.obzt .p-2{padding:.5rem}.obzt .p-4{padding:1rem}.obzt .p-6{padding:1.5rem}.obzt .px-2{padding-left:.5rem;padding-right:.5rem}.obzt .px-3{padding-left:.75rem;padding-right:.75rem}.obzt .py-0{padding-top:0;padding-bottom:0}.obzt .py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.obzt .py-1{padding-top:.25rem;padding-bottom:.25rem}.obzt .py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.obzt .pb-8{padding-bottom:2rem}.obzt .pl-2{padding-left:.5rem}.obzt .pl-4{padding-left:1rem}.obzt .pr-1{padding-right:.25rem}.obzt .pr-2{padding-right:.5rem}.obzt .pr-\[18px\]{padding-right:18px}.obzt .pt-1{padding-top:.25rem}.obzt .text-left{text-align:left}.obzt .text-center{text-align:center}.obzt .align-middle{vertical-align:middle}.obzt .text-base{font-size:var(--font-text-size)}.obzt .text-sm{font-size:var(--font-ui-small)}.obzt .text-status-bar{font-size:var(--status-bar-font-size)}.obzt .text-xs{font-size:var(--font-ui-smaller)}.obzt .font-medium{font-weight:var(--font-medium)}.obzt .font-semibold{font-weight:var(--font-semibold)}.obzt .leading-none{line-height:1}.obzt .leading-tight{line-height:var(--line-height-tight)}.obzt .text-txt-accent{color:var(--text-accent)}.obzt .text-txt-error{color:var(--text-error)}.obzt .text-txt-muted{color:var(--text-muted)}.obzt .text-txt-normal{color:var(--text-normal)}.obzt .text-txt-status-bar{color:var(--status-bar-text-color)}.obzt .underline{text-decoration-line:underline}.obzt .opacity-0{opacity:0}.obzt .opacity-\[var\(--icon-opacity\)\]{opacity:var(--icon-opacity)}.obzt .shadow-border{--tw-shadow: 0 0 0 1px var(--background-modifier-border);--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.obzt .ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.obzt .blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.obzt .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.obzt .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.obzt .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.obzt .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.obzt .\@container{container-type:inline-size}.obzt .line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}button.obzt-btn-reset{box-shadow:none;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0;-webkit-appearance:button;background-color:transparent;background-image:none}.obzt .zt-icon svg.svg-icon{height:var(--icon-size);width:var(--icon-size);stroke-width:var(--icon-stroke)}.obzt .focus-within\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.obzt .focus-within\:ring-2:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.obzt .focus-within\:ring-inset:focus-within{--tw-ring-inset: inset}.obzt .focus-within\:ring-mod-border-focus:focus-within{--tw-ring-color: var(--background-modifier-border-focus)}.obzt .focus-within\:ring-offset-2:focus-within{--tw-ring-offset-width: 2px}.obzt .hover\:bg-mod-hover:hover{background-color:var(--background-modifier-hover)}.obzt .hover\:opacity-100:hover{opacity:1}.obzt .focus\:border-none:focus{border-style:none}.obzt .focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.obzt .disabled\:pointer-events-none:disabled{pointer-events:none}.obzt .disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.obzt .disabled\:opacity-50:disabled{opacity:.5}.obzt .peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.obzt .peer[data-state=checked]~.peer-\[\[data-state\=checked\]\]\:text-mod-error{color:var(--background-modifier-error)}.obzt .data-\[state\=active\]\:bg-primary[data-state=active]{background-color:var(--background-primary)}.obzt .data-\[state\=active\]\:text-txt-normal[data-state=active]{color:var(--text-normal)}.obzt .data-\[state\=checked\]\:text-mod-error[data-state=checked]{color:var(--background-modifier-error)}.obzt .data-\[state\=disabled\]\:text-txt-muted[data-state=disabled]{color:var(--text-muted)}.obzt .data-\[state\=failed\]\:text-txt-error[data-state=failed]{color:var(--text-error)}.obzt .data-\[state\=success\]\:text-txt-success[data-state=success]{color:var(--text-success)}.obzt .data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@container (min-width: 28rem){.obzt .\@md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.obzt .\@md\:gap-3{gap:.75rem}}@container (min-width: 48rem){.obzt .\@3xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.ophidian-dialog .dialog-text{margin-bottom:.75em}.ophidian-dialog.mod-confirmation input[type=text]:invalid,.ophidian-dialog.mod-confirmation input[type=text][aria-invalid=true],.ophidian-dialog.mod-confirmation input[type=text]:invalid:enabled:focus,.ophidian-dialog.mod-confirmation input[type=text][aria-invalid=true]:enabled:focus{border-color:var(--text-error);background-color:var(--background-modifier-error)}.zt-citations .suggestion-item{padding-right:var(--size-2-3);line-height:var(--line-height-tight)}.zt-citations .suggestion-item .suggestion-aux{gap:var(--size-2-2)}.zt-citations .suggestion-item .suggestion-hotkey{display:flex;--icon-size: var(--font-ui-smaller);padding:2px}.zt-citations .suggestion-item .suggestion-hotkey:not(:last-child){margin-left:var(--size-2-2)}.zt-citations .suggestion-item .title{font-weight:var(--file-header-font-weight);font-size:var(--font-ui-small)}.zt-citations .suggestion-item .title .suggestion-highlight{color:var(--text-accent)}.zt-citations .suggestion-item .citekey{background-color:transparent;border:1px solid var(--background-modifier-border);color:var(--text-muted);font-size:small;padding:1px 8px;text-align:center;text-decoration:none;vertical-align:middle;display:inline-block;margin:1px 0;border-radius:14px}.zt-citations .suggestion-item .meta{color:var(--text-faint);font-size:var(--font-ui-smaller)}.zt-citations .suggestion-item .meta>:not(:last-child):after{content:", "}.zt-citations .suggestion-item .meta .author-year>:not(:last-child):after{content:" "}.zt-citations .suggestion-item .meta .author-year .date:before{content:"("}.zt-citations .suggestion-item .meta .author-year .date:after{content:")"}.zt-citations .suggestion-item .meta .publication{font-style:italic}.zt-citations .suggestion-item .meta .issue:before{content:"("}.zt-citations .suggestion-item .meta .issue:after{content:")"}.zt-citations .suggestion-item .meta:after{content:"."}.workspace-leaf-content[data-type=zotero-annotation-view] .view-content{padding:0;display:flex;flex-direction:column;height:100%}.workspace-leaf-content[data-type=zotero-annotation-view] .view-content .select-flashing{background-color:var(--text-highlight-bg);mix-blend-mode:var(--highlight-mix-blend-mode)} diff --git a/.obsidian/types.json b/.obsidian/types.json new file mode 100644 index 00000000..bb1c11f1 --- /dev/null +++ b/.obsidian/types.json @@ -0,0 +1,8 @@ +{ + "types": { + "aliases": "aliases", + "cssclasses": "multitext", + "tags": "tags", + "Title": "text" + } +} \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 2f7f1dc5..e927d708 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -8,7 +8,135 @@ "type": "tabs", "children": [ { - "id": "a65907065a9d31f7", + "id": "e00ed9afd6ffa196", + "type": "leaf", + "pane-relief:history-v1": { + "pos": 1, + "stack": [ + { + "title": "évolution des mémoires à tore de ferrite", + "icon": "lucide-file", + "state": "{\"type\":\"markdown\",\"state\":{\"file\":\"évolution des mémoires à tore de ferrite.md\",\"mode\":\"source\",\"backlinks\":false,\"source\":false}}", + "eState": "{\"cursor\":{\"from\":{\"line\":1,\"ch\":23},\"to\":{\"line\":1,\"ch\":23}}}" + }, + { + "state": "{}", + "eState": "{}" + } + ] + }, + "state": { + "type": "markdown", + "state": { + "file": "mémoire à tore de ferrite.md", + "mode": "source", + "backlinks": false, + "source": false + } + } + }, + { + "id": "0c55023cec4c91c3", + "type": "leaf", + "pane-relief:history-v1": { + "pos": 1, + "stack": [ + { + "title": "Untitled 2", + "icon": "lucide-file", + "state": "{\"type\":\"markdown\",\"state\":{\"file\":\"problèmes des mémoires à tores de ferrite.md\",\"mode\":\"source\",\"backlinks\":false,\"source\":false}}", + "eState": "{\"cursor\":{\"from\":{\"line\":0,\"ch\":0},\"to\":{\"line\":0,\"ch\":0}},\"scroll\":0}" + }, + { + "state": "{}", + "eState": "{}" + }, + { + "title": "hystérésis magnétique", + "icon": "lucide-file", + "state": "{\"type\":\"markdown\",\"state\":{\"file\":\"hystérésis magnétique.md\",\"mode\":\"source\",\"backlinks\":false,\"source\":false}}", + "eState": "{\"cursor\":{\"from\":{\"line\":0,\"ch\":0},\"to\":{\"line\":0,\"ch\":0}},\"scroll\":0}" + } + ] + }, + "state": { + "type": "markdown", + "state": { + "file": "historique des mémoires à tore.md", + "mode": "source", + "backlinks": false, + "source": false + } + } + }, + { + "id": "2990dbd1808e00c1", + "type": "leaf", + "pane-relief:history-v1": { + "pos": 0, + "stack": [ + { + "state": "{}", + "eState": "{}" + } + ] + }, + "state": { + "type": "markdown", + "state": { + "file": "mémoire à cordes de ferrites.md", + "mode": "source", + "backlinks": false, + "source": false + } + } + }, + { + "id": "52a5df4b12a608fa", + "type": "leaf", + "pane-relief:history-v1": { + "pos": 0, + "stack": [ + { + "state": "{}", + "eState": "{}" + } + ] + }, + "state": { + "type": "markdown", + "state": { + "file": "dictature de la commodité.md", + "mode": "source", + "backlinks": false, + "source": false + } + } + }, + { + "id": "31b6e29bdae66736", + "type": "leaf", + "pane-relief:history-v1": { + "pos": 0, + "stack": [ + { + "state": "{}", + "eState": "{}" + } + ] + }, + "state": { + "type": "markdown", + "state": { + "file": "problèmes des mémoires à tores de ferrite.md", + "mode": "source", + "backlinks": false, + "source": false + } + } + }, + { + "id": "0c733bba5b595bf0", "type": "leaf", "pane-relief:history-v1": { "pos": 0, @@ -18,17 +146,23 @@ "eState": "{}" }, { - "title": "programmation web serveur", + "title": "science ouverte", "icon": "lucide-file", - "state": "{\"type\":\"markdown\",\"state\":{\"file\":\"programmation web serveur.md\",\"mode\":\"source\",\"backlinks\":false,\"source\":false}}", - "eState": "{\"cursor\":{\"from\":{\"line\":13,\"ch\":0},\"to\":{\"line\":13,\"ch\":0}}}" + "state": "{\"type\":\"markdown\",\"state\":{\"file\":\"science ouverte.md\",\"mode\":\"source\",\"backlinks\":false,\"source\":false}}", + "eState": "{\"cursor\":{\"from\":{\"line\":4,\"ch\":0},\"to\":{\"line\":4,\"ch\":0}}}" + }, + { + "title": "forme quadratique définie", + "icon": "lucide-file", + "state": "{\"type\":\"markdown\",\"state\":{\"file\":\"forme quadratique définie.md\",\"mode\":\"source\",\"backlinks\":false,\"source\":false}}", + "eState": "{\"cursor\":{\"from\":{\"line\":25,\"ch\":0},\"to\":{\"line\":25,\"ch\":0}},\"scroll\":3}" } ] }, "state": { "type": "markdown", "state": { - "file": "travail de délégué.md", + "file": "principes FAIR.md", "mode": "source", "backlinks": false, "source": false @@ -36,7 +170,7 @@ } }, { - "id": "f28563c395747d66", + "id": "3113d196520e11e4", "type": "leaf", "pane-relief:history-v1": { "pos": 0, @@ -50,7 +184,7 @@ "state": { "type": "markdown", "state": { - "file": "conseil de département 5ème semestre.md", + "file": "science ouverte.md", "mode": "source", "backlinks": false, "source": false @@ -58,7 +192,35 @@ } }, { - "id": "f78a03dad612c422", + "id": "5910f9a34653f0f8", + "type": "leaf", + "pane-relief:history-v1": { + "pos": 1, + "stack": [ + { + "title": "Untitled 2", + "icon": "lucide-file", + "state": "{\"type\":\"markdown\",\"state\":{\"file\":\"gradient d'une fonction.md\",\"mode\":\"source\",\"backlinks\":false,\"source\":false}}", + "eState": "{\"cursor\":{\"from\":{\"line\":0,\"ch\":0},\"to\":{\"line\":0,\"ch\":0}},\"scroll\":0}" + }, + { + "state": "{}", + "eState": "{}" + } + ] + }, + "state": { + "type": "markdown", + "state": { + "file": "mesurer l'importance dans un graphe de connaissances.md", + "mode": "source", + "backlinks": false, + "source": false + } + } + }, + { + "id": "a2f5c2beead93b32", "type": "leaf", "pane-relief:history-v1": { "pos": 0, @@ -72,7 +234,7 @@ "state": { "type": "markdown", "state": { - "file": "stage de licence 3 informatique.md", + "file": "discours baptême civil.md", "mode": "source", "backlinks": false, "source": false @@ -80,7 +242,41 @@ } }, { - "id": "57664ccff3340ca2", + "id": "d4cb3551345508a2", + "type": "leaf", + "pane-relief:history-v1": { + "pos": 0, + "stack": [ + { + "state": "{}", + "eState": "{}" + }, + { + "title": "matrice hessienne", + "icon": "lucide-file", + "state": "{\"type\":\"markdown\",\"state\":{\"file\":\"matrice hessienne.md\",\"mode\":\"source\",\"backlinks\":false,\"source\":false}}", + "eState": "{\"cursor\":{\"from\":{\"line\":33,\"ch\":0},\"to\":{\"line\":33,\"ch\":0}},\"scroll\":10.513531673448057}" + }, + { + "title": "gradient d'une fonction", + "icon": "lucide-file", + "state": "{\"type\":\"markdown\",\"state\":{\"file\":\"gradient d'une fonction.md\",\"mode\":\"source\",\"backlinks\":false,\"source\":false}}", + "eState": "{\"cursor\":{\"from\":{\"line\":1,\"ch\":15},\"to\":{\"line\":1,\"ch\":15}}}" + } + ] + }, + "state": { + "type": "markdown", + "state": { + "file": "déterminant hessien.md", + "mode": "source", + "backlinks": false, + "source": false + } + } + }, + { + "id": "215194cd1aed58e3", "type": "leaf", "pane-relief:history-v1": { "pos": 0, @@ -94,7 +290,7 @@ "state": { "type": "markdown", "state": { - "file": "SEB.md", + "file": "gradient d'une fonction.md", "mode": "source", "backlinks": false, "source": false @@ -102,7 +298,7 @@ } } ], - "currentTab": 3 + "currentTab": 9 } ], "direction": "vertical" @@ -149,7 +345,7 @@ "state": { "type": "search", "state": { - "query": "espanso", + "query": "", "matchingCase": false, "explainSearch": false, "collapseAll": false, @@ -216,23 +412,6 @@ "state": {} } }, - { - "id": "ea9ae28999c66714", - "type": "leaf", - "pane-relief:history-v1": { - "pos": 0, - "stack": [ - { - "state": "{}", - "eState": "{}" - } - ] - }, - "state": { - "type": "RSS_FEED", - "state": {} - } - }, { "id": "2c78bc8186d3e556", "type": "leaf", @@ -250,12 +429,11 @@ "state": {} } } - ], - "currentTab": 1 + ] } ], "direction": "horizontal", - "width": 303.5, + "width": 383.5, "collapsed": true }, "right": { @@ -265,10 +443,10 @@ { "id": "980f845ab893296e", "type": "tabs", - "dimension": 53, + "dimension": 59.90740740740741, "children": [ { - "id": "9ae2ad8ad7426276", + "id": "187e85dff41c3275", "type": "leaf", "pane-relief:history-v1": { "pos": 0, @@ -282,11 +460,11 @@ "state": { "type": "localgraph", "state": { - "file": "SEB.md", + "file": "déterminant hessien.md", "options": { "collapse-filter": false, "search": "", - "localJumps": 2, + "localJumps": 1, "localBacklinks": true, "localForelinks": true, "localInterlinks": false, @@ -414,11 +592,11 @@ "nodeSizeMultiplier": 1, "lineSizeMultiplier": 1, "collapse-forces": true, - "centerStrength": 0.907958984375, - "repelStrength": 3.17789713541667, + "centerStrength": 0.518713248970312, + "repelStrength": 10, "linkStrength": 1, - "linkDistance": 30, - "scale": 0.42822871250067424, + "linkDistance": 250, + "scale": 0.6998387988977927, "close": true } } @@ -439,7 +617,7 @@ "state": { "type": "outline", "state": { - "file": "SEB.md" + "file": "déterminant hessien.md" } } }, @@ -497,7 +675,7 @@ "state": { "type": "file-properties", "state": { - "file": "SEB.md" + "file": "déterminant hessien.md" } } }, @@ -518,6 +696,77 @@ "state": {} } }, + { + "id": "c5296986be89aae5", + "type": "leaf", + "pane-relief:history-v1": { + "pos": 0, + "stack": [ + { + "state": "{}", + "eState": "{}" + } + ] + }, + "state": { + "type": "tasks_timeline_view", + "state": {} + } + } + ] + }, + { + "id": "a739497ed8e21a5c", + "type": "tabs", + "dimension": 40.09259259259259, + "children": [ + { + "id": "c7afda8b81d643de", + "type": "leaf", + "pane-relief:history-v1": { + "pos": 0, + "stack": [ + { + "state": "{}", + "eState": "{}" + } + ] + }, + "state": { + "type": "outgoing-link", + "state": { + "file": "déterminant hessien.md", + "linksCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "e855affa02bb755e", + "type": "leaf", + "pane-relief:history-v1": { + "pos": 0, + "stack": [ + { + "state": "{}", + "eState": "{}" + } + ] + }, + "state": { + "type": "backlink", + "state": { + "file": "déterminant hessien.md", + "collapseAll": true, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": false + } + } + }, { "id": "e332be6a6a6d6817", "type": "leaf", @@ -551,83 +800,14 @@ "type": "BC-tree", "state": {} } - }, - { - "id": "f408f8d35dd42c62", - "type": "leaf", - "pane-relief:history-v1": { - "pos": 0, - "stack": [ - { - "state": "{}", - "eState": "{}" - } - ] - }, - "state": { - "type": "tasks_timeline_view", - "state": {} - } } - ] - }, - { - "id": "a739497ed8e21a5c", - "type": "tabs", - "dimension": 47, - "children": [ - { - "id": "c7afda8b81d643de", - "type": "leaf", - "pane-relief:history-v1": { - "pos": 0, - "stack": [ - { - "state": "{}", - "eState": "{}" - } - ] - }, - "state": { - "type": "outgoing-link", - "state": { - "file": "SEB.md", - "linksCollapsed": false, - "unlinkedCollapsed": true - } - } - }, - { - "id": "e855affa02bb755e", - "type": "leaf", - "pane-relief:history-v1": { - "pos": 0, - "stack": [ - { - "state": "{}", - "eState": "{}" - } - ] - }, - "state": { - "type": "backlink", - "state": { - "file": "SEB.md", - "collapseAll": true, - "extraContext": false, - "sortOrder": "alphabetical", - "showSearch": false, - "searchQuery": "", - "backlinkCollapsed": false, - "unlinkedCollapsed": false - } - } - } - ] + ], + "currentTab": 2 } ], "direction": "horizontal", - "width": 311.5 + "width": 364.5, + "collapsed": true }, "left-ribbon": { "hiddenItems": { @@ -640,66 +820,66 @@ "workspaces:Manage workspace layouts": true, "switcher:Open quick switcher": false, "random-note:Open random note": false, - "darlal-switcher-plus:Open in Headings Mode": false, - "darlal-switcher-plus:Open Symbols for the active editor": false, "terminal:Open terminal": false, "templater-obsidian:Templater": false, "obsidian-spaced-repetition:Review flashcards": false, "obsidian-excalidraw-plugin:Create new drawing": false, - "breadcrumbs:Breadcrumbs Visualisation": false + "breadcrumbs:Breadcrumbs Visualisation": false, + "darlal-switcher-plus:Open in Headings Mode": false, + "darlal-switcher-plus:Open Symbols for the active editor": false } }, - "active": "57664ccff3340ca2", + "active": "d4cb3551345508a2", "ophidian:layout-settings": { "pane-relief:focus-lock": true }, "lastOpenFiles": [ - "CP création du seb.md", - "SEB.md", - "stage de licence 3 informatique.md", - "informatique/python/identités.md", - "sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 6.md", - "sources/Getting Started 6.md", - "sources/a delightful & open source framework for Zsh.md", - "travail de délégué.md", - "prof idéal.md", - "sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 5.md", - "sources/Getting Started 5.md", - "kanban soirée jeux.md", - "sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 4.md", - "sources/Getting Started 4.md", - "sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 3.md", - "sources/Getting Started 3.md", - "sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 2.md", - "sources/Getting Started 2.md", - "sources/Google Colaboratory.md", - "sources/Browser not supported.md", - "sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish.md", - "sources/Getting Started.md", - "sources/The Command Line Heroes BASH!.md", - "plan com soirées jeux.md", - "unix redirection de flux.md", - "ligne de commande.md", - "www.gnu.org/software", - "www.gnu.org", - "blog/_site/index-listing.json", - "blog/_site/posts/>>reflexions-listing.json", - "blog/index.feed-full-staged", - "blog/index.html", - "blog/index_files/mediabag", - "blog/posts/>>reflexions-listing.json", - "blog/site_libs/quarto-listing/quarto-listing.js", - "blog/site_libs/quarto-listing/list.min.js", - "informatique/programmation_web_serveur/TP5/node_modules/retry/equation.gif", - "informatique/programmation_web_serveur/TP5/node_modules/passport/sponsors/workos.png", - "informatique/programmation_web_serveur/TP5/node_modules/passport/sponsors/snyk.png", - "informatique/programmation_web_serveur/TP5/node_modules/passport/sponsors/loginradius.png", - "attachments/Pasted Image 20231214004621_241.png", - "images/affiche_flyer_FEUTRE.png", - "informatique/programmation_web_serveur/TP4/node_modules/passport/sponsors/workos.png", - "informatique/programmation_web_serveur/TP4/node_modules/passport/sponsors/snyk.png", - "informatique/programmation_web_serveur/TP4/node_modules/passport/sponsors/loginradius.png", - "informatique/programmation_web_serveur/TP4/node_modules/monocle/logo.png", + "gradient d'une fonction.md", + "dimension d'un espace vectoriel.md", + "déterminant hessien.md", + "matrice.md", + "matrice hessienne.md", + "graphe d'une fonction.md", + "discours baptême civil.md", + "danger des catégories.md", + "fonction de plusieurs variables.md", + "suite de Cauchy.md", + "attachments/IMG_6724.heic", + "phrases.md", + "le travail n'est pas une valeur morale, c'est pourquoi il a une valeur marchande.md", + "capitalisme.md", + "films à voir.md", + "socialisme.md", + "mesurer l'importance dans un graphe de connaissances.md", + "identités.md", + "science ouverte.md", + "principes FAIR.md", + "problèmes des mémoires à tores de ferrite.md", + "Kanban mémoire L3.md", + "paradigme de programmation.md", + "Excalidraw/représentation d'un programme comme graphe.excalidraw.md", + "sources/cours/S5/L3_info_TLA_TD2.pdf", + "mémoire de L3.md", + "forme quadratique définie.md", + "Excalidraw/UML diagramme d'activités 2022-10-12 13.09.32.excalidraw.md", + "Excalidraw/Projet BDD 2022-11-28 13.22.29.excalidraw.png", + "Excalidraw/changement de base 2022-11-04 15.41.02.excalidraw.png", + "Excalidraw/architecture de Von Neumann 2022-09-14 10.56.32.excalidraw.png", + "sources/notation as a tool of thought.pdf", + "informatique/xml/L3/miniprojet_documents_et_schemas 2/sujet.pdf", + "informatique/xml/L3/miniprojet_documents_et_schemas 2/Makefile", + "informatique/xml/L3/miniprojet_documents_et_schemas 2/2.xsd", + "informatique/xml/L3/miniprojet_documents_et_schemas 2/2.xml", + "informatique/xml/L3/miniprojet_documents_et_schemas 2/1.dtd", + "informatique/xml/L3/miniprojet_documents_et_schemas 2/1.xml", + "informatique/xml/L3/miniprojet_documents_et_schemas 2", + "informatique/java/L3/programmation_mobile/rendu_1/mermaid_gantt.png", + "blag/blog/posts/maths/_images/permutations/double_2cycle_6.gif", + "blag/blog/posts/maths/_images/permutations/decomp_transpositions.gif", + "blag/blog/posts/maths/_images/permutations/decomp_proc_cycles_disjoints_.gif", + "blag/blog/posts/maths/_images/permutations/decomp_proc_cycles_disjoints.gif", + "blag/blog/posts/maths/_images/permutations/composition_de_transpositions_3cycle.gif", + "blag/blog/posts/maths/_images/permutations/3cycle_6.gif", "Arithmétique.canvas" ] } \ No newline at end of file diff --git a/CP création du seb.md b/CP création du seb.md index c8257327..160660aa 100644 --- a/CP création du seb.md +++ b/CP création du seb.md @@ -1,4 +1,14 @@ up:: [[SEB]] #fac #politique -Un premier pas important dans le paysage étudiant Blésois : la création du Syndicat Etudiant de Blois \ No newline at end of file + +La création du Syndicat étudiant blaisois constitue une étape importante dans le paysage étudiant blaisois. Constitué d'étudiants du Loir-et-Cher, ce syndicat s'engage à représenter leurs intérêts, défendre leurs droits et améliorer leur bien-être durant les études. + +Le SEB est né de la volonté d'un groupe d'étudiants Blaisois, members de la Fédération des étudiants de l'université de Tours pour la représentation et l'égalité (FEUTRE), qui souhaitaient être plus indépendants lors du traitement des questions locales. +Les défis sont nombreux : précarité étudiants, démantellement de l'offre éducative, ou diverses discriminations (sur la base du genre, du handicap, du pays d'origine ou tout autre critère arbitraire). +Il était nécessaire que les étudiants de Blois puissent s'unir pour se protéger et se faire représenter, notamment dans les différents conseils étudiants. + +Le SEB encourage tout étudiant qui se reconnaît dans les valeurs de démocratie participative, de solidarité, d'entraide, et qui souhaite aider à une meilleure représentation à le rejoindre. + +le seb encourage tout etudiant se reconaissant dans nos valeurs d'égalité, de démocratie participative, + diff --git a/CR du conseil DI 2023-12-07.md b/CR du conseil DI 2023-12-07.md index 3c53eeaa..f9eb2d49 100644 --- a/CR du conseil DI 2023-12-07.md +++ b/CR du conseil DI 2023-12-07.md @@ -1,4 +1,11 @@ -date: 2023-12-07 +--- +date: + - 2023-12-07 +tags: + - fac +--- + +up:: [[travail de délégué]] #informatique # présents diff --git a/Commutation de Processus.md b/Commutation de Processus.md index 60a5d60a..da0bda96 100644 --- a/Commutation de Processus.md +++ b/Commutation de Processus.md @@ -1,5 +1,5 @@ down:: [[interruption horloge]] -up::[[système d'exploitation]] +up::[[Sous-système de gestion de processus]] #informatique --- diff --git a/Contributions pour une autocritique du marxisme.md b/Contributions pour une autocritique du marxisme.md new file mode 100644 index 00000000..742c3c90 --- /dev/null +++ b/Contributions pour une autocritique du marxisme.md @@ -0,0 +1,14 @@ +author::[[Julius Dickmann]] +date::2024-01-24 +#source + +--- + + +## Notes personnelles + + - notes personnelles sur la source + - idées importantes + - conclusions personnelles + - Partie _Developp_ de l'[[ENCODE framework]] + diff --git a/DTD.md b/DTD.md new file mode 100644 index 00000000..bd22a9fc --- /dev/null +++ b/DTD.md @@ -0,0 +1,17 @@ +up:: [[langage de description de schéma XML]] +#informatique + + +# Lier une DTD à un document xml + +```xml + + + + + +... + +``` + +# Contenu d'une DTD diff --git a/Excalidraw/bulle d'air parapente inégalités culturelles.excalidraw.md b/Excalidraw/bulle d'air parapente inégalités culturelles.excalidraw.md index 0132b668..5048d2eb 100644 --- a/Excalidraw/bulle d'air parapente inégalités culturelles.excalidraw.md +++ b/Excalidraw/bulle d'air parapente inégalités culturelles.excalidraw.md @@ -47,12 +47,12 @@ s'éduquent plus vite ^sMERNe6p { "type": "excalidraw", "version": 2, - "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.9.3", + "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.0.16", "elements": [ { "type": "line", - "version": 67, - "versionNonce": 344744473, + "version": 80, + "versionNonce": 1920459117, "isDeleted": false, "id": "HwtmxNecGxC8hTbLX93-3", "fillStyle": "hachure", @@ -71,11 +71,12 @@ s'éduquent plus vite ^sMERNe6p "groupIds": [ "HazctpCb1fj50BOqPJEwP" ], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688215739335, + "updated": 1709127669089, "link": null, "locked": false, "startBinding": null, @@ -96,8 +97,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "line", - "version": 155, - "versionNonce": 309667831, + "version": 168, + "versionNonce": 2055403491, "isDeleted": false, "id": "Wo1xTSB5d556ueaFrwTpD", "fillStyle": "hachure", @@ -116,11 +117,12 @@ s'éduquent plus vite ^sMERNe6p "groupIds": [ "HazctpCb1fj50BOqPJEwP" ], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688215739335, + "updated": 1709127669089, "link": null, "locked": false, "startBinding": null, @@ -141,8 +143,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "line", - "version": 152, - "versionNonce": 1489680121, + "version": 165, + "versionNonce": 489892813, "isDeleted": false, "id": "jb0Jd58ZTB0jAZ7NdvV7d", "fillStyle": "hachure", @@ -161,11 +163,12 @@ s'éduquent plus vite ^sMERNe6p "groupIds": [ "HazctpCb1fj50BOqPJEwP" ], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688215739335, + "updated": 1709127669089, "link": null, "locked": false, "startBinding": null, @@ -186,8 +189,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "text", - "version": 111, - "versionNonce": 2006651159, + "version": 124, + "versionNonce": 1673528195, "isDeleted": false, "id": "nVMUVWyQ", "fillStyle": "hachure", @@ -204,6 +207,7 @@ s'éduquent plus vite ^sMERNe6p "height": 25, "seed": 595917593, "groupIds": [], + "frameId": null, "roundness": null, "boundElements": [ { @@ -211,7 +215,7 @@ s'éduquent plus vite ^sMERNe6p "type": "arrow" } ], - "updated": 1688215739335, + "updated": 1709127669089, "link": null, "locked": false, "fontSize": 20, @@ -227,8 +231,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "text", - "version": 103, - "versionNonce": 808153049, + "version": 116, + "versionNonce": 987114029, "isDeleted": false, "id": "x2SYuPUF", "fillStyle": "hachure", @@ -245,6 +249,7 @@ s'éduquent plus vite ^sMERNe6p "height": 25, "seed": 1208586361, "groupIds": [], + "frameId": null, "roundness": null, "boundElements": [ { @@ -252,7 +257,7 @@ s'éduquent plus vite ^sMERNe6p "type": "arrow" } ], - "updated": 1688215739335, + "updated": 1709127669089, "link": null, "locked": false, "fontSize": 20, @@ -268,8 +273,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "text", - "version": 186, - "versionNonce": 1315362359, + "version": 199, + "versionNonce": 614112035, "isDeleted": false, "id": "VO6Mdqgl", "fillStyle": "hachure", @@ -286,9 +291,10 @@ s'éduquent plus vite ^sMERNe6p "height": 25, "seed": 952907129, "groupIds": [], + "frameId": null, "roundness": null, "boundElements": [], - "updated": 1688215739335, + "updated": 1709127669089, "link": null, "locked": false, "fontSize": 20, @@ -304,8 +310,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "text", - "version": 180, - "versionNonce": 1354894521, + "version": 193, + "versionNonce": 2085248141, "isDeleted": false, "id": "TkGghEEd", "fillStyle": "hachure", @@ -322,6 +328,7 @@ s'éduquent plus vite ^sMERNe6p "height": 40, "seed": 1694465817, "groupIds": [], + "frameId": null, "roundness": null, "boundElements": [ { @@ -333,7 +340,7 @@ s'éduquent plus vite ^sMERNe6p "type": "arrow" } ], - "updated": 1688215739335, + "updated": 1709127669089, "link": null, "locked": false, "fontSize": 16, @@ -349,8 +356,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "arrow", - "version": 453, - "versionNonce": 498923351, + "version": 466, + "versionNonce": 159465155, "isDeleted": false, "id": "TjhOm7qLy5lp-46cgjwMC", "fillStyle": "hachure", @@ -367,11 +374,12 @@ s'éduquent plus vite ^sMERNe6p "height": 45.55862041884228, "seed": 100414617, "groupIds": [], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688215739335, + "updated": 1709127669090, "link": null, "locked": false, "startBinding": { @@ -408,8 +416,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "text", - "version": 214, - "versionNonce": 1647447449, + "version": 227, + "versionNonce": 961102573, "isDeleted": false, "id": "4Oc9ul1l", "fillStyle": "hachure", @@ -426,6 +434,7 @@ s'éduquent plus vite ^sMERNe6p "height": 20, "seed": 1479988439, "groupIds": [], + "frameId": null, "roundness": null, "boundElements": [ { @@ -433,7 +442,7 @@ s'éduquent plus vite ^sMERNe6p "type": "arrow" } ], - "updated": 1688215739335, + "updated": 1709127669090, "link": null, "locked": false, "fontSize": 16, @@ -449,8 +458,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "arrow", - "version": 788, - "versionNonce": 468841591, + "version": 801, + "versionNonce": 1293053539, "isDeleted": false, "id": "yyEwMiE5O-Lfhr0codVeF", "fillStyle": "hachure", @@ -467,11 +476,12 @@ s'éduquent plus vite ^sMERNe6p "height": 26.14798046551394, "seed": 1612968761, "groupIds": [], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688215739335, + "updated": 1709127669090, "link": null, "locked": false, "startBinding": { @@ -504,8 +514,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "text", - "version": 100, - "versionNonce": 1269756537, + "version": 113, + "versionNonce": 375151949, "isDeleted": false, "id": "03c9zdAK", "fillStyle": "hachure", @@ -522,6 +532,7 @@ s'éduquent plus vite ^sMERNe6p "height": 40, "seed": 891156377, "groupIds": [], + "frameId": null, "roundness": null, "boundElements": [ { @@ -533,7 +544,7 @@ s'éduquent plus vite ^sMERNe6p "type": "arrow" } ], - "updated": 1688215739335, + "updated": 1709127669090, "link": null, "locked": false, "fontSize": 16, @@ -549,8 +560,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "arrow", - "version": 405, - "versionNonce": 1086999959, + "version": 418, + "versionNonce": 1377610243, "isDeleted": false, "id": "a7e0wuWQ4p8QFXMyZcP9J", "fillStyle": "hachure", @@ -567,11 +578,12 @@ s'éduquent plus vite ^sMERNe6p "height": 40.63311340419624, "seed": 22483225, "groupIds": [], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688215739335, + "updated": 1709127669090, "link": null, "locked": false, "startBinding": { @@ -608,8 +620,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "text", - "version": 198, - "versionNonce": 1107049305, + "version": 211, + "versionNonce": 1792879533, "isDeleted": false, "id": "Qy4xUCoi", "fillStyle": "hachure", @@ -626,6 +638,7 @@ s'éduquent plus vite ^sMERNe6p "height": 20, "seed": 772077497, "groupIds": [], + "frameId": null, "roundness": null, "boundElements": [ { @@ -633,7 +646,7 @@ s'éduquent plus vite ^sMERNe6p "type": "arrow" } ], - "updated": 1688215739335, + "updated": 1709127669090, "link": null, "locked": false, "fontSize": 16, @@ -649,8 +662,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "arrow", - "version": 426, - "versionNonce": 393904823, + "version": 439, + "versionNonce": 496923043, "isDeleted": false, "id": "F0WEt5o7OkTZ77qvnwbuV", "fillStyle": "hachure", @@ -667,11 +680,12 @@ s'éduquent plus vite ^sMERNe6p "height": 36.08839774582694, "seed": 1658765945, "groupIds": [], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688215739335, + "updated": 1709127669090, "link": null, "locked": false, "startBinding": { @@ -703,28 +717,29 @@ s'éduquent plus vite ^sMERNe6p ] }, { - "id": "7U2UH58_ALbPomBYeP9Ij", "type": "ellipse", - "x": -25.359394752413223, - "y": -92.40739657287651, - "width": 151, - "height": 76, - "angle": 0, - "strokeColor": "#fa5252", - "backgroundColor": "transparent", + "version": 296, + "versionNonce": 1727344141, + "isDeleted": false, + "id": "7U2UH58_ALbPomBYeP9Ij", "fillStyle": "hachure", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, + "angle": 0, + "x": -25.359394752413223, + "y": -92.40739657287651, + "strokeColor": "#fa5252", + "backgroundColor": "transparent", + "width": 151, + "height": 76, + "seed": 2080288729, "groupIds": [], + "frameId": null, "roundness": { "type": 2 }, - "seed": 2080288729, - "version": 283, - "versionNonce": 1068420473, - "isDeleted": false, "boundElements": [ { "type": "text", @@ -735,75 +750,86 @@ s'éduquent plus vite ^sMERNe6p "type": "arrow" } ], - "updated": 1688218019831, + "updated": 1709127669090, "link": null, "locked": false }, { - "id": "mhRpksYp", "type": "text", - "x": 6.102073358334465, - "y": -74.27745425796532, - "width": 88.30393981933594, - "height": 40, + "version": 190, + "versionNonce": 281429315, + "isDeleted": false, + "id": "mhRpksYp", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, "angle": 0, + "x": 10.102073358334465, + "y": -74.27745425796532, "strokeColor": "#fa5252", "backgroundColor": "#e03131", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": null, + "width": 80.30393981933594, + "height": 40, "seed": 754492663, - "version": 175, - "versionNonce": 449888087, - "isDeleted": false, - "boundElements": null, - "updated": 1688215754911, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709127669090, "link": null, "locked": false, - "text": "Bulle d'air \nchaud", - "rawText": "Bulle d'air chaud", "fontSize": 16, "fontFamily": 1, + "text": "Bulle d'air\nchaud", + "rawText": "Bulle d'air chaud", "textAlign": "center", "verticalAlign": "middle", - "baseline": 34, "containerId": "7U2UH58_ALbPomBYeP9Ij", "originalText": "Bulle d'air chaud", - "lineHeight": 1.25 + "lineHeight": 1.25, + "baseline": 34 }, { - "id": "MwI67HFjeTKYFMIFwkKTP", "type": "arrow", - "x": 168.6601638543088, - "y": -65.42011907231867, - "width": 96.02514451564561, - "height": 67.66635391594681, - "angle": 0, - "strokeColor": "#228be6", - "backgroundColor": "transparent", + "version": 355, + "versionNonce": 2040390765, + "isDeleted": false, + "id": "MwI67HFjeTKYFMIFwkKTP", "fillStyle": "hachure", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, + "angle": 0, + "x": 168.6601638543088, + "y": -65.42011907231867, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 96.02514451564561, + "height": 67.66635391594681, + "seed": 1384094169, "groupIds": [ "N3Ysf9dW_bmgjOot91-UT" ], + "frameId": null, "roundness": { "type": 2 }, - "seed": 1384094169, - "version": 342, - "versionNonce": 1422997367, - "isDeleted": false, - "boundElements": null, - "updated": 1688218014781, + "boundElements": [], + "updated": 1709127669090, "link": null, "locked": false, + "startBinding": { + "elementId": "liF3lJGC", + "focus": 0.6864910051390365, + "gap": 13.25007956201447 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", "points": [ [ 0, @@ -821,49 +847,47 @@ s'éduquent plus vite ^sMERNe6p -96.02514451564561, 67.66635391594681 ] - ], - "lastCommittedPoint": [ - -100.826171875, - 62.05078125 - ], - "startBinding": { - "elementId": "liF3lJGC", - "focus": 0.6864910051390365, - "gap": 13.25007956201447 - }, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "triangle" + ] }, { - "id": "euZOOG90ML9JUK8KRwRtp", "type": "arrow", - "x": 204.91019104125095, - "y": -54.95329501037651, - "width": 100.892578125, - "height": 56.638671875, - "angle": 0, - "strokeColor": "#228be6", - "backgroundColor": "transparent", + "version": 123, + "versionNonce": 1660069091, + "isDeleted": false, + "id": "euZOOG90ML9JUK8KRwRtp", "fillStyle": "hachure", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, + "angle": 0, + "x": 204.91019104125095, + "y": -54.95329501037651, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 100.892578125, + "height": 56.638671875, + "seed": 285747417, "groupIds": [ "N3Ysf9dW_bmgjOot91-UT" ], + "frameId": null, "roundness": { "type": 2 }, - "seed": 285747417, - "version": 110, - "versionNonce": 93937529, - "isDeleted": false, - "boundElements": null, - "updated": 1688218014781, + "boundElements": [], + "updated": 1709127669090, "link": null, "locked": false, + "startBinding": { + "elementId": "liF3lJGC", + "focus": -0.22967460532903117, + "gap": 5.150764140736506 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", "points": [ [ 0, @@ -881,49 +905,47 @@ s'éduquent plus vite ^sMERNe6p -100.892578125, 56.638671875 ] - ], - "lastCommittedPoint": [ - -100.892578125, - 56.638671875 - ], - "startBinding": { - "elementId": "liF3lJGC", - "focus": -0.22967460532903117, - "gap": 5.150764140736506 - }, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "triangle" + ] }, { - "id": "TTl1XSgoZTXYT7xgDdVj8", "type": "arrow", - "x": 224.77151916625095, - "y": -35.28923251037651, - "width": 80.66015625, - "height": 36.91796875, - "angle": 0, - "strokeColor": "#228be6", - "backgroundColor": "transparent", + "version": 79, + "versionNonce": 1990250189, + "isDeleted": false, + "id": "TTl1XSgoZTXYT7xgDdVj8", "fillStyle": "hachure", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, + "angle": 0, + "x": 224.77151916625095, + "y": -35.28923251037651, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 80.66015625, + "height": 36.91796875, + "seed": 651844247, "groupIds": [ "N3Ysf9dW_bmgjOot91-UT" ], + "frameId": null, "roundness": { "type": 2 }, - "seed": 651844247, - "version": 66, - "versionNonce": 1120481431, - "isDeleted": false, - "boundElements": null, - "updated": 1688218014781, + "boundElements": [], + "updated": 1709127669090, "link": null, "locked": false, + "startBinding": { + "elementId": "liF3lJGC", + "focus": -0.9564319959071855, + "gap": 12.954346631903782 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", "points": [ [ 0, @@ -937,91 +959,78 @@ s'éduquent plus vite ^sMERNe6p -80.66015625, 36.91796875 ] - ], - "lastCommittedPoint": [ - -80.66015625, - 36.91796875 - ], - "startBinding": { - "elementId": "liF3lJGC", - "focus": -0.9564319959071855, - "gap": 12.954346631903782 - }, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "triangle" + ] }, { - "id": "_yTtrveNMSH4nC8LPoBAx", "type": "arrow", - "x": 50.320672261707244, - "y": -94.47281244442482, - "width": 0, - "height": 54.555675582730686, - "angle": 0, - "strokeColor": "#fa5252", - "backgroundColor": "transparent", + "version": 109, + "versionNonce": 1538396291, + "isDeleted": false, + "id": "_yTtrveNMSH4nC8LPoBAx", "fillStyle": "hachure", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, + "angle": 0, + "x": 49.88521659718641, + "y": -94.4736830735094, + "strokeColor": "#fa5252", + "backgroundColor": "transparent", + "width": 0.4354556645208376, + "height": 54.5548049536461, + "seed": 2039812183, "groupIds": [], + "frameId": null, "roundness": { "type": 2 }, - "seed": 2039812183, - "version": 95, - "versionNonce": 1397537911, - "isDeleted": false, - "boundElements": null, - "updated": 1688215754911, + "boundElements": [], + "updated": 1709127669090, "link": null, "locked": false, + "startBinding": { + "elementId": "7U2UH58_ALbPomBYeP9Ij", + "gap": 2.0665036744085583, + "focus": -0.007618444084411371 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", "points": [ [ 0, 0 ], [ - 0, - -54.555675582730686 + 0.4354556645208376, + -54.5548049536461 ] - ], - "lastCommittedPoint": [ - 0, - -54.77148437500003 - ], - "startBinding": { - "elementId": "7U2UH58_ALbPomBYeP9Ij", - "focus": -0.007618444084411371, - "gap": 2.0665036744085583 - }, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "triangle" + ] }, { - "id": "liF3lJGC", "type": "text", - "x": 175.87605207206445, - "y": -95.36540438537651, - "width": 78.60841369628906, - "height": 37.539062500000014, - "angle": 0.4974384151845328, - "strokeColor": "#228be6", - "backgroundColor": "transparent", + "version": 544, + "versionNonce": 2090298669, + "isDeleted": false, + "id": "liF3lJGC", "fillStyle": "hachure", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "roundness": null, + "angle": 0.4974384151845328, + "x": 175.87605207206445, + "y": -95.36540438537651, + "strokeColor": "#228be6", + "backgroundColor": "transparent", + "width": 78.60841369628906, + "height": 37.539062500000014, "seed": 650310743, - "version": 531, - "versionNonce": 1597499767, - "isDeleted": false, + "groupIds": [], + "frameId": null, + "roundness": null, "boundElements": [ { "id": "MwI67HFjeTKYFMIFwkKTP", @@ -1036,24 +1045,24 @@ s'éduquent plus vite ^sMERNe6p "type": "arrow" } ], - "updated": 1688218019831, + "updated": 1709127669090, "link": null, "locked": false, - "text": "air froid qui\ns'engouffre\nsous l'air chaud", - "rawText": "air froid qui\ns'engouffre\nsous l'air chaud", "fontSize": 10.01041666666667, "fontFamily": 1, + "text": "air froid qui\ns'engouffre\nsous l'air chaud", + "rawText": "air froid qui\ns'engouffre\nsous l'air chaud", "textAlign": "center", "verticalAlign": "top", - "baseline": 34, "containerId": null, "originalText": "air froid qui\ns'engouffre\nsous l'air chaud", - "lineHeight": 1.25 + "lineHeight": 1.25, + "baseline": 34 }, { "type": "ellipse", - "version": 451, - "versionNonce": 1648667257, + "version": 464, + "versionNonce": 1287850019, "isDeleted": false, "id": "l98NzQaS36_ds_TAG4NEl", "fillStyle": "hachure", @@ -1070,194 +1079,199 @@ s'éduquent plus vite ^sMERNe6p "height": 76.56920354458077, "seed": 1762295449, "groupIds": [], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688215754911, + "updated": 1709127669091, "link": null, "locked": false }, { - "id": "cMOPM2VJ5ZKdDa6FA_5d3", "type": "arrow", - "x": 47.4293988905047, - "y": -247.86292167708797, - "width": 109.35572717749429, - "height": 5.743075713758145, - "angle": 0, - "strokeColor": "#6741d9", - "backgroundColor": "#fa5252", + "version": 267, + "versionNonce": 451624845, + "isDeleted": false, + "id": "cMOPM2VJ5ZKdDa6FA_5d3", "fillStyle": "hachure", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, + "angle": 0, + "x": 51.313335663618915, + "y": -250.7801292270957, + "strokeColor": "#6741d9", + "backgroundColor": "#fa5252", + "width": 105.47179040438007, + "height": 2.825868163750414, + "seed": 924201401, "groupIds": [], + "frameId": null, "roundness": { "type": 2 }, - "seed": 924201401, - "version": 192, - "versionNonce": 330260119, - "isDeleted": false, - "boundElements": null, - "updated": 1688217411880, + "boundElements": [], + "updated": 1709127669091, "link": null, "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "Hk45U3HQ", + "focus": 0.0901335713586119, + "gap": 7.540678553011162 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", "points": [ [ 0, 0 ], [ - 109.35572717749429, - -5.743075713758145 + 105.47179040438007, + -2.825868163750414 ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": { - "elementId": "Hk45U3HQ", - "focus": 0.21327856633772954, - "gap": 7.540678553011162 - }, - "startArrowhead": null, - "endArrowhead": "triangle" + ] }, { - "id": "Hk45U3HQ", "type": "text", - "x": 164.32580462101015, - "y": -264.3997825512239, - "width": 122.49592590332031, - "height": 20, - "angle": 0, - "strokeColor": "#6741d9", - "backgroundColor": "#fa5252", + "version": 207, + "versionNonce": 1276382147, + "isDeleted": false, + "id": "Hk45U3HQ", "fillStyle": "hachure", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "roundness": null, + "angle": 0, + "x": 164.32580462101015, + "y": -264.3997825512239, + "strokeColor": "#6741d9", + "backgroundColor": "#fa5252", + "width": 122.49592590332031, + "height": 20, "seed": 1410714231, - "version": 194, - "versionNonce": 1061677367, - "isDeleted": false, + "groupIds": [], + "frameId": null, + "roundness": null, "boundElements": [ { "id": "cMOPM2VJ5ZKdDa6FA_5d3", "type": "arrow" } ], - "updated": 1688215768126, + "updated": 1709127669091, "link": "[[bourgeoisie]]", "locked": false, - "text": "📍[[bourgeois]]", - "rawText": "[[bourgeoisie|bourgeois]]", "fontSize": 16, "fontFamily": 1, + "text": "📍[[bourgeois]]", + "rawText": "[[bourgeoisie|bourgeois]]", "textAlign": "center", "verticalAlign": "top", - "baseline": 14, "containerId": null, "originalText": "📍[[bourgeois]]", - "lineHeight": 1.25 + "lineHeight": 1.25, + "baseline": 14 }, { - "id": "pZ0K1gZlEWjlYYRxNo87U", "type": "arrow", - "x": 49.45565457073482, - "y": -184.19110508017994, - "width": 93.81837683379442, - "height": 0.5804445394817321, - "angle": 0, - "strokeColor": "#2f9e44", - "backgroundColor": "#fa5252", + "version": 361, + "versionNonce": 936756717, + "isDeleted": false, + "id": "pZ0K1gZlEWjlYYRxNo87U", "fillStyle": "hachure", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, + "angle": 0, + "x": 49.33991938205301, + "y": -183.9562307266788, + "strokeColor": "#2f9e44", + "backgroundColor": "#fa5252", + "width": 88.70220069883331, + "height": 1.4756902636964355, + "seed": 615929977, "groupIds": [], + "frameId": null, "roundness": { "type": 2 }, - "seed": 615929977, - "version": 221, - "versionNonce": 1179689495, - "isDeleted": false, - "boundElements": null, - "updated": 1688217405826, + "boundElements": [], + "updated": 1709127669091, "link": null, "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "oBUOqljq", + "focus": 0.2541743634756069, + "gap": 14.884633627904577 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", "points": [ [ 0, 0 ], [ - 93.81837683379442, - -0.5804445394817321 + 88.70220069883331, + -1.4756902636964355 ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": { - "elementId": "oBUOqljq", - "focus": 0.12159883863420383, - "gap": 9.652722304261658 - }, - "startArrowhead": null, - "endArrowhead": "triangle" + ] }, { - "id": "oBUOqljq", "type": "text", - "x": 152.9267537087909, - "y": -193.98739766322794, - "width": 136.9438934326172, - "height": 20, - "angle": 0, - "strokeColor": "#2f9e44", - "backgroundColor": "#fa5252", + "version": 183, + "versionNonce": 767794019, + "isDeleted": false, + "id": "oBUOqljq", "fillStyle": "hachure", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "roundness": null, + "angle": 0, + "x": 152.9267537087909, + "y": -193.98739766322794, + "strokeColor": "#2f9e44", + "backgroundColor": "#fa5252", + "width": 136.9438934326172, + "height": 20, "seed": 1960197465, - "version": 170, - "versionNonce": 351095545, - "isDeleted": false, + "groupIds": [], + "frameId": null, + "roundness": null, "boundElements": [ { "id": "pZ0K1gZlEWjlYYRxNo87U", "type": "arrow" } ], - "updated": 1688215784588, + "updated": 1709127669091, "link": "[[prolétariat]]", "locked": false, - "text": "📍[[prolétaires]]", - "rawText": "[[prolétariat|prolétaires]]", "fontSize": 16, "fontFamily": 1, + "text": "📍[[prolétaires]]", + "rawText": "[[prolétariat|prolétaires]]", "textAlign": "center", "verticalAlign": "top", - "baseline": 14, "containerId": null, "originalText": "📍[[prolétaires]]", - "lineHeight": 1.25 + "lineHeight": 1.25, + "baseline": 14 }, { "type": "ellipse", - "version": 158, - "versionNonce": 2015712855, + "version": 171, + "versionNonce": 912293965, "isDeleted": false, "id": "ZHDne57ZcqipGphobMutO", "fillStyle": "solid", @@ -1274,18 +1288,19 @@ s'éduquent plus vite ^sMERNe6p "height": 18.609415407274582, "seed": 1580096537, "groupIds": [], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688217400911, + "updated": 1709127669091, "link": null, "locked": false }, { "type": "ellipse", - "version": 553, - "versionNonce": 1668381911, + "version": 727, + "versionNonce": 1042298627, "isDeleted": false, "id": "EEL488Yz4WOQOxnNtWqry", "fillStyle": "hachure", @@ -1304,48 +1319,50 @@ s'éduquent plus vite ^sMERNe6p "groupIds": [ "UgogCNylT-nVxFcx88ThA" ], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688217960870, + "updated": 1709127669091, "link": null, "locked": false }, { - "id": "13OpziDb4wMOHKw4krbOM", "type": "ellipse", - "x": 38.82032326182076, - "y": -328.16336384081825, - "width": 18.609415407274582, - "height": 18.609415407274582, - "angle": 0, - "strokeColor": "#2f9e44", - "backgroundColor": "#2f9e44", + "version": 291, + "versionNonce": 1550118573, + "isDeleted": false, + "id": "13OpziDb4wMOHKw4krbOM", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, + "angle": 0, + "x": 38.82032326182076, + "y": -328.16336384081825, + "strokeColor": "#2f9e44", + "backgroundColor": "#2f9e44", + "width": 18.609415407274582, + "height": 18.609415407274582, + "seed": 1948779001, "groupIds": [ "UgogCNylT-nVxFcx88ThA" ], + "frameId": null, "roundness": { "type": 2 }, - "seed": 1948779001, - "version": 138, - "versionNonce": 1678942233, - "isDeleted": false, - "boundElements": null, - "updated": 1688217960870, + "boundElements": [], + "updated": 1709127669091, "link": null, "locked": false }, { "type": "ellipse", - "version": 226, - "versionNonce": 335137271, + "version": 382, + "versionNonce": 1000890019, "isDeleted": false, "id": "4oHK3JRgTUWh1Br9Z-0Fi", "fillStyle": "solid", @@ -1364,18 +1381,19 @@ s'éduquent plus vite ^sMERNe6p "groupIds": [ "UgogCNylT-nVxFcx88ThA" ], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688217960870, + "updated": 1709127669091, "link": null, "locked": false }, { "type": "ellipse", - "version": 267, - "versionNonce": 709568567, + "version": 365, + "versionNonce": 2022478093, "isDeleted": false, "id": "zElonsbF5f59svnmYX92t", "fillStyle": "solid", @@ -1384,49 +1402,56 @@ s'éduquent plus vite ^sMERNe6p "roughness": 1, "opacity": 100, "angle": 0, - "x": 40.70925656393513, - "y": -259.15303313192084, + "x": 45.36249194416922, + "y": -261.433697144179, "strokeColor": "#6741d9", "backgroundColor": "#6741d9", "width": 18.609415407274582, "height": 18.609415407274582, "seed": 634993527, "groupIds": [], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688217429841, + "updated": 1709127669091, "link": null, "locked": false }, { - "id": "3LRFjh6Yv6yxM7GwQOOg0", "type": "line", - "x": 117.02180928618525, - "y": -441.1823062271082, - "width": 40.84103518915403, - "height": 130.64991598386888, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#6741d9", + "version": 697, + "versionNonce": 285905475, + "isDeleted": false, + "id": "3LRFjh6Yv6yxM7GwQOOg0", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, + "angle": 0, + "x": 117.02180928618525, + "y": -441.1823062271082, + "strokeColor": "#1e1e1e", + "backgroundColor": "#6741d9", + "width": 40.84103518915403, + "height": 130.64991598386888, + "seed": 1564936535, "groupIds": [], + "frameId": null, "roundness": { "type": 2 }, - "seed": 1564936535, - "version": 684, - "versionNonce": 416888057, - "isDeleted": false, - "boundElements": null, - "updated": 1688217960870, + "boundElements": [], + "updated": 1709127669091, "link": null, "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, "points": [ [ 0, @@ -1464,56 +1489,49 @@ s'éduquent plus vite ^sMERNe6p 3.0802354493820374, 130.64991598386888 ] - ], - "lastCommittedPoint": [ - 5.757398532266677, - 135.5085720773239 - ], - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null + ] }, { - "id": "sMERNe6p", "type": "text", - "x": 164.43862235644573, - "y": -435.71022109550773, - "width": 189.119873046875, - "height": 120, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#6741d9", + "version": 423, + "versionNonce": 1213261677, + "isDeleted": false, + "id": "sMERNe6p", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "roundness": null, + "angle": 0, + "x": 164.43862235644573, + "y": -435.71022109550773, + "strokeColor": "#1e1e1e", + "backgroundColor": "#6741d9", + "width": 189.119873046875, + "height": 120, "seed": 18275415, - "version": 410, - "versionNonce": 1681617687, - "isDeleted": false, - "boundElements": null, - "updated": 1688217960870, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709127669091, "link": null, "locked": false, - "text": "même si les prolétaires\nmontent, les différences\nne se réduisent pas.\nElles augmentent même,\ncar les bourgeois\ns'éduquent plus vite", - "rawText": "même si les prolétaires\nmontent, les différences\nne se réduisent pas.\nElles augmentent même,\ncar les bourgeois\ns'éduquent plus vite", "fontSize": 16, "fontFamily": 1, + "text": "même si les prolétaires\nmontent, les différences\nne se réduisent pas.\nElles augmentent même,\ncar les bourgeois\ns'éduquent plus vite", + "rawText": "même si les prolétaires\nmontent, les différences\nne se réduisent pas.\nElles augmentent même,\ncar les bourgeois\ns'éduquent plus vite", "textAlign": "left", "verticalAlign": "top", - "baseline": 114, "containerId": null, "originalText": "même si les prolétaires\nmontent, les différences\nne se réduisent pas.\nElles augmentent même,\ncar les bourgeois\ns'éduquent plus vite", - "lineHeight": 1.25 + "lineHeight": 1.25, + "baseline": 114 }, { "type": "arrow", - "version": 462, - "versionNonce": 1873857529, + "version": 475, + "versionNonce": 1327845859, "isDeleted": false, "id": "gsyCDbDhCOLNx0a4q5du2", "fillStyle": "hachure", @@ -1532,11 +1550,12 @@ s'éduquent plus vite ^sMERNe6p "groupIds": [ "q9kviP1zilqUYRSgaEQzN" ], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688218030205, + "updated": 1709127669091, "link": null, "locked": false, "startBinding": null, @@ -1565,8 +1584,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "arrow", - "version": 228, - "versionNonce": 965528599, + "version": 241, + "versionNonce": 503017933, "isDeleted": false, "id": "zjI6xEbMl6uF6nELx5AcE", "fillStyle": "hachure", @@ -1585,11 +1604,12 @@ s'éduquent plus vite ^sMERNe6p "groupIds": [ "q9kviP1zilqUYRSgaEQzN" ], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688218030205, + "updated": 1709127669091, "link": null, "locked": false, "startBinding": null, @@ -1618,8 +1638,8 @@ s'éduquent plus vite ^sMERNe6p }, { "type": "arrow", - "version": 189, - "versionNonce": 193389785, + "version": 202, + "versionNonce": 1728519555, "isDeleted": false, "id": "xyAmzP3PPeQcFO5Bi_wXR", "fillStyle": "hachure", @@ -1638,11 +1658,12 @@ s'éduquent plus vite ^sMERNe6p "groupIds": [ "q9kviP1zilqUYRSgaEQzN" ], + "frameId": null, "roundness": { "type": 2 }, "boundElements": [], - "updated": 1688218030205, + "updated": 1709127669091, "link": null, "locked": false, "startBinding": null, @@ -1664,174 +1685,6 @@ s'éduquent plus vite ^sMERNe6p 36.91796875000002 ] ] - }, - { - "id": "a6nXjVrf23yozy6KxFNvA", - "type": "rectangle", - "x": -192.91191566437578, - "y": -435.86290440816555, - "width": 51.7101505448303, - "height": 18.455421082861392, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#6741d9", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": { - "type": 3 - }, - "seed": 420362265, - "version": 31, - "versionNonce": 1864257977, - "isDeleted": true, - "boundElements": null, - "updated": 1688229017947, - "link": null, - "locked": false - }, - { - "type": "rectangle", - "version": 33, - "versionNonce": 1442021975, - "isDeleted": true, - "id": "g0FlIUW_ngxjhZTJQUbWZ", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": -167.20944335698687, - "y": -386.7772069389428, - "strokeColor": "#1e1e1e", - "backgroundColor": "#6741d9", - "width": 51.7101505448303, - "height": 18.455421082861392, - "seed": 1520553209, - "groupIds": [], - "roundness": { - "type": 3 - }, - "boundElements": null, - "updated": 1688229017947, - "link": null, - "locked": false - }, - { - "type": "rectangle", - "version": 33, - "versionNonce": 1455272601, - "isDeleted": true, - "id": "m0DUJEEGhkM4n63Wda9Fp", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": -191.62591776118586, - "y": -317.5971961270457, - "strokeColor": "#1e1e1e", - "backgroundColor": "#6741d9", - "width": 51.7101505448303, - "height": 18.455421082861392, - "seed": 1387251161, - "groupIds": [], - "roundness": { - "type": 3 - }, - "boundElements": null, - "updated": 1688229017947, - "link": null, - "locked": false - }, - { - "id": "ziuT4ieM8ozN8-GLmBQtf", - "type": "rectangle", - "x": -143.89775083500913, - "y": -389.81178048305844, - "width": 51.7101505448303, - "height": 18.455421082861392, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#6741d9", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "roundness": { - "type": 3 - }, - "seed": 2061951417, - "version": 63, - "versionNonce": 1401525367, - "isDeleted": true, - "boundElements": null, - "updated": 1688218088148, - "link": null, - "locked": false - }, - { - "type": "rectangle", - "version": 65, - "versionNonce": 853627513, - "isDeleted": true, - "id": "bKsQhiXpNZlJzS57DJQjR", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": -118.19527852762022, - "y": -340.7260830138357, - "strokeColor": "#1e1e1e", - "backgroundColor": "#6741d9", - "width": 51.7101505448303, - "height": 18.455421082861392, - "seed": 422587513, - "groupIds": [], - "roundness": { - "type": 3 - }, - "boundElements": [], - "updated": 1688218088148, - "link": null, - "locked": false - }, - { - "type": "rectangle", - "version": 65, - "versionNonce": 1684925847, - "isDeleted": true, - "id": "3uCczO-Ou2H8zuMthOods", - "fillStyle": "solid", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": -142.6117529318192, - "y": -271.5460722019386, - "strokeColor": "#1e1e1e", - "backgroundColor": "#6741d9", - "width": 51.7101505448303, - "height": 18.455421082861392, - "seed": 660940983, - "groupIds": [], - "roundness": { - "type": 3 - }, - "boundElements": [], - "updated": 1688218088148, - "link": null, - "locked": false } ], "appState": { @@ -1849,15 +1702,25 @@ s'éduquent plus vite ^sMERNe6p "currentItemTextAlign": "left", "currentItemStartArrowhead": null, "currentItemEndArrowhead": "triangle", - "scrollX": 367.0732287290145, - "scrollY": 575.596352717196, + "scrollX": 428.0982748895777, + "scrollY": 578.0370110604435, "zoom": { - "value": 1.2286786168784787 + "value": 1.147555047974243 }, "currentItemRoundness": "round", "gridSize": null, + "gridColor": { + "Bold": "#C9C9C9FF", + "Regular": "#EDEDEDFF" + }, "currentStrokeOptions": null, - "previousGridSize": null + "previousGridSize": null, + "frameRendering": { + "enabled": true, + "clip": true, + "name": true, + "outline": true + } }, "files": {} } diff --git a/Excalidraw/mémoire à cordes de ferrites 2024-02-15 20.04.20.excalidraw.md b/Excalidraw/mémoire à cordes de ferrites 2024-02-15 20.04.20.excalidraw.md new file mode 100644 index 00000000..583227cc --- /dev/null +++ b/Excalidraw/mémoire à cordes de ferrites 2024-02-15 20.04.20.excalidraw.md @@ -0,0 +1,2566 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +A ^Q8s9owVo + +B ^K0fuBTTp + +C ^3Df6uKTr + +D ^bsYpUJSv + +A ^vkPYWVGm + +B ^6aGyYy7i + +C ^NXjBBSc0 + +D ^yKP3NSdr + +adresse 0 ^V1Lg8hOP + +adresse 1 ^tOYHUe0B + +adresse 2 ^IzarIVg0 + +adresse 3 ^NpBOLyur + +mot 1 ^VatXplBs + +mot 1 ^dWBc4qIU + +1011 ^su7cRtQ8 + +1110 ^HYYNfvtT + +1010 ^Ijom74bS + +1100 ^fwTNVnUX + +0011 ^bmb6OWnD + +0111 ^YrCUTkHA + +1010 ^o6FPN7Ut + +0100 ^w4mYsYVB + +%% +# Drawing +```json +{ + "type": "excalidraw", + "version": 2, + "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.0.16", + "elements": [ + { + "id": "lnfR--pOT-1cq1X6HfNBn", + "type": "ellipse", + "x": -278.81409143518533, + "y": -228.71809895833331, + "width": 93.81640625, + "height": 170.81640625, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1923257596, + "version": 172, + "versionNonce": 212203972, + "isDeleted": false, + "boundElements": [], + "updated": 1708024272193, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 108, + "versionNonce": 751444292, + "isDeleted": false, + "id": "27NibZvy1DdGIojSe1Q7Z", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -518.6025390625, + "y": -228.71809895833331, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 93.81640625, + "height": 170.81640625, + "seed": 1747328580, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1708024272193, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 107, + "versionNonce": 1454052604, + "isDeleted": false, + "id": "XcUrJf47k34Ba_9irS1eC", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -39.02564380787064, + "y": -228.71809895833331, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 93.81640625, + "height": 170.81640625, + "seed": 343148796, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1708024036473, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 143, + "versionNonce": 217696452, + "isDeleted": false, + "id": "Pw1aTxuyIgjBMcn4_MBNp", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 200.76280381944406, + "y": -228.71809895833331, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 93.81640625, + "height": 170.81640625, + "seed": 2008462276, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1708024036473, + "link": null, + "locked": false + }, + { + "id": "uZu6DO401_O7yC4PDAdQW", + "type": "line", + "x": -633.0455726553913, + "y": -211.56493868835764, + "width": 178.36439645472785, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1527049340, + "version": 331, + "versionNonce": 1732410748, + "isDeleted": false, + "boundElements": null, + "updated": 1708024111467, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 85.13926428004936, + 0 + ], + [ + 178.36439645472785, + 0 + ] + ], + "lastCommittedPoint": [ + 127.00914015621163, + 58.51561830732766 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "4ewbY6TqHAFyQAwINs3th", + "type": "line", + "x": -435.0156265315844, + "y": -211.9040139664288, + "width": 217.87754207540468, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1454295420, + "version": 96, + "versionNonce": 691135100, + "isDeleted": false, + "boundElements": null, + "updated": 1708024104688, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 217.87754207540468, + 0 + ] + ], + "lastCommittedPoint": [ + 217.87754207540468, + 0 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "Hp6dxhaf1mwQBm6JgOhYX", + "type": "line", + "x": -195.9023856003771, + "y": -212.21598681487632, + "width": 458.07850954466096, + "height": 44.07568057630101, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 272398588, + "version": 252, + "versionNonce": 1514129348, + "isDeleted": false, + "boundElements": null, + "updated": 1708024091342, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 86.45377956811535, + 0 + ], + [ + 130.52946014441633, + -44.07568057630101 + ], + [ + 263.6940402282904, + -44.07568057630101 + ], + [ + 306.59893565014323, + -1.1707851544481969 + ], + [ + 458.07850954466096, + -1.1707851544481969 + ] + ], + "lastCommittedPoint": [ + 458.07850954466096, + -1.1707851544481969 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "90pouee7Yb6f2uEFMohW5", + "type": "line", + "x": 282.92484899434896, + "y": -211.64605468743397, + "width": 125.41623518417327, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1433818876, + "version": 54, + "versionNonce": 623940420, + "isDeleted": false, + "boundElements": null, + "updated": 1708024104688, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 125.41623518417327, + 0 + ] + ], + "lastCommittedPoint": [ + 125.41623518417327, + 0 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "YRbzxG4XZalD4C6EaWMzc", + "type": "line", + "x": -631.7257371071308, + "y": -191.28521548229298, + "width": 1045.423533148765, + "height": 87.35106930803425, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1120239556, + "version": 508, + "versionNonce": 699079548, + "isDeleted": false, + "boundElements": null, + "updated": 1708024133709, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 96.6347179179719, + 0 + ], + [ + 120.04036639705475, + -87.35106930803425 + ], + [ + 913.4081202232901, + -87.35106930803425 + ], + [ + 942.0758585629173, + -87.35106930803425 + ], + [ + 965.2969711273124, + -0.6886974094359175 + ], + [ + 1045.423533148765, + -0.6886974094359175 + ] + ], + "lastCommittedPoint": [ + 1045.423533148765, + -0.6886974094359175 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "zLi5e5c3SF60rvNer0DMD", + "type": "line", + "x": -632.8362194304948, + "y": -172.37317410675422, + "width": 195.24008684420835, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 454316156, + "version": 75, + "versionNonce": 417815364, + "isDeleted": false, + "boundElements": null, + "updated": 1708024190130, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 195.24008684420835, + 0 + ] + ], + "lastCommittedPoint": [ + 195.24008684420835, + 0 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "H7lCSMckf7naHj0S85lYk", + "type": "line", + "x": -417.12502811706224, + "y": -171.70887706546193, + "width": 219.6297375446469, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 869204220, + "version": 90, + "versionNonce": 1029919428, + "isDeleted": false, + "boundElements": null, + "updated": 1708024190130, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 219.6297375446469, + 0 + ] + ], + "lastCommittedPoint": [ + 219.6297375446469, + 0 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "type": "line", + "version": 173, + "versionNonce": 1853119044, + "isDeleted": false, + "id": "gdHizq_Y31is79E_XVj_J", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -179.54097595901158, + "y": -172.29261192706318, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 219.6297375446469, + "height": 0, + "seed": 502691012, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1708024190130, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 219.6297375446469, + 0 + ] + ] + }, + { + "type": "line", + "version": 219, + "versionNonce": 1995993540, + "isDeleted": false, + "id": "8ANmo2u50HwU6HpBPMVDQ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 63.37703227683568, + "y": -172.00616590687386, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 219.6297375446469, + "height": 0, + "seed": 607537348, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1708024190130, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + 219.6297375446469, + 0 + ] + ] + }, + { + "id": "rQwRfwcvyOgr1eSWl6QNL", + "type": "line", + "x": 301.2022957592234, + "y": -172.7979907328956, + "width": 114.30230963640861, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 239715580, + "version": 55, + "versionNonce": 369989956, + "isDeleted": false, + "boundElements": null, + "updated": 1708024190130, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 114.30230963640861, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "Q8s9owVo", + "type": "text", + "x": -666.464718968756, + "y": -225.03659626125386, + "width": 13.1199951171875, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 429879236, + "version": 13, + "versionNonce": 1123403972, + "isDeleted": false, + "boundElements": null, + "updated": 1708024200165, + "link": null, + "locked": false, + "text": "A", + "rawText": "A", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "A", + "lineHeight": 1.25 + }, + { + "id": "K0fuBTTp", + "type": "text", + "x": -654.6408129191684, + "y": -202.22619706166472, + "width": 14.539993286132812, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 149671748, + "version": 36, + "versionNonce": 1663035772, + "isDeleted": false, + "boundElements": null, + "updated": 1708024205598, + "link": null, + "locked": false, + "text": "B", + "rawText": "B", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "B", + "lineHeight": 1.25 + }, + { + "id": "StYtcYs2g10rcMOZGZnls", + "type": "line", + "x": -630.396799244744, + "y": -97.954637592035, + "width": 179.52039034872132, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1186235772, + "version": 117, + "versionNonce": 338805444, + "isDeleted": false, + "boundElements": null, + "updated": 1708024312381, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 179.52039034872132, + 0 + ] + ], + "lastCommittedPoint": [ + 179.52039034872132, + 0 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "GuJtxf__0BJn5tsAdSj7N", + "type": "line", + "x": -423.25088552381476, + "y": -98.1267388824651, + "width": 220.68105482619217, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1820368764, + "version": 192, + "versionNonce": 1656823036, + "isDeleted": false, + "boundElements": null, + "updated": 1708024315686, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 122.04837895757794, + 0 + ], + [ + 220.68105482619217, + 0 + ] + ], + "lastCommittedPoint": [ + 220.68105482619217, + 0 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "PMh9mDayc-hBEU9VbG_yY", + "type": "line", + "x": -182.89972987148064, + "y": -98.20685842336192, + "width": 221.60493970997447, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1110404732, + "version": 69, + "versionNonce": 2066235588, + "isDeleted": false, + "boundElements": null, + "updated": 1708024315686, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 221.60493970997447, + 0 + ] + ], + "lastCommittedPoint": [ + 221.60493970997447, + 0 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "Z4EDTrqvhxF6dbDYgdBX-", + "type": "line", + "x": 55.69923031161136, + "y": -97.37878373662386, + "width": 367.0735729135786, + "height": 50.21903988758858, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 224161916, + "version": 309, + "versionNonce": 986344700, + "isDeleted": false, + "boundElements": null, + "updated": 1708024567677, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 95.33763815502641, + 0 + ], + [ + 123.5401423243255, + 48.84817012189913 + ], + [ + 263.7076936994788, + 48.84817012189913 + ], + [ + 292.7016698970226, + -1.3708697656894486 + ], + [ + 367.0735729135786, + -1.3708697656894486 + ] + ], + "lastCommittedPoint": [ + 363.60559123159817, + 7.804881227008423 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "3Df6uKTr", + "type": "text", + "x": -667.2429668265225, + "y": -184.03977343805002, + "width": 12.879989624023438, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 999376708, + "version": 69, + "versionNonce": 1636864252, + "isDeleted": false, + "boundElements": null, + "updated": 1708024628112, + "link": null, + "locked": false, + "text": "C", + "rawText": "C", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "C", + "lineHeight": 1.25 + }, + { + "id": "PnN5_fbJSTotgwjIPleQq", + "type": "line", + "x": -629.1588845236171, + "y": -156.09566907143443, + "width": 188.12662835479136, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1225141372, + "version": 118, + "versionNonce": 267251524, + "isDeleted": false, + "boundElements": null, + "updated": 1708024337136, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 188.12662835479136, + 0 + ] + ], + "lastCommittedPoint": [ + 188.12662835479136, + 0 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "pfHnpcgBfW2UdWgO9ZVj1", + "type": "line", + "x": -413.86639965997745, + "y": -155.7816392340897, + "width": 460.12653022299605, + "height": 91.8191453622513, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 338319228, + "version": 211, + "versionNonce": 1133059524, + "isDeleted": false, + "boundElements": null, + "updated": 1708024349235, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 64.2168261584601, + 0 + ], + [ + 117.2286344501174, + -91.8191453622513 + ], + [ + 234.32997485802923, + -91.8191453622513 + ], + [ + 286.9050089679527, + -0.7565150741970967 + ], + [ + 460.12653022299605, + -0.7565150741970967 + ] + ], + "lastCommittedPoint": [ + 460.12653022299605, + -0.7565150741970967 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "7e2sSjnVyK07sNRRUwIPB", + "type": "line", + "x": 67.94639396805485, + "y": -156.69187064668307, + "width": 345.27808173903134, + "height": 88.50885260004162, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 472129788, + "version": 397, + "versionNonce": 1665842756, + "isDeleted": false, + "boundElements": null, + "updated": 1708024369981, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 92.46130689123129, + 0 + ], + [ + 142.67858514436057, + -86.97887735224359 + ], + [ + 219.05629175471302, + -86.97887735224359 + ], + [ + 270.1569016290119, + 1.5299752477980348 + ], + [ + 345.27808173903134, + 1.5299752477980348 + ] + ], + "lastCommittedPoint": [ + 347.8039739089779, + 2.4309554191540883 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "C47c-UqB6QEOftptyye0M", + "type": "line", + "x": -629.4274027903326, + "y": -87.33678816413334, + "width": 175.50171866212173, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1391057020, + "version": 247, + "versionNonce": 238273092, + "isDeleted": false, + "boundElements": null, + "updated": 1708024478444, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 175.50171866212173, + 0 + ] + ], + "lastCommittedPoint": [ + 173.10781004700124, + 0 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "CWSViKX3Ag3AiBtTHRmQT", + "type": "line", + "x": -426.7962368758664, + "y": -86.64658456642091, + "width": 458.5290740938947, + "height": 41.50871821099072, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 729519228, + "version": 327, + "versionNonce": 460448508, + "isDeleted": false, + "boundElements": null, + "updated": 1708024512352, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 136.1387612245228, + 0 + ], + [ + 147.2609887480088, + 41.50871821099072 + ], + [ + 239.60476589400764, + 41.50871821099072 + ], + [ + 250.22684464574752, + 1.866580627499843 + ], + [ + 458.5290740938947, + 1.866580627499843 + ] + ], + "lastCommittedPoint": [ + 458.5290740938947, + 1.866580627499843 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "sgXzUdMBDG8THIW7uzEw-", + "type": "line", + "x": 51.08435704976273, + "y": -87.38442252849684, + "width": 218.7104038179276, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1654630268, + "version": 69, + "versionNonce": 2001656516, + "isDeleted": false, + "boundElements": null, + "updated": 1708024512352, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 218.7104038179276, + 0 + ] + ], + "lastCommittedPoint": [ + 218.7104038179276, + 0 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "Pgq-dHg-OfU4nEdYCx5aI", + "type": "line", + "x": 290.09292136852184, + "y": -87.13223142233993, + "width": 132.39315896170115, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1998596476, + "version": 49, + "versionNonce": 229909372, + "isDeleted": false, + "boundElements": null, + "updated": 1708024512353, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 132.39315896170115, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "UclQjhjtufK3UsPV-RVVS", + "type": "line", + "x": -628.1712834409539, + "y": -107.22534452929779, + "width": 187.77163810388004, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1101134276, + "version": 112, + "versionNonce": 490003324, + "isDeleted": false, + "boundElements": null, + "updated": 1708024527191, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 187.77163810388004, + 0 + ] + ], + "lastCommittedPoint": [ + 187.77163810388004, + 0 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "oPmnUU_bU4WYLMee_cgHC", + "type": "line", + "x": -418.4858240788892, + "y": -106.46985245684533, + "width": 220.03023936618797, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1435484612, + "version": 104, + "versionNonce": 1539952508, + "isDeleted": false, + "boundElements": null, + "updated": 1708024535191, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 220.03023936618797, + 0 + ] + ], + "lastCommittedPoint": [ + 220.03023936618797, + 0 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "9E5Hwo9TIVhIeaWvUNTLG", + "type": "line", + "x": -180.00974513649726, + "y": -105.80083236858923, + "width": 605.9273978921971, + "height": 85.72067140844857, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 864718276, + "version": 373, + "versionNonce": 1985665532, + "isDeleted": false, + "boundElements": null, + "updated": 1708024552240, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 78.80783570233132, + 0 + ], + [ + 127.39762434343376, + 84.15998265542251 + ], + [ + 508.3050788915615, + 84.15998265542251 + ], + [ + 557.7959316043447, + -1.5606887530260565 + ], + [ + 605.9273978921971, + -1.5606887530260565 + ] + ], + "lastCommittedPoint": [ + 605.9273978921971, + -1.5606887530260565 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "SzlcKh52G3WyIm0a_c3d-", + "type": "line", + "x": -628.7811384873913, + "y": -76.42311352713921, + "width": 651.989658526483, + "height": 40.678961206959016, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1201095676, + "version": 341, + "versionNonce": 861276228, + "isDeleted": false, + "boundElements": null, + "updated": 1708024605102, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 99.44733298288531, + 0 + ], + [ + 122.93334218607748, + 40.678961206959016 + ], + [ + 472.79240032923235, + 40.678961206959016 + ], + [ + 493.85907402179566, + 4.190412024964729 + ], + [ + 651.989658526483, + 4.190412024964729 + ] + ], + "lastCommittedPoint": [ + 651.989658526483, + 4.190412024964729 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "HScGZYMhuvSV5qLVxGmen", + "type": "line", + "x": 42.036656808584894, + "y": -71.30306183130165, + "width": 382.4018699016507, + "height": 41.58014328629638, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1481993852, + "version": 301, + "versionNonce": 1761266116, + "isDeleted": false, + "boundElements": null, + "updated": 1708024617971, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 102.36462466024693, + 0 + ], + [ + 125.87198218006705, + 40.71593757601474 + ], + [ + 313.8750980045612, + 40.71593757601474 + ], + [ + 337.88140492384764, + -0.8642057102816381 + ], + [ + 382.4018699016507, + -0.8642057102816381 + ] + ], + "lastCommittedPoint": [ + 382.4018699016507, + -0.8642057102816381 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "bsYpUJSv", + "type": "text", + "x": -649.6891540346604, + "y": -166.408590976117, + "width": 15.599990844726562, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 363098180, + "version": 39, + "versionNonce": 1237769284, + "isDeleted": false, + "boundElements": null, + "updated": 1708024625909, + "link": null, + "locked": false, + "text": "D", + "rawText": "D", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "D", + "lineHeight": 1.25 + }, + { + "id": "vkPYWVGm", + "type": "text", + "x": -669.9395507386487, + "y": -121.22613915529669, + "width": 13.1199951171875, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 203154044, + "version": 145, + "versionNonce": 461942468, + "isDeleted": false, + "boundElements": null, + "updated": 1708024669077, + "link": null, + "locked": false, + "text": "A", + "rawText": "A", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "A", + "lineHeight": 1.25 + }, + { + "id": "6aGyYy7i", + "type": "text", + "x": -652.3728218820942, + "y": -110.75672792561386, + "width": 14.539993286132812, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1037624900, + "version": 73, + "versionNonce": 870131908, + "isDeleted": false, + "boundElements": null, + "updated": 1708024670942, + "link": null, + "locked": false, + "text": "B", + "rawText": "B", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "B", + "lineHeight": 1.25 + }, + { + "id": "NXjBBSc0", + "type": "text", + "x": -669.3408150111808, + "y": -99.75158422132026, + "width": 12.879989624023438, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1301957060, + "version": 135, + "versionNonce": 759579516, + "isDeleted": false, + "boundElements": null, + "updated": 1708024666991, + "link": null, + "locked": false, + "text": "C", + "rawText": "C", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "C", + "lineHeight": 1.25 + }, + { + "id": "yKP3NSdr", + "type": "text", + "x": -652.2339511992119, + "y": -88.8495197867949, + "width": 15.599990844726562, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1148050556, + "version": 80, + "versionNonce": 1266652412, + "isDeleted": false, + "boundElements": null, + "updated": 1708024664940, + "link": null, + "locked": false, + "text": "D", + "rawText": "D", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "D", + "lineHeight": 1.25 + }, + { + "id": "nRzxvroyR68mdc5PD-dik", + "type": "rectangle", + "x": -563.8892335067908, + "y": -368.28019223876356, + "width": 186.9719002761919, + "height": 370.6492992175689, + "angle": 0, + "strokeColor": "#6741d9", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1726973564, + "version": 287, + "versionNonce": 11832004, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "V1Lg8hOP" + } + ], + "updated": 1708025305037, + "link": null, + "locked": false + }, + { + "id": "V1Lg8hOP", + "type": "text", + "x": -520.7432415596128, + "y": -363.28019223876356, + "width": 100.67991638183594, + "height": 25, + "angle": 0, + "strokeColor": "#6741d9", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1154200316, + "version": 200, + "versionNonce": 585011780, + "isDeleted": false, + "boundElements": null, + "updated": 1708025305037, + "link": null, + "locked": false, + "text": "adresse 0", + "rawText": "adresse 0", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "baseline": 18, + "containerId": "nRzxvroyR68mdc5PD-dik", + "originalText": "adresse 0", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 314, + "versionNonce": 2048075900, + "isDeleted": false, + "id": "lbQGc7Nk05imXExbuVOVJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -324.66814207015284, + "y": -368.2921136284344, + "strokeColor": "#6741d9", + "backgroundColor": "transparent", + "width": 186.9719002761919, + "height": 370.6492992175689, + "seed": 273908604, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "tOYHUe0B" + } + ], + "updated": 1708025080111, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 229, + "versionNonce": 1114549572, + "isDeleted": false, + "id": "tOYHUe0B", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -277.3521519540295, + "y": -363.2921136284344, + "strokeColor": "#6741d9", + "backgroundColor": "transparent", + "width": 92.33992004394531, + "height": 25, + "seed": 646820860, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1708025080111, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "adresse 1", + "rawText": "adresse 1", + "textAlign": "center", + "verticalAlign": "top", + "containerId": "lbQGc7Nk05imXExbuVOVJ", + "originalText": "adresse 1", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "rectangle", + "version": 396, + "versionNonce": 1662040316, + "isDeleted": false, + "id": "urTxlTa3zS6CY_fgnD9oF", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -85.58696063438106, + "y": -368.28019223876356, + "strokeColor": "#6741d9", + "backgroundColor": "transparent", + "width": 186.9719002761919, + "height": 370.6492992175689, + "seed": 1308393796, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "IzarIVg0" + } + ], + "updated": 1708025080111, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 312, + "versionNonce": 506488004, + "isDeleted": false, + "id": "IzarIVg0", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -42.68096655097261, + "y": -363.28019223876356, + "strokeColor": "#6741d9", + "backgroundColor": "transparent", + "width": 101.159912109375, + "height": 25, + "seed": 551794884, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1708025080111, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "adresse 2", + "rawText": "adresse 2", + "textAlign": "center", + "verticalAlign": "top", + "containerId": "urTxlTa3zS6CY_fgnD9oF", + "originalText": "adresse 2", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "type": "rectangle", + "version": 441, + "versionNonce": 1728592252, + "isDeleted": false, + "id": "ufX2Qnf_sfXhIA-KpdbJj", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 153.49422080139072, + "y": -368.40735372858575, + "strokeColor": "#6741d9", + "backgroundColor": "transparent", + "width": 186.9719002761919, + "height": 370.6492992175689, + "seed": 714573692, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "NpBOLyur" + } + ], + "updated": 1708025080111, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 357, + "versionNonce": 399453252, + "isDeleted": false, + "id": "NpBOLyur", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 196.71021244339292, + "y": -363.40735372858575, + "strokeColor": "#6741d9", + "backgroundColor": "transparent", + "width": 100.5399169921875, + "height": 25, + "seed": 1639004156, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1708025080111, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "adresse 3", + "rawText": "adresse 3", + "textAlign": "center", + "verticalAlign": "top", + "containerId": "ufX2Qnf_sfXhIA-KpdbJj", + "originalText": "adresse 3", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "id": "OG67IFd32gyjgO86uJ3tF", + "type": "rectangle", + "x": -689.1120981914474, + "y": -263.84258473279675, + "width": 79.06391297493765, + "height": 124.0846627998185, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1390726468, + "version": 424, + "versionNonce": 63742148, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "VatXplBs" + } + ], + "updated": 1708024913564, + "link": null, + "locked": false + }, + { + "id": "VatXplBs", + "type": "text", + "x": -674.8101221727286, + "y": -258.84258473279675, + "width": 50.4599609375, + "height": 25, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 981855940, + "version": 421, + "versionNonce": 1053211900, + "isDeleted": false, + "boundElements": null, + "updated": 1708024913564, + "link": null, + "locked": false, + "text": "mot 1", + "rawText": "mot 1", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "baseline": 18, + "containerId": "OG67IFd32gyjgO86uJ3tF", + "originalText": "mot 1", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 529, + "versionNonce": 1388126716, + "isDeleted": false, + "id": "F_1QKq82yZ73IM9eVvmHG", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -689.1120981914474, + "y": -128.53887212572005, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 79.06391297493765, + "height": 104.02689168240171, + "seed": 598792388, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "dWBc4qIU" + } + ], + "updated": 1708025073125, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 529, + "versionNonce": 479923140, + "isDeleted": false, + "id": "dWBc4qIU", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -674.8101221727286, + "y": -54.511980443318336, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 50.4599609375, + "height": 25, + "seed": 2099322948, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1708025073125, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "mot 1", + "rawText": "mot 1", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "F_1QKq82yZ73IM9eVvmHG", + "originalText": "mot 1", + "lineHeight": 1.25, + "baseline": 18 + }, + { + "id": "su7cRtQ8", + "type": "text", + "x": -493.8407833686948, + "y": 23.617044040153417, + "width": 46.875, + "height": 24, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "A2gDIx4O92NufAsp_NzLz" + ], + "frameId": null, + "roundness": null, + "seed": 1749744892, + "version": 97, + "versionNonce": 1275529412, + "isDeleted": false, + "boundElements": null, + "updated": 1708025313575, + "link": null, + "locked": false, + "text": "1011", + "rawText": "1011", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 20, + "containerId": null, + "originalText": "1011", + "lineHeight": 1.2 + }, + { + "id": "HYYNfvtT", + "type": "text", + "x": -493.8407833686948, + "y": 64.220926025143, + "width": 46.875, + "height": 24, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "A2gDIx4O92NufAsp_NzLz" + ], + "frameId": null, + "roundness": null, + "seed": 563938044, + "version": 96, + "versionNonce": 576574844, + "isDeleted": false, + "boundElements": null, + "updated": 1708025313575, + "link": null, + "locked": false, + "text": "1110", + "rawText": "1110", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 20, + "containerId": null, + "originalText": "1110", + "lineHeight": 1.2 + }, + { + "type": "text", + "version": 141, + "versionNonce": 416318020, + "isDeleted": false, + "id": "Ijom74bS", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -254.71419512760588, + "y": 23.677922191244022, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 46.875, + "height": 24, + "seed": 230788548, + "groupIds": [ + "OUx4fylAVBnkzdhLSARdY" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1708025323289, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 3, + "text": "1010", + "rawText": "1010", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "1010", + "lineHeight": 1.2, + "baseline": 20 + }, + { + "type": "text", + "version": 141, + "versionNonce": 2082649084, + "isDeleted": false, + "id": "fwTNVnUX", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -254.71419512760588, + "y": 64.1600478740524, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 46.875, + "height": 24, + "seed": 760427844, + "groupIds": [ + "OUx4fylAVBnkzdhLSARdY" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1708025323289, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 3, + "text": "1100", + "rawText": "1100", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "1100", + "lineHeight": 1.2, + "baseline": 20 + }, + { + "type": "text", + "version": 105, + "versionNonce": 1401919940, + "isDeleted": false, + "id": "bmb6OWnD", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -15.583917301602327, + "y": 23.558010681520045, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 46.875, + "height": 24, + "seed": 1257459836, + "groupIds": [ + "SOEe2NRiI2Ye6L_UmravI" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1708025323289, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 3, + "text": "0011", + "rawText": "0011", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0011", + "lineHeight": 1.2, + "baseline": 20 + }, + { + "type": "text", + "version": 104, + "versionNonce": 572707964, + "isDeleted": false, + "id": "YrCUTkHA", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -15.587606886516909, + "y": 64.27995938377637, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 46.875, + "height": 24, + "seed": 1974198524, + "groupIds": [ + "SOEe2NRiI2Ye6L_UmravI" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1708025323289, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 3, + "text": "0111", + "rawText": "0111", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0111", + "lineHeight": 1.2, + "baseline": 20 + }, + { + "type": "text", + "version": 156, + "versionNonce": 629129540, + "isDeleted": false, + "id": "o6FPN7Ut", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 223.54267093948664, + "y": 23.617044040153417, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 46.875, + "height": 24, + "seed": 1023544060, + "groupIds": [ + "YPf_pxRjbiwG9Ql2mwMDL" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1708025323289, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 3, + "text": "1010", + "rawText": "1010", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "1010", + "lineHeight": 1.2, + "baseline": 20 + }, + { + "type": "text", + "version": 155, + "versionNonce": 1145758972, + "isDeleted": false, + "id": "w4mYsYVB", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 223.54267093948664, + "y": 64.220926025143, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 46.875, + "height": 24, + "seed": 1526680444, + "groupIds": [ + "YPf_pxRjbiwG9Ql2mwMDL" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1708025323289, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 3, + "text": "0100", + "rawText": "0100", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "0100", + "lineHeight": 1.2, + "baseline": 20 + } + ], + "appState": { + "theme": "dark", + "viewBackgroundColor": "#ffffff", + "currentItemStrokeColor": "#1971c2", + "currentItemBackgroundColor": "transparent", + "currentItemFillStyle": "solid", + "currentItemStrokeWidth": 2, + "currentItemStrokeStyle": "solid", + "currentItemRoughness": 1, + "currentItemOpacity": 100, + "currentItemFontFamily": 3, + "currentItemFontSize": 20, + "currentItemTextAlign": "left", + "currentItemStartArrowhead": null, + "currentItemEndArrowhead": "arrow", + "scrollX": 892.2538794853775, + "scrollY": 554.6153608799849, + "zoom": { + "value": 0.8934314861418471 + }, + "currentItemRoundness": "round", + "gridSize": null, + "gridColor": { + "Bold": "#C9C9C9FF", + "Regular": "#EDEDEDFF" + }, + "currentStrokeOptions": null, + "previousGridSize": null, + "frameRendering": { + "enabled": true, + "clip": true, + "name": true, + "outline": true + } + }, + "files": {} +} +``` +%% \ No newline at end of file diff --git a/Excalidraw/mémoire à tore de ferrite 2024-02-15 01.02.52.excalidraw.md b/Excalidraw/mémoire à tore de ferrite 2024-02-15 01.02.52.excalidraw.md new file mode 100644 index 00000000..76b405f1 --- /dev/null +++ b/Excalidraw/mémoire à tore de ferrite 2024-02-15 01.02.52.excalidraw.md @@ -0,0 +1,676 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +Reset ^RoHLK7dp + +Set ^NORclDsY + +Sense ^1Hgsf293 + +%% +# Drawing +```json +{ + "type": "excalidraw", + "version": 2, + "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.0.16", + "elements": [ + { + "id": "M3sG8YHxZ9sgeIVjjEQLA", + "type": "ellipse", + "x": -85.12890625, + "y": -261.17578125, + "width": 126.60546875, + "height": 197.8984375, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 993107708, + "version": 156, + "versionNonce": 1305930308, + "isDeleted": false, + "boundElements": [ + { + "id": "ZYIT0c9oGbNc5aehe-1SY", + "type": "arrow" + }, + { + "id": "Ut1skK0QDvebF6_jIOg2G", + "type": "arrow" + } + ], + "updated": 1707955502767, + "link": null, + "locked": false + }, + { + "id": "rYTrBs1w9j1SpRu51PUHS", + "type": "line", + "x": 30, + "y": -231.359375, + "width": 71.591796875, + "height": 26.908203125, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1842072388, + "version": 154, + "versionNonce": 211812860, + "isDeleted": false, + "boundElements": null, + "updated": 1707955441542, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 44.68359375, + 0 + ], + [ + 71.591796875, + -26.908203125 + ] + ], + "lastCommittedPoint": [ + 71.591796875, + -26.908203125 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "RoHLK7dp", + "type": "text", + "x": -193.41796875, + "y": -300.7421875, + "width": 57.599945068359375, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 819643516, + "version": 69, + "versionNonce": 642532292, + "isDeleted": false, + "boundElements": [ + { + "id": "BpGvrmBpa8qqpkuxhhofa", + "type": "arrow" + } + ], + "updated": 1707955428464, + "link": null, + "locked": false, + "text": "Reset", + "rawText": "Reset", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "Reset", + "lineHeight": 1.25 + }, + { + "id": "BpGvrmBpa8qqpkuxhhofa", + "type": "arrow", + "x": -144.28125, + "y": -259.96484375, + "width": 152.21875, + "height": 28.537109375, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 759511292, + "version": 133, + "versionNonce": 1349727684, + "isDeleted": false, + "boundElements": null, + "updated": 1707955439251, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 28.537109375000014, + 28.537109375 + ], + [ + 152.21875, + 28.537109375 + ] + ], + "lastCommittedPoint": [ + 152.21875, + 28.537109375 + ], + "startBinding": { + "elementId": "RoHLK7dp", + "focus": 0.19226641198388442, + "gap": 15.77734375 + }, + "endBinding": null, + "startArrowhead": "arrow", + "endArrowhead": null + }, + { + "id": "jT8cpDxp-r2QKdnlSbfIo", + "type": "line", + "x": -172.37890625, + "y": -229.9765625, + "width": 195.75390625, + "height": 28.3984375, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1414312700, + "version": 136, + "versionNonce": 1363863492, + "isDeleted": false, + "boundElements": null, + "updated": 1707955450248, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 28.3984375, + 28.3984375 + ], + [ + 195.75390625, + 28.3984375 + ] + ], + "lastCommittedPoint": [ + 195.75390625, + 28.3984375 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "ZYIT0c9oGbNc5aehe-1SY", + "type": "arrow", + "x": 46.71484375, + "y": -201.4765625, + "width": 72.607421875, + "height": 30.279296875, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1179727612, + "version": 129, + "versionNonce": 915842500, + "isDeleted": false, + "boundElements": null, + "updated": 1707955470759, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 42.328125, + 0 + ], + [ + 72.607421875, + -30.279296875 + ] + ], + "lastCommittedPoint": [ + 72.607421875, + -30.279296875 + ], + "startBinding": { + "elementId": "M3sG8YHxZ9sgeIVjjEQLA", + "focus": -0.39666811416841025, + "gap": 10.081109002050752 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "NORclDsY", + "type": "text", + "x": -201.171875, + "y": -256.671875, + "width": 34.39996337890625, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 679451004, + "version": 58, + "versionNonce": 883398396, + "isDeleted": false, + "boundElements": null, + "updated": 1707955477526, + "link": null, + "locked": false, + "text": "Set", + "rawText": "Set", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "Set", + "lineHeight": 1.25 + }, + { + "id": "1Hgsf293", + "type": "text", + "x": -218, + "y": -71.12109375, + "width": 54.23994445800781, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 503883900, + "version": 6, + "versionNonce": 1649959620, + "isDeleted": false, + "boundElements": null, + "updated": 1707955483329, + "link": null, + "locked": false, + "text": "Sense", + "rawText": "Sense", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "Sense", + "lineHeight": 1.25 + }, + { + "id": "EXG1HESfTEgrowhlvpiIJ", + "type": "line", + "x": -185.4609375, + "y": -75.3359375, + "width": 205.71484375, + "height": 51.369140625000014, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1086024828, + "version": 113, + "versionNonce": 1701267908, + "isDeleted": false, + "boundElements": null, + "updated": 1707955494737, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 51.369140625, + -51.369140625000014 + ], + [ + 205.71484375, + -51.369140625000014 + ] + ], + "lastCommittedPoint": [ + 205.71484375, + -51.369140625000014 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "Ut1skK0QDvebF6_jIOg2G", + "type": "arrow", + "x": 53.5546875, + "y": -127.328125, + "width": 98.052734375, + "height": 57.98632812499997, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 219952380, + "version": 142, + "versionNonce": 2044191428, + "isDeleted": false, + "boundElements": null, + "updated": 1707955502767, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 40.06640625, + 0 + ], + [ + 98.052734375, + 57.98632812499997 + ] + ], + "lastCommittedPoint": [ + 98.052734375, + 57.98632812499997 + ], + "startBinding": { + "elementId": "M3sG8YHxZ9sgeIVjjEQLA", + "focus": 0.3526903793770479, + "gap": 15.742398994673962 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "nncj4ka5ApjaYmY9671F-", + "type": "line", + "x": -162.7890625, + "y": -263.49609375, + "width": 35.3828125, + "height": 39.88671875, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 309309892, + "version": 39, + "versionNonce": 1405615868, + "isDeleted": true, + "boundElements": null, + "updated": 1707955384973, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 35.3828125, + 39.88671875 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "2XQhDcb86qZC5JjvFLgJL", + "type": "line", + "x": -164.96875, + "y": -264.05859375, + "width": 293.26171875, + "height": 54.359375, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 216448892, + "version": 208, + "versionNonce": 423814908, + "isDeleted": true, + "boundElements": null, + "updated": 1707955392037, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 23.66796875, + 44.890625 + ], + [ + 150.67578125, + 54.359375 + ], + [ + 247.19140625, + 50.421875 + ], + [ + 293.26171875, + 0.7734375 + ] + ], + "lastCommittedPoint": [ + 293.26171875, + 0.7734375 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "bF1N0TAEimzYDSIdUsgk7", + "type": "line", + "x": -153.57421875, + "y": -271.875, + "width": 164.00390625, + "height": 34.048828125, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1188601412, + "version": 167, + "versionNonce": 282568828, + "isDeleted": true, + "boundElements": null, + "updated": 1707955422561, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 34.048828125000014, + 34.048828125 + ], + [ + 164.00390625, + 34.048828125 + ] + ], + "lastCommittedPoint": [ + 164.00390625, + 34.048828125 + ], + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + } + ], + "appState": { + "theme": "dark", + "viewBackgroundColor": "#ffffff", + "currentItemStrokeColor": "#1e1e1e", + "currentItemBackgroundColor": "transparent", + "currentItemFillStyle": "solid", + "currentItemStrokeWidth": 2, + "currentItemStrokeStyle": "solid", + "currentItemRoughness": 1, + "currentItemOpacity": 100, + "currentItemFontFamily": 1, + "currentItemFontSize": 20, + "currentItemTextAlign": "left", + "currentItemStartArrowhead": null, + "currentItemEndArrowhead": "arrow", + "scrollX": 495.3359375, + "scrollY": 410.21484375, + "zoom": { + "value": 1 + }, + "currentItemRoundness": "sharp", + "gridSize": null, + "gridColor": { + "Bold": "#C9C9C9FF", + "Regular": "#EDEDEDFF" + }, + "currentStrokeOptions": null, + "previousGridSize": null, + "frameRendering": { + "enabled": true, + "clip": true, + "name": true, + "outline": true + } + }, + "files": {} +} +``` +%% \ No newline at end of file diff --git a/Excalidraw/pizza hawaienne.excalidraw.md b/Excalidraw/pizza hawaienne.excalidraw.md index c135564e..c5b29db2 100644 --- a/Excalidraw/pizza hawaienne.excalidraw.md +++ b/Excalidraw/pizza hawaienne.excalidraw.md @@ -13,7 +13,7 @@ tags: [excalidraw] { "type": "excalidraw", "version": 2, - "source": "https://excalidraw.com", + "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.0.16", "elements": [ { "type": "ellipse", @@ -35,7 +35,8 @@ tags: [excalidraw] "height": 634.534912109375, "seed": 1280738705, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390783, "link": null, @@ -64,7 +65,8 @@ tags: [excalidraw] "HpCYaXtmYopeOJkTcnH6W", "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1654702227248, "link": null, @@ -93,7 +95,8 @@ tags: [excalidraw] "HpCYaXtmYopeOJkTcnH6W", "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1654702227248, "link": null, @@ -121,7 +124,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -330,7 +336,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -527,7 +536,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -664,7 +676,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -905,7 +920,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -1082,7 +1100,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -1323,7 +1344,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -1584,7 +1608,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -1817,7 +1844,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -1946,7 +1976,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -2083,7 +2116,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -2248,7 +2284,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -2405,7 +2444,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -2538,7 +2580,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -2699,7 +2744,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -2936,7 +2984,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -3109,7 +3160,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -3338,7 +3392,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -3571,7 +3628,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -3776,7 +3836,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -3941,7 +4004,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -4130,7 +4196,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -4335,7 +4404,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -4508,7 +4580,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -4773,7 +4848,10 @@ tags: [excalidraw] "groupIds": [ "PMhlotCQucWH8KZV28ngO" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1654702227248, "link": null, @@ -4935,7 +5013,8 @@ tags: [excalidraw] "F4y0EaocdikZeNHUjHc02", "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390784, "link": null, @@ -4964,7 +5043,8 @@ tags: [excalidraw] "F4y0EaocdikZeNHUjHc02", "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390784, "link": null, @@ -4992,7 +5072,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -5201,7 +5284,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -5398,7 +5484,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -5535,7 +5624,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -5776,7 +5868,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -5953,7 +6048,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -6194,7 +6292,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -6455,7 +6556,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -6688,7 +6792,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -6817,7 +6924,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -6954,7 +7064,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -7119,7 +7232,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -7276,7 +7392,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -7409,7 +7528,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -7570,7 +7692,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -7807,7 +7932,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -7980,7 +8108,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -8209,7 +8340,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -8442,7 +8576,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390784, "link": null, @@ -8647,7 +8784,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -8812,7 +8952,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -9001,7 +9144,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -9206,7 +9352,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -9379,7 +9528,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -9644,7 +9796,10 @@ tags: [excalidraw] "groupIds": [ "wiSlmVyRf-pjUrjjbtCrA" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -9806,7 +9961,8 @@ tags: [excalidraw] "jGNeXtzcrLwrsQGczKyTn", "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390785, "link": null, @@ -9835,7 +9991,8 @@ tags: [excalidraw] "jGNeXtzcrLwrsQGczKyTn", "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390785, "link": null, @@ -9863,7 +10020,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -10072,7 +10232,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -10269,7 +10432,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -10406,7 +10572,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -10647,7 +10816,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -10824,7 +10996,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -11065,7 +11240,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -11326,7 +11504,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -11559,7 +11740,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -11688,7 +11872,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -11825,7 +12012,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -11990,7 +12180,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -12147,7 +12340,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -12280,7 +12476,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -12441,7 +12640,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -12678,7 +12880,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -12851,7 +13056,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -13080,7 +13288,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -13313,7 +13524,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -13518,7 +13732,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -13683,7 +13900,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -13872,7 +14092,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -14077,7 +14300,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -14250,7 +14476,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -14515,7 +14744,10 @@ tags: [excalidraw] "groupIds": [ "9QolODzXdyH1rc2MkHsPD" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390785, "link": null, @@ -14677,7 +14909,8 @@ tags: [excalidraw] "pzq7NcxOpUXIPtZT2wU0N", "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390785, "link": null, @@ -14706,7 +14939,8 @@ tags: [excalidraw] "pzq7NcxOpUXIPtZT2wU0N", "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390786, "link": null, @@ -14734,7 +14968,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -14943,7 +15180,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -15140,7 +15380,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -15277,7 +15520,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -15518,7 +15764,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -15695,7 +15944,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -15936,7 +16188,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -16197,7 +16452,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -16430,7 +16688,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -16559,7 +16820,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -16696,7 +16960,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -16861,7 +17128,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -17018,7 +17288,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -17151,7 +17424,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -17312,7 +17588,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -17549,7 +17828,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -17722,7 +18004,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -17951,7 +18236,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -18184,7 +18472,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -18389,7 +18680,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -18554,7 +18848,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -18743,7 +19040,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -18948,7 +19248,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -19121,7 +19424,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -19386,7 +19692,10 @@ tags: [excalidraw] "groupIds": [ "XvXxiFGNcTWwWs2FtcAyo" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -19548,7 +19857,8 @@ tags: [excalidraw] "K7GLWHNjuftUPn3n0L5oF", "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390786, "link": null, @@ -19577,7 +19887,8 @@ tags: [excalidraw] "K7GLWHNjuftUPn3n0L5oF", "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390786, "link": null, @@ -19605,7 +19916,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -19814,7 +20128,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -20011,7 +20328,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -20148,7 +20468,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390786, "link": null, @@ -20389,7 +20712,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -20566,7 +20892,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -20807,7 +21136,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -21068,7 +21400,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -21301,7 +21636,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -21430,7 +21768,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -21567,7 +21908,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -21732,7 +22076,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -21889,7 +22236,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -22022,7 +22372,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -22183,7 +22536,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -22420,7 +22776,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -22593,7 +22952,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -22822,7 +23184,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -23055,7 +23420,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -23260,7 +23628,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -23425,7 +23796,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -23614,7 +23988,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -23819,7 +24196,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -23992,7 +24372,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -24257,7 +24640,10 @@ tags: [excalidraw] "groupIds": [ "kzkxLMHRG6nFCxrtjOsYC" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -24419,7 +24805,8 @@ tags: [excalidraw] "eekwFNMiYTOBAC6fTYIMI", "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390787, "link": null, @@ -24448,7 +24835,8 @@ tags: [excalidraw] "eekwFNMiYTOBAC6fTYIMI", "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390787, "link": null, @@ -24476,7 +24864,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -24685,7 +25076,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -24882,7 +25276,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -25019,7 +25416,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -25260,7 +25660,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -25437,7 +25840,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -25678,7 +26084,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -25939,7 +26348,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -26172,7 +26584,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -26301,7 +26716,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -26438,7 +26856,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -26603,7 +27024,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -26760,7 +27184,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -26893,7 +27320,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -27054,7 +27484,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -27291,7 +27724,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -27464,7 +27900,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390787, "link": null, @@ -27693,7 +28132,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -27926,7 +28368,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -28131,7 +28576,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -28296,7 +28744,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -28485,7 +28936,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -28690,7 +29144,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -28863,7 +29320,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29128,7 +29588,10 @@ tags: [excalidraw] "groupIds": [ "qCKYi5gTFblTgyB8ixz4V" ], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29287,7 +29750,8 @@ tags: [excalidraw] "height": 642.6027410170612, "seed": 295135889, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29313,7 +29777,8 @@ tags: [excalidraw] "height": 652.3747796306575, "seed": 598204625, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1672360035634, "link": null, @@ -29339,7 +29804,8 @@ tags: [excalidraw] "height": 30.973724365234375, "seed": 528521151, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29365,7 +29831,8 @@ tags: [excalidraw] "height": 25.46401977539062, "seed": 650917887, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29391,7 +29858,8 @@ tags: [excalidraw] "height": 30.973724365234375, "seed": 809798047, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29417,7 +29885,8 @@ tags: [excalidraw] "height": 27.492279052734375, "seed": 1226243505, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29443,7 +29912,10 @@ tags: [excalidraw] "height": 0.0001, "seed": 218713809, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29482,7 +29954,10 @@ tags: [excalidraw] "height": 0.0001, "seed": 1259590367, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29521,7 +29996,10 @@ tags: [excalidraw] "height": 0.7137451171875, "seed": 673223793, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29564,7 +30042,10 @@ tags: [excalidraw] "height": 0.333770751953125, "seed": 1150282591, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29607,7 +30088,10 @@ tags: [excalidraw] "height": 0, "seed": 664841681, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29650,7 +30134,10 @@ tags: [excalidraw] "height": 0.0001, "seed": 162918399, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29689,7 +30176,10 @@ tags: [excalidraw] "height": 0.33380126953125, "seed": 491175249, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29732,7 +30222,10 @@ tags: [excalidraw] "height": 0.0001, "seed": 422213759, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29771,7 +30264,10 @@ tags: [excalidraw] "height": 0.35430908203125, "seed": 1034489041, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29814,7 +30310,10 @@ tags: [excalidraw] "height": 0.0001, "seed": 802603263, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29853,7 +30352,10 @@ tags: [excalidraw] "height": 0.323486328125, "seed": 682073169, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -29896,7 +30398,10 @@ tags: [excalidraw] "height": 70.71783447265625, "seed": 2099579423, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -30919,7 +31424,10 @@ tags: [excalidraw] "height": 30.758056640625, "seed": 240768447, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -31594,7 +32102,10 @@ tags: [excalidraw] "height": 65.69076538085938, "seed": 712716255, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -32473,7 +32984,10 @@ tags: [excalidraw] "height": 27.42034912109375, "seed": 341075025, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -33132,7 +33646,10 @@ tags: [excalidraw] "height": 54.2193603515625, "seed": 743788657, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -33711,7 +34228,10 @@ tags: [excalidraw] "height": 26.4395751953125, "seed": 874439121, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -34086,7 +34606,10 @@ tags: [excalidraw] "height": 28.83245849609375, "seed": 1091914833, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -34641,7 +35164,10 @@ tags: [excalidraw] "height": 30.439697265625, "seed": 2118525969, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390788, "link": null, @@ -35240,7 +35766,10 @@ tags: [excalidraw] "height": 27.476837158203125, "seed": 559783519, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390789, "link": null, @@ -35643,7 +36172,10 @@ tags: [excalidraw] "height": 0.0001, "seed": 995763263, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390789, "link": null, @@ -35682,7 +36214,10 @@ tags: [excalidraw] "height": 0.0001, "seed": 1128461585, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390789, "link": null, @@ -35721,7 +36256,10 @@ tags: [excalidraw] "height": 0.0001, "seed": 1639774367, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390789, "link": null, @@ -35760,7 +36298,10 @@ tags: [excalidraw] "height": 0.333740234375, "seed": 1961591103, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390789, "link": null, @@ -35803,7 +36344,10 @@ tags: [excalidraw] "height": 0, "seed": 1472355825, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390789, "link": null, @@ -35846,7 +36390,10 @@ tags: [excalidraw] "height": 0.0001, "seed": 213375455, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390789, "link": null, @@ -35885,7 +36432,10 @@ tags: [excalidraw] "height": 0.0001, "seed": 1501519217, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371390789, "link": null, @@ -35924,7 +36474,10 @@ tags: [excalidraw] "height": 10.28009033203125, "seed": 1982406737, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371393429, "link": null, @@ -36163,7 +36716,10 @@ tags: [excalidraw] "height": 0.318359375, "seed": 1878364913, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371394976, "link": null, @@ -36206,7 +36762,10 @@ tags: [excalidraw] "height": 5.31976318359375, "seed": 160675039, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371397940, "link": null, @@ -36345,7 +36904,10 @@ tags: [excalidraw] "height": 12.934814453125, "seed": 2062273233, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371401269, "link": null, @@ -36660,7 +37222,10 @@ tags: [excalidraw] "height": 8.61126708984375, "seed": 168875601, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371405292, "link": null, @@ -36863,7 +37428,10 @@ tags: [excalidraw] "height": 0.0001, "seed": 939661823, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371408389, "link": null, @@ -36902,7 +37470,10 @@ tags: [excalidraw] "height": 3.5584716796875, "seed": 1489728337, "groupIds": [], - "strokeSharpness": "round", + "frameId": null, + "roundness": { + "type": 2 + }, "boundElements": [], "updated": 1647371411788, "link": null, @@ -36955,7 +37526,7 @@ tags: [excalidraw] } ], "appState": { - "theme": "dark", + "theme": "light", "viewBackgroundColor": "#ffffff", "currentItemStrokeColor": "#d9480f", "currentItemBackgroundColor": "#fd7e14", @@ -36967,12 +37538,28 @@ tags: [excalidraw] "currentItemFontFamily": 1, "currentItemFontSize": 20, "currentItemTextAlign": "left", - "currentItemStrokeSharpness": "sharp", "currentItemStartArrowhead": null, "currentItemEndArrowhead": "arrow", - "currentItemLinearStrokeSharpness": "round", + "scrollX": 242.2803859746437, + "scrollY": 431.5953127618247, + "zoom": { + "value": 0.8935778015230595 + }, + "currentItemRoundness": "round", "gridSize": null, - "colorPalette": {} + "gridColor": { + "Bold": "#C9C9C9FF", + "Regular": "#EDEDEDFF" + }, + "colorPalette": {}, + "currentStrokeOptions": null, + "previousGridSize": null, + "frameRendering": { + "enabled": true, + "clip": true, + "name": true, + "outline": true + } }, "files": {} } diff --git a/Excalidraw/représentation d'un programme comme graphe.excalidraw.md b/Excalidraw/représentation d'un programme comme graphe.excalidraw.md index 028698b8..fbb2f65f 100644 --- a/Excalidraw/représentation d'un programme comme graphe.excalidraw.md +++ b/Excalidraw/représentation d'un programme comme graphe.excalidraw.md @@ -28,29 +28,30 @@ e ^EnXhanWu { "type": "excalidraw", "version": 2, - "source": "https://excalidraw.com", + "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.0.16", "elements": [ { - "id": "eKbjeXabsaClYS-pcVTfy", "type": "ellipse", - "x": -42.21598434448242, - "y": -276.79640197753906, - "width": 53, - "height": 53, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", + "version": 63, + "versionNonce": 205951206, + "isDeleted": false, + "id": "eKbjeXabsaClYS-pcVTfy", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", + "angle": 0, + "x": -42.21598434448242, + "y": -276.79640197753906, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 53, + "height": 53, "seed": 88927206, - "version": 63, - "versionNonce": 205951206, - "isDeleted": false, + "groupIds": [], + "frameId": null, + "roundness": null, "boundElements": [ { "type": "text", @@ -63,42 +64,47 @@ e ^EnXhanWu ], "updated": 1666335014263, "link": null, - "locked": false + "locked": false, + "customData": { + "legacyTextWrap": true + } }, { - "id": "b7o7cgYW", "type": "text", - "x": -25.215984344482422, - "y": -266.79640197753906, - "width": 19, - "height": 33, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", + "version": 40, + "versionNonce": 731610751, + "isDeleted": false, + "id": "b7o7cgYW", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", + "angle": 0, + "x": -23.919109344482422, + "y": -267.0964019775391, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 16.40625, + "height": 33.6, "seed": 1807090022, - "version": 38, - "versionNonce": 959700922, - "isDeleted": false, - "boundElements": null, - "updated": 1666335014263, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1708994770733, "link": null, "locked": false, - "text": "a", - "rawText": "a", "fontSize": 28, "fontFamily": 3, + "text": "a", + "rawText": "a", "textAlign": "center", "verticalAlign": "middle", - "baseline": 27, "containerId": "eKbjeXabsaClYS-pcVTfy", - "originalText": "a" + "originalText": "a", + "lineHeight": 1.2, + "baseline": 26 }, { "type": "ellipse", @@ -120,7 +126,8 @@ e ^EnXhanWu "height": 53, "seed": 306071526, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [ { "id": "ReJZJLWp", @@ -149,12 +156,15 @@ e ^EnXhanWu ], "updated": 1666335530172, "link": null, - "locked": false + "locked": false, + "customData": { + "legacyTextWrap": true + } }, { "type": "text", - "version": 99, - "versionNonce": 768858234, + "version": 101, + "versionNonce": 1248410559, "isDeleted": false, "id": "ReJZJLWp", "fillStyle": "hachure", @@ -163,28 +173,30 @@ e ^EnXhanWu "roughness": 1, "opacity": 100, "angle": 0, - "x": -25.215984344482422, - "y": -124.52058410644531, + "x": -23.919109344482422, + "y": -124.82058410644531, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 19, - "height": 33, + "width": 16.40625, + "height": 33.6, "seed": 1838616954, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], - "updated": 1666335014264, + "updated": 1708994770733, "link": null, "locked": false, "fontSize": 28, "fontFamily": 3, "text": "b", "rawText": "b", - "baseline": 27, "textAlign": "center", "verticalAlign": "middle", "containerId": "tQtPXvgzrG3aLhwg3WZkx", - "originalText": "b" + "originalText": "b", + "lineHeight": 1.2, + "baseline": 26 }, { "type": "ellipse", @@ -206,7 +218,8 @@ e ^EnXhanWu "height": 53, "seed": 545815290, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [ { "id": "WfI4nfVv", @@ -223,12 +236,15 @@ e ^EnXhanWu ], "updated": 1666334869357, "link": null, - "locked": false + "locked": false, + "customData": { + "legacyTextWrap": true + } }, { "type": "text", - "version": 277, - "versionNonce": 928580134, + "version": 279, + "versionNonce": 420421759, "isDeleted": false, "id": "WfI4nfVv", "fillStyle": "hachure", @@ -237,28 +253,30 @@ e ^EnXhanWu "roughness": 1, "opacity": 100, "angle": 0, - "x": -203.48466110229492, - "y": 43.21333312988281, + "x": -202.18778610229492, + "y": 42.913333129882815, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 19, - "height": 33, + "width": 16.40625, + "height": 33.6, "seed": 1720469926, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], - "updated": 1666334972678, + "updated": 1708994770734, "link": null, "locked": false, "fontSize": 28, "fontFamily": 3, "text": "c", "rawText": "c", - "baseline": 27, "textAlign": "center", "verticalAlign": "middle", "containerId": "jNgaM3FXKOlC1QWwGs8hp", - "originalText": "c" + "originalText": "c", + "lineHeight": 1.2, + "baseline": 26 }, { "type": "ellipse", @@ -280,7 +298,8 @@ e ^EnXhanWu "height": 53, "seed": 244750374, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [ { "id": "bZBj7qvG", @@ -301,12 +320,15 @@ e ^EnXhanWu ], "updated": 1666335571896, "link": null, - "locked": false + "locked": false, + "customData": { + "legacyTextWrap": true + } }, { "type": "text", - "version": 405, - "versionNonce": 628537658, + "version": 407, + "versionNonce": 1280275807, "isDeleted": false, "id": "bZBj7qvG", "fillStyle": "hachure", @@ -315,54 +337,72 @@ e ^EnXhanWu "roughness": 1, "opacity": 100, "angle": 0, - "x": -25.215984344482422, - "y": 176.97862243652344, + "x": -23.919109344482422, + "y": 176.67862243652343, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 19, - "height": 33, + "width": 16.40625, + "height": 33.6, "seed": 1037755706, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], - "updated": 1666335014264, + "updated": 1708994770734, "link": null, "locked": false, "fontSize": 28, "fontFamily": 3, "text": "d", "rawText": "d", - "baseline": 27, "textAlign": "center", "verticalAlign": "middle", "containerId": "0YD2GfcikFlAlP5u1eu5w", - "originalText": "d" + "originalText": "d", + "lineHeight": 1.2, + "baseline": 26 }, { - "id": "WdRxFms9j10zu_EYfQcRY", "type": "arrow", - "x": -41.425273609938984, - "y": -97.59579562601024, - "width": 133.16799425052602, - "height": 137.1852659005614, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", + "version": 363, + "versionNonce": 1060018175, + "isDeleted": false, + "id": "WdRxFms9j10zu_EYfQcRY", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", + "angle": 0, + "x": -41.425273609938984, + "y": -97.59579562601024, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 133.16799425052602, + "height": 137.1852659005614, "seed": 565296934, - "version": 359, - "versionNonce": 2054950886, - "isDeleted": false, - "boundElements": null, - "updated": 1666335022710, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1708994770733, "link": null, "locked": false, + "startBinding": { + "elementId": "tQtPXvgzrG3aLhwg3WZkx", + "gap": 1.2424542785372843, + "focus": 0.42212094866578365 + }, + "endBinding": { + "elementId": "jNgaM3FXKOlC1QWwGs8hp", + "gap": 1.4463054459705695, + "focus": -0.003876622377253745 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", "points": [ [ 0, @@ -372,130 +412,138 @@ e ^EnXhanWu -133.16799425052602, 137.1852659005614 ] - ], - "lastCommittedPoint": null, - "startBinding": { - "elementId": "tQtPXvgzrG3aLhwg3WZkx", - "focus": 0.42212094866578365, - "gap": 1.2424542785372843 - }, - "endBinding": { - "elementId": "jNgaM3FXKOlC1QWwGs8hp", - "focus": -0.003876622377253745, - "gap": 1.4463054459705695 - }, - "startArrowhead": null, - "endArrowhead": "triangle" + ] }, { - "id": "YRLVNDCN", "type": "text", + "version": 169, + "versionNonce": 51725201, + "isDeleted": false, + "id": "YRLVNDCN", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 5.497787143782138, "x": -183.36814498901367, "y": -69.58934020996094, - "width": 133, - "height": 33, - "angle": 5.497787143782138, "strokeColor": "#000000", "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", + "width": 131.25, + "height": 33.6, "seed": 2004766182, - "version": 168, - "versionNonce": 1027306618, - "isDeleted": false, - "boundElements": null, - "updated": 1666335007348, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709036801626, "link": null, "locked": false, - "text": "a[i] > 0", - "rawText": "a[i] > 0", "fontSize": 28, "fontFamily": 3, + "text": "a[i] > 0", + "rawText": "a[i] > 0", "textAlign": "left", "verticalAlign": "top", - "baseline": 27, "containerId": null, - "originalText": "a[i] > 0" + "originalText": "a[i] > 0", + "lineHeight": 1.2, + "baseline": 27 }, { - "id": "CdwHwrRla9IUuhd3sKH1g", "type": "arrow", - "x": -15.742431795279138, - "y": -74.08243299637249, - "width": 1.7763568394002505e-14, - "height": 235.13972974930218, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", + "version": 638, + "versionNonce": 330452159, + "isDeleted": false, + "id": "CdwHwrRla9IUuhd3sKH1g", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", + "angle": 0, + "x": -13.898037919999435, + "y": -74.04528382023122, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 4.161891267875131, + "height": 235.05599712855653, "seed": 1977770790, - "version": 634, - "versionNonce": 260014586, - "isDeleted": false, - "boundElements": null, - "updated": 1666335014264, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1708994770734, "link": null, "locked": false, + "startBinding": { + "elementId": "tQtPXvgzrG3aLhwg3WZkx", + "gap": 7.523902755867244, + "focus": -0.09109795033232303 + }, + "endBinding": { + "elementId": "0YD2GfcikFlAlP5u1eu5w", + "gap": 6.052406986055534, + "focus": -0.11012689857687595 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", "points": [ [ 0, 0 ], [ - -1.7763568394002505e-14, - 235.13972974930218 + -4.161891267875131, + 235.05599712855653 ] - ], - "lastCommittedPoint": null, - "startBinding": { - "elementId": "tQtPXvgzrG3aLhwg3WZkx", - "focus": -0.09109795033232303, - "gap": 7.523902755867244 - }, - "endBinding": { - "elementId": "0YD2GfcikFlAlP5u1eu5w", - "focus": -0.11012689857687595, - "gap": 6.052406986055534 - }, - "startArrowhead": null, - "endArrowhead": "triangle" + ] }, { - "id": "-QiYT7sJj_oxJinE5KIBZ", "type": "arrow", - "x": -172.1018034492469, - "y": 79.72408761714598, - "width": 127.94475212323721, - "height": 102.56045852808984, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", + "version": 731, + "versionNonce": 1680304383, + "isDeleted": false, + "id": "-QiYT7sJj_oxJinE5KIBZ", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", + "angle": 0, + "x": -172.1018034492469, + "y": 79.72408761714598, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 127.94475212323721, + "height": 102.56045852808984, "seed": 1737881190, - "version": 727, - "versionNonce": 152815674, - "isDeleted": false, - "boundElements": null, - "updated": 1666335028039, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1708994770734, "link": null, "locked": false, + "startBinding": { + "elementId": "jNgaM3FXKOlC1QWwGs8hp", + "gap": 3.152820341631685, + "focus": 0.07271033751137523 + }, + "endBinding": { + "elementId": "0YD2GfcikFlAlP5u1eu5w", + "gap": 4.064712252250761, + "focus": -0.3416733557086538 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", "points": [ [ 0, @@ -505,55 +553,44 @@ e ^EnXhanWu 127.94475212323721, 102.56045852808984 ] - ], - "lastCommittedPoint": null, - "startBinding": { - "elementId": "jNgaM3FXKOlC1QWwGs8hp", - "focus": 0.07271033751137523, - "gap": 3.152820341631685 - }, - "endBinding": { - "elementId": "0YD2GfcikFlAlP5u1eu5w", - "focus": -0.3416733557086538, - "gap": 4.064712252250761 - }, - "startArrowhead": null, - "endArrowhead": "triangle" + ] }, { - "id": "N58kuxso", "type": "text", - "x": -94.96012496948244, - "y": 12.941116333007812, - "width": 199, - "height": 33, - "angle": 1.5707963267948957, - "strokeColor": "#000000", - "backgroundColor": "transparent", + "version": 281, + "versionNonce": 1451178495, + "isDeleted": false, + "id": "N58kuxso", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", + "angle": 1.5707963267948957, + "x": -94.96012496948244, + "y": 12.941116333007812, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 196.875, + "height": 33.6, "seed": 1241543418, - "version": 280, - "versionNonce": 1162015354, - "isDeleted": false, - "boundElements": null, - "updated": 1666335522765, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1709036801628, "link": null, "locked": false, - "text": "i < a+length", - "rawText": "i < a+length", "fontSize": 28, "fontFamily": 3, + "text": "i < a+length", + "rawText": "i < a+length", "textAlign": "left", "verticalAlign": "top", - "baseline": 27, "containerId": null, - "originalText": "i < a+length" + "originalText": "i < a+length", + "lineHeight": 1.2, + "baseline": 27 }, { "type": "ellipse", @@ -575,7 +612,8 @@ e ^EnXhanWu "height": 53, "seed": 549649254, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [ { "id": "EnXhanWu", @@ -589,10 +627,6 @@ e ^EnXhanWu "id": "-QiYT7sJj_oxJinE5KIBZ", "type": "arrow" }, - { - "id": "9qTsqX_ALkOV0G0Cy4CjO", - "type": "arrow" - }, { "id": "8pK_U8z8J9gOBFNa-XBh1", "type": "arrow" @@ -600,12 +634,15 @@ e ^EnXhanWu ], "updated": 1666335571896, "link": null, - "locked": false + "locked": false, + "customData": { + "legacyTextWrap": true + } }, { "type": "text", - "version": 435, - "versionNonce": 1269641894, + "version": 437, + "versionNonce": 639262143, "isDeleted": false, "id": "EnXhanWu", "fillStyle": "hachure", @@ -614,103 +651,124 @@ e ^EnXhanWu "roughness": 1, "opacity": 100, "angle": 0, - "x": -25.215984344482422, - "y": 364.0460662841797, + "x": -23.919109344482422, + "y": 363.7460662841797, "strokeColor": "#000000", "backgroundColor": "transparent", - "width": 19, - "height": 33, + "width": 16.40625, + "height": 33.6, "seed": 2106152442, "groupIds": [], - "strokeSharpness": "sharp", + "frameId": null, + "roundness": null, "boundElements": [], - "updated": 1666335014264, + "updated": 1708994770734, "link": null, "locked": false, "fontSize": 28, "fontFamily": 3, "text": "e", "rawText": "e", - "baseline": 26, "textAlign": "center", "verticalAlign": "middle", "containerId": "qDTNXhct6bCH4pebUc8lR", - "originalText": "e" + "originalText": "e", + "lineHeight": 1.2, + "baseline": 26 }, { - "id": "hz7SK19Nce6L2jekqGKKP", "type": "arrow", - "x": -15.834157103588804, - "y": -221.6654052734375, - "width": 0, - "height": 83.06983947753906, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", + "version": 37, + "versionNonce": 333468479, + "isDeleted": false, + "id": "hz7SK19Nce6L2jekqGKKP", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", + "angle": 0, + "x": -16.85846100500257, + "y": -221.6050118381747, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 3.1495117899662173, + "height": 82.91115402328467, "seed": 1956489702, - "version": 33, - "versionNonce": 242142074, - "isDeleted": false, - "boundElements": null, - "updated": 1666335014264, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1708994770733, "link": null, "locked": false, + "startBinding": { + "elementId": "eKbjeXabsaClYS-pcVTfy", + "gap": 2.21412755159119, + "focus": 0.08239170290389151 + }, + "endBinding": { + "elementId": "tQtPXvgzrG3aLhwg3WZkx", + "gap": 4.238866439802191, + "focus": 0.11961969339622641 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", "points": [ [ 0, 0 ], [ - 0, - 83.06983947753906 + 3.1495117899662173, + 82.91115402328467 ] - ], - "lastCommittedPoint": null, - "startBinding": { - "elementId": "eKbjeXabsaClYS-pcVTfy", - "focus": 0.08239170290389151, - "gap": 2.21412755159119 - }, - "endBinding": { - "elementId": "tQtPXvgzrG3aLhwg3WZkx", - "focus": 0.11961969339622641, - "gap": 4.238866439802191 - }, - "startArrowhead": null, - "endArrowhead": "triangle" + ] }, { - "id": "8pK_U8z8J9gOBFNa-XBh1", "type": "arrow", - "x": 14.004657745361328, - "y": -121.17829895019531, - "width": 141.24395751953125, - "height": 505.47943115234375, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", + "version": 799, + "versionNonce": 1721201023, + "isDeleted": false, + "id": "8pK_U8z8J9gOBFNa-XBh1", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", + "angle": 0, + "x": 14.004657745361328, + "y": -121.17829895019534, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 141.24395751953125, + "height": 505.47943115234375, "seed": 598010342, - "version": 797, - "versionNonce": 157104826, - "isDeleted": false, - "boundElements": null, - "updated": 1666335593020, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1708994770734, "link": null, "locked": false, + "startBinding": { + "elementId": "tQtPXvgzrG3aLhwg3WZkx", + "gap": 6.00295411408063, + "focus": -0.8460552286299754 + }, + "endBinding": { + "elementId": "qDTNXhct6bCH4pebUc8lR", + "gap": 3.771099411906313, + "focus": 0.5421196865258499 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", "points": [ [ 0, @@ -718,7 +776,7 @@ e ^EnXhanWu ], [ 141.24395751953125, - 50.66864013671875 + 50.66864013671878 ], [ 134.65411376953125, @@ -728,49 +786,49 @@ e ^EnXhanWu 0.316650390625, 505.47943115234375 ] - ], - "lastCommittedPoint": [ - 1.39501953125, - 480.37835693359375 - ], - "startBinding": { - "elementId": "tQtPXvgzrG3aLhwg3WZkx", - "focus": -0.8460552286299754, - "gap": 6.00295411408063 - }, - "endBinding": { - "elementId": "qDTNXhct6bCH4pebUc8lR", - "focus": 0.5421196865258499, - "gap": 3.771099411906313 - }, - "startArrowhead": null, - "endArrowhead": "triangle" + ] }, { - "id": "c7mPpk7zW39Iwy_STZpe2", "type": "arrow", - "x": 18.844318389892578, - "y": 193.7322235107422, - "width": 89.00054931640625, - "height": 296.1724548339844, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", + "version": 405, + "versionNonce": 309326111, + "isDeleted": false, + "id": "c7mPpk7zW39Iwy_STZpe2", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", + "angle": 0, + "x": 18.844318389892578, + "y": 193.7322235107422, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 89.00054931640625, + "height": 296.1724548339844, "seed": 1945277242, - "version": 403, - "versionNonce": 311565414, - "isDeleted": false, - "boundElements": null, - "updated": 1666335541121, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1708994770734, "link": null, "locked": false, + "startBinding": { + "elementId": "0YD2GfcikFlAlP5u1eu5w", + "gap": 8.061233175286048, + "focus": 0.4094338637529142 + }, + "endBinding": { + "elementId": "tQtPXvgzrG3aLhwg3WZkx", + "gap": 7.262336785780683, + "focus": -0.15037945201909775 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", "points": [ [ 0, @@ -788,184 +846,7 @@ e ^EnXhanWu -1.2623291015625, -296.1724548339844 ] - ], - "lastCommittedPoint": [ - -1.2623291015625, - -296.1724548339844 - ], - "startBinding": { - "elementId": "0YD2GfcikFlAlP5u1eu5w", - "focus": 0.4094338637529142, - "gap": 8.061233175286048 - }, - "endBinding": { - "elementId": "tQtPXvgzrG3aLhwg3WZkx", - "focus": -0.15037945201909775, - "gap": 7.262336785780683 - }, - "startArrowhead": null, - "endArrowhead": "triangle" - }, - { - "id": "9qTsqX_ALkOV0G0Cy4CjO", - "type": "arrow", - "x": -7.941997528076179, - "y": 223.6377410888672, - "width": 81.09716796875, - "height": 369.19500732421875, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2057839462, - "version": 1300, - "versionNonce": 291647226, - "isDeleted": true, - "boundElements": null, - "updated": 1666335477314, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 22.20416259765625, - 37.3135986328125 - ], - [ - 77.67746496240775, - -3.855039420911993 - ], - [ - 81.09716796875, - -292.329833984375 - ], - [ - 17.655456542968757, - -331.88140869140625 - ] - ], - "lastCommittedPoint": [ - -6.5341796875, - -305.47088623046875 - ], - "startBinding": { - "elementId": "0YD2GfcikFlAlP5u1eu5w", - "focus": 0.3266797497590149, - "gap": 4.669783170025614 - }, - "endBinding": { - "elementId": "tQtPXvgzrG3aLhwg3WZkx", - "focus": -0.6232443608297156, - "gap": 4.361646134122804 - }, - "startArrowhead": null, - "endArrowhead": "triangle" - }, - { - "id": "H_ZYBQ3Oq0pb6J6T-Kzev", - "type": "arrow", - "x": -15.68537759685423, - "y": 225.2606658935547, - "width": 0, - "height": 126.9296875, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 5612858, - "version": 135, - "versionNonce": 191920230, - "isDeleted": true, - "boundElements": null, - "updated": 1666335571896, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0, - 126.9296875 - ] - ], - "lastCommittedPoint": null, - "startBinding": { - "elementId": "0YD2GfcikFlAlP5u1eu5w", - "focus": -0.0011549716086109829, - "gap": 5.282058194484872 - }, - "endBinding": { - "elementId": "qDTNXhct6bCH4pebUc8lR", - "focus": 0.0011549716086109829, - "gap": 1.855729408861226 - }, - "startArrowhead": null, - "endArrowhead": "triangle" - }, - { - "id": "xRW8laRwW3MDZ3OVbDNrl", - "type": "arrow", - "x": 19.229389190673828, - "y": -93.40281677246094, - "width": 117.3795166015625, - "height": 227.01815795898438, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 587646950, - "version": 78, - "versionNonce": 1036365478, - "isDeleted": true, - "boundElements": null, - "updated": 1666335484915, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 117.3795166015625, - 227.01815795898438 - ] - ], - "lastCommittedPoint": [ - 117.3795166015625, - 227.01815795898438 - ], - "startBinding": { - "elementId": "tQtPXvgzrG3aLhwg3WZkx", - "focus": -0.9180289367036432, - "gap": 11.379522876378733 - }, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "triangle" + ] } ], "appState": { @@ -981,12 +862,28 @@ e ^EnXhanWu "currentItemFontFamily": 3, "currentItemFontSize": 28, "currentItemTextAlign": "left", - "currentItemStrokeSharpness": "sharp", "currentItemStartArrowhead": null, "currentItemEndArrowhead": "triangle", - "currentItemLinearStrokeSharpness": "round", + "scrollX": 464.4045907996058, + "scrollY": 300.85896414297594, + "zoom": { + "value": 1.35 + }, + "currentItemRoundness": "round", "gridSize": null, - "colorPalette": {} + "gridColor": { + "Bold": "#C9C9C9FF", + "Regular": "#EDEDEDFF" + }, + "colorPalette": {}, + "currentStrokeOptions": null, + "previousGridSize": null, + "frameRendering": { + "enabled": true, + "clip": true, + "name": true, + "outline": true + } }, "files": {} } diff --git a/Excalidraw/équations d'une ellipse 2024-02-14 11.07.42.excalidraw.md b/Excalidraw/équations d'une ellipse 2024-02-14 11.07.42.excalidraw.md new file mode 100644 index 00000000..4e3b54c7 --- /dev/null +++ b/Excalidraw/équations d'une ellipse 2024-02-14 11.07.42.excalidraw.md @@ -0,0 +1,682 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements + +# Embedded files +c4d6f5d400851a47d50821ebdae63bda6a962ba5: $$\Large\alpha$$ +af3ece94ee6e83e20e497fbbb02dbac56f1e1eca: $$\Large\beta$$ +44bb49f8bffd31f1eea76ab2b830d3db1e3232ca: $$\Large a$$ +f036546090c49ec9202f2a5a85f4cc8584163841: $$\Large a$$ +e002585c42c99c5cb74ac919241c7ed2c661d019: $$\Large b$$ +f69c9040deb85b69c77d00826549fa3888d32bc5: $$\Large b$$ + +%% +# Drawing +```json +{ + "type": "excalidraw", + "version": 2, + "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.0.16", + "elements": [ + { + "id": "MHBN4PmD6Szf3hzLmcN78", + "type": "arrow", + "x": 203.80302072226561, + "y": 357.70085841049394, + "width": 0, + "height": 801.7216435185187, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1456927737, + "version": 158, + "versionNonce": 345300023, + "isDeleted": false, + "boundElements": null, + "updated": 1707905382993, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -801.7216435185187 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "arrow", + "version": 484, + "versionNonce": 1010449751, + "isDeleted": false, + "id": "-smpXcrDvbeA9faMECgeS", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -260.44996208146154, + "y": -43.14892517504891, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 928.6737275135604, + "height": 0, + "seed": 1585985687, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1707905382993, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 928.6737275135604, + 0 + ] + ] + }, + { + "id": "XCbafbTL5fULFozZUo17V", + "type": "ellipse", + "x": 233.90785998008073, + "y": -298.4912712191359, + "width": 382.7980324074074, + "height": 191.3146219135803, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1764627351, + "version": 152, + "versionNonce": 520695063, + "isDeleted": false, + "boundElements": [ + { + "id": "9mtdkfB1rHEDMuVRcjPeI", + "type": "arrow" + }, + { + "id": "YAGdh1dBFCgmUPrY7qa_i", + "type": "arrow" + }, + { + "id": "Pg9K_5noQmf2wWWdl9AIJ", + "type": "arrow" + }, + { + "id": "qpoqD4oV6UdSaqmoqBABp", + "type": "arrow" + } + ], + "updated": 1707905602208, + "link": null, + "locked": false + }, + { + "type": "image", + "version": 153, + "versionNonce": 277059159, + "isDeleted": false, + "id": "gnbAqdfQ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 417.6838425240675, + "y": -19.831606361485342, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 15, + "height": 11, + "seed": 31563, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1707905500086, + "link": null, + "locked": false, + "status": "pending", + "fileId": "c4d6f5d400851a47d50821ebdae63bda6a962ba5", + "scale": [ + 1, + 1 + ] + }, + { + "type": "image", + "version": 139, + "versionNonce": 1550223351, + "isDeleted": false, + "id": "y2crbcH5", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 167.61273822487755, + "y": -210.43310309571595, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 20, + "height": 21, + "seed": 78257, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1707905504770, + "link": null, + "locked": false, + "status": "pending", + "fileId": "af3ece94ee6e83e20e497fbbb02dbac56f1e1eca", + "scale": [ + 1, + 1 + ] + }, + { + "id": "w23LpJgqOukyHASRViWSN", + "type": "line", + "x": 425.0938760797228, + "y": -30.195638830138705, + "width": 0, + "height": 267.4303742562645, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1789750391, + "version": 109, + "versionNonce": 439471897, + "isDeleted": false, + "boundElements": null, + "updated": 1707905551738, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -267.4303742562645 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "id": "FpOVfIonNmpI1kO_7wW_o", + "type": "line", + "x": 196.5867757953032, + "y": -202.1107182403615, + "width": 421.176867069442, + "height": 0, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 899858135, + "version": 97, + "versionNonce": 1094353913, + "isDeleted": false, + "boundElements": null, + "updated": 1707905551738, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 421.176867069442, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null + }, + { + "type": "image", + "version": 148, + "versionNonce": 1315587671, + "isDeleted": false, + "id": "4RuOQ0Av", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 513.3878489493101, + "y": -193.48413612574856, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 20, + "height": 11, + "seed": 95746, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1707905529236, + "link": null, + "locked": false, + "status": "pending", + "fileId": "44bb49f8bffd31f1eea76ab2b830d3db1e3232ca", + "scale": [ + 1, + 1 + ] + }, + { + "type": "image", + "version": 230, + "versionNonce": 551778263, + "isDeleted": false, + "id": "hY9-ywe3cvYxUMMeBL-Xv", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 325.3277445298977, + "y": -193.6912470992286, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 20, + "height": 11, + "seed": 884480087, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1707905527475, + "link": null, + "locked": false, + "status": "pending", + "fileId": "f036546090c49ec9202f2a5a85f4cc8584163841", + "scale": [ + 1, + 1 + ] + }, + { + "type": "image", + "version": 90, + "versionNonce": 1708410201, + "isDeleted": false, + "id": "XMMclGXE", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 437.2613198891771, + "y": -153.58651555464917, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 17, + "height": 16, + "seed": 8973, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1707905627036, + "link": null, + "locked": false, + "status": "pending", + "fileId": "e002585c42c99c5cb74ac919241c7ed2c661d019", + "scale": [ + 1, + 1 + ] + }, + { + "type": "image", + "version": 143, + "versionNonce": 737249081, + "isDeleted": false, + "id": "JmVH_AdILKQPLOtyP2pj-", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 434.5120887412087, + "y": -275.44793995062355, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 17, + "height": 16, + "seed": 54277849, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1707905541202, + "link": null, + "locked": false, + "status": "pending", + "fileId": "f69c9040deb85b69c77d00826549fa3888d32bc5", + "scale": [ + 1, + 1 + ] + }, + { + "id": "9mtdkfB1rHEDMuVRcjPeI", + "type": "arrow", + "x": 388.1763490464489, + "y": -300.16813326089124, + "width": 74.35617997889244, + "height": 0, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1737385497, + "version": 303, + "versionNonce": 182288087, + "isDeleted": false, + "boundElements": null, + "updated": 1707905615108, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 74.35617997889244, + 0 + ] + ], + "lastCommittedPoint": [ + 75.2347313663962, + -1.149131852856783 + ], + "startBinding": { + "elementId": "XCbafbTL5fULFozZUo17V", + "focus": -1.017529888985828, + "gap": 3.4827326806260714 + }, + "endBinding": null, + "startArrowhead": "triangle", + "endArrowhead": "triangle" + }, + { + "type": "arrow", + "version": 405, + "versionNonce": 987741721, + "isDeleted": false, + "id": "YAGdh1dBFCgmUPrY7qa_i", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 387.5633916115855, + "y": -106.58348281364283, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 74.96415090104335, + "height": 0, + "seed": 1107569399, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1707905615108, + "link": null, + "locked": false, + "startBinding": { + "elementId": "XCbafbTL5fULFozZUo17V", + "focus": 1.006200953026797, + "gap": 2.453352478236269 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 74.96415090104335, + 0 + ] + ] + }, + { + "type": "arrow", + "version": 657, + "versionNonce": 1277964695, + "isDeleted": false, + "id": "Pg9K_5noQmf2wWWdl9AIJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 618.6998028397222, + "y": -223.49798129361318, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 0, + "height": 41.607573946448916, + "seed": 2132723129, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1707905622025, + "link": null, + "locked": false, + "startBinding": { + "elementId": "XCbafbTL5fULFozZUo17V", + "focus": -1.0104175585213668, + "gap": 6.056023423775883 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 0, + 41.607573946448916 + ] + ] + }, + { + "type": "arrow", + "version": 760, + "versionNonce": 18519897, + "isDeleted": false, + "id": "qpoqD4oV6UdSaqmoqBABp", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 232.7206489007915, + "y": -223.70089670126058, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 0, + "height": 41.607573946448916, + "seed": 1901293143, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1707905622025, + "link": null, + "locked": false, + "startBinding": { + "elementId": "XCbafbTL5fULFozZUo17V", + "focus": 1.0062028065913655, + "gap": 5.274857297992639 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": "triangle", + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 0, + 41.607573946448916 + ] + ] + } + ], + "appState": { + "theme": "dark", + "viewBackgroundColor": "#ffffff", + "currentItemStrokeColor": "#2f9e44", + "currentItemBackgroundColor": "transparent", + "currentItemFillStyle": "solid", + "currentItemStrokeWidth": 2, + "currentItemStrokeStyle": "solid", + "currentItemRoughness": 1, + "currentItemOpacity": 100, + "currentItemFontFamily": 1, + "currentItemFontSize": 20, + "currentItemTextAlign": "left", + "currentItemStartArrowhead": "triangle", + "currentItemEndArrowhead": "triangle", + "scrollX": 244.66315320383737, + "scrollY": 440.0682553470592, + "zoom": { + "value": 1.1693610238541363 + }, + "currentItemRoundness": "round", + "gridSize": null, + "gridColor": { + "Bold": "#C9C9C9FF", + "Regular": "#EDEDEDFF" + }, + "currentStrokeOptions": null, + "previousGridSize": null, + "frameRendering": { + "enabled": true, + "clip": true, + "name": true, + "outline": true + } + }, + "files": {} +} +``` +%% \ No newline at end of file diff --git a/Julius Dickmann.md b/Julius Dickmann.md index e3bf392b..c7b0c603 100644 --- a/Julius Dickmann.md +++ b/Julius Dickmann.md @@ -5,12 +5,12 @@ anniv:: --- - -```dataview -TABLE title, description, elink(link) as "link" -FROM "" -WHERE contains(author, this.file.link) -``` +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` # Conférence au [[rendez-vous de l'histoire]] diff --git a/Kanban mémoire L3.md b/Kanban mémoire L3.md new file mode 100644 index 00000000..24cef09e --- /dev/null +++ b/Kanban mémoire L3.md @@ -0,0 +1,36 @@ +--- + +kanban-plugin: basic + +--- + +## ❓ A définir + + + +## 📋 Todo + +- [ ] définition du sujet +- [ ] [[mémoire de L3.fiche bibliographique]] + + +## ⃜➡ En cours + + + +## ✉ Envoyé + + + +## ✅ Done + +**Complete** + + + + +%% kanban:settings +``` +{"kanban-plugin":"basic"} +``` +%% \ No newline at end of file diff --git a/Karl Marx.md b/Karl Marx.md new file mode 100644 index 00000000..da3a92b1 --- /dev/null +++ b/Karl Marx.md @@ -0,0 +1,15 @@ +title:: +link:: +anniv:: +#personne + + + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` + + diff --git a/Projet programmation web serveur.md b/Projet programmation web serveur.md index 03c9afa7..c1e3e6ef 100644 --- a/Projet programmation web serveur.md +++ b/Projet programmation web serveur.md @@ -5,7 +5,7 @@ aliases: - Projet web serveur - programmation web serveur projet --- -up:: [[programmation web serveur]] +up:: [[cours programmation web serveur]] #fac > [!info] Sujet diff --git a/SEB.md b/SEB.md index 3c15745b..7ea19d05 100644 --- a/SEB.md +++ b/SEB.md @@ -1,7 +1,7 @@ -down:: [[CP création du seb]] up:: [[syndicalisme]] #politique #fac +down:: [[CP création du seb]] diff --git a/aliénation sociale.md b/aliénation sociale.md new file mode 100644 index 00000000..aee29c76 --- /dev/null +++ b/aliénation sociale.md @@ -0,0 +1,17 @@ +--- +aliases: + - aliénation +--- +up:: [[sociologie]], [[politique]] +author:: [[Karl Marx]] +#philosphie + +> [!definition] Aliénation sociale +> En [[philosophie]] +> - la dépossession de l'individu, la perte de sa maîtrise, de se forces propres, au profit d'un autre (parent, individu, groupe ou [[société]] en général). +> +> Chez [[Karl Marx]] +> - lorsque l'humain ne peut se reconnaître ni dans le produit de son travail (qui lui est devenu étranger), ni dans sa propre activité productive (il n'est qu'une ressource humaine aux yeux de l'entreprise). Alors il ne peut pas non plus se reconnaître dans les autres hommes. Ses rapports avec eux perdent leur caractère humain pour être réduit à l'échange des produits du travail. ([[l'aliénation fait cesser l'existance]]) +^definition + + diff --git a/architecture des ordinateurs.md b/architecture des ordinateurs.md index 04e306eb..b2f4d8ab 100644 --- a/architecture des ordinateurs.md +++ b/architecture des ordinateurs.md @@ -3,13 +3,10 @@ up::[[informatique]] title:: #informatique ---- -> [!query] Sous-notes de `=this.file.link` -> ```dataview -> TABLE title, up as "Up", up.up as "2-Up", up.up.up as "3-Up", up.up.up.up as "4-Up" -> FROM -#cours AND -#exercice AND -"daily" AND -#excalidraw AND -#MOC -> WHERE econtains(list(up, up.up, up.up.up, up.up.up.up), this.file.link) -> WHERE file.link != this.file.link -> SORT up.up.up.up, up.up.up, up.up, up -> ``` +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` \ No newline at end of file diff --git a/attachments/IMG_6724.heic b/attachments/IMG_6724.heic new file mode 100644 index 0000000000000000000000000000000000000000..b0eb22c88ad6557a6d605c704707d8c22a61c0e7 GIT binary patch literal 1915722 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%0DES5*9b;(UHj8 znIz%GyKZ~Hc33l*t`JM+pxyk5K(}{kc@2c2yXwXu-Sowl|4b!5F9@|PU`|4xf1zU9 zW_J6!Rl4D$7?POzd${5gV7m)BT*yDSvPZ^w-{=GgT#70Ax{Kk7JlZXi^yz~nfa1t< z#NAD$>r?l2#IWmjbdRf()j3_QS`O4J$b)BRK7i_}F`aVPqF+dJBnZUKf@BEy_L)x`xIGl}^O`~sL zJVA1n!@*y~yU<{i8me!tSRU=wOpkoomDUgOeI`|RkS$h?R|oiIQ+X@b}k$fvJD^ldIp8^%;C*ot`bZQ0B^NS9&2Xx}gjlVMssY0h8B zUHP*P;_*|Z9`Eu(a)CA(cm$$1n4M&o?Vfp(VslvM=)ss~?K`yhPY!BV4%Sr%fV887 zQz2tj54Rt@a$a!PV`U2h7t*rBV&-;0leCF%J#CR45XAx z_Y+evbG?1@YHcUdc$|_j&9Bv+dgSBtp4so^RS#M2 zQCOT?^Z|zt8t(R*CoL%+k~9+z5ehIk@0fx1EKiSXl$=Wo0fqhzCO3dT?CL371| zIB5YM%2>79#mWeOt~4uW5ic6<@&My7O3E)Q;GJCxx$Q^8UChcY-2Hz14%gN*(l|W5 ze`+It1xY&UFW1~@!8hWeyLmdZ?}OcwXh28j)eCK}(ny!ZE2&tD%RiWAnDBCw#hgyL zCkpz-Kh1bZTeWG^sw)cKCZ@#9)hLo*mdxAmzo728|I&3@J_j#zlt2z#8lF)*vkRXZ zdGc5Nk1jTg&dC0JLGUo~!9I;(;RSO2|Y25fA2tC)zQ1 z6FyLc6O|i1A?}zMaM0{p-~DE9L^~q>7?X9(MwqhpQBQr5t0E%}r~IqT5LCz07U3J& z)9-?zNAbJ#JfHDNY9d;aK>?BzmF_^uJATclq#EnhvaY^Xwl8kw6_bq)S!*tjP{~ex zNM!qU{9~3lOs4gP+*7urz*>zXnTR|%8tNhCOb&@?AQCZV4WCoeaYJR)I*O(Y#Zz-Y zSb~p_9x9rDVfk?0&`g^}V$vbt4eNPf^Gc=Sq=mp3pOMoOuxj5fyj;e#{v_1Mj~oVo zd3fY`MWTem>(8RCY5M(r7Q_MIg^)iopWlcv!hU%cz4iVNWv3Ph$x7>RS;V=|T34x$ zylph6#1uOH;jMt!KoggTfRujy2=p3x9uH)ppC8f#Ob^*I{$1O&?*PZ@GotP(sPr&R zhZU#}^@@3CrKqf~wZ;alcggh}-%17ga>6k@Hc2p6C)$<7DIz6XWhh6*t6FeUaI~du zv^B+$F}|S+u_hMeQ06QzRd3^wweKOG#A>Y{HiIZf``m+v3amPbI*eZJ7Wq2kq49LM-b3j@j@X$SRmj74iZpN!_ zsAR;2>qgBviuwu^QRBwbtS)M+Iu;w#UoUBn%FYmi%?p ztQeT5_iO{1`5zd@(18p@Nmk$$#si=$Vx$udiGuGg^r8+B@)z(Uu<5{U_6tH;?=4TwV}L_iqpRl=>s*Pm zl2AN%@EH?%=_st?p`1zx)=lH7e-9CejcjD(`75i02(Wt1Ok6BhLFc<@`}L~jfl@pbm%ifVI6=oS_c!& zJN{!VrWV6z++i_Ri!{1|KjpU;n4f#T*ZGCgR(ddd^09jki>q22=j_U5EwyCagzJQn z^#OG_FHg(`iUgL`97|KWYQAS@=dp!R=&rY>Vq1w| zY$)Ap9~DnXsQHzsM=#?XYb|xhd#7M%6jSl&-)`1-`Aj2Y);xy0)|!W>61r#_6qPys zD2IK&vcS~l4cJG>`*|$Vp^gW9{DQt}Yr``+;k|%Auh9aa3C8sAR(Vwh6j+bOEk5|{ z^QTk5iA-6PfKV2{yLe~Ia#@1lbMqj$p955)PerwOX2CmW3sqOLA=P!l^+JZ$l3&z> zKie$d)m=~arnxSMqj}GsCEqD;p-!&xo6L=iNls`U`m;$jcOSiqMp+>jeC&NF`hm$4 zS24hvw6iRa%xoSe$s;8!KaAaI-#ul zE_>#D-h0S-5`Sv0_efl!)B1~2<@rI6lhX+tQUS;=!p_TO@S98OX#C4+AKve_GH!^T zU9#O0lEcCPtSGj>z0E0HMRCxB*z+DGEF`mLX6QxTo8H6b#?+fQ3NGLXTF_PdpMhn? z5ME=)358fD^#ey}$-!JBT-p<%IIeR zl%@5_LhF^e;6hpjJX;QJ3cPL^e2z_6Rfi-%_Eh?0Az4lnG#E=aKm(7WC=XGCqn{)r~rX74w=&ymDv80`&wr9 z5#Z#|%h<~nv!9BDKU%DZW>xRXXJs=wqEJnQq#*&5ygQtAO!gEn4=$NoE5MziEQbWg z+1Svj6$Ebf)}SK)O7Bj0FqP3b_bR^qmvpzhM9>%bf;gW<*=MZ|8Q68u#?(N|q{+?< ztv$Dm?ww9Rant)J!MQnJi~4F!^~yt_bhkpSzB9~Eni&1FZoEXNcjSv^3IA*Up#!ay ztH3d>2Pj}f093m5M&R~^zw(&!g!bJW30!JR)-8nR*QP^;Uu6gVuk3LKjhh)fx$f~K zum8pY4QVxPm!)jZjk*pqPK{&_w!Z5SuW8L^0z}BPs~Jy;MOf(hQH?-hFI(WUO*2FW7{r}i*{5O z(G+)|b%>?if3(M7e;m2vrSB@16{qX{A3nx>ncMc4MMMBpFsv*C0g z`;uokW|j~HI(l^a_7rCP^yb8GAqg|oU7&2fCY2{8o36K#I%e?sG13;9L{79p4->w& z(GJ6rBmFIPoLU)jcJVFfo#WvkY6-dV#8c$xRdvTmH)SrxfR9iz5JuAXFUTs%#QL$00l{Fu+5 z`1*CmeA>=b&Plaom4@xI+t$|N#HQhn^ioAY30xdp^1b_QmTo#t2&Z=(HU6ewyn%Nb zh?vcu95IP#9R8lUP?uc_`}DuZIBrBGPCnACZ}&`O2n1pFdgu}3DJ`2;g4Zhe)%#$D z5M1zWh786Tk@ucg6pDot495QhVzH$FF}iw>;d~orm>e7xA)22rY7;m*!ky4DmwkEUi~s$u^Y~k#|?riJ&oN{wbdK z8=s0scWf@H^L~K`iBHH6SRE+1WF&uadKJAQ@D@%@Rn+@=0GQohWtt|eJKFZ2Mul?{ z;<82pW?!Te552sa)*G@5Ja$tXoxL};{EGaqMgL>(j9zB?!n#k= z>7O|@`{Ik41uvq*iH5qgrUD4Zv+V+iO?8kCv*8=n$L+W7 zE~YmKwwRm7WhY*r*>%J2wo}GSL09&^z8T!J&-lIXc%G_3NLQvt_r0DN(TyNmsX*Wxnh5=XnaC=q@ z@U2BG{cQQNqLMqkz^Y4;_S@F(Wu4L-)vc;&(AgJ{%V76iqqAq>ALF^iESRJvl{El# zcV+ioB$WN1V{`x2D}iYQ7k%$sV6~@RfB|+3YOOXoF_fA_*61-gwuxyR!W2e0wHf)3 zs9v?aNLLyLiulyhScY5=HQ8*z;eF=<3Q)}wz||pNu7N~~KtFF$m__rUmWdX=NpD9| z^Bc!xc6_16N*U3gPJMF1e7FoS)GG<&dvHyZ0<=s$Wjyv^ed5u)Ma`Z}Isc@#Ws={d z$GJN1U*~V38=I*a*+7Sh@{91Ikp4Lo#!sb76GVgA zHF!FwImLlNWJa^IwB&z+t;etCN)p6ky1frrg$&2RE6_x`C}H#` zN6FMJRJ+8l$R+ry$H-~f$QXl2IRXj95b>JPU_UUBJ?{0ik=tna3dwL%3hy^~*((a_ zR!>LHdQnJ6ooGsfKzhS!OuHSK_h58K`h|Vhs_V-@NUP@L*T6vm({R2G-d=D||1%#K znCxEWudFif^yad)wlsv>5pLfMy4F#?KXBn(!k7O{kiP@&n{B~x*k+c9x@{$Ju z*vycJf){$H;q;6`VPg&%gtmh+b}cnbTTOY!+(rQyL(L^R;dBU<%P%ozinA302_A>s zF;t%?3QTqZ0A_!P@L7-B6EFFyb*Wb~?U;v`W?>TQdcLKEWtxgb&K|l=SAABo3YfV5 z0rCg&AbYV2Ci}LUgn78T8{bJmV89APh4l zjub&O-m`rx0TW%U-_v9=J7Z7Ke)+8h5}Dh@UdzM}Cbb*tC@&R$vlpdStH+UqiF6>n z@mZ`T`Cv5A9HcL`3szR`HnQ`nHveg0JR%2SqV^d*CYH17U{%Bla|M{1;<8GoX}Y0? z1In%Er}PBOn*(pothWNI+(s0}?QlbGPYJ-N`VD@wQ_+LTlsXLQ5cWn@uE-*Z4m6z! zMo2*g%)S*2tsDxc%;aWCD8$FirKvtFf#}j&Q7(Q$Mx1O&S*WpVihp)7r$XKea+0DA zsVM<~fO5#gf^~zE+Qb-f;Lhi5^Z26|Z@@7%KTjOJZ{$1n-uwJ5mo_?T7QPrP9Qs-v zz*+Yb{Mu`)zYaQ!HI|YbZ9)7DqF|0hZ+(ao7%DRQiRM2RPmFl>gs#MV5rt18r4D}e zU1Tu(IoZYq!WCWN@;KD_Jd4xwswhglnoExSCViV&9)*m+8L+}mzPx!3Qk&VT&fwI- zpDYHprszz>y1dY$96>_;Si(8G>@iYggW9hI))NdEwaISEJ}$LUMYRMkjPYx(!10KKsF=iHvJHwwv*ZiyMrVx@$rpIq`* z5bBeKsH?#cWWjE8E94PUI{Fo@WH3G9G7@We=tl~xrC%kN>lYntK#<;~;3k^k)CpaD zwM%Rti^$V7${qSnfM5-T09K6_HsY5P# zsM9vB`ueo_YFmEh1IhpN0#}J(){t(WII{ECdU-s#`){8KC0Nz{sPH0=F68Q`r9;Da zv=BL8IZpb&8lb%iNm@SfTg8fyngFTFXXQ=kX!9NX7Y=;8*E&K6L$?C?UWJ zGkG?n@xO4R$ZCbn!#QGbeNcg1-(Su^Tt5*+R4fqhNd~V|{qTTxvQX&t?|xC}gFadX z*7k{BtNk<5_EM*3LUG;a-XrT>GO-oi2bCBEGG9F+Z~F}*s3zT?9n!zH9cv?Z%Z!K0 zIDn&*ifka&F})2BO9K|Vc8#9n=ugI%~9M zakl23d8Rpw)nJ-0*;awqtInHp@WUSZO|{EcTa6e(@WPMd(8$q1kH93aXy94YKDJw!_g3>chpHwTaCW4z zd-0@(RtKN%oJr$Rm`UeMmZN7GYlAx3l`XLid;mAxVoF-h3i2Ettm;xEe=(;k#l3?h z;j>Q@<{qUEAV8Qj9jv%33%Ssi@Nk&y#@>o~z?wEqUyjLyw<7^Ok;j*xd*3MR&!d=U z(GiAnM%?k4pXaOHND8m+!q_PX^6^#C{9nFC^rqoD(L6JZ$g!OTeyuS^D!}QLhaHfh zCj^G9sw(`z^-8lAf9;Hvo%mRicVn4)7ad%W+eZVF>elMCe5jlf(1iV);2QIHNHD1w z!Y^S&V?wTFMebLo7=4K>3qb95(H>eAj-4pZ)`cnF!*VTk5=QK$j?vJMJ zJ@H#t)zu5Z?Nb^og?GYEyfR)EB^vRNhp>5CHUK!bqD2B+*SyX+l&C5EDrkG8UiRP9 z?smyXOI5z%aH|H&EoQi+d&FE|z%p=Vo+#sc|rTJlKCmZ)TUfsB?4L^ zt!WQm#?fcPL;C0^AZh{hwrmJktbC07BWS;b6uw3(lF)ZXrlo)Ep^Di@s&8OP0y4`M zlVcY=l9@_HgF)d?n+>INE%v1u>bP#s*c!bJFxFYZy8;Wq4J&d;dOd&3*KI=r5JlwT zlxTsd31p#r$mIp`A%;Y#87i&mA|+(|gCpBYhT-A7KIPc%aAK_gGpWj-z(jBMW8i1q zk$$yauW;OZfvEcz2uNXxkFX#MeWyBtUt$mQIl`m&s3u-K4i_fG9`R0`#NQdLw3Q}w0$1OuCPrK8^Lml2|GR?BAQ8$-vOZ&r1gJCUk?4hYCw z69)a_B2Q~gM@?ez0ZP+lSwnhG^m+mG>y2i2bfn|pr>amEx8Q`UMJ}TTU`z|?y8I(O zJ=5I|NxAibr2Kw@vWSqX>y{PFOmPCn6&}pTQgg^ZN63!d!Y^%|#{}}9%+;18QP9qn zmJtb90HI&=(7){SxEd;C5|LEHeirZTG75d;>tw;Qd$>j)udpq264@(}Bg3+c^6Gx%jrYmry z?kEDT)`No%WL++=m;cJ9MxrvhBmYubY#^}qlTM{q{p;y~t&I?ekmZc(3N9w?sKRP$ zpNWa!uTyvkghXR}K11CW%M@vo-N^dACu+E3HKs*{6knOj z+&~M5P&8#S6RwQtNdqzo>ET61@}y`~FI?Ny<#`*W%DDg>G^j;>*b{;3p=l<5*Iq+H z24T*X4YDcp2YtGcKf-%YcMHV8lx5{vUb2cA&>sP8v_(cAp^ppss0`ZP zWEdP?Ed*`cZNm47$V@D8>YceSYcEO~3#*8upz=|nS%Y(F2DXz+_3WU-TAoT*h~b$< z=Ggpl#eCmdZ0du!VjyJxseMJW&}f&frUh@QITCKCpX^*0M^ph?kcXgL6L`@RNgzR^8wJj!52Wc zwZ$s5tR?VUU{8@Ig9!;1=HWPD6bS4I^F1_`XW%IlYt%H2!X5lu5 zp_z&tC*^rec#3ne6ay}6P`|b+`~G8`5hxlXt!uq4kRw5JqY90#UxZAyt7Lf;K?^SneN`4>0v*Jve7FR;Vux^<*@7qTF3$LRn6#(-Xs{L5 z+F7(}f&V#{8?`hgO<3X4u8Baxtdj26t+FEBkz# z3|$%RNIN#=5$`SLR>RJ)UfuDu#3ag(_P^OoFpY#wOCP%IoZ zs-E)eqA7jDEZZH(!^ggO+X-y&F&^?Wh5V>9e%$^;p}iW>qLzSV!G0#w#~dofeuml^ z*3*e9!Sh7YN3cwzq`NVIqW@HX%xLTtQSuTP&5vC=j6e1AM!YCt55&robI*fKXo!(U zEH~<%Oi$J^mIb5VZ&9FN4Q`^?!q;vC!?eyaW*W2bdz){bO~^)dKN6^}8j8WLl|1V9 z^bx>8rHWI4tXdZA^y@ueNjy;_7v;!SS+CYErya9wlFeYOZGdiFGLfko?{Vb+2;_b> z%|#*!5`!bxDOXMp8fqQO);1@|(~w&LEsO1j)EyU8=sL~=T9wAC!l#;)5j0IBm@HO|dG;(9Q^bFkbfc!s$LLL^0k5b3OlvTIU z{UJQg))9f3fFJcUum!dG8AO`l8fe$1QzyWulsZH644B!CC#Ks#ICg*7Chpj`7hbs0 zNU>6U19STrbdY(k?kjz?iS~>&~PIN)XX3HJf zg|vIUXn2=&En|q1Q{z|&MDoU{R`lUVUFH>21X^OrA-?yKSTFxWmP$2er5&IkF{fXK zH{WqfKVs8qqJb*PQ@)H=mNrjkNW^cXj(gb4xRfNCLCn3Z41jLZo1+z$PiambYfl&K zd9N+&Jx-I>!OJ%Wh=I0hLFO+rEK&9uuo&bs^+KdtZVivsCz=L;l|)GZ*{q@HrvwsH zQFZlF#ry1XqxY@OGAfuMkU?KFwsXIA4WGyfhM}#0qEZsY9au;1w3%#o#b=2^$ApM z$%7i@Qq_(xeB9**{4+1i(Z0}sAVPt&Whd75;y?pTOH;-u<)ca zkWfYGOgurhGJlJ9Sl>mCG-NFX^)wQ`ke<<;bg~D+!Y{blSI?z63FL0JdwWW#7hc$7 zNS%!EL$ zN$RT0I7g-|EJ#~170LamSIVs2NyDPO8*{EZul{ROAq$=D6A-R^SpZ(7#r)V=IYiBO zP?(MtJI4+ku|K<|aD%TJR_GHIz8hVvs7FCrLh6CDPH!zx+s(<2ZeaFG)5joX#w~I>xt>kTJ1aGhBlfKx^@qnhb1is1_LxNFGw&P&E5r>z^)bTn;IT*yhMgeox_`V9o=%gHiz8zn=$(+E_-Y@;TZ%8PWD!0hxiP zY*^k~-0mPeoK2NA=bGVRe75Xm5Iptkd=E54*A03tZy`=}@j#=NxE4&HXTrjNM=f=_ znx<1Dr!$$CQvsuc{5*Qx{Bw7w1OgF5hoVmFQ-9#aXF|F1OjBcmmafzgZS)?cG3|Xk zQY^v=9bWK`3X}l!b~yGa77pKk^1CY?nexmO1hdvV5Qn4PTRPCKl8iVliSl=B0IR$Y z^2t=%fOJs`mmoPy4TF-Zdp{DYTKB=4x^KAVn2@f_w)=rL&b1h})c@)Zlj>SrG9?jG z3Brhl!{-a~(z+FS_6%PA;G>m+pC$SIuneObBC9d7U8e-_@&O4<$*@MlkVae+O}T6U zaQ{tO4cm%$?I1AxuT!E6eauY{$I^*WKCPE|p|I|}@hW@x!Yk?c1!Gshij*j0H=vft zi;ISfmabkpI!YAw)E^y2dh7=a%CEETpcp`?(^+Y*nF`5L0zgVI?ms?)kzq}Gf;^l> zzEN$rv!u>X^qF?6i-S)X-Ko^BPkmJEwr7u3BDpPSK_I7|=9Kx}jeoewjE#c)XtvG4 z{y9lfy@(n`N$WVW!-Wc42-gFyW|y#jk>r>rOyco{R-d(yluL%NasmRZs5y7ZZ}%0N zu0*az#f;5iFKb(<+jI>UNww7P8vX_iC#8CXx3{td@6GHyQb(+q4-&=g6nbdE*`BrL z%<0r5D`$baen&+-ugMbHirxUNgsUVu0U))(uOg4jr4VDZ{j*H6D%)ep&Y1hM=>-R%G%{52RdX@BMQiN==|sefOz+Bmkhsn5lzDK(GW4PFVF=3Pr}odCec*AtN}Ou&9K^^_pUd{p35IkY83{T;*! z>O8z^A=deiJ?kBSZtZG{bRp#DDDx@V9msF4hXb|kd_ew6VZYk#8Q~uD!a0z*&)!g_ zKgV{4CF?c`+Tlp8gGE;fc?b0Y`BWR*?==g=)Wtbv__Pmeytb#M;jHDri=olJAm;1V z-LMqSRR%=D4B>eJ5Lu!<0UVMwe4%vAXz^RoehHz~!U|;mcGnXtBe4+Km{U8@`FXV+ zoKq{(W1S%#VtxwQNti;qtDWwbNGqO;&;c;#=#y3HH~&>s@vm^`hQRg-ZX$pef{25M zyHz0I08vk>$DJQfiKe8kBrh?khcweIJ=Hd5Yx{wtU}fkzJqxFwgI;Z~kNEcStwM21 z^K%p__Wg%q^b$mGL#y7Qi()15*5GgXdaYq0oVoU2jWgZ5x;=#_d7i3GzUmfJ70Wt8 z+dCK`R90Bm`*VP`%3XN1wj|Vr5U;vEfcY1Ct z4w*3j6GN}N2Q{+MX}91tmVKke>$R1>ccwq4XQ^h!aFE^?Ox=*3)N`Y`Wxyk;y)5oJ z#+?F9;Ld&GyG#H2)$_w@p4WPhE_h{hCSFP$3IY7S%*~Ue)N(Em?Q2DgfbJzfHSFk# za%3%z%2wZyFmqmE=5$t0d)Q$YoPV$jzD2pi0}uU=M%?83H`#NNkVZl<0=Zu?@%m!DW>rMdUO+iW zdr5r`4M)K!-OZ($yKU;pgqist325%zC+bpy^*RBbs0a=Zo!7NINS-nD`xPvKYcL^1 z#J<}F=g|wJ4Y>jwQS@bPy65Vs_lEizYKTI$7MdWyzpH)<7kG=0gzv0KFUv~xLslHd zcN-p=v_VdwgQ_n*)(G))sK76e-ih_-++88fON(OW5F7|-xR;xCJqroup1!oY7&(WF zD|=1Bq~H0|jugIELWhK9Z{@=XGm2(=Kc6>Yr}|zfoeVz@eL-$ z2X4Stw4e9-?%~65uIV%g9MYrpG(Ym;7LD)lacRAuN4JHxkcHlr2C;X)7FUd0&?k}I*#?xYFWD}@G;?Zm6h5Px zIyn?=N~f?S^g1;^Hv-M4F?w|Iv?#SAbF(^rrOmgaxIj*+R_IST)xzL;U`<5V1zs2_ zDfwca)Q11aM;R7MIr+Jy)7V&|$gyNP1JLj;;$5zProTc}fpl~`R+J!Ox|og#U2e@X zdkE|NC?vEFYJW=IL#8DV#H}wf4?l|_rXaQpazwN^M=1T@5ejkYQmHoy8n6;8-||N^ zyOk=b^v#)c@!@rZ*^*8l>Op=msVtueX?r$1O+&v~tx=jLq4r9l%1tv`m>mXGBee`= zVB`@exXFg$dez|H)mOhB{~?*R1q@C@7-I(>jcpI?Ux{x!Ck)sX44SUkAyr}7B{4nO z1~>4E#a|w|b4J9yi34aq-+EEd&S1O0bic5sIKGl*2+tt=3ge)3-UEBErW)gI{tg(w z#Zkh1B0CY!h=aos{<;744$gvhsGJT%AW>RM;w6c8fObhD6s{dhfq|552KvH*Ylfo! zAyE58Kpww;!NXz8A1i)PE&NN64^X8x@_LQhdaw@BOZjtL&NDRoYdjxlu@e1nY4T-H zdvdFX%9mS*xS9+((bb-cNXW2#(V@sldTUGQ92RsBBs80ufJ}d@5SK*z+l&S97nyfT z6G!fbRI!ORkEq}iHd9o)=`5%!WZGkxYF%$aompd{l`WB0_=X5r`wZ&Ra&q95m;3&Ms~1#?WXluo++ZYk*+b7YkP+}A zWZ@-_7QGNK0auQNh~j^Pkl4P(fYaJ(srJbny+DjX)~@)ggEKkCkl^u(R_suAu*Xa! z(YwqP|2d>PN|i8sa;+>d*NLOToic6!EzM$u-V62KZElu7;Cv^bJmK%0R-%QwMHGW0 zEAQfxc}`6cP4)GB5r(mh&l|Wu5UZxTy<#kP(Zv`kf1hYTH(#uhbCcz$W*}3~Quh1_ zc4KK!ByNix#E(}pKcdLe!k;RHhl!a>J^L$`jX^fBni}}sHRVl4Loni!dQj)&5WZ8h zf!q-PA56ATbk-#Sn>hTPnhZ zO5{us;oz@3mQwnJV}p%63VFzEYs>JVkCQAL=RP=)x%_(h13JW@q_@sC)VBKhSx;^E z(_VwAYP%}>lRk*MlEu`4Be!`#csx1!WWup3!Y4tYURj9uJ+D?0Y$X?uX*|X;+cN+D zVqX!oo5rjem_hvN&z90Q_}_%V7{(0@l=KYa#0Z=oqybkwd9O@dRPpXNI1^z$e{X)1VRFbsT*S_mVBE%-7QVd}_B#K5>I?#fkOuesXdc z82v6elGCRxgxjrmMt<8?Kwm*>xlHzI-acJzq3p-(J~g)e$QC@e|)`7Z2fzM3W^!R4%e~yZFDVTLhY} zw14mw%~UV71d4Na^r^W702_4&6!VP_xmeKGv6`W0CpAK8?ENeI@GG)4dpTpBIDiH* zTtA?v--rrK?kRtdRW?j-L)Dq5ATM6HQS%2CO6eN5pTcsvxu zk|4gg;+b40_O6k<5Dbb@XaOa#8K5KS7bvSN>mYjaSIlI*1&&Qm8NE!XfwD@`A~PUs zY{y0}UyA#CYH@ePxTqcK@V9HFpIh49@6V1Krxx*Dnci)R>>_6yuS7h%Add104!rSh zs9*7LHh`#{m@Zg8k!sg?K;KA0_ypU;Q_?On!OY0uU0b$E{qH zGUqxCES0gNc)*0A0}-{B7co5$s|QA3qSeAL|3K25FZmtRq0P;NM!X-VkuT8o{Zt{W zEtk=!g+{#E-IMDFMDEr9I*Yu3QKa~C=g!`tl4T!32(}YJEgyMn>==tV;6(oO;ae`| z2W%Y%7WP${nuRMgJlDlszKCm3X;iBWebV2i{eGjS8_D1qK)Yi5$c!&JN3=M*cNd60y7Y=|F} z8)kgyDGNhk=jEn{6PZC$T_C7YQ2?}k_xbGH_c2-tsOXLr0{}F0iq!hy{7Jk0@n#sJ zI>}CMG={f+``A;bNCCn3>sYH>sfj`vfc3#Es@^)1qi zu18P&`GNm8(z=-#tupvWNBq@M>8MsCfGA7AcORub5jW#@)q|;Kr+sveSn_t6y(bR= zGt={wk8{L>a?g31{O}DmJA^y7Ku2xY02ZoC|GCB88TnkOu2rIQBk79d2{#2_P@ROM zEp&KUNp0NLukU#_nmk=cA(&Y_%ORlj_ezDHhZm;dz_-#iw0t#0SK92fw{0?_ZdhXF zRUbkYjub)qGev|8ab~>%+8;v{Es!eqcw0hFHz@AOtX|DUv!*{-h5uN|zisb%v#gF} zJ?aeNWJY^2+6&1tJaX~We^-*&vKNjK>SYie0y1aBo-Cp(GYVNHAQOZS9wvHdY{^#t z>euCN-u)To6V*D{NCl$tg=iN^lXQ9z3yfk=jFB&ffmXZaG*2>ph9btPRzJGtmZT0# zjJI`I#h`f}uYUKWxejC_Gb8`oR&gK4=MsFVt_`CKT~) zrENwEJ_N8DWVZwXV<^5{Gct#|DXzIQI&Z^7PAq7L&_0%TJrt?e67Eoo{!2=C#wDzU zP{>GHb*-@vot`U~dFzh;;or1`w_Ph+tjF+D!G10_u($0#xw=DYz(tkLt$yMw1&Q7! zeVo!Pgtf--j6kk@@&}XY)m+`W?y!v-r;iv?y0iHU?VmIbDC;uq*cMZMq{EZ2>9ob4 z%)}d;-NCwjKYlE+;3NGwHsAGSIS1SofMl(WK?t+!DtsjIFBMY`Px8;f!bWG5u1Se( z#yd_9tk7N0iy&4oLPPf&8$)c)#4a228Hbwf%A&Er=mC;-vAWy#+d;>s$0-RE?*tGP zsTd`%>>Y!Ww!jT?l8^zw@20wtyhN(3z^$3Ms6S-<|F@)0bp29X*6<1GnZoA)TtSocv*oN-~n zc-EF}2XKB%@b(Msb0wh^R6INB$Q{xi;r;z96TumGm(f20!xs;BzMq=f!W)?$i9OQ- zN?CS~1pz-UKHFD$b$lyv*@H|gvtavh2FMWKDiF-m)u6jOfC9a!Ws5Sx)&{=G5F*bK z&H^{HjZ@fnD!e0UiJd3EZ|Qz~NTlHbd6%)Z?*6LQX~Wc+<_Sz@g6K9)geJc_C-YTP z^6F;)YY}4bt;r21P(plr1jR`;a?kK^>3!JM_Yf2SFCf?YqT|L3sd>QV+9PNEfzUxG z(dlhFZu2+iS*e&E)Mt&DVSPji5en*fCy;%trQSqEDw{z_8sQD^fX^SD*sb6$;j6I@ z*y1OjNgiSBzbS1^%zbB=tvo?vi)IZ3A!-gS>!Lk|s34zTk6xzvMtqr{@5*B2x zJp*##!y!!XMd=iG4nARagzca!vgIbA#7xaDH@x&`^Q!I|u)Yx0>4GL#nT&e-^aq*? zz*C-J6i?ghk_j->v&9!9&1c5C&(QhXi z-s_}RbqH4XCx}H7W{Z7+@4a8F=f&EA8%c%+6$%CwkLCEzF>*~nOiIBzNyR<{KrIX7 z+i?poQEt`fxwbnB*_;T73}7+ndkiTF?fw?-*l&!_oHWRQ8IK$-sWw_}W;ZF^%NVz# zBzR%^sZu^1c{0URw%TeK2wZviD4ByGJqIkqe=uXz>Cp^Nk4C9Del5Id5|p5oO$(La z3!yTHV%E~snEnT|Eldmn3(tn_zNFTq-3?${=S{H|dk6)QORGsW_xeq9-~#3&_P3Q% z!?4`gWW7ukmgfibg%WF5Z@_c)e01HY1B0Ut#w-J!8dbREBKUvn zQrpElBQfWecjvB_t9sj!mGnkO`m@4+!-QZ&y^&tzi1Bn9mU zz9V~mna<*^Nd*eD&4*T>8<7BT!@^DA)DjKdq>$h=j_0jWwcaj*sIAx9jsIsuc}5IS zMGa@gbd-Fs>cw*5)HxEQuD7{WmT;dg;!yS?%jgjPRuFOA!_e%=S3@>>X~$;3z$)fX z-eQ_8q?Qiq4}&ZdcWNuWYh$2xN%APPCzNj8oZDycB*1Q?ij$WCy8XO4Cf?m`r^i&W z=D*OK!SFK)T|r7F5v9s0Q`~qPi?t?}7ejNXH>~YGiPoaEgnbLhbQ4~8%AGo6Lvt|p zrBeL$bm$o~QGk$1fkQcpN<4fi_-kE9)3RK1UCsM}61Bt=2#rHrp+3b;;wFK3eAOwc zRlWDb(osWLbBAs;8Xi~jf-<6RIaq*?#rX2|y+%_zpv4EmeZl6rY}qwkP*{|d+GUX; zV*t0|07f|tgR3|;rGmtlKM$IU`~$i9l=u&Hmv|b*4@ohdl8Vgl;_e?x*34UUAiq)x zg2NdjjfSR4KsPu9llT)<3Dp39T9SZu*}yh`@oh>s@nYi$6qxC>+f|%%;H={DxQlP1 zT!UfJ4FuSeG!~(#D;K?+@~msR32$LV>8tz^UC2t zDPbwn(`dc^n#6AHz(}El>{?WJE5y@HPry(aypH$cAue)(%vmr#f$;hN$+nR&NMER{ z7GJrhRDS{XAnwl=@{IsZV^RhJ0j+}Ib!5oEL?a5X`ci%z;lKL+%+#3i?4mQSCQIe9 zW4z63CXh3n1I&Gz_U0`ST5M2eDiM^>HG1Kw+!;p|m{vi}{)Tvem8Yss79EAg$K3eT z5v7^R>@mzr;a*8LF2fuqY%f~0X`Svm+?aL_yP)Pzf(z!;sqOj49Xy1rr5bS`Sh3zR z2pjynl=yF6-}|8>%z0O9Wh-(d;{_lO{>1i~bJu3?2Ojv(_J*&R4Oeq0O`NVW*B`$5 zykd|HF`Tj3Sjb7aCYKChP>+KOcFD_VHf*R=LaRkp=$NP6scY1|iQ1!t`-vV!oqMNr zdyuAiuwhQY3!KUbM`A+6aUHo0eC|f+v5S&;v70bj$d)>glKMxtd@R5GEm(0qKozJm z%mwexBKy!LUq(G9ZjTEk=J)Ipt+oSEuooaA-2Qt4R9vQY7E)x)Ktm&LyPe1g$C=;9 z$Ft7KqZdgdC3_K5igkgvc;w|=fu;Q1PO|6}+h&g*vC6@@hTnKUu-`Ezg^uH#<-#ysPS_97HJts&r@7LXgEaU&Jq{FRdcG87J?6Oyz8KYR1a zQ_%3gsza2(1aaG5o63!j4~wpA1k_{-8PoK7Cjf#NL2E!V)>aoWk7Y)NhJ>M1f_F?%na7s(6ofo3$p6`cMhullI{FjK? zjez0h;F$`lV|S+PWPY)YTP63`BjT*GNIs97!b#au4X-{PHlU$IF(sXBTZnk-W1hIE zpy9XS3_$7Pr!B61e(B^e;D$6HD|b-|he|x><<@F?UZt+(yq~&M1=01~wgY`+1$J0cFiPb7{>aWr z(Mp{pb|3clHdSrnl`^Y=Q{?)3^fZWOSPC!=2m-|PhJRkc76>eczu2DfWa)Nd&o9@S zM%iaa^&4?{i-etF4Y(dk=_Lx`hDd3kF#|(YpODBvIW>tOX3xt;&0Ed*QJZCEA5)h- z;pFAKPCVchlTWT-@l~?TM#~PW9THwbwN9t`wyfE?C8=9h1j2@+fLJphM>lgNI$s<_ z03F{ytWzLDmL9G$qA;QWpmIuvC|@N+bLng@1F#LNS?kfq zWN8^3>|jXQQL5uG#idIK2esg?{KRvK{nr5)17`Gpa|}Lhz90|XDKW6<0F(@)GH3ubiBbEkR@VUNhIAn_s#okX8^*mu7!|i4z$9MMG znAT`tVS{VS0Vfn2QQj=`Sir1zv-jI3&Jwaq`9qX6p6DL4#4>Edx}I7JiyxMt*)l$i zamGtQkcIIxlCJ{c_LCnKIE@I=`uYnfpiLQu_S^qQ)J}Xy>#Bk=?RK}`$u39|t5?T9uoT3cT^75GaV84|r>q4n)K10W`HT;V zisdp_R6-gl&GE}orKe?ZIJR+h7O{-N_t1>Go?J$>`IAMpB;o?KCKA}o03F3Jk&Zpr zYT8O36yr{_G7<8zDR$Yx9 zK~ERyL6E^Wm;+{1`S%Cz8Blyg(jnpF0GefevU5>u_{zGTP1V=JUluMRviLl&j87}E zh?*49*0f;B0?enE*%MqLd??FGCkR`57o1ipodnkd#7Mj~rQEtP7d?D0Wfubl_s!+O ze*gK@>Dz>o1G3fbL#-5G5{(l(%iiqUk?x%pSATd+E`e(~7}%{M_&Jx|O7|wxF(UQCVNZ#U1M5o^Se%Y>S7F+jFCCXG7yEHy9NlebDc z;Gop8aBp3u1W)F0*fhmhmgVZ(wZTtG>)0AiQdh_GGh={&bvQcb#pEJrw#HG zBcVI+>n7jx9-C@M#1|gX4aXkFnRPO->ww0vR>DO%L!vbju6eiD8R+z{jma%mTTGj)xNR#}AOGXx(K*{BEVJ-E#dE1J)9 zpM%{LpKFxv=}%kgkL|PHsV+zdVbOKbt~bW|ord@odH0hZIRB{Q%1Xv5d+) zW#DN7n;N`@vXep**a{*_pT$#1j0#-)e)U6j28*t~j_ z*(0rw9am(YG@S^aOmhRGl2*p#Z#wHyLll?H`I-QksUH#5zN;>EE>PswvgS4M?QJdY z3(v2S@MSA3^=zc|mVv>I<5Pr%yJQ;Ar(SP6TeSMUA|W`ji{~cR79T|E!XZv-dn7F2 z>przPm9&{JP1C-l>$P06g9@1MenE~>8%ak50yijul2O93wFa=rxU(vqk&IzW>t^iP z?suCS?=CS9W^L}uWc_D=pZJyo2=g1!_0X(fO$&M4CSjsZiUVI>$^B{paiD7`PW|__ zc|l^}%S5qBqRwFdS&~cybE;HwX_?Y7cvNQt>)u}o)1kMg=`v3h;G9Cu#XnaB&y~^_ z`u-d~Cp;IamkgVNc;(FYuJ9E~_5dfuoMC_+J7cM_Qm%{8f$Lm#^&9(dJNxrIhAFJ8 z9d$M4tD5{Ot-p^S>04Xe^OAN%<^q#)Ap|=Rmu>G7|81N%2R${1wU$Gj8wKra{6NI% zZ;c;ogwc<5D`RF&Ns1QBL;|_wk*(Z&bu{@LA+rBU60Q)Z-MXx|hKqxVnZ~T;H5B_gFNi^`}$V znqSa9qMkmcx5dWrz^5v9$y}y51a33`HbN0msM6hLT$dMbF*S(`Bfj2ild`)t^mk4i zZY+EkUZ*}Kc;6t5zdppYBqco@WYKyVoD+fqR1V*P9GWp~x>Xza~hFQo@- zycH_aY@`_)FYZo#rLdq;4MxQ@cFco5sIx6V(rj z5&MmEu1n422co4{9Kg{tX7C9R8A;CvQLqX#3UL$zH|-6Xq3Rom}%fa^Y{hf4x9#C54Lr7FT<4BW1{i4>=V<`=&iSI?@NM zP!lwI>u32AX%N8h2OI<+dyV5V+Le-%F+{mBn-NYv;^l9#6@+F)Gzi8)s(g!yKBOE9 zahN2w0&0TCsGeRjPv?Bg#1-|be z+mGSk=F6wvTHs7VU%{5hQ+(i`O)^AGlMmH8KNm|!wzjNOmGnKZdjQCQ%H>QDoa#Fy zsbAWY0iOo?B*#oQ92l2x^*(VI@6e?`4&1pSo4+(Coas zf}GutUXB46M3PJ%HY&8XvCcso(4qbkP(@gNmY5V?0&esz5Ic%S$_4l$KP4N7@6=Ft zP2E0`Q!xMzbagHXE+IDArndltybJl~Ley14wNoh#>y!P5 z(jO=GPP9l5=vxu9MrTD~VHS1@y#hy_25cyCt3i9HO9UV+4^dVz?)L7ZRNK2!Bfm*X zTDgww_00i1Cvw&1EeSoA>R^Y;{+n7TryC?Fhsn#bDPV->0hHP8W5BMw){x0)C_o-! zq5yP}tllxCl8zWrOZ*!9jcW> z2Di!;LYV8$>hD$L8H#@hOMmxwzb4l~Ti35ol}xmvRknqQ=GcT9)y14*gG{|NlUR#Y zfkRSGg+H7Z`SDiT*Ghe6$Yr=~Z1%9vLKUujyOV$k3!7c^mi{~-GK@6Ec$& zXd_}h-47>LRLj`2&@xS{u4?{Ol-?$XeXH=99F^ZFma;}+3A0H8=zjV^e$=4?Dc@sP zZ2}80Lwtl-vuNA!n>^pt5X-*CG3}R^3^0xxZORW=QCoNqrwslqpM)Jv(VZ-pTJ&J+l+&~`u zr(?h9S^T z<4rXALN{wZG!9mj7#9^6vG#Nc*HKzTDg@lYe%7rL3Kw9%LAQr6UaH{C=wzbZJbMHm z{%f9Tgi}5o;A-OO<<6PhfbD$9Sz$czt^M-g2QWnu-K3Vodmk+UnkDv;-H%dU9=n=D zdP4a}8zerBl?nmVkY?_BR4HmPf88`*sYGavn8{_odyo;TbSAKmC1hHcE1MU*3ij6B zN(|dN_G#jkfdK|F*L zH(N;VZlL?oN)9&3b{=Zw3>s)2S~7GEdcr&a0}OZZZ1{#Y7XdlAvzP`QP$P~AOG0VUTD-S2QLl&?P4#X&*nB4 zW*nHI^40_IviJ$;@){Uvk*J(ei548z{aL88k}+bER|=_=$Gve*ZXJID{>$rbjcC|7 zx281Ed}jX%*c@SaQllXwP!3c|d2A8h4_y4!zex@J6Z7grL@3Cxk2;gBd#UVd9y zY}IU_7w!YdgWX&IpEvq|;6{Oz()>TDFZ0_I_!9F;53j78+wfq z*R}~!94P)ZpZ21gB~MJss5ALGz5Q>9F8aLsbY(El)JmbiZGEtH+QH7%N=(y5tWH?W z7$IGCfhBf<{~p-iu?7I<=ddb3Gmmu`H#Ck7>W{o<%c(wL#U8v}lfiBA^tW-gd$e(9 z1Q~3lLp!1;L9YA8sceMzG#n!M4uqLaQ`4nyGA5FmWW&@V^>hs(j=~)Zv<4mfb}0n~ z2kxa43j8yF3s{RsR({%=(W~aV>p&uYt|>4g>OJJF6j}fd*Z5~X)Gfn5N?~J*Dl4f| z$FlsBWQ84?xGt~uSI4^IfdNG$$W`<{2B-)ryBpt*rAo4W+}eIbPvDZ|(sA5=}+g-Hu#|13y`?xtd=2qP_uTHK_@(4(LV zP6}6`>F1hZL>i-WCAQ_O$TqNg$&I8}QqtEH9rdoM7}@c0E%?m2+IogiJ zMYi+*6}#Cxs-(!ovA1wAgs=a9+W@7g!^(MC(2pE_kDqDErMrS*ud{ldRPOP_BVJ!fkTY zJ8QModHr29qWt?9vxL%+LfH~|bj|2|e^kfa==?5204z1in<;7OH5`#!zRLaNucET= zSBS<)_5a3j^_#fnxuN5IanHN4p)c|UDMeinTV}3gt#j9XH2)dY=%IoogiKa#N{H0s z3D*D|6IsU#`0C~2mV^cp4O}dq=cz`A@!9iJ4k@sq#iMIo1yW|?&vJ_4T}Z6evcAV{ zzbEM03U{_mv62KUwAfDd9=shv>1(ge`&#s13mm*t>y3ySyYPE6T*}ZvMc=Z284W&P z9ArS%pDXNjv#wQL#`b4rPyA8@AW@9W^9fvsaS@UNyr;Nf_2ltj0DHKxq?c~~EJ4T) z*i-yJcsg~`<)^7&oT6P_H@V7!?ummJDyn5|T-LH^m7q*Ej=&dLu( zgLtaMI@xo;Yi0{70Qh~s{moK`6_q6E^VwKmlL_zx6HE`whIRoOK0MLjDU@ePI zytI*0lS{=u_6A6uYIOM9`o$Zj-KUiRQA+9Ir>wyGexoRN&&a{_7#q`eSJ$B4-eF5 z;WA8GhBw2TF!P6Kqu`yeg+6#79Pt!kaM~b^MGJgH8P^#t4c=!m!gowIy<%^M?^9PI zkiScam3_&{i|@+&RBX$uq*U{UDfH*SABg@!IhhOROSGoPMN*_1pTy#b1okF|WN4kr zyTKx^eM53Y8gf!@*TGZ+lEli}}g zN^i8%d1{O~8w27S2ww`bw`NPP&GDQCY%hWt_Pz#g)X|HAnTtjaEc^TmL?zfBmlIum zgwRvl8Ib%k-6@!OGsUV_T9jzgFYcq$-1?Z4_Qj>mHXzpJ*&BKIUZCgV7TPCzT4y_6 z!cMdF#HP(A`TybMU$t{DkZ?vkCZDqra^;S)$FDAe@}M#-ASo z0(&8KrURQCZ}V_u2HW@6rBwa0Q(E^vq+6dG;lI8e}_H)F2uI6bdlAk&7x`$@WcZxGYV^NCu~?N?mF{^#n{nu%3YmmKM}_lTt9*sSNL)x3Lkh zWTO?!{h?u32R?2M%U;fjmlg$QQ|Hu%gfyF6Q@iDP2yw;h*{gpsD8Il%iZCwmLZo1= zBY88)@*9<#8l@ILOg*+&~S?Da_KldTt@ORO)2`8&-^K}kAi z7G#<3^a?i_{~g8TmQ?`*%uSsl0NdT0N+vcBa(=gyN^I} zq(k;9u8WmoPZg8Wht_THWkSD3LA4%r6Md=qSfyrRhpa(Y)C@DmlaF{i)amtua&!{j z?VHb?BcHk-Js%4S`wxvgdk6g6;576&Qteg&TTmYI@mt^9UNADS7KZ1?O;d3|jU!26 z!dmv(q0IFB{%lJ)f^>f+`DI<*Y9G2se2H&z7Hg5|?ZJ70#V@)4?;Nu=L6+u6x1YhI zVL0Ra+KOf=^@QBWMvr+G*H(2v)Q+8e7Rb zQKW&VP*?~MSV`SEkAngxMZ69f&NRiEwIpKH7WGpE&~h{`v0<7jiG`uUa`|3Vdj9(w z)UAo7=N|ds0n{bx57GC{F^y|L6K^Gg4VU;LQ^7gA8H$j#4IDS%5E$^E7j9*Pr97Ed z8a<8C7AvAI3jifmukOmj(S!dN%_$#jd;1p-pLZQjyo~%b!n|?eR~;C@t9XE*=Kp(h zG2za6ZlcC31_+dSV@&QmI3~!FNsBI|6!mXYQ+1A=Pw3&cYr?7sKuJXwRa(E_+4KiU zT(_AJwqX)d+l1B}!X4ZeR+U$ldX&nP>yL+8m9yd1av3j6sPv|owS7t!TOdGdmUHb_ z1S>C(fpkC55TfB%lcoQ|{(X*OO~3M4Ri29a#nd!NagxNhq}IRHgKy1&wgIz9=;i~MJFt=wwP z&JEyGIaS$*>Av<_S(NxgNW1(O{$RGVO zbd=soV@)2E(yd)Xc!t2}x;C9|4Noq-y&spM@i;VkuQxcM0E*1vw@0SbPb&mO#81V?Sb;8Ji(?5dqnq$Db^eF?D#c zU*0*}>Oe!u#$AUOoTRj_NMNblKB2GgA+l93o`*`mH@K~-AvIg1ev;Q`9U}HJZTj1u z@!!;bAa+j_236yA+ZsAxmDbTfE^|sA;s4pTh!l@yS8=WOmZ)ybGXW#vC2^2# zT_KmFRqIlBvSHS(^iY-j6-7f}lg)mzme7<1b`!>o_z*yWB=hquFP^*vB2d%C24w6& z8;TF%a8CD&bypEK<1lXH0v6f=(gdS+1eS0Z|6!|1@0^+paN&s z-_;q0TJK-I00rz9zVizGdifj9GJeZ9Gfy%AA}r})!-HEJ11AH3&E$jHnKaDJV)LG6 z-!IZJ%}}k6IH{@QOwGc-Ex$JPLvt@pymg9A$Z&t0>L}_S6I$f6y z08`zV;ucDrPYyNZ9+7;i!_0OXsq{h4tLM=9fko2v)+Jkwq*~eBVjUh^t2ArW))uKa zeBh7+)v-eCIosOJk))zbX|Eie%|gs6L1%)IdZ^ZM^J?=SOi=jimu&{c-Nt9U&z{+WaJkYcQ|7-nAq`Y3kOslQmYLP2ZQCK9G)g(1Yd z#VQl@Pw4VIv11PZHsQQ%e{`ls1_)QcvYhNHIC-m$GD2Uk#<8QmF{o2Eds<0yFpdK- zS0N?;jQ1uFU$EgM7)(>t)h6{Hr{=2@TZ~wH*8>Mo;^*V*{VGV(U!V;C<(!WPvB?Gu zN>S>Xzi2L7@a%Upj8KiFinn@)LW|3`XZd=TH8SSghBaDp$Z!CruyYeK3rZ&E#@3kg)cSRIhxZQt z;jL03f*N8+{_(12D_|uUglqV3F1r+mhd;dvY=tn}cr1%qR?cW#GYu_Vp3B-pLw+d! zuCdD5v4trisDLUQ8)-f%+=plz&8GLZD9zju=M*yN$qogxOa)$EF2gmWaRLJ9+xPrB zXcre%PaU39&uKj0%aBxh+K8+i`1z&qwdzCdF%9O|GGYl06osAR5tsk6Rr(i+p7O)n z&VN7y9tb7JP34`g^sD8Z;ow;ojb(}6VnY#|keztMipm*3E)O>71TK*$5Z5q4MV^>h ziRoNP@!gkU$;mKh5A(_GscLWUNB2%j-2TQlCCe;w@#i7QyoNZjs5LVq&tqQsM-d-k z$3B9}SEEySW4-c7)ankyfR`7_CH`MEv#6}#b98nsBoM0(a@b6pZM+Ybu=-x3=&V;Q zJ_-r@^>)SyXa%yRpK>AVX6`M^R z5YmDrqmLeXlsRZZKwc58^8`9Qy;)KXF`^@{4M6Xp4ZUK@Ls^q!YhQdJsaRwX)oj|v zGH|2d>Fhzg5G-a~b{*P5tkH|3G(+n&muH5CIR|d%i1r^Veht zq3O`1+}>7<4hhkgR(1WBS4~0l_F<@%D(OH>`qo^h8sYFRP=2i+M{Gw-Dm?q>`8B`K zV2jjmmIBCJCGW~IRXkXUbq!_I3Zteql-i?F+rfF)2dflngU&I<%Bf7Yl}BPY54cvv zm9S{n^pi=F8eWfWqQg;cLgKqmy4D?WUoB0p>Z1N1C>Y*b0xNLQX<4(wtok9v;3=IJA+Dv;RheHY0 zGMOa_-sG)Zw-{@2r5ozOzS2lS<_xQkwpl+3MqP&={pjxFpt{=db=m5zR@K;nCI4!a z1Ek4O<`zv6l{#(lL3b*g2{@9%chOy%sTX(_lGKK9yP*`v8!j$rG*E6^)7+=?)>K8* zC#>;E30Jva`J#fdyuK;O^$_h}^!J{nRtR!;U)#8T?Dn@sXM%;j#iK{DZq4*f6h?<1 zbI?Tr)jrP`l&u_OCbxaw5|VeX<5F=;kbU@T&J*b(Jn@c#A}ba!Aip}Wv5S6WmCKD* znSxDSZsXa#XZ!b+`d5RM;=`vrj^>hea>Qp2vL@HtVqO$oof!2`fo#p5*T)dwmSA}* z&9KjaCt2+@LV#R_X)Ljeqv72Zm=oplw}OpEwLXRjIgQG3bgQm7CHzaJ#7h?2#re1u zvA1?#pu_G-7RYSJE(A1IP)8?z2oO_Bc_k$TDq*ykKg5G5-(%$+(-v`v@$+cbY;VKO ziy?6V^rb4!{wcRPN31NloPX~3WMm}gWIMh8OHR^r-r>MkBrX#$SV!sPEydCPqOZ~TTKFyK);&nF`VVez2|CYb{< za1?~NbC3z`0k%$a_}EUlf~+@2Mni@znAQ6coK>^p4zlP<9i?h%+9mhcOgiqIWGb36 zL==7dBM6Ox`Jof~F5hQXGAY`O$LfuL@)Q3>*=V<}JBVR*^>75>%yqj*Jb3Iw~+zPYX)DoJh zUq7H*ar{qq_5^Z5eaS4K_TlZ1_&&TCF8}kC$*Mnu1`g4YODYZCJ)hG)vb+HVMp&Aa zjEX77aWdosa$9rL9a4BUq^ps2>K7u1<_|juP5&%G$k*W>D#2uGnBO*z61`Rkn}@zs zYsRp0@E76WJv8?*ET=;I+*njZMX1)da)J7AFv$tEbn}?J_81qulW>CVQp{o;`oqUA zMM6f2$@F7OV7L`Z_Ai1(|15NW-Hlq%fb*MS(6%?xG9B;kuS&2Uf)?v<-2U{ z*ZX$zE?H*kei|8YvUIwD6-(lhyv%18Wwp!GtB2I&A?!7F`5FR$N`{(GM)Kp^Dx;p4 z#_C#9fpjzTWm;F!=k;REhXMSz3fJJdWOyTK`H?8gLVx4t(sd65ypZJ&-?;<&%1+TP zJr83#uK$M@=&fKCi2SBIkMK_;7Q9 zH>7>qw-p;Sy7Tn=h9%*K{V}8-p&Anr4YwS8b>^v@5rN>L1j@anG7T&EWx@653T>*I zvPTJ*5wE0|Y7GTOIy&s^JgB9<4bW$94gdA&=~Yo}y55%Xt3@qMSIZ5}|IUIPbXSou zz;SE?0U&6!rLrsx!07_lUd&!+&2RLbgYm-a5 z4^F;&fJ+^jeq5_daq7Xj;8ANEAq!15W@|8|uwl2FSSImEoPP4vAx)fPqP(2|3FB!4 zX_7Wf5sm*Y63q7N03f2Ci{fR&$c`Q70#xSKMgW9653ndO4%kt-);ol#xjl3KS>fHk zq>oY_?j?%zpsX)Pq_8r!EIZ=?z&Q+Y7WQ%_PRLcV`JpESCi0JsT>?s?l$!26@iJUc zw5k$>GciVr(o@V!Q~DoR01%r;T{J&rPSWg9c4k>9S%SPpvq$2$RP`evAoe(1kl8E0 zR79USpc?%U)nQ@>o$=vN2ZEe!1jf-5PcVoijhS1~;wl_eglXJ6l`dgXPBhr@WNoAU z+Mp|~vhUK2fVIZD z<=OT7VACuYt-&V3bDwVq36ReZ+LGVinGYW5FO@C@&QCAShd*%3S%i1U%Py6W?lhc- z#pKmX&ijR1UYbpO;T}n8bXWVD!8E?qTmZh9nIGP=d%{i0L6#W9{*$qlxDBX}F96v=C9 z2VL6tkDUmKb>mJYqwggyS>2e_e9kF>nP8K|t4DIe7ZotmsM>4x$U%22keXWF$?^2S z5t}V{+lk6npC`SgqOU7^_GetIqex=EHzn02iHy^yg=#kzGoc9gxuFDV?ytiP>HrbywY7s?*0q%!k=7r4=@XI)MS}0uPLd->b=Sd0P-Ywq~9$XD4 zAFn=4kL$^|NXlOC&Q`wn>V0@m3bgKRMDMTvzm120(3^!&Ki9U9wnFE8H| z6}{7cyjMOKq(BR)c1HMWo-)V}-kY-MgI^Y{yAu7`4aRH*u7!PZQn)9}4WS~<&9VrW z94+ya0*al5^b-$ZZ7z3@@-rE=OhW)AC~9!SaHQJ!)B>i%dkc96c3^5VOB>H=@tBXB z1Y9Jtp^7A^t(PD>zq9m$lr-P#f_X( z`K19?<(5zL7j^kSZv5;fph?)5fQ!%jyw!xZV01l>&>dP{O0s@Gq>{8Y4sKlUGCwW;ixzVm`HJfBk5r&{ znD#rKm}OF^?O*|(v-D1EJfp1hcvUK)5|=dqzpUNPwFh#mS_^CE=q;Zf-S!}dR)jW2 z4G9y7A5T$&c;QKUZ)KWyJzKs=E&eQ%Gbd zSHtyz?c+Sp3M=U2jPj5}ZI02%j73*L28L$H8hK3prsrE1Fo%68Jo%zH zM^b7jdw(VA>&D~I$vdA~O!0goB45PyiS?$K??xq|#g8g1#Iei<^KGwkz?1x68(roU z&vdkCRQj*sz|p6SPNcQLgzgSnjO*mAmAmuy^Pn2fk;9abLApBGL~Uis;PQl+M=mH_ zPqSj1i)NQ}?{L5>NusOqi&pPefiqUc^)mYPr#KGESPiv21)jA}staY+wMY-ztxMvG zCZ_LT>X^`(CmE8)g^=(KCONTP+`=hR^9=dO1^2J1^!^9J6^3d}=+kgQ&Uj}xC$M61>D#bg2zXQM}P*%i6&5ECAQbV%M zvsnEC3iromW9d}Id(9qUslNpX({18KG0%H<>)#~DhCi{6TYIJOqwin{WoNa-r&#x` zPx&><#EWB@dS8d92Un%PTI5;u^U;0oMrw{A#thLwVoo2R0#{p%e-^b^;t^2%{#_^8 zAsu zypZ0q)y2xa;y6`}7Go^NaKno;6U*Qa2KQ4=>G-dHdbJiMDBA2clBa|fTwt*2tIN&4 z0Y5muD0r{#Z#1>+0>ils4P8}o!>d`b$koPu;nu znn>YDCnLO0#kut2Ln(-_FI1ZPn?q7*A~GXV_jMAByxaRO3B&#iavPo5GFh(`7Cn~r#%=X+7(?P4^ZmK#w|`kb%9cZ5(dX4_~2gtB4j zGk25de&k~+-(y~f`##ud79}zL`?TD5qODN)cLv#ms>O4(g{#BQjzhOLOj1OV`!!o- zG$kJcK;RoW+Ths%E#vwlh05glo<(ne0AU1TBP;1bnY-$B4W3;3MzwE1I%s|t7^S4s z+Xbm-!g2u%yB2?LwuBU3OT{i@cPxN;*7dRM3G7p>MWmJz=ZW%4Ayu|I`QTu6yIpvL z>j||*c6$b$A<(VA*8>A|L9KpAovVD`kDUR3rE^ zbO|=N$M91w4zVnBdyHzNkRrzQo7{aDus%U*ph)b9x3=3QH6_WxUv%VBgY*b^wd?yh zCrHNIN)w0Qv=kBFHw>H*c#<|eZ7w+}LYNnc#wI&PQJD+z+alCnj@vb(_}#Um9Txvn zResI`vuJn4T*bnru$*J949ieRsS6_2NgZ#`zg>t@T+@5}pb?~3(5s6j0mZqL)WiiL5EG_XI(B z$9SE38w_qjIO3euw2vP|SI2$zf(G@ruSYfYr8fX!XxxK<4w6D19B}JIm8pDp01ss9 zO=H-Igkc$!!~!0anIN{U%j~G6X%f<{3ZBo)Xsxh9Sw~nNig(2~8M9R~b+EDZ;Kozl zocrC?^WzAB<9z%1DzWIJuMF2+t7&1L!xQlJSxo2v26>8pL*?Tzr>->XFj-8h*0`|9 ztH+ogd`)Vt8N#Z0^ChE}94?8Wa(BN)MQ8Y^B{M)y6~wnkntvyoPnmiQ#1u0k{CP3T5> zzdIzOprc@=ZhTPZ5Na8ALj0kD-YZvzf+v}rG4htQ4lE;^;3(H7qe^GmZAW0E-B^XLQ>)xL2qyo=ag{OpGKuOG0SPN&< z0Am?XZEn;&MY!SQkqYU4j8LPu?IGg!Jg?Il@NSfa?@M(D?KaG@d8$nWrADH6kdSg~ znr}+|a`-kX*bw{?Yl#*NZe#d)kYBsObu=ETN=i*ZaqIqZGFr$$mG93E{sEXrZ>bQ} z#0qt$tm4;mh-OPV1j)6mD*)mS`P7+9OhqK za0)j)x;twVY;#4G2clkb`oSnnk#X0fo=P>0Y+}wlD%Wvwzug0J5qfZ6-E=X0y*mf- z;n9JD$t?DrvM5SO0i>vU`VpAKU<`C|_%1IL3X$*bs6TjP@FHyAVICwB%KzHVowpGiS36I zyi5Dv65>tKVG>Yv> zr;A^QfE13$IXs;-0AEo4Z6>T#IJ(Ax*L=utcHITm{&K~5GaDuNZ2@=>Qxf2fnxK># zZ(8y4N-@)Euh(RFAH2@LSPUJq2t!be879BORf7gxf*wjs@3OsmGb6-C0c5NeF|uXDw1TD(jh zOp4ZVyLrc6ncG?=4f&DpN<1$9>i?4J`xKv6GYP2%dnRZP0hmTfw|ms})zeb(zDK_U zhfxQtJQ8TTg^kdE14GSS;YBwfW%M?GmT(xH{OKfEnGXjSc(1wXvsq^XJ8Iu}O>6VW1`8RppZV(ykrymZMc59P`1N0N z@JJN;*l@p(8TJN)?g#oaOKx%SxDZ=yG+C{xoP`CY0Yb?ogiAMW=#&`WZ97#YC-&Zv+2yM4E(AC){GX1r=2*s-oM^hl1ymZFYv96g4L>pNe< z?}!q(LUMl}^~<;2I!js`e(pD$Rs6EL0OM02^jeQK5s}Pz1M4|-Gpu?(L9|C2wz3kl zN@BDUc}K%ncoePPwJBc=YMxP83+zEYHxXuV0|gbwURlg2DDsJ3l_wU81P6v@O3NTW zHni9-{Q&bt(ZJVwC%hJkRq3Zs>)8`!WGw91pNEO4f29)PB9f=T^g0rPt0-LHLOrP` z1A40SCiP%3PKB3NKd>Vp(BBdiwaIfr>~R6*QrdvW!-EItM12T40}X6m7B!Lbb_Io! z33BQfeX)O6cuR>B6i_j7hr1W*`D2c&|A(soCeW)de#kJuYR<6mNK`AzoMsS=PxhQP zTH5YCxzX1X{QL%d8&V=zGpkmc;tK_q+!$J#jyoO<-YXVH&mMaIT#go{i)n<5+4wOLJh-!#}5V)`RV2pcgF4qfi(f-;L0q4vc2fmre z*i`Gke7anc2*7tmb9}CHDY_+7a=3BLSJ~z@_!SulspMzE^lhqJH2LSuApTq>_O^8TfHM zkzft$4wnQWMd7QB)E{hyNXfepR0NRGbcwn={tqZQgvp z_(YyebD||P5?YG9?TUX*d4)m2p$w|Tg|A=(38^_Q)?jH*S<`F|zWl^A(?rUOUGOtc zCyU85fDSR!yI)GsE|2Z+b+qFj7pq?f{W9KaAD^m!BTQRLzt^DkJkUV^wJ3xO@v3c= zOETRogfcb#R*Tt#s-`b^gQarH>W|;d|T5qRqMB^auVv7-t0E8z+1Ca)lu3%(xd;b$0LN{aZ z`reWR{^#e6ZR5b%amX|~tbI1@siAxb2lG63sYh$^M5<}oY-db=c*2=bs2_w>h$fW0z#2 z<-A+%`x|=P{A$Sz9z8}2X5_w3z}#kcbP3_X=zM2A4o5Ax0IA?kJ}4TDdsHkEWvfWioo?YYjQtZa<%wC23# z`)vE;Q7g{|I(rFo7EiokB@w}3Cw|-z72&^=S^|w*#zbB5Vd5FcQ=k9UZBU?_6?B2w zoGH;>)X})&$~GPR)cy26;rD5_dK%MJ2Q`FKD47eWG0R%b!YrNNMg*8gXGlG)5#>?+ zar1|8X~BK|7iAMx4%s2I$u73j9LdT-QLF1oH)eleT+N$alQm+N@;~UtjwlFrzR#9N zOe!k3vf+@0?bp+rH@uA1!V%~gF;b7Z@+?K!fMro#MsXf*q%iiuU{r>9GDxT?fE(KB z745Xf!Kt_FpND5tol4}%!ie(~C0;Sst6rQ{h5EvwRvT*lcPb9E+Sc2LCP0?~wzNbK ze`q>PM9GTq#FH&oUk4%!$7Uo zBsO+MgwGa8iI8@G8HJ_av5LeA3y>iNoL!qN%~EwT#F~llI#7cLt_qNw9+I<&_C0K6 zm0aB-kuX-EU&vaoH4w>CtS%{acO71()>U92&1SUAcYV(Yg(TqOGpVP|JQbf%et|$h{sO1WtRCE zHO+Fe!=Ap>JWJ5HAw1S$(vUnqR#=$1Lz$VTX9dGtI+p41&?H%1vpDH~vgr{2S6hMK zV5#V;+0lcX7N&^WlYAIe8H6|945NfM92Bjh6!DB8mp?tJL|6MM6>weX0~!JO9I+#9+kmq^V;tH^8b*i(pAS1&MRTwel;8JA;L( z9+0zzZD5{ zM!HLipyr)Ev11||H-hOPwph!y-NT!5+Gahg#Zpz zuaZQT+^Ta@mdnJlAk7!xPqnLbec>Qp zF3a^?{ug)7K&i8}+YFihv{lzZe_VHFYrqPg)w5A$+ICuDC*T-3m|yxGT-NwgHv}I| zI^o0z5gKJ~0pMZ75q%e5W{)!$T^rp(>2HG{n&T7X!c=p1JQtnlUyfTO_5d`=o+@)U zkottbixWm>fCIcXzzG3A&cu2zk7F|}0QM4)YE%|Db%A&tJ`Yxb|4K6W46RWLTFK&o zent~^FArl)r{3PVCRY4p;LZUFs@*zCY4=Ckym|)wLC9F)zJFPx46P?}nGqByJSidS z^Sn7T2aE%cR$lT&S{u5(c|n$@`2N_{p0$0gMDhqRO9_C$`Fet0m=4lgaRPw;N$4!i28i3%}BUX*@b&Pdn2<)Z+ytgZ&uXhK? z+J*{w$2LVz0_45J?j%K*P;2K6)~tyBsxh_{nj!+|BdLbNo1I~f9QzJ^)ytwOu#E0U zp~);8C!`9O7_Vx)MP+*t?kT;-T^sN4#Dptc-j{EUm3UO;CxYrr!{Sr9KS^0e(!=etp*mA&B)hA>StGf)auvIezHu1 z=^CNxShdwfLIktMLu6ZR)-`R`z=T$gXK9X^v(_CeF5)P$etMvlA0=(Yj`s) zp!=W8fEkZFs!Vzlwo8wq70&eT-($Aye~$mVo`)7>h(IZA(S9vr^~3)Wd-Nj=AGxTo zV6JmRkA5z6=jU(GdVJg5=!i0a%?K)eu=f$7KCxgsU97owg(RzU1$5`V7R%;3%2IQ< zdU@zbDV~M!iiLWN>|iHVsHMR?C?R&k9b)&jBkc3U{WEbiU>o8|diKVK_Cy_ZHyXvr z&5ZEV9?+hI8^e|^pAH(fs$^(4TAKF)d3AA?wueNCR_6|WEiOG%#Qw)lVB_^XyC={! zd8pwJxSBL$IUS67gzzMS$a2BC{I-eCcCg6)lP!|EDZP>3?ef^bh+m2|Z$8vd^bNYo zXrM$snSW!vQGAY+!#bQ8R^!h|&+?@?NRY554hF5U=&)KdS-CPezgP;-BIcL=6Y@~E zkS1?Qg`~4Lv{|m_DVGoYP?JhXnZ11kaB#YQ;rDjN@-h2CzHmNegkU+_!WM$7fSeJ^ zr=Dd#l01e!dZP$h9z)7HlO*m=uNHSXi&0v;RH&+QV)?8^oCY)0Z~sM$=i38#+@^670vkx#MVXNs5`vfz=RBb4DIr+9i5FvOLCTXmK9Q> zLh#>XibzkuXmJY#7T-(pSOg14jF?h%Q!Trh`Uk+~H+XvFD`0Ow)95>)IlvHD%QuV= z9}+UJ9+sblm0{R=^(J|w;XY|}qLUH1@sLPj32A)8F9cuK+>HO?3-tT<*=J2W`L9mo zW4^WcZpp&<+YT*}T#Na4ukv#&Mnl-f68p$5!C6_w>W=J+iUv`xyxp>*8F-EhfBWU8 z-WqJ0M;6$i#B$LEO!wz6*VqmTRf^g!8qdxSb|IYBp3rQ=zPSF!CD}H7XEZAY48lmhMsOp3o zeocIzavbLwNJUGuSZou8Bl8JBjlnnde_?7;$k?ntHos;uplf*8bvaL^_2`WH4 z`vt0j+c3bY?ScR`U|==-I6{x= zxpr>(ViSW6Z+dYX-wScg>G>I0M+MNCv}J1-i58#KE$j(Ds84^3LKDY;W)zu^6(MR!XpMw^L~t7y2ckX8RaEFGEbq)<-i z$GO&BDv4`-hY-XhvwnB)|R7_E-4!ZeqQ5ii+W=>t9is;#0|9$8OxnN z1aGg#eQK-xVa|3?fcjq=@|9A8u^ z2VU`t#%l0y{e>O>xFM@?ZAO7aMc{8MQ%KttrMpM0sbbaO12y%W_USr zAA&$ex~?TU?SPyuSnMuY)UeZT-4+mP6<}ps_V4*0nW{@yRre&=@x#*tVz}0(A|xJ1 zla=eu>>-0mFpt%WM-&$QWUFLXXu%>@rt@2hB}sE)D#tgr6$5%iiZQ8g0Kv`}h7X%a z(r62`44WoCRwLvw^S{i|d((=?8ADpi^509yLdejYAYe!B2CvaSUFr@|>G1$t@P zH3AZW;JtGX{LGlketkt%7DqsiEBh-@+26W2hoH*#ggK6~W7OrS0PqsavW=tE+$>z3 z7pk|k9{P5X+w7GUHA`J2h%0N+a+H&x;q5AJq&VV+m61kw8;ccEk42I@7C06ZU{KHB zc&T^sh(Bcnrc1ZgJ-A-6!@fzKTT*z<7Cj{Hh>)|0w{=)25mB{1S;!>?L^rvu?h|Im zIUiHxa^Ig*veXUHuHNakuseEbs|8!<-@=V)J|obW?UA{^iK5vA2Kn@8^vk1HHoyS< zhv|8GQ)~O7T1B{jneV^5_JnrBt5>`z@E;`Ov7TShI*fLFm}aXk0{_?{8@vQ%0Hsr4=w5cTaz%xBSw27Gx5 zVku|+hZfsEC7Itjz>3Qy+g8l?6IF4p2LMqTK6oJMCwzD=frn$k_xgqIG){b*p;y+t zMfx))lIr-DZG8{u8EV3rTRBm8?m#(+O`t>Ty6ei(u#9!|xG0p@WbVjXuF{o#05oOP zZdy?dX(yk8j8=@#jf>sds^9eTxx?DL<_5}`fe*Fo*# zb7d9cD(e@9M@Q>XqK7rh{FHPtlu$vCZ%Q62$vSXGk@7R8cj9|pUy^A7=XO`7u zlQ(%;&9A7OBSf|M)SxSOE^c^277yK$lg%quSH25Gamg8@B(wP?ni~!e6Z6X{EN=VB z)m6ePzNf(-E=*$r{MC^Bs3a$z-xMHrujB0T(KK}j9t*#*11k0hzU{m~f>A`nquE*8|!HR>knbJN}7P5bHc%{zl zm8R@BKjLa{Mb`^NSgT`-R+83uouIN*!>gU*W>=q%d~ZO(=6qN#JpNYR3WnDw3D@~} z*#%%waj4~zJ$(!#QKHc8SUg$ajUpn~8Z%Eor1)vD=)1!)D=DL~`c`}A*~^(|8vb~? zEbx%SEFM|Ar_RCDLRlf1F-(kdR^2tXDDl_X!+VHsMN|kaKh&&dvp2Ahk%J@Q^gIbV zeRE5HSN}z~Be`2XI3Bw9OIL~i5%atE^xIDx=Ef0t1Z2Lf(vXZ?MzeYM5|qLg?(5z) zp^rkmLB58$eB@QURmrNG3(QIAxX<|sWz?X}|B=Lb#3y^oUeQ5W5c3S=;=ARXGuQlo z>cM|h_N{8eAHp%z#v5(z9$TbF^+Re(bBp_&Y36-~=L5g}*T<~9t%Am*uq0m{zfulM zjTy*w3IGu=7qoEG*4qI<+Rc~k$J-rzgz@nZTz>eA?r?D&VuP0D@s1ToOVSxbgHFd3 zJCuhVw|M9y-435Z1R`N&Wd2SY1xr}SN^;p<z;4Gk$RH$(a`Bg zvX@_(KFjK#Ud-zA9}cvqGyy_Vv(p@#wtf>f$%zjV=ZsLnZ^xdaU`5(g-AwiC1RXKm zn|65ry!21jD$koC6=wIx?Xn3XH<51@Ujz`s3y7|cXm4Xm3WTqs`!PJwdE9NkLA10E zwdlICQ>|60Ap2mE4&X?L__|3DP9}}Q|Hi;nTC`MPdu#7%cJnz@yUmZ0_qD=7k;Q9; zomyl@yCTG#&@K0(tby-fhnnm5DH>Wa47TPbg^8pPW#Tkp=ohm@*RejRl{zwQuJ=OP zkpl1>gdgy_3f@LR(@eERZX6CMOz>n0P_t1m(UOeC6ktvi)^G+;pfkNJH5|Gilf%g_ z;RB3MjwhMIuGc;Am19VFuPP}x{FbMPIrO^icl70{gkNV8O91;{YadG5B49zZ07T1< zl+J}X`wqHK>G;I_-X5VP4ZMMPp95>YE>%0BGsEZTbTdzK`yv9R0d@_O(8h^$!J(VnXlrTPg5=#>o4Ygs$s3eF5 z>ZMMx$7aT$7PwNp)5v6xd3UpWfJaA!imw_@ zW((leeljl$f(LVg@>OkxUU$$kiwK_PnI0HOS?5jf7qs~RK~itWNc4x28_--IYaV_E zm-`RQE?a;dcKmU_t+ZNgfnIHwWVzoy2#p6zP+X#2=bMR7er@RDYKXr3WYc>}yzhVpBF8PO%_=CW?T5;_f>;HL{TB!RW5i%hJgy0C-f9Llt| zD^E3Ih-c9008ykIqz3Z|4FdghfpaM@oqzo{Dc!HjToIMdCg54@?zZ3UHoB#aM0%%qDOdK z>ZjYKCu9!}s`jd-S$C=(4B`Oaw9NW+-E#4O*@O;n`E$}}O4jjF@a=~vv(@;K;NFNQ z0Byz0Z8z6&m&yjD7sLM3^qovMOElr_JSduGkgr_nrOh zyc}?AxY~e=R?n=6TprEGAHFo_5po2qYCkCFf5st;{E+Oxkb;h+tAmY@BJL*px>@m= z-Wl^)X2c23an-?{?silrTqufxRcwiSx<87|=jt%FL+^qICZ+05_kYJ?~I40e&`9L|F`V0ASkYH2{ z3ygF&hJq322<%X8*2)m`PK&;f^9Z+dr|z9WP9G(`DQ#W?6hk|n}$#$_`@ zk*3Zf#iBF2T05)Ujx`mcmARF`b?O~gnV6~dV#wa8VhC#Bam?3^RVX`e@K40@#J{nD zb8sh}@00Zg7y7ng;=OT6TX-5Lkl^D^3YFpC{wZyI3OT(e!y$IgL)bNRt^OR08hYoWRsH^%;3HqSfd-!{ zP*@M?Ds!1 zO|z46jMP>vs7DQJ&9coZ^t}Q(SkN+JvCSC^R41lmZzYk5KAa9R=>PSBn+IlSxqrnG zGEdX9)|engxLH+W*7T|CW~Q@(O+`AUyfS@^S*(=t7Ux4ShxE9%UM3b*yn1V-+^H%& zdoT_(b3esz{YTvH9gHN_b$1NeDmxl(i5Y(>)N-qgsyChu5)Y%j6C*2U_qMgkne;uJ ziy@C#!nd&=LmzJ4{{i6R;jeZTMwTYTOS>Lfj{$S0uO*i_()2$RO1rzl3S%7TG>2_J zq)b8Mv5vUH$+Ee6!_V|+E{d?LVLtW zqG}=FV?WbgXN~bh%mIWHYAdV;uAK`SoVg-$rFEDk%w)qWZYK|d`IKgJ9E^w?Z^N-s z<{D>jO^K!ciwo09MPOOeW$KU25g4f%u&FLXn|fJ=OvAF;NH>iC23V6#4PlEGw6?3V zAc^*x_!uHqrB-5RiS#3gDiX%_c)bZ)H44V84wMEbx4UV{RNKOS-QZS+}QZE`|_ez(9jgbaMWU>YnCoO&6Thls3$w+kCOT8_kdy z>?F{_sU(rLtTR(L1hs4~)E4IlTsvwp8il;*-vs9W^nWC zgh{>)qh!qpq@T5kP#|e-57{mnnPrr<@#Ev;Ne-?D`Z9U|$p|PS;=3vWC@F*q#%a0? z6($r2=MVnh*MwpU(ayC3Y!dm?K0cDcV=825_5Z37S50oG|B<{ygyz}rWXh%!W1{LM zw5^Y9YuEPBivsZgvCNYhEo{s?|1(TDCbz|yS~^7$NF#7!?_Bp4xmyUdLJTQ#_cFK) zKKSX2!KfPUp09yH8(v00OfIpitU`*PRUnw8-;$??JU75!5aF19&mJD))`Kf|DMrL} z3K6s(|EcV-nia#k&;J*`3YB(K5H5v*EgKoKbNV0;`pv^6 zhJmO8BaqU9mmnvO_g-APuhF-9isRSo#JNcy;8{YlFi5U|;Ahbbzr5QtAFg_IZ}C;y z_{samj#$h1e^xt|=bfJcd2-ChlpeOiWMJI|C`rSU$C>?` zr0zmOpauHN%4Vlg&#n|vngmdFEhSIG#r6QRq+*C=7wCn_A6nLSFroWTAXYu%*|n@3 z8N@dTXqT&}-rM8XY2cM2G45XKM?kVy;>+jO$C01M)A(O$5})cx8sSwvk_Ayq0Nnj!rsEn~K9y7H0!q_({I!;^Fw z4HK^&v=bl!eC2I5(k8fcsNcVN&JD35C5kXEu=%2l5UoU{SmxJB9O_pKgb2|ch7nZR zeI{tI1U6sH1Bw|1j8+(y!WReDBc~OCMeGfXcgl|AK*KreQs)~Bu zXO^}>xCI<|G!1Mt{A#09?ZaF`10+OWr>p=48cz=9Q!I+7MMSt#@6R+y4cMUC!9w|? zVbZp$Q&fGkNpDPOa5y9dYPTT>&(wd&6kHO07U}njI$*{lo3}Y%{lQw7U*M%ZrJT}s z=6876IDXX4I~o-~s<-OUrqcABbi}z^a%B0rjVfUeYKt;G_Iq??`k@Ok=M(Uy{7VWg z9j(X83vLKHjSC>h5W~J%#GW(o4^;cT2X-ODEi6K#s7y#DYbbRShqOj|24z-Vc zGdui6$v9S(V#upCAv0di%<}p}4dNHkv)qQ%9GW_$k=J=56b=C5cv;?t3-~Y-RX6#< za}XM|P+6k(hsZ-mgO92pm3>~8MTG<^%%C;wepi3EI){MqAlek8h%8@Pggpg(XOe9* zmuqgNjPtoIwFZ329^;Ca>!wBh0;ewAANi3?T^b1tQq6>}PqO_Tvk!8MUtYn!5Zcao z^~s)ug|@2dk(<6!tHsj+ATEgYzOe#GCFoG*s>oD`N9L9a8P7? zqtB!MD~G7xw#~U5!cJd#K;7-MDv0pWzMo5g$D%@nXx674>n3mVT)_$BuaBV>)_-)u z8VWrnP2d+8^_~#z^Vgc9H641VCk%#?mg9i{NjUIl0R3XrFOeqt2cIIViLbc?n{N7e z%?ix5C|q4)qT!rlmceXVgfH~U%|twEHr%xD)dQh^wrLJ@JCY)0YDQ_QDIN6R!%*SR zXv+qBE<(U{@k+k-aoo@b&O>hC_44JAxN3@9$F5fImh8j2hySxlKE1F^z@) zKGN2-f|@zNq90Iv>SnJPx#0q{d8QpGb&5P5e|keHpwTLqbqb<4#7R! zLJsxshmMb1x5M07)zFaHhz(N>ym7263yxHPkh4C37)jc9Y_}tz0(bbp#}S<;WPUHwqLhM8kYx9h z2t9T-RUtSkGL^5;euj)$yUS<4F;(p~W)K&sJJBPsZDwt}%`8topd;)J+7T2hcG(8k z{MUa3;3juszZ|Jm(=3ZkBqK8+WxzNp-_zmgBb~8W3X49Yg!T7C$Pk>JH7G3T!jm4B z9zx+02U7t3CKY;8EsQ+H&W;l50PR|c23Sk%oRAtrG=Dpt+z~Jt2jY=|IGc=hV)nDA zHK=1_aaQ?r$`j6jm&-3%lUm&UhSjL>SO5U6ZYTk-ga%9;aZGLSV}^%p_FP#FyV*R? z#LU#oL>lv=qqvOSMl>SVrh8j%>(}2q2kHN{7JwwxD!!0xB9hfdXLUI(SulLOqihK* zhVnFNI(BS0$yj@{l6~H=hVSm=`-LaF*Zcp+wIiI{$3D>!SGZ zkJ{*RsE9$MAYx_C4x{((?4Zq-bE+QOOpIRKA>V~W<^X8Zh4kOnI4mxgRR=!d$L#=f z$f?I--*6rhtV!Q5z!?;tj9Ph!-r8q6DM5UxRTAwZRF-go+{_sSkU{;o+p(F@i8JYn z-TWmW3?9M&cziat=IZ_rBVWP=4=Za_U&Y(nY%)0?V$LR~H*JMI>?Lae#O^KoGvU^m z4)=&7x{``~ySZE@(eOigfkM@-Bf?WbAHyJUm^?ArT!8BZ`@w9#oi3YD^4E}R={nyv z`(AJx)V?CGUVq=OkZuUiMPZ)30UPzC1le~PMpJtXXJx0DvgN&a*4C)$6g zl<)AydLPsB)js?@$`-r2qr@jtpBD~+jkC51c%H$B&rsNLd4xYrnHnD@oZMT5$ev~v z&H*R0(1fAq_uP*KhHp%^1Tacy9|50Mip+BTk=jcDdd5Q>rK;TNk5&$f=Hj>Dib%I> z2!i~pP9|ch4R{J?;XR41LB*&xXZNQoMe&F2DZN>}h#90odMEZww4o-iz5oKaa3UOs z=sG747ON5^dpf-B7)?b9ut>_Q_qDwz9ZHVXYqtaf|2~$@X|y^hYoT4hkUA;Rr$F;d z6ScufK)4-6=bR{0B~oaSfl>RH&|TM@e)crDA!Mzpo9Qp1z)b{KL9DFeG}NlRAU&&_ z0kD#0;n*lU=Wo|6Ys{^GvBm6ahW!pT+pQ~Dm((V?N@e^Qo30i{TR+aJ;xh}J;qIUY zaL_;=lq(4SKzJlm*A{d22V%dB+gv%YdMgeRfZPwX5r+zqFx@vYJ0qrzqNA2(53f-? z^)>k^(g)uCQ0X%|nhCV!w{5B}ygi^#fy=LU4oyMQ5Q`zivKi78B<`O<=5ze|HhT`a zN$7(_efa{J0_aRkF#0vSp>oa9KW|cq(`~saCm$)@wXI6ucDgBNGs(yU8Y-nF+9!)! zSi&n;A9#T!?zt=OvRib9K1u01Z}r!0zo>=NQ2yDBctq$Us?_-v;Oa%*NSEE)x43xFYh&9Ds%}-u|&H)j91adSFeXi@l>uvKoJNT5r0g zVvl+xKT}~{>u^QMMcqH74}6)F+tY)zGHPP|w8n?`tu=9eYVso4&E}NsKJDprdZ?-F z(%lerJWs4RoLTWg83ldV_Er(ie`4OzuKHRyFjg3N3EF_ ziYA<6?i|+>dHP^?baeaUWpmGc#C)tU4?izz_fJ`$tPPpB$hbzteaL+f5xwN~XL!M) zjS4>HHlh!QqEmF{ zs9}Q1u>_5})mWXn9tH`bR1@)|joEHpS6|(-L~LyJFPkZ!_868xsu&=jBK>Bx=*|a~ zJ@&1t>3L5LL9mH>crm8e?BAO@;o+;vVoz?n_mN?#aeB7#pwwwsn8`v9ZR9WgC5^@h zD2S98VqET-yt>BmGZ{q(;Wa@Nhp<)&eaRPJ{DkEp`K9GJ#=$V8^^WsT0D=s(IjSE* zJ+e$rji>I{$&6T~U#?!#@7P9N2EJsmoIFI*ae?}kJ_75yXTKGL@qJcuwj1-y#9 z&Ls#A{DxWK`;!sjz-5UmHdS}=!lAea0Dh!D;}yaGSj7aknX-WOb%%slMu}9v_5CAB z+q0u`<&deIbcD%cfufp9t^y7jHrRJ@^iQcowhKAj;!b$(_kE?g8W3pBrdia5s;Tzj zb%0{lL9KMtR+!NHZBo?A?Oq1B`Us1@kT7 z&U}f9WA1vQLVjo}7F&5YNQ_B6ZSS(lyKb`hfVO?tD>=L@;E8;Qy7$~GXtx_iHZzP` zOkYnGSt|s}+_)P&uTubmXn`pohaqBwL=Rbs<(~HLk?wNkqB}h5~W;$ zn_$iuH#$QZXhAyHo}RbbZ^)m}m0k3*tAe9di=)^~^6}mR6l<&21)|&GV*dzyoM(!S zWprtMaE%aIlem_UjviG5Uf2J)fmT%sOe;yk zPb*q$nyu_Wk`hE_wld;i{%sOQB26}Lf43co#t6jxiincpV)!_azG{T9)(UAzMoDWs z)SI4)%i2*+&f3xqe~^*uQr_9WkxFrpYWvbi{As#f*!(q83a}{cDOz53$(xxU34ec~ zmhW^Gd}JIUv7Ir|8OtR|qTa>iRM)Ck@s(kLY{D5W@*h>geIu(E3?HR$vE`4*wO7%ql@&Q)rlpoZr+d)D4!bfh;q_GvFNX#-nW>Ek{*^I zw)?`1rlsyvf0iJaQ1`U4h&1G$yQMhRsuvipLoa93oBx5%)f_A2=u>Ri(Ur z!puh%UaJkgI>lZ7DfVNoKdhCe7AgVeglq21Je*0fu|YgLyTW7<5Bljo-Rh)X>qsGu zfOE?)U$OFT&BpSy5k7@Ow35`B_pc?@6?wMS$(paSl9C~cG1x0hT(=ntS-s z`O{}Afu&!}Zdt4317D5ky38MC*dXktHY{lH*;iT7I(*)`E^lD^ni963Ccqz(7J>Z}-kwY8sJCJZhxQnlr~<8S9lPv)_=wBwm3$Xo z+pFt>eQi0gKi}1vKKegPf@=i3b=2kGjJ#-nD{kI5i1vzNt1p8VIjX^-)(UT0RP&>s z@;^BeZB?iQt+MFwkuwU%4`_2cZ9~ZKX(t}x$ADNC?2x7PA>CFN?LhHLb|0RG`?3cVHCOr}O@p?Vi@Q>7bguO$|`!CF;DgMiX#Fwu|l*4xoq+eAnxdZ*Ic$pjeYQ@-yG^;aZ9YI0=%#;SiDb~+D?Vbx%eb~kx$dA6YsGl5#(2mv<4y$tKzd(dLDon_Ddn0y4`*BeM%!rgHxFr|fQ)cH$4^ z#7&{tn-Y((u@1`fkw5}t?oN%D^n#Jmg}u1CBMoW<(J++dQ^KHQor$!eoP#>F+kuW$ z?7hMa<+I4Y=8x7U&S+l7x)76LG!8Rdp~K$r-Do#QFElz2OmN97hFYD9zNr|gTC%U9 z2}$Fx9AmX?zGtH#YV~X;jsU)2`OO(IRLxNDE zUmtq$Ab#b_I?vT!R^VrM`#u6C;vgGiN%4jRYex#Vod2UYtaWHoZz1&lg~!d&_lspb zMQ6u8Y(3PkIXQ)K42nL69KP71DY&iQFG8KU$#>MS)q}3_1_MHawfR#Y?sF*iU&Nwy z7%f;jKDxuX@jpgswJWvR(ns{o3a&u3Ug(bu4gw)2-~(y}?e7RoL#h6ZyKlQ)_pWTx zS@oZwRV7Jxhle*AB8(iGqU?B#ly^ z=)UU%utE3z2?Z7InX9b40=$+(D=l{kZfrh^i0Y7G7SN7d36 zSc%K-Co189R{B6Dv#E>HM19Q zv_${`EwGPWXQ@O(W z94tiZa~)i?kw1nptk`)4C98mu0W;HfOm_o_Eagv$EGh`o1_s)KHQI zu%jVmo*K~(Q&rbZ2i_BXtGET#d_07oqy)2a`~2^~Dvl;X%QGZhuM7lHz@z+>&VTGp4yj{4HfEHih+n36^*6c-R4oq2FjjpU^)T~DDok6A)9cUtE58!quNv^t<8p`E;$=F-YdYmSRVr-0 z__g;7xZb8IngkOM?w>CPnh#1W#X^L-6hs&LXVLlqbr*L#yro88Ta%n??CEEnki@Hw zT2N}61mQ>>^N97kalj<+IJy5*VNk?)#)~>QL6tB;m#)I>3yjSy)ran5ZY0%Z7r+&Y zpF)USPBnE*OXL`!!P!f)tW5TUAnO7D?em$|Nvf>oSKjpm8?NY5xq4(OIt(v9a4zcW z-;sFsct=w2>C?OnvU|0}V3+U=HG65oHr)DW)WTZCdM6B)Z>AOKi+eoKK0to_bKK+C z3J7`QD{-{%lX{?J&;zu?h(_r7uX2?jF<=i6t69@nc9Ro6dz4=-(a{r7U@n%C7Fx&` zpz24*4eCM-N@lG2US_tqoRwC%K-c1WR=^_&PL3DR)d?Y;Gb#D4kG0z!sHa#;PaWMw zfR^>qZiB*XQW4O8iJ;U;;66lBfYBMti^Gs(R)FM0-zFs=&giymyaav$58Yc7ob83> zu}8%~;*tSWkGv-j4K`(;f(Xu=i76;G(1|y^n3H*Ud;D&VzJyP zF#bXFRIyT|(TaPCTUmFs;Gc&@#w%V1siKI|c}5(zklWM9Bkl=hyOe3{?6=K>KJa%avn|*0FVt34$V_JoF-I!*Oi)=&|6dEt3x!GL%Nz_6{l@|X zKqo^a3Nw?O6GW(rcFKgWLo2Pw8a+c_9tUVt4DPrlJ6Kt_377#3r83R}gD@Sq?>4q_ zhU3P;8X~f%{XN1xhLfDMzZ|LS=TtvBjz0UFV->_pvf^jej{mrWaAlWRd%=j(!n2Z1 zCd~(FVIseiFzaWK4RvStJCn}xw?TIx6Wt_>pu*csd$z87eOF{gwBoi#a=km6OXu;U ze%H+?W#|4(&6y>{pgCm z!i@+h6(5w7_n?;k3X`Mjxc5)IV<0LVPh?!3q~=+PhNpoM5lG#!aex(BBWd zWb2JoBnEGnUR}8uA@Nv>t20^k^c{pDEp~iHi(NGj^`P-u!XhNj1fu2H+d)^477kMvkfP4dDA%HRZZ{YbC8*Ijpj~}Bn^P;mYlST?%6yj~q z2`2DjeO_F_@S6+u5&MgS-XK2gmZ4xczx-k^MXUTDJh8rz4g85WS%xN#c0b0It*Z2 z1zikiHi>V(rF24(qviz(Gj+Ia$Tf&dqGRt_6{Zs0DKZW9#R$Cwjin9K?1oU%t>l$o z>;zB$21aUG{n=hCRyaKvDTfq1g<*WRKxP#E6IB;;&%xVz;u1JJf5$^Pu8O^x`zy`0 zDRzrgSPwpzTtBl0eAYDtINO+-;DTj`(^h_T^-zNpwWZ1;1Ya*ynP*ug`|=%^YVh#L z@D`VaTa4~MWXb~6kJHxtKzSIGx`U|4qV(8Wo{c0-X!rPeCuP?e%S;J5(3Aj$9Z$nj z{D{{all)Fq#_(++o;}78@qGL!+S02VlVuo0R)!vXNju9aH7v6G)nz3gJ%#9ATszdP z!Z!xeg#5P9Nn^m%J{C*U-4|HF#_)1q8?sK+ITmdx=7tQ$Jt-OiLm=R1y^7I_}~D`E4bv?;kicE%u(#O zy-wF%b~Ja>Z_m7!qibo_TWBwv7Jia_(0+Ydla5nyFi8h|HE1e0uEoz7L3fjVY67n~ zOF4y5p}J40t2EVmSCx+Z%VzKZRxBF$#oQWQ{miqip?L_$V5UkDsTdD5KkxqWfcI}8 zATc(l27C9`_dW<4=+3mAAOFJso7$%h;94czpUNB^BbH5NhY%c_WIAR-z5GE<^=cK_ z$dh+(5BNDJ`#G}|_O(d}+n>sS;Xt$Nj-Z_|HrXd2LS*MF`_7Hr1oLD%A=_Q^(FUGv#Vo) zBJy#%k858GXjET*&Igv$TGjWx?-vvQ4Dq-1A$gz?S^Gzn*pu5L#o97KXQUHsDW{fk z%g2>($p*TgvmRfyIs}k+ie#cyCBEf|;`FjU+;q8Jnquv;;SgF(h1wd^i`vZ@b_50 ztTT7i1C~|Puwcq)M7X}k?ozXy=HPQ7GbsTj$k$sBpedxF6dI@`p5d`w=Cd$7jG_o* zj(7b`%22q%q$krQwNaeooHV8wJY8+C-Z{tYbnAiTZe^I~-q7SyST;0urwB$DA9_Fj zrVf)7-28H;$8wKl)dme0pgHmoyr-$jQxCrPh8q2TYSIyEyXAD4}uPBN%K6GacuHLo#xl>gqVh z6Sz1F1;50rndGlPW%FjC4!>;tO{Ag$$;f4vJJAcyD}SBc4&#=T$)ly6!&g%1ik`41e)I&lL zb+0BW6y$;8c+&SK0iVAfmkI?Yw+43IKw$kR|!@*U&YX!V(Ry?~2fJt%Rs zA`~UT7n&j|_Zu}KN-RdG$>TKk%0SQEz@Nj;o64B{c#=MPzyt*aTB`rkac5)ckm+oc zqvyin>dbh&NEg=ot`{a!}y~+6hfuYgomNJTr_M-*m zt<-#lgt5SSUDaAoRyfWrsl#jlys#(QV@iwtQ-Y)VOe~s$t3Wat22rs)`!Vm(orKvk zaSDrIIuI69hh%1|`I%lr54M$GW$PGt=SE-B$Ov^2PI`t97 zvd{mexH_E|_c&yox{Eq(y4}4ePmkTd2AZ|uQiI(Wd{wK>SyOfI+G7QM&O?PIyHOtg z9nj+iG`@&;gIM9kqZoKGXMbJZf4!4?pNyTmG@T4g$b-SEcK`=}`c-^+mw)Xk>~9>t z^uJ)AR}J3m`L;S-3i?Gw{Et#s`el_15p{$XJ-B<}$J@$N;p$tzJiz_)sEzy4DV#nN zsusVrUpV!FanM6Mg`Q?07(SfmdFsT=GSm>adk}6o-=g{`tH0_(SK*4)@KEd$S=h3? zQU?WydatqI=hPSzfRZ)~vm}{Iz=$Zn6sx@r!T#v0*6YW%E`T%3a-AfyRhQceGoJVr zp+S|QlqW_ox59pYbKfpAuk|f?U-P?Y`0}r>ZWJl$iW15hz!N(DAlPkJ40+?JBtcJm z0)|%#u-n+&HLDrucnQ)5K~LvdMCL@9wG^)Fk>T# z!DOJurB#yvB~8sq1_GdYsR0$=Nqzdmh^4K92-rC>7m7e0%8H#QRYnYmqf_0jFWTEK zjy8+T7B)D6m!shK1F$0qT=18o{}qnY9Lly{kRyFx*8qKQ$%JebsZODCBy~M4n6pc{ z+s-8?)bqb)o4H?@V+g;%(L*v!t}_6d6__gp$A@HJ(7sqH{@gXbY&7lN<3)UeYa!Vp zK>n}rxYx74QwZ@nJ>Ru;1!y(&N^?MI<#on2gwL}@!aT=j&Cq$71R8Nf#$zy_+g02J zir%QKC2zN~>kE2_>}10j)q^wwTIqGnD=~`TFsn5l59o!lG@Rb=UVMdbC~9RIg7XpZ zX=&?P+yKYJLKk;;OYtOa+mR0Ap89K@+}F!l+4}aL4o_1iO~TA)JAVvn+5qoY^)YP1c2Aj$OZ)mPV!i++ z@;k^zS=M;Nw;OOjTc$;$?!>%nQNh;ydY~=WflYep4(8Jtf4pq^0O_oD8a}F>NOx>L z86!qnrRT$7lrip&CQT$PI!t{uy=}jbZj<9%jnKfhy(syLr3LjpVdQ=l1+Kzpy;le` zt{V(m2GShz!e5423bw}!P5P30F{h0H#wJgIac|EBdR2k@zH15E>b|`2-(huuZiLnI zOXrz1I%G-ZfhRkBTvZY|sSY57rX65k#p9XPLh4oEWU)VIt^S&_CmK*z<>YXhwMAPK z(C0dZq7j;N@B&Zjro48vj@vHV@&4u@f(t(%oSFvwWm>mdEDhAQm+ z{evvRMJ(tx(&r9|dFCjJNCmFFR)~Vmg1rDhEW3n)AZdVJf2_K@Dz z(0tE&&hPHR9%!FQX>929+!^O=i9lYcK&GKVqi*}|9T1iZPP-`Eu0zxQB)A(d8&_A0A$5pX4Q{>75H7q)y@g}@HlSo+nVQu#4^=|aM z`;qFXn>lP)s~`z3{=@Dw*>RcXzFg~+dB$0Ptc@N9u~QJAG|y{Hp^ zr&|qM&lb^9n7Ol$)kScMGei0-|FvO~C3v`Fh3M}*L;G1S^RgI$cY|;5npc~U+=^r2 z8LzH!=PnmDSz#MD5PS?OLT#$W=-8L~aE(phMMmdw$7euK3g0ik9k(w>{DlbKeO|I+ zfxc=h)P?7UJBV+~k+jTOnW$sMkR+)1>{OkVp($rR4hTWYOrhPvIB}o$xCDZ{vO}9f zIS1JM`F|a89q8li-4}7Pj^r|6vx=Pd5PIC%a^cESq6PN@IN)CwQTeqeb{QYV8jdB6=>dHqaYL+!~8WenVf6otcNS8Gd>!HmOTxr8lzdEJTGxWJ-^WmerD^Q;2 z(ab`{F%4wQN^La3?Zt{;j}>?*Zkc0GNa^qET|Gy7cClPu8fk1B#v@38#6LDf$qvLL zH5U1z6PnO0sEY*lUD92~Hr^y)K~b$4-!Qhbx)wMe2yMd^AvY_EvX$T#7q>hE)M$e#Vd78Ch`>;6AlIw4( zke)zG$^B3~KN~dv`p4CgroNa0DG-rk$^#JxvrR-vEo1l8B_z<=t~iSLM%2!E{ecpq z7iSmgkEGZjkU(^G@*rlsDBFvBB6s9P7CcY!BbFVMMJ05sHqO!FXsl6Wn1B1GWRTZT z?&y&BG))BmpK3*+5X(>72*f5D^G8=J8{NJ)4x{N%K(PgmrVNsi9DizScFL2rpTRFFkg{klr3Rd3lMPa>>i5=r z{a5n*rZkCdX(LCp+6iwE!d2PpD$3PjsDZHM-$k{%%y}HbuRtU%Amy!x={JM2Q4sYt zf#JXI+orDDoo`tcDxm2J4PkyaGu`NM*#3}6f2PMqOX zl2U`|h5>zDD8#_CK7ZH2MK|SYdGQ-yf>%gEbOOHF(_CwQ;Y{d1hT?F0mv`oyBGJ4f zS~LrMNqTPr#y)^V2!Izz9bHODz{4=6ktVS8@D$>!N{Dh+;oZ}`j{20gF7%oQ4J2G# zE*%=ovaZ4m?Rw20pF4^Zw;CJUzykr(iMmg1qcva$pH(vJM=qR*d`h3!f`<#wSS!Hn zpITX)QFkSWIqT~Pxrn2Bx?}sRQAdaHgGS&-YDHzsU|!425dzo`fyUMJepESbb%HQ| zkyN(5QY<-4HCkqI0@_$N9-B3^uvCiNKO3NK89?UGHfnk>lh?0+3eIUpfe9qosAcLJ zU`T~evQtWsmOWmhH6bw-ZwF<4vuAy+-_!Eq>bi|hE-~)l2|!dRWGcV!fr1WMfsA~( z6R^74q}5x+k_U%-{|g*#t~8*?y=-b<;xH1200#`*5sVKJ63#O@G| znU>t{k2w8n@0_WY+Z7E`QPv7^I1SSE$X#z>uks>Yl>u2{?Br}L#TS^}gFDd9*H;w9 zH8^S~JsUDkcq)mwiQI`S`>_CDh1mY-S!mEW*xge1w#YzvwG*M2%9?a%QLQ|WB8*4j z@R~`1Ca+xBiH%8opo8`p57a{$Tku2iMl0}LV|_?$+Y6NO?0+Y@ z12<<1gmgwPXI;!xFk5>;M8R%bnsGmclk@@dk>xB6Ae&*P0X4Qko*<2yH1g_3%dp(( zIjy>atf4T(O=<~KP>m{7DPRB$7Vj%9U$r|QlGBebsJG#WYFzMcpt`!zqHF&lv#>2@ zjdYIQDEF=CNpr7vo!HW8Fr)@)Lgcne8&8!DyHiUDHrG84TG zYXR**5mPK^hq{a6W+Mkp2ow9Cf&lVYo_yMdni?Ixn=Ko6j00O>>X`&f4!^2G*sMZxUAJ_%<|Br%iDNJ6db!|fDExz-IirZuYmWc zun38f!D#ixSxtTMCW*GqtUUvTzs14E!Le&I;j>LaIhPGIGeug z^As>axYusUVw&d~r@7B~bFgfz>EN8Vvs%R$rJMV}bo@$?PvN^@(5nzvRmzAK-F}^O zT$QUwTm6EPle!tg&1K;0%7i@xko!Jdg=&1;_^B36}-!^@4EQ zE($w;f-%J&4u008q12Jc2RUv-KfQpb9dkBrcqt*Vug6b4wUi!h(S_bVNU)9>g#;K_ zz>=YNBJsZzCEL<7qWBHdr+(W6bQ6%uzK&=Q^J7bBqO8*6W4=^VLW<-hpwj=h0I??N42%+x}J7oDHM^fdFKrwy+$mpp{rzKt!)NV_DbDgU3FQSGbuvK-X z&Q8E-0RQJUn$+OH4Zes|+0_*NPbfbNY^LU?YNKW7!3=|ra{R{_ai~NDX)g9~~i+Ss2#|N2w2KWx(ISp8oI;pZoEV!)+*CMrZv*XxaMB zypI!X<@9EHfxHHux#uyMiLM&G|N3>Iy~%pD+av#tz9%puH^#lEKC^+5szrtxh~O-< zb~r_|-VPS_QOI?JB(oNWCRId8$nnetqzmk}RGWG9KMOzuv348QWlDh!g#s;8Oow^f}AneYx{S_$hx9 zmi>tQ<(Bv-IQU)qoLm$r)bCw@45O1!zpVRpm!&VqXp8QmE#^~h00{>Yt2j8eNQOYQ z;|J1(!`Zd@>TD?2T>u%fm8sU9ATe}T+#|wW(?^qQjpQ$AaS2(Eie(;lsr5-x9s zqD`B}aUU*!Wg<^J2K>vH65F}^PE0=p9cV==++`n5$%wY*k9b+Bhy9vh_rF=~c$CS9 zq%fk2hCNW-G;rG&!(vw62>$@V3|vWosjzG>4OC=Vd7CVNj&neKS%Rauw7viLr%+M;W1#DWu=I;6VjeK<4a zQ$M+KJ-#2uXcLJ@(Wk}X8Sa&2h~_E+mfaU*h4*coKcG8$ZG|=1inaks&YLOX`lMRq z=NWh_oHs-=%6)1+LGQg;k7L)vHc}8V0fTis8DRh5$Uv({Q>gfg9MU?XI6BHG3Qnlw zj}qIzF5G! zlpTuPM|SKMN4BVl8jcS^lpr)6JtT6?ZgOG11eJn1wPewcj@C20 z$|1`E^~c^pE1Q6Oo#xEea%6w0KAoD^(^}e|c(joPWs2(mCqr!^6fCu~A}osYHIr48 z;YHx^e5zd!$};)%P{@R^QGOUqo{N)3yRw}}mK(cC$qe`)FtPpw0~xxi@h*_-4$PIj zImFN^Q%LG7Ik|>bdy~p7Az51-8c+}E18J-GZUScvB%fxhhP|Ev=Sfx?`_YTJ2s z8_x4uz8E}_AV93m`q#{me?$XjE3YoOy=HAePBM(joGW`uVPh%Z*?a1okJO9d#yYw6 z)Gh)q4F!@4GA3~JiG-R~3-9xI52vCnM+3Odxxf*$8&9I3sQJCCE83{bQ|#}62?$(E zYP6xSsqOV>4f!-9p<{&xZkg~09>TR&792zdk$YkQNrTouaj^W$7Ili3{iiQ2%aF8a zekcMF3tTQ9l?ufA2BP?wC^ZO zRyp7Hb7}hb013ERZ~ri3&}r&Zx&%2VLcujgFngsAhB*tE-t6`?ynGxKq*NS5N-^e0 zK=nyUzqo5G-*etVu!{=r4(ae7zVL(xgWerIGK*h!O3twrF@=7Swl?8S#7a~((ZsqZW zle7E$flZ=hgW5d5MpU<~HcK^Rdm!-3;DRI17xcjAh} zw;$WCV|A&^az=et)1WA;U(X&EcYr1naU{WfL=f>ADP-G1lgmq$c zMoy}|sJ2*kV9Sp>!%cCsn_m=KcxUJrA1oSpUw>Hh{}X60K9}mc=7UqXZ)$O zmYV8}R@(HS`hu(E`+{7i@+wfqNRl5t4Yty50G2D}s80H3t0qjDHwjs*M zHmz&6;}5?)<_pQqza}zh%gt9m;o$z_6{)9OVhW*N%n1aIozL3I73lT=5bLb2i+%L$=pxAdNTN&rk)|n4zV}DnOjm zgy1Q;qct*`a8VBvArYqD^~&DG>5{9XexUJkdu+5S_Q+|?zg2OSwYG0KGv7Cq7>|9^ zGw91>W23jk)>+r7`K7Zo0*vBxUAzzaj{U`$MT{Rxhu7hJuCe^pdw!buKecW7#usiy6(UxJLTW zB{BdVmmu>&DHta6AxZ7&vs?K}{TUaSbj~?XqrIOl(%mIucN>+%I(};-HZ^83=jl_X zbrqZBc(!PTp;EYUI5Q!!HqPqNV2{7K1ssC(4MZ=5qPo$70r1&VQCmRV0Q+~LH{=BW zB{0r8lW;6hU>*dH)-uFQ)1CA(yH{rEH#m!Pa{Na=BTI25geQT+0?4^U^h)h3Pa#Ds z?&(DD^@ST)tV|~sE9>BEW-7<-s|^wMS~M|?!Fxag9o=Pox{Z0x4!;O#u1VVd3pZ8K zF7q^iuEFY+fh!0gaqRRIJ+gemd4W~OS=Cf`;_xpSpXlYqXhuoFkn|nVp9$Ts*;U`g zZ!P~B??wjHMpQABhH)(Wey%wV(o?E3TTT2$Y`9hHSfFZQT7B&Qtd}PCy7$H@CXfmI z?;^I?avqhKU1BZiBcoG#)jyz$-#avvpJUct8y}1%@FZ}cs2jCz=o6c|>4fxR{C&-G z%lr|#!o^qbFw~t&UL%dEWp_Ocd&iBi+|!i~mW+v)7{E1OpTwnDc9GqXv>Qt># za%ev9k_-4z08fb)Q&w()G7Sa;BYSxpWpF@~Y;E?o87g<(>0=kxRabD&q|u@a+zR^^ zkVyZMB9)%-nq&)6y$UXlNMFtgUOwXvk<@0)Kf5W*9=mUl7BYtGfvhlrs5)1#(obIH zG^RE0)Rg&~6mYP_Kn5MLzEu}J|I!W%mb%1qqp#hcEeGyPltD-JA6hUH4sra&&!e!@CW!8=ET?;A~0W==BP ztB%QcS*foBY)HJuPU7qgdLan0ybmRDGJSN>>2`<_WQI&tmdE(!B24@ZktYaXYsw60 z8H;|&07xd8Me+JD-kFIu@|E;^j6RGPH0R0Mz2sne4XQsjn#QoFeNujOQJLWJC@N#& z)@pr>%Z{}qnxFC*0;33)rcZUGf*UkotPG^FZ8~kvc@Qgj^knMMvCG8_3e#T~B{cCF zm!~5!bNIaf_(hEV@>|hvi_j*~cbgMt_49!@ztViP;2eOS!}A`I?0l0y^B^f?Aevn=eJn{hAx!v3hV`sYh}aA*P9a+uJaQEDgoY z2sTf1t`xCjh>NM-O75FmiMA6(_XgE`+MHwNB$2dkj0stqw=$9%Jb(GJQWFhpb8(F8 z2!_VvJg0Gp?(GMuQRnj)KcHE?Z|me# zy*?&5pI*hI%cO>D{s>R!^d}~Y=I#g_Zov*K>}eX8_$;Pi1;i~U)i^|(WzRmu2L`;5 zDHLE#9ty4vrb@ zRcc~_;l3ANq(umgSM>6-4|zz5w0O`$>ZuH1p4k&IRO0moU0~*Ykuz_CAA| zj$s8g{HO0rv4HEcmtA^iPw<&Jr-iR(#4{nie3k~VQ`iA13~W0h_;)IeXfv07Rin85 z?X}3&Ij(Nf90AzV&oL`WyTMLsg9$KGoVux1K!)zQV@Gr3*C}0-aq9-#QidxU8zKeZ_NaQZ8Cv?dG6DSo>-%5n* zGy-sg5ZKiW-svDu#D~>@du*jV|AYrcw}+2fJ0bj0k1+JkMFChudK2R*zczUHv+^2G z(dAcrh+3%>Y}DEIR7=3k6)oyRpa!UgwDF>^)oN(_s^lf1b#d>W@a{O^X1lsXUWLr$ zL2!1*K&GC{5<8M9U5wYxHG3vKFvZpQ5escjrwQlB%G8Nb3+PnPw=MC~xymNj-QzJB z)X!vg)9&HQxnLO*hMNN_#xQtmXr(IE(_iz3MaozEW@2Z=)Y`2YGZcNEGM!e5t=u9xB#3x@!_X)CXs<;z|Y zSH>IfQM`|zYV1v{mE!GxRtfW4%B{i-agZ^qBto%li+&SJMGPJTm(gmp#w#+*tpoRW zt^Sj^uS#(cy%Yw~(wc6=9qB8#?V&=wd(Z6BYG2I_r+hv~S|`gJ{C=&D{9{NRD@%*X zhpuXv)qHzB0XSNFGj=&GBHX3JJpS4^mPA+;h|UE%hpgO3Y$>@p@6+GsB{kbvB67{C z!yKM`3T!^HMLog;S30gM;7i-4doS6i{MeMKMT0T+y~@HKX;w!6_R}wM#Q?7CNxTfX^`3}=5s^~7M)kR|MpTN@Egkp_-D!WmhjpH z4ME20=_WD8irGz3Ik=O}@T0=BYwg6;>TDgK3bT0jzlLgf{CpeOL`UhcJ9(3gIhdQP z$`9@=c*bX*ijU^S#$*O)IVd(^2RLzCouwyVfKcwxnLXq$H30_W7(JX_IGQJtVWEt< zd+srA=Bx9uvCLyqHTPe4auGVcXgm6Dz%x?)o!qK6X|gTAUIh<|w(bdhnf}TP4zvQ9 zH&wy@;gHWM2 z*dL|lsE+$y{z%u`nn6T_jNgyto)^F)c8sA4f(NSbp^4E!!}@#OC_$ z*;K^-$lk=-uR7gBCz+fa;STREM3k>N*{45Kfmk^4Yc`90lfgRphdURQ5S{~ExcP(i z9$B$J^_IYT*`atnPqppAgX3J)+x!QPIn?GQAg`(v&Igf_xdX?|tzA8N6tDs~Q_Ix0(!ATXdUirUcux?qZqZSRSHr1?`$v}M>$J{V<|F@)-Fh59(5 z#uEJZRJah<``J(K`w~*V-%s5>4r=Y^F(MFixjWhF@L^yGsbwy6n7PcE7b=02JP0>| z1DcF^oHO4Ht6_t!yc8(`N&b%?*hN&B6;zU1db@jqzvqcRb`Kz~!k-=)aof}G%W2^_ zadx8PIT~=M$DDXIbA@~5E~x0WzESnW`GA9cFTydNwvh!BG@j6yQHi;@UW{VfQTA>b z#-g3?#Ae1F!2p11VjRF^fJy!`5S}t^A~Jx=I+)s{GT2h-0FHt=LT|M;wb^>2hTrlL zFgTyHluP50JZ+jn%vUEHbhmdH=3M>*NiQ-b3MrYgNpq zuCUb?a5~pJF>?pHBDOApN=1Hn#SrVMf*8+Z;|2-6wvG`h6qWRVM; zVgFeA!Gri^o-V0FDLs!8VTX?DO^ zgOUt54Zq0Q+&EB(nNv1Oq{sdX-a4-(`HF%IofN(MjN=dcQK_-1&bEi}b@>rFZyG#0 z#naKa^voY?8>0qdV*gJbUZQ@ur78~ONu%d~NwY4%Nu~$QB`pDXJdct)yAlS2))tkY z4*beX{CLfgdS6R%Drtt1)hRU7?3K!A27E)WX{pHX1;aw9%7(|ZYF-K3ps0{mz1=V3 zxh-^0Wm^Yp6}Kyr5H3s}w_Td;6i!=g?$Es=GM}52s)XQSZ!j?;o2JW=$gML_wRYCQL`nXu&6q_oA>Z zw!z?`PjLwht}2vvR+uy(re>M5e!*d2p8N&Hu%U4$2B245^Xt@3ky7|>0 zbcwRiKL=8oI$0^RT|=h=#fEd!5zdKktwh9_2}9xJ!Ij29e7@bHgr;!AQDlEcY)OC~3_>TgT}eMU<5( zc*aD?yFo0g9;*+-#`znLt>~8k{={~=Wd>Kp@pg} zz6|<=|8^e#OGTad`QRr58=s4w$PWmtCgL72G!|w)Q)O7EY!wAkn-Is~DdbJ-8Ha+w zAprrzZ|gXp=S#;!RNK2}n^h9KTdTzsIAq0UHWTrn9_5Sr;Qk5argSB*Z@%(L03fQ) z!g&CGX8hFju%*D!6AD+NI&nB9j5%0UTmQX?3S3;cv7AlT2@%NURq^c45?QZ^{RA=kXog6fX&bwGy(?a5q zPDj@uCBC-F6mA0@6D&N}**AkFDR?Z`;*E-ene;9u{klEr*m6u%gPedUA4$0>GZE=!|HU`KR&`6OB6mLgP@wfS{Jub9)7iB zgMPNhTI(*Gy`H!s0S+8#$}vTgO+SO;LxzpjacAPqQ6}W<>K@Y;u-l2wh$@&3!+Zeao|>&6>T@| zGD|5jf#oShW?rmjAOEP&!OM|co{uO2g8=s7_i4xc_MOmgFl^eKJjH(pkN zcQAwy+LYIsy4U4l*{0^=WIwD_v-s{iT#L67WDb#gWMJiR>2kt}-oN|D%Z&y3{~L*e7nzuHf!zm?Lx2w`PmpDcyO+%lF@bsQS-k z1F%1z^U8gZy0mb?_r;U)NTp|@sjJVGby4@TAVH0BS&_n77 zK>-F!WK*CF8YdSSUqU3w`d(ZYI-H9gO0-_NUPsM*D;YG^nmt%sqV22i>Z{G_WPjs! zrqY8J;{rk*m`KfUNc1$JI3NuJ{qrmIrsT^DP=4t&XWyEZ4gJU^O<%kO0N@7Km`dp~ z*h2VOT-x1&qSuEBdx|g$H~^}j@DmK19|h0F@2i_@Q%Q@1iyLTMu#V4m+qVrdnr4%X zLy<4&b#Wr=Io9-s9!9P}l1vKt_L?Na(8??Q3dF~1aFN;KvB)ON?tPE|Bs6!2Z|8X} z>z5L-7Tw1o=2e_r8b!3adlOJde|qBZvMe7$f0O(y{8S<%67RMV?Pw15v35Z&SQrqx zu?cqR&wB`m2i#@8q;X*&2O_xfH}>xwE-DGI@F7kh>G6{B(U0Um>7nJpYflD~S#-j{ zF|X93zG%3I5ubCuH+NcE>2(l6MKWuxE#OQE=xgrNtxc}qSqWYLywKQHkBxw&J5C|& zYW(5oWFf|UZ4oe!C9D>C{y@ad+Qvy8m+9w!@|BSMhB$M*;&i@|R;;}qC>gfg@?T@- z@JW7hP`Ei*E9=UuHK$Y502bn@{P8RV?vAqr|ryQKYf)sUqI${T>%MtwM<1Q_<%!+aQ)D7?L zqV!yRYcqU!wTb`*a3vV;-TB_-dWisJbuvUH>Ao$IeUs7~wdXKBwc2naPbFX=x#0>J z5yp|LINx%j{?a@2f$Sygv`N_x$=V|eRXQa^WAu?A`9~L!EejE*9s_)Tc-L3%A#{fV z1CmXF8z`Kt3fmo!sQDH;cTm4wD1Zq3_CC1DWYuI-PnKoQ8OqH+Kk^W`XtZ9n0ma?1 zLjwPb!@c1Ag|IE-&{@~bKtMk+)&f`M85->1O?*3W!#wzh6;%wieYB3u;bFcbKift4 z$LmDWCh+*KPmYjKDZYEgrzu?;N`K;SK&KO)27PXO4J)BmfWlqHM*+tWdsQ#q-|RXr z(W2l7=l;%X;urnc0eSyx!K@UKV!ImnHv%OCqd)0Qn`D(cUWrS zq*Jcon$~@ctwoHs*_04Aqb2{QJ0Al!6DpwYWYBbyUC$f9dT~(_28#UhS9sN06*6GI zzE<@it=$)v>8&rN#j@{3ottY(9Fc<2!$&9)6y8F`wa^U$g{G^G6+0$%$uAO5m%?;% zL_2Jx-i37?m?U$8?p4+U61lU%3Ip#Vo^yeAlQ@L(H2uuuGjzITHlLpam0ze{xNu00 z^t!Y#`1DKw#Z*)~6!~mt7+||}L%rJ`IRfnKx5B8&qGw=1>9H;$BRN*q0>(U+b7DO1 z*!X$XGt%S3X%ikG{eFvLEA1}(Wm;sYoT0l?IO>;K>V_7yIsg1BFXP&OvYZfc z9=z0uQ@YcW5;qT5D;mf9OjbZ;Yf-8z#6bFeNqZx^%G6+A+?o)d^%>gVK~#Kaio??Q ztOfwef>FoKV&n{%?*Cbgp^+7Vqxtw3{j zXx`Y~>7#5d<;d1yQS#@Isj<8(8I%Bx6+kM#DQV7pR3CG2UdEjbaU&ZcN2h8Yix-;S+B0Uln(Oy=-178}*`W17@5?z6^0dtnM5w!0A?*qF`6GY0S&%|6HU2Odd|L4{MK7XYbyF?vbh)BcMtEiH*k-Ww5yI_{znh+F2MoXEcEcRuU$4LY(dCm?#68a6 zue)_@v(Vki&kv6cg@iUKc_9|7EN>A;hVKWa-VfYwrP7>8_1XaSv#B3&$uC~ev`wR& z4toQQ!Hvb0-HK8F>WwsM!>;0EM!+UN&F$}X?>f{5gbMC zp~{Rn>9g)jLr7{>4%@-fen~8v%ImHlmDsC(i;O3!l{43!b(ppF!A5#)pQAq9;qK*z zR!fyA8?wRS1 zMeec<1QoC4#ms0GOApV;=IF(CK79(!$E~9pYeZK;$5noRY!KqLxxPZ$9MeUCEkR7F zEBid8OmdNgeqjt5yasZT@hdCmX%4Z&8JSC16NK+5JA`}=V}O7I2!+A;++|Ub1>t^+ zF%(uP3v~4sILkE>>$GE2cs$-K`ORwtA|}z(KwKcdpzs54DQ`5|*mMnHpaSPsds`5E#-W zb0_ksIzb=1RS9c4LX1`j61a7rtyI(-slX_3Ygl7lS3s!P(xqnPjw?2BasPMRx^r4d zzs85=?5&Sf7z>*SHNU-ffI}hbL zXtVFO*%B4Ar~qeMQ`N~wvv4>@P7=`Bm?If(8>rc%wd84pt?qQ?5o|>(>!vC6y3^za zjVW3Bhko8OxY)2Z7B%kx_EJ;vf*Ka;Q)@c~5Mf$NB^kOU0(Bc_Gw;Atm z5=htmV&%X4GYyvSwMH>!mbyY|e_s-Swm3j>;qsmDTu5aOS=VO~N(e#s{q@9mj!v%; zm)+Kg97^#uDZeHE?C<0G1gXN~9{nEye3ix!w{JBEU3HrHOHn?W9mt&Znw|}mF=21B z-(F7ZdJqn!C635_!P_W42`5Qg%lGYa{V}=VMrNj}eIECj7=BU7pwF63kYrCcG(PtP z=<-jIhC6BH=9`cLh?mM0$-;C3YkyrtjGy;G%sJN&SXJEGRBKnIINfo|Va4wjCz(dP zxQ{Xl)Jhhlt(&e5i;u+uM*y4UXrk|q{+|Y5m!RY8)U8{ax`y0xAsd#wX7yWhT5qO; z|G<=sq5+w1vBmApSOgx#l=G6U_qG|Di}C@^or#8=Lgy@0P$)?Hesvwpd~jI^=5++R zGjn^OvBejNw!GTdjew9uh^u4{HoS+UBoviGA$d(g;@RQ~ArQG(oAZvQS}zI`@{okU zLN~5TL4GjlHkf)h*RFwK54y*CogL`ml>ZT@+cF3A4cja(R1=HO`}CV6hi1so9Rp>AQ7|2fiM^ z`Y!`T+DGQ43V)Li&fAMC>2N_AVfsRRJrsdYkgh%yN3!F~tDn{FB9xgxmjR;01|rKf}mJW$dqqpnC2$&N@ti&*2Bh27iS!+#Qi??g(rq1)l!0-R9_mm4Ujo zQPqi%=fy*8ntx~Npvp7B<=a>v^wv_uZTP!U)4wQ>$l>Wd!G z{Sx{5?m`y>p+&(60dXi=F8wk;K3yl(Pa@55c+lRz4^rB2Z}c$vfKdaHkc;8FDS~LM zVL(~t0Blz88k7qP`qa2bZz&X$8t|!g69r8(>?JkftXwDfr*xxyNi4+_G@ga9ddW(9 zpC0`C(^nXA%TE!_%R&09Pk*lG7&*r06i`@C-p~;TcAq&P*YkdKS}Iip3TH`lGxthn z7f0RKj>Zt-)c?u~Fnn^ZHYB)x(mCQ`6W1p#2TzUNZw&sth}LVQ@YR`%Iv-%8V!j!K zCSAA9=f&2J+7ZeEK(qjl&@x#T{|kj>kTcrrsciLYpuK)pv9HzC+er6qJ-!n)`q!kW|KmieE?$liZ zI5QSea+(4zl{rr}J$}aul>8}oX`aalhD0`|;$hUQ&T`IJd4ML)#kUi%&-0wyXl(>C zc`q&Iv!cB_rIP}WaqLrAMNp}F|5AHig0iBch+@Em{vh)x_^!Pet)k>$*_PZVbRiHC zGG6$P1zJqTDYd2kvXo|4Uz>%cq`b=R2$dHU#{DfgAWmK;t=kj9=2GDAxY!>aSR2t@ ztCJed1&C{r&hK2q7);ePLZqNVMgLiB{v21@gLU9-Texq1iVl6&db3=-mh8y;;;BV7 z&ZHMhmd;&vlI0j2t%26>YEvwUcv6rQUk8$jWVfVd#*sEFHXI zYu&JeQD3SQP9w#2bd=@h^t|pK73M746&?Zi0INk_zKtPOsutjO-9h^ZeE#&0z?N4QI60!y< z+LfBfhzIN{cm->*$Zbo$C-+%q1^{!7>lg1PuN%jbpAFt1orK=|nQY|oAQmrEt zb^5T}Fp+j^EJMRE9E!iaX~=(#njzyB0q%!{(yax?Yo%muh^Xl)tkIu!j4)!bP**8C z!2!^PEQT4V|5(3SnI3%#>7V`8JI_f*dX=LF%T^QVL%cU%rpzjx5Nls)6>s)!zB@Ry zILt=Fa_+sxAF=b7jL6P`JF!Sd@3IRj2TP!EQ)V|_cQ7C@gV%l8!69Hap}y;C24kka zs4KwQW5^j#lEJS<8&#TldW*0pf$Z~ZIe4^ll|QvAS(KJ^Pn~fQH+DFFJhe^!$G_iP z4t)Kl{;LYz+9AU%=T2+}^9EGASf!c|bt|y4b7fjn62%!L5t$y?z^higLXL$04{ry` z6AC}EmY?)gpar{{Ah|>lT+?agbh7zD@>)!*;D*A!Lv8YU4NY z!RJLfkBMq_y97WCt4ru&Q&H|nS<5J7l2*}o`zdN@1vfRk9l9^?k;8xdj2gtT%Pl)U z$;a!H|4m9TDN>t`%d*>eQFFn(Mfe(g(5_u}4FC7>4l+~|XKlDP!ON!Fz=raJTE;CR zt?F8v?rb`Uow?Enjb}7V60^YLA6|F3(>Mg1U7WT*hJlbbcR6@W5GUU}Lkq<8n*b9H zFYJ$$0#h78wam6`s#&4f!2 z$XhuOV-_+on2KEu4}IWq9uq0@!VHa*G)ftuYvUvakMX}l0$x0(rjF1p`!8U7Z+ax_ z`@0w3KEA++w*Gi=2^YHmQ)LNYmdsXqY~|a?*Sq~zAG@^!gU^Yn*E%7Z|6`M*(2hJ< zn5^p$#HyuX=Z3aMLrlWMtM!@990ze(rP?6Of2Gqpm21Hmg}>tca7LYvBlrHE;J${r zCl5iThbOH&qRvVVdn^2zcAE7InKmQmZuPo`&{sYq$#vUU5f3x-Es*YJgnE5^q2LBh ziQbnBTkBT%X$fxlVN+%XNgxzBs5Hp}Ftl}{4|+Kr-uf_h0B_d>s@|#@x-X^>&Qs~> z8^e==3gko-tbfd=+WF`kRUWSS_NmRsH7QW(N>m!)J}t%h*3quS!Rx^4Oa90`UTD*sxj8ZD_Odl=+F+RliSF9rq*Ypd$_H-Qt%L zxN&x7H(|N7RZK+(MLX`j)eO$J9dgTj!%TawvM7P7jiC<}>X@^QCQZ$a4tvcCq(o=( z|EjM`GhcE^TLTos8!;i{C^N6bzLFzTegi-;E!_Ir*T7t2_2zmx_53Af;CJV~GYg*A zR_KatTF|-Odmf<1NG2&GhAN0Gyb*4Yq{9wCH8=?lssKjy{3su8GOgw*V3oT{M zq(zDsCRH9boSfzt5$!7fAWIY1XB-BTx=)%FHL zB#)2V@dP>V{cwNFr)oRw*uq(R4O{RrGisD($wmtXT88oiXRc|tyOrIT&kk^Ru%!c^ zhn>tVZ8{L!zv_MPSZLL_pBAxcBx-HrIAl_drXcDY(DSzB2NCG)+nW?v@(Nv`Yz7BGScdiYL!MBsyPDuKY^K+s#g(!W&%s{5%sj zt6q2{2k9#hI#v~lzy|>)AQw`IDaJnuPM5&0*hLlww9;Z?VL|7~>(N=Upzv>QxwQS_ z=0YP&tjY`XxME}bF^_hcKCx{hrQu_;%G1l_lwQB_R zb}fB3)~NNyO}yWu^NCXBLC+$+un${O20Zptcf?>4q&U8ilRU1NFL|wRKa9K1+40x{XVpWq8m~RT-4dbRm^}eciao&S<3cdZf`ew_O(e<2ZP{{~|*N`djU}3Wn zvH#-;eU@Y?q~Nw3T=Qhcl*}_I5qCl$U^{7W-RAb_c0VE&8u|T`}}3K032qQfG98 zO;OEg@SUf}5w^+HS9G&@=8viJ+6Zk2e3hHfO_F#k+`i;JYi(bash`I_#q(IJk?e%n z;01@;a(1Fi1Fsi8=h6ceW-4rNikIp_9woIBB#Z`&zhzL(;&M1qcdMSS%%yCBiwYod zGZO8uzhGYlYI371l2O=?mL0Ka&GS***AOt;Ng5YHhfWlFXa7 zH_vdrNv&}AO9v~Tsbw{D4PQ(G+EZc0*>4oRRd1<{9$N<=W>Ew)l zm1)P*ROQIMujLLJQM=keXdc%$EQmNopHBHUKMWk-d*N87pFY9P&lS&TBKoJaA2Y75TL=TqJ67Ff+ zW>uU-PpeSZU-kyhLWb2&|C!3S6>k1$GkO>bqV%}} zTH>Z7Vae;hNly-yk~U440qX^pw&$RT2$Soz#7pG z$PGx~jK63A%6|T@a2R`NtAa;6H7!OI?^O1Q&fs0$-4f>$BwNvDngg!g2#vJG1Q#VnSxfH9GCa7nA=OEKefP9p2gkQ0C%3*& z)a6D5B5<1;s*5GxBc6JyeHY|C0+*z1;qI{Ai7$v~dxp7-6`Hwgn)&c!LH_+G-J!=y z)?vicDX7>=r)WLq!!TLvE9rImHhm1PQeTjsH{xZ4KYYq^f*iRovW@~=MhNL0McW%eA|?KVYe~WIBM1(Vv-^*;NmJF09beQBfA*Fn6TF+O z!7|L)oRx`!!PD*rXs_J>4HYIc&@Yf3k=yuCxxlUnpzY^|(_&t(Tz9j=V+j+JTDxS8%9`ewO1V$1 z?SRxIV>#MQ8kmpSV48$h%#X*w8Rx3?>nG z2eH)}a5?z=D6xJ+fd274EZzoDcg}BxB?{Vo8X*Ikp6wzxi;MH9Rrs{pAuNS-Xt%cF zXb~kvS~KdaF-`-zdUM>GcXr$~t;`RA(68b!l9bKNP=@tU&CBQ(kxJ`ssErL1O*&?- zdwS%>JlrCa#o4KELMGcAV$TjuCmZw>P|5%PdYHE|=8-mYs4N!0U8~&NeFeuK=ahSQ ztQ>Ib!@YV7o&FHk0>_WlY3_lGdl+>wU8rJXg04vG^y+L;BQ{fz#&-32N~xe~{tB#X!aZWxuVU%ShLO+b^Bj8p zN?Bl5-D|ULABNeRHVh1oZyB+>n$kfBmjZ9;c@?Dz&|r(+!InBg>ur9BMu=#DcwBW^ zITsaBAhmgNZNI=D>nD@RXf9C!=8FSFt;b$V*^a=&& z`r**rLT>;mKjutG2<3Sj@J2#hQFL8_FTbupP&Ut%ln8_Rk+aBtco2p0{0mJsB*f*+ z>pC^rTjlcXwZU6ZTFYph1K^uq!cf-$@WTYqIXlp<3*L^Y#4=Wkl7Nx~?k_4ah7%Aa z8#Q{;AkoK`?x2BWa0*@Tzqm%!pB#XB7XU**yuZJ#teRX>ry5@9mqz5Zm;EG?eZMKb z2aS-%)d8I{xbCzi#-*O2sr#W}(5Gz!K4h=#aLL_*p^>fQ3{P3>%BH7lCn}FAK9^4qVVDH*jl$$m|zy!1xC1}yc*pQ(XZg>~p9Y$O5Ck&!}OS9aX&ZR~l zi`T5Q;ArgHb}0yXEMlF6Ob8-bLjvEAsNF>u106+dd~M&pMKSUuZVPYH$vd?WP)R}_ zh`EP%8NZI%(RZb^T8WQ{RZ?dren)29oCkrQv%pSAkEBLzfGXW!mss_#@XDwdJW8?< zv#=`7o*#<7O8Gc0RQ#bI(pD{`FEKhjG{E1l`kkP~^xHObAZy(gV-Y8Qg6op?pXX}) z>k%8_593l2VxH@#;q!&u=%!|dp`|-o9R1Fnf7>Kx2H2OKt-s}nE9$;$Bf)S;z)=Bc zBoV3Otg9u1%z0FHM0O&(fe3@wYgb>;tslv}=#2EiUVR$2h;Ep|6#DTSE;lUE+6;-y z)yc%XxzbQ(m6%mtTe>Y-I2r}+fR#E@e=qxcJ*Hn-EYO#2 zj@m~coi(v)oX?#IAx#W&1#AotCp7k_(G2b_-#5dhD|>u^0|C>vljbG^3qXJ^qvgcpys%1uy;jJTNiT!zEgao+k*V9p(r)S?K`Iev1;N_;b_G!WaR^F4+ykv>VAsm2w-a7A0iYK>emuc;ZO zWhO!j!K!YuCX$|$=bR#e>^REY z>89+n8Eqy69<-AFNmsBk61|nfnOOEYgEDzCYBBes6%Ug|K+Z4cf@&iT7eKv%oTzl@ zEqDm)V6hxY=gp{2)GVPXByQLbb0}7+t_6(W>rH^*1P{c(SIvo^&&O(9_U+jlfl30% zai^HXKyyly1{+5J7w^lGsv5_|apsuk6MFKL*20R#>giBtosE%1LC17iNxafEL zH?O{*h{-Zb7d?zw1Q?b-^Ag0E;!v++OM4!QNKZ3{wK(-8sgrJ(uWpSyy4Ws~G7-}6 z&9#X1eBReN{>kXqhC}_)Mr%8Bie7}#0Ysnb9&Xy?KBucm-+`5G5$!I=K7wXaX^IMz%4%Dl> znCdzQqMG#zR(cr!qfuvyp5yQinn25YldvQxr)q>hGdXj_liTx5>j++=Hb_sz^en}? zg)v{RVAKTd)TpsFTQVF;HZ6pudeX9Mj0M~Y^&F&5MIL?V24$?L!TuLVbzzD7>&b(q zoBDRei{NJ#XVw}66e*2r$cu$Rv$r zHwfTO;VeNnYCzagOcuKgGcwE7Pp-sg^zA>s*+eXgSvqLp`d;${tIK7>ATH4Ir?kr( zdLjxRmN{q-bwUYs5w#VXZ>7TY9F+!r3eL^I6+p81KmDN$?<#*6O0=_{waK4uy}a%z z$JP=$6i9Pk2mLu8w;;QLxENv*rvQzzun*OKCLB8Yk5D^k;yjlo`weRN&tZ^L2r{{v zqlvLX$}3}AJx|;`qb*!aFy{cAO>TD6zv@L>tE9CnWkUH#i+pb8T~LW~xqU!UhzO;ejbsY^}9=6yKL3EPOUK-Cn8cpKZnRwO$mA zoky1oR~8yyCa>45&_+=DA;1j$)uBtqfIk0Gp7TFY%AZ5N6I{4M`-fEJTNL)T^w`#` zrlm*Jpk+RH$`IkQwoChttaJ1(6=^jsQKoOeQ2uwl!RqWvofg)=4&4vGpqw5xK`uzP zeLMj5Q9(o8hawLJcH{OWJ=?6Jq-m0E0>`voP8^~(dhRDI8KyR7bS(NfCJjxV=I1`N zVV0n5Ka4c5`7Y86m{r_Js9_=;z;{`Bh`Ppvht||t@<(i#9&k(x`UdO!9w$oRAN*4f ze?O9zR4S0Z%Ewp=>H@rg@+Nkz2040N?fZ}=F<X2F_ zOaE1>iPSa6O|Nla*nWstDnV=KBG9Wf*G|cL*7w&G1QI9R2TS?2-{>IH3gmff_TN&L zk~FKwJD~%#S^upr_vXa;nYc9pC$EansIc#$)KXQfbK49pbP(>mkUm70{cUu9tK5gN zKtR69Y17}_c_4h8Nq6WD_qF1@olnVBU;y+P*(#9a^ zHcd9j@Tc~byKI_ldhh`;n=y?H<&{6uwSqZl#sjLA^aUWVhI*mdqBV>j-*`~Nj_LN-T03+#tVOyvnK+P38 z7zS%<&Og#2z7%5>S2+X%%W@hq)W5Y5z;-16wSPWlXSS4Uq1S=ySv`ui}+F9hphxR=JzP$C;th zP3iMZd%$_*-ShMv6=K)QvcDrhBCL$-OhblZ@Y3<8 zg{c>bn`&qQs2=agYgBtaS%$DJ*s$)S` zGi0c>N4m52cgZCy_sO@PcYNc{LkdvFJK0X1apa258#6 z;)y2A)$Tc%zLDd=A*Vzjsa4N z1Dym*R)z=-D9G;fZED6K5-fDOAUp*Y-zgqC)uk*OeYfdK%*V-%tyJ#V1(NG_l!Yeq zyz;`1=8AlA@e|3bKptm1$cbHcx5WyuZpw?L+H9){8XwX3{#L?q0+Hk(ga7TNiXlu? z$h)0*n#0P9!LvGP^sHTA^>?uB0k9td?O)HkL->uiYxxPW({Ai|H?91u_al-IXnWv0 z&AVXCnZad>m#bu6CKbxFK6ncb0vv0NNTXH4x|K`^f%*{^72L(9R9fcuT7|j{%^IQ< z1iKRuo*rE^Tj{H=QEDWG&qcPblE<}i=_O&gp-o|pBqggeM>tIL;53yEmfG8Xw! z9IhZ^0^*1;;JNniw=l^{^iX zf)Cggi7grv)6u|a12{4q3pqy#y5P0IKK_}d$`!@z?K;ZCnR|F|LrG3^s#dTn1fML* zA56EE(cd=HjGopUUdrIhUYMAEAY*8 zd~X*p0#=I8-?R%Y_CG;7f%+*Cj!ADR-+ZZ#RM5RUcqf#OaVsFT$Ud1S5uYer+XluG zvV|+9?*#~Sq)+@5N0r`X(L?4M`{ApWI*m8*x^j@|k*A4dEX1c7F&EsP^DzmaaIk#@ zHiD3#v|Zn|`d+~CHP95e+g*qya^@qRPXBJWI953d(Zo?rjqi~@SwXsciv^I9Wcd4w zf0PO7^sR9|0w#fK4=TzL3uCOHz!qi|H(l^W7O=vJzfO1G6p70}7^t3Ua?0?i1%8C% zS)p1tp>+l7I`wuCGU~*aB+8&Lpqeq{^wA=5L&M?~LOc*JR}l!}Jcp-RKqE=N22a0t zrY(R&hYeOqW5rdQyt8JuDY>_K?hfj7e;HB*miAG_Z6Bb(ZR?GT<{1VxbE&#G<)!(u z?nT#g@n`idvjpo&b!(f{dls{gmH4T%fa1@sLLIi*kPLQHCcNf4Eai4WqMLgj^9>p?RyAH+ie>Af_reJ!nwC)aiL6TP=>x7U79@9Ao7?*s z4od9Ik(JmBe&{-qdut6li{6Tfm6|7}?YVZ1>@swAnaOn*A4A3~+G8x2cTo$vhnFP| zF%z}SoV~{li`lpZLCkH%L)%)Okm;>4F>K!cs6!vs>Bo4e@IQDpD?u$6wJA?T@qF}( z8{&{h26&r`PdKsQ>vlb&nP(U>eB|a%6z2bel)vRD>;bQS$n@L)OkQqLO5ATJs!EX< z()!Oy(1_3UcED8eqKVRhG}(?RcI%<}V@uU^y71hpD|I^2a?Uw|yL~Lg1O9+tOz<;u za9NL~TewhTkf`@!p0s-R6iPT;he%}9Q@Mc}-jJiTFxa49OUWEoZL$U2y$_vLRhrF3 zs;SzxS3Qh`@MB?gKxom?B4Fuo9+BHpUBD6WW5wizyhE!z~_ zBEv*mY#bM7%uJ$S*GRSKPPM@CO&JtWRA5CWAu`OTCxFyK1{t|G?hC-@-rq>%XxphA zkqRcOIpEjJow``B;fu9Iz0YUS5d0RnE@Mo}hU?>#=boY>?Pi;>A*uW zvjWLcNY6~l)25hhY<5p8P~Th9JHpk5{j?T+MHjXV+ic&!$gMsH3*Ms6t@R~)&Z~!a ztt2u~x8=X*>zWY-#_}e0uAesplrgmAL{$^!u*V6mhEWwYi}CB7_jxUEFCji|ZglYr z(0&_C<0L8$g2ww4pC0ib106By=8Wb)N$gYr=XitF)-0Pza~zBCby0gMf(7aw zu{=VpxOJW8hQ(veQc??bDBi-tX~s^(mhG8>W+ya=={Gmg#h`&k*z7!E=t+TK>@}=v zO!bXZL}k!8N|)c4;Hh+Ec1KyLLNV;A;m<_muM(*}DmX6j%|VVBcKU^F*o6uKbGfFN zgwW6i`UVQpc6T9OiF?7dv1yZPDd!0NKDg^9fTF0GtPA(eqd$t)B63|NH(2EQSc~dV zow=|0W&TK#RED8u4N$U-Rx`=vAiV_LG5Jyf3Ah#tA;JA^@Ob@&L)I!#CHZn~jnf5Y z_|$Hh%RJVC&sv6-J)XnpSCi1pBTk__+10MEFtO<%;*AF^88nCsj)|M>u#$-iQdjCI zgLId3M(>VkORDFLsv!&=;=5kMHB8%bT0x&y5cIOunJ+-6em1Ox{G0bTVhAr<6%RmV z)Kp{(IQ-#ug~WltXD>$mIDpz4%_V(VRYtO<=L3va;1{qAI7HXSoKAebf^Dn_FtpBY zArB?aZ;7?DCT+&$pXg7{lJCXMMg6p+TA91JRZ0fbN1TdMye5Q>c~Fh4H<1m_(F1Uq z^xu9yxpAl6e+A_td&jYhdFhAXepry=ef8wHR_m7;sSytRb#9nxHb`XPUT}l9_IyT9 zJ=hLZBdfrM8*sFg;oww4xfZX97=}%1MB)FP_+>nIoLrn`%~@a?Qsfq7sbtcl2ou!q zR>Wb%2S-VnKYk??hnQmSfu|kN(KH&)%E5dfEy3%2hDw-Tm`LXuU zw)119o3r|)yrThFPKYn_C0Vk^LqQQV`^PbRWoNCq{k6aJJRNm@tt=^DB zdHiv(Uf7#$a8z96`kRKLy#lHn2^nPcjzuuYFiB zL%^DJt&Ll9$hH~dlI*ap=6p83iZeqyumb~TF_lVFw*wJK8t2L4uMq!o%Xk;XNQ0?^|dYO_qIavS&r z{gY{U1Q$V8wIZLC*|25692;qIN8m>+faMY*x4m$<81ad@Y|27xssv&uiH7=8caN4` z5P%>$_tC(0GURklh-2KPJl>t0NB5K>E2}knxl(G9o`wk5TCV+bcltro%KNd*P0ff1R9rW~J{-PYz z^}np-mEECor(>pFW-!f^M{0l@|1SbG)KD$20q&5eLr_q`MDeddpI-$zIQJ?ILkMbl zR*ZXChBfh;&1L2{3To-JcH5|v`4ws>37G!0p|#MgIo`X!FU%vvYhzQHnQO7))(+gW zI^IZ0&rvL6UJr(G zA<|sVkURBp5E19KesiwK3vHUXD>qk5j&-ftzH2>m^ezi0y}9PW|FnP0gFa1thbxBp zr!N!2!dtsNHm$4z9`aRR2b|21QDuD95W02rIU@3Mu+I`G-YF#M84J5Ao&MF4Bj z9Dfw8=*Rr^9X)(5+w@lK==nUoh(+x1vxhdT*i>bzgH!t#4#b-32_bp1O6EX$6LFb6 zvw`zpdT#}qjP+{1@qHRTPP5o((!QvD2&j1cDDG_273Mp#TO&E)Gi{I5qIcXtoF_1= zfoF~yq4N&GFTH$dNxg{z(dC4n)N;f`4PM(j%}k<>F!=VRb`9ttpuX8{2S-aw3ki5M zn2>VH@H&%KR?Fk4h2aQb#V@V$n}Yg+Ynjpv=C+RZPF6N0j38z+?DCUlSZ-1skcizx zR`0&c8A+AD82W;EHV3igpxl|N&=cY{UvM|K7#Z*iZiCI>PcWPA3DzI-PJzl*Hpv)g z?f~eZX*n|jy<3oms8Ilr*9ZLDC`CLoycarO@zBt_oL^R(7S;JcW0@>Dgw{8f1#vJu zAZx!puL}n5B=f)Mf-zu34o6*4>t1>*f<#pAcGTNj;6C)poOC1m1$z218B)gkKymrR ztowN@%xJ;m*OBvI&jOBWMI#cM98r4icae)r5$EkMR9UD)^Ec3RFxd-R!K`JGHNXCe zSFB3<t|eVK_vZ0Ig_%VR)$`+#qLM^|sy@F@BDXh( zrN}35iqAn%lAh+sKoz|!yj0_%CX>xDy}lr~u-eGgYMAzS7JaOB@3Nt1k^kJsYK?3g z6VaFd!-wTiGY!27*CXF|o~W`_%Ld=^5xdE^R(Y%9VrLz*fHySeyXlu79c%x5A|{)K zesHIhu7!8S10cB7b?kkXi2i%~u|DhC4xnE-xq(%SyKB#&5K~eBZGwDh$s9bIvEEmg z8U6L!DjjrH)Itbcm>J9Ztd)V{w8L36B2BYiUjS35R&IRqQsQAu93Gq zR+?Odg*Q|K$H;*TcxX&IMY0QpWtG(N>ab9vfHHhbn2-L_y22JSa7w$boAjDS3(bth znG)ep-_x||Z{0mlfg)FC{P55HXAoq$ZEzuS10vMp6AMJ#Pf;Mi2OiE^5>9cgus~S) z_3I^mDh~;`1y^r-7jbK^zJI1n2WRF*HT1c}Z6$4+lS@f_=Jb7U5r@7Vc|ID8*r5N4 zKx~z@iveY6nI+K9;5cQ_WCI%g0*QpsaH4nV3kpF2mU;lo03-Z6KDx)k-?%1r&Rj!Y znBF4SZ>-?bSU#btR2*NJd8xRBizA?}(gZss%r~^AvN`G*)FBqFV{YEZ?8Ci6Q*iy2 zt7wnCrDlXFp?2S;4jo?>GhRsDOvbCYr$)~<2K_lPmP#AyASM+7owQ9*!qjitLP={B zf1is1=dWhQ#UTQ6mKdmb0yp`+Nh-G7z$^7kU+fFEw#lNkZ9UTok$&|w{ip^OY6Nd9 ztSgl8#7lW_!{X#&e*wfkIByK1pGP43;IMs~hx`jvU~J8MIFdO^-d28fmq!~od*7pC zN^y^R;{~L0{Yi+w0F}O1UcpR4wzpL+Ri$H&>^pk}a%IZ=retCS>pA8JU$>hwyU^j{ zF(gGX8=;`(@JV`o%1P~NzaXex9FAciTHG<< zO+e6dYn=P{W3r=BO{N2f8chg^&Cb!soeoh1ZJj*)XQ0JPcyh}a4?`Nq0G$#xOM6}f z2s6UPkT#WIQLHK?K6=MU#D`k=I$CWqRK}M_l~~M+Uop;}x+WF=%JJ^wGxlIE6PHGR zPfr8MZ|OS`@(F75cx{_G4W!m}NNwwuXVv#zklNV4m={x)%TzxUL&mqaM&vu+&|&XB zCQtAcOudg!JZS!=q!V$M7sp8iE90+(1E*j@*yWCF;`j0&tEjvbcner;)Ec2W*|Yvk z%H1}t?*w}ZUh(*fH4sYFI7%n(Ria#C0BIEB`uu_zrcv7Twch|3mUY*{WnH)2jrZ?A ziKI-N_$U+@55ec$DMOkPuJfItw>F%Uc%ut9xL~ks&m-ckCP7pAPHgUGj%HA zS3)G!wm-|%%TbZ%Q|(uSnEYG@Xa|$Dsj(Q3hO>o3^aVF@*kVhNMEw{dZm(GZLu(pU zZXuCzwV-i$=xR~f&GD?FCap=y8;)ox3|3#;hciPgs&elt;>eUu4L*+}gs_hy{cbPs z(%+nD9qcZ}U1egIrID(!P0ECCJPMR~=9+?Bia7R&bDfurtWSpuXm^m;Wj>fuvLL`(!P3?h%Y}>T4!C)TwNnju(`*VgxF6dKpj_ znH^N{Kk0@~Gp};ezkNzL2s<4b(Uy=7;3tqpi^&-oLk_>Ny%F8sXzHW%tJvMbP4p!B zqP2$UG)S3Bo}En7`Ki6iJ~hq9X}h#Lh(w}C=5NLEjiqX{fdpbd2R2qav&C1V|fdbvUwMt0qFG22A!mc7baj5L~L-`A5F^ zVWpwI);wy7FIGQmG(eQ8JxeFyh>{Ij^qO_2l9b6dmIjbZ( z_avvL%gllVI9p(siSQULh$9HnW5@>;AN&>Z8cT4IHLQv}<|p7IV+!FSUs0dwVd9Uo zf(mo#ppUWmmKQS#!KfFC^K{Vl-%d{a4%Zh+TBQ%EMBhlu4iNP?Q&^jTK~ysN7RiYj zu1&F6%I=0B$61>Pa;;zA-1pK2YCECs){7AcWiVOLS@N71q%4#e()uS(%N4`4P?7)` z$WaW`Kuvuq64U2+fDNF-`(Fa?I?(|smowHDhTAEEF6@1@rXih{9hB@nRxyzi*y%d- zBmo@m&?B2hy1>Ers?v!uqFucB?=5GaK9E%LU6=9L)0Gddpg+q8sr1&VSJ zwC6k|O6vUia^XE12$=ZaDjLY}{FEwib7-0V3Tf@NWeng`vd7un+f9A^<;NSV$N4I|xdKqV=eny^tjVT(k7Gv9#I+ zB);C_r4>QF-wPQ%hD`;iby-wqvyq=p+oK0pqbTTlfM<^?53As8HnARCkLf$m|2!X0 zbY61f6WcOQp1+^f2{;N&pQhG$`>3aj@-Y$q^AH{tk?b|3V~cNu1;VnU6ypIn$l5nV zva@U^#B|JiUr&>UaDYFuq4lx^@?N79Zy-;Wy9nxs(Pc1Vruu1xQFOG;f7LODfyB`2C!yFQkBJLGJ#B3y6H;8fJd4zP3$%59$Ay0 zz@KJ`MTp3)#)tr`+joP@)_?va9|EeZ$s!pBCNLg5%z}&=#I7vHhTiXV{TX zJdkT93F5$7zr^(t9V`;~zdWH+z*rIpN(FUjbUo#<)(^@A7l6f=MgPt6jk0eK3#|%b zR2$FV3wHJ#*x{@@pdtWtpYBWRRdVxQPEMk?a`&0ZFZd?xo!x`_E=PK%KKz>v%R3~D zuOG_~I4Mh)AX+XU_NZ^f|8p&eW*>Iqm!Elq{5+e0q@}?vLT2r8WBoR!e0HQ=yr;Op z3)LGO^mIhZSfGgSS@DgU^_gE^kO15^@*APOCx~SH*=t3`@b3CBceO|LyDs`RU$~OsjGFe{GF*+KKaPrFE-$$H~_t{}cV>V!Tu)))6kQ2-{gFS2qh0ViYv z-;U{bn+jz3&U}lJmWmZ#D?IBe_{M1-_Onn`nJ|H;9PS94q|V|EULNz&eLrIQc2U%z zb0ioW(=b5^vK{{IHN0ig>Ty?DAmuGw4?B+rPhD6|Tql}i=D+`bOn!b{oGf!6EpkK> zDCC3k&&zJ!6sg`0;q9Vc%K|k|uy^f@wnxIiRr_R|6h3}G7yR)0;6LOFlfXko?A~MT zI*Z9mG6#H@FA0~?veFy{b3-5%5kBH00!}{n#k=Vbq!x?*L&@@v|6_+#+gX1Ac#7P6 zi)6xcC5smiT!Ld2HmMTV}T$-cXGft9^mNBzD_d@<>=|?)Taek${O6|jUjjwY`U77(8 zjzEjR?CqYV>Vca4z}*3KZ>k{?zj_|=-}vlP(dzAKyuYE4(+EpcTvi(;a&#H|?uQ|R z_@JQ14Q;BdJZMaHp@BO8Tq~W$Ec!}dtZ~0aJFp_F$M{>%&bFA zu*HPvDKn1Mb3R6zx`$c%1y)l`p$?x7jN_EMnTBlD!?*rb^^w)JPxFod&X?th$FaEE zX&)QT_8lq%531$!Lx*vBm|1T1Rd2hkcHcRdJbm!Rzlo>>iV4jpFlkk7otcxU%7u&x znsTtq9g(~*^ta~pJC|!uDa6AGJ3HA`>9QUU;*@b`vqe%gl6BGp#NMH&<_3+@4fbo< z3{6jUYGrqvJoHbGUhUexeF)du!_!dT@)a*#RH&MuPrfWvF8g6d$#)-91(=7l#vmJN z9acBL4Y>Jog<_3EWPvT7>_jle;SEW$B}DByE~aaC zo7?pDZb-;_v*XzXjfExtNsg_*%1kSM6wFjW!$d415fS{Wi1JxwD}%9*kMY;>2DMh;0?6_7lQ~8mrcSt!rfd+20Ai+obUVLs z_8`{VHdsKGTVe&=f}O5`&&;p$lhe$t#v#P>J7c8ueh<4>h(o|AS{XKq`Q2|NnKM%V z(I7BZ-;A2uY<&Nydt-w`6}s_OQaP>SOSB}`q`Lt6qVQjulQqA>8^`m@!Mgv-qZvD4+7RscGZ}z}Gjb#|pAFiO27^ zDmSw$IsFD&wk?oI;!fQ7`uL3Rj${YzupwYr#3@05a-`lPM~a@B@yvI&}_uD&&}F&sQBBN3$s__}gj0fP%* zdw4MLEVe^CwsO_;6%)C+4C88OFUstj!QBBKHp+TRQ98uH(=yt(Wa-3W0wzs6)p8Nq z{6u9)o_`ApE73+wbi3*~dDyPQJDTX>dke(Kb@Ga27;S}O$c|M)>yR`rDN>CRo2f~p zI~r(l$6c()Xh-xb@^3*Hrqvp4eJagBImVm&+P~{N?B#Q(^Q?Uq zz%C`p2w&=vU$wh^i2XDSMA~2H@-Q=}d97GDkCDS3;osLnS3TE)8YXInyp{hQB^D*htA|A#zH9M1px?f{ zAQTw~GIPfk^zQ;pBPnv(R^O3%Ok2MDzj`zNYP@|}r;ORrx?S{$t_?p~5-!K3VcwA~ zXHqwClwYw0F>?d<+MmeJ*PvoIiBFf?DAV+-Kh`i>QgvP?xJD?6lAvHG>8pQD>#&?@ z;v~V?khyBH598>wZoy2p{GZ^JG?4^DgFKf!8B_)oM}E0J&GnR3$MFFm!MiX=%lmTL zz`NBtz}CTl^%JjIFfk;Nj+w#gZw)B&IEBFP{g)IH{)4 z7G-6xjZ>I}07{6**81x9l%_iVP=+jkB=2(Q`+>xmcK;=JVLs4T>{``~Z|tzvLtCML zkP6sLH3X!i-tb})h}~ew@HshFB9VKEsP*}_Gol69g-)e~Kur7i)mq*yhVukBtfD+V z!@55RaD$lT(WcgMx{#=YJuy5bbNdVQlPL!F?pgQjL=i8*vvNg-^ zNv~%n#vyAZsPZClGm7jj{+F+`OjJ115j5jSOmOdSszUhx+Ta*1WTY+`56mFH@>K~N z1%dF8XuT=I3U}Degrr{xR!FB^bB<;6%;XM~Xl<*0`!tnJ>AL1 zDA$SRxDM5-p-wo1{%#uTr~_fzEdRUMUvA*Jr!Gw2LP_EAzs>%*_J|)UOnat;BlidH zY4kG>=&$KD)b8pGr6)-;_~(^TWpi|wM8VOxcw_gcp(FTqYs}#8LL2o`ofs(uP*jgq zBZa8|xPBr<;8<{Je*`gzzn$&dp$6lpz|2(;5oP^?3^T^qA-?b}rsmxA`Na*`l9~pL zPWy3H!s;FMf{2qy-YpjcXaTweDBf391K3JC?mpi;{s+Cx>Y?6$-215fqyuRM*a;!E zbp3vuD~3tFa7~pjSlA*HtY&l(J?DZJC6|-*eJ+Z0D@c3316-+sRZW_)k|YD?bom&# z1GGkZ^^nCh*B8uLH%%2Eo`r#&1#8ZWJ+*;4t6_;?B#JDQ0(hgj)_i_bnKBZug>+;q zfqo#jH%PFb}6Ze`oJ+nv0n8>831=Z=mr$0g=UF|#Yi?un z5!E;UoK^a@j^e#xIc`#)HCHjpA)*<IvqFx9#D0G8m}OTOgWFDs8g9SE0iV_3)W*~jo0ke*p(?& zbUH9lER6hN6O{ZX5cJFOPp4ChwWR2cviJ){vpPP5<`Uj#rmEM!Im~`!lb1Y}F&e&P zo(ZRyWM98C>HY5n{MyqpTw5UfNj}z;ofHq%S}cv_!{PjM`RKe znDS0;{${=f^(cQO7dQ^jqvfyuPRr=kR2%@__094T8k*>8L1V~E2po?@#=6rM{`xOp z6EDD;oxJi_M^zp@q;?ub1o_Z=t)~0~b_4{c9yilSLtBWH3kuW?F1@BdK%6<)?rg2= z=KSAv-#D2H;>nK@xjC^5UoiEMcFH9bZJ#T0PS7CeJd(Sst6JY1I*B9%-pqmd8-Y2Y z*FduKzii01BAj;-DnC$n^5$QtXm4V?GaNwH&$Ph>u7cS1t@NSQkt?gyrnCxdh%L=- zt^=I_cOfat{ZnWh5(ct$-~JzRs2p@#VbsA%7$O!zW_vXxJCiJhZf=ecg~TQ%0Y8hE z<(lZgdz-oneMd>nDsMEe<+i;O+8SpPTwQVsdKLo)D%Ot;H5^*kWXI$2$EUf@K>?Kv zQ_z6I4(ss9deDhYN&1q;1i@YD4_~jm7RdSZz0go~>t!M>L7AS>3BGh2kKvprm_q_O zG3Bc?GFOMS|MyK}@Q+C{U8;s|5Lok?vI?i}jHSa?mx*<_4?357wjG}&HPOb^cx93n z3p0wObpE*=ZK7Zt9GV-8P4k_?Jg31Jcyh0n^J7J=YdK$HCzG4UR8on!`z5$)bZATl zXc*U00H%AYCH|V#o+dEQwpzaR@({6^#rPh|{ZZ~>FM{>bH1_|XJ-ZC&7f=%RiO%q- zTiUMbgq%SBef0Y33`%o9%%k+B$$9FIU3^cnZC$xW@-V?Wl?vq{Jr#??1;QA~wWz+l zu>Z^x?X~qTR{R?%51D0mlb}e5Jt6B1w0Fn`K?f^dOW?AzeWj2-;?ApQTM`U2z4-mk zkaf#C3flMJp6L zr1y;>-<71ht~c{A)??#^u#7V9%s!sKC+FD`7j+oLmhhdD0t?HuEDz|QBeUUF8@0%j z9-E4L*(-O5W6oom>f(`m&NK!o;B#JSSQzpofRC+xs4Kq%f$g`SN=TVLyo_Eg5a*n!?t*ehIa;A zAIBtjhz->z?YF&s{U!EjSuzWXXzR!o@tlXU=|c7LqaHElXA^B(-WkQ#Wi*AdixbjE zHDhgn3;V|tp>xt`O$6n!1XK|?bP5CLB^k3Mg0}JlKKq8lOpC}|nFcBBb zGwL;T1A~|}Rv+gOyPpyFGw#BdV$e18^VV~PjK}CWF4G*JWwQMqOVxX3$H~Xn5KsV< zkemYgC*F7DUKW*mw-TuSx=tf}{x>O``-$+0J8Acd6x3?Ka%(`R5hg}?T~T;GjEU^E zf3>CD3xc>LU7cl$!y0+NWxlVA+%eLXzGVh)8f%%TgaJnU1MU^(&aBiYdV8TQnS^^n zl}{K>j?5_fkANyh(64-Fl(22(sG)p>11s^_g%$*NhI7^YrrIx)3 zn!vQ2_icZ-SQ-rF#EeT>H(?WGlS6~SK3|(@^?NQx$D6m#RCVb({}i`T>rA*~Tg=)Y zdeVOUGe4VHZA3B8k1m&jjW6)XpQ+2ysQq{tP10-IXza7aHG%sLVLgtTKInr%RN94v~qWp z_XNs!5s*!5biN*2=?BVa7kK_D&C8p-tI4ep5C8y^nkWIUga$Rsk;2TgO02t1tzT8$ zK2&WX&y0b>L`ImWiY65>Z}tP1ZHNNjVD@oqUl)HN5?nIgg1e>kjdu~ZgSyT9Eau=! zU5Nx{C7prsdxQaobs}%x0)z z`LBQ7yeC1BPv5VH&+ zZZd)i1*h4=>0)L+Smv1&3Q}>v`Y*hDDoAYzMZ0_7A2|t(6_m93xHOcO!L{%m{DwvA zhj{m1^AB0+*_)4{<^;e-l>@VoeA?|CFcdH~#Cy|^Ao_fos8n}bzgJqTxHSA?$&ufD z0K}>HKkNa$1BFd*A@9ReaLP2?1v$7S1d?H_Tr{qJJK_^oW=Q07-z@~ceqeB(@3xWa zadEG+2@s8E|4^{MHShM;vs!Qk1As4*3w)3jF_#vl(ta3*f#ByaR#QV=C!kw%d7b~7 zEn9UBFW4b{pBoY|9j#T1u>n7E!0D)viNla5?Jxs^tHZs9^5cD5(|Xujnsxe>H4+^b zyN2(9{Q@r$h?fhGn0{w$F2OgU6p3ZWK-j~Vu-O5QZ>7yG?T*GZz$%eg;`=A4f_XkV zmvd~QNAnHuj({O;rygN^Jd^r>d^}0@xDDgdz+=mR$*8#6M4hX`58)k{U zroYd|V*D>ZpB+S^WIne|C)ok8xq&Xy_l`sUrGJ)sCz_;L-D{It~lbGK3)Gx zcv!~0H{3aPt;apXS53u4J5qLD!9@xjnp!Z`$>+Mu5G>Q0D-SH3bEApl;@76$0I#0i z?nqvZ(bek4W-B3B{3ol@hNx9(RTKWEMLU%DJpUNG>)}ePHzwbE{W6R`b8IEdyo-pU+keJx?mNZ4;5hUi}qaN2izRTZfb z+*1u6B@9+KfUVr9(@M37wmX?9%%Jdg3GF*>Ngz(MBCcgf zfx1BfCS+2FoHTz4y-Kz!y!U40XN4SO>#Cx8C*o@+lX?L0z5{wrh_sR8%cpC&Sz2BXk^XHh>i?nm7s6t_89_j zuAkAf`MaAOLI3q94ECeh^L(f*LAMP33b=~-m6_t`Pl%{b+Q*{&&SRxgwHUu}F)wnM zDNaE>S5eW;!yEtfAx;0e_i%hqPcYvc|;wFM}g{5rSGwkIq({P9HV1k;%U zK9Ltj8@0FYW;(l>ur+lFiu4-o$y zp0MeT6^gI(!l?S@@_68ITTX9qyb@R*9kyx?-b`K_3II2VCJ>adoBQjSo&UAE@n*^$ z-ktT7VkVDAB*ZYgD-j*=By?&hKduj|-i}&1lq1#(9ef!3qRbvn9iI4>^?5V9_dO5> zmY2lXWKp+p;5mD8xvyak`%wCn2gCH?15cT@v$ikEb{pqf%Ym2eewQo~P@Ho#- z05NL?LN=^XQ#Xroig-&w^QVP3P>*yk>ahs<`;{g2*mIl%`t9gB1&rBqeIy8y|F&t% zHlzi>fOiMtoIE`j!7W=nF9SC#ki`<>O?3RdyW}Zh%g(>?VRR1XodnAcwm?D92f@kg zQU>Y_SbZTwFdIX%kh^}AGkg)q8-E-~U3T28O25olg(c!9 z8LLZ)9(JpH==-^l{oyX+Wq)@sZ@XT1K$(YWDPKFVn=WIV%HcgUuCPIkf=T3bGS&vk z+)zV@mWedk8Z$|WbyzUA_1i<)zd~Xh2?RY2vgQC8HBVzG=H0gGQdmz-V%*es~Kn)tnjpl8SpBQtxVwTSxj zYtlF6wDao}6`fR9YAc(Gg9&tE1d774FceFAPpDscP5~5=N5LFJhSRc@5!oPbiqSGZ z9VlkY?4=MUn?jgG+KdjXdet*&++gxns}CU}js@dCusd1xv)qTl!Ix&DLAFkx8iU0F zlbDbkznZxs@}21C)2?|1A+sT(hdYwsEhzp;oanh~a`mB;bfAxy8l!TK3;EqLN(VwH(TaAPyc&(lA=dG5JXrTAc zsi3+-HO1T*eb8AxD8E+I&$LTTV&CjmJ8Ku3w&Yx+MoC#C#Wp4)>}> zZj0+?niY9|qQHhpuQv|p31l(o7T&HWG+(uZ4C|;}Eb?=;9n)SGdVLGQc~wBHNkm($ zLh9E&J7WWF6w7;V>56(+9e`o5iumsXp-S~2S?>Dfs@}#^`lFB(*>@+*00j#XCwUKAy0E zU+-D0+QIbzl^F7{3<>+EH*4=H+d)C?t8r6$8p*uVlDb#tptj|JRLI&z@)^$Wy^p%3 z1S_aPHPJ1zOuo*LYn_XU^u^mjLeXy8rJei1Ya=y}r0YD8!8YrFwfsO@2a%f-r$Bbk`-m8!J_AD5D&CjQm&IC?Ogm2JPD8{Z6?9sCr3r!>q2d|7Xty#OPB$oN{WKhjMEhY2C*x zzDT+X3JsnI?KIyGZO1rk^%1*p(WTgU%jQep>oMg5b)>r7#so(V-mG0)`etL|*>s;N zG`gDTJkj=`+EPTSj{{o&xFZ>pwzgjr_c^tOM5%!YhJ#_upS-kNA6Y8st_)2vo*5!Q zU$_^a@H)O|3_{-S;`W4__3es`fSi8Nr`FpcBhY7oR47BU&b?E5B7s2jI5?d5REf;M zo(E9GHLvCxp(!l;4RB4kudto=+QP$pYkp+a{f|@C02Rl#VZx;Ox$lh?!`? z@*dt<0XHb4#8{PK>mSrsBI4j}fzH%C!%eVW zUYY7p95{{3+c3tNaCzokwQmpPD9o&37#Mc>el63)wZlJE-^rvWk}2+=3Ya|*e0+U8 z->PSy#75;O7LQv2Po~LItaxcoqgXs6bZ+#<0XiX%eR8-(nI{d$0dX}05APnq7u{I; z!Cz@nDx#@ja^-aclf|9g@9SO&;?RKetJ^sQ;BU4RUrq@w>}oX(OFJ9!Vq9-@u)8TtBg(=6?3~Z`l2I4 zo~UDs-nyvi@MYbeR+?h!TUibR3to%z?&3&v%bnBSgI;z?NgVZE-P2cer z9qG)3ePLX@!k58Ks68K#o@BH1K0N$COj;1)0cL%=&?+bJd)Re}JE^t#%gAEjpj#!D zcsxdm=Dh}p=*;J8j}0E{_D~@pA=WJ20{5}QkFsnS!r!}nFNG2;>51|P6(-B#!7j?& zUYhiR?*1Dj7bZ}s?L0#e{GBKxzb7cn+hFB3hnMglQqCL72QF# zpfgDH6ZengSUY!0qQw;+xEt@WB8gB&lGcW)2px9r24^&XS%g?frry$!_}JmVjXk`e9FXkCM_k68;}Nh@s5l zMQIi|@aeMVV6_G~!YC(?p5(Y=I9~c5d+b$WIkCi(Ij6zUugL)}+;D75GXg7>@jTIl zdOgZ6K-S5sC6tM7f;YEDWB41Ed!};@EM%;c(enBTefUs@Zp{sfBW6PWe=(qGyP%E+ zw#0%qk-Q$AiRz7AYw26x!2Rt1#=i6Vn26ERwk{n6bWEvm-@8ag%AK8sOiHE%jp zEZg4fu22ss>YwKxFg!~&& za>dmff=?q}<+!NC^V78EaxGfdcJQ5?DF+Nq%aY&dO3t&x|@!IH2ChL5@er zQj)<@1U!OB7z>1A2j-ca>A~zcdVQ(Dydq@~r1YLtz zzjan3rb_Z0Gn(E_YUp5{IlGHEt^K!w$Gt(9b~is5GR1bOdf)ZrwXniOmyW}di^7`C z#(Dj5vf!vmF>~G*xR98(=2Wh6RUM{PElVExj|g6S1B%ocdLP&y88>%W`%p1{42OSR z#6<3veS%yvvoc8UhZ+0+_JLCh(_h?Er#=KwJ$2_K(BS6j6(ql^_jo@ZqDNM-x&J#~ z_EaYv2GpFiw_pAVE}HtsPCmf;i{g6Amq+F>f$dxojNZ86^4^D`Dv>9zZcJ{Gf^YIN3+n z`YPz!Q0NS`qI2~?uVlG)jf2P{5#tooLhB#|u z03=U^T~2JB$6MCRn2sib#KDFA$f9qYVLSzHM+UG;0B8$hYx}@C9W?@t17t;NR&`ot zRgMvcnf`F-p_>=v$r?(3y=x+OlG*HWwo3D(WBp2<=&}S98!q5h5F67FW#-7x6c4W1 zR!#;x?!4)DTK>dsVd#^%@itcsJy6(S4&|4IxmiuLjv(~f6am*5q!Po=lNn@NxLT&c zJ|DM^xf$Iw;LhL?9Y{NYl?iv05+cvSm+)Hbaj2+w^%RC z-MATn7c<9{N)|6{lP!O$)CS^4&F)OSaMoo5)MVeJ2q4Uu6J*EdaEl9}--t8t2^eKiAu95p;qq1=FYh zpW8H9P)NScdY0wP=!xRvc2~-GFD7Mp)^YIG!loOf3OMc1_7tKAW<{b2EW=N{8a*#a zl3YYl8Z|s2*+1xqZO9Zzj{g_};wzPf4U{Y#D_w<$R>2#WL}wKeF-e$$m_V6wy-0OD z+XbVL{cfYGb6*X=ds;M?)i`hRS^DFm3*v@NvIK=e7Ao2sAmGEHM#R+}d*3j!Y)S`& z(j|_bs}vVCI>@>i!An4%1OQ@dtjfj|8ExtS4su?F*J5_9;L|$Re#Sopee2Cx)>@;S|iBxp@q}IH4et;+?wSNyQ zx5qbD;^T5XVaC4zd7P$KK6F@;&kk{f%*BrAzhqfrDU~k{1&&U8>XJ|T6uUfD_)1hB zVavW+2FgvjmVAwK@nqh^Lluo^<6eh*fU&aCVtQXCFPxiCp;Sj=fp~ zCmC#(rPc>|B99HX1q!Gj82BL<-ihwnL6g5)eMMAb4%y-a7^f=LmlN3Vu>g2x z%|wVl&($SjEhNb095gAITLzCj;`zKl>M<1iBk_Q2NhV^clXn*&1oEdD(o?biMhd0a zEy`zjmmZ=t)wX0sQh%zHEUU2&{6{FMzXm|VBzb}TuU1J8k`X0fK{Li&mzeCFgeIpa zi28*e<1kWgG)r7S44MGSSxT}nlhxrDUEfn={)x3zE zZ3F@{l(9pQ8G8a|sG`PNj?s*7I%|+6C=WPmbk}>ET<4mBX+3zbj7%wh0qda~rySt+ z?xDW@t{UI^{a#*vG%hb5B$FnT>2TgCZaH>M__A4HjG_3y+0+tC88s<*Sp1FDVB#x^ zY-1%eq{vM;0)8>USg+G#3$rA(TlP8ZwGE$>oq1=Lorx!QjYjQoy_6OP4+`4Wg8&Wp zWa{sAj^s8hF@uVsgEh;|t7#fnc;IwYaLC-im7rQIty6>jNAd~UP`r^zjCC-fVEUn$ zBFL1?%66mmzCdcjV2BJ@KO>0FNl8C(5SI6t1=5$A4S$K2q6c5QxqxcN1X@c#la+~|oVmdItr*J=8Lk;6M2$=mv-30^tK-fvO z(Dbqa;-Sf0nU>q#IXmu`j=S&}<`#mU^xGa=z0UlePl9990a#t7 zqbZC`sc=VFNqzQSmgPJC=qd{owzVO$)Lv$ebf*iDovNU2INToX3iXQ+W^bg z&}UR1zRtXN@RJ=h#_~`oUbe5*l};mKiIK3fE@4g@c&#zc<>V+8p)u7d7I97!VOyma z>=N3g+Vu9eWF6j!XRwOv*PQ}1#bLRtQn_{ld$GY@76>rMkF;IJ6`OeTA;xbLd!<^h@N$ zOXToi(a$$D>;(9!TyUca7r#nP$A^Yprlh;0#3`?eX$+Tjp5*t|(TmhynEClGP(3a@ zFMhEb|Eovq4ZnT%pJ`SM#PkWCZhZIUIQbv%d~oteru~Q0UMqGTh&5~+)9Dv@d%%)o z)ye-|cV`OvN2WWlzH3SxCKUyH%Ix=VCO$grvDc(awGOMF9z8TcEL$I3Ur~neK7+yKR~$Kn9#ByDdLH(XCJq8Q z=O}c*y97*2!|Z~$FDXid|2MgxqQ(FolXOgH8hjZrx8A8a_6Gr(7lHTu2RRKs*C~pu z8R@+g!g^Kl+n%Tk=4Q@ih7i4ZN7_CB z$o3czX19R&e@;gp^JEz??|?WI0`lg+kJ)`=e;-ESF~xe=)mXcNs}1`tRN`x^s5$Tb zzO7MQK3FHSLm>2(wCrj*TpxRRt3Hq`Cu;Q^S<-`2$%y|TTfiNnJ)`KRX4S|RkTQ^c z`5E7k%=Yl+336RhU`91t<=8+yrca6>`?eyMT1- z3t#mO)lqAhb$Ns$sBI%kjf@aA>q%n5md*E&Y3JFI_=5Am@l$q@XD z7I3GA>JbK$+Io{_oJUz_TUYkbKlZ?)+y6PVLU(My*Bb+Rf{exQlIBJ7`=qO*GV%O_ zeZ*B9YGOIKF?1Hxu*1D|0WL9lMN7OGEsEP&PG{OXH97Y2#qr^#!}HW!D|*ZmDfrNc zq*&p+j2D67}Ps}fC@QnHCe9F+?fiY#HwJ$6$&FP=c#>aojsD5 z_5H_`DUgw_W}Hka5IWB#-2M%Lt+GMyogh_#lzw8!ya)i`8iz(gJ=^%$lt6)I_f%F% zhmkBK!3CB6F2lkPpzV$H@0xrj4}7Rx^g+ ztF^OKrp+fLc2Y2=5ufyq-?RZ~Imga_zEDU|cu(O}fG0R^7>oN_iu&lW79QEvri;+! zHRQP#au%!cpdDjtUfRZs2!CDdQ6nmJ{^0TOK_^WBw;9*Sk?%MI0BWndD_$Gj(IMPN z#sFeGOKW+D-Wqa=(2p+y``VN8^GE&$K~E_I#oE+U3S{yI>tULz9#f%C5rm|cae1Tv zV-jqfG|cEupBBlXAgL?LH9Fwi=(gBBDG9K8*rm&>1KiUv&D*Sfrj#2}~lw@DHYZD}s>^ z?5`|w$}ARw{v=m_=@SK08bC$I^thnk<&5gFVMdmf5}#WX*PYIDy#Z_VhA+<}sp9sS z7&O#Oyag7Bg|O?8rTa{{LP!p2uRD?2162+)^QtyDpYyOXu$Fb{_cJ&Fq3ON*? z>*dHq(Nt2mbqLTscm>R%wT&>7zV7zSa&Nz9(Y6Oz;9!hS5F$q&mg(-Tpk&r`oX98+ z8{e4L>0E->tX;~lG@~FEjeOZ(y@9DoXM8F*KM)`LC=Q2+$RjSGV`wCJXE8nHOv>Yz zZ!`s6;&MiYX`fBCwy`2CN!hWT`UzYWKzyM+Q=J|C@i|#~((p^=OP(MpbC4fQddkvmB2jR_Q9EyDdtjeRdpGy zwhWKK1%ieo4LE(zejSa4%&2Urq;~`WIwHt_wa$q`gPV>z)<^*ikJbVr z9|R83I0$FSaey{yz;duf>;^T}P)58b1bl6VfKe0K4bK?^ZLnTe59*oVg zwv$(fC#mm*0-7z(Ge7JW{7X-BqLIZ?NMfVLMlh=;G%9^pz<=*8uuHu;_h`N0pg_<% z#Tr6<#T2_BWck*_`odLoXaV6?OBb|)5fn;Gu0A@pEt_WYSW*LjWtY?8M*KIkX8k}?HpO5Z^JoTcf!#a?vo zC=veTUu1FUoD~U(P8$46u1q;Df8X1QQwTUMwa{F8#LJC7wH?oGt1x%NyAHz7^*6HD z(_!j!7A3b-pI21>|9@%$<77{p7lV*t`zp_14iYZiGD2Bu?qE9g0%P&kLVF0ZYzypBMcD^g z%h7+iNNDx>o*B4=?c0DEG}n098))An; zs8?3$+P`A1bDAG13nVAf_?Y0V2l}_2Yva;z;2xX2qJi4prUj?0*&lvAtk=v5Rb);U z8`>5ssQ$Zz_Clu-;vE+k{y?A@#1oS%qBrP7I;~jAKehcXZW98PeuWh`nnh9Z)xJl8 znr$ehvQTp|(Pe-n2hfashK}u_+xCGBo78?m!R2dycF#=KvQ4(0=8{s;*qja-;cqf& z36b2STcx1*~0>v zeCiuf_dtED_~lAH;ZHY&rvdD|d%bl?vS=JH>gzhdr1x&*nhyaL)>>CeD;IyIa&xK( z=O8K3_W*-Ec>0Bs45{lpzt`PL&~&(s#Aet%mcWpY6Wb)vebLu3X2?CPqOAa_(DW;S z$HTmLshggFhbRRJHZE3sj6aq9ZmVe-Ane92zNaA52-kFA_9q=n*iR#>Sx$)_wr+;w zaK9YCcwn)HsV%cgZfvBB8TZVDm(YumG7#_W^|-xE;1D5rXNbou(0X_YX-|AFfb|f) zZrqO3y7>0^I4RsooLe?~jI^P*C3W79L9=H=jUM)Oj!#*yPr&L{A}208W#0QgPXYyf zOW#J;dg;w&N}2BisQc5Qdvugquy~UDj*CiX8YdWGJ&UIx1#W9VhK%xxF2nXhA(!^C zGLHeG@fVe7c5mc8F>3PymCCHj+vuZSAN(m>^A4~%VM@0-K>k%#@%|V#%TveLBM`Ld ziH8dkf+d=T)HNuC=q3oOhmh*kX%_Yb&#S={S?Inmxd8divLu?Sg_a1fp!5?8{w?j0 zPy&`j7;m*d!NB*fq0j$C9isv4r3YH3+py@@2Xn7G26H3WYehXWUkVtk1?JU|L6{(1-$aCi z4kBu=em*+M<+^l5wCDTks>l;-qrbEB!2Y$)CYJWx-%V;ln31{rbu)RIpq^)pFw=e( z3lwGdyqh{(2X)4J<*lviHQ&p$U;u}zF>1Z}qM*q2lSr0<7lKkmMIXBJbnbShT*KFN zKn<}_6}Nftn&XR)M#;~~5$JoHZz+uZ!w7{XpW@H8222Fw{!%C7J2D1uHgj%w+-dG+ zN%)%c=>*>RZ}NSupL}LlWu1C*7)U=fVBle_Mv2xM47VzVEjtAo!d`wE#EJ#1p)V&nn2+Qz z81YAffCtDb(SOgW-+P-V*~2o3apo=rD=K-Pa;INfL06JFBfQ#N#X)WG&P^M7RdJlM zMtTSIQ?de=v$IoF0juyU4AkOZL4|Slou(Fn{$4@+dpwaM2H8PPUAgmI-jx)=CTZZS z1kl!Vh=bt^;^Ujsu8B3@Ot8LeAE+;&qnGv^jC4tD$HBp8{P`nyb#PH@Ri6ARid%J2 zINxZ@PO?|_s|>y(MJu#?GrX~&!r(wWfsxsIKpsNvk4{<%(NEo<$*JvUVB7ZD-hp-r zj==uoh$&nm0EET@K{%dfA|<)68BqDCwbv!!GD)!i>&@3UCE!8-97QZbXX|&f^v8lv zMBh5o7iu~h!`%*Y^759VAcp{yM^>+Q#wFWB-{L>ATj4k`Igd)PfqYG6SQ_l~qhdnr zn*jRMIX!Y}W`C}>ngn~au!uJ@wDTrNW{H*tO^t@MGSkBGrb3kQsGIbC6O^)e_OuPf z;_>$xIjq#C4}@3Nhd4eh8Ev`9TaGH`fu#1Lr3w!XWn4(w=73APgZmAlcNb5yD-78j zEE1+!CcfRcx<9;@#2PiLc<+A?-|iFD!6rS5L#?_dkG#~joIj>slglmuH1O^IRv>li zx(G!SLv4%=$$OryKGmY;mP0FAiUY4b($XI*=pB{a03|MwdMyOPzr<&w}eksJL$dl-LMqa<6$kj%2aEry zd2N-XyPxD=|H?j8uV`De)IJyiV!Ey9Imri~-p~Y zSc3@l8nUIx1mpT+UBt2hL<6;id9lI#^_9Vad8_F9?E78us6qdN)C(fU z@KsCZEQpIJHpSE}$9rsQUps<@1K2HFGzn|n(bvI5!t~klB9MxF#;Q5(>PR;e~vEV=I^a2gP%zyjjn!>V39V{SHWTt(hrEF*w%cYtWW`MPS<9$4TX=JKWXrbEcfh6T5jPQ~CCP#vpjM+GyhgE#P5^8MA>azj@hT zUYvbqtw8=^sSGHgq8v0cb5E#FemkXk>Fd<}1vaK#ZQ-QLqt$!{Wpp4?7uChX=npmh zJgh}#Vk2mesKBtj*v|g7NHKYOoK61B61PAJT79uxh*N8!sp)sA>tA7+uRtwg%wwgI zAi{n_`s*jqTw}wh;&j@VJ3bt%b^Jw>V`KiQN?oZA13nSCtbP>E=%pEUnZvw9E%&x9 z18LhqJRiJGry_&si4p_+Q%hOe7KpIIQa-9g$Gh1i4%WapZWSA|CH*IUU@vtM)V&~N z&@w}3;{6fpE^q>ji%H9Uoy2>)DB1a(Gn}KyT-rck)tKmMnJqPph3v8!eu!2!N}-CA zCq|Ocr30(Uk}YC>#Phm|GDH{4ojdzn3$8$^rF$^PMD)|I+98KmM0ewoSh_(5F6x!r4>4&XLGnz7fpFj(HTK-fT!~d%>p6DaU}7Y zIF=?qB9anfB`c#_pndjWoH#yEe{H>h`m#%GJ9!lmLCZ8wGF|4YLMtPoo{0-I+JE2Z zptW-o8i&%^*XZ>SXPtw?v68A!wZz;yYqxvufA~+N&J&o8>qPzoV!Kcb*PbQK+Y;W4 zL5F5Zw^P5SgSvbd3u1lBxX-SJ#e<)mJfeqYU$JRF*t1~w!~lRga7y8qA)y6Z)p~gB z=g(tLryy;=xxn?JNw_H;Nsp7#Vnx~WL-yvb5r*a~C$2-khRP-v&t!I4nHh>cq>M#N zWr*Hs3xCKl{!AwK3>_VlFgl#5qs1W0g8j!V=fgO$Bn(qxfW5avhAy0N2=uh)W!aV> z3F9G3U>Q-p(b$+kuCvGs?Sm3kxEPM%=HnoDnn5tu^u;_COC*N3*y84e+2w>Z95=2ez&9iJ6D$r(2Yv ze-HnlTW%*EhCeD%E&<=rogO0jW^V^!1mO8?K4yXA%IU;pmyA+0Vg1nDO!Tg!GXr*W zowVpF5Et*B!EjE%wW%-G4_%PMwxSdGfjtqm#*0sl5dCj6_717%nAr%hDuwCEaR-Kzr{JtYcuzgv^8yIOV+;F0Z%W0YxiJn{u%E3i_8N zaKVSfjCz^8kg!pT(rq0SJZ){a3hPOlZWoFb-DeI4!%;f?&BsfiPb+N|(kM`Y2g`x$ zIuc1m$Vme)@2iN6=vS7y} zU9o~@p`u@-6DB{LS>@}d9v9ga4+0)F33_&0xG`kR!}%%_y8bmiFs?r9BeTo39Y=Yp zE$Rg^P@%qL0{S)1I0cRt9*5q$Ry60YxA3Ad>Tz|vTLEnt^40?I07m*ZO3W26=KYW7 z(V|@58_`87A^;+MOK(u0WrBG-uovzAHY=%|kfC=4h`tY^q1rXbI6mVgK#1q;N_?`N zlvyZ$ESgO+9^hoVJ}AULiW9m-mA0L|@O4g~qhU#Of4a&*Qyw3@O^P`U*GpEJp}jSF zm5naTG%BiBO|yeXKL|?f&2kw0O7Bze7Ok-mMG*NJFVu&DG!PDwb~7`9BbBn4>~Ovk zS3SX>D9d6`vIx<9e1KlZ&_9xyM)?H^=YjJBXavY!30sqoM=SROB%?PV5YKZnFzH_ zh}M+q^T9M$Pl5hFM2yOCNRJNqehI_3gGEP*aA*-k@{3Fbrx_s6dD!07%(R6c!+lA_ zClDBd9tq$=5ms!QL&TzKR!gt6*!s9{=-04px?CxbTz-RZ>q_g8SQ`vJhRWjtER+|e zeHCY4lFU~#W~7`ke~Qwu1YF>$`#z;`<_RPX?; z1*AWfI21nFln<&lZB!gFj3X|aDl*0!V2~mV#r`&=c-g;^9hDKbYZ&CD6*PY?L@R)KwXXgU?upsSw;+O-n}S)UfsZq&S-Oc|m3u~?5^Y!UWzP5x>!u9g_w}4PBHAhH zQHMoq*5-KeRSc!A)}GUD`u_!k#d5o?4No9u6kOue7QVtg1}AhB9Vvp{z5-ejx(?wM zbc5A~k2R(bdfbB*A|n zvl!tweqqU0Xk3FtkP)7jn(6w=FagHG;NfR-Et`Oah}SmyVJp#a9TZ(Qy}LV+KUA_5 zUq5_MsTK|M)lq7ZT1%WyU54tavV>FNbk1NOzwcqZyt*2O-RZ|Ms7Na=+X9UvK9vW)&lR35_%p55m6K?o0!Dge6-s6RAq+1 zb3Yy8H(yJL`+?o51~I!S#3;$vjJ=muR$QRxK>T7gxFAWS+|R{p_JskE3Gz84UQDqR z5C5A*0GKH*@)EYb=){l`7yeTK{FPUHG(|V7=MxRL=96L-C8VxUZ+Kg7K334>TE8XP zN_X3Ro8lu0c!`nJqjx^L-n9Zd*BTOgajz-1oC7WYlE0@(0`~hAf|_DR-Iztq=bp=d7phN7W8qlC^ma9Y?EXgm)xv9*z?- z9gcYu6?CvK6ZQeB4HvB~e=+w*Bw98BK#K+4hry{0{-m4+H9~hMgLN|lJq?%Pr7RC- zDGexQ`wRL|!0US##nOuu2gJfSRJ=@>ff{v>qQ3RLn!!ExNo*Aq;`KS{6mF;&UEt0n z@`APU`X8`VU5($gi7;6>nss4s`sFsxb02XEzN;4x;K`B*`-Vb??e6{H6gV=FOU;9f zUymD+I}t&;N?GXm!p)xYQS;K%B9b9halvM!Wu*!ZaafEyf@zeXU!=&(VVAuD7MiZ- zeGZN`@uPfE6@WaL@soP-v6&m62YcIGuJ!lKy&t#8dj(oo760c|FUcAmloO{fbo@$|4 z*9TE#by!qKCzSJ3`k9Fm+>4o^1n2_H<$F3R1_+UJh5j?>X^mmv`!r)IcT{UUbKxN! zJ<5ZbnjW0}-I8L=Jsq|-pvqOUftG5s=GSnAzC8lb(I<+If|1Cn)nrpn;(cT#hxk&p zJ!vDf_;CDmK-2rB+xq=5|D^DrQ_L>dSmHd*pl0E#;wP4gi{~|V^Q3D^6U(pJvM@}OwX8+=(s!2KIX@{3h# zd!ixGw3u_b58;pYD#_9cmDCYPg`UGHCW;UWz<^7>w!QO2{vKie%T{OHkN_?CEnDFX zegTLD+HL!#LDBq=2#bnQ1;_;1Pl0+XQlIh-Bqv zwHY{WwaF_91J+6cLS~-|(c-{TDI??~doUi##(47j6-xl%YGc=1QxaNEThKZvB z>XO!$YZf8j?2`+fBTTa9rE$N9bY9)xdV{P!E=Utgk+{Kv`FIFBRxvGkE7lJ0ilauI zrYi?A%g|<-G}WX-&{(c(XA%jS;agpQ3ktOm3vD%&Jrlb5-p?rie+ABdgHTxW1c@JK z&OoWX&Q8*`ByG{NJ&kALko9m(uIHrgD#;JrZC}q)aRarW^WK#G7Q35XF`YTf7dDlT zm`B&3Mo;sMyvMe+pjTI)K|V953Wh^-Qht`nR=GTf>wPc#M2?2R%R1qu9+>}KJtCtP zuW9o=VmCSGN8;hRegNTM$RrbDZs>mJ3{2f5s|4@*^VLjGB9<2xkDx`VxtV!x(HiZ^ zT&-cL0ED@4+%j)r$kN1r5mXjL=zVVnJ!wy^`j6Y5ZJ1ZubXHsz@X~Ya-Gl=XXPLi9 z%OM%_>?X@jdkdSC>Dov5j4H?c)q8)->^!OiPs+i_=L$W?-s!NS*Xk9eNOk`}| zD|^J6-q+EdUKTK$JW?jWS4vW`x;6mV63w~j;+3pX03Wpv){Ma_AO2>F~pSdy8vvuzgy^W zJTl0;z^*~fGE;Tl{h2)RM|*b8lrQVqQ#TfCfO$K$As--plRprtF1Ox=y&rQBXQ!f> zYDn160dljA(gg+D#$D$n=#UYQv)OYSB@Xifd34VXqz#^I$M`k~2MB^1(H-~Q_DVSo z+c@*ml>nS&d9E_Bc|j!yp;c|Qc+9_dOsr(@wvOT@{F^e=p^jv%A0@X(%VH+?cjD=rq=a)&$H6``~yWyyaK0GLvcI$wJ4AK z{5{r_;uux=43$g6DuZ|J#ax#={VQOI8o@i4uaT_&5zO+XqXAijK6JqRf^A7>lXF9y zw0q`e`whQz1Y;JJb&eWR?x^W6hwZsV&u6Ks9Cf45;&0en{2Nx-? zhlyXz&*N;o;)X<&CG|0w9u!Ra!*r@0nADvPMcjK!i7o< z2+ebA>AULEaJmQcG{#!z;kKUVaUH4j9;+n7_kU+`C{6vh#(J)PE8a3qj-kg z7f3~T)IbSirLW-Yy%7Hmv{?4vjVY2H`~@y)g3LNmlh&ZNOq7-;Ro&} zCD5HRBh6vY^9w1opr4~y)~lT6d|WHS4Ni=9w+X>wOA}W^z^3T5trW zAjTUw(>X!?SwB0W{0ZV0P()j4mE||yH*bGa?H|+ zWKu2Y(#fU$ilDxcP*od;Q3cyFIc@Ya`opS2La)L)4H#Jzhc|>{F_lNZAqH1R$r&Z_ zY&VErT{;pTBk)QrKEtWZ%T{kC$8Bhb_gbkW`qp*NorY@U14&m| z_xyXH%EqOqZFW%O2|PXEi4EqP(AC|()wUr!%AAH1(GYsLN%@Px$`y%)y%iwZZ?@FS z(S+8Vb6j^ecaKsX&Jn4{?q|ANEE@tI`gOeRrD8!n%lY})$W=A47D;TGn{-sCAL@T2 z%4s;oO>)n-oeC|LeK83&OyA1^zc zFW?tJwX3MpHH$o~H(=2@!48rM1;n_twKe6hdxcp)k9J5vJFC8n=H?bZl%Lnnf0U6o zJOAOV0(~YBhpU7u3}s2|u3eY!On1kcZ0IqdAQR^*@RZ7rM=$k}t=>sHh7VbF6)b!D zqdcI)k9|>R-g&_ZE^??xrOp+!6cL9Bu~v}K29e@XCdF!EW_ZzTlmd0rLmQm_X220z zECG~fi@t|g_nrFs1zNbYzD2*ACA(a)m^u|&z}=;8r$ReC&WhHYF(+`mBK}_VoF;0w z8#JnFba}t@bj4#XTG8e!@NGII_p-{XjOfB)G@=^9d}X}sN9c{&c49Ei;KK`N{_VoD z{!VJ3gQt)8_^z@ngM>UQ1yc1Ai$8oFzpp=V<9Be4`@`Xeuen-A40yp9bll(vy<0rd z+Uy27%ckJ9v7Q<|?~b=D6pw*js@(Sps;fMK`6qqgGh0G^3rdgqOhj5vJhC(=+)~JF6T|CA!-LK(awE_@zwS^ZPfm+U)=dnpW}cl;!)gMBkLwKzD96 zm-#$q(c%VgL3fTQKBnozXmYgQK$&CjYvHm-YoQsvimAZ-O>%j(E{&r=f$@Id!s16+ z@7+LEU8XkvTVFlbZ1Zd1p2s&}3>dBB+jwVE5BTuwv}OBr)HRV+Uu3(WK+7YQll0Ut zuO$7rsd5v<0t+$Eed@v4P88{QRoFn-suu<^NK2xWlh5k8)+iVW+<0w=r$eH?^kYSX z|0=O0R+ai_d-U}+l5TKq2U&g)F=*JMiyv3g-3{=*fG(kO&{9%AO`sB_Bd|^UmyoJM z{1>=Is5yZL2&Wg(kB5Rl;C(E|A(%*#S`=F%9r+#FPikF7o50XeQ+Fbt;yb+ln#>7I zlR-C~sgDVF=|GVx8}<=Qb3c{of|WOFspQL~3W|vHkrsV(ZDw9#e1&d32k02d{&5Je;d;S9Sbr;mTYX*~m;|C;UAuF0Nvl7lpW7m${Ali=O?9}QMF(_7b8 zIfTnZ#?Ku}O!bqzd5V>oYw|PG3Dq83o~X-@{`u>G(u4%O$(D@GTwo8AA-O^05|rya zN!k}xL#@pp`pFu$nQW20U|IdoEXbTGAcT>3l&XaDkfW~>YMq?pjw~<^py@v%E=Y7lO0c0M6LX7O&Cyj)K=`Iy2(WuEcuJQypm<%d_!m$ss}8j zN}z;;UCyn&Q^GkqfGu@|TAbITIT|r(tJe})a?12q5kQ3nKzK5o7Z0SCz1XP6wqfO< zHZMlYXZr6n8!icDCV55iy98npH-8DQyWZO^x%Sl{1>gA~y z|MKvxp9PZSYtjGE4{?c45bvq(Wqiw^5W7$)tL&AerO%I|XelI+hU9wS|P{pvV|&P`z`@b6!?c zs34#YPPS54+gQuRN{V-%2F716gJtDrG^L=57IO6Ab#8Ou-ynqLpJ<&qWLRW420-%rDSUs#;qblcB zCr4Yw|C@GVILl8y$8%eeu&+aVFjilLr{&tdIG&y)acBYl@uFrQ-K~mu29;nr>R2c- z-I~d$cttNiv+A`0-SgTpSV4BJDFhVFWA@K<2?1-;O3cSEXyXjJm{I&Yjb0lHAsW`a z&qfltsrRP#VBN0ggjP!^f$iCF#6IFD(ByH@{E5vxycaGI+_u!RDp)Lz7pe@aaM zzpET88+e2NH!@4<=R{0}xjSrn_`Jq%G{H!@ZfKHXgVe{?jet3Vwv;yzl^6y3w4Rnk zBnZf;@iOxI0^ld{t5(E}$eB(*8-cx4QIOc&5WFd@_&pNaQNoDskv)~dei{$JW;A0E z;26B6{FmjPn=>xiw9+U)GC7P-(u=!-Ke8zq;giH39j5)F=p}12P(}y^2M=uF<%v>z zN9@UiHy><*1M*#MHFTzD`$O1zq`k5KPn zLbT;aN|SUwMd!y9{P#2K4#U38Rb$an==R6{1;rv?%AS6ZVvqsKG04BAjd++IDj=?^ zct_d>fm9Wh-X79i!@jSfvc>E?YEKkFWp&HQodHrbYVI{tyr(33%30Iyax-uha?Id05Qx}C~Wx53Y9$}9NV&}v^ z32!Sc{iD|cT$%j4$r+Hpt$6;&hOrX6NY2s2v>jeVVSJ>?`YwY17)V{ZxiN3gE>2tL z_j*R@g;ZWRCVtZ_vT4{o>IGNi&fPNME!0etZjtMGdoK4|?@XHf)khv6jy2IzNMYs+ zptqYz<}x67GX?Q%7zA~*)!vqzcyXcuxSG+|B~z-Aj$vS&?0diY5s@H720ui>Ds}Ua z)Y6<7!;ruLA2OKZ$h}}T=_g>2f=7s`x1^As;K%`5Qld+u66s}688I!oUxCBow3xtZ z48{cnbS;tyrf@j1O<-jFVgByf8}Q`O4KMUxBC7j+QugGa_u~Rlt-FK>Meb&^`W^Y= zgN9$?YuFk!o#2L-^PUUb;HL4%db$5jAUNX1HvDSUmU0fC+@)ynEb@f9asj8{*ujYE zv=2C1idxQygkzVqEw7B`?c$+*(=u|Uwsmj4`2gohVOOoszMuV#@(tD0zU#kLPj%be z^EIF)Jx~5*3=4oqgVt03$*{>gZRDPXW?* z@ggA4OCklHm>->1=zv&MHr^8EKu6E=!hPRz-H%MKSC5!l%QiAJxYx`aHF8G7 zaYoB4d=YgK0n}4NCgSas!+ouA&vAd1n=Zyo!lr3EE$k$$RIFHgw6S{|lcV~E)4CeK zFw?PefaA&sS&9Wvgj^2Pj^wp@ze57M>SrMgiWEG<$5BLfsTJA2m~iST74QU_pP>v@ zoy!aD>X)%^!`%2mk#?@OBrYnK1dg6Y&+JnZxss%nv|9`Z=8mjFbwpuJJpcHv#)IuJ ze)f=_NW8#&(z_0#mfCxs8iDPz^7{wIu=NbJR5SP#Q(pQ<H8bN_G}~ey&Hqu#cJ#yARZa^1&J)wWK32O3gf9XXvP){{Y&6kg}eYKC*xRyPcuU zD1xc&tTXk;`IC|GdXIl>)>h)8&{_+xCPIuyWsp2rhxW?Xofqg}fkyuA0bVdL`P8rr ze-3oTZ0$nRe}*38Fw0$DnOTki4A%`8ETPDolf^)G#I!0E#1}?`}rsY{}HRx{MF~?+hGfX7cw)#Ev?DKIg)5Vv8rj` zyeT;Z%CxCZ<95t&J~>qxtcAZ`pmnS+NUP#qKCR?~7p-NTS_?zgrcCN+>N=n9Dt%Wv+!JmMjeI45iIIFA>=>jnK9Nma;{$$ zb@zKTJ(3(if@`px`(Bj}lnh9y;y&|cvc#~qq`*)&7}%UEDSR4(Ry$y?r7GBe)054U z8(Gk}MG->H&0qsa0q4*?@MjSU12ibHExy3}ZA)dn{zc~YW`i>oznphD->^F3uPivY?ExOoP$Sc+*>zc?k^lm^CkLk^v4_)pecN za5F~#xg708d*(wrb9v)Ri@CQ>*>Mmn_0$GyBK_z0fvPFiz+-YI2%+d&{v4v{*ntTq zFV53}>8litlFSSK(%G%Zio;SYwh2&?=cEr+se&f5qAg%HUa(^_<%7n$Iuyj?1!WL& zSlso{CL#TmQST4&M8c*AI8TJvx#gYYK`MSq9Rw}H$3a}jd4||NY<{U7d#64)U(Pyt z5lV_Y90=O(#kMK@u2lr78T;Wff7ogU*_)`V8H`E=4B?Qk_-72;UH%j!o%2I7#OF5K zhH%Im1W3TZZYV9yCE2O0Y(bhPR@>fxeXH))6UhMH%zN?O0H?7z@Wj`iw+|u*X(@DP z6FhCsza5K}ebT=uAnc1F?5STEE)@(fWVZ$R+bl{Vc?SUrKn+(kW!&1d?|cvK1@NT> z1$5fxiteKHdJpDI8M)@>4PRfF9b_;wsV|q|pFR3KV|oKotK!N`3`IR^^oU)U7^Ab@(UO+)i3!hy17g7o<`$Ps&)ASOmMiw)M;}QmQgxqE3jlu)^*^I#d8!qt;;?WDC0eqD|Wg zSd?j`cT5wB|3^pis2iPyI(`oIqWw*=`-T3wt+ib2Zl}eC;R)Lc2#2G0E0sR7w5Kz@adZ~n^1(C=&S?2v*+PX_ zRbw@vBj7$mtgqouclH-1lRbIsxyu+Xcgc6z<{waFbofo>#8B7za>YsNQ#SHw_ z1#1_)s6zEoJ?j6rQ7MEYlbnIZ`3A#DD=hCTfgu}_=YXLsoNx79@~~nIF_L`%OlPma z8bO{Dz;`#M2)8XSP#S+iZDfQ@T|(NBgF$dzw1f0%!MiNnE?j6Lea+hxqv=F6Sc^0Y zsK3&u=Y*+@3^V!s=vD@*9HLZm$za-7C#h)#c>Lao}Fl*>@z*>GK zNi86YBncywD~wwFQzIgOWK;*B;VC=Bw^DM(=qY>|17`-oxqvS%KXG|#__D)h_$GAW z7mGuwVreD)-M5T1Q|ERQ5>OWbMF1!Mb8Wsffa016JUl}iX+@ap?TXRoK^RPMC~5o% z*e&l7U^diN>(>wsjQ|C!QQjz6YyC_LWf0m8#~#Jncd-8klR}_tpZ#xMY-ob^I^nf~ z?DSq{rzQ*MD(wI^xz)UCt2q@~55lv8}`jTO6lJf7hA3RMUUO!nWXHieD{ z%Z&VO7+&f@clz*>?u+0lU4A(gRJjT`!TG{qPe$q_ZM%+I@x5-TNocRe~F6Ui;6EY>fb9(X^hCb(KI z`p&Lxg+k$|Eg1nx9&(U&ce#(UEFVJN@P(OSwRJ20AaM54WaKY=J8g)LK{~7wcmy6r zNBk9>1A+~`fxt;Hmcfz#)UwExpt`-9DNRIsb;?KRb@oVFfvIF5UJ!mmyFg%YQz}KG zL_k;SG&!$P7GnAkg6+h|i=@Nk@CHPyLCIwnUo9S+Sg`M7=k$RdcHnB)ATIv-xP$^O zhC7kZ-S%yDcOVq{gLJ4{!J4HUGOjNKiLE~wW9y3&m_*r{k7UEDgmxBHnj1P3q(~uK zgDeAg)3V8hDa_aY|HqQo<#p(2wS}=qe!U+TW9ng6&={vaa>NQ_-&+Rq6+cPIplYb{d^DhddydQs$)~zqfk;(}Sm|(z-<>ob3gZ5c?IP7|12rLh_iKV~%S%qNg04zU1=MV1J(_Eg($UB+vet zvdMHoDrjkX-~L$Wn+p0G@!43o`rT-+`F?=Po=^fNdj!gf@%XI13Azz)6uNPFohdym-75a+m<6yK& zLkJzGkrD3(r$|#gjKU(`f*%>2q{gB>Py< zaQ9GJC|A`VAew9tVE(4P_}xBht4W81{DwmjmHq=y^S(D+*oC(%J}S73#Ry&zFxHEh zm6iG`GxW3JM8&bPEVT3lI@(psq319$t@SpAXgN(fv(n)NH`6&2Mc2nD zqSMgV9J8E;HeV#KGaBv)DshT2rSp|;iR{h1J(EhMm`Oi++M(VgdOxS5Oty+^KS?RJ6Pv;CK`0e=J@*Gg zp45gIN7kR&%D%<8BREn4dABFwKm&9TtCV_g4y`sy?ww`m6`Hp_=oH447e?$4ryO^Y znkggKB-FCq`TNSc)zHFoBUCbQo@d{EhV!z-vQ36-_i31%tQY9s&ikoKlp9uqaegedyqdS4vqWTh+)< zeW*iI*%ugdqN^5A<=7vAthm>$kOJbMcrA zNiz9rWXJG$G8e4KmV>^PMjtS&qQ>@$FbR;W7?SlI+j$(si+5vkGL~}6#>kW!BoKx? z%Vm8%F&*vAV(6?GjW9QA)2f~4rUvX=3VPG+J`f8~sK*X~4g!SU7PZUzjRUh`E6=7n zM5lC_C6_OP(k3i;x)-EgJFjTE5X5`(1E~l@xN4^aR6$(Ix$tu(bz!D zwO{jDhbR31z^E-vYHtIH{iy_oKeHW@ZsNu?Y*XJ}F$L(VfBQJLhGL#6hp93IFDlI- zaQ@kch)R;I4X|eX(?0O)vHRt(#S~GNd2ka=b0zdUI2nj~*NG5%BFzE2n$oV*)b=u& zRQ6(pu31J5tuRj_xpRkqU>;vzXc(91d((4VAn3JklRtoCQc(?boGy{)N9Ff%&RK1; z8R?t&21KHr8&&(Un%S3DfEuA zMsJ4^GnY19OxEoyx-4y14n9h|z<#L_tDck6${vh?4t)(~e>#s1O^SSLy=exHc=MHy zcDb&76OjbCu6+8y%AniGXU@lno}!w)8ldlj2sT(bs1;g0(mIeuAE|4nDQc{Za5!Nv z)YgUu;^(d)SubD${vxHAoX^ZF#Pceq{$~$%_mqvdmz|^bikcIiA)VB-3~VqU@RAQ* z16Vdsvux0c>i{={fz*u4iHiQO@udTUEkcnMLQDV&h}j6tL@=C_8ca zRhDVE-3n?)bVilKyQPnS+#d~dC&Bg$+xGg7u3wN9!Z9_QiMmq!AwRS>y#th#gg%ie z0!>2_%jC_J=D6asS`vc~zL=q4T*RxHs1e>Q9TWVnQ~sDq7Th`U?p$M@n@e_qQZA$e zZA?z`T(zF4hWJ3z~P{9#kJH@AYhNcVxROK}SEwlNr5)3=EtTqRfwo zoQO$__dK9~aiv{2J_NJ{2(m0Jy7-8Fsz(L@U?3^_v;#o}$1W-0kDYFUA4ZQ$n1()$ zfH;9h#6S|#NFBYAl|?hXDfVBw%RmcFz>M4^5VGH_^6wWV;qIDOUfin+Oj$N>ixs9q z*u;F_j&GZ`L8K<3D;@Po{M7IWJ{8yz{_^8L)^~|$39VZvG?w4Cb(}YZmkHVVXbDSr_TwaqnNN_ZyOW1_?!Er*k zRzu%>47Ut6eqnau0Zuh2Yj2)2X9lM6o_ELCK`4 z9>^cL(yHv1t^)LiZ^oWlkpn&K#I0 zh|KAjWAh(#Z^R;gfiik?DjIoX6d$u1L$c37{t|kaI7$di86bgznEYOQHNN*9E46BF zb3J=zE#Dn}H1j}>Ra6SGY*pI^@aJ|(#_wiZUGK|8@q__q5w$h3h6BMJ*_*%#abG?% zq-o)xn)L<>5cN7R1n&oDq|JJvQ{#!HzZnd+wt>r_6ipIbBW3We+uIj$NhZQw3*I2! zq&lvdE4du(I6{8=7yIwv?m4nD$O&L@bC=>@PS7t#8A^USlf25vZOtE%&3$ z-v(sOeYE|6MPlCFduSS!iIGo3F@@+QbRsE>g)4*r?AZLL@rrT=Yt2BC9xHEUUaW=| z5)g5$ZMIOFFpsIizBU3Q#mr9c$q_T$S|oyQgXN6o=orfEfe$2vBFb3}@#FTBOPs%c zJ^YfOyMKyg@rmtk0woAtv{VcR5{xofwn+#kFlUO*R%x z`Ny9!{<~Ea$LySZ_@~JUD~Pd~DV7(@Kq%u5m~U1%_?obt%a)NIUq=Z!3$ZG)_q_q! z&^h`Saq1`ha&sOGAuQHOb@N`l#+ktij#=t}5tUbQ61BvOOE!g3q_^~94@3RO#?V?Y zFr8{snQT<)m}?|nPQm3w{s~NBN1AgD;%gW@Y$e5mZVUc;pOX*U_%z#*BIWtpv7`Q~ z*B(j%<fW=^&P#u_aa4$mPRj*rM$v2|73rm zdO!F{>D<-vM6U+N!sSJ0-I4Ip{ZG?x9fP81Bpbo*r#3>BPBD>dc@(mRtl_yznaadd zgiNWp*-(ZolAUF0S7A5H1$_BGNJ9`+AL2x75Gi)&<6pC7=Jp~a@KGbq0{&QCKA*bg zCapa(CW-ES`%>Ypn-d4M?+gcx469f}I$SnPrC~ETW|NudS2$Q0m6xw|8H550%V-dG z6PGi#_BxGUk4-IA#&i8q2_?aE3`a|8G&+ogD&1!OwfNnq{;#enj$T|9SjV7{$2zVb zFaNhwK3d?^$u~f6N%0`kSoQJS``?yoYMPRHWiBWRZxi%2w?cZc0u8ZeixW_v(?q7Jk6d@t_t_Pk3DGw5vO==0(dWdG6XU^_y42TJ_$-yragbfsIA=n zf_9+1QHngY|Jn8BJPB1lI@l)K5~2YZ0_rx(PWjh?g@j09mx`(NZs)C0Rw?hjMNBRu z&=C=qqV|_Xd;Wq2WsOGx-&!4y0CgPBmuWVM_}W4{0?*c3Ad`w<86DXc=R2oAqXfNt(V-O#j@0S=whBBF@6&Lv;Jxt(A={9t zK$i*IuPc9+0r~`UN)hi}o1q>ROyI#FP*<@V)g&$)acqaghrn2< z@uU)P_UbF(&NHE*!mu`+t`Kd^k%!Q)<&yDUnXgb?{k(*wtX+2|E@#C(pbDWDbt*g_ z9!is$^2Uu}2@1t`Kbu(0roO0`XR0J$+pZhkxEN>d^avR|v@~>r0K7kFfeYhU$#uYl zA$Ra$)aLp8ezU{RB0<@in_L3cv&!OJIr4Rq3__=%R0BD;Pf3VTn^FYS z_>I$_7T!NHe&@*H1Y@I(NXcuLqOqa%>%}Nuh}p-QBc)!%__Rohg(KlNhTJc*|TA7eP=Gp(i!;nMQJk?nD z)H36n5P4-d7$OL{;`2YMYB>Y5BsxFgYgDl42mzohStpaQAPC*m<1#?ba<*72HXs=# z#sf1ust(&81Z2ZOnkWr74vA_3$$dWzx~aoBAq&$x2p>dR_z-R&cDCSm+&{>X7#j4( zVV0p*9`ZBF$zz7$WpZCY7Z&C51uqx1P#lJBEZaw-dJS|+IVdTe+864HPt|PE#X8l$3Jb8? zX5YESBSl7be}bDi%am>QC7nCR=9?8{G4ONN$ej$aov>KA@@q<=o}xVYTsK>XQyvsk zZMK?ujlSY|_Cp5n$<%GF$qP2an)ueqe#E9moX(neIT7~J?X}uzluvT*21q0mf5N6B zSKT}1C=&>B0Q)`wcf;L#ACtx(VCq&ii92pNj&*Yfwh>ZZvbAuMBU(>toBkgXc>@|Q zGt3@u4qb0KSMUNyu2Grq2Tst2ejVgDI!oB~Gfr-m#}$n|vm#~Td!L^+69|xk`BKVL zJD0tpiOkT-);s?CVru(WTF{2ynxElStxAbR>z)Lm_j=MCp(;kIB&OWv50v9L0lBIi z+Z2#U$F}4~NZuYaw;G!T?5_HpH~w|=^0ia;%jPG|^D5JUrmWh4Y#H?sqP6pBL%|4D z0e?^G=C0_0!2EG>pG`$Rd2j}1}XqxLFT*4u?u={)_&equlOll1B_Sbq{4*-lmoe4bDsnsV2I~2aC%3_XKPgVW` z;0&ked)?C3+xh3QON2&0|1F0=PZltx6%?AHYtt~Atkg@yTZ2O+I>~f_L7m%9JUuV= zZsTzdu8K|JJsFWNLG$=m<&XG*+An&_9bB^^|KUNKEO$e{ZfLYFfiAcHj!iw zPCox(S`Hlw@SHvwg#&OPDVsyY9F)m%&RMte{B8+?Vp}puiYp~?uV{~A@`pjayHE@W zbmRGqP1R7y4x>s)B8z>D_JEu!G%}bfo9#lkpxO`^0%kt#RqL)cnhi}G4vGVaVp@3a z1*s-ys^+yL%T@_X(+tbO+uD;RRd3isD1{PeOodL3*YZPtqcvj+W;HcbT+FF574~dJ zsI(H}Wj};EAmaEDyHpbaj@QvKaR@ON+F4Z&|x8Kn~*l>y(^b3GP(&>D+ z^jWytR*bU1a*%m^lc40QFcHc&KYiC(qAV+s9n*2buT-8A>+*R*;MF0BOq0Ga za2b@d?2^eTF$5?&XjXyr9BL!i^Kez}6;5RY zSRW|t8<)0`hP5Ds-et{sk7%5*!VU{cWb<9XLqSp<=!1;P3KZ>#tG}DFBsRIWW6<_{ zfjAvoh^sF>auvCfJCdw)SLh`7$bvPC>J0-;jcF!TejP^SWX*k(pjeVy&}x7Yi6g`R zkbj>go7=;xEn|X|I2+emCyAj(2CXVv2q#eLI3qd>33naRgdaIQ9f8L2Gm0q}eOe9{ z)L`jCw;4<><5r=k0kdaf8%b<4*m(%Ku(j>}>ZZXQH6!_nsonVU9~VFNsA>9x7YAoe zib4ovl-u?nC!Uj{8XLJfCt$-Xu1v**Egd|{V%%g#=&q3SmN~{ubv`H<~wgv z`8C|b0#^u|PB~L|YM1$R`_U`rL`AYc8!1Z(z*JTytX%LiS0!Mz2P8?Z3awZ0Tp3Nw zxckZkZcBNBm_WxTvPm~52@fa@bS3f)C)Rk;LQ*_EK#Lj8tO#PL-km0TBGw08Lwr1B3ZB(wILrhNM=z*Hwo{< zO{iE#9tiKRGZ1T(8BVBlKYZvW!C1ek3hs$) zUhPvLa2n8*WgJ7X`c|j4aB*(vo$<(=KBs-dZ|w9Cf(`5M4Rf5jfB-k5oVH!g024~g zyPr(=Lyp8@N9Fh)_pvBgAVMqe7rBwhA~o&T1OoH5`pU##J_V-EnRq3=I;IZ`hC0qO zymH-guipz=lFZyw*-GgS8XyF@9Q1uITB`01TgJM z({}^EV#pl!3{;^{e7-=rGbLRRlb_^s>I>A@OO<&pn46+-8%%KWfzVR_g}nww$v2zR z`7`Um8A+~aN1aFgt(?j7PP?DwUHJa9eyaO3Uwr-lSYX;VQxtE8>pEMwPwqW zxE&xE4fwR6as68a$eB&)d`76QkK`Fu3}K-+(j&^&d9-gv<7US|g#?`waCbH&bhsvvx17ipfy$-Z4xec6m(oh#deC?EU< zw9M9oJ@;VvRS=c|#A9tRFoBhuVg=b!l~(WQ?K@`O4ZmkFBS%6)Qa&U zmsCMPyD6ZeU{FdpkCvNxIeeo{QcpHP#iC}^+I`OP_wO@9ePIY(j|JS7rnJ+rDJ2G386HI@;mRo@=gj}3eN7N$u zCAEj5rdSRw)p~n;!YS03K_Bk20{4MxSL+NvgtST?hN~BYwSP(WFgVZ~5J$B=(ym44 znn*8E0fl*XE^|q$l5Lzc_Yf?tF7+k<8N2FB`z$l{VaoUce#O4t@w6WrZ32DTW#Zi7aXr(X>9sCsp(7Zv}pC1}`@= ziM%{^43d35Wrj^;n35C&Jg+X|j~{-9YQ;>!K!}kK(T!?uLq>#tV_&Fm;1h&vR1Q!K zb;~c6awv92V$MG0jA53L6jzx``x+8{gRkSErDjmjFF{C-=@e!; z=UTw9_xA}Ff~=!J|E?#ZzLW?jZE zSJAtMzqWq3#43@JTwe6^1cUGpztunN zHEUD2&sduAEv=vHuyF54lQEz7`%LYB`>M*nQ-#7)TCL_dyDGIE{Rvu5f-bru;R8Ja z6A`1}`Sk)_2gCU-cKNv#JOZm99Vbgh1JG#on|6Jm?#uG$b2(Vb+)BbwVDqNey(G4< zOzRG2d`ybq9XaM@4o)Szr*Ae6<_-=HVGVH8KjPhw$9Y16xmPXHubVUG2&*^G#HiTW zy+^hLNCwOzvEWM2Ky@PU6iWqhPuPjQo^q}wFrg(9JC#}he}SNweBz_D0%z)}=lfZb zH2}Gu=!Vu=Gc!pN_n>>)oC<`S+w8sN>M<1la~v=Mc)r2#_UGm%id3C=2${jkf$}y9 z#+5j}n2Da{5pbLhHEtgSqz-7n&iqvHnGBbLy}n`;p^r6FS3~{ zW|PakbN&O9 zldom{^`IcUdsqT?yLJfG&WD0EROAfRsaTSb&d9!Bygd74IT1D8AVC6eum3FqW7NYZ z-Y^0UFlkVJUr;~&Feo`-jP(2)_REjVIh{Vjv0?wWdw!CsfW|dPepc}#bp9FBFAMXl^W5tkMFer5xmE4FzV;4qekfp3=b_#%g7BwlFe~iyn@;Ci+@NC2e zvEapu@TeEx3#YneeED@LS_)#9pvd$wKE)cpbsFIoWaUd@$C{bm#x2l|UM9&cAxGl# z%4@fc=kwP_2HedPG__sv9XP}^!u|&wbqtL$c@YWK;tH}xs&y2*r<>kQ#ZHv7yavW0 z6pFPw&zvjds@Ll2I@i&_+{ZYrZui-36}0PL(D=Gm7oMFCP!{y1$A1#XU(+N#=d2|<(^zxV+$X8-H zoJqB3(w0NHU^*WfFcEACr~>bUUgfve%zn?!_fVh_t1wOxRTB<^daL~w@0{x3|MdN6RfCTiUiCHEpuvWN23Chp2?c2Gz+Vh}BUkgYtfJ03Oei`I3UbA6x55h1 z#^Ntq$=J+_Y!AXl$ritm(1#1~6M#EZTM=%BK?mD-50h!`J7vS(D;kanCF$Y*UhUVg z%L5juI2LiSXl0WcQ&pq5%zf_qh%h#)f5=to7_<{Qf5M{TBqqS&uPg!Yhm!!>sRLfD zT=FZlx_w-b6r68eJDef8WoCOUkb)Q&GGjKD!PH|0GqPx7p=6?X2PwhZB?P{b>Y1%0 zcp9|~wq)AIp=#Fobg;u|fJAu_aJ~vt-*5aJfDkiT!N6FFcs_1Mzb+e5CE#m1VbB3J zA|$3rCij~PG0N_H4rnZe6Mth(GwF5PwJowEJ-;Iw!(c(Vy`^*#fKPvPaeE3BiHc!6 zWWWMM9b#hj!JQr$)3AEs-MIvl2|cft3*Q(yiOo7B$U7hkYEfzJc^%mKHFk*rmC*G2 z&^`n8#FPSyCUiLbRn)Z=AN(VXj4v+YnY=-gYel|S>g!%Q_E|aI5uVXFK8X8MXyO2h zODnuixgSqxKp54^*h#~$q^HEs zD&846s_^{BV4Phcv@$v(>}c*Kk)z2#M*TO(rkYUe5D?~D>;6irK_haEc&XC!qiy8d zAXpFOm$;s>u>9PY-2TYlPX{a|dXA4}LqRj>ls?Q~myd){nL?N_Zt4NBgvxRf@5CZ6 z`H=R2LzXH`rekB6U$CU+)X&4b+a6wcw+>&vunGj1bw%C=#DjL(P6;U^jH~ubucao> z{D$q~!8cjvS->#z7ugiNr?YHB=;QS6X(0c#H#|@^5qL!W7{^mFZ%t=^bEiUy< z23H4@M)V!*1}_Kz*2rm`9Ri|nGsYFfw%w=v}A2pOJ?G6FR@+n3;i+9qD$eZaB+Nk z0$fjhsuv{pO)+$^v96JIG?VNh`Ab(TtU7;-9vJ$pSG+$muIAEMGePMqlNFqgFT4;-l=c6a=kLOk+=NA+T(Q?h=NA4Y)uapCsC%WryM(R+ zMgd~Ft*yhnNF{r)2Yf#YrFTLHaZX8>g-kvy#QNxm^=xQT^L|5(9liXc;U^FqxN|(u zr8pLH;N$WJk`6%x%ri#Cmuz_8ykt2`v%U z(j>_uKSPsq!A}k}-i}(M?Tz?NOl0D{Ee9Ri*Ny{qw&N{eL%OJHdiUo%2fcfi{o1Qq z;cjkD^t`A~aeTo8N<2RGw~gZ<5YdZzdNE{QqicRo=UyK2?m{U<3=@-N1UcSmZ`IHUSCPix-+F;onO>v1? zxA3?pJ?=f#`;>rUsIf|P`HD4YpLU{Om0vS}FfHXcO7@fmfI=!JjT>Opo_xdA@}3)o z10>*rKT6oEE5z~R+^5=1r}IF{HT%$>nQL0S&b)~HplEwW(Lbrh6f<@lgNt+6DL7aDNt&L5g>(#XqJB6Fox_})gjG5wvlgj?m0~fipnvq2 zz5ZF~`zD={y}t>(T?31!_4{}S%;}0V9I=o6&$Rf8tEc!xP~$e7 zlHai9l!4JlfnI<~tycDySVc9D`{5*sq3q5%&|$+J71L*^NOMhS4#2so9-n*Ni_w1C zc0i`<0EFd2yeY(qF-rJsVG``!PNpt4I)YwUHC5~bTfP*ZW0CH?aJDOiPmg0%2ES;G zezOnN+CXq?4-w1vB{^f?wvO8kJk}hqI2Yz8nuntj2B*sFJZ1)erBs5p3AVp01}m7iPlYvEW1T9H`}0 z?`9LtVCJAUQz(VTKd}MFwrS3kQ}JI9P$3`7t$Uhju*@SazzugY?N@BmPr~m5=Gu;k zA%Vo>(m$;-yFRGl)3C*rOpi?vhpRM)pChWIX`eR!>pdJGEBsapghZBzqG z)eAZ3Z`5AHCRAQ^;dKYyQXPGa&tkM#nTfVk4dnTeaH1OdR-M<^IccNtP|mrG!zXy7 z->UD$dTCSP!L77rPv%f1M1o-$X>9|KpM(09sE_Zt%F%t7`lU#QXiA&2n~j+-=8q}S z4o$Sc)hEI2*9)`BRnoE{k)$8fL+pWW_j-Lg8cA}=6Y)LaXks+!-7q>e~@uwzmyQ%{7C0pK&aC60;Fite+^48g2J=)|6^$>>TQPq!QC1)L+#}h1M`*zmm;*WGj)GsHsl~IsHU#S?onMlLil)pxFDSnAtFw>YK!1)&27q0KHs* zwqqq3R42bRQ3=TQBbP(}O$$auB4T7YJC^kWVl(nsBLtbw0JJP$@U5^ZJ?ug2M=6`9 zF=@HQKi@1vM2@uB^@xEK;b|roypVT{A1Df#w~EH~{*EK|kt%9FgO7-gJ)OyO*q69a zkRHj|nlnUtN68`mH-=6xKP+U)OV?7pgofvD2TF^e=dzwoVWurnQ;~Kx56xmcr9U#o z7}dt!R2AJCuYs)=$SzR>0+4#6vfN)8^=A7@|?~&%;LHRz<^i4Qrdd}{H zh>>Uri38I(1qvp#(t4Zmgcz4Y6LJx}Jsa58%isgI?c1@KXA_avvry346;9cFR$Lnu z=5`NQX#+TSx|YQx1C$%j#l5g_giY}PS8$H%PL{1VCYh>Y&nkQUVl8R>Jb(Y=dNTzb zZ|KTCK(*zlAioFLcSg;I_ik9yzwgDzk`6V-kBpcf9lMu5*-=#IQD+6RroWQ&<{#HK zXG2^&#WJ*a0ZYA@X0;fsSyqT?DyVX`EB&C(sgaZdU{%iikRzd1XTQAL$+6y9y2np! zWsJ;!Qz`M2=>HU2DV^K*hS+1{^&;rig9SR2|Bsky7!)&oa$g)XuF1`ai&HKEwqW^9 zvyarG2)o!}<=nB0 zYpygh&SA>iT>+9$qq&pf@)NwnnXJpX+A&3rRtPo$^(9vKBk|$YyK2<%E0EZXKP!5j zXm~WkGot!e;z!0WfQwkZMbs~4Fr20Ni5{w|mry~T7z%c+fe{L-mW>eBh#R&zBY3Rb zC_5#MW|k|4p*M@zcSxo!VoIW5s8d~1)Li(^PubU99f$`S#01ftbIn{uMQsC-UUv(x zy7!a%)L$O*sK#X}OQ9W6?z5iQPzLL@al z!)&ms|FuKAL5wP@f_ujbVbwG=#j!H6A_Kw={Mz3QIN-JN8vZH<^LGUQ=M zd?90Z(vzU26PT`m6P_a)VEa~%AH=E~j*9KCk(}hO zB;#lHr_vXQcUnfrD8ylTm#?j5D+D*@S`tSp)JFt0(9QQe~PfJ@8rhqig)iQ&-x33 zJ=3Oe^+OGOCrz7Fef&X8%bfe|QC{5wPo9?m&1N%pt#X<2Y;H3-k2R6MSlKVf8UeQu zGU_E_UdSmAzrNlri0Dke9`%KET$)UJC4+{5POfg4o*Zt90PE zcxEiS$s-Oa1mOLvI|@tEA!nK;*Tx#nNl$-=Qwzj*=kYJv>%cJ_`rr3@xm_m3NnDU(En^R8iE$@6qW}!`7+9&($LO-0 zDM)3=WHo78y>MW?{NI2L+4RYE!P47CJhBP}`&lwP1SQ~-6LS)@`0-HK%4$x(#6Wh* z1RCQt&_%GObw=WYnI}4Wj;LbY`&jm@hGHbscktH$D3Q3`$Qs3+j}sI<*!vPiV7E!D z{ylrHzRg;{RkLO?S>t?m1CxOhL#Bps^BnU5YqM6d&G=#xDxV>-B0SQ(+QH+Bz+Z)X%`&tnd_ z^Ju9FQ6X5fcu5(NCE%Ui2x8DNu_b4QA6&U7z7rEVRr2qqMXOUCDQ5dui*}6&TtAPB zF0^a@@b?A{PZAEKcrTH}^C7A>Amf+uw)wod|JRgao8w-#UT$WJ>U@?Qou&w#I5S_r z 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

    s89 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

    5D-A%u{(G&%l5Grjy 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 z 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

    QJ%iR0-Na*F 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

    +KkBP&= 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⋙E#;!UB2upjoJ`tbO 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

    *sXD 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°iNT*b3m! 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 title: false > type: tree > dir: down +> depth: -3 > ``` + diff --git a/cercle.md b/cercle.md new file mode 100644 index 00000000..1d0698fa --- /dev/null +++ b/cercle.md @@ -0,0 +1,10 @@ +up:: [[géométrie]] +#maths/géométrie + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` + \ No newline at end of file diff --git a/cheat sheet fonctions trigonométrique.md b/cheat sheet fonctions trigonométrique.md new file mode 100644 index 00000000..4bc13919 --- /dev/null +++ b/cheat sheet fonctions trigonométrique.md @@ -0,0 +1,26 @@ +up::[[cheat sheet]] + +![[fonction sinus]] + +![[fonction cosinus]] + +![[fonction tangente]] + +![[fonction arcsinus]] + +![[fonction arccosinus]] + +![[fonction arctangente]] + +![[fonction sinus hyperbolique]] + +![[fonction cosinus hyperbolique]] + +![[fonction tangente hyperbolique]] + +![[fonction arg sinus hyperbolique]] + +![[fonction arg cosinus hyperbolique]] + +![[fonction arg tangente hyperbolique]] + diff --git a/coconut application partielle de fonction.md b/coconut application partielle de fonction.md new file mode 100644 index 00000000..e2fc63e1 --- /dev/null +++ b/coconut application partielle de fonction.md @@ -0,0 +1,14 @@ +--- +aliases: + - coconut application partielle +--- +up:: [[coconut composer des fonctions]] +#informatique + +Le `$` permet de faire une application partielle de fonction. + +Cette fonction met au carré chacun de ses arguments +```python +square_all = list .. map$(x -> x**2) +``` + diff --git a/coconut chaîner des fonctions.md b/coconut chaîner des fonctions.md new file mode 100644 index 00000000..ff6aa322 --- /dev/null +++ b/coconut chaîner des fonctions.md @@ -0,0 +1,11 @@ +up:: [[coconut composer des fonctions]] +#informatique + + +Calcul de $\pi$ avec $\sum\limits_{k=1}^{n} \left(\frac{1}{k^{2}}\right) = \dfrac{\pi^{2}}{6}$, soit $\pi = \sqrt{ 6\times\sum\limits_{k=1}^{n} \left(\frac{1}{k^{2}}\right)}$ +```python +range(1, n) |> map$(k -> 1/k**2) |> sum |> list |> print +``` + - on utilise `|>` pour chaîner des fonctions + - on utilise `k -> 1/k**2` pour définir une fonction anonyme (`lambda k: 1/k**2)` + - on utilise l'application partielle de fonction pour intégrer dans la chaîne de fonctions diff --git a/coconut composer des fonctions.md b/coconut composer des fonctions.md new file mode 100644 index 00000000..e4eeb8ea --- /dev/null +++ b/coconut composer des fonctions.md @@ -0,0 +1,10 @@ +up:: [[coconut-lang]] +#informatique + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` + diff --git a/coconut composition de fonction.md b/coconut composition de fonction.md new file mode 100644 index 00000000..b842b014 --- /dev/null +++ b/coconut composition de fonction.md @@ -0,0 +1,18 @@ +--- +aliases: + - coconut composition simple + - coconut opérateur .. + - coconut .. +--- +up:: [[coconut composer des fonctions]] +#informatique + +la fonction `square_plus_1` correspond à `x -> 1 + x**2` + +```python +square = x -> x**2 +plus_1 = x -> x+1 +square_plus_1 = plus_1 .. square +``` +La composition est faîte avec `..` et suit l'ordre mathématique de composition : $(f \circ g)(x) = f(g(x))$ + diff --git a/coconut fonctions lambda.md b/coconut fonctions lambda.md new file mode 100644 index 00000000..264bb106 --- /dev/null +++ b/coconut fonctions lambda.md @@ -0,0 +1,8 @@ +up:: [[coconut-lang]] +#informatique + +La syntaxe des fonctions lambda est améliorée +```python +lambda x: 4 * x # multiplication par 4 +(x -> 4 * x) # même chose +``` \ No newline at end of file diff --git a/coconut gestion des itérables.md b/coconut gestion des itérables.md new file mode 100644 index 00000000..8659c699 --- /dev/null +++ b/coconut gestion des itérables.md @@ -0,0 +1,9 @@ +up:: [[coconut-lang]] +#informatique + +On peut utiliser l'opérateur `::` (cons) pour chaîner des itérables + +```python +concatenation = iter1 :: iter2 +``` + diff --git a/coconut-lang.md b/coconut-lang.md index 35e0559c..9961a980 100644 --- a/coconut-lang.md +++ b/coconut-lang.md @@ -4,44 +4,12 @@ title::"surcouche de python plus fonctionnelle. Pratique pour tester des choses --- Langage de programmation : surcouche de python plus fonctionnelle +Compile en python. -# Exemples - -## Fonctions Lambda -La syntaxe des fonctions lambda est améliorée -```python -lambda x: 4 * x # multiplication par 4 -(x -> 4 * x) # même chose -``` - - -## Composer des fonctions - -### Composition simple -la fonction `square_plus_1` correspond à `x -> 1 + x**2` -```python -square = x -> x**2 -plus_1 = x -> x+1 -square_plus_1 = plus_1 .. square -``` -La composition est faîte avec `..` et suit l'ordre mathématique de composition : $(f \circ g)(x) = f(g(x))$ - -### Application partielle de fonction -Cette fonction met au carré chacun de ses arguments -```python -square_all = list .. map$(x -> x**2) -``` - -### Chaîner des fonctions - -Calcul de $\pi$ avec $\sum\limits_{k=1}^{n} \left(\frac{1}{k^{2}}\right) = \dfrac{\pi^{2}}{6}$, soit $\pi = \sqrt{ 6\times\sum\limits_{k=1}^{n} \left(\frac{1}{k^{2}}\right)}$ -```python -range(1, n) |> map$(k -> 1/k**2) |> sum |> list |> print -``` - - on utilise `|>` pour chaîner des fonctions - - on utilise `k -> 1/k**2` pour définir une fonction anonyme (`lambda k: 1/k**2)` - - on utilise l'application partielle de fonction pour intégrer dans la chaîne de fonctions - -## Gestion des itérables -On peut utiliser l'opérateur `::` (cons) pour chaîner des itérables +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` diff --git a/concept et règles.md b/concept et règles.md new file mode 100644 index 00000000..d545e56a --- /dev/null +++ b/concept et règles.md @@ -0,0 +1,17 @@ +up:: [[salsiphi]] + +but: il faut que ça soit constructif + + + +> [!idea] Title +> - présentation par quelqu'un (type livre blanc) +> - [c] motivation des présentateurs pour préparer +> - [c] épuisement des sujets +> - récapitulatif des trucs intéressants que chacun à trouvé +> - avancement des projets de chacun +> - partie présentation du projet +> - partie discussion sur le projet +> - proposer des sujets +> - faire en sorte que tout le monde puisse proposer des sujets +> - introduction des sujets au début diff --git a/programmation web serveur.md b/cours programmation web serveur.md similarity index 100% rename from programmation web serveur.md rename to cours programmation web serveur.md diff --git a/cycle en V.md b/cycle en V.md index 13f48346..802b155a 100644 --- a/cycle en V.md +++ b/cycle en V.md @@ -33,13 +33,13 @@ description des fonctions (modules) d'un logiciel - spécification technique pour le développement (signature des fonctions...) > [!important] point de vue **statique** -> - découper le logiciel en [[paradygme programmation modulaire|modules]] +> - découper le logiciel en [[paradigme programmation modulaire|modules]] > - module gestion des clients > - module gestion des articles > - module création de facture > - module bilan des ventes > - $\vdots$ -> - définir des classes du système ([[paradygme programmation orientée objet|OOP]]) +> - définir des classes du système ([[paradigme programmation orientée objet|OOP]]) - but - réduire les délais diff --git a/daily/2024-01-10.md b/daily/2024-01-10.md index a8e760cb..2e09bedf 100644 --- a/daily/2024-01-10.md +++ b/daily/2024-01-10.md @@ -4,13 +4,6 @@ kung_fu: 0 --- ## Todo -- [ ] #task contacter asso jeux vidéo pour soirée jeux ABEI 🔽 -- [ ] #task demander à tthan pour baptême ⏫ 📅 2024-03-09 -- [ ] #task payer felix -- [ ] #task permis de conduire ⏫ -- [ ] #task gérer CERCIP ⏫ -- [ ] #task envoyer doc à callista ⏬ -- [ ] #task demander à andreas pour colloc - spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` - kung-fu : `INPUT[number:kung_fu]` minutes diff --git a/daily/2024-01-11.md b/daily/2024-01-11.md new file mode 100644 index 00000000..2e09bedf --- /dev/null +++ b/daily/2024-01-11.md @@ -0,0 +1,32 @@ +--- +spaced_repetition: 0 +kung_fu: 0 +--- + +## Todo +- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` +- kung-fu : `INPUT[number:kung_fu]` minutes + +## I did +> [!smallquery]+ Modified files +> ```dataview +> LIST file.mtime +> where file.mtime > date(this.file.name) and file.mtime < (date(this.file.name) + dur(1 day)) sort file.mtime asc +> ``` + +## Devoirs +> [!smalltodo]+ Devoirs +> ```dataview +> TABLE difficulty as "", due as "date", title as "description", file.etags as "tags" +> FROM #devoir +> WHERE contains(due, date(this.file.name)) +> ``` +> > [!done]- Devoirs faits +> > ```dataview +> > TABLE difficulty as "", due as "date", title as "description" +> > FROM #devoir-fait +> > WHERE contains(due, date(this.file.name)) +> > ``` + +## I am gratefull to + diff --git a/daily/2024-01-15.md b/daily/2024-01-15.md new file mode 100644 index 00000000..2e09bedf --- /dev/null +++ b/daily/2024-01-15.md @@ -0,0 +1,32 @@ +--- +spaced_repetition: 0 +kung_fu: 0 +--- + +## Todo +- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` +- kung-fu : `INPUT[number:kung_fu]` minutes + +## I did +> [!smallquery]+ Modified files +> ```dataview +> LIST file.mtime +> where file.mtime > date(this.file.name) and file.mtime < (date(this.file.name) + dur(1 day)) sort file.mtime asc +> ``` + +## Devoirs +> [!smalltodo]+ Devoirs +> ```dataview +> TABLE difficulty as "", due as "date", title as "description", file.etags as "tags" +> FROM #devoir +> WHERE contains(due, date(this.file.name)) +> ``` +> > [!done]- Devoirs faits +> > ```dataview +> > TABLE difficulty as "", due as "date", title as "description" +> > FROM #devoir-fait +> > WHERE contains(due, date(this.file.name)) +> > ``` + +## I am gratefull to + diff --git a/daily/2024-01-17.md b/daily/2024-01-17.md new file mode 100644 index 00000000..9e889992 --- /dev/null +++ b/daily/2024-01-17.md @@ -0,0 +1,33 @@ +--- +spaced_repetition: 0 +kung_fu: 0 +--- + +## Todo +- [x] #task imprimer affiche soirée jeux 🔼 📅 2024-01-16 ✅ 2024-01-17 +- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` +- kung-fu : `INPUT[number:kung_fu]` minutes + +## I did +> [!smallquery]+ Modified files +> ```dataview +> LIST file.mtime +> where file.mtime > date(this.file.name) and file.mtime < (date(this.file.name) + dur(1 day)) sort file.mtime asc +> ``` + +## Devoirs +> [!smalltodo]+ Devoirs +> ```dataview +> TABLE difficulty as "", due as "date", title as "description", file.etags as "tags" +> FROM #devoir +> WHERE contains(due, date(this.file.name)) +> ``` +> > [!done]- Devoirs faits +> > ```dataview +> > TABLE difficulty as "", due as "date", title as "description" +> > FROM #devoir-fait +> > WHERE contains(due, date(this.file.name)) +> > ``` + +## I am gratefull to + diff --git a/daily/2024-01-23.md b/daily/2024-01-23.md new file mode 100644 index 00000000..777ea303 --- /dev/null +++ b/daily/2024-01-23.md @@ -0,0 +1,33 @@ +--- +spaced_repetition: 0 +kung_fu: 0 +--- + +## Todo +- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` +- kung-fu : `INPUT[number:kung_fu]` minutes + + +## I did +> [!smallquery]+ Modified files +> ```dataview +> LIST file.mtime +> where file.mtime > date(this.file.name) and file.mtime < (date(this.file.name) + dur(1 day)) sort file.mtime asc +> ``` + +## Devoirs +> [!smalltodo]+ Devoirs +> ```dataview +> TABLE difficulty as "", due as "date", title as "description", file.etags as "tags" +> FROM #devoir +> WHERE contains(due, date(this.file.name)) +> ``` +> > [!done]- Devoirs faits +> > ```dataview +> > TABLE difficulty as "", due as "date", title as "description" +> > FROM #devoir-fait +> > WHERE contains(due, date(this.file.name)) +> > ``` + +## I am gratefull to + diff --git a/daily/2024-01-24.md b/daily/2024-01-24.md new file mode 100644 index 00000000..2e09bedf --- /dev/null +++ b/daily/2024-01-24.md @@ -0,0 +1,32 @@ +--- +spaced_repetition: 0 +kung_fu: 0 +--- + +## Todo +- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` +- kung-fu : `INPUT[number:kung_fu]` minutes + +## I did +> [!smallquery]+ Modified files +> ```dataview +> LIST file.mtime +> where file.mtime > date(this.file.name) and file.mtime < (date(this.file.name) + dur(1 day)) sort file.mtime asc +> ``` + +## Devoirs +> [!smalltodo]+ Devoirs +> ```dataview +> TABLE difficulty as "", due as "date", title as "description", file.etags as "tags" +> FROM #devoir +> WHERE contains(due, date(this.file.name)) +> ``` +> > [!done]- Devoirs faits +> > ```dataview +> > TABLE difficulty as "", due as "date", title as "description" +> > FROM #devoir-fait +> > WHERE contains(due, date(this.file.name)) +> > ``` + +## I am gratefull to + diff --git a/daily/2024-01-28.md b/daily/2024-01-28.md new file mode 100644 index 00000000..42ebe250 --- /dev/null +++ b/daily/2024-01-28.md @@ -0,0 +1,33 @@ +--- +spaced_repetition: 0 +kung_fu: 0 +--- + + +## Todo +- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` +- kung-fu : `INPUT[number:kung_fu]` minutes + +## I did +> [!smallquery]+ Modified files +> ```dataview +> LIST file.mtime +> where file.mtime > date(this.file.name) and file.mtime < (date(this.file.name) + dur(1 day)) sort file.mtime asc +> ``` + +## Devoirs +> [!smalltodo]+ Devoirs +> ```dataview +> TABLE difficulty as "", due as "date", title as "description", file.etags as "tags" +> FROM #devoir +> WHERE contains(due, date(this.file.name)) +> ``` +> > [!done]- Devoirs faits +> > ```dataview +> > TABLE difficulty as "", due as "date", title as "description" +> > FROM #devoir-fait +> > WHERE contains(due, date(this.file.name)) +> > ``` + +## I am gratefull to + diff --git a/daily/2024-01-29.md b/daily/2024-01-29.md new file mode 100644 index 00000000..2e09bedf --- /dev/null +++ b/daily/2024-01-29.md @@ -0,0 +1,32 @@ +--- +spaced_repetition: 0 +kung_fu: 0 +--- + +## Todo +- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` +- kung-fu : `INPUT[number:kung_fu]` minutes + +## I did +> [!smallquery]+ Modified files +> ```dataview +> LIST file.mtime +> where file.mtime > date(this.file.name) and file.mtime < (date(this.file.name) + dur(1 day)) sort file.mtime asc +> ``` + +## Devoirs +> [!smalltodo]+ Devoirs +> ```dataview +> TABLE difficulty as "", due as "date", title as "description", file.etags as "tags" +> FROM #devoir +> WHERE contains(due, date(this.file.name)) +> ``` +> > [!done]- Devoirs faits +> > ```dataview +> > TABLE difficulty as "", due as "date", title as "description" +> > FROM #devoir-fait +> > WHERE contains(due, date(this.file.name)) +> > ``` + +## I am gratefull to + diff --git a/daily/2024-02-05.md b/daily/2024-02-05.md new file mode 100644 index 00000000..0665643a --- /dev/null +++ b/daily/2024-02-05.md @@ -0,0 +1,33 @@ +--- +spaced_repetition: 0 +kung_fu: 0 +--- + +## Todo +- [x] #task envoyer deadlines mémoire à M.chanson ✅ 2024-02-05 +- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` +- kung-fu : `INPUT[number:kung_fu]` minutes + +## I did +> [!smallquery]+ Modified files +> ```dataview +> LIST file.mtime +> where file.mtime > date(this.file.name) and file.mtime < (date(this.file.name) + dur(1 day)) sort file.mtime asc +> ``` + +## Devoirs +> [!smalltodo]+ Devoirs +> ```dataview +> TABLE difficulty as "", due as "date", title as "description", file.etags as "tags" +> FROM #devoir +> WHERE contains(due, date(this.file.name)) +> ``` +> > [!done]- Devoirs faits +> > ```dataview +> > TABLE difficulty as "", due as "date", title as "description" +> > FROM #devoir-fait +> > WHERE contains(due, date(this.file.name)) +> > ``` + +## I am gratefull to + diff --git a/daily/2024-02-08.md b/daily/2024-02-08.md new file mode 100644 index 00000000..2e09bedf --- /dev/null +++ b/daily/2024-02-08.md @@ -0,0 +1,32 @@ +--- +spaced_repetition: 0 +kung_fu: 0 +--- + +## Todo +- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` +- kung-fu : `INPUT[number:kung_fu]` minutes + +## I did +> [!smallquery]+ Modified files +> ```dataview +> LIST file.mtime +> where file.mtime > date(this.file.name) and file.mtime < (date(this.file.name) + dur(1 day)) sort file.mtime asc +> ``` + +## Devoirs +> [!smalltodo]+ Devoirs +> ```dataview +> TABLE difficulty as "", due as "date", title as "description", file.etags as "tags" +> FROM #devoir +> WHERE contains(due, date(this.file.name)) +> ``` +> > [!done]- Devoirs faits +> > ```dataview +> > TABLE difficulty as "", due as "date", title as "description" +> > FROM #devoir-fait +> > WHERE contains(due, date(this.file.name)) +> > ``` + +## I am gratefull to + diff --git a/daily/2024-02-12.md b/daily/2024-02-12.md new file mode 100644 index 00000000..2bd4405c --- /dev/null +++ b/daily/2024-02-12.md @@ -0,0 +1,34 @@ +--- +spaced_repetition: 0 +kung_fu: 0 +--- + +## Todo +- [x] #task demander à tthan pour baptême ⏫ 📅 2024-03-09 ✅ 2024-02-12 +- [x] #task permis de conduire ⏫ ✅ 2024-02-12 +- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` +- kung-fu : `INPUT[number:kung_fu]` minutes + +## I did +> [!smallquery]+ Modified files +> ```dataview +> LIST file.mtime +> where file.mtime > date(this.file.name) and file.mtime < (date(this.file.name) + dur(1 day)) sort file.mtime asc +> ``` + +## Devoirs +> [!smalltodo]+ Devoirs +> ```dataview +> TABLE difficulty as "", due as "date", title as "description", file.etags as "tags" +> FROM #devoir +> WHERE contains(due, date(this.file.name)) +> ``` +> > [!done]- Devoirs faits +> > ```dataview +> > TABLE difficulty as "", due as "date", title as "description" +> > FROM #devoir-fait +> > WHERE contains(due, date(this.file.name)) +> > ``` + +## I am gratefull to + diff --git a/daily/2024-02-14.md b/daily/2024-02-14.md new file mode 100644 index 00000000..2e09bedf --- /dev/null +++ b/daily/2024-02-14.md @@ -0,0 +1,32 @@ +--- +spaced_repetition: 0 +kung_fu: 0 +--- + +## Todo +- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` +- kung-fu : `INPUT[number:kung_fu]` minutes + +## I did +> [!smallquery]+ Modified files +> ```dataview +> LIST file.mtime +> where file.mtime > date(this.file.name) and file.mtime < (date(this.file.name) + dur(1 day)) sort file.mtime asc +> ``` + +## Devoirs +> [!smalltodo]+ Devoirs +> ```dataview +> TABLE difficulty as "", due as "date", title as "description", file.etags as "tags" +> FROM #devoir +> WHERE contains(due, date(this.file.name)) +> ``` +> > [!done]- Devoirs faits +> > ```dataview +> > TABLE difficulty as "", due as "date", title as "description" +> > FROM #devoir-fait +> > WHERE contains(due, date(this.file.name)) +> > ``` + +## I am gratefull to + diff --git a/daily/2024-02-19.md b/daily/2024-02-19.md new file mode 100644 index 00000000..ccbb0549 --- /dev/null +++ b/daily/2024-02-19.md @@ -0,0 +1,45 @@ +--- +spaced_repetition: 0 +kung_fu: 0 +--- + +## Todo +- [ ] #task définir sujet mémoire ⏫ 📅 2024-02-26 +- [x] #task dates de stage ✅ 2024-02-21 +- [x] #task permis de conduire ✅ 2024-02-21 +- [ ] #task formulaire Avril 📅 2024-02-18 +- [x] #task envoyer dates possibles stage à maîtres de stage ✅ 2024-02-21 +- [ ] #task remettre camille +- [ ] #task courrier recommandé pour annuler plainte 🔺 +- [ ] #task convention de stage ⏫ +- [ ] #task contacter asso jeux vidéo pour soirée jeux ABEI 🔽 +- [ ] #task payer felix +- [ ] #task gérer CERCIP ⏫ +- [ ] #task envoyer doc à callista ⏬ +- [ ] #task demander à andreas pour colloc +- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` +- kung-fu : `INPUT[number:kung_fu]` minutes + +## I did +> [!smallquery]+ Modified files +> ```dataview +> LIST file.mtime +> where file.mtime > date(this.file.name) and file.mtime < (date(this.file.name) + dur(1 day)) sort file.mtime asc +> ``` + +## Devoirs +> [!smalltodo]+ Devoirs +> ```dataview +> TABLE difficulty as "", due as "date", title as "description", file.etags as "tags" +> FROM #devoir +> WHERE contains(due, date(this.file.name)) +> ``` +> > [!done]- Devoirs faits +> > ```dataview +> > TABLE difficulty as "", due as "date", title as "description" +> > FROM #devoir-fait +> > WHERE contains(due, date(this.file.name)) +> > ``` + +## I am gratefull to + diff --git a/danger des catégories.md b/danger des catégories.md new file mode 100644 index 00000000..49e588b5 --- /dev/null +++ b/danger des catégories.md @@ -0,0 +1,14 @@ +#philosphie + + +ex: amitié, patrie... + +parler en catégories permet de simplifier +problème : perte de subtilité +"Je me méfie du langage des catégories" + +Manipuler des catégories n'est pas penser : on manipule simplement des stéréotypes. + + + +A voir : kant et les catégories mentales \ No newline at end of file diff --git a/diagonaliser une matrice.md b/diagonaliser une matrice.md index 89b7b7d1..fef9b310 100644 --- a/diagonaliser une matrice.md +++ b/diagonaliser une matrice.md @@ -29,3 +29,4 @@ Toutes les matrices ne sont pas diagonalisables, donc toutes > Alors, on remarque que $\begin{pmatrix}1\\0\\0\end{pmatrix}$ est un [[vecteur propre|vecteur propre]] associé à la [[valeur propre d'une application linéaire|valeur propre]] $\lambda = 2$ > + diff --git a/dictature de la commodité.md b/dictature de la commodité.md new file mode 100644 index 00000000..5eafde5b --- /dev/null +++ b/dictature de la commodité.md @@ -0,0 +1,7 @@ +up:: [[technologie]] +#science #philosphie + +> [!definition] +> [[aliénation sociale|aliénation]] à la facilité que procure la [[technologie]]. +> [[subordination]] aux outils qui facilitent la vie, et donc à leurs effets, à leurs conséquences. +^definition diff --git a/discours baptême civil.md b/discours baptême civil.md new file mode 100644 index 00000000..c8bf35f8 --- /dev/null +++ b/discours baptême civil.md @@ -0,0 +1,53 @@ + +Bonjour, + +Longtemps je me suis couché tard. Il y a deux jours encore, dans le calme qu'apporte la journée qui s'éteint, je rédigeais un texte que je m'apprête à vous lire. Ce discours est le fruit de certaines réflexions sur le baptême civil et sur le sens que l'on pourrait donner à cette cérémonie, sur le lien qui nous unit, Jean-Claude et moi et sur d'autres points qui me semblait important d'aborder. + +Il serait aisé de tomber dans la facilité, et d'axer ce discours autour de la république, de sa devise... +Mais il me semble qu'il n'y a pas tant de choses à dire sur cette devise, puisqu'il n'est personne qui se dise contre la liberté, contre l'égalité, contre la fraternité. +On peut tout de même être pour l'équité plutôt que l'égalité, pour certaines formes de liberté plutôt que d'autres, et on peut penser que la fraternité est excluante pour les femmes, parce qu'il lui manque la sororité... +Mais, si l'on cesse d'être mesquins, il n'est pas grand-chose à dire, et cette devise est assez facilement acceptée comme un idéal à atteindre. +Je vais donc m'efforcer de ne pas dire des évidences, peut être au risque d'être moins consensuel. + +La première chose qui vient en tête avec le baptême républicain est son opposition au baptême religieux. + +Si le baptême civil peut être vu comme une émancipation face à l'hégémonie morale et culturelle de la religion, il est important de faire attention à ne pas faire de la république une nouvelle église, dont les crédos seraient une devise vidée de sa consistance, une laïcité galvaudée et un système moral semblable à celui d'une religion, qui ne serait là que pour justifier le fonctionnement de la société actuelle. +Il faut au contraire garder en tête que c'est en allant contre des ordres moraux établis, contre des valeurs dogmatiques, que nous pourrons construire une société désirable. +Je ne veux pas seulement dire par là que la morale objective n'existe pas, mais surtout que les principes moraux que nous acceptons doivent toujours être questionnés, jamais admis, toujours débatus, jamais brandis comme des vérités absolues. + +Durant l'une de nos discussions, Jean-Claude m'a dit "Je me méfie du langage des catégories". Parler en catégories permet de simplifier à outrance, de réduire toute subtilité. Mais par-dessus tout, manipuler des catégories n'est pas penser. +Or, que sont les valeurs morales, sinon des catégories ? +Je considère que le fait de fixer des valeurs comme des vérités inconditionnelles est en cela, une forme d'oppression, puisque le fait de présenter une valeur comme irréfutable s'oppose à la réflexion, au débat, à la démocratie. En somme, je considère qu'une valeur peut être bonne comme idéal, mais jamais comme dogme. +La république ne doit pas être la nouvelle église, elle doit permettre à chacun de s'émanciper, et à l'humanité d'écrire sa propre histoire. +Je plaide alors pour que ce baptême soit un parrainage civil. + +Je ne doute pas que certains d'entre vous ont déjà remarqué l'aspect initiatique que l'on pourrait donner à cette cérémonie. À l'aube de ma majorité, ce passage semble pouvoir marquer le début d'une citoyenneté, d'une émancipation, d'une prise de liberté. + +La liberté ne s'use que si l'on ne s'en sert pas, et c'est pourquoi je voudrais que ce parrainage marque mon refus de devenir un jour réac et conservateur, aigri et démobilisateur, puisque Jean-Claude, par son engagement militant, constitue pour moi un modèle. + +Jean-Claude est d'ailleurs un modèle sur beaucoup d'aspects, notamment par son érudition, et par la qualité qu'il apporte à une discussion, par son à propos et ses idées riches. +En cela, le statut de parrain à, ici, quelque chose du mentor. + +L'un de nos points communs, je crois, est que nous aimons tous deux les idées. Il me semble partager avec Jean-Claude cette fascination pour les choses de l'esprit, cet amour de la beauté d'une pensée. +Je voudrais donc proposer le terme idéiste, puisqu'il désigne ce dont le but est l'expression des idées : quelque chose d'idéiste, c'est quelque chose qui cherche à exprimer des idées. Idéiste désigne également une approche selon laquelle l'art doit être l'expression des idées. Mais surtout, idéiste pourrait être entendu comme le préfixe i- suivi de "déiste", donc une sorte d'opposition au déisme, a la manière de l'ignosticime. Je trouve ce double sens assez approprié à la situation, puisqu'il permet de célébrer à la fois le règne des idées et l'émancipation de la religion dont j'ai parlé plus tôt. +Je plaide alors pour que cette cérémonie soit un parrainage idéiste. + +La fête est aussi une chose commune entre nous, car elle est un alambic dans lequel la vie est distillée en bonheur. +Faisons un joyeux bordel. +Pierre Bourdieu, certainement le plus célèbre des sociologues, s'est vu poser la question "ça vous va bien, non, c'est presque un slogan, "joyeux bordel" ? Vous aimeriez bien que la société soit un peu moins attentiste ?". +Sa réponse a été "oui, oui, oui, un petit peu plus agitée, un petit peu plus troublée, troublante, un peu moins monotone, un peu moins bureaucratique." +Bourdieu défendait que l'on pouvait associer la recherche du savoir et de la connaissance avec le bordel, notamment parce que le savoir nouveau chahute beaucoup les cerveaux. +Il rappelle qu'il y a une gaie science, un gai savoir (un peu à la manière du gai savoir de Nietzsche), même si ce savoir rapporte des choses tristes. +Je plaide alors pour que cette cérémonie soit un parrainage du gai. + +Il me serait impossible d'énumérer tout ce qui nous relie, tout ce qui est en commun entre nous. +Cependant, je crois que le commun est lui-même une chose très importante, puisqu'il implique à la fois la liberté, égalité et fraternité. +Le commun nécessite la liberté, car sans liberté, il n'est pas de commun. Le savoir doit être libre pour être mis en commun. +Le commun nécessite l'égalité, parce que ce qui est inégal n'est, par définition, pas un commun. +La fraternité découle du commun, puisque c'est en accentuant nos communs plutôt que nos distincts que nous pourrons être frères et sœurs. +Ainsi, je voudrais ériger le commun, non pas comme un dogme, mais comme un idéal. +Je plaide alors pour que cette cérémonie soit un parrainage du commun. + +Je me permets une tentative de résumer toute ma pensée en ceci : +Je voudrais que cette cérémonie soit un parrainage civil et commun des gais idéistes. + diff --git a/discours manif immigration.md b/discours manif immigration.md new file mode 100644 index 00000000..86afbeac --- /dev/null +++ b/discours manif immigration.md @@ -0,0 +1,12 @@ +#politique + +Nous sommes tous là car nous pensons que cette loi est xénophobe, excluante. Nous sommes tous d'accord pour dire qu'elle est à la fois contre les valeurs de l'humanisme, contre les valeurs de la république, et contre le principe de solidarité le plus essentiel. + +Mais la droite veut nous faire croire que cette loi est nécessaire. Que la situation les oblige, qu'il y à urgence. L'idée de préférence nationale — lubie de l'extrême droite depuis des décennies — consiste à utiliser n'importe quel problème de notre système pour expliquer que "les vrais Français devraient avoir la priorité", et donc pour justifier des lois racistes. + +L'immigration n'est pas un problème. Ou plutôt si, c'est un problème, pour les immigrés, surtout pour ceux qui souhaitent s'intégrer, comme on leur demande si souvent de faire. Mais ce droit d'intégration, devenu devoir, est aliéné par des conditions inhumaines, par de l'esclavagisme — que l'on dit moderne, par la relégation des immigrés à une classe sociale inférieure, par la naturalisation de leur domination. + +Comment un système peut-il justifier tant de violence ? C'est par réaction à une agression fantasmée : l'idée que par leur arrivée massive, les immigrants pourraient prendre le dessus sur la culture Française, pour imposer la leur. +Cette idée est bien sûr stupide. Les immigrés ne partagent pas tous une même culture puisqu'ils ne viennent pas tous du même endroit. Mais surtout ils sont relégués au plus basses catégories sociales. Or ce sont toujours les dominants qui sont capables de faire changer la culture. Ce sont les dominants qui décident quel art est légitime, quelle histoire est vraie, quelle politique est bonne. Ce sont les dominants qui peuvent nous imposer le néolibéralisme. +Mais au-delà de la stupidité de ce concept de remplacement culturel, se cache une idéologie bien plus grave. L'idée que, parce que notre culture, donc notre peuple, notre nation, serait menacée par un ennemi (intérieur), une réaction violente de défense est légitime, dans le but de préserver cette culture. L'idée que la xénophobie peut être justifiée par le risque de domination des étrangers sur notre peuple. L'idée que la force peut être utilisée, car les Français seraient en danger. + diff --git a/dynamic programming definition by Floyd.md b/dynamic programming definition by Floyd.md new file mode 100644 index 00000000..9b76dd6e --- /dev/null +++ b/dynamic programming definition by Floyd.md @@ -0,0 +1,13 @@ +author:: +source:: [[floydParadigmsProgramming1979]] +date::2024-02-02 +#source + +> The dynamic programming paradigm solves a problem for given input by first iteratively solving it for all smaller inputs. + + +## Notes personnelles + +- le problème est résolu en commencant par résoudre itérativement les cas plus simples + + diff --git a/déterminant hessien.md b/déterminant hessien.md new file mode 100644 index 00000000..ef45d9a6 --- /dev/null +++ b/déterminant hessien.md @@ -0,0 +1,23 @@ +up:: [[matrice hessienne]], [[déterminant d'une matrice|déterminant]], [[fonction de plusieurs variables]] +#maths/analyse + +> [!definition] déterminant hessien +> Le déterminant de la [[matrice hessienne]] d'une [[fonction de plusieurs variables]] $f$, noté $| H(f) |$. +^definition + +# Propriétés + +Les déterminants mineurs d'une [[matrice hessienne]] $H(f)$ permettent de calculer la nature des points critiques de la fonction $f$. + +On définit les déterminants mineurs $\Delta _{i}f$ (avec $i \in [\![1; n]\!]$) comme les déterminants des sous-matrices carrées de $H(f)$ (qui partent du coin supérieur gauche de $H(f)$), et où $\Delta _{i}f$ est de taile $i \times i$. +On peut noter : $\Delta _{i}f = \det\; i\; i \uparrow H(f)$ en utilisant l'opérateur *take*. + +On a alors les propriétés suivantes : +Soit $a$ un point critique (un point qui annulle le [[gradient d'une fonction|gradient]]) +- $(1)$ si tous les $\Delta _{i}f(a) > 0$, alors le point $a$ est un minimum local +- $(2)$ si tous les $(-1)^{i}\Delta _{i}f(a) > 0$, alors le point $a$ est un maximum local +- si $(1)$ ou $(2)$ est respecté, sauf pour au moins un déterminant qui est nul, on ne peut pas conclure, par manque d'information + - si tous les $\Delta _{i}f(a)$ non nuls respectent soit $(1)$, soit $(2)$ +- dans tous les autres cas, c'est un point col + - si les déterminants non-nuls ne respectent ni $(1)$, ni $(2)$ + diff --git a/entr - exécuter une commande lorsqu'un fichier change.md b/entr - exécuter une commande lorsqu'un fichier change.md new file mode 100644 index 00000000..244a2a52 --- /dev/null +++ b/entr - exécuter une commande lorsqu'un fichier change.md @@ -0,0 +1,39 @@ +--- +aliases: + - entr +link: http://eradman.com/entrproject/ +tags: + - informatique +--- +up:: [[terminal commandes|utilitaires ligne de commande]] + +> [!definition] `entr` +> Permet d'exécuter une commande donnée dès que des fichiers (spécifiés) sont modifiés. +^definition + + +> [!example] Exemples +> ##### compiler à nouveau si un fichier change +> ```sh +> $ ls | entr make +> ``` +> +> ##### compiler à nouveau et exécuter les tests si un fichier change +> ```sh +> $ ls | entr -s "make && make test" +> ``` +> +> ##### redémarrer un processus dès qu'un fichier change +> - l'option `-r` permet de stopper le processus et de le redémarrer à chaque fois +> ```zsh +> $> ls *.rb | entr -r ruby main.rb +> ``` +> +> ##### vérrifier les nouveaux fichiers +> ```bash +> while true; do +> ls -d src/*.py | entr -d ./setup.py +> done +> ``` + + diff --git a/existence.md b/existence.md new file mode 100644 index 00000000..3683f18b --- /dev/null +++ b/existence.md @@ -0,0 +1,19 @@ +--- +aliases: + - exister +--- +up:: [[philosophie]] +#philosphie + +> [!definition] existence +> Langage courant : fait d'être, d'avoir une réalité +> étymologie : +> - vient de *existere* : *ex* + *sistere*, "sortir de", "se manifester", "se montrer" +> - interprété comme "être hors de soi", donc être auprès des choses +> On peut voir l'existence comme le fait de se manifester. +> +^definition + + +Voir aussi : + - [[quantificateurs.il existe|quantificateur existanciel]] \ No newline at end of file diff --git a/expressions détournées.md b/expressions détournées.md new file mode 100644 index 00000000..52e4d04b --- /dev/null +++ b/expressions détournées.md @@ -0,0 +1,7 @@ +prev:: [[phrases]] + + +- c'est pas la corde la plus aiguisée du panier +- il n'y va pas avec le dos de la main morte +- ya des briques qui ont raté des machoires +- c'est pas le pavé qui à touché le plus de CRS diff --git a/films à voir.md b/films à voir.md index 61b49736..19036c6c 100644 --- a/films à voir.md +++ b/films à voir.md @@ -4,7 +4,6 @@ # Films -- papillon (dustin hoffman) - barry lindon - beetlejuice - les fugitifs @@ -26,6 +25,9 @@ - populaire - qui à peur de virginia wolf ? - molli and max in the future (comédie-romance space opéra déjanté) +- the truman show +- primer (film de sf sur le voyage dans le temps) +- mon nom est personne ## documentaires @@ -42,6 +44,7 @@ > - rain man > - everything, everywhere, all at once > - soylent green (soleil vert) +> - papillon (dustin hoffman) # Séries diff --git a/firefox masquer les onglets.md b/firefox masquer les onglets.md new file mode 100644 index 00000000..0a9cd381 --- /dev/null +++ b/firefox masquer les onglets.md @@ -0,0 +1,3 @@ +up:: [[firefox]] + +Il semble nécessaire d'activer le [[firefox enable userChrome (custom css)|user CSS (chrome css)]] \ No newline at end of file diff --git a/flashcards anglais.md b/flashcards anglais.md index d92d345b..a3468bc6 100644 --- a/flashcards anglais.md +++ b/flashcards anglais.md @@ -2,6 +2,9 @@ ---- + +# Vocabulary + _praise_ :: éloges, admiration @@ -15,7 +18,7 @@ _hurdle_ :: obstacle, difficulté, barrière *culprit* :: *criminal* - + rehearsal ::: répétition (d'un spectacle). @@ -54,7 +57,7 @@ to streamline :: simplifier (rendre accessible), uniformiser to impersonate ::: imiter - + whereabouts ::: localisation, endroit @@ -69,10 +72,10 @@ to part with :: se séparer de ## Work, enterprise to work in shifts (to do the night shifts) ::: Faire les $3\times 8$ - + to clock in (at work) ::: pointer (au travail) - + to moonlight ::: travailler au noir @@ -99,10 +102,10 @@ to be workshy ::: être fainéant a workaholic ::: un bourreau de travail - + to resign ::: démissionner - + jobless ::: au chômage @@ -111,7 +114,7 @@ standard of living ::: niveau de vie on strike ::: en grève - + cover letter ::: lettre de motivation @@ -119,13 +122,26 @@ cover letter ::: lettre de motivation fixed-term ::: à durée déterminée +gig economy ::: le freelance + +gig worker ::: un freelanceur, un travailleur en freelance + +regulatory bodies ::: organismes de réglementation + +enforcing regulations :: appliquer les règlements, les régulations + + + # Idioms and expressions _to happen overnight_ :: _to happend quickly_ _to roll out_ :: déployer, implémenter, généraliser - + To climb up the ladder ::: gravir les échelons - \ No newline at end of file + + +to exercise reasonable care :: faire preuve d'une (dilligence|prudence) raisonnable. + diff --git a/fonction de plusieurs variables.md b/fonction de plusieurs variables.md new file mode 100644 index 00000000..f5015a65 --- /dev/null +++ b/fonction de plusieurs variables.md @@ -0,0 +1,3 @@ +up:: [[fonction]] +#maths/analyse + diff --git a/fonction.md b/fonction.md index 5d285383..4da51bc8 100644 --- a/fonction.md +++ b/fonction.md @@ -5,3 +5,10 @@ up::[[fonctions]] Une _fonction_ est un objet qui à une valeur donnée associe une autre valeur +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> depth: -1 +> ``` diff --git a/forme normale de chomsky.md b/forme normale de chomsky.md new file mode 100644 index 00000000..69ff3cf5 --- /dev/null +++ b/forme normale de chomsky.md @@ -0,0 +1,21 @@ +--- +aliases: + - forme normale de chomsky + - forme normale +--- +up:: [[grammaire non-contextuelle]] +author:: [[noam chomsky]] +#informatique + +> [!definition] forme normale de chomsky d'une [[grammaire non-contextuelle]] +> Une [[grammaire non-contextuelle]] est sous *forme normale de chomsky* si et seulement si toutes ses règles de production sont de la forme : +> $$\begin{cases} +> X \to YZ \\ +> \text{ou}\\ +> X \to A \\ +> ou \\ +> S \to \varepsilon +> \end{cases}$$ +> +> où $X$, $Y$ et $Z$ sont des [[grammaire symbole non terminal|symboles non terminaux]], $a$ est un [[grammaire symbole terminal|symbole terminal]], $S$ est l'[[axiome]] de la grammaire et $\varepsilon $ est le mot vide. +^definition diff --git a/gradient d'une fonction.md b/gradient d'une fonction.md new file mode 100644 index 00000000..59ab1be0 --- /dev/null +++ b/gradient d'une fonction.md @@ -0,0 +1,20 @@ +--- +aliases: + - gradient +--- +up:: [[fonction de plusieurs variables]] +#maths/analyse + + +> [!definition] gradient d'une fonction +> Dans un système de [[coordonnées cartésiennes]], soit $f$ une fonction différentiable au point $a = (x_1, x_2, \dots ,x_{n})$ +> Le gradient de $f$ en $a$, est le vecteur $\nabla f(a)$ et défini par : +> $\nabla f(a) = \begin{pmatrix}\dfrac{ \partial f }{ \partial x_1 }\\ \dfrac{ \partial f }{ \partial x_2 } \\ \vdots \\ \dfrac{ \partial f }{ \partial x_{n} }\end{pmatrix}$ +^definition + +# Propriétés + + +- Si le vecteur gradient n'est pas nul, alors : + - il pointe dans la direction où la fonction croît le plus vite + - sa [[Norme]] est égale au taux de croissance dans cette direction \ No newline at end of file diff --git a/grammaire non-contextuelle.md b/grammaire non-contextuelle.md new file mode 100644 index 00000000..71a84cef --- /dev/null +++ b/grammaire non-contextuelle.md @@ -0,0 +1,17 @@ +--- +aliases: + - grammaire hors contexte + - grammaire hors-contexte + - grammaire non contextuelle + - grammaire non-contextuelle +--- +up:: [[grammaire]] +sibling:: [[langage non-contextuel]] +#informatique + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` \ No newline at end of file diff --git a/grammaire.md b/grammaire.md new file mode 100644 index 00000000..fd2ece79 --- /dev/null +++ b/grammaire.md @@ -0,0 +1,9 @@ +up:: [[langages formels|langage formel]] + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` + diff --git a/graphe d'une fonction.md b/graphe d'une fonction.md index 9f64457a..e12b32d5 100644 --- a/graphe d'une fonction.md +++ b/graphe d'une fonction.md @@ -1,3 +1,6 @@ +--- +aliases: [] +--- up::[[fonction]] title::"$\big\{ (x;f(x)) \mid x \in \mathscr{D}_{f} \big\}$" #maths/analyse diff --git a/historique des mémoires à tore.md b/historique des mémoires à tore.md new file mode 100644 index 00000000..fb9682f4 --- /dev/null +++ b/historique des mémoires à tore.md @@ -0,0 +1,17 @@ +up:: [[mémoire à tore de ferrite]] +#informatique #physique + +# évolution des caractéristiques + +## temps d'accès + +- [<] années 50 : cycles de $6\mu s$ +- [<] début 70' : cycles de $1.2\mu s$ +- [<] fin 70' : cycles de $0.6\mu s$ + +cependant, il existait déjà des mémoires plus rapides dans les années 60 : (par exemple, celle du CDC 6600, avec un cycle de $1\mu s$, en 1964). + +## coût par bit + + + diff --git a/hystérésis magnétique.md b/hystérésis magnétique.md new file mode 100644 index 00000000..e4831f38 --- /dev/null +++ b/hystérésis magnétique.md @@ -0,0 +1,15 @@ +up:: [[hystérésis]] +#physique + + +> [!definition] hystérésis magnétique +> Le phénomène d'[[hystérésis]] observé lors de la magnétisation d'un matériau. +> +> Lorsqu'un champ magnétique externe est appliqué à matériau ferromagnétique, les dipôles magnétiques atomiques s'alignent en fonction de ce dernier. +> +> Lorsque le champ est retiré, une partie de l'alignement demeure au sein du matériau : il à été aimanté +> [source : wikipedia](https://www.wikiwand.com/fr/Hyst%C3%A9r%C3%A9sis_magn%C3%A9tique) +^definition + + + diff --git a/hystérésis élastique.md b/hystérésis élastique.md new file mode 100644 index 00000000..b863d5d1 --- /dev/null +++ b/hystérésis élastique.md @@ -0,0 +1,10 @@ +up:: [[hystérésis]] +#physique + +> [!definition] hystérésis élastique +> Lors d'une déformation élastique, il y à hystérésis. +> +> L'hystérésis élastique est la différence entre **l'énergie de déformation nécessaire** pour créer une certaine contrainte et **l'énergie d'élasticité** pour cette contrainte. Elle est égale à l'énergie dissipée sous forme de chaleur dans le matériau. +> L’hystérésis élastique divisée par l’énergie de déformation élastique donne la capacité d’amortissement. +> [source](https://www.instron.com/fr-fr/resources/glossary/elastic-hysteresis) +^definition \ No newline at end of file diff --git a/hystérésis.md b/hystérésis.md new file mode 100644 index 00000000..4c7a15d6 --- /dev/null +++ b/hystérésis.md @@ -0,0 +1,19 @@ +up:: [[physique]] +#physique + +> [!definition] hystérésis +> Propriété d'un système dont l'évolution ne suit pas le même chemin selon qu'une cause extérieure augmente ou diminue +^definition + +> [!definition] hystérésis +> Soit une grandeur *cause* notée $C$ produisant une grandeur *effet* notée $E$. +> On dit qu'il y à hystérésis lorsque la courbe $E = f(C)$ obtenue à la croissance de $C$ ne se superpose pas avec la courbe $E = f(C)$ obtenue à la décroissance de $C$. +^definition-formelle + + +> [!info] Cause +> En général, l'hystérésis est due au fait que les variations de $E$ ne sont pas totalement [[système réversible|réversibles]]. +> Par exemple, la magnétisation d'un matériau par un courant électrique qui persiste lorsque le courant à disparu ([[hystérésis magnétique]]). + + + diff --git a/idée présentations salsiphi.md b/idée présentations salsiphi.md new file mode 100644 index 00000000..b789993a --- /dev/null +++ b/idée présentations salsiphi.md @@ -0,0 +1,18 @@ +--- +tags: + - PKM +--- +up:: [[salsiphi]], [[post queues]] +#science + + +> [!todo] meilleurs xkcd +> trouver les meilleurs xkcd et décrire le lore + + + +> [!done] Outlines +> Pourquoi les outlines sont un format d'information très pratique ? +> En quoi les outlines sont le format central de l'information ? +> [[présentation sur les outlines]] + diff --git a/importance des corps de métier.md b/importance des corps de métier.md index b8646525..ac968542 100644 --- a/importance des corps de métier.md +++ b/importance des corps de métier.md @@ -1,7 +1,7 @@ --- alias: [ "corps de métier" ] --- -up:: [[politique]] +up:: [[travail]] title:: #politique diff --git a/java héritage.md b/java héritage.md index e6b23faa..3bae40d5 100644 --- a/java héritage.md +++ b/java héritage.md @@ -1,7 +1,7 @@ --- alias: "héritage" --- -up::[[java]], [[paradygme programmation orientée objet|OOP]] +up::[[java]], [[programmation orientée objet java|OOP java]] #informatique ---- diff --git a/java objets.md b/java objets.md index 03978db9..8434c8c7 100644 --- a/java objets.md +++ b/java objets.md @@ -1,4 +1,4 @@ -up::[[java]], [[paradygme programmation orientée objet|OOP]] +up::[[java]], [[programmation orientée objet java|OOP java]] #informatique ---- diff --git a/java.md b/java.md index eda95799..c50f95df 100644 --- a/java.md +++ b/java.md @@ -1,5 +1,5 @@ up::[[langage de programmation]] -title::"[[paradygme programmation orientée objet|OOP]], haut niveau" +title::"[[paradigme programmation orientée objet|OOP]], haut niveau" #informatique ---- @@ -13,7 +13,7 @@ title::"[[paradygme programmation orientée objet|OOP]], haut niveau" > ``` # OOP -voir : [[paradygme programmation orientée objet|OOP]] +voir : [[paradigme programmation orientée objet|OOP]] diff --git a/kanban soirée jeux.md b/kanban soirée jeux.md index 5e2cda1e..dab738d9 100644 --- a/kanban soirée jeux.md +++ b/kanban soirée jeux.md @@ -6,12 +6,13 @@ kanban-plugin: basic ## :fas_list: A faire +- [ ] Choisir date : 18 - [ ] Mail pour la salle - [ ] Mail à Romain +- [ ] Créer affiche - [ ] Com par mail (envoyer l'affiche)
      [[plan com soirées jeux]] - [ ] Acheter nourriture - [ ] Etre sûr d'avoir des jeux -- [ ] Créer affiche ## :luc_send: Envoyé
      (attente de réponse) @@ -24,7 +25,6 @@ kanban-plugin: basic ## :fas_check: fait -- [ ] Choisir date : 18 diff --git a/langage accepté par une machine de Turing.md b/langage accepté par une machine de Turing.md new file mode 100644 index 00000000..9aecfe8c --- /dev/null +++ b/langage accepté par une machine de Turing.md @@ -0,0 +1,9 @@ +up:: [[machine de turing]], [[langages formels|langage formel]] +#informatique + +> [!definition] langage accepté par une machine de Turing +> Un [[langages formels|langage]] est accepté par une [[machine de turing]] $M$ si pour tout mot de ce langage, l'exécution de $M$ conduit à un état acceptateur. +> +> On ne sait pas ce qui se passe pour les mots qui n'appartiennent pas au langage. +^definition + diff --git a/langage de description de schéma XML.md b/langage de description de schéma XML.md new file mode 100644 index 00000000..70195a8b --- /dev/null +++ b/langage de description de schéma XML.md @@ -0,0 +1,15 @@ +--- +aliases: + - langage de schéma XML +--- +down:: [[DTD]] +up:: [[xml]], [[langage descriptif]] +#informatique + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` + diff --git a/langage de programmation.md b/langage de programmation.md index 94ce33a5..4a5786af 100644 --- a/langage de programmation.md +++ b/langage de programmation.md @@ -1,7 +1,13 @@ up:: [[programmation]], [[langages]] #informatique ----- +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> depth: -1 +> ``` # Liste des langages Listes des langages référencés dans ce vault @@ -11,11 +17,4 @@ FROM #informatique WHERE up = this.file.link ``` -> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` -> ```breadcrumbs -> title: false -> type: tree -> dir: down -> depth: -2 -> ``` diff --git a/langage descriptif.md b/langage descriptif.md new file mode 100644 index 00000000..47e23bc3 --- /dev/null +++ b/langage descriptif.md @@ -0,0 +1,12 @@ +up:: [[langages]] +#informatique + + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` + + diff --git a/langage décidé.md b/langage décidé.md new file mode 100644 index 00000000..2001a2a7 --- /dev/null +++ b/langage décidé.md @@ -0,0 +1,13 @@ +up:: [[langages formels|langage formel]], [[machine de turing]] +sibling:: [[décidabilité]] +#informatique + +> [!definition] langage décidé +> Un langage est dit *décidé* si il est [[langage accepté par une machine de Turing|accepté]] par une [[machine de turing]] ET que cette machine n'a aucune exécution infinie. +> +> Cela garantit que : +> - tout mot du langage représente une instance d'un [[problème de décision]] +> - on peut toujours dire **en un temps fini** si la réponse au problème de décision modélisé est VRAI ou FAUX +^definition + + diff --git a/le travail n'est pas une valeur morale, c'est pourquoi il a une valeur marchande.md b/le travail n'est pas une valeur morale, c'est pourquoi il a une valeur marchande.md new file mode 100644 index 00000000..c6ae20ca --- /dev/null +++ b/le travail n'est pas une valeur morale, c'est pourquoi il a une valeur marchande.md @@ -0,0 +1,25 @@ +--- +aliases: + - le travail n'est pas une valeur morale, c'est pourquoi il a une valeur marchande + - Le travail n'est pas un devoir, c'est pourquoi il a un prix + - Le travail en lui-même ne vaut rien - au sens des valeurs morales - c'est pourquoi on le paie + - André Comte-Sponville le travail n'est pas une valeur morale, c'est pourquoi il a une valeur marchande +--- +author:: [[André Comte-Sponville]] +source:: +link:: +date-seen::2024-03-04 +#citation + +> [!cite] Titre +> Le travail n'est pas une valeur morale, c'est ce que prouvent le premier mai, les vacances, et le salaire (c'est-à-dire, au fond, trois conquêtes syndicales). +> Le travail en lui-même ne vaut rien - au sens des valeurs morales - c'est pourquoi on le paie. +> Il n'est pas une valeur morale, c'est pourquoi il a une valeur marchande. +> Il n'est pas un devoir, c'est pourquoi il a un prix. +^cite + +## Interprétation +- argument contre la [[valeur travail]] +- opposition entre : + - ce qui est une valeur morale, un devoir, ce qui a une valeur en soi + - ce qui a une valeur marchande, ce que l'on paie, ce que l'on fait contre rémunération diff --git a/machine de turing.md b/machine de turing.md new file mode 100644 index 00000000..476aeb60 --- /dev/null +++ b/machine de turing.md @@ -0,0 +1,10 @@ +up:: [[automate]] +#informatique + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` + diff --git a/matrice hessienne.md b/matrice hessienne.md new file mode 100644 index 00000000..7ab3ca2d --- /dev/null +++ b/matrice hessienne.md @@ -0,0 +1,33 @@ +up:: [[points critiques d'une fonction]], [[fonction de plusieurs variables]] +#maths/analyse + +> [!definition] matrice hessienne +> Soit une fonction $\begin{align} f :\;& \mathbb{R}^{n}\to\mathbb{R}\\&(x_1, x_2, \dots ,x_{n}) \mapsto f(x_1,\dots,x_{n}) \end{align}$ +> +> Dont toutes les [[dérivée partielle|dérivées partielles]] secondes existent. +> La matrice hessienne de $f$, $H(f)$ est définie comme : +> +> $\displaystyle H_{ij}(f) = \frac{ \partial f }{ \partial x_{i} \partial x_{j} }$ +> +> Donc : +> +> $$ H(f) = +> \begin{pmatrix} +> \dfrac{ \partial f }{ \partial {x_1}^{2} } & \dfrac{ \partial f }{ \partial x_1 \partial x_2 } & \cdots & \dfrac{ \partial f }{ \partial x_1 \partial x_{n} } \\ +> \dfrac{ \partial f }{ \partial x_2 \partial x_1 } & \dfrac{ \partial f }{ \partial x_2 \partial x_2 } & \cdots & \dfrac{ \partial f }{ \partial x_2 \partial x_{n} } \\ +> \vdots & \vdots & \ddots & \vdots \\ +> \dfrac{ \partial f }{ \partial x_n \partial x_1 } & \dfrac{ \partial f }{ \partial x_n \partial x_2 } & \cdots & \dfrac{ \partial f }{ \partial x_n \partial x_{n} } \\ +> \end{pmatrix} +> $$ +> +> Le [[déterminant hessien]] permet de déduire des propriétés sur la fonction (points critiques) +^definition + +> [!definition] Définition par rapport au [[gradient d'une fonction|gradient]] +> Soit $\nabla f$ le [[gradient d'une fonction|gradient]] de $f$, on a : +> $H_i(f) = \dfrac{ \partial \nabla f }{ \partial x_{i} }$ +> Soit : +> $\displaystyle H_{ij}(f) = \frac{ \partial }{ \partial x_{i} } \left( \nabla f \right)_{j}$ + +# Propriétés +- [[déterminant hessien]] diff --git a/matrice.md b/matrice.md index dacc09c2..c49632ac 100644 --- a/matrice.md +++ b/matrice.md @@ -10,8 +10,8 @@ $A=\begin{pmatrix} 0 &1 & 2 & 3\\ 4 & 5 & 6 & 7\\ 8 & 9 & 10 & 11\\ \end{pmatrix # Élément d'une matrice -On note $A_{i,j}$ l'élément à la ligne $i$ et à la colonne $j$. -$A_{2,3} = 6$ +On note $\displaystyle A_{i,j}$ l'élément à la ligne $i$ et à la colonne $j$. +$\displaystyle A_{2,3} = 6$ # Opérations sur les matrices : diff --git a/mermaid-cli.md b/mermaid-cli.md new file mode 100644 index 00000000..c1d5185d --- /dev/null +++ b/mermaid-cli.md @@ -0,0 +1,4 @@ +up:: [[terminal commandes]] +#informatique + +Outil pour compiler le mermaid en images png/svg/pdf \ No newline at end of file diff --git a/mesurer l'importance dans un graphe de connaissances.md b/mesurer l'importance dans un graphe de connaissances.md new file mode 100644 index 00000000..85ddab30 --- /dev/null +++ b/mesurer l'importance dans un graphe de connaissances.md @@ -0,0 +1,32 @@ +up:: [[graphe de connaissances]] +link:: https://www.rankingdom.org/ +#informatique + + + +> [!idea] Idée clef +> On peut mesurer l'importance par le nombre de liens (entrants/sortants) + + +> [!definition] Champ +> Les noeuds qui partent du sujet mesuré. +> Le **champ** est donc le **[[degré d'un graphe|degré]] sortant** +> Ex: L'*art* fait partie du champ de *la peinture* + +> [!definition] Influence +> Les noeuds qui arrivent sur le sujet mesuré. +> L'**influence** est donc le **[[degré d'un graphe|degré]] entrant** +> Ex: *Picasso* fait partie de l'influence de *la peinture* + + + +> [!note] Site utilisant ce principe +> Rankingdom : site créé par le LIFAT +> https://www.rankingdom.org/ +> +> Organisation des données : +> - de plus général à plus spécifique +> - réflexion sur l'organisation des données présentées, sur leur "lisibilité" + + + diff --git a/militantisme.méthodes d'action.md b/militantisme.méthodes d'action.md index 04252ae6..6a18980c 100644 --- a/militantisme.méthodes d'action.md +++ b/militantisme.méthodes d'action.md @@ -1,7 +1,7 @@ up:: [[militantisme]] #politique -> [!query]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` > ```breadcrumbs > title: false > type: tree diff --git a/mémoire de L3.md b/mémoire de L3.md new file mode 100644 index 00000000..e973d584 --- /dev/null +++ b/mémoire de L3.md @@ -0,0 +1,19 @@ +#informatique #fac + + +# Sujet + +- il existe de nombreux paradigmes de programmation +- sachant que tous les langages turing-complets sont formellement équivalents (ils ont la même capacité à exprimer l'ensemble des problèmes calculables), l'existance de tant de paradigmes différents peut sembler étonnante, voire inutile. +- Nous allons étudier : + - une définition de ce qu'est un paradigme de programmation + - une présentation de plusieurs paradigmes + - en quoi certains paradigmes sont plus adaptés + - pour l'apprentissage + - pour la résolution de problèmes particuliers + - pour l'expression de problèmes (pouvoir d'expression) + +Il existe de nombreux paradigmes de programmation. Puisque tous les langages turing-complets sont formellement équivalents (ils ont la même capacité à exprimer l'ensemble des problèmes calculables), l'existance de tant de paradigmes différents peut sembler étonnante, voire inutile. Nous essayerons de comprendre pourquoi il existe tant de paradigmes différents. Nous présenteront d'abord une définition de ce qu'est un paradigme de programmation, puis nous exposeront en quoi différents paradigmes sont plus adaptés pour différentes raisons : pour l'apprentissage, pour la résolution ou l'expression de certains types de problèmes et pour les apports que fait chaque paradigme en général. + + + diff --git a/mémoire à cordes de ferrites.md b/mémoire à cordes de ferrites.md new file mode 100644 index 00000000..cfb4f123 --- /dev/null +++ b/mémoire à cordes de ferrites.md @@ -0,0 +1,36 @@ +up:: [[mémoire à tore de ferrite]] +#informatique #physique + + +> [!definition] mémoire à cordes de ferrites +> La mémoire à cordes de ferrites (*core rope memory*) est un type de [[mémoire ROM]]. +> Le principe est d'écrire des 1 ou des 0 en faisant passer ou non des fils électriques dans un toroide magnétique. +> Les toroides sont ensuite utilisés, non pas pour stocker des valeurs, mais pour faire le décodage des addresses. +> +^definition + +# Fonctionnement + + +## Encodage + +![[mémoire à cordes de ferrites 2024-02-15 20.04.20.excalidraw|1100]] + +Chaque adresse mémoire à son propre toroide. +Chaque fil peut passer ou non dans ce toroide. +- Un fil qui **passe** dans ce toroide représente un bit 1 à cette adresse. +- Un fil qui ne **passe pas** dans ce toroide représente un bit 0 à cette adresse. +On divise les fils en groupes pour chaque mot. Des circuits s'occupent de la commutation entre les mots ([[multiplexage]]) + +## Lecture + +Les toroides servent à l'adressage. +La lecture fonctionne avec le cycle suivant : +- On envoie une impulsion sur le câble `Reset` pour aligner la polarisation de tous les toroides +- On choisit les bons câbles d'inhibition pour inhiber tous les toroides sauf celui de l'adresse qu'on veut lire + - On envoie une impulsion dans le câble `Set`, pour inverser la polarité du toroide choisi +- On envoie une impulsion dans le câble `Reset` + - Le toroide choisi a sa polarité inversée + - le changement de polarité induit un courrant électrique dans tous les câbles qui passent au travers, donc on peut lire le mot qui nous intéresse. + + diff --git a/mémoire à tore de ferrite.md b/mémoire à tore de ferrite.md new file mode 100644 index 00000000..a03a419c --- /dev/null +++ b/mémoire à tore de ferrite.md @@ -0,0 +1,62 @@ +up:: [[mémoire]] +#informatique #physique + +> [!definition] mémoire à tore de ferrite +> Type de [[mémoire]] qui utilise l'[[hystérésis magnétique]] pour stocker de l'information binaire dans un toroide de métal magnétique (notamment la ferrite). +^definition + +# Fonctionnement + +> [!info] Stockage par [[hystérésis magnétique]] +> Un tore de ferrite est capable de garder une magnétisation imposée, grâce à son [[hystérésis magnétique]]. +> Plus particulièrement, son hystérésis fait que, lorsqu'elle est exposée à un courant électrique suffisamment fort dans une orientation, le [[courant de foucault]] créée un flux magnétique à travers le toroide, et peut changer sa polarisation magnétique. +> +> Pour stocker des données, on décide d'une polarisation qui correspond au 0 binaire, et la polarisation opposée correspondra au 1 binaire. + +> [!note]- écriture +> Pour écrire sur un toroide, il suffit de le faire traverser par un courant électrique suffisamment [[intensité électrique|intense]] dans la bonne direction pour fixer sa polarisation. +> +> Il faut donc faire passer un fil à l'intérieur du tore. Selon l'orientation du courant, et si l'intensité est suffisante, le tore prendra la même polarisation que courant du fil qui le traverse. +> +> Certaines mémoires à tore utilisent plusieurs fils pour l'écriture : +> - un fil `Reset`, qui est dans l'orientation du 0 (il écrit 0 sur le tore si un courrant le traverse) +> - un fil `Set`, qui est dans l'orientation du 1 (il écrit A sur le tore si un courant le traverse) +> - parfois un fil `Inhibit`, qui inhibe l'action du `Set`, c'est-à-dire qu'il est impossible de faire passer un tore à 1 si un courant traverse ce fil + +> [!note]- Lecture +> Il est compliqué de détecter précisément un champ magnétique statique. Cependant, un champ magnétique qui s'inverse génère une impulsion électrique si il traverse un conducteur (l'inversion du champ magnétique génère un flux magnétique dans le conduction, ce qui génère un courant par induction). +> +> Il est donc possible de connaître l'état d'un tore de ferrite en le "forcant" à adopter une polarité. +> +> Pour connaître l'orientation contenue dans un tore, il suffit donc de le forcer à changer ver une orientation donnée. Si l'orientation ne change pas, aucun flux magnétique important ne sera généré par le tore. Si l'orientation s'inverse, un flux magnétique sera généré, et un cable qui passe à travers le tore recevra une impulsion électrique. +> +> Voici le shéma d'un tore avec 3 fils : +> +> ![[mémoire à tore de ferrite 2024-02-15 01.02.52.excalidraw]] +> +> Un cycle de lecture serait d'envoyer une impulsion dans le fil `Reset`. Deux cas de figure sont alors possible : +> - le tore est dans l'orientation 0, le courant dans `Reset` ne change pas sa polarisation et le tore ne génère pas de flux magnétique important +> - le tore est dans l'orientation 1, le courant dans `Reset` **change sa polarisation** et le tore génère un flux magnétique, qui induit une impulsion électrique dans le fil `Sense` +> +> +> > [!attention] Lecture destructive +> > Puisqu'il faut forcément mettre le tore à 0 pour pouvoir lire son état, la lecture de l'état du tore est **destructive** : elle supprime l'information. +> > +> > Il est donc important d'implémenter un cycle **écriture-après-lecture**, qui permet de réécrire la valeur sur le tore si elle à été perdue. +> > +> > > [!NOTE]- Instructions assembleurs spécifiques +> > > Certains processeurs utilisant ces mémoires ont implémenté des instructions assembleur qui profitaient de ce cycle écriture-après-lecture, par exemple des instructon qui inversent directement des bits dans la mémoire, sans avoir à passer par un registre. + + +# Types de mémoire + +- [[mémoire à tore de ferrite matricielle]] +- [[mémoire à cordes de ferrites]] + + +> [!query]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` \ No newline at end of file diff --git a/mémoire.md b/mémoire.md index 95bbdd3f..670f1f9c 100644 --- a/mémoire.md +++ b/mémoire.md @@ -1,36 +1,15 @@ -up::[[architecture des ordinateurs]] -#informatique +--- +aliases: + - mémoire (informatique) +tags: + - informatique +--- +up:: [[architecture des ordinateurs]] ----- - - - espace de [[stockage des données]] - - composées de circuits logiques - - - quantifiée en fonction de : - - son coût - - son temps de réponse - - sa taille - - - mémoire de stockage (hors [[registres]]) - - se retrouve partout <== pour accélérer les échanges - - différence entre certains processeurs - - malgré des mêmes [[registres]] - -> [!note] différence ROM/RAM -> - ROM : lecture seule -> - RAM : écriture - - - -# Types de mémoire -![[mémoire 2022-09-21 10.21.29.excalidraw|600]] - -# Sous-notes -> [!query] Sous-notes de `=this.file.link` -> ```dataview -> TABLE title, up as "Up", up.up as "2-Up", up.up.up as "3-Up", up.up.up.up as "4-Up" -> FROM -#cours AND -#exercice AND -"daily" AND -#excalidraw AND -#MOC -> WHERE econtains(list(up, up.up, up.up.up, up.up.up.up), this.file.link) -> WHERE file.link != this.file.link -> SORT up.up.up.up, up.up.up, up.up, up +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down > ``` + diff --git a/naissance du capitalisme.md b/naissance du capitalisme.md new file mode 100644 index 00000000..df554f07 --- /dev/null +++ b/naissance du capitalisme.md @@ -0,0 +1,2 @@ +up:: [[capitalisme]] + diff --git a/noam chomsky.md b/noam chomsky.md new file mode 100644 index 00000000..d7490dc3 --- /dev/null +++ b/noam chomsky.md @@ -0,0 +1,14 @@ +title:: +link:: +#personne + +Linguiste et informaticien. + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` + + diff --git a/obsidian syntaxe.md b/obsidian syntaxe.md index ded7ac71..801625e0 100644 --- a/obsidian syntaxe.md +++ b/obsidian syntaxe.md @@ -2,7 +2,6 @@ up:: [[obsidian]] title::"syntaxe de base de obsidian" #obsidian ----- # Titres diff --git a/paradigme de l'assignation simultanée.md b/paradigme de l'assignation simultanée.md new file mode 100644 index 00000000..e44be994 --- /dev/null +++ b/paradigme de l'assignation simultanée.md @@ -0,0 +1,40 @@ +up:: [[paradigme de programmation|paradigmes]] +source::[[floydParadigmsProgramming1979]] +#informatique + +> [!definition] paradigme de l'assignation simultanée +> Consiste à faire en sorte que plusieurs variables soient modifiées sans que leurs effets de bord ne se mélangent (les effets de bord sont "reardés" après l'assignation). +> Cela est équivalent à imaginer que ces assignations se font simultanément +^definition + + +> [!example] Exemple +> Si on veut ajouter la valeur de `f(Y)` à `X` et à `Y` : +> ```python +> temp = f(Y) +> X += temp +> Y += temp +> ``` + + +> [!example] Exemple - modèle proie-prédateur +> Si on à un modèle proie-prédateur de la forme : +> $W' = f(W, R)$ +> $R' = g(W, R)$ +> +> Un débutant coderait ceci : +> ```python +> for _ in range(...): +> W = f(W, R) +> R = f(W, R) +> ``` +> +> Le problème est que la plupart des lagages ne supportent pas directement l'assignation simultanée. Il faut donc faire : +> +> ```python +> for _ in range(...): +> temp = f(W, R) +> W = f(W, R) +> R = f(W, R) +> W = temp +> ``` diff --git a/paradigme de programmation.md b/paradigme de programmation.md new file mode 100644 index 00000000..4bcad1a5 --- /dev/null +++ b/paradigme de programmation.md @@ -0,0 +1,32 @@ +--- +aliases: + - paradigmes de programmation + - paradigmes +--- +up:: [[programmation]] +source:: [[ParadigmeProgrammation]] +#informatique + +> [!definition] paradigme de programmation +> Un paradigme est une façon d'approcher la [[programmation]] et de formuler les problèmes et leurs formalisation dans un [[langage de programmation]]. Ce n'est pas la méthodologie (concept plus bas niveau). +> +> Le paradigme fournit (et détermine) la vision du développeur sur l'exécution de son programme. +^definition + + +> [!example] Exemples de paradigmes +> - [[paradigme programmation orientée objet|programmation orientée objet]] +> - on considère un programme comme un ensemble d'objets qui intéragissent +> - [[paradigme programmation fonctionnelle|programmation fonctionnelle]] +> - on considère un programme comme l'évaluation de fonctions sans état + + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> depth: -1 +> ``` + + diff --git a/paradigme programmation concurrente.md b/paradigme programmation concurrente.md new file mode 100644 index 00000000..e67a4832 --- /dev/null +++ b/paradigme programmation concurrente.md @@ -0,0 +1,14 @@ +up:: [[paradigme de programmation]] +#informatique + + +> [!definition] programmation concurrente +> Lorsque plusieurs "fils d'exécution", plusieurs [[processus]], plusieurs +^definition + + + +> [!cite] Définition wikipedia (en) +> **Concurrent computing** is a form of [computing](https://www.wikiwand.com/en/Computing "Computing") in which several [computations](https://www.wikiwand.com/en/Computation "Computation") are executed _[concurrently](https://www.wikiwand.com/en/Concurrency_(computer_science) "Concurrency (computer science)")_—during overlapping time periods—instead of _sequentially—_with one completing before the next starts. + + diff --git a/paradigme programmation dynamique.md b/paradigme programmation dynamique.md new file mode 100644 index 00000000..1f741e86 --- /dev/null +++ b/paradigme programmation dynamique.md @@ -0,0 +1,4 @@ +up:: [[paradigme de programmation]] +#informatique + + diff --git a/paradigme programmation modulaire.md b/paradigme programmation modulaire.md new file mode 100644 index 00000000..f14fa79b --- /dev/null +++ b/paradigme programmation modulaire.md @@ -0,0 +1,3 @@ +up:: [[paradigme de programmation]] +#informatique + diff --git a/paradigme programmation orientée objet.md b/paradigme programmation orientée objet.md new file mode 100644 index 00000000..c58ce7b2 --- /dev/null +++ b/paradigme programmation orientée objet.md @@ -0,0 +1,25 @@ +--- +alias: ["orienté objet", "programmation orientée objet", "OOP"] +--- +up::[[paradigme de programmation]] +#informatique + +Contrairement a la programmation [[paradigme programmation procédurale|procédurale]] (définition de _procédures_), la programmation _orientée objet_ repose sur la définition de _classes_, qui instancient des *objets*. + +En programmation orientée objet, on considère un programme comme un ensemble d'objets qui intéragissent. + +> [!définition] Classe +> - _champs_ : données manipulées par la classe +> - _méthodes_ : permettent : +> - de modifier / calculer les attributs +> - d'interagir avec d'autres objets + + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> depth: -2 +> ``` + diff --git a/paradigme programmation procédurale.md b/paradigme programmation procédurale.md new file mode 100644 index 00000000..350157a2 --- /dev/null +++ b/paradigme programmation procédurale.md @@ -0,0 +1,2 @@ +up:: [[paradigme de programmation]] +#informatique diff --git a/paradygme de programmation.md b/paradygme de programmation.md deleted file mode 100644 index 369e07bf..00000000 --- a/paradygme de programmation.md +++ /dev/null @@ -1,15 +0,0 @@ -up:: [[programmation]] -title:: -#informatique - ---- - - - -> [!query] sous-notes directes de `=this.file.link` -> ```dataview -> LIST title -> FROM "" -> WHERE econtains(up, this.file.link) -> ``` - diff --git a/paradygme programmation orientée objet.md b/paradygme programmation orientée objet.md deleted file mode 100644 index d8f4f62b..00000000 --- a/paradygme programmation orientée objet.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -alias: ["orienté objet", "programmation orientée objet", "OOP"] ---- -up::[[paradygme de programmation]] -#informatique - ----- - -Contrairement a la programmation [[paradygme programmation procédurale|procédurale]] (définition de _procédures_), la programmation _orientée objet_ repose sur la définition de _classe_ - -> [!définition] Classe -> - _champs_ : données manipulées par la classe -> - _méthodes_ : permettent : -> - de modifier / calculer les attributs -> - d'interagir avec d'autres objets - - - diff --git a/phrases.md b/phrases.md index 07521006..e1e96421 100644 --- a/phrases.md +++ b/phrases.md @@ -1,7 +1,5 @@ #autres ----- - # Claire > - j'ai un truc qui bloque le levier de vitesse @@ -12,11 +10,10 @@ - je suis malade, j'ai du mal à ne plus l'être -# Eric - # Oscar - "Dans mon contrôle de maths, pour avoir $20$, il fallait avoir $0$" - Tu as entendu, Oscar ? Gérard a dit que tu avais des parents intelligents ! Et Oscar de répondre : « s’il a fallu quelqu’un d’aussi intelligent que lui pour le remarquer, c’est que c’était pas facile à voir ! » + - "qui à fait l'appel du 18 juin ? Je sait pas, mais il devait pas être bien après 18 joints" # Samuel - Pourquoi les plongeurs basculent en arrière ? Parce que si ils basculent en avant, ils tombent dans le bateau. @@ -43,6 +40,9 @@ - Max Lemoine - "je sais écrire mon prénom en anglais" - "ta tête, elle te va bien !" + - Dario Weinberger + - "Mais non, c'est juste que je suis né avant les autres" + diff --git a/politique.md b/politique.md index 47dad981..2f021e9d 100644 --- a/politique.md +++ b/politique.md @@ -17,6 +17,15 @@ title:: > title: false > type: tree > dir: down -> depth: -3 +> depth: -1 +> ``` + + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> depth: -2 > ``` diff --git a/presentation_outlines.md b/presentation_outlines.md new file mode 100644 index 00000000..57a90908 --- /dev/null +++ b/presentation_outlines.md @@ -0,0 +1,270 @@ +--- +title: "" +--- + +```h2 +Bonjour +``` + +--- + +```h2 +Aujourd'hui +``` + +--- + + +```h1 +EMACS +``` + +--- + +# Les raccourcis EMACS + +. . . + + 1. Brève histoire + 2. Principe + 3. Modularité et extensibilité + 4. Comparaison avec vim + 5. Conclusion + 6. Exemples supplémentaires + +--- + + +# Les raccourcis EMACS + +. . . + +EMACS = Extensible MACro System + +. . . + +EMACS = Eight Mega And Constantly Swappig + +. . . + +EMACS = Esc Meta Alt Control Shift + + +--- + +```h1 +Gotcha ! +``` +(catch chem all) + +--- + +# Les *Outline* + +En quoi les *outlines* sont le format central d'expression de l'information ? + +--- + +## 1. L'information textuelle + +> - manipulable +> - conservable +> - extraits, citations + + +--- + +## 2. Les *outlines* + +> - Texte indenté +> > - indentation sémantique +> > > - meilleur compromis visuel / pratique +> > - idées séquentielles ou en vrac +> > > - numérotation +> > > - dates +> > > - symboles +> > - manipulabilité +> > > - facile à créer +> > > - texte seulement +> > > - outliners + +--- + +## 2. Les *outlines* + +```h2 +c'est cool ! +``` + +--- + +## 3. Le centre de tous les formats + +``` + + + + + .--------. + |outlines| + '--------' + + + + + + +``` + +--- + +## 3. Le centre de tous les formats + +``` + + + + texte à chapitres + .--------. / + |outlines| ----------' + '--------' + + + + + + +``` + +--- + +## 3. Le centre de tous les formats + +``` + + texte rédigé + / + texte à chapitres------' + .--------. / + |outlines| ----------' + '--------' + + + + + + +``` + +--- + +## 3. Le centre de tous les formats + +``` + + texte rédigé + / | + texte à chapitres------' | + .--------. / / + |outlines| ----------' / + '--------' vidéo + + + + + + +``` + +--- + +## 3. Le centre de tous les formats + +``` + + texte rédigé + / | + texte à chapitres------' | + .--------. / / + .--------- |outlines| ----------' / + / '--------' vidéo + cartes mentales + + + + + +``` + +--- + +## 3. Le centre de tous les formats + +``` + + texte rédigé + / | + texte à chapitres------' | + .--------. / / + .--------- |outlines| ----------' / + / '--------' vidéo + cartes mentales \_________ + \ + slides textuelles + + + +``` + +--- + +## 3. Le centre de tous les formats + +``` + + texte rédigé + / | + texte à chapitres------' | + .--------. / / + .--------- |outlines| ----------' / + / '--------' vidéo + cartes mentales \_________ + \ + slides textuelles + \______ + \ + slides +``` + +--- + +## 3. Le centre de tous les formats + +``` +.-------------------------------------------------------------------. +| texte rédigé| +| / | | +| texte à chapitres------' | | +| .--------. / / | +| .--------- |outlines| ----------' / | +| / '--------' vidéo | +|cartes mentales \_________ | +| \ | +| slides textuelles | +| \______ | +| \ | +| slides | +'-------------------------------------------------------------------' +``` + +--- + +## 4. Limitations + + + - moins visuel qu'une carte mentale + - liens complexes / organisations riches + +--- +penser à proposer un secrétariat + diff --git a/principe du parapluie.md b/principe du parapluie.md new file mode 100644 index 00000000..eda6112e --- /dev/null +++ b/principe du parapluie.md @@ -0,0 +1,29 @@ +--- +aliases: + - principe du parapluie + - parapluie +--- +up:: +#maths #philosphie + +> [!definition] parapluie +> Un parapluie désigne, en matématiques, une combinaison particulière de deux fonctions : +> $$\boxed{f^{-1}\circ g \circ f}$$ +> +> En général, cela désigne le fait de réaliser un processus $g$, mais de réaliser d'abord un processus $f$, et ensuite un processus $f^{-1}$ qui est la [[fonction réciproque|réciproque]] de $f$. +> +> L'intérêt est d'exécuter $g$ dans le contexte apporté par $f$, mais sans garder ce contexte. +> Par exemple : +> 1. mettre le parapluie ($f$) +> 2. traverser le pont ($g$) +> 3. enlever le parapluie ($f^{-1}$) +> Cela permet de traverser le pont sans être mouillé, mais les autres paramètres sont inchangés (on a pas gardé le parapluie). +^definition + +# Exemples + +- lorsque l'on pose une clef sous le paillasson : + 1. on prends la clef sous le paillasson + 2. on ouvre la porte + 3. on remet la clef sous le paillasson + diff --git a/principes FAIR.md b/principes FAIR.md new file mode 100644 index 00000000..3e43dd34 --- /dev/null +++ b/principes FAIR.md @@ -0,0 +1,53 @@ +sibling:: [[science ouverte]] +#informatique + +> [!definition] +> FAIR : +> - Findable +> - A +> - Interoperable +> - Reusable +> +> pas nécessairement ouvert (peut être privatif) +> +^definition + +# FAIR + +## Findable +- pouvoir identifier des objets +- indexer les données (médadonnées pour avoir un index unique) + +## Accessible +- interdiction de limiter l'accès + - [c] on ne veut pas : + - demander le l'argent + - demander une authentification (carte de crédit) + +## Interoperable +- standardisation des métadonnées +- donner un format universel et précis +- la standardisation + +## Reusable +- préciser le contexte des informations + - dater les informations + - pour que l'information soit réutilisable : même les informations qui fluctuent dans le temps deviennent réutilisable si on les date + - préciser la langue + +# Historique + +- [<] 2007 : 'Principles and Guidelines for Acess to Research Data from Public Funding', OCDE +- [<] 2014 : workshop : 'Jointly Designing a Data Fairport' + - acteurs académiques et privés + - création des prinipes FAIR +- [<] 2016 : principes FAIR + + +# Voir + +- il existe des calculateurs FAIR + - verrifier automatiquement si une ressource respecte les principes FAIR + - [FAIR-Checker](https://fair-checker.france-bioinformatique.fr/) + + diff --git a/problèmes des mémoires à tores de ferrite.md b/problèmes des mémoires à tores de ferrite.md new file mode 100644 index 00000000..ac424e6f --- /dev/null +++ b/problèmes des mémoires à tores de ferrite.md @@ -0,0 +1,30 @@ +--- +aliases: + - désavantages des mémoires à tores de ferrite +--- +up:: [[mémoire à tore de ferrite]] +opposes:: [[avantages des mémoires à tores de ferrite]] +#informatique #physique + +# Sensibilité à la température + +Malgré son insensibilité à beaucoup de perturbations (impulsions électromagnétiques, rayonnements radioactifs), la mémoire à tore de ferrite est sensible à la **température**. + +Plusieurs stratégies ont été mises en place : + - thermistance pour réguler le flux de courant en fonction de la température ambiante + - régulation de la température de la mémoire + - refroidir est plus compliqué, chauffer la mémoire est plus simple + - problème : cela prends du temps (démarrage qui prends parfois jusqu'à 30 minutes) + +# Fabrication + +La fabrication des mémoires à tore de ferrite à toujours été faîte à la main. De nombreuses tentatives d'automatisation ont conduit à des procédés semi-automatiques, mais le passage des fils au travers des matrices de tores s'est toujours fait à la main. + +# Dépannage + +Le diagnostic et le dépannage est lent, car il faut tester chaque tore sous diverses conditions. + +Le dépannage consistait parfois à taper doucement, ce qui déplacait les tores, et pouvait les réaligner. + +Ceci dit, les problèmes étaient rares, car ces mémoires étaient fiables comparativement aux autres composants des ordinateurs de l'époque. + diff --git a/programmation orientée objet java.md b/programmation orientée objet java.md new file mode 100644 index 00000000..a3be4adf --- /dev/null +++ b/programmation orientée objet java.md @@ -0,0 +1,7 @@ +--- +aliases: + - OOP java +--- +up:: [[paradigme programmation orientée objet]] +#informatique + diff --git a/programmation serveur (backend).md b/programmation serveur (backend).md new file mode 100644 index 00000000..fbb886b4 --- /dev/null +++ b/programmation serveur (backend).md @@ -0,0 +1,15 @@ +--- +aliases: + - backend + - programmation côté serveur + - programmation serveur +--- +up:: [[programmation web]] +#informatique + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` \ No newline at end of file diff --git a/programmation structurée.md b/programmation structurée.md new file mode 100644 index 00000000..f5f27a5c --- /dev/null +++ b/programmation structurée.md @@ -0,0 +1,27 @@ +--- +aliases: + - programmation structurée + - paradigme programmation structurée +--- +up:: [[paradigme de programmation]] +#informatique + +2 étapes : + +# Raffinement progressif + +*top-down design* + +Découper un problème en sous-problèmes simples (on répète jusqu'a ce que les sous-problèmes soient assez simples pour être implémentés directement). + +# Cacher les détails + +*bottom top* + +On implémente les sous-problèmes, en [[encapsulation|encapsulant]] tous les détails d'implémentation. On **cache les détails**. + + +# Références + +source:: [[floydParadigmsProgramming1979]] + diff --git a/programmation web.md b/programmation web.md new file mode 100644 index 00000000..b39b49f0 --- /dev/null +++ b/programmation web.md @@ -0,0 +1,9 @@ +up:: [[programmation]] +#informatique + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` \ No newline at end of file diff --git a/programmation.argument d'une fonction.md b/programmation.argument d'une fonction.md new file mode 100644 index 00000000..15de46c8 --- /dev/null +++ b/programmation.argument d'une fonction.md @@ -0,0 +1,9 @@ +up::[[programmation]] +opposes:: [[programmation.paramètre d'une fonction]] +#informatique + + +> [!definition] Argument d'une fonction +> Un argument d'une [[programmation.fonction|fonction]] est la valeur d'un [[programmation.paramètre d'une fonction|paramètre]] lors de l'appel de cette [[programmation.fonction|fonction]]. +^definition + diff --git a/programmation.fonction.md b/programmation.fonction.md new file mode 100644 index 00000000..39caad34 --- /dev/null +++ b/programmation.fonction.md @@ -0,0 +1,6 @@ +--- +aliases: + - fonction +--- +up:: [[programmation]] +#informatique \ No newline at end of file diff --git a/programmation.md b/programmation.md index b454e791..50c01859 100644 --- a/programmation.md +++ b/programmation.md @@ -2,14 +2,13 @@ up:: [[informatique|informatique]] title:: #informatique ---- - -```dataview -TABLE title, up as "Up", up.up as "2-Up", up.up.up as "3-Up", up.up.up.up as "4-Up" -FROM -#cours AND -#exercice AND -"daily" AND -#excalidraw AND -#MOC -WHERE any(map([up, up.up, up.up.up, up.up.up.up], (x) => econtains(x, this.file.link))) -WHERE file != this.file -SORT up.up.up.up, up.up.up, up.up, up -``` +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> depth: -2 +> ``` + diff --git a/programmation.paramètre d'une fonction.md b/programmation.paramètre d'une fonction.md new file mode 100644 index 00000000..11244a4f --- /dev/null +++ b/programmation.paramètre d'une fonction.md @@ -0,0 +1,11 @@ +--- +aliases: + - paramètre +--- +up::[[programmation]] +#informatique + +> [!definition] paramètre d'une fonction +> Un paramètre d'une [[programmation.fonction|fonction]] est une variable particulière, utilisée dans la définition +^definition + diff --git a/présentation sur les outlines.md b/présentation sur les outlines.md new file mode 100644 index 00000000..57a90908 --- /dev/null +++ b/présentation sur les outlines.md @@ -0,0 +1,270 @@ +--- +title: "" +--- + +```h2 +Bonjour +``` + +--- + +```h2 +Aujourd'hui +``` + +--- + + +```h1 +EMACS +``` + +--- + +# Les raccourcis EMACS + +. . . + + 1. Brève histoire + 2. Principe + 3. Modularité et extensibilité + 4. Comparaison avec vim + 5. Conclusion + 6. Exemples supplémentaires + +--- + + +# Les raccourcis EMACS + +. . . + +EMACS = Extensible MACro System + +. . . + +EMACS = Eight Mega And Constantly Swappig + +. . . + +EMACS = Esc Meta Alt Control Shift + + +--- + +```h1 +Gotcha ! +``` +(catch chem all) + +--- + +# Les *Outline* + +En quoi les *outlines* sont le format central d'expression de l'information ? + +--- + +## 1. L'information textuelle + +> - manipulable +> - conservable +> - extraits, citations + + +--- + +## 2. Les *outlines* + +> - Texte indenté +> > - indentation sémantique +> > > - meilleur compromis visuel / pratique +> > - idées séquentielles ou en vrac +> > > - numérotation +> > > - dates +> > > - symboles +> > - manipulabilité +> > > - facile à créer +> > > - texte seulement +> > > - outliners + +--- + +## 2. Les *outlines* + +```h2 +c'est cool ! +``` + +--- + +## 3. Le centre de tous les formats + +``` + + + + + .--------. + |outlines| + '--------' + + + + + + +``` + +--- + +## 3. Le centre de tous les formats + +``` + + + + texte à chapitres + .--------. / + |outlines| ----------' + '--------' + + + + + + +``` + +--- + +## 3. Le centre de tous les formats + +``` + + texte rédigé + / + texte à chapitres------' + .--------. / + |outlines| ----------' + '--------' + + + + + + +``` + +--- + +## 3. Le centre de tous les formats + +``` + + texte rédigé + / | + texte à chapitres------' | + .--------. / / + |outlines| ----------' / + '--------' vidéo + + + + + + +``` + +--- + +## 3. Le centre de tous les formats + +``` + + texte rédigé + / | + texte à chapitres------' | + .--------. / / + .--------- |outlines| ----------' / + / '--------' vidéo + cartes mentales + + + + + +``` + +--- + +## 3. Le centre de tous les formats + +``` + + texte rédigé + / | + texte à chapitres------' | + .--------. / / + .--------- |outlines| ----------' / + / '--------' vidéo + cartes mentales \_________ + \ + slides textuelles + + + +``` + +--- + +## 3. Le centre de tous les formats + +``` + + texte rédigé + / | + texte à chapitres------' | + .--------. / / + .--------- |outlines| ----------' / + / '--------' vidéo + cartes mentales \_________ + \ + slides textuelles + \______ + \ + slides +``` + +--- + +## 3. Le centre de tous les formats + +``` +.-------------------------------------------------------------------. +| texte rédigé| +| / | | +| texte à chapitres------' | | +| .--------. / / | +| .--------- |outlines| ----------' / | +| / '--------' vidéo | +|cartes mentales \_________ | +| \ | +| slides textuelles | +| \______ | +| \ | +| slides | +'-------------------------------------------------------------------' +``` + +--- + +## 4. Limitations + + + - moins visuel qu'une carte mentale + - liens complexes / organisations riches + +--- +penser à proposer un secrétariat + diff --git a/quantificateurs.il existe.md b/quantificateurs.il existe.md new file mode 100644 index 00000000..e5d60cd4 --- /dev/null +++ b/quantificateurs.il existe.md @@ -0,0 +1,16 @@ +--- +aliases: + - quantificateur existanciel +--- +up:: [[quantificateurs]] +#maths/logique + + + + +> [!idea] Changement de point de vue sur l'existence +> Le plus grand apport de Frege à la logique : le quantificateur $\exists$, et le changement de la définition d'existence qui en découle. +> +> Affirmer qu'une montagne d'or existe ne signifie pas qu'on doit attribuer les propriétés *est en or* et *existe* à cette montagne, mais plutôt que l'ensemble des objets qualifiés de *montagne d'or* n'est pas vide. +> +> En découle la syntaxe du quantificateur $\exists$ : $\exists \text{(nom)},\; \text{(prédicat)}$, qui affirme que l'ensemble des objets qui [[satisfaisable|satisfont]] le prédicat n'est pas vide. diff --git a/quantificateurs.md b/quantificateurs.md new file mode 100644 index 00000000..7bece894 --- /dev/null +++ b/quantificateurs.md @@ -0,0 +1,9 @@ +up:: [[logique]] +#maths/logique + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` \ No newline at end of file diff --git a/salsiphi 2024-01-27.md b/salsiphi 2024-01-27.md new file mode 100644 index 00000000..770cdb84 --- /dev/null +++ b/salsiphi 2024-01-27.md @@ -0,0 +1,36 @@ +up:: [[salsiphi comptes rendus]] +#science + +# sujets abordés + +## Oscar Plaisant +[[présentation sur les outlines]] + +## Nicolas Canovas + +- Les systèmes de magie (dans les jeux de rôle et dans la fiction) + - le statut / la définition de la magie dans les fictions + - l'équilibrage + - les règles pour un bon design + - une meilleure organisation des types de magie (notamment pour D&D) + +## Max Lemoine + +les meilleurs frontières. + +- frontière belgique / hollande + - frontière due à une ligne de train belge, mais qui est restée même si c'est devenu une voie verte +- la guerre des stops + - guerre entre la france et l'espagne pour savoir quelle route allait avoir un stop + - soit la route vers une enclave espagnole + - soit une nationale qui la croisait +- le mur de trump +- la "frontière à bascule" + - l'île au faisans + - une île au milieu d'une rivière + - l'île est francaise la moitié de l'année, espagnole pour l'autre + + +# idées + +- faire également un (autre) rendez-vous sur twitch diff --git a/salsiphi comptes rendus.md b/salsiphi comptes rendus.md new file mode 100644 index 00000000..1e1e6a67 --- /dev/null +++ b/salsiphi comptes rendus.md @@ -0,0 +1,14 @@ +--- +aliases: + - comptes-rendus +--- +up::[[salsiphi]] +#PKM + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` + diff --git a/salsiphi.md b/salsiphi.md new file mode 100644 index 00000000..756f0774 --- /dev/null +++ b/salsiphi.md @@ -0,0 +1,8 @@ + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` + diff --git a/science ouverte.md b/science ouverte.md new file mode 100644 index 00000000..eb37255d --- /dev/null +++ b/science ouverte.md @@ -0,0 +1,28 @@ +--- +aliases: + - open science +--- +up:: [[science]] +#informatique + +> [!definition] science ouverte +> +^definition + +# Historique + +Historique de la collaboration scientifique + - [<] avant le XVIIe : Mécénat + - financement de la science via patronnages individuels + - [<] XVIIe-XXe : Revues et académies + - début de la collaboration scientifique + - début du partage scientifique (discussions) + - [<] années 1990 : bulle internet + - ouverture de la science et du savoir (via le web) + - arXiv + - 1987 : premier journal en ligne + - [projet polymath](https://www.wikiwand.com/en/Polymath) +- [<] 2002 : création des licences Creative Commons +- [<] 2001 : création de HAL (en France) + + diff --git a/server side.md b/server side.md new file mode 100644 index 00000000..e1521931 --- /dev/null +++ b/server side.md @@ -0,0 +1,4 @@ +up:: [[programmation web]] +#informatique + + diff --git a/servlet.md b/servlet.md new file mode 100644 index 00000000..9dc4ea44 --- /dev/null +++ b/servlet.md @@ -0,0 +1,8 @@ +up:: [[cours programmation web serveur]] +#informatique + +> [!definition] Servlet +> contraction de **serv**er app**let** +> - une [[applet]] est exécutée [[server side|côté client]] +> - une servlet est exécutée [[server side|côté serveur]] +^definition diff --git a/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 2.md b/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 2.md deleted file mode 100644 index dec8e74e..00000000 --- a/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 2.md +++ /dev/null @@ -1,11 +0,0 @@ - ---- -Title: "01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish" -URL: https://publish.obsidian.md/history-notes/01+Notetaking+for+Historians -Pocket URL: https://getpocket.com/read/3670883865 -Tags: [pocket, obsidian, obsidian_export, pkm] -Excerpt: > - ---- -#obsidian, #obsidian_export, #pkm - diff --git a/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 3.md b/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 3.md deleted file mode 100644 index dec8e74e..00000000 --- a/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 3.md +++ /dev/null @@ -1,11 +0,0 @@ - ---- -Title: "01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish" -URL: https://publish.obsidian.md/history-notes/01+Notetaking+for+Historians -Pocket URL: https://getpocket.com/read/3670883865 -Tags: [pocket, obsidian, obsidian_export, pkm] -Excerpt: > - ---- -#obsidian, #obsidian_export, #pkm - diff --git a/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 4.md b/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 4.md deleted file mode 100644 index dec8e74e..00000000 --- a/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 4.md +++ /dev/null @@ -1,11 +0,0 @@ - ---- -Title: "01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish" -URL: https://publish.obsidian.md/history-notes/01+Notetaking+for+Historians -Pocket URL: https://getpocket.com/read/3670883865 -Tags: [pocket, obsidian, obsidian_export, pkm] -Excerpt: > - ---- -#obsidian, #obsidian_export, #pkm - diff --git a/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 5.md b/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 5.md deleted file mode 100644 index dec8e74e..00000000 --- a/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 5.md +++ /dev/null @@ -1,11 +0,0 @@ - ---- -Title: "01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish" -URL: https://publish.obsidian.md/history-notes/01+Notetaking+for+Historians -Pocket URL: https://getpocket.com/read/3670883865 -Tags: [pocket, obsidian, obsidian_export, pkm] -Excerpt: > - ---- -#obsidian, #obsidian_export, #pkm - diff --git a/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 6.md b/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 6.md deleted file mode 100644 index dec8e74e..00000000 --- a/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish 6.md +++ /dev/null @@ -1,11 +0,0 @@ - ---- -Title: "01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish" -URL: https://publish.obsidian.md/history-notes/01+Notetaking+for+Historians -Pocket URL: https://getpocket.com/read/3670883865 -Tags: [pocket, obsidian, obsidian_export, pkm] -Excerpt: > - ---- -#obsidian, #obsidian_export, #pkm - diff --git a/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish.md b/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish.md index c8b5f1ab..0dd87ed5 100644 --- a/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish.md +++ b/sources/01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish.md @@ -1,4 +1,3 @@ - --- Title: "01 Notetaking for Historians - Doing History with Zotero and Obsidian - Obsidian Publish" URL: https://publish.obsidian.md/history-notes/01+Notetaking+for+Historians diff --git a/sources/1j01 textual-paint.md b/sources/1j01 textual-paint.md new file mode 100644 index 00000000..2436988f --- /dev/null +++ b/sources/1j01 textual-paint.md @@ -0,0 +1,10 @@ +--- +Title: "1j01/textual-paint" +URL: https://github.com/1j01/textual-paint +Pocket URL: https://getpocket.com/read/3856689512 +Tags: [pocket, informatique, obsidan_export] +Excerpt: > + MS Paint in your terminal. This is a TUI (Text User Interface) image editor, inspired by MS Paint, built with Textual. +--- +#informatique, #obsidan_export +![image](https://github.com/1j01/textual-paint/raw/main/screenshot.svg) diff --git a/sources/202401242342.md b/sources/202401242342.md new file mode 100644 index 00000000..f8a6ab32 --- /dev/null +++ b/sources/202401242342.md @@ -0,0 +1,18 @@ +--- +aliases: + - le capitalisme est né avant la révolution industrielle + - julius dickmann naissance du capitalisme +--- +author:: [[Julius Dickmann]] +source:: [[Contributions pour une autocritique du marxisme]] +link:: +date-seen::2024-01-24 +next:: [[202401242351|julius dickmann mort du corporatisme féodal et naissance du capitalisme]] +#citation #politique + +> Le capitalisme ne parvint réellement à s'affirmer que sous l'impulsion du grand boulversement technique des XVIIIe et XIXe siècles, mais la première étape de son évolution n'a absolument rien à voir avec celui-ci. + +## Interprétation + +- constatation : la [[révolution industrielle]] est ce qui à poussé le [[capitalisme]] +- cependant : le [[capitalisme]] à existé avant la [[révolution industrielle]]. \ No newline at end of file diff --git a/sources/202401242351.md b/sources/202401242351.md new file mode 100644 index 00000000..63d7969b --- /dev/null +++ b/sources/202401242351.md @@ -0,0 +1,17 @@ +--- +aliases: + - la mort du corporatisme féodal à causé l'apparition du capitalisme + - julius dickmann naissance du capitalisme +--- +author::[[Julius Dickmann]] +source::[[Contributions pour une autocritique du marxisme]] +date-seen::2024-01-24 +#citation #politique + +> Le capitalisme n'a pu émerger que parce que la production liée au corporations féodales s'est effondrée pour des raisons internes. Il fut la conséquence et non la cause de cet inélucable déclin. + +## Interprétation + +- comme dit précédemment : [[202401242342|le capitalisme est né avant la révolution industrielle]] +- c'est le déclin du système corporatif qui à permis le capitalisme, et non le capitalisme qui à tué le système corporatif +- la naissance du [[capitalisme]] **n'est pas due** à des progès techniques ou des modifications de l'appareil productif diff --git a/sources/Browser not supported.md b/sources/Browser not supported.md deleted file mode 100644 index 1fc8d174..00000000 --- a/sources/Browser not supported.md +++ /dev/null @@ -1,11 +0,0 @@ - ---- -Title: "Browser not supported" -URL: https://configure.zsa.io/moonlander/layouts/pJ7eb/latest/config/audio -Pocket URL: https://getpocket.com/read/3755583883 -Tags: [pocket, ] -Excerpt: > - Unfortunately the configurator uses features that your browser doesn't support. Please retry using Chrome 49+, Edge 12+, Firefox 18+, Opera 36+, Safari 12+ . Contact us ---- - - diff --git a/sources/CARD GAME RULES.md b/sources/CARD GAME RULES.md new file mode 100644 index 00000000..85d30e54 --- /dev/null +++ b/sources/CARD GAME RULES.md @@ -0,0 +1,10 @@ +--- +Title: "CARD GAME RULES" +URL: https://www.pagat.com/ +Pocket URL: https://getpocket.com/read/1319170 +Tags: [pocket, jeux, obsidan_export] +Excerpt: > + The Pagat website was founded in 1995. Its aim is to document the rules of traditional card and domino games for the benefit of players who would like to broaden their knowledge and try out unfamiliar games. It takes its name from the Pagat, the lowest trump in the Central European game of Tarock. +--- +#jeux, #obsidan_export + diff --git a/sources/Epigrams on programming.md b/sources/Epigrams on programming.md index 3c604921..452e08e2 100644 --- a/sources/Epigrams on programming.md +++ b/sources/Epigrams on programming.md @@ -1,8 +1,6 @@ author::[[Alan Perlis]] title::"dictons sur la programmation" -#informatique - ----- +#informatique #citation 1. One man's constant is another man's variable. diff --git a/sources/FirefoxCSS-Store 2.md b/sources/FirefoxCSS-Store 2.md new file mode 100644 index 00000000..7839fa8f --- /dev/null +++ b/sources/FirefoxCSS-Store 2.md @@ -0,0 +1,11 @@ + +--- +Title: "FirefoxCSS-Store" +URL: https://github.com/FirefoxCSS-Store/FirefoxCSS-Store.github.io +Pocket URL: https://getpocket.com/read/3259216786 +Tags: [pocket, ] +Excerpt: > + FirefoxCSS-Store A collection site of Firefox userchrome themes, mostly from FirefoxCSS Reddit.Preview here. Generic Installation Go to the wanted theme and click the download button. You should now be on the github page for that topic. +--- + +![image](https://github.com/FirefoxCSS-Store/FirefoxCSS-Store.github.io/blob/main/images/icon.png) diff --git a/sources/FirefoxCSS-Store.md b/sources/FirefoxCSS-Store.md new file mode 100644 index 00000000..a2a52d8d --- /dev/null +++ b/sources/FirefoxCSS-Store.md @@ -0,0 +1,10 @@ +--- +Title: "FirefoxCSS-Store" +URL: https://github.com/FirefoxCSS-Store/FirefoxCSS-Store.github.io +Pocket URL: https://getpocket.com/read/3259216786 +Tags: [pocket, ] +Excerpt: > + FirefoxCSS-Store A collection site of Firefox userchrome themes, mostly from FirefoxCSS Reddit.Preview here. Generic Installation Go to the wanted theme and click the download button. You should now be on the github page for that topic. +--- + +![image](https://github.com/FirefoxCSS-Store/FirefoxCSS-Store.github.io/blob/main/images/icon.png) diff --git a/sources/Getting Started 2.md b/sources/Getting Started 2.md deleted file mode 100644 index 9bdb5bd7..00000000 --- a/sources/Getting Started 2.md +++ /dev/null @@ -1,11 +0,0 @@ - ---- -Title: "Getting Started" -URL: https://espanso.org/docs/get-started/ -Pocket URL: https://getpocket.com/read/2769444793 -Tags: [pocket, informatique, obsidian_export] -Excerpt: > - In this section, we will cover the basics of Espanso to quickly get you started. Make sure to install Espanso before diving into the next sections. If you followed the installation correctly, Espanso should be running on your computer. ---- -#informatique, #obsidian_export -![image](https://espanso.org/assets/images/tray_explain_image_windows-a4482a39604313a2484a7361cacf93f8.png) diff --git a/sources/Getting Started 3.md b/sources/Getting Started 3.md deleted file mode 100644 index 9bdb5bd7..00000000 --- a/sources/Getting Started 3.md +++ /dev/null @@ -1,11 +0,0 @@ - ---- -Title: "Getting Started" -URL: https://espanso.org/docs/get-started/ -Pocket URL: https://getpocket.com/read/2769444793 -Tags: [pocket, informatique, obsidian_export] -Excerpt: > - In this section, we will cover the basics of Espanso to quickly get you started. Make sure to install Espanso before diving into the next sections. If you followed the installation correctly, Espanso should be running on your computer. ---- -#informatique, #obsidian_export -![image](https://espanso.org/assets/images/tray_explain_image_windows-a4482a39604313a2484a7361cacf93f8.png) diff --git a/sources/Getting Started 4.md b/sources/Getting Started 4.md deleted file mode 100644 index 9bdb5bd7..00000000 --- a/sources/Getting Started 4.md +++ /dev/null @@ -1,11 +0,0 @@ - ---- -Title: "Getting Started" -URL: https://espanso.org/docs/get-started/ -Pocket URL: https://getpocket.com/read/2769444793 -Tags: [pocket, informatique, obsidian_export] -Excerpt: > - In this section, we will cover the basics of Espanso to quickly get you started. Make sure to install Espanso before diving into the next sections. If you followed the installation correctly, Espanso should be running on your computer. ---- -#informatique, #obsidian_export -![image](https://espanso.org/assets/images/tray_explain_image_windows-a4482a39604313a2484a7361cacf93f8.png) diff --git a/sources/Getting Started 5.md b/sources/Getting Started 5.md deleted file mode 100644 index 9bdb5bd7..00000000 --- a/sources/Getting Started 5.md +++ /dev/null @@ -1,11 +0,0 @@ - ---- -Title: "Getting Started" -URL: https://espanso.org/docs/get-started/ -Pocket URL: https://getpocket.com/read/2769444793 -Tags: [pocket, informatique, obsidian_export] -Excerpt: > - In this section, we will cover the basics of Espanso to quickly get you started. Make sure to install Espanso before diving into the next sections. If you followed the installation correctly, Espanso should be running on your computer. ---- -#informatique, #obsidian_export -![image](https://espanso.org/assets/images/tray_explain_image_windows-a4482a39604313a2484a7361cacf93f8.png) diff --git a/sources/Getting Started 6.md b/sources/Getting Started 6.md deleted file mode 100644 index 9bdb5bd7..00000000 --- a/sources/Getting Started 6.md +++ /dev/null @@ -1,11 +0,0 @@ - ---- -Title: "Getting Started" -URL: https://espanso.org/docs/get-started/ -Pocket URL: https://getpocket.com/read/2769444793 -Tags: [pocket, informatique, obsidian_export] -Excerpt: > - In this section, we will cover the basics of Espanso to quickly get you started. Make sure to install Espanso before diving into the next sections. If you followed the installation correctly, Espanso should be running on your computer. ---- -#informatique, #obsidian_export -![image](https://espanso.org/assets/images/tray_explain_image_windows-a4482a39604313a2484a7361cacf93f8.png) diff --git a/sources/Getting Started.md b/sources/Getting Started.md index 69650025..23620cf5 100644 --- a/sources/Getting Started.md +++ b/sources/Getting Started.md @@ -1,4 +1,3 @@ - --- Title: "Getting Started" URL: https://espanso.org/docs/get-started/ diff --git a/sources/ICVL24 Skyline Learning (Stage).pdf b/sources/ICVL24 Skyline Learning (Stage).pdf new file mode 100644 index 0000000000000000000000000000000000000000..cedd03f24c964574735292bf9aa06ee2fdcf0c96 GIT binary patch literal 65990 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�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 [!cite] Définition wikipedia (fr) +> [[paradigme de programmation]] tenant compte, dans un programme, l'existence de plusieurs piles sémantiques, qui peuvent être appelées threads, processus ou tâches. Elles sont matérialisées en machine par une pile d'exécution et un ensemble de données privées. +[Wikipédia](https://www.wikiwand.com/fr/Programmation_concurrente) +^cite + +## Interprétation +- la programmation concurrente implique la division d'un programme en plusieurs parties. Ces parties : + - sont sémantiquement indépendantes (au moins en partie) + - possèdent leur propre contexte d'exécution + - pile d'exécution propre + - mémoire (données) privée·s propre·s diff --git a/sources/The Command Line Heroes BASH! 2.md b/sources/The Command Line Heroes BASH! 2.md new file mode 100644 index 00000000..1c6746b5 --- /dev/null +++ b/sources/The Command Line Heroes BASH! 2.md @@ -0,0 +1,11 @@ + +--- +Title: "The Command Line Heroes BASH!" +URL: https://www.redhat.com/en/command-line-heroes/bash/index.html +Pocket URL: https://getpocket.com/read/2490756547 +Tags: [pocket, informatique] +Excerpt: > + Test your command line skills. You have {{parseInt(gameDuration/1000)}} seconds to type commands from: Set the terminal on fire. Type PLAY to begin. +--- +#informatique +![image](https://www.redhat.com/en/command-line-heroes/bash/assets/clh-logo-white.svg) diff --git a/sources/firefox enable userChrome (custom css).md b/sources/firefox enable userChrome (custom css).md new file mode 100644 index 00000000..80db5310 --- /dev/null +++ b/sources/firefox enable userChrome (custom css).md @@ -0,0 +1,13 @@ +--- +URL: https://github.com/FirefoxCSS-Store/FirefoxCSS-Store.github.io +Pocket URL: https://getpocket.com/read/3259216786 +tags: + - pocket +Excerpt: | + FirefoxCSS-Store A collection site of Firefox userchrome themes, mostly from FirefoxCSS Reddit.Preview here. Generic Installation Go to the wanted theme and click the download button. You should now be on the github page for that topic. +aliases: + - firefox user css + - user CSS (chrome css) +--- + +![image](https://github.com/FirefoxCSS-Store/FirefoxCSS-Store.github.io/blob/main/images/icon.png) diff --git a/le petit nombre qui fait travailler le grand.md b/sources/le petit nombre qui fait travailler le grand.md similarity index 100% rename from le petit nombre qui fait travailler le grand.md rename to sources/le petit nombre qui fait travailler le grand.md diff --git a/le secret de l'action, c'est de commencer.md b/sources/le secret de l'action, c'est de commencer.md similarity index 100% rename from le secret de l'action, c'est de commencer.md rename to sources/le secret de l'action, c'est de commencer.md diff --git a/sources/les avancées en programmation devraient demander l'élaboration de nouveaux paradigmes.md b/sources/les avancées en programmation devraient demander l'élaboration de nouveaux paradigmes.md new file mode 100644 index 00000000..1240c191 --- /dev/null +++ b/sources/les avancées en programmation devraient demander l'élaboration de nouveaux paradigmes.md @@ -0,0 +1,12 @@ +up:: [[paradigme de programmation]] +source:: [[floydParadigmsProgramming1979]] +next:: [[un programmeur doit étendre son répertoire de paradigmes]] +#informatique + +> If the advancement of the general art of programming requires the continuing invention and elaboration of paradigms, advancement of the art of the individual programmer requires that he expand his repertory of paradigms. + + +# Description + +- de nouveaux paradigmes permettent de résoudre de nouveaux problèmes +- puisque les algorithmes doivent devenir plus complexes, de nouveaux paradigmes doivent être développés \ No newline at end of file diff --git a/sources/méthode pour trouver de nouveaux paradigmes.md b/sources/méthode pour trouver de nouveaux paradigmes.md new file mode 100644 index 00000000..e43553ef --- /dev/null +++ b/sources/méthode pour trouver de nouveaux paradigmes.md @@ -0,0 +1,17 @@ +source:: [[floydParadigmsProgramming1979]] +date-seen::2024-02-03 +#citation #informatique + +> After solving a challenging problem, I solve it again from scratch, retracing only the insight of the earlier solution. I repeat this until the solution is as clear and direct as I can hope for. Then I look for a general rule for attacking similar problems, that would have led me to approach the given problem in the most efficient way the first time. Often, such a rule is of permanent value. + +## Interprétation + +- méthode pour créer de nouveaux [[paradigme de programmation|paradigmes de programmation]] +- principe : + - après avoir résolu un problème complexe + - on résout à nouveau le problème en se concentrant sur l'idée principale de la précédente solution + - on recommence jusqu'à ce que la solution soit la plus claire et directe + - on cherche alors la règle générale pour résoudre tous les problèmes du même type + - quelles règles auraient amené directement à la solution la plus efficace ? +- c'est une méthode pour trouver de nouveaux [[paradigme de programmation|paradigmes]] + diff --git a/sources/textual-paint (paint dans un terminal).md b/sources/textual-paint (paint dans un terminal).md new file mode 100644 index 00000000..40e613cf --- /dev/null +++ b/sources/textual-paint (paint dans un terminal).md @@ -0,0 +1,16 @@ +--- +URL: https://github.com/1j01/textual-paint +Pocket URL: https://getpocket.com/read/3856689512 +tags: + - pocket + - informatique + - obsidan_export +Excerpt: MS Paint in your terminal. This is a TUI (Text User Interface) image editor, inspired by MS Paint, built with Textual. +aliases: + - textual-paint + - command line paint + - paint dans un terminal +--- +Un clone de MS paint qui fonctionne dans un terminal. + +![image](https://github.com/1j01/textual-paint/raw/main/screenshot.svg) diff --git a/sources/un programmeur doit étendre son répertoire de paradigmes.md b/sources/un programmeur doit étendre son répertoire de paradigmes.md new file mode 100644 index 00000000..1b9183cb --- /dev/null +++ b/sources/un programmeur doit étendre son répertoire de paradigmes.md @@ -0,0 +1,12 @@ +source:: [[floydParadigmsProgramming1979]] +date-seen::2024-02-03 +prev:: [[les avancées en programmation devraient demander l'élaboration de nouveaux paradigmes]] +#informatique #citation + +> If the advancement of the general art of programming requires the continuing invention and elaboration of paradigms, advancement of the art of the individual programmer requires that he expand his *repertory* of paradigms. + +## Interprétation + +- présupposé : [[les avancées en programmation devraient demander l'élaboration de nouveaux paradigmes]] +- Les programmeurs doivent également apprendre ces nouveaux paradigmes + - De nouveaux paradigmes permettent la résolution de nouveaux problèmes \ No newline at end of file diff --git a/sources/zotero/ParadigmeProgrammation.md b/sources/zotero/ParadigmeProgrammation.md new file mode 100644 index 00000000..04aa09d0 --- /dev/null +++ b/sources/zotero/ParadigmeProgrammation.md @@ -0,0 +1,26 @@ +--- +zotero-key: BCTII35Rg5383243 +title: Paradigme (programmation) +citekey: ParadigmeProgrammation +--- +link:: [Zotero](zotero://select/groups/5383243/items/BCTII35R) + + +> [!cite] +> > Le **paradigme de programmation** est la façon (parmi d'autres) d'approcher la [programmation informatique](https://www.wikiwand.com/fr/Programmation_informatique "Programmation informatique") et de formuler les solutions aux problèmes et leur formalisation dans un [langage de programmation](https://www.wikiwand.com/fr/Langage_de_programmation "Langage de programmation") approprié[](https://www.wikiwand.com/fr/Paradigme_(programmation)#cite_note-1). Ce n'est pas de la [méthodologie](https://www.wikiwand.com/fr/Méthodologie "Méthodologie") contenant une méthode ; cette dernière [organise le traitement des problèmes reconnus dans l'écosystème concerné](https://www.wikiwand.com/fr/Système_d'information "Système d'information") pour aboutir à la [solution conceptuelle et programme exécutable](https://www.wikiwand.com/fr/Génie_logiciel "Génie logiciel"). +> > +> - paradigme = façon d'approcher la programmation, de formuler et formaliser les problèmes +> - paradigme $\neq$ méthodologie +> - la méthodologie organise le traîtement des problèmes pour obtenir un programme exécutable +> - un paradigme définit la vision et le rapport à l'execution d'un programme + + + +> [!cite] +> > Un paradigme de programmation fournit (et détermine) la vue qu’a le [développeur](https://www.wikiwand.com/fr/Développeur "Développeur") de l’exécution de son [programme](https://www.wikiwand.com/fr/Programme_informatique "Programme informatique") en situation d'exploitation. Par exemple, en [programmation orientée objet](https://www.wikiwand.com/fr/Programmation_orientée_objet "Programmation orientée objet"), les développeurs peuvent considérer le programme comme une collection d’[objets](https://www.wikiwand.com/fr/Objet_(informatique) "Objet (informatique)") en interaction, tandis qu’en [programmation fonctionnelle](https://www.wikiwand.com/fr/Programmation_fonctionnelle "Programmation fonctionnelle") un programme peut être vu comme une suite d'évaluations de fonctions sans [états](https://www.wikiwand.com/fr/Automate_fini "Automate fini"). Lors de la programmation d’ordinateurs ou de systèmes [multi-processeurs](https://www.wikiwand.com/fr/Multiprocesseur "Multiprocesseur"), la programmation orientée processus permet aux développeurs de voir les applications comme des ensembles de [processus](https://www.wikiwand.com/fr/Processus_(informatique) "Processus (informatique)") agissant sur des [structures de données](https://www.wikiwand.com/fr/Structure_de_données "Structure de données") localement partagées. +> > +> > - définition d'un paradigme +> > - définit la vue sur l'exécution d'un programme +> > - définit la façon de voir l'implémentation des problèmes + + diff --git a/sources/zotero/floydParadigmsProgramming1979.md b/sources/zotero/floydParadigmsProgramming1979.md new file mode 100644 index 00000000..d3af210f --- /dev/null +++ b/sources/zotero/floydParadigmsProgramming1979.md @@ -0,0 +1,14 @@ +--- +zotero-key: ZH92H67Gg5383243 +title: The paradigms of programming +citekey: floydParadigmsProgramming1979 +--- +link:: [Zotero](zotero://select/groups/5383243/items/ZH92H67G) + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` + diff --git a/sources/zotero/zt-import/Description des paradigmes, de leurs limites.md b/sources/zotero/zt-import/Description des paradigmes, de leurs limites.md new file mode 100644 index 00000000..8c7fdc46 --- /dev/null +++ b/sources/zotero/zt-import/Description des paradigmes, de leurs limites.md @@ -0,0 +1,15 @@ +source:: [[floydParadigmsProgramming1979]] +#informatique + +Paradigme programmation structurée : fonctionne en 2 étapes + +1\. raffinement progressif : découpage du problème en sous-problèmes de plus en plus petits, jusqu'à être assez simple pour être implémentés directement + +2\. cacher les détails : on implémente les sous-problèmes de façon encapsulée, en partant des plus simples, et en construisant l'abstraction. On cache tous les détails d'implémentation (dans des fonctions, objets...) + +Le processus fait donc : 1. top-down, 2. bottom-top. + +Il existe des écoles de pensée qui encouragent certains paradigmes et s'opposent aux autres. Par exemple, la programmation LISP, APL, ALGOL. Certaines de ces écoles prônent la manipulation de flots de données, d'autres la manipulation de flots de contrôle. + +La récursion, l'itération, la copie et le partage de structure de données, l'appel par nom, l'appel par valeur, l'appel par nécessité... chacun à ses défenseurs. + diff --git a/stage.md b/stage.md new file mode 100644 index 00000000..7b1654ba --- /dev/null +++ b/stage.md @@ -0,0 +1,20 @@ + +# Sujet + +question: +- Est-ce que la combinaison de plusieurs modèles légers (*small models*) peut améliorer la performance (éventuellement pour battre des grands modèles (*large models*)) ? +- Est-ce qu'on peut classer le type d'anomalies par type de modèles qui trouvent bien ces anomalies ? + + + + +# Ressources +sujet: [[ICVL24 Skyline Learning (Stage).pdf]] + +## ADBench +link:: https://www.github.com/Minqi824/ADBench +pour la détection d'anomalies +- 57 jeux de données +- des modèles de détection d'anomalies +- un papier sur la détection d'anomalies + diff --git a/stratégie d'évaluation.md b/stratégie d'évaluation.md new file mode 100644 index 00000000..ca30bf73 --- /dev/null +++ b/stratégie d'évaluation.md @@ -0,0 +1,7 @@ +up:: [[programmation]] +#informatique + + +> [!definition] stratégie d'évaluation +> Méthode utilisée pour déterminer "quand" évaluer les [[argument]] d'une fonction lors de son appel +^definition \ No newline at end of file diff --git a/syntaxe d'une DTD.md b/syntaxe d'une DTD.md new file mode 100644 index 00000000..11517b7a --- /dev/null +++ b/syntaxe d'une DTD.md @@ -0,0 +1,107 @@ +up:: [[DTD]] +#informatique + +# Déclaration des éléments + +```dtd + +``` + +`DEF-CONTENU` peut être : +- `EMPTY` : contenu vide +- `ANY` : peut contenir n'importe quel élément de la DTD +- `(#PCDATA)` : contient du texte +- une expression régulière sur les nom d'éléments + + +## Exemples + +```dtd + + + + +``` + + +```dtd + + + + +``` + +# Déclaration de liste d'attributs + +```dtd + +``` + +- TYPE peut être : + - `CDATA` : du texte + - `ID` : un identifiant unique **dans tout le document** + - `IDREF` : une référence vers un ID + - `IDREFS` : une liste de références vers des ID + - `NMTOKEN` : un mot + - `NMTOKENs` : une liste de mots + - une énumération de valeurs séparées par des `|` +- L'`OBLIGATION` ne concerne pas les énumérations suivies d'une valeur par défaut. Dans les autres cas, cela peut être : + - `#REQUIRED` : obligatoire + - `#IMPLIED` : optionnel + - `#FIXED` : attribut toujours présent avec une valeur (sert pour imposer la déclaration d'un espace de noms) +- La `VALEUR-PAR-DEFAUT` permet de donner la valeur si aucune valeur n'est précisée + +## Exemples + + +### Exemple 1 + +```dtd + + + + Mme. Markov + + + Introduction + Présentation générale de XML + +``` + + +### Exemple 2 +```dtd + + +``` + + +# Déclaration d'entités + +Les entités permettent de définir des remplacements de préprocesseur. + +```dtd + +``` +- on utilise ensuite `&nomEntite;` qui sera remplacé par `remplacement` + +## Exemple + +```dtd + + + +``` + +```xml + &chap1; &chap2; &chap3; +``` diff --git a/système d'exploitation.md b/système d'exploitation.md index e418ad1d..9969d509 100644 --- a/système d'exploitation.md +++ b/système d'exploitation.md @@ -6,20 +6,14 @@ up:: [[informatique]] ---- -> [!smallquery]- Sous-notes de `=this.file.link` -> ```dataview -> TABLE title, up as "Up", up.up as "2-Up", up.up.up as "3-Up", up.up.up.up as "4-Up" -> FROM -#cours AND -#exercice AND -"daily" AND -#excalidraw AND -#MOC -> WHERE any(map([up, up.up, up.up.up, up.up.up.up], (x) => econtains(x, this.file.link))) -> WHERE file != this.file -> SORT up.up.up.up, up.up.up, up.up, up +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> depth: -1 > ``` - - [[Sous-système de gestion de processus]] - - [[Ordonnancement d'exécution des processus|ordonnancement]] - - [[sous-système de gestion de mémoire]] - - [[sous-système de gestion des fichiers]] - # Definition - Un [[système d'exploitation|SE]] est un allocateur de ressources diff --git a/tangente à une courbe paramétrée.md b/tangente à une courbe paramétrée.md index 2373cbf1..6fa7d6e0 100644 --- a/tangente à une courbe paramétrée.md +++ b/tangente à une courbe paramétrée.md @@ -3,7 +3,7 @@ up::[[courbe paramétrée]] ---- # Définition -Soit $f: t\mapsto M(t)$ avec $t\in D\subset \R$ une [[courbe paramétrée]]. +Soit $f: t\mapsto M(t)$ avec $t\in D\subset \mathbb{R}$ une [[courbe paramétrée]]. Soit $t_{0}\in D$ On veut définir la [[tangente à une courbe|tangente]] à $f$ en $M(t_{0})$ diff --git a/taxer le profit, c'est le rendre indispensable pour les prestations sociales.md b/taxer le profit, c'est le rendre indispensable pour les prestations sociales.md new file mode 100644 index 00000000..2e85927e --- /dev/null +++ b/taxer le profit, c'est le rendre indispensable pour les prestations sociales.md @@ -0,0 +1,11 @@ +--- +aliases: + - taxer légitime le profit +--- +up:: [[taxe]] +#politique + +- la [[taxe]] corrige une mauvaise répartition salaire / profit +- la [[taxe]] est prise sur le profit, le profit est donc nécessaire à la taxe +- taxer, c'est légitimer le profit, puisqu'il devient indispensable aux prestations sociales +- la [[cotisation]] est un meilleur moyen : elle ne prends pas sur les profits, mais change la répartition de la [[plus-value]] diff --git a/templates/citation.md b/templates/citation.md index 644386f1..154977b5 100644 --- a/templates/citation.md +++ b/templates/citation.md @@ -2,10 +2,10 @@ author:: source:: link:: date-seen::{{DATE:yyyy-MM-DD}} -#citation # - ---- +#citation +> [!cite] Titre > ... +^cite ## Interprétation \ No newline at end of file diff --git a/templates/sources.md b/templates/sources.md index 2a062259..3795f574 100644 --- a/templates/sources.md +++ b/templates/sources.md @@ -2,8 +2,6 @@ author:: date::{{DATE:YYYY-MM-DD}} #source ---- - Description de la source diff --git a/templates/zotero/zt-annot.eta.md b/templates/zotero/zt-annot.eta.md new file mode 100644 index 00000000..5d9ce881 --- /dev/null +++ b/templates/zotero/zt-annot.eta.md @@ -0,0 +1,7 @@ +[!note] Page <%= it.pageLabel %> + +<%= it.imgEmbed %><%= it.text %> +<% if (it.comment) { %> +--- +<%= it.comment %> +<% } %> \ No newline at end of file diff --git a/templates/zotero/zt-annots.eta.md b/templates/zotero/zt-annots.eta.md new file mode 100644 index 00000000..07a3032e --- /dev/null +++ b/templates/zotero/zt-annots.eta.md @@ -0,0 +1,3 @@ +<% for (const annotation of it) { %> +<%~ include("annotation", annotation) %> +<% } %> \ No newline at end of file diff --git a/templates/zotero/zt-cite.eta.md b/templates/zotero/zt-cite.eta.md new file mode 100644 index 00000000..c9311f79 --- /dev/null +++ b/templates/zotero/zt-cite.eta.md @@ -0,0 +1 @@ +[[<%= it.map(lit => `${lit.citekey ?? lit.DOI ?? lit.title ?? lit.key}`).join("; ") %>]] \ No newline at end of file diff --git a/templates/zotero/zt-cite2.eta.md b/templates/zotero/zt-cite2.eta.md new file mode 100644 index 00000000..84ee4e3f --- /dev/null +++ b/templates/zotero/zt-cite2.eta.md @@ -0,0 +1 @@ +<%= it.map(lit => `[${lit.citekey ?? lit.DOI ?? lit.title ?? lit.key}]`).join("; ") %> \ No newline at end of file diff --git a/templates/zotero/zt-colored.eta.md b/templates/zotero/zt-colored.eta.md new file mode 100644 index 00000000..12e058f7 --- /dev/null +++ b/templates/zotero/zt-colored.eta.md @@ -0,0 +1,4 @@ +<%= it.content %> \ No newline at end of file diff --git a/templates/zotero/zt-field.eta.md b/templates/zotero/zt-field.eta.md new file mode 100644 index 00000000..8f72bab1 --- /dev/null +++ b/templates/zotero/zt-field.eta.md @@ -0,0 +1 @@ +citekey: "<%= it.citekey %>" \ No newline at end of file diff --git a/templates/zotero/zt-note.eta.md b/templates/zotero/zt-note.eta.md new file mode 100644 index 00000000..2393ef99 --- /dev/null +++ b/templates/zotero/zt-note.eta.md @@ -0,0 +1,2 @@ +link:: [Zotero](<%= it.backlink %>) <%= it.fileLink %> +<%~ include("annots", it.annotations) %> \ No newline at end of file diff --git a/terminal commandes.md b/terminal commandes.md index b9f4abf9..20d495e8 100644 --- a/terminal commandes.md +++ b/terminal commandes.md @@ -5,17 +5,13 @@ up::[[unix]] title::"commandes du shell unix" #informatique/unix ----- - - -> [!query] Sous-notes de `=this.file.link` -> ```dataview -> LIST title -> FROM -#cours AND -#exercice AND -"daily" AND -#excalidraw AND -#MOC -> WHERE any(map([up, up.up, up.up.up, up.up.up.up], (x) => econtains(x, this.file.link))) -> WHERE file != this.file -> SORT up!=this.file.link, up.up.up.up, up.up.up, up.up, up, file.name +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> depth: -1 > ``` diff --git a/transformer une grammaire hors-contexte en automate à pile.md b/transformer une grammaire hors-contexte en automate à pile.md new file mode 100644 index 00000000..57d1125e --- /dev/null +++ b/transformer une grammaire hors-contexte en automate à pile.md @@ -0,0 +1,16 @@ +--- +aliases: + - grammaire hors-contexte en automate à pile +tags: + - informatique +--- +up:: [[grammaire non-contextuelle]], [[automate-pile]] + +Pour transformer une [[grammaire non-contextuelle]] en [[automate-pile|automate à pile]], il suffit d'appliquer 2 règles : + +Soient $G = (V, T, Q, S)$ une [[grammaire non-contextuelle|grammaire hors contexte]] et $P = ({q}, T, V \cup T, \delta, q, S)$ un [[automate-pile|automate à pile]] qui accepte $L(G)$ par pile vide. + +1. pour chaque variable $A$ : +$$ d(q, \epsilon, A) = \{(q, \beta ) | A \to \beta \in Q\} $$ +2. pour chaque symbole terminal $a$ : +$$\delta(q, a, a) = \{(q, \epsilon)\}$$ diff --git a/travail de délégué.md b/travail de délégué.md index 1de5a7b0..77f30451 100644 --- a/travail de délégué.md +++ b/travail de délégué.md @@ -1,11 +1,23 @@ -#fac +--- +tags: + - fac +--- + - [x] #task récupérer la liste des groupes pour le projet web server 📅 2023-09-29 ✅ 2023-09-30 -- [ ] les informations diverses dans le groupe de discussion +- informations diverses dans le groupe de discussion - tout changement d'emploi du temps - événements étudiants importants - document de cours transmis par les professeurs +- rencontres avec M. Taghelit (responsable d'année) + - discussions sur la pédagogie et l'organisation des études + - faire déplacer des contrôle -[[conseil de département 5ème semestre]] \ No newline at end of file +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` diff --git a/travail.md b/travail.md index 607e3d0e..b1b9f34e 100644 --- a/travail.md +++ b/travail.md @@ -1,4 +1,4 @@ -up::[[philosophie]], [[sociologie]] +up::[[politique]], [[philosophie]], [[sociologie]] #philosphie #science/sociologie > [!query]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` diff --git a/xml.md b/xml.md new file mode 100644 index 00000000..5d3d182f --- /dev/null +++ b/xml.md @@ -0,0 +1,10 @@ +up:: [[langage descriptif]] +#informatique + +> [!smallquery]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` +> ```breadcrumbs +> title: false +> type: tree +> dir: down +> ``` + diff --git a/équations d'un cercle.md b/équations d'un cercle.md new file mode 100644 index 00000000..1015cf8e --- /dev/null +++ b/équations d'un cercle.md @@ -0,0 +1,7 @@ +up:: [[cercle]] +#maths/géométrie + +> [!definition] équations d'un cercle +> Sur un plan, les équations suivantes définissent un cercle : +> - $(x - \alpha )^{2} + (y-\beta)^{2} = r$ un cercle de centre $(\alpha; \beta )$ et de rayon $r$ +^definition diff --git a/équations d'une ellipse.md b/équations d'une ellipse.md new file mode 100644 index 00000000..ac640dae --- /dev/null +++ b/équations d'une ellipse.md @@ -0,0 +1,9 @@ +up:: [[ellipse]] +#maths/géométrie + +> [!definition] équations d'une ellipse +> Dans un plan euclidien, les équations suivantes définissent une ellipse : +> - $\displaystyle\frac{(x-\alpha )^{2}}{a^{2}} + \frac{(y-\beta)^{2}}{b^{2}} =1$ une ellipse de centre $(\alpha; \beta)$, et de rayon $a$ et $b$ respectivement dans les directions $Ox$ et $Oy$ +^definition + +![[équations d'une ellipse 2024-02-14 11.07.42.excalidraw]]

    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